Colossus Effigy Blacklist (#5160)

* Added colossus effigy blacklist.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Vanessa 2026-01-07 10:35:25 -06:00 committed by GitHub
parent c0821274f3
commit 46acbaaf26
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 45 additions and 1 deletions

View File

@ -1,3 +1,5 @@
using Content.Shared.Whitelist;
namespace Content.Server.Objectives.Components;
[RegisterComponent]
@ -5,4 +7,11 @@ public sealed partial class CosmicEffigyConditionComponent : Component
{
[DataField]
public EntityUid? EffigyTarget;
/// <summary>
/// Tags that should be used to exclude Warp Points
/// from the list of valid effigy targets
/// </summary>
[DataField]
public EntityWhitelist? Blacklist;
}

View File

@ -4,6 +4,7 @@ using Content.Shared.Ninja.Components;
using Content.Shared.Objectives.Components;
using Content.Shared.Roles;
using Content.Shared.Warps;
using Content.Shared.Whitelist;
using Robust.Shared.Random;
namespace Content.Server.Objectives.Systems;
@ -14,6 +15,7 @@ public sealed class CosmicCultObjectiveSystem : EntitySystem
[Dependency] private readonly NumberObjectiveSystem _number = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly SharedRoleSystem _roles = default!;
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
public override void Initialize()
{
@ -35,10 +37,13 @@ public sealed class CosmicCultObjectiveSystem : EntitySystem
var warps = new List<EntityUid>();
var query = EntityQueryEnumerator<WarpPointComponent>();
var effigyBlacklist = comp.Blacklist;
// TODO: Add a blacklist comp to this like ninja now has from upstream #40726
while (query.MoveNext(out var warpUid, out var warp))
{
if (warp.Location != null)
if (_whitelist.IsBlacklistFail(effigyBlacklist, warpUid)
&& !string.IsNullOrWhiteSpace(warp?.Location))
{
warps.Add(warpUid);
}

View File

@ -39,6 +39,9 @@
blacklist:
tags:
- GhostOnlyWarp
- type: Tag # DeltaV - Prevent the warp point from being chosen for bombing/effigy targets
tags:
- GhostOnlyWarp
- type: entity
id: ImmovableRodDespawn

View File

@ -85,6 +85,9 @@
- FlyingMobLayer
- type: WarpPoint
follow: true
blacklist:
tags:
- GhostOnlyWarp
- type: Body
requiredLegs: 0
- type: Emoting
@ -118,6 +121,7 @@
- CannotSuicide
- DoorBumpOpener
- Unimplantable
- GhostOnlyWarp # Prevents it from being warped to or being a warp location bombing target
- type: Damageable
damageContainer: InorganicMetaphysical
damageModifierSet: EntropicColossus

View File

@ -92,6 +92,9 @@
- type: CanMoveInAir
- type: WarpPoint
follow: true
blacklist:
tags:
- GhostOnlyWarp
location: The Unknown
- type: CosmicGod
- type: CosmicCultExamine
@ -122,3 +125,6 @@
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Tag
tags:
- GhostOnlyWarp

View File

@ -112,3 +112,9 @@
- MobCosmicLodestarHostile
- type: WarpPoint
follow: true
blacklist:
tags:
- GhostOnlyWarp
- type: Tag
tags:
- GhostOnlyWarp

View File

@ -99,12 +99,19 @@
- CosmicCult
- type: WarpPoint
location: The Monument
blacklist:
tags:
- GhostOnlyWarp
- type: CosmicCultExamine
cultistText: cosmic-examine-text-forthecult
- type: CosmicCorrupting
corruptionReduction: 0.01
enabled: false
floodFillStarting: true
- type: Tag
tags:
- Structure # Parent has this tag
- GhostOnlyWarp
########### SPAWN-IN ANIMATION #############

View File

@ -108,3 +108,7 @@
sprite: _DV/CosmicCult/Icons/objectives.rsi
state: effigy
- type: CosmicEffigyCondition
blacklist:
tags:
- GhostOnlyWarp
- NinjaBombingTargetBlocker # Use the same blacklist as ninja