From c87907f80d5ce39296974437daf4b3a478056ad9 Mon Sep 17 00:00:00 2001 From: Sefaia Date: Wed, 18 Jun 2025 05:10:08 -0500 Subject: [PATCH] EXECUTION! (#1419) * Execution option unlocked for Sharp weapons. * Created CP14Execution component to avoid issues with SS14 standard core coding. Removed Execution Component in preparation to add in CP14Execution component instead. * Added CP14Execution as a modularPart modifier under the id: BaseWeaponExecution Added BaseWeaponExecution to the following weapons: -Axe -Dagger -Mace -Rapier -Scimitar -Spear -Sword * Added Executions to all Tools in the ModularWeapon category. * Removed redundant code and replace CP14Execution Component with original Execution Component. Removed Mace, Hammer, Hoe, Shovel and Pickaxe execution for now. Added Execution Component to BaseWeaponSharp modifier * Added Execution to non-sharp weapons via modifier called BaseWeaponExecution. * Exchanged prefix of blunt to cp14 and added the override values. * networking problems --------- Co-authored-by: Red <96445749+TheShuEd@users.noreply.github.com> --- Content.Shared/Execution/ExecutionComponent.cs | 16 ++++++++-------- .../Locale/en-US/_CP14/execution/execution.ftl | 14 ++++++++++++++ .../_CP14/ModularCraft/Blade/hammer.yml | 1 + .../Prototypes/_CP14/ModularCraft/Blade/hoe.yml | 1 + .../Prototypes/_CP14/ModularCraft/Blade/mace.yml | 1 + .../_CP14/ModularCraft/Blade/pickaxe.yml | 3 +++ .../_CP14/ModularCraft/Blade/shovel.yml | 3 +++ .../_CP14/ModularCraft/baseModularModifier.yml | 16 ++++++++++++++++ 8 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 Resources/Locale/en-US/_CP14/execution/execution.ftl diff --git a/Content.Shared/Execution/ExecutionComponent.cs b/Content.Shared/Execution/ExecutionComponent.cs index 31477ead69..5dfb8ee634 100644 --- a/Content.Shared/Execution/ExecutionComponent.cs +++ b/Content.Shared/Execution/ExecutionComponent.cs @@ -23,49 +23,49 @@ public sealed partial class ExecutionComponent : Component /// /// Shown to the person performing the melee execution (attacker) upon starting a melee execution. /// - [DataField] + [DataField, AutoNetworkedField] //CP14 AutoNetworkedField public LocId InternalMeleeExecutionMessage = "execution-popup-melee-initial-internal"; /// /// Shown to bystanders and the victim of a melee execution when a melee execution is started. /// - [DataField] + [DataField, AutoNetworkedField] //CP14 AutoNetworkedField public LocId ExternalMeleeExecutionMessage = "execution-popup-melee-initial-external"; /// /// Shown to the attacker upon completion of a melee execution. /// - [DataField] + [DataField, AutoNetworkedField] //CP14 AutoNetworkedField public LocId CompleteInternalMeleeExecutionMessage = "execution-popup-melee-complete-internal"; /// /// Shown to bystanders and the victim of a melee execution when a melee execution is completed. /// - [DataField] + [DataField, AutoNetworkedField] //CP14 AutoNetworkedField public LocId CompleteExternalMeleeExecutionMessage = "execution-popup-melee-complete-external"; /// /// Shown to the person performing the self execution when starting one. /// - [DataField] + [DataField, AutoNetworkedField] //CP14 AutoNetworkedField public LocId InternalSelfExecutionMessage = "execution-popup-self-initial-internal"; /// /// Shown to bystanders near a self execution when one is started. /// - [DataField] + [DataField, AutoNetworkedField] //CP14 AutoNetworkedField public LocId ExternalSelfExecutionMessage = "execution-popup-self-initial-external"; /// /// Shown to the person performing a self execution upon completion of a do-after or on use of /suicide with a weapon that has the Execution component. /// - [DataField] + [DataField, AutoNetworkedField] //CP14 AutoNetworkedField public LocId CompleteInternalSelfExecutionMessage = "execution-popup-self-complete-internal"; /// /// Shown to bystanders when a self execution is completed or a suicide via execution weapon happens nearby. /// - [DataField] + [DataField, AutoNetworkedField] //CP14 AutoNetworkedField public LocId CompleteExternalSelfExecutionMessage = "execution-popup-self-complete-external"; // Not networked because this is transient inside of a tick. diff --git a/Resources/Locale/en-US/_CP14/execution/execution.ftl b/Resources/Locale/en-US/_CP14/execution/execution.ftl new file mode 100644 index 0000000000..b9ad691e7a --- /dev/null +++ b/Resources/Locale/en-US/_CP14/execution/execution.ftl @@ -0,0 +1,14 @@ +# All the below localisation strings have access to the following variables +# attacker (the person committing the execution) +# victim (the person being executed) +# weapon (the weapon used for the execution) + +cp14-execution-popup-melee-initial-internal = You ready {THE($weapon)} to execute {THE($victim)}. +cp14-execution-popup-melee-initial-external = { CAPITALIZE(THE($attacker)) } readies {POSS-ADJ($attacker)} {$weapon} to execute {THE($victim)}. +cp14-execution-popup-melee-complete-internal = You executed {THE($victim)}! +cp14-execution-popup-melee-complete-external = { CAPITALIZE(THE($attacker)) } executed {THE($victim)}! + +cp14-execution-popup-self-initial-internal = You ready {THE($weapon)} against your own head. +cp14-execution-popup-self-initial-external = { CAPITALIZE(THE($attacker)) } readies {POSS-ADJ($attacker)} {$weapon} against their own head. +cp14-execution-popup-self-complete-internal = You killed yourself! +cp14-execution-popup-self-complete-external = { CAPITALIZE(THE($attacker)) } kills themself! diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml index 3f1efbdfa8..fea5329389 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml @@ -9,6 +9,7 @@ - !type:Inherit copyFrom: - BaseWeaponThrowable + - BaseWeaponExecution - !type:AddComponents components: - type: Tool diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml index 2f28e2769d..dad8465f91 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/hoe.yml @@ -7,6 +7,7 @@ copyFrom: - BaseWeaponChemical - BaseWeaponThrowable + - BaseWeaponExecution #components: TODO Add gathering tag - !type:AddComponents override: true diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml index 0eff97f038..bb578b9d3e 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml @@ -8,6 +8,7 @@ - !type:Inherit copyFrom: - BaseWeaponChemical + - BaseWeaponExecution - !type:EditMeleeWeapon resetOnHandSelected: true # Disable fast swap attackRateMultiplier: 0.85 diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml index a193428aa1..829c85e64c 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml @@ -1,6 +1,9 @@ - type: modularPart id: BaseBladePickaxe modifiers: + - !type:Inherit + copyFrom: + - BaseWeaponExecution - !type:AddComponents override: true components: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml index f5b5c167f6..2faa6d2e9f 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml @@ -1,6 +1,9 @@ - type: modularPart id: BaseBladeShovel modifiers: + - !type:Inherit + copyFrom: + - BaseWeaponExecution - !type:AddComponents components: - type: Shovel diff --git a/Resources/Prototypes/_CP14/ModularCraft/baseModularModifier.yml b/Resources/Prototypes/_CP14/ModularCraft/baseModularModifier.yml index ff4e2b9a99..89f3fe70aa 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/baseModularModifier.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/baseModularModifier.yml @@ -66,6 +66,7 @@ types: - Knife - type: CP14WallpaperRemover + - type: Execution - type: modularPart id: BaseWeaponRangedChemical @@ -98,3 +99,18 @@ components: - type: Item size: Small + +- type: modularPart + id: BaseWeaponExecution + modifiers: + - !type:AddComponents + components: + - type: Execution + internalMeleeExecutionMessage: "cp14-execution-popup-melee-initial-internal" + externalMeleeExecutionMessage: "cp14-execution-popup-melee-initial-external" + completeInternalMeleeExecutionMessage: "cp14-execution-popup-melee-complete-internal" + completeExternalMeleeExecutionMessage: "cp14-execution-popup-melee-complete-external" + internalSelfExecutionMessage: "cp14-execution-popup-self-initial-internal" + externalSelfExecutionMessage: "cp14-execution-popup-self-initial-external" + completeInternalSelfExecutionMessage: "cp14-execution-popup-self-complete-internal" + completeExternalSelfExecutionMessage: "cp14-execution-popup-self-complete-external"