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>
This commit is contained in:
Sefaia
2025-06-18 05:10:08 -05:00
committed by GitHub
parent 4ec77514ea
commit c87907f80d
8 changed files with 47 additions and 8 deletions

View File

@@ -23,49 +23,49 @@ public sealed partial class ExecutionComponent : Component
/// <summary>
/// Shown to the person performing the melee execution (attacker) upon starting a melee execution.
/// </summary>
[DataField]
[DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId InternalMeleeExecutionMessage = "execution-popup-melee-initial-internal";
/// <summary>
/// Shown to bystanders and the victim of a melee execution when a melee execution is started.
/// </summary>
[DataField]
[DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId ExternalMeleeExecutionMessage = "execution-popup-melee-initial-external";
/// <summary>
/// Shown to the attacker upon completion of a melee execution.
/// </summary>
[DataField]
[DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId CompleteInternalMeleeExecutionMessage = "execution-popup-melee-complete-internal";
/// <summary>
/// Shown to bystanders and the victim of a melee execution when a melee execution is completed.
/// </summary>
[DataField]
[DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId CompleteExternalMeleeExecutionMessage = "execution-popup-melee-complete-external";
/// <summary>
/// Shown to the person performing the self execution when starting one.
/// </summary>
[DataField]
[DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId InternalSelfExecutionMessage = "execution-popup-self-initial-internal";
/// <summary>
/// Shown to bystanders near a self execution when one is started.
/// </summary>
[DataField]
[DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId ExternalSelfExecutionMessage = "execution-popup-self-initial-external";
/// <summary>
/// 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.
/// </summary>
[DataField]
[DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId CompleteInternalSelfExecutionMessage = "execution-popup-self-complete-internal";
/// <summary>
/// Shown to bystanders when a self execution is completed or a suicide via execution weapon happens nearby.
/// </summary>
[DataField]
[DataField, AutoNetworkedField] //CP14 AutoNetworkedField
public LocId CompleteExternalSelfExecutionMessage = "execution-popup-self-complete-external";
// Not networked because this is transient inside of a tick.

View File

@@ -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!

View File

@@ -9,6 +9,7 @@
- !type:Inherit
copyFrom:
- BaseWeaponThrowable
- BaseWeaponExecution
- !type:AddComponents
components:
- type: Tool

View File

@@ -7,6 +7,7 @@
copyFrom:
- BaseWeaponChemical
- BaseWeaponThrowable
- BaseWeaponExecution
#components: TODO Add gathering tag
- !type:AddComponents
override: true

View File

@@ -8,6 +8,7 @@
- !type:Inherit
copyFrom:
- BaseWeaponChemical
- BaseWeaponExecution
- !type:EditMeleeWeapon
resetOnHandSelected: true # Disable fast swap
attackRateMultiplier: 0.85

View File

@@ -1,6 +1,9 @@
- type: modularPart
id: BaseBladePickaxe
modifiers:
- !type:Inherit
copyFrom:
- BaseWeaponExecution
- !type:AddComponents
override: true
components:

View File

@@ -1,6 +1,9 @@
- type: modularPart
id: BaseBladeShovel
modifiers:
- !type:Inherit
copyFrom:
- BaseWeaponExecution
- !type:AddComponents
components:
- type: Shovel

View File

@@ -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"