Skip to content

Commit

Permalink
Hacker update model, mechanics
Browse files Browse the repository at this point in the history
  • Loading branch information
patrickwieth committed Nov 24, 2024
1 parent ef6a73b commit 28f98d4
Show file tree
Hide file tree
Showing 17 changed files with 272 additions and 299 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ Contributors & special thanks to:
* Lord Kal (Medic)
* machine (Jumpjet)
* MadHQ (Ion Turret)
* taboam (superspy/Hacker)

Of course YMCA wouldn't exist today without OpenRA & the
hard work of the many OpenRA contributors.
Expand Down
Binary file removed mods/ca/bits/hack.shp
Binary file not shown.
Binary file added mods/ca/bits/nod/hackericon.shp
Binary file not shown.
Binary file removed mods/ca/bits/pcanicnh.shp
Binary file not shown.
7 changes: 0 additions & 7 deletions mods/ca/rules/allies/vehicles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ Prismtank:
Cost: 1350
Tooltip:
Name: Prism Tank
GenericName: Tank
Health:
HP: 22000
Mobile:
Expand Down Expand Up @@ -87,12 +86,6 @@ PCAN:
FireDelay: 10
LocalOffset: 600,0,300
PauseOnCondition: empdisable || being-warped
SpawnActorOnDeath:
Actor: Prismtank.Husk
RequiresCondition: !being-warped
SelectionDecorations:
Voiced:
VoiceSet: PrismVoice

CTNK:
Inherits: ^Tank
Expand Down
10 changes: 5 additions & 5 deletions mods/ca/rules/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2473,10 +2473,9 @@ PROC.Dummy:
WithInfantryBody:
RequiresCondition: !being-warped && !onwater
WithInfantryBody@Swim:
IdleSequences: swimidle1, swimidle2, swimcheer
StandSequences: swimidle1, swimidle2
-AttackSequences:
DefaultAttackSequence: swimattack
IdleSequences: swim-idle1, swim-idle2, swim-cheer
StandSequences: swim-idle1, swim-idle2
DefaultAttackSequence: swim-attack
MoveSequence: swim
RequiresCondition: !being-warped && onwater
WithDeathAnimation:
Expand All @@ -2486,7 +2485,8 @@ PROC.Dummy:
UseDeathTypeSuffix: False
FallbackSequence: splash
CrushedSequence: die-crushed
DeathSequence: swimdie1
DeathSequence: swim-die
DeathSequencePalette: playerra2

^Ship:
Inherits@1: ^ExistsInWorld
Expand Down
2 changes: 1 addition & 1 deletion mods/ca/rules/gdi/vehicles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ MARV:
Inherits: ^ThrowsShrapnel
Buildable:
Queue: Vehicle
BuildPaletteOrder: 0
BuildPaletteOrder: 190
IconPalette: chrometd
Prerequisites: ~vehicles.gdi, ~commander_tree.marv, miss.gdi
Description: Enormous slow tank with triple ion blaster cannons. \nMines Tiberium and Ores when driving over.
Expand Down
98 changes: 5 additions & 93 deletions mods/ca/rules/infantry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1500,7 +1500,11 @@ SEAL:
Queue: Infantry
IconPalette: chrome
BuildLimit: -1
Description: Elite infantry unit. Armed with\na SMG and C4.\n Can detect cloaked units.\n Strong vs Infantry, Buildings\n Weak vs Aircraft\n Special Ability: C4 Explosives
Description: Elite infantry unit. Armed with\na SMG and C4.\n Can detect cloaked units.
TooltipExtras:
Strengths: • Strong vs Infantry, Buildings
Weaknesses: • Weak vs Aircraft, Vehicles
Attributes: • Can swim \n• C4 Explosives
Voiced:
VoiceSet: SealVoice
Mobile:
Expand Down Expand Up @@ -1559,95 +1563,3 @@ SEAL:
WithAmmoPipsDecoration:
Position: BottomLeft
RequiresSelection: true

HACK:
Inherits: ^Soldier
Inherits: ^PrioAntiHeavy
Buildable:
Queue: Infantry
Prerequisites: ~disabled
BuildAtProductionType: Soldier
Valued:
Cost: 500
Tooltip:
Name: Hacker
TooltipExtras:
Strengths: • Strong vs Buildings, Defenses, Drones
Weaknesses: • Cannot attack Infantry, Aircraft, Vehicles (other than Drones)
Attributes: • Can capture enemy structures from range\n• Control lost if the Hacker dies
UpdatesPlayerStatistics:
AddToArmyValue: true
Health:
HP: 5000
Mobile:
Speed: 56
Voice: Move
PauseOnCondition: !undeployed && being-warped
RequireForceMoveCondition: !undeployed
RevealsShroud:
Range: 5c0
Passenger:
CustomPipType: blue
Voice: Move
Armament@PRIMARY:
Weapon: PrepareHack
PauseOnCondition: deployed
Armament@PRIMARYDEPLOYED:
Weapon: Hack
RequiresCondition: deployed
LocalOffset: 0,0,50
AttackFrontal:
Voice: Action
FacingTolerance: 512
TargetFrozenActors: true
PauseOnCondition: being-warped
WithInfantryBody:
IdleSequences: idle
StandSequences: stand
RequiresCondition: undeployed
WithSpriteBody@DEPLOYED:
Name: deployed
Sequence: hack
RequiresCondition: !undeployed
WithMakeAnimation:
BodyNames: deployed
Voiced:
VoiceSet: HackerVoice
Targetable:
TargetTypes: Ground, Infantry, Disguise, ChaosImmune
GrantConditionOnDeploy@HACK:
DeployedCondition: deployed
UndeployedCondition: undeployed
UndeployOnMove: true
UndeployOnPickup: true
SmartDeploy: True
DeployOnAttack:
RequiresCondition: undeployed
MindController:
ArmamentNames: primary
Capacity: -1
TicksToControl: 300
TicksToRevoke: 25
InitSounds: hacker-init.aud
InitSoundControllerOnly: true
ControlSounds: hacker-hacked.aud
ControllingCondition: hacked-in
UndeployOnControl: true
WithDecoration@HACKEDIN:
Image: hacking
Sequence: hacking
RequiresCondition: hacked-in
Position: BottomRight
Palette: effect
ValidRelationships: Ally, Neutral, Enemy
WithMindControlArc@HACK:
Color: 1ce312
Transparency: 65
Angle: 60
Width: 86
Offset: 0,0,50
AutoTarget:
InitialStance: HoldFire
InitialStanceAI: AttackAnything
RenderRangeCircle:
Color: 00cc00
8 changes: 5 additions & 3 deletions mods/ca/rules/misc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -606,6 +606,8 @@ powerproxy.paratroopers2:
ArrowSequence: arrow
ClockSequence: clock
CircleSequence: circles
UseDirectionalTarget: True
DirectionArrowAnimation: paradirection

powerproxy.airborne.tank:
Buildable:
Expand All @@ -618,11 +620,11 @@ powerproxy.airborne.tank:
Icon: airdropicon
SquadSize: 1
UnitType: C17
Name: Airdrop: Grizzly Tanks (Single Use)
Description: A Heavy Transport Plane drops a quad of Grizzly Tanks\nanywhere on the map.
Name: Airdrop: Scout Tanks (Single Use)
Description: A Heavy Transport Plane drops a quad of Scout Tanks\nanywhere on the map.
OneShot: true
AllowMultiple: true
DropItems: GTNK,GTNK,GTNK,GTNK
DropItems: 1TNK,1TNK,1TNK,1TNK
SelectTargetSpeechNotification: SelectTarget
EndChargeSpeechNotification: Reinforce
LaunchSpeechNotification: ReinforcementsArrived
Expand Down
128 changes: 116 additions & 12 deletions mods/ca/rules/nod/infantry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ Adept:
BuildAtProductionType: Soldier
BuildPaletteOrder: 10
Prerequisites: ~!bio.nod, infantry.any, ~infantry.nod
Description: General-purpose infantry with good scouting abilities.\n Strong vs Infantry\n Weak vs Vehicles, Aircraft
Description: General-purpose infantry with good scouting abilities.
TooltipExtras:
Strengths: • Strong vs Infantry
Weaknesses: • Weak vs. Vehicles, Aircraft
Attributes: • Equipped with scout equipment
Valued:
Cost: 100
Tooltip:
Expand All @@ -36,7 +40,11 @@ Stormtrooper:
Queue: Infantry
BuildPaletteOrder: 10
Prerequisites: ~bio.nod, ~hand
Description: General-purpose cyborg with good scout abilities.\n Strong vs Infantry\n Weak vs Vehicles, Artillery
Description: General-purpose cyborg with good scout abilities.
TooltipExtras:
Strengths: • Strong vs Infantry
Weaknesses: • Weak vs. Vehicles, Aircraft
Attributes: • Equipped with scout equipment
Valued:
Cost: 150
Tooltip:
Expand Down Expand Up @@ -74,7 +82,10 @@ Rocket_Trooper:
BuildAtProductionType: Soldier
BuildPaletteOrder: 30
Prerequisites: ~!bio.nod, infantry.any, ~infantry.nod
Description: Anti-tank/anti-aircraft infantry.\n Strong vs Tanks, Aircraft\n Weak vs Infantry
Description: Anti-tank/anti-aircraft infantry.
TooltipExtras:
Strengths: • Strong vs Heavy Vehicles, Aircraft
Weaknesses: • Weak vs. Infantry, Aircraft
Valued:
Cost: 250
Tooltip:
Expand Down Expand Up @@ -137,7 +148,10 @@ Rocket_Cyborg:
Queue: Infantry
BuildPaletteOrder: 20
Prerequisites: ~bio.nod, ~hand
Description: Anti-tank cyborg infantry\n Strong vs Tanks, Aircraft\n Weak vs Infantry, Artillery
Description: Anti-tank cyborg infantry
TooltipExtras:
Strengths: • Strong vs Heavy Vehicles, Aircraft
Weaknesses: • Weak vs. Infantry, Aircraft
Valued:
Cost: 350
Tooltip:
Expand Down Expand Up @@ -200,7 +214,10 @@ Black_Hand_Trooper:
BuildAtProductionType: Soldier
BuildPaletteOrder: 150
Prerequisites: radar, ~infantry.blackh
Description: Elite precision flamethrower unit.\n Strong vs Vehicles, Infantry\n Weak vs Aircraft
Description: Elite precision flamethrower unit.
TooltipExtras:
Strengths: • Strong vs Infantry, Light Vehicles, Buildings
Weaknesses: • Weak vs. Heavy Armor, Aircraft
Valued:
Cost: 500
Tooltip:
Expand Down Expand Up @@ -259,7 +276,11 @@ SAB:
BuildAtProductionType: Soldier
BuildPaletteOrder: 90
Prerequisites: hq, ~infantry.nod, ~commander_tree.advanced_infantry_training
Description: Covert infantry. Infiltrates enemy structures and steals technology.\n Can detect spies and cloaked units.\n Special Ability: Infiltrate\n Special Ability: Stealth
Description: Covert infantry. Infiltrates enemy structures and steals technology.
TooltipExtras:
Strengths: • Strong vs Infantry, Light Vehicles
Weaknesses: • Weak vs. Reflector Armor, Aircraft
Attributes: • Cloaked \n• Infiltrates buildings\n•Detects cloaked units
Valued:
Cost: 800
Tooltip:
Expand Down Expand Up @@ -292,6 +313,81 @@ SAB:
IsPlayerPalette: true
Palette: cloakts

HACK:
Inherits: ^Soldier
Inherits: ^InfantryRA2Sprite
Inherits: ^InfantrySwimmer
Inherits: ^PrioAntiHeavy
Inherits: ^CommandoSkull
Buildable:
Queue: Infantry
BuildPaletteOrder: 195
Prerequisites: ~infantry.legion, techcenter, ~commander_tree.advanced_infantry_training
Description: The Hacker can take control of defenses and buildings.
BuildLimit: 1
TooltipExtras:
Strengths: • Strong vs Buildings, Defenses
Weaknesses: • Cannot attack Infantry, Aircraft, Vehicles
Attributes: • Can capture enemy structures from range\n• Control lost if the Hacker dies\n• Can swim
Valued:
Cost: 1000
Tooltip:
Name: Hacker
Health:
HP: 5000
RevealsShroud:
Range: 15c0
Passenger:
CustomPipType: blue
Voice: Move
Armament@PRIMARY:
Weapon: Hack
LocalOffset: 0,0,50
AttackFrontal:
Voice: Action
FacingTolerance: 512
TargetFrozenActors: true
PauseOnCondition: being-warped
WithInfantryBody:
IdleSequences: idle
DefaultAttackSequence: hacking
WithInfantryBody@Swim:
IdleSequences: swim-idle
StandSequences: swim-stand
DefaultAttackSequence: swim-action
Voiced:
VoiceSet: HackerVoice
Targetable:
TargetTypes: Ground, Infantry, Disguise, ChaosImmune
MindController:
ArmamentNames: primary
Capacity: -1
TicksToControl: 300
TicksToRevoke: 25
InitSounds: hacker-init.aud
InitSoundControllerOnly: true
ControlSounds: hacker-hacked.aud
ControllingCondition: hacked-in
UndeployOnControl: true
WithDecoration@HACKEDIN:
Image: hacking
Sequence: hacking
RequiresCondition: hacked-in
Position: BottomRight
Palette: effect
ValidRelationships: Ally, Neutral, Enemy
WithMindControlArc@HACK:
Color: 1ce312
Transparency: 65
Angle: 60
Width: 86
Offset: 0,0,50
AutoTarget:
InitialStance: HoldFire
InitialStanceAI: AttackAnything
RenderRangeCircle:
Color: 00cc00

Obelisk_Trooper:
Inherits: ^Soldier
Inherits: ^InfantryRA2Sprite
Expand All @@ -303,6 +399,10 @@ Obelisk_Trooper:
IconPalette: chrome
Prerequisites: ~hand, hq, ~infantry.marked, ~commander_tree.advanced_infantry_training
Description: Elite infantry with a laser weapon.\n Strong vs Infantry, Light Armor\n Weak vs Aircraft\n
TooltipExtras:
Strengths: • Strong vs Infantry, Light Vehicles
Weaknesses: • Weak vs. Reflector Armor, Aircraft
Attributes: • Pew pew laser gunz!
Valued:
Cost: 300
Tooltip:
Expand Down Expand Up @@ -348,18 +448,22 @@ Cyborg_Commando:
-TakeCover:
-Crushable:
Inherits: ^HighResShadow
Inherits@Armor: ^HeavyArmor
Inherits: ^HeavyArmor
Inherits: ^PrioEnergyWeapon
Inherits@GAINSEXPERIENCE: ^GainsExperience
Inherits@detect: ^SensorEquipment
Inherits@COMMANDOSKULL: ^CommandoSkull
Inherits: ^GainsExperience
Inherits: ^SensorEquipment
Inherits: ^CommandoSkull
Buildable:
Queue: Infantry
BuildPaletteOrder: 195
IconPalette: chrometd
Prerequisites: ~infantry.nod, techcenter, ~commander_tree.advanced_infantry_training
Description: Tough combat battle-mech.\n Can attack Aircraft.\n Strong vs Infantry, Tanks\n Weak vs Point Laser Defense
Prerequisites: ~infantry.marked, techcenter, ~commander_tree.advanced_infantry_training
Description: Tough combat battle-mech.
BuildLimit: 1
TooltipExtras:
Strengths: • Strong vs Infantry, Vehicles
Weaknesses: • Weak vs. Reflector Armor, Aircraft
Attributes: • Laser sweeps over area
Valued:
Cost: 3000
Tooltip:
Expand Down
Loading

0 comments on commit 28f98d4

Please sign in to comment.