- add: Changeling antagonist (#2)
* Changeling WIP * UI * Pointers fix * Moved out abilities * Regenerate ability * Fixed Regenerate ability Prevent ghosting while regenerating * Cleanup * Base lesser form * Finished Lesser Form && Transform * Transform Sting * Blind Sting * Mute Sting Added OnExamine on absorbed human * Hallucination Sting Changeling Absorb and transfer absorbed entities to absorber * Cryogenic Sting * Adrenaline Sacs * Transform now uses Polymorph * Armblade, Shield, Armor * Tentacle Arm ability Tentacle Gun system * WIP with bugs * WiP bugs * fix implant transfer * Fixed bugs with shop transfer and actions transfer * Just in case * Vi sitter i ventrilo och spelar DotA * Fixes and proper LesserForm tracking * !!!!! * Fixed empty buttons * WIP Gamerule Ready - shop * nerf stun time cause its sucks * cleaning * just in case * Absorb DNA Objective. * Partial objectives with bugs * fix * fix pointer * Changeling objectives * Changeling objectives №2 * Admin verb, game rule * Fixed empty list check Icons for objectives * Changeling chat, changeling names etc. * fix some merge errors * - fix: Fixed all bugs with changeling --------- Co-authored-by: Y-Parvus <yevhen.parvus@gmail.com> Co-authored-by: Y-Parvus <61109031+Y-Parvus@users.noreply.github.com> Co-authored-by: HitPanda <104197232+EnefFlow@users.noreply.github.com> Co-authored-by: EnefFlow <regeto90@mail.ru>
This commit is contained in:
@@ -14,6 +14,7 @@ using Content.Server._White.PandaSocket.Main;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Administration;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.Changeling;
|
||||
using Content.Shared.Chat;
|
||||
using Content.Shared.Database;
|
||||
using Content.Shared.Decals;
|
||||
@@ -357,6 +358,9 @@ public sealed partial class ChatSystem : SharedChatSystem
|
||||
case InGameOOCChatType.Looc:
|
||||
SendLOOC(source, player, message, hideChat);
|
||||
break;
|
||||
case InGameOOCChatType.Changeling:
|
||||
SendChangelingChat(source, player, message, hideChat);
|
||||
break;
|
||||
case InGameOOCChatType.Cult:
|
||||
SendCultChat(source, player, message, hideChat);
|
||||
break;
|
||||
@@ -767,6 +771,37 @@ public sealed partial class ChatSystem : SharedChatSystem
|
||||
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"LOOC from {player:Player}: {message}");
|
||||
}
|
||||
|
||||
|
||||
private void SendChangelingChat(EntityUid source, ICommonSession player, string message, bool hideChat)
|
||||
{
|
||||
if (!TryComp<ChangelingComponent>(source, out var changeling))
|
||||
return;
|
||||
|
||||
var clients = GetChangelingChatClients();
|
||||
|
||||
var playerName = changeling.HiveName;
|
||||
|
||||
message = $"{char.ToUpper(message[0])}{message[1..]}";
|
||||
|
||||
var wrappedMessage = Loc.GetString("chat-manager-send-changeling-chat-wrap-message",
|
||||
("player", playerName),
|
||||
("message", FormattedMessage.EscapeText(message)));
|
||||
|
||||
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Changeling chat from {player:Player}-({playerName}): {message}");
|
||||
|
||||
_chatManager.ChatMessageToMany(ChatChannel.Changeling, message, wrappedMessage, source,
|
||||
hideChat, false, clients.ToList());
|
||||
}
|
||||
|
||||
private IEnumerable<INetChannel> GetChangelingChatClients()
|
||||
{
|
||||
return Filter.Empty()
|
||||
.AddWhereAttachedEntity(HasComp<GhostComponent>)
|
||||
.AddWhereAttachedEntity(HasComp<ChangelingComponent>)
|
||||
.Recipients
|
||||
.Select(p => p.Channel);
|
||||
}
|
||||
|
||||
// WD EDIT
|
||||
private void SendCultChat(EntityUid source, ICommonSession player, string message, bool hideChat)
|
||||
{
|
||||
@@ -1243,6 +1278,7 @@ public enum InGameOOCChatType : byte
|
||||
{
|
||||
Looc,
|
||||
Dead,
|
||||
Changeling,
|
||||
Cult
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user