Store ninja objectives in conditions 2 (#20894)
* move spider charge target from role * shorter field names * remove ninja role comment * remove unused systems in SpaceNinjaSystem * GenericAntagObjectivesAddedEvent * check if warp point is on same map * remove unnecessary import * add missing loc when spider charge has no target * a * remove spider charge target requirement comp * inline SpiderChargeTitle * allow planting charge without objective * remove map check * fix role check when planting * obj.Target * Fix merge --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
committed by
GitHub
parent
2a6705818b
commit
7311ce671f
@@ -1,4 +1,5 @@
|
||||
using Content.Server.Explosion.EntitySystems;
|
||||
using Content.Server.GameTicking.Rules.Components;
|
||||
using Content.Server.Mind;
|
||||
using Content.Server.Objectives.Components;
|
||||
using Content.Server.Popups;
|
||||
@@ -38,7 +39,7 @@ public sealed class SpiderChargeSystem : EntitySystem
|
||||
|
||||
var user = args.User;
|
||||
|
||||
if (!_mind.TryGetRole<NinjaRoleComponent>(user, out var role))
|
||||
if (!_mind.TryGetRole<NinjaRoleComponent>(user, out var _))
|
||||
{
|
||||
_popup.PopupEntity(Loc.GetString("spider-charge-not-ninja"), user, user);
|
||||
args.Cancelled = true;
|
||||
@@ -46,11 +47,11 @@ public sealed class SpiderChargeSystem : EntitySystem
|
||||
}
|
||||
|
||||
// allow planting anywhere if there is no target, which should never happen
|
||||
if (role.SpiderChargeTarget == null)
|
||||
if (!_mind.TryGetObjectiveComp<SpiderChargeConditionComponent>(user, out var obj) || obj.Target == null)
|
||||
return;
|
||||
|
||||
// assumes warp point still exists
|
||||
var targetXform = Transform(role.SpiderChargeTarget.Value);
|
||||
var targetXform = Transform(obj.Target.Value);
|
||||
var locXform = Transform(args.Target);
|
||||
if (locXform.MapID != targetXform.MapID ||
|
||||
(_transform.GetWorldPosition(locXform) - _transform.GetWorldPosition(targetXform)).LengthSquared() > comp.Range * comp.Range)
|
||||
@@ -79,6 +80,6 @@ public sealed class SpiderChargeSystem : EntitySystem
|
||||
return;
|
||||
|
||||
// assumes the target was destroyed, that the charge wasn't moved somehow
|
||||
obj.SpiderChargeDetonated = true;
|
||||
obj.Detonated = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user