diff --git a/Content.Client/Overlays/StencilOverlay.Weather.cs b/Content.Client/Overlays/StencilOverlay.Weather.cs index c5ccb50cf5..87e118d47e 100644 --- a/Content.Client/Overlays/StencilOverlay.Weather.cs +++ b/Content.Client/Overlays/StencilOverlay.Weather.cs @@ -18,6 +18,7 @@ public sealed partial class StencilOverlay var worldAABB = args.WorldAABB; var worldBounds = args.WorldBounds; var position = args.Viewport.Eye?.Position.Position ?? Vector2.Zero; + var eye = args.Viewport.Eye; //CP14 // Cut out the irrelevant bits via stencil // This is why we don't just use parallax; we might want specific tiles to get drawn over @@ -45,10 +46,17 @@ public sealed partial class StencilOverlay continue; } - var gridTile = new Box2(tile.GridIndices * grid.Comp.TileSize, - (tile.GridIndices + Vector2i.One) * grid.Comp.TileSize); - - worldHandle.DrawRect(gridTile, Color.White); + //CP14 offset - required for isometric walls + if (eye is not null) + { + Angle rotation = eye.Rotation * -1f; + var offset = rotation.ToWorldVec() * -0.5f; + var gridTile = new Box2( + tile.GridIndices * grid.Comp.TileSize + offset, + (tile.GridIndices + Vector2i.One) * grid.Comp.TileSize + offset); + worldHandle.DrawRect(gridTile, Color.White); + } + //CP14 offset end } } diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs b/Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs index 27bd3d2e3f..83b04c10f2 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs @@ -31,7 +31,9 @@ public sealed partial class AdminVerbSystem private static readonly EntProtoId DefaultThiefRule = "Thief"; private static readonly ProtoId PirateGearId = "PirateGear"; //CP14 - private static readonly EntProtoId CP14VampireRule = "CP14GameRuleVampireClanBattle"; + private static readonly EntProtoId CP14VampireUnnameable = "CP14GameRuleVampireClanUnnameable"; + private static readonly EntProtoId CP14VampireDevourers = "CP14GameRuleVampireClanDevourers"; + private static readonly EntProtoId CP14VampireNightChildrens = "CP14GameRuleVampireClanNightChildrens"; //CP14 end private static readonly EntProtoId ParadoxCloneRuleId = "ParadoxCloneSpawn"; @@ -52,20 +54,47 @@ public sealed partial class AdminVerbSystem var targetPlayer = targetActor.PlayerSession; - Verb vampire = new() + Verb vampire3 = new() { - Text = Loc.GetString("cp14-admin-verb-text-make-vampire"), + Text = Loc.GetString("cp14-admin-verb-text-make-vampire") + ": " + Loc.GetString("cp14-vampire-fraction-name-night-childrens"), Category = VerbCategory.Antag, - Icon = new SpriteSpecifier.Rsi(new ResPath("/Textures/_CP14/Actions/Spells/vampire.rsi"), - "bite"), + Icon = new SpriteSpecifier.Rsi(new ResPath("/Textures/_CP14/Interface/Misc/vampire_icons.rsi"), "NightChildrens"), Act = () => { - _antag.ForceMakeAntag(targetPlayer, CP14VampireRule); + _antag.ForceMakeAntag(targetPlayer, CP14VampireNightChildrens); }, Impact = LogImpact.High, Message = Loc.GetString("cp14-admin-verb-make-vampire"), }; - args.Verbs.Add(vampire); + args.Verbs.Add(vampire3); + + Verb vampire2 = new() + { + Text = Loc.GetString("cp14-admin-verb-text-make-vampire") + ": " + Loc.GetString("cp14-vampire-fraction-name-devourers"), + Category = VerbCategory.Antag, + Icon = new SpriteSpecifier.Rsi(new ResPath("/Textures/_CP14/Interface/Misc/vampire_icons.rsi"), "Devourers"), + Act = () => + { + _antag.ForceMakeAntag(targetPlayer, CP14VampireDevourers); + }, + Impact = LogImpact.High, + Message = Loc.GetString("cp14-admin-verb-make-vampire"), + }; + args.Verbs.Add(vampire2); + + Verb vampire1 = new() + { + Text = Loc.GetString("cp14-admin-verb-text-make-vampire") + ": " + Loc.GetString("cp14-vampire-fraction-name-unnameable"), + Category = VerbCategory.Antag, + Icon = new SpriteSpecifier.Rsi(new ResPath("/Textures/_CP14/Interface/Misc/vampire_icons.rsi"), "Unnameable"), + Act = () => + { + _antag.ForceMakeAntag(targetPlayer, CP14VampireUnnameable); + }, + Impact = LogImpact.High, + Message = Loc.GetString("cp14-admin-verb-make-vampire"), + }; + args.Verbs.Add(vampire1); /* CP14 disable default antags var traitorName = Loc.GetString("admin-verb-text-make-traitor"); diff --git a/Content.Server/_CP14/GameTicking/Rules/CP14VampireRuleSystem.cs b/Content.Server/_CP14/GameTicking/Rules/CP14VampireRuleSystem.cs index 15629bc6e3..bff43c399f 100644 --- a/Content.Server/_CP14/GameTicking/Rules/CP14VampireRuleSystem.cs +++ b/Content.Server/_CP14/GameTicking/Rules/CP14VampireRuleSystem.cs @@ -82,6 +82,6 @@ public sealed class CP14VampireRuleSystem : GameRuleSystem