diff --git a/Content.Server/Objectives/Systems/KillPersonConditionSystem.cs b/Content.Server/Objectives/Systems/KillPersonConditionSystem.cs index c378841278..012fb80f76 100644 --- a/Content.Server/Objectives/Systems/KillPersonConditionSystem.cs +++ b/Content.Server/Objectives/Systems/KillPersonConditionSystem.cs @@ -39,8 +39,7 @@ public sealed class KillPersonConditionSystem : EntitySystem return 1f; var targetDead = _mind.IsCharacterDeadIc(mind); - var targetMarooned = !_emergencyShuttle.IsTargetEscaping(target) && - _emergencyShuttle.ShuttlesLeft; + var targetOnShuttle = _emergencyShuttle.IsTargetEscaping(mind.OwnedEntity.Value); if (!_config.GetCVar(CCVars.EmergencyShuttleEnabled) && requireMaroon) { requireDead = true; @@ -50,8 +49,17 @@ public sealed class KillPersonConditionSystem : EntitySystem if (requireDead && !targetDead) return 0f; - if (requireMaroon) // if evac is still here and target hasn't boarded, show 50% to give you an indicator that you are doing good - return targetMarooned ? 1f : _emergencyShuttle.EmergencyShuttleArrived ? 0.5f : 0f; + // Always failed if the target needs to be marooned and the shuttle hasn't even arrived yet + if (requireMaroon && !_emergencyShuttle.EmergencyShuttleArrived) + return 0f; + + // If the shuttle hasn't left, give 50% progress if the target isn't on the shuttle as a "almost there!" + if (requireMaroon && !_emergencyShuttle.ShuttlesLeft) + return targetOnShuttle ? 0f : 0.5f; + + // If the shuttle has already left, and the target isn't on it, 100% + if (requireMaroon && _emergencyShuttle.ShuttlesLeft) + return targetOnShuttle ? 0f : 1f; return 1f; // Good job you did it woohoo } diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs index 8e3e01bfb6..c9c764a014 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs @@ -648,18 +648,11 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem if (!EmergencyShuttleArrived) return false; - // check each emergency shuttle + // check if target is on an emergency shuttle var xform = Transform(target); - foreach (var stationData in EntityQuery()) - { - if (stationData.EmergencyShuttle == null) - continue; - if (IsOnGrid(xform, stationData.EmergencyShuttle.Value)) - { - return true; - } - } + if (HasComp(xform.GridUid)) + return true; return false; } diff --git a/Resources/Locale/en-US/objectives/conditions/kill-person.ftl b/Resources/Locale/en-US/objectives/conditions/kill-person.ftl index 48606b92c2..aad31d26f9 100644 --- a/Resources/Locale/en-US/objectives/conditions/kill-person.ftl +++ b/Resources/Locale/en-US/objectives/conditions/kill-person.ftl @@ -1,3 +1,3 @@ objective-condition-kill-person-title = Kill or maroon {$targetName}, {CAPITALIZE($job)} objective-condition-kill-maroon-title = Kill and maroon {$targetName}, {CAPITALIZE($job)} -objective-condition-maroon-person-title = Maroon {$targetName}, {CAPITALIZE($job)} +objective-condition-maroon-person-title = Prevent {$targetName}, {CAPITALIZE($job)} from reaching CentComm. diff --git a/Resources/Prototypes/Objectives/traitor.yml b/Resources/Prototypes/Objectives/traitor.yml index 0f53488e69..4b6d9e0e66 100644 --- a/Resources/Prototypes/Objectives/traitor.yml +++ b/Resources/Prototypes/Objectives/traitor.yml @@ -83,7 +83,7 @@ - type: entity parent: [BaseTraitorObjective, BaseKillObjective] id: KillRandomPersonObjective - description: Do it however you like, just make sure they don't make it to centcomm. + description: Do it however you like, just make sure they don't get off the station. components: - type: Objective difficulty: 1.75 @@ -91,11 +91,13 @@ - type: TargetObjective title: objective-condition-maroon-person-title - type: PickRandomPerson + - type: KillPersonCondition + requireMaroon: true - type: entity parent: [BaseTraitorObjective, BaseKillObjective] id: KillRandomHeadObjective - description: We need this head gone and you probably know why. Make sure they don't make it to centcomm, even if they're dead. Good luck, agent. + description: We need this head gone and you probably know why. Make sure they don't make it to CentComm, even if they're dead. Good luck, agent. components: - type: Objective # technically its still possible for KillRandomPersonObjective to roll a head but this is guaranteed, so higher difficulty diff --git a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/meta.json b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/meta.json index 88eeace3d8..191aa398a9 100644 --- a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/meta.json +++ b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/meta.json @@ -1,133 +1,34 @@ { - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/32742/commits/44820f5b6e2c864a35bfad448e0a9437f01ad2e2", - "states": [ - { - "name": "scrub_off", - "directions": 4 - }, - { - "name": "scrub_welded", - "directions": 4 - }, - { - "name": "scrub_on", - "directions": 4, - "delays": [ - [ - 0.10, - 0.10, - 0.10, - 0.10, - 0.10, - 0.10 - ], - [ - 0.10, - 0.10, - 0.10, - 0.10, - 0.10, - 0.10 - ], - [ - 0.10, - 0.10, - 0.10, - 0.10, - 0.10, - 0.10 - ], - [ - 0.10, - 0.10, - 0.10, - 0.10, - 0.10, - 0.10 - ] - ] - }, - { - "name": "scrub_purge", - "directions": 4, - "delays": [ - [ - 0.06, - 0.06, - 0.06, - 0.06, - 0.06, - 0.06 - ], - [ - 0.06, - 0.06, - 0.06, - 0.06, - 0.06, - 0.06 - ], - [ - 0.06, - 0.06, - 0.06, - 0.06, - 0.06, - 0.06 - ], - [ - 0.06, - 0.06, - 0.06, - 0.06, - 0.06, - 0.06 - ] - ] - }, - { - "name": "scrub_wide", - "directions": 4, - "delays": [ - [ - 0.10, - 0.10, - 0.10, - 0.10, - 0.10, - 0.10 - ], - [ - 0.10, - 0.10, - 0.10, - 0.10, - 0.10, - 0.10 - ], - [ - 0.10, - 0.10, - 0.10, - 0.10, - 0.10, - 0.10 - ], - [ - 0.10, - 0.10, - 0.10, - 0.10, - 0.10, - 0.10 - ] - ] - } - ] + "version":1, + "size":{ + "x":32, + "y":32 + }, + "license":"CC-BY-SA-3.0", + "copyright":"Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da", + "states":[ + { + "name":"scrub_off", + "directions": 4 + }, + { + "name":"scrub_welded", + "directions": 4 + }, + { + "name":"scrub_on", + "directions": 4, + "delays": [[0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08], [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08]] + }, + { + "name": "scrub_purge", + "directions": 4, + "delays": [[0.2, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], [0.2, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], [0.2, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], [0.2, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04]] + }, + { + "name": "scrub_wide", + "directions": 4, + "delays": [[0.2, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], [0.2, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], [0.2, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], [0.2, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04]] + } + ] } diff --git a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_off.png b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_off.png index 8f7e5e6782..efc173d893 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_off.png and b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_off.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_on.png b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_on.png index bdef533ae3..9bc5d8c0bf 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_on.png and b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_on.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_purge.png b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_purge.png index 6bbc79c31b..75ba6d6de0 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_purge.png and b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_purge.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_wide.png b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_wide.png index c7fd087c81..087777a888 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_wide.png and b/Resources/Textures/Structures/Piping/Atmospherics/scrubber.rsi/scrub_wide.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/meta.json b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/meta.json index d22d006684..74e1688748 100644 --- a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/meta.json +++ b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/meta.json @@ -1,103 +1,37 @@ { - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/32742/commits/44820f5b6e2c864a35bfad448e0a9437f01ad2e2", - "states": [ - { - "name": "vent_passive", - "directions": 4 - }, - { - "name": "vent_off", - "directions": 4 - }, - { - "name": "vent_welded", - "directions": 4 - }, - { - "name": "vent_out", - "directions": 4, - "delays": [ - [ - 0.05, - 0.05, - 0.05, - 0.05, - 0.05, - 0.05 - ], - [ - 0.05, - 0.05, - 0.05, - 0.05, - 0.05, - 0.05 - ], - [ - 0.05, - 0.05, - 0.05, - 0.05, - 0.05, - 0.05 - ], - [ - 0.05, - 0.05, - 0.05, - 0.05, - 0.05, - 0.05 - ] - ] - }, - { - "name": "vent_in", - "directions": 4, - "delays": [ - [ - 0.05, - 0.05, - 0.05, - 0.05, - 0.05, - 0.05 - ], - [ - 0.05, - 0.05, - 0.05, - 0.05, - 0.05, - 0.05 - ], - [ - 0.05, - 0.05, - 0.05, - 0.05, - 0.05, - 0.05 - ], - [ - 0.05, - 0.05, - 0.05, - 0.05, - 0.05, - 0.05 - ] - ] - }, - { - "name": "vent_lockout", - "directions": 4 - } - ] + "version":1, + "size":{ + "x":32, + "y":32 + }, + "license":"CC-BY-SA-3.0", + "copyright":"Taken from https://github.com/BeeStation/BeeStation-Hornet at commit 4ccd79de285e79e504308bcd6fa5908d6b7685f7", + "states":[ + { + "name":"vent_passive", + "directions" : 4 + }, + { + "name":"vent_off", + "directions" : 4 + }, + { + "name":"vent_welded", + "directions" : 4 + }, + { + "name":"vent_out", + "directions" : 4, + "delays":[ [ 0.08, 0.08, 0.08, 0.08 ], [ 0.08, 0.08, 0.08, 0.08 ], [ 0.08, 0.08, 0.08, 0.08 ], [ 0.08, 0.08, 0.08, 0.08 ] ] + }, + { + "name":"vent_in", + "directions" : 4, + "delays":[ [ 0.08, 0.08, 0.08, 0.08 ], [ 0.08, 0.08, 0.08, 0.08 ], [ 0.08, 0.08, 0.08, 0.08 ], [ 0.08, 0.08, 0.08, 0.08 ] ] + }, + { + "name":"vent_lockout", + "directions" : 4 + } + ] } diff --git a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_in.png b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_in.png index 17a740920f..cf1b050c02 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_in.png and b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_in.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_lockout.png b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_lockout.png index b32003c698..bf0b9c928e 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_lockout.png and b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_lockout.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_off.png b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_off.png index 8380b47e7c..6208c59db7 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_off.png and b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_off.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_out.png b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_out.png index 67890d4be2..e038706b0e 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_out.png and b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_out.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_passive.png b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_passive.png index 9c732a4e7a..5ff27ef759 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_passive.png and b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_passive.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_welded.png b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_welded.png index 0ecc5b4c9c..b45ae1cb5f 100644 Binary files a/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_welded.png and b/Resources/Textures/Structures/Piping/Atmospherics/vent.rsi/vent_welded.png differ diff --git a/RobustToolbox b/RobustToolbox index 191d7ab81c..03f8d4d3e0 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 191d7ab81c3693503bc9f483c5829228d9cb57cf +Subproject commit 03f8d4d3e047dfbb8841cf7f40a66422b3b0dbb4