diff --git a/mods/ca/bits/allies/rocketinfantry.shp b/mods/ca/bits/allies/rocketinfantry.shp new file mode 100644 index 00000000..787b180d Binary files /dev/null and b/mods/ca/bits/allies/rocketinfantry.shp differ diff --git a/mods/ca/bits/allies/rocketinfantryicon.shp b/mods/ca/bits/allies/rocketinfantryicon.shp new file mode 100644 index 00000000..f3580a31 Binary files /dev/null and b/mods/ca/bits/allies/rocketinfantryicon.shp differ diff --git a/mods/ca/bits/soviet/heavytank.hva b/mods/ca/bits/soviet/heavytank.hva new file mode 100644 index 00000000..761c713c Binary files /dev/null and b/mods/ca/bits/soviet/heavytank.hva differ diff --git a/mods/ca/bits/soviet/heavytank.vxl b/mods/ca/bits/soviet/heavytank.vxl new file mode 100644 index 00000000..88d2b25b Binary files /dev/null and b/mods/ca/bits/soviet/heavytank.vxl differ diff --git a/mods/ca/bits/soviet/heavytanktur.hva b/mods/ca/bits/soviet/heavytanktur.hva new file mode 100644 index 00000000..761c713c Binary files /dev/null and b/mods/ca/bits/soviet/heavytanktur.hva differ diff --git a/mods/ca/bits/soviet/heavytanktur.vxl b/mods/ca/bits/soviet/heavytanktur.vxl new file mode 100644 index 00000000..9b7e2d9e Binary files /dev/null and b/mods/ca/bits/soviet/heavytanktur.vxl differ diff --git a/mods/ca/bits/soviet/rpgsoldiericon.shp b/mods/ca/bits/soviet/rpgsoldiericon.shp new file mode 100644 index 00000000..648ac27c Binary files /dev/null and b/mods/ca/bits/soviet/rpgsoldiericon.shp differ diff --git a/mods/ca/maps/delirium-shell/map.bin b/mods/ca/maps/delirium-shell/map.bin index dfb04389..38170a31 100644 Binary files a/mods/ca/maps/delirium-shell/map.bin and b/mods/ca/maps/delirium-shell/map.bin differ diff --git a/mods/ca/maps/delirium-shell/map.png b/mods/ca/maps/delirium-shell/map.png index afdb962f..8deb9c5a 100644 Binary files a/mods/ca/maps/delirium-shell/map.png and b/mods/ca/maps/delirium-shell/map.png differ diff --git a/mods/ca/maps/delirium-shell/map.yaml b/mods/ca/maps/delirium-shell/map.yaml index 20194aad..8d5f7047 100644 --- a/mods/ca/maps/delirium-shell/map.yaml +++ b/mods/ca/maps/delirium-shell/map.yaml @@ -1,4 +1,4 @@ -MapFormat: 11 +MapFormat: 12 RequiresMod: ca @@ -1074,37 +1074,37 @@ Actors: TurretFacing: 384 SubCell: 3 Location: 84,86 - Actor385: e3 + Actor385: rocket_infantry Owner: Multi0 Facing: 384 TurretFacing: 384 Location: 84,87 SubCell: 3 - Actor386: e3 + Actor386: rocket_infantry Owner: Multi0 Facing: 384 TurretFacing: 384 SubCell: 1 Location: 85,87 - Actor387: e3 + Actor387: rocket_infantry Owner: Multi0 Facing: 384 TurretFacing: 384 Location: 73,78 SubCell: 3 - Actor388: e3 + Actor388: rocket_infantry Owner: Multi0 Facing: 384 TurretFacing: 384 SubCell: 3 Location: 69,87 - Actor389: e3 + Actor389: rocket_infantry Owner: Multi0 Facing: 384 TurretFacing: 384 SubCell: 3 Location: 77,89 - Actor390: e3 + Actor390: rocket_infantry Owner: Multi0 Facing: 384 TurretFacing: 384 @@ -1207,7 +1207,6 @@ Actors: Location: 96,77 Facing: 80 Stance: AttackAnything - Health: 100 Actor431: tpod Owner: Multi2 Facing: 384 diff --git a/mods/ca/maps/delirium-shell/rules.yaml b/mods/ca/maps/delirium-shell/rules.yaml index 6e90be26..0129dc4d 100644 --- a/mods/ca/maps/delirium-shell/rules.yaml +++ b/mods/ca/maps/delirium-shell/rules.yaml @@ -42,7 +42,7 @@ World: powerproxy.paratroopers: ParatroopersPower: DisplayBeacon: false - DropItems: light_infantry,light_infantry,E2,E3,flamethrower + DropItems: light_infantry,light_infantry,E2,rocket_infantry,flamethrower PROC: FreeActor: diff --git a/mods/ca/maps/delirium-shell/shellmap.lua b/mods/ca/maps/delirium-shell/shellmap.lua index a6e2eea3..099273a9 100644 --- a/mods/ca/maps/delirium-shell/shellmap.lua +++ b/mods/ca/maps/delirium-shell/shellmap.lua @@ -10,12 +10,12 @@ NodLightUnitTypes = { "bike", "bike", "bggy", "rmbc", "rmbc", "stormtrooper", "stormtrooper", "stormtrooper", "stormtrooper", "rocket_cyborg", "rocket_cyborg" } NodHeavyUnitTypes = { "mtnk", "mtnk", "ftnk", "ftnk", "wtnk", "wtnk", "cdrn" } NodAirUnitTypes = {"scrn", "scrn", "scrn"} -AlliedUnitTypes = { "jeep", "1tnk", "ifv.ai", "1tnk", "rtnk", "ifv.ai", "ptnk", "light_infantry", "light_infantry", "light_infantry", "light_infantry", "e3", "e3", "e3", "e3" } +AlliedUnitTypes = { "jeep", "1tnk", "ifv.ai", "1tnk", "rtnk", "ifv.ai", "ptnk", "light_infantry", "light_infantry", "light_infantry", "light_infantry", "rocket_infantry", "rocket_infantry", "rocket_infantry", "rocket_infantry" } ScrinUnitTypes = { "seek", "seek", "gunw", "devo", "tpod", "s1", "s1", "s1", "s1", "s3", "s3" } ScrinAirUnitTypes = {"deva", "stmr", "stmr"} ProducedUnitTypes = { - { factory = AlliedBarracks1, types = { "light_infantry", "e3" } }, + { factory = AlliedBarracks1, types = { "light_infantry", "rocket_infantry" } }, { factory = ScrinBarracks1, types = { "s1", "s3" } }, { factory = NodBarracks1, types = { "adept", "rocket_trooper", "n4" } }, { factory = AlliedWarFactory1, types = { "1tnk", "2tnk", "ptnk", "jeep", "ifv.ai", "cryo", "rtnk" } }, @@ -23,7 +23,7 @@ ProducedUnitTypes = { factory = NodWarFactory1, types = { "ltnk", "ftnk", "stnk", "arty.nod", "mlrs" } } } -HelicopterUnitTypes = { "light_infantry", "light_infantry", "light_infantry", "light_infantry", "e3", "e3" }; +HelicopterUnitTypes = { "light_infantry", "light_infantry", "light_infantry", "light_infantry", "rocket_infantry", "rocket_infantry" }; BindActorTriggers = function(a) if a.HasProperty("Hunt") then diff --git a/mods/ca/maps/island-wars-ii-shell/rules.yaml b/mods/ca/maps/island-wars-ii-shell/rules.yaml index 033c5cbf..8d22965a 100644 --- a/mods/ca/maps/island-wars-ii-shell/rules.yaml +++ b/mods/ca/maps/island-wars-ii-shell/rules.yaml @@ -72,4 +72,4 @@ World: powerproxy.paratroopers: ParatroopersPower: DisplayBeacon: false - DropItems: conscript,conscript,E2,E3,flamethrower + DropItems: conscript,conscript,E2,E3.soviet,flamethrower diff --git a/mods/ca/maps/island-wars-ii-shell/shellmap.lua b/mods/ca/maps/island-wars-ii-shell/shellmap.lua index 68a7a302..cfb6432a 100644 --- a/mods/ca/maps/island-wars-ii-shell/shellmap.lua +++ b/mods/ca/maps/island-wars-ii-shell/shellmap.lua @@ -10,12 +10,12 @@ UnitTypes = { "3tnk", "ttnk" } GDIUnitTypes = { "mtnk", "mtnk" } GDIMLRSTypes = { "msam", "msam" } -BeachUnitTypes = { "conscript", "e2", "e3", "flamethrower", "conscript", "e2", "e3", "flamethrower", "conscript", "e2", "e3", "flamethrower", "conscript", "e2", "e3", "shok" } +BeachUnitTypes = { "conscript", "e2", "e3.soviet", "flamethrower", "conscript", "e2", "e3.soviet", "flamethrower", "conscript", "e2", "e3.soviet", "flamethrower", "conscript", "e2", "e3.soviet", "shok" } GDIBeachUnitTypes = { "mercenary", "n2", "rocket_mercenary", "n2", "mercenary", "n2", "rocket_mercenary", "mercenary", "mercenary", "n2", "rocket_mercenary", "mercenary", "mercenary", "mercenary", "mercenary", "mercenary" } ProducedUnitTypes = { - { factory = AlliedBarracks1, types = { "light_infantry", "e3" } }, - { factory = SovietBarracks1, types = { "conscript", "e2", "e3" } }, + { factory = AlliedBarracks1, types = { "light_infantry", "rocket_infantry" } }, + { factory = SovietBarracks1, types = { "conscript", "e2", "e3.soviet" } }, { factory = SKennel1, types = { "dog" } }, { factory = ANavalYard1, types = { "pt2" } }, { factory = SSubPen1, types = { "ss" } }, diff --git a/mods/ca/rules/ai/brutal.yaml b/mods/ca/rules/ai/brutal.yaml index 929d0945..03df2152 100644 --- a/mods/ca/rules/ai/brutal.yaml +++ b/mods/ca/rules/ai/brutal.yaml @@ -216,7 +216,8 @@ Player: conscript: 65 light_infantry: 65 e2: 25 - e3: 40 + e3.soviet: 40 + rocket_infantry: 40 flamethrower: 15 e6: 5 adept: 65 diff --git a/mods/ca/rules/ai/easy.yaml b/mods/ca/rules/ai/easy.yaml index 8423a31b..9148462f 100644 --- a/mods/ca/rules/ai/easy.yaml +++ b/mods/ca/rules/ai/easy.yaml @@ -200,7 +200,8 @@ Player: conscript: 65 light_infantry: 65 e2: 25 - e3: 40 + e3.soviet: 40 + rocket_infantry: 40 flamethrower: 15 e6: 5 adept: 65 diff --git a/mods/ca/rules/ai/hard.yaml b/mods/ca/rules/ai/hard.yaml index d5b358fd..5978c6d5 100644 --- a/mods/ca/rules/ai/hard.yaml +++ b/mods/ca/rules/ai/hard.yaml @@ -209,7 +209,8 @@ Player: conscript: 65 light_infantry: 65 e2: 25 - e3: 40 + e3.soviet: 40 + rocket_infantry: 40 flamethrower: 15 e6: 5 adept: 65 diff --git a/mods/ca/rules/ai/naval.yaml b/mods/ca/rules/ai/naval.yaml index 3070e825..152e987a 100644 --- a/mods/ca/rules/ai/naval.yaml +++ b/mods/ca/rules/ai/naval.yaml @@ -159,7 +159,8 @@ Player: conscript: 65 light_infantry: 65 e2: 25 - e3: 40 + e3.soviet: 40 + rocket_infantry: 40 flamethrower: 15 adept: 65 mercenary: 65 diff --git a/mods/ca/rules/ai/normal.yaml b/mods/ca/rules/ai/normal.yaml index 032765ab..39d5128a 100644 --- a/mods/ca/rules/ai/normal.yaml +++ b/mods/ca/rules/ai/normal.yaml @@ -201,7 +201,8 @@ Player: conscript: 65 light_infantry: 65 e2: 25 - e3: 40 + e3.soviet: 40 + rocket_infantry: 40 flamethrower: 15 e6: 5 adept: 65 diff --git a/mods/ca/rules/aircraft.yaml b/mods/ca/rules/aircraft.yaml index ddb38ddb..2aed2e32 100644 --- a/mods/ca/rules/aircraft.yaml +++ b/mods/ca/rules/aircraft.yaml @@ -781,7 +781,7 @@ TRAN.Eagle: TurnSpeed: 20 Speed: 155 Cargo: - InitialUnits: e3, e3, e3, e3 + InitialUnits: rocket_infantry, rocket_infantry, rocket_infantry, rocket_infantry AutoTarget: InitialStance: Defend InitialStanceAI: Defend diff --git a/mods/ca/rules/allies/defaults.yaml b/mods/ca/rules/allies/defaults.yaml index 61b98dba..37b86274 100644 --- a/mods/ca/rules/allies/defaults.yaml +++ b/mods/ca/rules/allies/defaults.yaml @@ -40,7 +40,7 @@ ClassName: Light Support Factions: allies, england, france, germany BaseActor: mcv - SupportActors: light_infantry,light_infantry,light_infantry,e3,e3 + SupportActors: light_infantry,light_infantry,light_infantry,rocket_infantry,rocket_infantry InnerSupportRadius: 3 OuterSupportRadius: 5 StartingUnits@heavyallies: @@ -48,6 +48,6 @@ ClassName: Heavy Support Factions: allies, england, france, germany BaseActor: mcv - SupportActors: light_infantry,light_infantry,light_infantry,e3,e3,e3,2tnk,2tnk + SupportActors: light_infantry,light_infantry,light_infantry,rocket_infantry,rocket_infantry,rocket_infantry,2tnk,2tnk InnerSupportRadius: 3 OuterSupportRadius: 5 diff --git a/mods/ca/rules/allies/infantry.yaml b/mods/ca/rules/allies/infantry.yaml index 7033c91b..25791205 100644 --- a/mods/ca/rules/allies/infantry.yaml +++ b/mods/ca/rules/allies/infantry.yaml @@ -31,6 +31,331 @@ Light_Infantry: PauseOnCondition: being-warped FacingTolerance: 0 +Rocket_Infantry: + Inherits: ^Soldier + Inherits: ^InfantryRA2Sprite + Inherits: ^WhiteFlash + Inherits: ^PrioAntiHeavyAA + Inherits: ^RelayTargeting + Buildable: + Queue: Infantry + BuildAtProductionType: Soldier + BuildPaletteOrder: 30 + Prerequisites: ~infantry.allies, ~!commander_tree.advanced_infantry_training + Description: Anti-tank/anti-aircraft infantry.\n Strong vs Tanks, Aircraft\n Weak vs Infantry + Valued: + Cost: 250 + Tooltip: + Name: Rocket Soldier + UpdatesPlayerStatistics: + AddToArmyValue: true + Health: + HP: 3500 + Mobile: + speed: 54 + Armament@primary: + Name: primary + Weapon: Dragon.Relay + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@tertiary: + Name: tertiary + Weapon: RedEye + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@secondary: + Name: secondary + Weapon: Dragon.Inf + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@Garrison: + Name: mounted + Weapon: DragonE + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@GarrisonAA: + Name: mountedaa + Weapon: RedEyeE + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + AmmoPool: + Armaments: primary, secondary, tertiary + Ammo: 1 + AmmoCondition: ammo + ReloadAmmoPool: + Delay: 50 + Count: 1 + TakeCover: + ProneOffset: 384,0,-395 + AttackFrontal: + Armaments: primary, secondary, tertiary + PauseOnCondition: being-warped + FacingTolerance: 0 + +E3.soviet: + Inherits: Rocket_Infantry + Inherits: ^InfantryTDSprite + Inherits: ^SovietInfantry + Buildable: + Prerequisites: ~infantry.soviet + +Rocket_Infantry.cryo: + Inherits: Rocket_Infantry + Buildable: + Prerequisites: ~infantry.allies, ~commander_tree.advanced_infantry_training + Description: Anti-tank/anti-aircraft infantry.\n Strong vs Tanks, Aircraft\n Weak vs Infantry + Tooltip: + Name: Cryo Rocket Soldier + Armament@primary: + Name: primary + Weapon: Dragon.Relay.Cryo + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@tertiary: + Name: tertiary + Weapon: RedEye.Cryo + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@secondary: + Name: secondary + Weapon: Dragon.Inf.Cryo + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@Garrison: + Name: mounted + Weapon: DragonE + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@GarrisonAA: + Name: mountedaa + Weapon: RedEyeE + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + -WithInfantryBody: + WithInfantryBody: + IdleSequences: idle-cryo1, idle-cryo2 + StandSequences: stand-cryo, stand-cryo2 + AttackSequences: shoot-cryo + DefaultAttackSequence: shoot-cryo + MoveSequence: run-cryo + -WithDeathAnimation: + WithDeathAnimation: + DeathSequence: die-cryo + DeathSequencePalette: overlayplayertd + DeathTypes: + DefaultDeath: 1 + BulletDeath: 2 + SmallExplosionDeath: 3 + ExplosionDeath: 4 + FireDeath: 5 + ElectricityDeath: 6 + PoisonDeath: 7 + ChronoDeath: 8 + ToxinDeath: 9 + RadiationDeath: 10 + FrozenDeath: 11 + CrushedSequence: die-crushed + + +U3: + Inherits: ^Soldier + Inherits: ^PrioAntiHeavyAA + AutoTargetPriority@DEFAULT: + ValidTargets: Infantry, Vehicle, Water, Underwater, Air, Defense + AutoTargetPriority@HighPrio: + ValidTargets: relayTarget + Priority: 10 + Inherits@BOTHELPER: ^BotCaptureHelper + Valued: + Cost: 350 + Tooltip: + Name: Guardian G.I. + Buildable: + Queue: Infantry + BuildAtProductionType: Soldier + BuildPaletteOrder: 30 + Prerequisites: ~infantry.germany, ~disabled + Description: Anti-tank/anti-aircraft infantry. + TooltipExtras: + Strengths: • Strong vs Heavy Armor, Aircraft, Buildings, Defenses + Weaknesses: • Weak vs Infantry, Light Armor\n• Weak anti-infantry weapon when not deployed + Attributes: • Deploys for personal anti-tank fortification\n• Uncrushable when deployed + UpdatesPlayerStatistics: + AddToArmyValue: true + Health: + HP: 6500 + Mobile: + Speed: 54 + Voice: Move + PauseOnCondition: !undeployed + Armament@PRIMARYDEP: + Weapon: RedEyeGI + Name: deployed + Turret: deploy + LocalOffset: 0,0,400 + PauseOnCondition: !ammo + RequiresCondition: !cryr-upgrade && deployed + Armament@PRIMARY: + Weapon: M14 + LocalOffset: 0,0,400 + RequiresCondition: !deployed + Armament@PRIMARYDEPUPG: + Weapon: RedEyeGI.CRYO + Name: deployed + Turret: deploy + LocalOffset: 0,0,400 + PauseOnCondition: !ammo + RequiresCondition: cryr-upgrade && deployed + Armament@SECONDARYDEP: + Name: deployed + Weapon: DragonGI + Turret: deploy + LocalOffset: 0,0,400 + PauseOnCondition: !ammo + RequiresCondition: !cryr-upgrade && deployed + Armament@SECONDARYDEPUPG: + Weapon: DragonGI.CRYO + Name: deployed + Turret: deploy + LocalOffset: 0,0,400 + PauseOnCondition: !ammo + RequiresCondition: cryr-upgrade && deployed + Armament@tertiary: + Name: deployed + Weapon: Dragon.Relay + LocalOffset: 0,0,555 + PauseOnCondition: !ammo || being-warped + Armament@GarrisonAA: + Name: mountedaa + Weapon: RedEyeGI + PauseOnCondition: !ammo + RequiresCondition: !cryr-upgrade + Armament@GarrisonAAUPG: + Name: mountedaa + Weapon: RedEyeGI.CRYO + PauseOnCondition: !ammo + RequiresCondition: cryr-upgrade + Armament@Garrison: + Name: mounted + Weapon: DragonGI + PauseOnCondition: !ammo + RequiresCondition: !cryr-upgrade + Armament@GarrisonUPG: + Name: mounted + Weapon: DragonGI.CRYO + PauseOnCondition: !ammo + RequiresCondition: cryr-upgrade + Armament@AIDummyAiming: ## Hack: Make AI deploy to attack air + PauseOnCondition: being-warped + RequiresCondition: botowner && !deployed + Weapon: AirDummyAim + AmmoPool: + Ammo: 1 + AmmoCondition: ammo + ReloadAmmoPool: + Delay: 25 + Count: 1 + TakeCover: + ProneOffset: 384,0,-395 + RequiresCondition: !deployed + DamageMultiplier: + Modifier: 50 + RequiresCondition: deployed + AutoTarget: + ScanRadius: 8 + GrantConditionOnPrerequisite@CRYO: + Condition: cryr-upgrade + Prerequisites: commander_tree.advanced_infantry_training + GrantConditionOnDeploy: + DeployedCondition: deployed + UndeployedCondition: undeployed + UndeployOnMove: True + Voice: Action + DeploySounds: igidepa.aud, igidepb.aud + UndeploySounds: igidepa.aud, igidepb.aud + PauseOnCondition: being-warped + SmartDeploy: True + RequiresCondition: !parachute + Facing: 332 + GrantCondition: + Condition: editorhack + WithInfantryBody@Editor: # HACK: negative conditions don't count in EnabledByDefault, we can use this duplicate WIB to render it on map editor + DefaultAttackSequence: shoot + RequiresCondition: !editorhack + WithInfantryBody: + DefaultAttackSequence: shoot + RequiresCondition: undeployed + WithMakeAnimation: + Sequence: deploy + BodyNames: dot + Turreted: + Turret: deploy + RealignDelay: -1 + TurnSpeed: 1023 + InitialFacing: 332 + WithSpriteTurret@idle: + Turret: deploy + Sequence: deployed + RequiresCondition: deployed && !cryr-upgrade && !animate-turret && !parachute + WithSpriteTurret@animated: + Turret: deploy + Sequence: deploy-shoot + RequiresCondition: deployed && !cryr-upgrade && animate-turret && !parachute + WithSpriteTurret@idleupg: + Turret: deploy + Sequence: deployedcr + RequiresCondition: deployed && cryr-upgrade && !animate-turret && !parachute + WithSpriteTurret@animatedupg: + Turret: deploy + Sequence: deploy-shootcr + RequiresCondition: deployed && cryr-upgrade && animate-turret && !parachute + WithSpriteBody: + Sequence: empty + Name: dot + RequiresCondition: !undeployed + AttackFrontal: + PauseOnCondition: being-warped + RequiresCondition: undeployed + Voice: Attack + FacingTolerance: 0 + AttackTurreted@deployed: + Armaments: deployed + Turrets: deploy + Voice: Attack + RequiresCondition: deployed + OutsideRangeRequiresForceFire: True + GrantConditionOnAttack: + Condition: animate-turret + RevokeDelay: 5 + ArmamentNames: deployed + RejectsOrders@deployment: + Reject: AttackMove, AssaultMove + RequiresCondition: !botowner && deployed && !berserk + Convertible: + SpawnActors: rocket_cyborg + AttackMove: + Voice: Move + Passenger: + Voice: Move + Guard: + Voice: Move + Voiced: + VoiceSet: GGIVoice + Crushable: + RequiresCondition: undeployed + AutoDeployer@AI: + RequiresCondition: botowner && !deployed && !parachute + DeployChance: 100 + DeployTrigger: Attack + DeployTicks: 5 + UndeployTicks: 50 + ExternalCondition@relayTarget: + Condition: relayTarget + WithAmmoPipsDecoration: + Position: BottomLeft + RequiresSelection: true + + Cryotrooper: Inherits: ^Soldier Inherits: ^PrioAntiHeavy diff --git a/mods/ca/rules/china/infantry.yaml b/mods/ca/rules/china/infantry.yaml index 21352db2..1e3e60f5 100644 --- a/mods/ca/rules/china/infantry.yaml +++ b/mods/ca/rules/china/infantry.yaml @@ -116,7 +116,7 @@ minigunner: RequiresCondition: gatling == 7 CHE3: - Inherits: E3 + Inherits: Rocket_Infantry Inherits: ^InfantryRA2Sprite Inherits: ^PrioAntiHeavyAA Inherits: ^RelayTargeting diff --git a/mods/ca/rules/defaults.yaml b/mods/ca/rules/defaults.yaml index 825a2345..5b723ebd 100644 --- a/mods/ca/rules/defaults.yaml +++ b/mods/ca/rules/defaults.yaml @@ -1773,6 +1773,7 @@ PROC.Dummy: RenderSprites: PlayerPalette: overlayplayertd WithDamageOverlay: + Palette: tdeffect Image: smoke_mtd ^FightingVehicle: @@ -2066,6 +2067,12 @@ PROC.Dummy: WithDeathAnimation: DeathSequencePalette: overlayplayer +^InfantryTDSprite: + RenderSprites: + PlayerPalette: overlayplayertd + WithDeathAnimation: + DeathSequencePalette: overlayplayertd + ^Soldier: Inherits: ^Infantry Inherits: ^Autobattler @@ -3311,8 +3318,8 @@ PROC.Dummy: ValidOwnerNames: Neutral ^BasicHusk: - Inherits@1: ^SpriteActor - Inherits@Armor: ^HeavyArmor + Inherits: ^SpriteActor + Inherits: ^HeavyArmor Interactable: Health: HP: 28000 @@ -3998,31 +4005,39 @@ PROC.Dummy: WithVoxelBody: ShowShadow: true -^TSRenderVoxel: +^RA2RenderVoxel: Inherits: ^RenderVoxel RenderVoxels: Scale: 5 - NormalsPalette: ts-normals + NormalsPalette: normals PlayerPalette: playerra2 LightAmbientColor: 0.6, 0.6, 0.6 LightDiffuseColor: 0.5, 0.5, 0.5 LightPitch: 142 LightYaw: 682 -^RARenderVoxel: +^TSRenderVoxel: Inherits: ^RenderVoxel RenderVoxels: Scale: 1 - NormalsPalette: ra-normals - PlayerPalette: playerra2 - LightAmbientColor: 0.6, 0.6, 0.6 - LightDiffuseColor: 0.4, 0.4, 0.4 + NormalsPalette: ts-normals + PlayerPalette: playerts + LightAmbientColor: 1.2, 1.2, 1.2 + LightDiffuseColor: 0.2, 0.2, 0.2 LightPitch: 142 LightYaw: 682 ^VoxelVehicle: Inherits: ^TSRenderVoxel +^VoxelVehicleHusk: + Inherits: ^Husk + Inherits: ^TSRenderVoxel + RenderSprites: + Image: vehiclehuskdummy + WithVoxelBody: + ShowShadow: False + ^VoxelHarvester: Inherits: ^VoxelVehicle GrantConditionOnDockingHarvester: @@ -4238,7 +4253,8 @@ PROC.Dummy: light_infantry: loaded conscript: loaded e2: loaded - e3: loaded-air + e3.soviet: loaded-air + rocket_infantry: loaded-air flamethrower: loaded e7: loaded e8: loaded diff --git a/mods/ca/rules/husks.yaml b/mods/ca/rules/husks.yaml index 80c59fbf..c90e7a24 100644 --- a/mods/ca/rules/husks.yaml +++ b/mods/ca/rules/husks.yaml @@ -24,32 +24,6 @@ RenderSprites: Image: 2tnk.destroyed -3TNK.Husk: - Inherits: ^Husk - Tooltip: - Name: Husk (Heavy Tank) - ThrowsParticle@turret: - Anim: turret - TransformOnCapture: - IntoActor: 3tnk - InfiltrateForTransform: - IntoActor: 3tnk - RenderSprites: - Image: 3tnk.destroyed - -3TNK.YURI.Husk: - Inherits: ^Husk - Tooltip: - Name: Husk (Lasher Tank) - ThrowsParticle@turret: - Anim: turret - TransformOnCapture: - IntoActor: 3tnk.yuri - InfiltrateForTransform: - IntoActor: 3tnk.yuri - RenderSprites: - Image: 3tnky.destroyed - 4TNK.Husk: Inherits: ^Husk Tooltip: diff --git a/mods/ca/rules/infantry.yaml b/mods/ca/rules/infantry.yaml index b575a51d..2841ac9a 100644 --- a/mods/ca/rules/infantry.yaml +++ b/mods/ca/rules/infantry.yaml @@ -76,7 +76,6 @@ E2: Inherits: ^Soldier Inherits: ^PrioArtillery Inherits: ^SovietInfantry - Inherits@BERSERK: ^Berserk Buildable: Queue: Infantry BuildAtProductionType: Soldier @@ -116,333 +115,6 @@ E2: DamageSource: Killer RequiresCondition: !being-warped -E3: - Inherits: ^Soldier - Inherits: ^WhiteFlash - Inherits: ^PrioAntiHeavyAA - Inherits@TargetRelay: ^RelayTargeting - Inherits@BERSERK: ^Berserk - Buildable: - Queue: Infantry - BuildAtProductionType: Soldier - BuildPaletteOrder: 30 - Prerequisites: ~infantry.allies, ~!infantry.germany, ~!commander_tree.advanced_infantry_training - Description: Anti-tank/anti-aircraft infantry.\n Strong vs Tanks, Aircraft\n Weak vs Infantry - Selectable: - Class: E3 - Valued: - Cost: 250 - Tooltip: - Name: Rocket Soldier - UpdatesPlayerStatistics: - AddToArmyValue: true - Health: - HP: 3500 - Mobile: - speed: 54 - Armament@primary: - Name: primary - Weapon: Dragon.Relay - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@tertiary: - Name: tertiary - Weapon: RedEye - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@secondary: - Name: secondary - Weapon: Dragon.Inf - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@Garrison: - Name: mounted - Weapon: DragonE - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@GarrisonAA: - Name: mountedaa - Weapon: RedEyeE - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - AmmoPool: - Armaments: primary, secondary, tertiary - Ammo: 1 - AmmoCondition: ammo - ReloadAmmoPool: - Delay: 50 - Count: 1 - TakeCover: - ProneOffset: 384,0,-395 - AttackFrontal: - Armaments: primary, secondary, tertiary - PauseOnCondition: being-warped - FacingTolerance: 0 - -E3.soviet: - Inherits: E3 - Inherits: ^SovietInfantry - Buildable: - Prerequisites: ~infantry.soviet - -E3.cryo: - Inherits: E3 - Buildable: - Prerequisites: ~infantry.allies, ~!infantry.germany, ~commander_tree.advanced_infantry_training - Description: Anti-tank/anti-aircraft infantry.\n Strong vs Tanks, Aircraft\n Weak vs Infantry - Tooltip: - Name: Cryo Rocket Soldier - Armament@primary: - Name: primary - Weapon: Dragon.Relay.Cryo - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@tertiary: - Name: tertiary - Weapon: RedEye.Cryo - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@secondary: - Name: secondary - Weapon: Dragon.Inf.Cryo - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@Garrison: - Name: mounted - Weapon: DragonE - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@GarrisonAA: - Name: mountedaa - Weapon: RedEyeE - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - -WithInfantryBody: - WithInfantryBody: - IdleSequences: idle-cryo1, idle-cryo2 - StandSequences: stand-cryo, stand-cryo2 - AttackSequences: shoot-cryo - DefaultAttackSequence: shoot-cryo - MoveSequence: run-cryo - -WithDeathAnimation: - WithDeathAnimation: - DeathSequence: die-cryo - DeathSequencePalette: overlayplayertd - DeathTypes: - DefaultDeath: 1 - BulletDeath: 2 - SmallExplosionDeath: 3 - ExplosionDeath: 4 - FireDeath: 5 - ElectricityDeath: 6 - PoisonDeath: 7 - ChronoDeath: 8 - ToxinDeath: 9 - RadiationDeath: 10 - FrozenDeath: 11 - CrushedSequence: die-crushed - -U3: - Inherits: ^Soldier - Inherits: ^PrioAntiHeavyAA - AutoTargetPriority@DEFAULT: - ValidTargets: Infantry, Vehicle, Water, Underwater, Air, Defense - AutoTargetPriority@HighPrio: - ValidTargets: relayTarget - Priority: 10 - Inherits@BOTHELPER: ^BotCaptureHelper - Valued: - Cost: 350 - Tooltip: - Name: Guardian G.I. - Buildable: - Queue: Infantry - BuildAtProductionType: Soldier - BuildPaletteOrder: 30 - Prerequisites: ~infantry.germany - Description: Anti-tank/anti-aircraft infantry. - TooltipExtras: - Strengths: • Strong vs Heavy Armor, Aircraft, Buildings, Defenses - Weaknesses: • Weak vs Infantry, Light Armor\n• Weak anti-infantry weapon when not deployed - Attributes: • Deploys for personal anti-tank fortification\n• Uncrushable when deployed - UpdatesPlayerStatistics: - AddToArmyValue: true - Health: - HP: 6500 - Mobile: - Speed: 54 - Voice: Move - PauseOnCondition: !undeployed - Armament@PRIMARYDEP: - Weapon: RedEyeGI - Name: deployed - Turret: deploy - LocalOffset: 0,0,400 - PauseOnCondition: !ammo - RequiresCondition: !cryr-upgrade && deployed - Armament@PRIMARY: - Weapon: M14 - LocalOffset: 0,0,400 - RequiresCondition: !deployed - Armament@PRIMARYDEPUPG: - Weapon: RedEyeGI.CRYO - Name: deployed - Turret: deploy - LocalOffset: 0,0,400 - PauseOnCondition: !ammo - RequiresCondition: cryr-upgrade && deployed - Armament@SECONDARYDEP: - Name: deployed - Weapon: DragonGI - Turret: deploy - LocalOffset: 0,0,400 - PauseOnCondition: !ammo - RequiresCondition: !cryr-upgrade && deployed - Armament@SECONDARYDEPUPG: - Weapon: DragonGI.CRYO - Name: deployed - Turret: deploy - LocalOffset: 0,0,400 - PauseOnCondition: !ammo - RequiresCondition: cryr-upgrade && deployed - Armament@tertiary: - Name: deployed - Weapon: Dragon.Relay - LocalOffset: 0,0,555 - PauseOnCondition: !ammo || being-warped - Armament@GarrisonAA: - Name: mountedaa - Weapon: RedEyeGI - PauseOnCondition: !ammo - RequiresCondition: !cryr-upgrade - Armament@GarrisonAAUPG: - Name: mountedaa - Weapon: RedEyeGI.CRYO - PauseOnCondition: !ammo - RequiresCondition: cryr-upgrade - Armament@Garrison: - Name: mounted - Weapon: DragonGI - PauseOnCondition: !ammo - RequiresCondition: !cryr-upgrade - Armament@GarrisonUPG: - Name: mounted - Weapon: DragonGI.CRYO - PauseOnCondition: !ammo - RequiresCondition: cryr-upgrade - Armament@AIDummyAiming: ## Hack: Make AI deploy to attack air - PauseOnCondition: being-warped - RequiresCondition: botowner && !deployed - Weapon: AirDummyAim - AmmoPool: - Ammo: 1 - AmmoCondition: ammo - ReloadAmmoPool: - Delay: 25 - Count: 1 - TakeCover: - ProneOffset: 384,0,-395 - RequiresCondition: !deployed - DamageMultiplier: - Modifier: 50 - RequiresCondition: deployed - AutoTarget: - ScanRadius: 8 - GrantConditionOnPrerequisite@CRYO: - Condition: cryr-upgrade - Prerequisites: commander_tree.advanced_infantry_training - GrantConditionOnDeploy: - DeployedCondition: deployed - UndeployedCondition: undeployed - UndeployOnMove: True - Voice: Action - DeploySounds: igidepa.aud, igidepb.aud - UndeploySounds: igidepa.aud, igidepb.aud - PauseOnCondition: being-warped - SmartDeploy: True - RequiresCondition: !parachute - Facing: 332 - GrantCondition: - Condition: editorhack - WithInfantryBody@Editor: # HACK: negative conditions don't count in EnabledByDefault, we can use this duplicate WIB to render it on map editor - DefaultAttackSequence: shoot - RequiresCondition: !editorhack - WithInfantryBody: - DefaultAttackSequence: shoot - RequiresCondition: undeployed - WithMakeAnimation: - Sequence: deploy - BodyNames: dot - Turreted: - Turret: deploy - RealignDelay: -1 - TurnSpeed: 1023 - InitialFacing: 332 - WithSpriteTurret@idle: - Turret: deploy - Sequence: deployed - RequiresCondition: deployed && !cryr-upgrade && !animate-turret && !parachute - WithSpriteTurret@animated: - Turret: deploy - Sequence: deploy-shoot - RequiresCondition: deployed && !cryr-upgrade && animate-turret && !parachute - WithSpriteTurret@idleupg: - Turret: deploy - Sequence: deployedcr - RequiresCondition: deployed && cryr-upgrade && !animate-turret && !parachute - WithSpriteTurret@animatedupg: - Turret: deploy - Sequence: deploy-shootcr - RequiresCondition: deployed && cryr-upgrade && animate-turret && !parachute - WithSpriteBody: - Sequence: empty - Name: dot - RequiresCondition: !undeployed - AttackFrontal: - PauseOnCondition: being-warped - RequiresCondition: undeployed - Voice: Attack - FacingTolerance: 0 - AttackTurreted@deployed: - Armaments: deployed - Turrets: deploy - Voice: Attack - RequiresCondition: deployed - OutsideRangeRequiresForceFire: True - GrantConditionOnAttack: - Condition: animate-turret - RevokeDelay: 5 - ArmamentNames: deployed - RejectsOrders@deployment: - Reject: AttackMove, AssaultMove - RequiresCondition: !botowner && deployed && !berserk - Convertible: - SpawnActors: rocket_cyborg - AttackMove: - Voice: Move - Passenger: - Voice: Move - Guard: - Voice: Move - Voiced: - VoiceSet: GGIVoice - Crushable: - RequiresCondition: undeployed - AutoDeployer@AI: - RequiresCondition: botowner && !deployed && !parachute - DeployChance: 100 - DeployTrigger: Attack - DeployTicks: 5 - UndeployTicks: 50 - ExternalCondition@relayTarget: - Condition: relayTarget - WithAmmoPipsDecoration: - Position: BottomLeft - RequiresSelection: true - WithAmmoPipsDecoration: - Position: BottomLeft - RequiresSelection: true - E6: Inherits: ^Soldier Inherits: ^SovietInfantry @@ -784,7 +456,6 @@ THF: N2: Inherits: ^Soldier Inherits: ^PrioArtillery - Inherits: ^Berserk Buildable: Queue: Infantry BuildAtProductionType: Soldier @@ -1086,9 +757,7 @@ SNIP: Inherits: ^Soldier Inherits: ^PrioAntiInfantry Inherits: ^ScoutEquipment - Inherits@GAINSEXPERIENCE: ^GainsExperience - Inherits@BERSERK: ^Berserk - Inherits@CloakedAttacker: ^CloakedAttacker + Inherits: ^CloakedAttacker RenderSprites: Image: sniper Buildable: @@ -1233,8 +902,6 @@ BORI: Mortar: Inherits: ^Soldier Inherits: ^PrioArtillery - Inherits@GAINSEXPERIENCE: ^GainsExperience - Inherits@BERSERK: ^Berserk Buildable: Queue: Infantry BuildAtProductionType: Soldier @@ -1274,8 +941,6 @@ Mortar: Mortar.Chemical: Inherits: ^Soldier Inherits: ^PrioArtillery - Inherits@GAINSEXPERIENCE: ^GainsExperience - Inherits@BERSERK: ^Berserk Buildable: Queue: Infantry BuildAtProductionType: Soldier @@ -1340,9 +1005,8 @@ SpecOps: JJET: Inherits: ^Infantry Inherits: ^PrioAntiLight - Inherits@Armor: ^LightArmor - Inherits@BERSERK: ^Berserk - Inherits@EMP: ^EmpDisable + Inherits: ^LightArmor + Inherits: ^EmpDisable Buildable: Queue: Infantry BuildAtProductionType: Soldier @@ -1528,7 +1192,6 @@ JJET.Railgun: E8: Inherits: ^Soldier Inherits: ^PrioAntiInfantry - Inherits@BERSERK: ^Berserk Buildable: Queue: Infantry BuildAtProductionType: Soldier @@ -1849,8 +1512,6 @@ BRUT.Mutating: SHAD: Inherits: ^Soldier Inherits: ^PrioAntiInfantry - Inherits@GAINSEXPERIENCE: ^GainsExperience - Inherits@BERSERK: ^Berserk Valued: Cost: 500 Tooltip: @@ -2119,7 +1780,6 @@ SGLI.discarded: BH: Inherits: ^Soldier Inherits: ^PrioAntiLight - Inherits@BERSERK: ^Berserk Buildable: Queue: Infantry BuildAtProductionType: Soldier diff --git a/mods/ca/rules/misc.yaml b/mods/ca/rules/misc.yaml index bb5e58be..10acfe92 100644 --- a/mods/ca/rules/misc.yaml +++ b/mods/ca/rules/misc.yaml @@ -135,7 +135,7 @@ CRATE: Prerequisites: ~!techlevel.infonly, ~!techlevel.aircraft, techcenter GiveUnitCrateAction@squadlight: SelectionShares: 7 - Units: light_infantry,light_infantry,light_infantry,e3,e3 + Units: light_infantry,light_infantry,light_infantry,rocket_infantry,rocket_infantry ValidFactions: allies, england, france, germany, soviet, russia, nkorea, iraq GiveUnitCrateAction@squadlightGDI: SelectionShares: 7 @@ -147,12 +147,12 @@ CRATE: ValidFactions: nod, blackh, marked, legion GiveUnitCrateAction@squadheavyallies: SelectionShares: 7 - Units: light_infantry,light_infantry,light_infantry,light_infantry,e3,e3,e3,e6,medi + Units: light_infantry,light_infantry,light_infantry,light_infantry,rocket_infantry,rocket_infantry,rocket_infantry,e6,medi ValidFactions: allies, england, france, germany TimeDelay: 4500 GiveUnitCrateAction@squadheavysoviet: SelectionShares: 7 - Units: conscript,conscript,flamethrower,flamethrower,e3,e3,e3 + Units: conscript,conscript,flamethrower,flamethrower,e3.soviet,e3.soviet,e3.soviet ValidFactions: soviet, russia, nkorea, iraq TimeDelay: 4500 GiveUnitCrateAction@squadheavynod: @@ -596,7 +596,7 @@ powerproxy.paratroopers: Description: A Badger drops a squad of infantry\nanywhere on the map. OneShot: true AllowMultiple: true - DropItems: light_infantry,light_infantry,light_infantry,E3,E3,light_infantry,light_infantry,light_infantry,E2,E2 + DropItems: light_infantry,light_infantry,light_infantry,rocket_infantry,rocket_infantry,light_infantry,light_infantry,light_infantry,E2,E2 SelectTargetSpeechNotification: SelectTarget EndChargeSpeechNotification: Reinforce LaunchSpeechNotification: ReinforcementsArrived @@ -620,7 +620,7 @@ powerproxy.paratroopers2: Description: A Chinook drops a squad of infantry\nanywhere on the map. OneShot: true AllowMultiple: true - DropItems: light_infantry,light_infantry,SNIP,E3,E3 + DropItems: light_infantry,light_infantry,SNIP,rocket_infantry,rocket_infantry SelectTargetSpeechNotification: SelectTarget EndChargeSpeechNotification: Reinforce LaunchSpeechNotification: ReinforcementsArrived diff --git a/mods/ca/rules/nod/infantry.yaml b/mods/ca/rules/nod/infantry.yaml index 7760c2ea..d69ee99a 100644 --- a/mods/ca/rules/nod/infantry.yaml +++ b/mods/ca/rules/nod/infantry.yaml @@ -123,8 +123,6 @@ Rocket_Trooper: Armaments: primary, secondary, tertiary PauseOnCondition: being-warped FacingTolerance: 0 - Selectable: - Class: E3 WithAmmoPipsDecoration: Position: BottomLeft RequiresSelection: true diff --git a/mods/ca/rules/soviet/defaults.yaml b/mods/ca/rules/soviet/defaults.yaml index b378b833..8f840020 100644 --- a/mods/ca/rules/soviet/defaults.yaml +++ b/mods/ca/rules/soviet/defaults.yaml @@ -40,7 +40,7 @@ ClassName: Light Support Factions: soviet, russia, nkorea, iraq BaseActor: mcv - SupportActors: e1,e1,e1,e3,e3 + SupportActors: e1,e1,e1,e3.soviet,e3.soviet InnerSupportRadius: 3 OuterSupportRadius: 5 StartingUnits@heavysoviet: @@ -48,7 +48,7 @@ ClassName: Heavy Support Factions: soviet, russia, nkorea, iraq BaseActor: mcv - SupportActors: e1,e1,e1,e3,e3,3tnk,3tnk + SupportActors: e1,e1,e1,e3.soviet,e3.soviet,3tnk,3tnk InnerSupportRadius: 3 OuterSupportRadius: 5 diff --git a/mods/ca/rules/soviet/husks.yaml b/mods/ca/rules/soviet/husks.yaml index e69de29b..7d7c5109 100644 --- a/mods/ca/rules/soviet/husks.yaml +++ b/mods/ca/rules/soviet/husks.yaml @@ -0,0 +1,16 @@ +3TNK.Husk: + Inherits: ^VoxelTurretedTank + Inherits: ^VoxelVehicleHusk + WithVoxelTurret: + ShowShadow: False + RenderVoxels: + Scale: 0.66 + Image: heavytank + Tooltip: + Name: Husk (Heavy Tank) + ThrowsParticle@turret: + Anim: turret + TransformOnCapture: + IntoActor: 3tnk + InfiltrateForTransform: + IntoActor: 3tnk diff --git a/mods/ca/rules/soviet/infantry.yaml b/mods/ca/rules/soviet/infantry.yaml index d4f02903..51e3f787 100644 --- a/mods/ca/rules/soviet/infantry.yaml +++ b/mods/ca/rules/soviet/infantry.yaml @@ -4,7 +4,6 @@ Conscript: Inherits: ^ScoutEquipment Inherits: ^PrioAntiInfantry Inherits: ^SovietInfantry - Inherits: ^Berserk Inherits: ^BotCaptureHelper Buildable: Queue: Infantry diff --git a/mods/ca/rules/soviet/vehicles.yaml b/mods/ca/rules/soviet/vehicles.yaml index 0b01d5c3..71297d81 100644 --- a/mods/ca/rules/soviet/vehicles.yaml +++ b/mods/ca/rules/soviet/vehicles.yaml @@ -1,3 +1,82 @@ + +3TNK: + Inherits: ^Tank + Inherits: ^VoxelTurretedTank + RenderVoxels: + Scale: 0.66 + Image: heavytank + RenderSprites: + Image: 3tnk + Inherits: ^BiologicalDriver + Inherits: ^PrioAntiHeavy + Buildable: + Queue: Vehicle + BuildPaletteOrder: 100 + Prerequisites: vehicles.any, ~vehicles.soviet, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.reflector + Description: Soviet main battle tank with dual cannons.\n Strong vs Vehicles\n Weak vs Infantry, Aircraft + Valued: + Cost: 1100 + Tooltip: + Name: Heavy Tank + Health: + HP: 65000 + Mobile: + Speed: 68 + Turreted: + TurnSpeed: 48 + Offset: 0,0,20 + Armament: + Weapon: 125mm + Recoil: 128 + RecoilRecovery: 38 + LocalOffset: 900,85,190, 900,-85,190 + MuzzleSequence: muzzle + AttackTurreted: + PauseOnCondition: empdisable || being-warped + WithMuzzleOverlay: + SpawnActorOnDeath: + Actor: 3TNK.Husk + RequiresCondition: !being-warped + +3TNK.PLD: + Inherits: 3TNK + Inherits@PLD: ^PointLaserDefenseSystem + Buildable: + Queue: Vehicle + BuildPaletteOrder: 100 + Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.reflector + Description: Soviet main battle tank with dual cannons.\n Has Point Laser Defense. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft, Energy Weapons + Valued: + Cost: 1650 + Tooltip: + Name: Heavy Tank (PLD) + +3TNK.AP: + Inherits: 3TNK + Buildable: + Queue: Vehicle + BuildPaletteOrder: 100 + Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.reflector + Description: Soviet main battle tank with dual cannons.\n Has armor piercing shells. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft, Point Laser Defense + Valued: + Cost: 1300 + Tooltip: + Name: Heavy Tank (AP) + Armament: + Weapon: 125mm.AP + +3TNK.Reflector: + Inherits: 3TNK + Inherits: ^ReflectorArmor + Buildable: + Queue: Vehicle + BuildPaletteOrder: 100 + Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.reflector, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap + Description: Soviet main battle tank with dual cannons.\n Has Reflector Armor, which is very good vs. Energy Weapons. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft + Tooltip: + Name: Heavy Tank (Reflector) + + Soviet_Miner: Inherits: ^Tank Inherits: ^BiologicalDriver diff --git a/mods/ca/rules/structures.yaml b/mods/ca/rules/structures.yaml index 7f15023a..eb0362c5 100644 --- a/mods/ca/rules/structures.yaml +++ b/mods/ca/rules/structures.yaml @@ -1527,7 +1527,7 @@ AFLD: Description: A Badger drops a squad of infantry\nanywhere on the map. SquadSize: 1 SquadOffset: 0,1792,0 - DropItems: conscript,conscript,conscript,E3,E3,conscript,conscript,conscript,DOG + DropItems: conscript,conscript,conscript,E3.soviet,E3.soviet,conscript,conscript,conscript,DOG ReinforcementsArrivedSpeechNotification: ReinforcementsArrived SelectTargetSpeechNotification: SelectTarget AllowImpassableCells: false @@ -1549,7 +1549,7 @@ AFLD: Description: A Badger drops a squad of infantry heavily influenced by TikTok\nanywhere on the map. SquadSize: 3 SquadOffset: 0,1792,0 - DropItems: conscript,conscript,SHOK,conscript,E2,E2,E2,E3,E3,E3,E3,E3,DOG,Mortar,Mortar,Mortar,Mortar,DOG,SHOK,SHOK,conscript + DropItems: conscript,conscript,SHOK,conscript,E2,E2,E2,E3.soviet,E3.soviet,E3.soviet,E3.soviet,E3.soviet,DOG,Mortar,Mortar,Mortar,Mortar,DOG,SHOK,SHOK,conscript ReinforcementsArrivedSpeechNotification: ReinforcementsArrived SelectTargetSpeechNotification: SelectTarget AllowImpassableCells: false diff --git a/mods/ca/rules/vehicles.yaml b/mods/ca/rules/vehicles.yaml index 9b950693..8ca751be 100644 --- a/mods/ca/rules/vehicles.yaml +++ b/mods/ca/rules/vehicles.yaml @@ -299,206 +299,6 @@ GTNK.squad: InvalidTargets: NoAutoTarget Priority: 10 -3TNK: - Inherits: ^Tank - Inherits: ^BiologicalDriver - Inherits: ^PrioAntiHeavy - RenderSprites: - FactionImages: - iraq: 3tnki - Buildable: - Queue: Vehicle - BuildPaletteOrder: 100 - Prerequisites: vehicles.any, ~vehicles.soviet, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.reflector, ~!commander_tree.yuri - Description: Soviet main battle tank with dual cannons.\n Strong vs Vehicles\n Weak vs Infantry, Aircraft - Valued: - Cost: 1100 - Tooltip: - Name: Heavy Tank - RequiresCondition: !iraqtank - Tooltip@Iraq: - Name: Atomic Heavy Tank - RequiresCondition: iraqtank - Health: - HP: 60000 - Mobile: - Speed: 68 - Turreted: - TurnSpeed: 48 - Offset: 0,0,20 - GrantConditionOnFaction@IRAQTANK: - Condition: iraqtank - Factions: iraq - Armament: - Weapon: 125mm - Recoil: 128 - RecoilRecovery: 38 - LocalOffset: 768,85,90, 768,-85,90 - MuzzleSequence: muzzle - SpeedMultiplier@IRAQTANK: - RequiresCondition: iraqtank - Modifier: 125 - AttackTurreted: - PauseOnCondition: empdisable || being-warped - WithMuzzleOverlay: - WithSpriteTurret: - SpawnActorOnDeath: - Actor: 3TNK.Husk - RequiresCondition: !iraqtank && !being-warped - Explodes@IRAQTANK: - Weapon: UnitExplodeIraqTank - EmptyWeapon: UnitExplodeIraqTank - RequiresCondition: iraqtank && !being-warped - -3TNK.PLD: - Inherits: 3TNK - Inherits@PLD: ^PointLaserDefenseSystem - RenderSprites: - FactionImages: - iraq: 3tnki.pld - Buildable: - Queue: Vehicle - BuildPaletteOrder: 100 - Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.reflector, ~!commander_tree.yuri - Description: Soviet main battle tank with dual cannons.\n Has Point Laser Defense. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft, Energy Weapons - Valued: - Cost: 1650 - Tooltip: - Name: Heavy Tank (PLD) - RequiresCondition: !iraqtank - Tooltip@Iraq: - Name: Atomic Heavy Tank (PLD) - RequiresCondition: iraqtank - -3TNK.AP: - Inherits: 3TNK - RenderSprites: - FactionImages: - iraq: 3tnki.ap - Buildable: - Queue: Vehicle - BuildPaletteOrder: 100 - Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.reflector, ~!commander_tree.yuri - Description: Soviet main battle tank with dual cannons.\n Has armor piercing shells. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft, Point Laser Defense - Valued: - Cost: 1300 - Tooltip: - Name: Heavy Tank (AP) - RequiresCondition: !iraqtank - Tooltip@Iraq: - Name: Atomic Heavy Tank (AP) - RequiresCondition: iraqtank - Armament: - Weapon: 125mm.AP - -3TNK.Reflector: - Inherits: 3TNK - Inherits: ^ReflectorArmor - RenderSprites: - FactionImages: - iraq: 3tnki.ap - Buildable: - Queue: Vehicle - BuildPaletteOrder: 100 - Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.reflector, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap, ~!commander_tree.yuri - Description: Soviet main battle tank with dual cannons.\n Has Reflector Armor, which is very good vs. Energy Weapons. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft - Tooltip: - Name: Heavy Tank (Reflector) - RequiresCondition: !iraqtank - Tooltip@Iraq: - Name: Atomic Heavy Tank (Reflector) - RequiresCondition: iraqtank - -3TNK.YURI: - Inherits: 3TNK - RenderSprites: - -FactionImages: - Buildable: - Queue: Vehicle - BuildPaletteOrder: 91 - Prerequisites: ~commander_tree.yuri, ~vehicles.soviet, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.reflector - Description: Heavy tank with infantry crushing improvements.\n Strong vs Vehicles\n Weak vs Defenses, Aircraft - Tooltip: - Name: Lasher Tank - Tooltip@Iraq: - Name: Atomic Lasher Tank - RequiresCondition: iraqtank - Health: - HP: 57000 - Selectable: - Class: 3tnk - AttackTurreted: - Voice: Attack - Mobile: - Voice: Move - Passenger: - Voice: Move - Voiced: - VoiceSet: LasherTankVoice - Armament: - Weapon: 125mmLasher - Recoil: 128 - RecoilRecovery: 38 - LocalOffset: 768,85,90, 768,-85,90 - MuzzleSequence: muzzle - SpawnActorOnDeath: - Actor: 3TNK.YURI.Husk - -SpeedMultiplier@CRUSHATTEMPTSLOW: - -SpeedMultiplier@CRUSHSLOW: - PeriodicExplosion@LASHER: - LocalOffset: 896, 0, 0 - Weapon: Lasher - -3TNK.YURI.PLD: - Inherits: 3TNK.YURI - Inherits@PLD: ^PointLaserDefenseSystem - Buildable: - Queue: Vehicle - BuildPaletteOrder: 100 - Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.reflector, ~commander_tree.yuri - Description: Heavy tank with infantry crushing improvements.\n Has Point Laser Defense. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft, Energy Weapons - Valued: - Cost: 1650 - Tooltip: - Name: Lasher Tank (PLD) - RequiresCondition: !iraqtank - Tooltip@Iraq: - Name: Atomic Lasher Tank (PLD) - RequiresCondition: iraqtank - -3TNK.YURI.AP: - Inherits: 3TNK.YURI - Buildable: - Queue: Vehicle - BuildPaletteOrder: 100 - Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.ap, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.reflector, ~commander_tree.yuri - Description: Heavy tank with infantry crushing improvements.\n Has armor piercing shells. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft, Point Laser Defense - Valued: - Cost: 1300 - Tooltip: - Name: Lasher Tank (AP) - RequiresCondition: !iraqtank - Tooltip@Iraq: - Name: Atomic Lasher Tank (AP) - RequiresCondition: iraqtank - Armament: - Weapon: 125mmLasher.AP - -3TNK.YURI.Reflector: - Inherits: 3TNK.YURI - Inherits: ^ReflectorArmor - Buildable: - Queue: Vehicle - BuildPaletteOrder: 100 - Prerequisites: vehicles.any, ~vehicles.soviet, ~commander_tree.heavy_tank.reflector, ~!commander_tree.heavy_tank.pld, ~!commander_tree.heavy_tank.ap, ~commander_tree.yuri - Description: Heavy tank with infantry crushing improvements.\n Has Reflector Armor, which is very good vs. Energy Weapons. \n Strong vs Vehicles\n Weak vs Infantry, Aircraft - Tooltip: - Name: Lasher Tank (Reflector) - RequiresCondition: !iraqtank - Tooltip@Iraq: - Name: Atomic Lasher Tank (Reflector) - RequiresCondition: iraqtank - 4TNK: Inherits: ^Tank Inherits: ^BigVehicle @@ -2990,7 +2790,8 @@ IFV: light_infantry: gunturr conscript: gunturr e2: fragturr - e3: samturr + e3.soviet: samturr + rocket_infantry: samturr flamethrower: flamturr adept: gunturr mercenary: gunturr @@ -4203,7 +4004,7 @@ BATF.Bunker: Passenger: Voice: Move Cargo: - InitialUnits: e3, e3, e3, e3, e3 + InitialUnits: rocket_infantry, rocket_infantry, rocket_infantry, rocket_infantry, rocket_infantry Armament: Weapon: ZSU-23 LocalOffset: 624,0,208 diff --git a/mods/ca/sequences/allies.yaml b/mods/ca/sequences/allies.yaml index 7dc5ef5c..9dc7dccb 100644 --- a/mods/ca/sequences/allies.yaml +++ b/mods/ca/sequences/allies.yaml @@ -77,6 +77,83 @@ light_infantry: Tick: 40 icon: lightinfantryicon +rocket_infantry: + Inherits: ^CommonDeaths + Inherits: ^InfantryOverlays + Defaults: + Scale: 1.5 + stand: rocketinfantry + Facings: 8 + run: rocketinfantry + Start: 8 + Length: 8 + Facings: 8 + Tick: 100 + shoot: rocketinfantry + Start: 515 + Length: 83 + Facings: 8 + Tick: 40 + liedown: rocketinfantry + Start: 177 + Length: 2 + Facings: 8 + standup: rocketinfantry + Start: 193 + Length: 2 + Facings: 8 + prone-stand: rocketinfantry + Start: 86 + Stride: 6 + Facings: 8 + prone-run: rocketinfantry + Start: 72 + Length: 12 + Facings: 8 + Tick: 100 + prone-shoot: rocketinfantry + Start: 1179 + Length: 83 + Facings: 8 + Tick: 40 + idle1: rocketinfantry + Start: 168 + Length: 9 + Tick: 120 + idle2: rocketinfantry + Start: 438 + Length: 24 + Tick: 120 + idle3: rocketinfantry + Start: 477 + Length: 38 + Tick: 120 + die1: rocketinfantry + Start: 209 + Length: 150 + Tick: 40 + die2: rocketinfantry + Start: 359 + Length: 79 + Tick: 40 + die3: rocketinfantry + Start: 209 + Length: 67 + Tick: 40 + die4: rocketinfantry + Start: 277 + Length: 77 + Tick: 40 + die5: rocketinfantry + Start: 209 + Length: 67 + Tick: 40 + die7: rocketinfantry + Start: 277 + Length: 77 + Tick: 40 + icon: rocketinfantryicon + cryotrooper: Inherits: ^CommonDeaths Inherits: ^InfantryOverlays diff --git a/mods/ca/sequences/defaults.yaml b/mods/ca/sequences/defaults.yaml index ca41e778..c8fdbfa3 100644 --- a/mods/ca/sequences/defaults.yaml +++ b/mods/ca/sequences/defaults.yaml @@ -269,3 +269,8 @@ Scale: 2 radar: Scale: 2 + +vehiclehuskdummy: + Inherits: ^VehicleOverlays + idle: invisibleitem + turret: invisibleitem diff --git a/mods/ca/sequences/soviet.yaml b/mods/ca/sequences/soviet.yaml index 0c546c08..f0d7474d 100644 --- a/mods/ca/sequences/soviet.yaml +++ b/mods/ca/sequences/soviet.yaml @@ -1,3 +1,5 @@ + +#infantry conscript: Inherits: ^CommonDeaths Inherits: ^InfantryOverlays @@ -360,6 +362,37 @@ ivan: # vehicles +3tnk: + Inherits: ^VehicleOverlays + idle: invisibleitem + muzzle: gunfire2 + Length: 5 + icon: 3tnkicon + +3tnk.ap: + Inherits: 3tnk + icon: 3tnkapicon + +3tnk.pld: + Inherits: 3tnk + icon: 3tnkpldicon + +3tnk.reflector: + Inherits: 3tnk + icon: 3tnkreflectoricon + +3tnk.destroyed: + Inherits: ^VehicleOverlays + idle: 3tnk + Facings: 32 + UseClassicFacings: True + ZOffset: -512 + turret: 3tnk + Start: 32 + Facings: 32 + UseClassicFacings: True + ZOffset: -512 + sovietminer: Inherits: ^VehicleOverlays idle: invisibleitem diff --git a/mods/ca/sequences/vehicles.yaml b/mods/ca/sequences/vehicles.yaml index 19d25cdc..e8649880 100644 --- a/mods/ca/sequences/vehicles.yaml +++ b/mods/ca/sequences/vehicles.yaml @@ -166,103 +166,6 @@ gtnk.destroyed: UseClassicFacings: True ZOffset: -512 -3tnk: - Inherits: ^VehicleOverlays - idle: 3tnk - Facings: 32 - UseClassicFacings: True - turret: 3tnk - Start: 32 - Facings: 32 - UseClassicFacings: True - muzzle: gunfire2 - Length: 5 - icon: 3tnkicon - -3tnk.ap: - Inherits: 3tnk - icon: 3tnkapicon - -3tnk.pld: - Inherits: 3tnk - icon: 3tnkpldicon - -3tnk.reflector: - Inherits: 3tnk - icon: 3tnkreflectoricon - -3tnki: - Inherits: ^VehicleOverlays - idle: 3tnk - Facings: 32 - UseClassicFacings: True - turret: 3tnki - Facings: 32 - UseClassicFacings: True - muzzle: gunfire2 - Length: 5 - icon: 3tnkiicon - -3tnki.pld: - Inherits: 3tnki - icon: 3tnkipldicon - -3tnki.ap: - Inherits: 3tnki - icon: 3tnkiapicon - -3tnki.reflector: - Inherits: 3tnki - icon: 3tnkireflectoricon - -3tnk.yuri: - Inherits: ^VehicleOverlays - idle: 3tnky - Facings: 32 - UseClassicFacings: True - idle2: 3tnky - Facings: 32 - UseClassicFacings: True - turret: 3tnky - Start: 32 - Facings: 32 - UseClassicFacings: True - muzzle: gunfire2 - Length: 5 - icon: 3tnkyicon - -3tnk.yuri.ap: - Inherits: 3tnk.yuri - icon: 3tnkyapicon - -3tnk.yuri.pld: - Inherits: 3tnk.yuri - icon: 3tnkypldicon - -3tnk.yuri.reflector: - Inherits: 3tnk.yuri - icon: 3tnkyreflectoricon - -3tnk.destroyed: - Inherits: ^VehicleOverlays - idle: 3tnk - Facings: 32 - UseClassicFacings: True - ZOffset: -512 - turret: 3tnk - Start: 32 - Facings: 32 - UseClassicFacings: True - ZOffset: -512 - -3tnky.destroyed: - Inherits: 3tnk.yuri - idle: 3tnky - ZOffset: -512 - turret: 3tnky - Start: 32 - ZOffset: -512 - 4tnk: Inherits: ^VehicleOverlays idle: 4tnk diff --git a/mods/ca/sequences/voxels.yaml b/mods/ca/sequences/voxels.yaml index 9bf2d12a..3b9f58fa 100644 --- a/mods/ca/sequences/voxels.yaml +++ b/mods/ca/sequences/voxels.yaml @@ -93,6 +93,10 @@ huey.husk: ctnk: idle: chronotank +heavytank: + idle: heavytank + turret: heavytanktur + sovietminer: idle: sovietminer unload: sovietminerunload