From 28ce32d8fa663b3b40ef1be8bcd8f23ab9efdee1 Mon Sep 17 00:00:00 2001 From: forcecore Date: Sat, 11 Feb 2017 18:40:33 -0600 Subject: [PATCH 1/3] damageDisabled removed from Cloak.cs (#12741) To unhard code uncloak behavior getting disabled by the unit's critical HP. --- OpenRA.Mods.Common/Traits/Cloak.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Cloak.cs b/OpenRA.Mods.Common/Traits/Cloak.cs index 028594bded..2facb3f929 100644 --- a/OpenRA.Mods.Common/Traits/Cloak.cs +++ b/OpenRA.Mods.Common/Traits/Cloak.cs @@ -64,7 +64,6 @@ namespace OpenRA.Mods.Common.Traits INotifyAttack, ITick, IVisibilityModifier, IRadarColorModifier, INotifyCreated, INotifyHarvesterAction { [Sync] int remainingTime; - [Sync] bool damageDisabled; bool isDocking; ConditionManager conditionManager; @@ -102,8 +101,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyDamage.Damaged(Actor self, AttackInfo e) { - damageDisabled = e.DamageState >= DamageState.Critical; - if (damageDisabled || Info.UncloakOn.HasFlag(UncloakType.Damage)) + if (Info.UncloakOn.HasFlag(UncloakType.Damage)) Uncloak(); } @@ -128,7 +126,7 @@ namespace OpenRA.Mods.Common.Traits { if (!IsTraitDisabled) { - if (remainingTime > 0 && !damageDisabled && !isDocking) + if (remainingTime > 0 && !isDocking) remainingTime--; if (self.IsDisabled()) From 53e7cf0ef1e58d4dee9ecc3e70c904f9592fa0f5 Mon Sep 17 00:00:00 2001 From: forcecore Date: Sat, 11 Feb 2017 19:16:48 -0600 Subject: [PATCH 2/3] Rules updated to unhardcode cloak diable on criticalHP Rules updated for CNC mod (uncloak on critical HP) STNK, stealth crate are affected Rules updated for D2K mod (uncloak on critical HP) Saboteur, fremen, stealth raider affected Rules updated for RA mod (uncloak on critical HP) Affects Hijacker, sniper, sub, msub, hbox, stnk. Mines are not affected, they are not exactly "stealth". Hijackers and snipers aren't machines and should be able to hide themselves even when they are wounded but for least surprise to players, uncloaking stays as well. Rules updated for TS mod (uncloak on critical HP) Only affects STNK. Things that are cloak generators will stay cloaked even when critical HP! The cloak generation mechanism is by the cloak generator! --- mods/cnc/rules/defaults.yaml | 5 ++++- mods/cnc/rules/vehicles.yaml | 4 ++++ mods/d2k/rules/infantry.yaml | 8 ++++++++ mods/d2k/rules/vehicles.yaml | 4 ++++ mods/ra/rules/infantry.yaml | 8 ++++++++ mods/ra/rules/ships.yaml | 8 ++++++++ mods/ra/rules/structures.yaml | 4 ++++ mods/ra/rules/vehicles.yaml | 4 ++++ mods/ts/rules/nod-vehicles.yaml | 4 ++++ 9 files changed, 48 insertions(+), 1 deletion(-) diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index cf38e6798c..71363ace40 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -125,9 +125,12 @@ CloakDelay: 90 CloakSound: trans1.aud UncloakSound: trans1.aud - RequiresCondition: cloak + RequiresCondition: cloak && !uncloak ExternalCondition@CLOAK: Condition: cloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical ^Vehicle: Inherits@1: ^ExistsInWorld diff --git a/mods/cnc/rules/vehicles.yaml b/mods/cnc/rules/vehicles.yaml index db4fd3203f..c4e1b50e9c 100644 --- a/mods/cnc/rules/vehicles.yaml +++ b/mods/cnc/rules/vehicles.yaml @@ -547,6 +547,10 @@ STNK: CloakDelay: 90 CloakSound: trans1.aud UncloakSound: trans1.aud + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical Armament: Weapon: 227mm.stnk LocalOffset: 213,43,128, 213,-43,128 diff --git a/mods/d2k/rules/infantry.yaml b/mods/d2k/rules/infantry.yaml index 481cc33259..65803d9396 100644 --- a/mods/d2k/rules/infantry.yaml +++ b/mods/d2k/rules/infantry.yaml @@ -152,6 +152,10 @@ fremen: CloakSound: STEALTH1.WAV UncloakSound: STEALTH2.WAV IsPlayerPalette: true + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical -MustBeDestroyed: Voiced: VoiceSet: FremenVoice @@ -246,6 +250,10 @@ saboteur: UncloakSound: STEALTH2.WAV UncloakOn: Attack, Unload, Infiltrate, Demolish, Move, Damage IsPlayerPalette: true + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical Voiced: VoiceSet: SaboteurVoice diff --git a/mods/d2k/rules/vehicles.yaml b/mods/d2k/rules/vehicles.yaml index 02328e8745..95921990c3 100644 --- a/mods/d2k/rules/vehicles.yaml +++ b/mods/d2k/rules/vehicles.yaml @@ -394,6 +394,10 @@ stealth_raider: CloakSound: STEALTH1.WAV UncloakSound: STEALTH2.WAV IsPlayerPalette: true + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical AutoTarget: InitialStance: HoldFire InitialStanceAI: ReturnFire diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index af027eeeb8..c7547d592d 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -508,6 +508,10 @@ HIJACKER: UncloakOn: Attack, Unload, Infiltrate, Demolish, Move CloakTypes: Cloak, Hijacker IsPlayerPalette: true + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical Mobile: Speed: 85 @@ -589,6 +593,10 @@ SNIPER: UncloakSound: UncloakOn: Attack, Unload, Infiltrate, Demolish, Move IsPlayerPalette: true + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical DetectCloaked: CloakTypes: Cloak, Hijacker Range: 6c0 diff --git a/mods/ra/rules/ships.yaml b/mods/ra/rules/ships.yaml index a60e9641a9..c391718cba 100644 --- a/mods/ra/rules/ships.yaml +++ b/mods/ra/rules/ships.yaml @@ -36,6 +36,10 @@ SS: UncloakSound: subshow1.aud CloakedCondition: underwater Palette: submerged + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical Armament: Weapon: TorpTube LocalOffset: 0,-171,0, 0,171,0 @@ -93,6 +97,10 @@ MSUB: UncloakSound: subshow1.aud CloakedCondition: underwater Palette: submerged + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical Armament@PRIMARY: Weapon: SubMissile LocalOffset: 0,-171,0, 0,171,0 diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index 903482d46b..681e22f34e 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -626,6 +626,10 @@ HBOX: InitialDelay: 125 CloakDelay: 60 IsPlayerPalette: true + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical Turreted: TurnSpeed: 255 -QuantizeFacingsFromSequence: diff --git a/mods/ra/rules/vehicles.yaml b/mods/ra/rules/vehicles.yaml index b8fe55c8e4..4583796ac5 100644 --- a/mods/ra/rules/vehicles.yaml +++ b/mods/ra/rules/vehicles.yaml @@ -779,6 +779,10 @@ STNK: CloakSound: appear1.aud UncloakSound: appear1.aud IsPlayerPalette: true + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical DetectCloaked: Range: 7c0 -MustBeDestroyed: diff --git a/mods/ts/rules/nod-vehicles.yaml b/mods/ts/rules/nod-vehicles.yaml index cf38e7380d..4b75676b32 100644 --- a/mods/ts/rules/nod-vehicles.yaml +++ b/mods/ts/rules/nod-vehicles.yaml @@ -396,6 +396,10 @@ STNK: UncloakSound: cloak5.aud IsPlayerPalette: true UncloakOn: Attack, Unload, Infiltrate, Demolish, Damage + RequiresCondition: !uncloak + GrantConditionOnDamageState@UNCLOAK: + Condition: uncloak + ValidDamageStates: Critical Armament: Weapon: Dragon LocalOffset: 213,43,298, 213,-43,298 From 0483708487282e9807f77082e46e5dab3cec4373 Mon Sep 17 00:00:00 2001 From: forcecore Date: Fri, 24 Feb 2017 20:25:12 -0600 Subject: [PATCH 3/3] Rename uncloaking conditions from uncloak to cloak-force-disabled Descriptive condition name is better. --- mods/cnc/rules/defaults.yaml | 6 +++--- mods/cnc/rules/misc.yaml | 2 +- mods/cnc/rules/vehicles.yaml | 4 ++-- mods/d2k/rules/infantry.yaml | 8 ++++---- mods/d2k/rules/vehicles.yaml | 4 ++-- mods/ra/rules/infantry.yaml | 8 ++++---- mods/ra/rules/ships.yaml | 8 ++++---- mods/ra/rules/structures.yaml | 4 ++-- mods/ra/rules/vehicles.yaml | 4 ++-- mods/ts/rules/nod-vehicles.yaml | 4 ++-- 10 files changed, 26 insertions(+), 26 deletions(-) diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index 71363ace40..1c53911fae 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -125,11 +125,11 @@ CloakDelay: 90 CloakSound: trans1.aud UncloakSound: trans1.aud - RequiresCondition: cloak && !uncloak + RequiresCondition: cloak-crate-collected && !cloak-force-disabled ExternalCondition@CLOAK: - Condition: cloak + Condition: cloak-crate-collected GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical ^Vehicle: diff --git a/mods/cnc/rules/misc.yaml b/mods/cnc/rules/misc.yaml index efeab016f0..97be8cc0e8 100644 --- a/mods/cnc/rules/misc.yaml +++ b/mods/cnc/rules/misc.yaml @@ -19,7 +19,7 @@ CRATE: GrantExternalConditionCrateAction@cloak: SelectionShares: 5 Effect: cloak - Condition: cloak + Condition: cloak-crate-collected GiveMcvCrateAction: SelectionShares: 0 NoBaseSelectionShares: 120 diff --git a/mods/cnc/rules/vehicles.yaml b/mods/cnc/rules/vehicles.yaml index c4e1b50e9c..d22ff46b6d 100644 --- a/mods/cnc/rules/vehicles.yaml +++ b/mods/cnc/rules/vehicles.yaml @@ -547,9 +547,9 @@ STNK: CloakDelay: 90 CloakSound: trans1.aud UncloakSound: trans1.aud - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical Armament: Weapon: 227mm.stnk diff --git a/mods/d2k/rules/infantry.yaml b/mods/d2k/rules/infantry.yaml index 65803d9396..5221b9f457 100644 --- a/mods/d2k/rules/infantry.yaml +++ b/mods/d2k/rules/infantry.yaml @@ -152,9 +152,9 @@ fremen: CloakSound: STEALTH1.WAV UncloakSound: STEALTH2.WAV IsPlayerPalette: true - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical -MustBeDestroyed: Voiced: @@ -250,9 +250,9 @@ saboteur: UncloakSound: STEALTH2.WAV UncloakOn: Attack, Unload, Infiltrate, Demolish, Move, Damage IsPlayerPalette: true - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical Voiced: VoiceSet: SaboteurVoice diff --git a/mods/d2k/rules/vehicles.yaml b/mods/d2k/rules/vehicles.yaml index 95921990c3..ab75f5bd15 100644 --- a/mods/d2k/rules/vehicles.yaml +++ b/mods/d2k/rules/vehicles.yaml @@ -394,9 +394,9 @@ stealth_raider: CloakSound: STEALTH1.WAV UncloakSound: STEALTH2.WAV IsPlayerPalette: true - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical AutoTarget: InitialStance: HoldFire diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index c7547d592d..a291b986b5 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -508,9 +508,9 @@ HIJACKER: UncloakOn: Attack, Unload, Infiltrate, Demolish, Move CloakTypes: Cloak, Hijacker IsPlayerPalette: true - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical Mobile: Speed: 85 @@ -593,9 +593,9 @@ SNIPER: UncloakSound: UncloakOn: Attack, Unload, Infiltrate, Demolish, Move IsPlayerPalette: true - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical DetectCloaked: CloakTypes: Cloak, Hijacker diff --git a/mods/ra/rules/ships.yaml b/mods/ra/rules/ships.yaml index c391718cba..bf4d35046d 100644 --- a/mods/ra/rules/ships.yaml +++ b/mods/ra/rules/ships.yaml @@ -36,9 +36,9 @@ SS: UncloakSound: subshow1.aud CloakedCondition: underwater Palette: submerged - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical Armament: Weapon: TorpTube @@ -97,9 +97,9 @@ MSUB: UncloakSound: subshow1.aud CloakedCondition: underwater Palette: submerged - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical Armament@PRIMARY: Weapon: SubMissile diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index 681e22f34e..0e2614d6db 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -626,9 +626,9 @@ HBOX: InitialDelay: 125 CloakDelay: 60 IsPlayerPalette: true - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical Turreted: TurnSpeed: 255 diff --git a/mods/ra/rules/vehicles.yaml b/mods/ra/rules/vehicles.yaml index 4583796ac5..ffe6bd14b0 100644 --- a/mods/ra/rules/vehicles.yaml +++ b/mods/ra/rules/vehicles.yaml @@ -779,9 +779,9 @@ STNK: CloakSound: appear1.aud UncloakSound: appear1.aud IsPlayerPalette: true - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical DetectCloaked: Range: 7c0 diff --git a/mods/ts/rules/nod-vehicles.yaml b/mods/ts/rules/nod-vehicles.yaml index 4b75676b32..71080cbf7e 100644 --- a/mods/ts/rules/nod-vehicles.yaml +++ b/mods/ts/rules/nod-vehicles.yaml @@ -396,9 +396,9 @@ STNK: UncloakSound: cloak5.aud IsPlayerPalette: true UncloakOn: Attack, Unload, Infiltrate, Demolish, Damage - RequiresCondition: !uncloak + RequiresCondition: !cloak-force-disabled GrantConditionOnDamageState@UNCLOAK: - Condition: uncloak + Condition: cloak-force-disabled ValidDamageStates: Critical Armament: Weapon: Dragon