diff --git a/mods/d2k/maps/01scriptrework/CHANGELOG.txt b/mods/d2k/maps/01scriptrework/CHANGELOG.txt new file mode 100644 index 000000000000..4e27af74529a --- /dev/null +++ b/mods/d2k/maps/01scriptrework/CHANGELOG.txt @@ -0,0 +1,72 @@ +0.95 +- trike: cost revert from 350$ to 300$ +- Light factory cost increased from 600$ to 700$ +- Sardaukar: building time from 175 to 165. Sardaukar death deal more damage to nearby units. +- Missile tank: min. fire distance from 0c512 to 1c112 +- Crawler become invisible when standing still. Decrease cost from 500$ to 400$ +- Ordos light Air strike damage decreased from 5500 to 4500 +- devastator damage VS infantry decreased from 70 to 60 +- neutral buildings no long consume power. +- original D2k damaged building smoke/fire VFX + + + +**** Enhanced D2k ver. 0.9 **** + +Faction options: +- MAIN FACTION MODE: Standard D2k with Enhanced rules +- SUBFACTIONS MODE: Play as Main faction or one of its sub-factions +- MERGED MODE: Subfactions tech tree will be merged to your main faction +SUBFACTION WILL BE CHOOSEN WHEN GAME STARTS!!! + MERGED AND SUBFACTION MODE NEW UNITS: +- FREMEN: hunter, Fedyakin, Supp. powers: Hide, Wormrider, Building: Sietch +- CORRINO: Sardaukar, Bombardment tank, Support power: Rally sardaukars, True sayer, Building Defense on Palace. +- SMUGGLERS: Flamer. Supp. powers: Saboteur, Jammer. Building: Starport (10% discount) +- MERCENARIES: Crawler, Mortar inf., Bison tank Supp. Power: Hire Contractors. Building: Heavy factory +ADDITIONAL UNITS IN SUBFACTION MODE: Corrino combat tank, Cheap tank for non house factions, Carryall reinforcements for non house-factions + +Highlights: +* Original D2k Starport behavior +* Original D2k Airstrike support +* new Map Options: FreeCarryall, Worm Spawn, Factions mode +* Refinery rotation with hotkey: u must add "ToggleVariant: 'your_hotkey'" to hotkey.yaml in d2k folder. Hotkey must be unique! +* Engineer can repair passages/buildings and capture husks +* Better AI: Bots expands, captures Buildings/Husks and use all units in best possible way +* Extended D2k Tileset with destroyable tiles +* New vehicle husks, that engineers can retake +* Various SFX and VFX improvements +* Pro map pack: original D2k maps with neutral buildings, more expansions and equal resources and opportunities for each player + * Various map options and small improvements that makes gameplay easier. + +Credit: +Additional Assets by SirCake, Fey, N.N.>, Kipp, + +Unit stats: + +UNIT COST HEALT ARMOR VISION SPEED RANGE DAMAGE SPREAD RELOAD +Light inf 50 6,000 none 3c768 43 3c0 1500 0c600 36 +Trooper 100 7,000 none 4c768 31 3c550 3600 0c600 55 +Grenadier 80 6,000 none 3c768 43 4c0 1810 1c112 65 +Sardaukar 200 10,000 none 4c768 31 4c0/3c512 2800/1500 0c600 48 +Fremen 185 7,000 none 4c768 43 4c0 2800 0c600 55 +Assassin 110 5,000 none 5c0 38 6c0 10000 0c160 120 +Mercenary none 7,000 none 5c0 31 5c512 3200 0c450 65 +Mortar inf 140 6,500 none 5c812 35 6c512 2500 1c350 85 +Trike 325 9,000 light 7c512 112 3c650 2160 0c600 24 +Raider 350 10,000 light 7c0 132 3c650 2160 0c600 21 +Quad 450 11,000 light 6c0 95 4c0 2x3000 0c600 50 +Hunter 400 9,000 light 7c0 93 3c650 2160 0c600 24 +Crawler 500 15,000 light 5c512 92 unarmed unarmed unarmed unarmed +Atreides Tank 700 22,000 heavy 5c0 72 5c112 3375 0c756 60 +Harkonnen Tank 700 29,000 heavy 5c0 61 4c112 3375 0c756 66 +Ordos Tank 700 19,000 heavy 5c0 80 4c0 3375 0c756 54 +Cheap Tank 600 20,000 heavy 5c0 70 4c0 3375 0c756 68 +Corrino Tank 700 25,000 heavy 5c0 64 4c112 3375 1c112 68 +Siege tank 800 13,000 light 5c512 38 7c512 4800 1c780 105 +Missile tank 900 14,000 light 5c512 45 8c0 2x 4900 0c756 145 +Sonic Tank 1100 30,000 light 5c768 27 6c0 ~4x1282 0c700 100 +Devastator 1200 65,000 heavy 4c750 27 4c768 7800 1c150 80 +Deviator 1100 11,000 light 5c112 47 6c0 2000 0c512 192 +Flamer 1000 21,000 heavy 4c750 70 3c750 5x2000 1c0 38 +Bombardment tank 1200 22,000 light 5c512 40 7c512 4x or 1x 3950 1c450 80 +Bison tank 950 30,000 heavy 5c512 60 4c112 3510 0c756 55 diff --git a/mods/d2k/maps/01scriptrework/Credits.txt b/mods/d2k/maps/01scriptrework/Credits.txt new file mode 100644 index 000000000000..f055075c683e --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Credits.txt @@ -0,0 +1,89 @@ +Thanks to these authors for sharing they work for Enhanced mod: +SIRCAKE: assassin, Bombardment tank, officer, light crawler, wormrider +FEY: Smuggler/Corrino barracks, corrino factory, golden Research center, crawler tank + +NN assets: EnhacedAssets.R8 + + + + + + + + +Sircake licence terms: + +PERMISSIVE ORIGINAL ARTWORK LICENSE (POAL-License) +Definition: MOD = Dune 2000 Advanced (d2kA) +1. You may not use any of the artwork included with MOD without notifying the artwork creator SIRCAKE that you intend to use it for your project. Send an e-mail stating your intent to jfgaa[at]web[dot]de BEFORE publishing any project which uses artwork from MOD and wait for clearance. +2. You are allowed to copy, modify or otherwise use artwork from MOD free of charge for NON-COMMERCIAL purposes only. +3. If you do use artwork from MOD you MUST include SIRCAKE to your public authors or credits lists. +4. If you publicly announce news, an update or additional feature of your project which uses artwork from MOD for the first time you MUST put a note there that the "original artwork [was made] by SirCake". +5. Any reference in your code which directly links artwork which uses artwork from MOD MUST be preceded by a comment which states "original artwork by SirCake. See POAL-License.". +6. You MUST include a copy of this license with every subset of your project which uses artwork from MOD. +7. If you fail to comply with any of the above points you cannot use artwork from MOD for your project. + +The above license applies to: +* AtreidesLoyalist.shp +* AtreidesLoyalistIcon.shp +* AtreidesTurr.shp +* extrapips.shp +* FedaykinTurret.shp +* GasCloudIcon.shp +* GuildAgent.shp +* HarkonnenSiegeTankTurret.shp +* HeavyPiff.shp +* paul_atreides.shp +* PropagandaCorps.shp +* RocketTankTurr.shp +* Wormexplode.shp +* Wormexplode_effect.shp +* WormRider.shp +* InvasionNewCameo.shp +* PaulNewCameo.shp + +---------------- + +The above license DOES NOT APPY TO THE FOLLOWING: + +Free, altered sound files: +* FIREWORKS.wav +* laserburst.wav +* unveil.wav +* veil.wav + +Altered artwork originally owned and still owned by Electronic Arts Inc.: +You may use this modified artwork without limitations as long as you have the same rights on the original WESTWOOD artwork included with a legal Dune 2000 installation: +* AirReinforcementsIcons.shp +* AssassinIcon.shp +* AtreidesHarvesterIcon.shp +* AtreidesTrikeIcon.shp +* Crane.shp +* GasCloud.shp +* GuildAgentIcon.shp +* HarkonnenHarvester.shp +* HarkonnenHarvesterAnimation.shp +* HarkonnenHarvesterIcon.shp +* HarkonnenMissileTank.shp +* HarkonnenMissileTankIcon.shp +* HarkonnenSiegeTankIcon.shp +* LockedTechCameos.shp +* MerchenaryTankIcon.shp +* MerchenaryTurr.shp +* MiniCameos.shp +* minicameos2.shp +* MobileCrane.shp +* MobileCraneIcon.shp +* OrdosHarvester.shp +* OrdosHarvesterAnimation.shp +* OrdosHarvesterIcon.shp +* PropagandaCorpsIcon.shp +* RocketQuad.shp +* RocketQuadIcon.shp +* RocketTankOIcon.shp +* Sardaukar-stab.shp +* SiegeTankOIcon.shp +* TrikeChassis.shp +* TroopCrawler.shp +* TroopCrawlerIcon.shp + diff --git a/mods/d2k/maps/01scriptrework/D2k.pal b/mods/d2k/maps/01scriptrework/D2k.pal new file mode 100644 index 000000000000..01b5babc5f56 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/D2k.pal differ diff --git a/mods/d2k/maps/01scriptrework/EnhacedAssets.R8 b/mods/d2k/maps/01scriptrework/EnhacedAssets.R8 new file mode 100644 index 000000000000..acc5a5c6d58d Binary files /dev/null and b/mods/d2k/maps/01scriptrework/EnhacedAssets.R8 differ diff --git a/mods/d2k/maps/01scriptrework/EnhancedAssets_2.R8 b/mods/d2k/maps/01scriptrework/EnhancedAssets_2.R8 new file mode 100644 index 000000000000..4bef183b7039 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/EnhancedAssets_2.R8 differ diff --git a/mods/d2k/maps/01scriptrework/EnhancedSequences.yaml b/mods/d2k/maps/01scriptrework/EnhancedSequences.yaml new file mode 100644 index 000000000000..ce07621da34d --- /dev/null +++ b/mods/d2k/maps/01scriptrework/EnhancedSequences.yaml @@ -0,0 +1,2716 @@ +icon: + carryall: + Filename: DATA.R8 + Start: 4290 + Offset: -30,-24 + infantry_reinforcement: + Filename: bits/AirReinforcementsIcons.shp + Start: 2 + Lenght: 1 + officer: + Filename: EnhacedAssets.R8 + Start: 458 + Offset: -30,-24 + sandworm: + Filename: wormicon.shp + Start: 0 + gascloud: + Filename: bits/GasCloudIcon.shp + Start: 0 + mercenary: + Filename: EnhacedAssets.R8 + Start: 717 + Offset: -30,-24 + jammer: + Filename: EnhacedAssets.R8 + Start: 719 + Offset: -30,-24 + sardaukarFleet: + Filename: EnhacedAssets.R8 + Start: 738 + Offset: -30,-24 + sardaukarVeterancy: + Filename: EnhacedAssets.R8 + Start: 739 + Offset: -30,-24 + hide_units: + Filename: EnhacedAssets.R8 + Start: 744 + Offset: -30,-24 + lightStrike: + Filename: EnhacedAssets.R8 + Start: 319 + Offset: -30,-24 + true_sayer: + Filename: EnhacedAssets.R8 + Start: 479 + Offset: -30,-24 + + +crate: + idle: + Filename: DATA.R8 + Start: 102 + ZOffset: -511 + Offset: -16,-16 + Facings: 1 + icon: + Filename: DATA.R8 + Start: 102 + Offset: -16,-16 + +invisible: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: DATA.R8 + Start: 102 + Offset: -16,-16 + +iconchevrons: + veteran: + Filename: EnhacedAssets.R8 + Start: 741 + Offset: 0,0 + +pips: + pip-skull: + Filename: bits/pip-skull.shp + Offset: -2, 0 + pip-jammer: + Filename: EnhacedAssets.R8 + Start: 796 + Offset: 2,0 + +skullicon: + idle: + Filename: bits/ScullIconTD01.shp + Length: * + +rotor: + idle: + Filename: EnhacedAssets.R8 + Start: 44 + Facings: -4 + Tick: 180 + make: + Filename: EnhacedAssets.R8 + Start: 44 + Length: 5 + Tick: 180 + + +choam_unit_number: + 1: + Filename: DATA.R8 + Start: 18 + 2: + Filename: DATA.R8 + Start: 19 + 3: + Filename: DATA.R8 + Start: 20 + 4: + Filename: DATA.R8 + Start: 21 + 5: + Filename: DATA.R8 + Start: 22 + 6: + Filename: DATA.R8 + Start: 23 + +# +# Smoke & fire +# + + +burn_ra1: + idle: + Filename: bits/burn-l.shp + Length: * + ZOffset: -100 + loop: + Filename: bits/burn-l.shp + Start: 16 + Length: 44 + ZOffset: -100 + end: + Filename: bits/burn-l.shp + Start: 60 + Length: 6 + ZOffset: -100 + + +smoke_m: + 1_start: + Filename: DATA.R8 + Start: 3965 + Length: 4 + Offset: 4,-17 + ZOffset: 1023 + Tick: 120 + BlendMode: Additive + smokeFromRA01idle: + Filename: bits/smokeFromRA.shp + Length: * + Offset: 2, -5 + ZOffset: 512 + smokeFromRA01loop: + Filename: bits/smokeFromRA.shp + Start: 49 + Length: 42 + Offset: 2, -5 + ZOffset: 512 + smokeFromRA01end: + Filename: bits/smokeFromRA.shp + Offset: 2, -5 + ZOffset: 512 + Frames: 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 + smokLandFromRA_Open: + Filename: bits/smokland.shp + Length: 72 + Tick: 120 + ZOffset: 1026 + Offset: 10, -20 + smokLandFromR_idle: + Filename: bits/smokland.shp + Start: 72 + Length: 20 + Tick: 120 + ZOffset: 1026 + Offset: 10, -20 + smoke_player: #deviator gasleak + Filename: EnhacedAssets.R8 + Start: 282 + Length: 19 + Tick: 120 + ZOffset: 512 + Offset: -15, -30 + BlendMode: Alpha + d2ksmoke: + Filename: DATA.R8 + Start: 3747 + Length: 7 + BlendMode: Multiply + Tick: 500 + +smoke_big: + start: + Filename: bits/smokeFromTS.shp + Start: 0 + Length: 25 + ZOffset: 512 + Tick: 100 + loop: + Filename: bits/smokeFromTS.shp + Start: 26 + Length: 65 + Tick: 120 + +fire: + 1_start: + Filename: DATA.R8 + Start: 3965 + Length: 4 + Offset: 4,-17 + ZOffset: 1023 + Tick: 120 + BlendMode: Additive + 1: + Tick: 100 + 2: + Tick: 100 + 4: + Tick: 100 + +fire_slow: + Defaults: + Tick: 80 + 1_start: + Filename: DATA.R8 + Start: 3965 + Length: 4 + Offset: 4,-17 + ZOffset: 1023 + Tick: 120 + BlendMode: Additive + 1_loop: + Filename: DATA.R8 + Length: 6 + Frames: 3968,3969,3970,3971,3972,3973,3970,3971,3972,3973, 3969 + Offset: 4,-17 + ZOffset: 1023 + Tick: 120 + BlendMode: Additive + 1: + Filename: DATA.R8 + Start: 3965 + Length: 10 + Offset: 4,-17 + ZOffset: -100 + Scale: 1 + BlendMode: Additive + 2: + Filename: DATA.R8 + Start: 3976 + Length: 11 + Offset: 0,-3 + ZOffset: -100 + BlendMode: Additive + 3: + Filename: DATA.R8 + Start: 4138 + Length: 13 + Offset: 0,-3 + ZOffset: -100 + BlendMode: Additive + 4: + Filename: DATA.R8 + Start: 3965 + Length: 10 + Offset: 0,-3 + ZOffset: 1023 + BlendMode: Additive + +fire_fromts: + 1: + Filename: EnhacedAssets.R8 + Start: 61 + Length: 17 + ZOffset: 1023 + BlendMode: Additive + Tick: 100 + +flame_trail: + idle: + Filename: EnhancedAssets_2.R8 + Start: 131 + Length: 6 + Tick: 50 + ZOffset: 1023 + BlendMode: Additive + small_napalm_trail: + Filename: DATA.R8 + Start: 3674 + Length: 8 + ZOffset: 1023 + BlendMode: Additive + +bazooka_trail3: + idle: + Filename: DATA.R8 + Start: 3797 + Length: 4 + Tick: 80 + ZOffset: 2800 + + +smoke3: + particles: + Tick: 130 + +smoke4: + particles: + Filename: DATA.R8 + ZOffset: 511 + Start: 3747 + Length: 7 + Tick: 140 + BlendMode: Subtractive + HasEmbeddedPalette: True + +# +# Smudges experimets +# + +bib_damaged: + bib1: + Filename: EnhacedAssets.R8 + Start: 275 + Length: 1 + Offset: -16,-16 + bib2: + Filename: EnhacedAssets.R8 + Start: 276 + Length: 1 + Offset: -16,-16 + bib2: + Filename: EnhacedAssets.R8 + Start: 277 + Length: 1 + Offset: -16,-16 + ZOffset: 1024 + bib3: + Filename: EnhacedAssets.R8 + Start: 9 + Length: 1 + Offset: -16,-16 + +crater_big: + idle: + Filename: DATA.R8 + Start: 38 + sand: + Filename: EnhacedAssets.R8 + Start: 470 + Offset: -70,-50 + ZOffset: -3c0 + BlendMode: Alpha + rock: + Filename: EnhacedAssets.R8 + Start: 471 + Offset: -70,-50 + ZOffset: -3c0 + + + +# +# +# tank/vehicles husks +# +combat_tank_a.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 133 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + +combat_tank_a.husk02: + idle: + Filename: EnhacedAssets.R8 + Start: 133 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 109 + Facings: -4 + ZOffset: -512 + +combat_tank_a.husk03: + idle: + Filename: EnhacedAssets.R8 + Start: 133 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 109 + Facings: -4 + ZOffset: -512 + +combat_tank_a.husk04: + idle: + Filename: DATA.R8 + Start: 1731 + Facings: -32 + ZOffset: -512 + turret: + Filename: EnhacedAssets.R8 + Start: 109 + Facings: -4 + ZOffset: -512 + + +combat_tank_h: + turret: + Filename: DATA.R8 + Start: 2115 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 4028 + Tick: 60 + Facings: -32 + BlendMode: Additive + icon: + Filename: DATA.R8 + Start: 4282 + Offset: -30,-24 + +combat_tank_h.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 165 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + +combat_tank_h.husk02: + idle: + Filename: EnhacedAssets.R8 + Start: 165 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 113 + Facings: -4 + ZOffset: -512 + + +combat_tank_h.husk03: + idle: + Filename: EnhacedAssets.R8 + Start: 165 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 113 + Facings: -4 + ZOffset: -512 + +combat_tank_h.husk04: + idle: + Filename: DATA.R8 + Start: 2051 + Facings: -32 + ZOffset: -512 + turret: + Filename: EnhacedAssets.R8 + Start: 113 + Facings: -4 + ZOffset: -512 + +combat_tank_o.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 197 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + +combat_tank_o.husk02: + idle: + Filename: EnhacedAssets.R8 + Start: 197 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 117 + Facings: -4 + ZOffset: -512 + +combat_tank_o.husk03: + idle: + Filename: EnhacedAssets.R8 + Start: 197 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 117 + Facings: -4 + ZOffset: -512 + +combat_tank_o.husk04: + idle: + Filename: DATA.R8 + Start: 2453 + Facings: -32 + ZOffset: -512 + turret: + Filename: EnhacedAssets.R8 + Start: 117 + Facings: -4 + ZOffset: -512 + +siege_tank.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 229 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + +sonic_tank.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 327 + Facings: -16 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 343 + Facings: -4 + ZOffset: -512 + Offset: -10, -11 + tankdebris01: + Filename: EnhacedAssets.R8 + Start: 323 + ZOffset: -512 + tankdebris02: + Filename: EnhacedAssets.R8 + Start: 324 + ZOffset: -512 + tankdebris03: + Filename: EnhacedAssets.R8 + Start: 325 + ZOffset: -512 + tankdebris04: + Filename: EnhacedAssets.R8 + Start: 326 + ZOffset: -512 + +missile_tank.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 349 + Facings: -16 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 365 + Facings: -16 + ZOffset: -512 + Offset: -11, -8 + tankdebris01: + Filename: EnhacedAssets.R8 + Start: 380 + ZOffset: -512 + tankdebris02: + Filename: EnhacedAssets.R8 + Start: 381 + ZOffset: -512 + tankdebris03: + Filename: EnhacedAssets.R8 + Start: 382 + ZOffset: -512 + tankdebris04: + Filename: EnhacedAssets.R8 + Start: 383 + ZOffset: -512 + +carryall.husk_on_land: + idle: + Filename: EnhancedAssets_2.R8 + Start: 170 + Facings: -8 + Offset: -40,-40 + debris_rotor_idle: + Filename: EnhacedAssets.R8 + Start: 44 + Facings: -4 + +ornithopter: + muzzle: + Filename: DATA.R8 + Start: 4092 + Tick: 50 + Facings: -32 + BlendMode: Additive + +### +# husks turret anim +### + + + +siege_turret_husk_anim: + idle: + Filename: DATA.R8 + Start: 1891 + Length: 32 + +tank_turrethusk_anim.atreides: + idle: + Filename: EnhacedAssets.R8 + Start: 109 + Length: 4 + Tick: 180 + +tank_turrethusk_anim01.atreides: + idle: + Filename: DATA.R8 + Start: 1859 + Length: 32 + +tank_turrethusk_anim.harkonnen: + idle: + Filename: EnhacedAssets.R8 + Start: 113 + Length: 4 + Tick: 180 + +tank_turrethusk_anim01.harkonnen: + idle: + Filename: DATA.R8 + Start: 2115 + Length: 32 + +tank_turrethusk_anim.ordos: + idle: + Filename: DATA.R8 + Start: 2485 + Length: 32 + +#### +# BUILDING HUSKS +#### + + +husk_wind_trap_passable: + idle: + Filename: EnhacedAssets.R8 + Start: 52 + Offset: -32,-32 + Palette: terrain + ZOffset: -200 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + debris01: + Filename: EnhacedAssets.R8 + Start: 323 + ZOffset: -512 + debris02: + Filename: EnhacedAssets.R8 + Start: 324 + ZOffset: -512 + debris03: + Filename: EnhacedAssets.R8 + Start: 325 + ZOffset: -512 + debris04: + Filename: EnhacedAssets.R8 + Start: 326 + ZOffset: -512 + +husk_wind_trap.atreides: + idle: + Filename: EnhacedAssets.R8 + Start: 49 + Offset: -32,-40 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 49 + Offset: -32,-40 + Palette: terrain + ZOffset: -200 + + +husk_wind_trap.harkonnen: + idle: + Filename: EnhacedAssets.R8 + Start: 50 + Offset: -32,-40 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 50 + Offset: -32,-40 + ZOffset: -200 + Palette: effect + +husk_wind_trap.ordos: + idle: + Filename: EnhacedAssets.R8 + Start: 50 + Offset: -32,-40 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 50 + Offset: -32,-40 + + +husk_refinery.ordos: + idle: + Filename: EnhacedAssets.R8 + Start: 266 + Offset: -64,-48 + ZOffset: -600 + idle-front: + Filename: EnhacedAssets.R8 + Start: 267 + Offset: -64,-48 + ZOffset: 600 + idle-top: + Filename: EnhacedAssets.R8 + Start: 268 + Offset: -64,-48 + ZOffset: 1024 + bib: + Filename: EnhacedAssets.R8 + Frames: 7,8,9,10,11,12 + Length: 6 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 26,27,28,29,30,31 + Length: 6 + Offset: -16,-16 + +husk_refinery.atreides: + idle: + Filename: EnhacedAssets.R8 + Start: 269 + Offset: -62,-43 + ZOffset: -600 + idle-front: + Filename: EnhacedAssets.R8 + Start: 270 + Offset: -62,-43 + ZOffset: 600 + idle-top: + Filename: EnhacedAssets.R8 + Start: 271 + Offset: -62,-43 + ZOffset: 1024 + bib: + Filename: EnhacedAssets.R8 + Frames: 7,8,9,10,11,12 + Length: 6 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 26,27,28,29,30,31 + Length: 6 + Offset: -16,-16 + +husk_refinery.harkonnen: + idle: + Filename: EnhacedAssets.R8 + Start: 272 + Offset: -56,-45 + ZOffset: -600 + idle-front: + Filename: EnhacedAssets.R8 + Start: 273 + Offset: -56,-45 + ZOffset: 600 + idle-top: + Filename: EnhacedAssets.R8 + Start: 274 + Offset: -56,-45 + ZOffset: 1024 + bib: + Filename: EnhacedAssets.R8 + Frames: 7,8,9,10,11,12 + Length: 6 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 26,27,28,29,30,31 + Length: 6 + Offset: -16,-16 + +refinery_ruins: + idle: + Filename: EnhacedAssets.R8 + Start: 303 + Offset: -56,-45 + ZOffset: -1024 + bib: + Filename: EnhacedAssets.R8 + Frames: 7,8,9,10,11,12 + Length: 6 + Offset: -16,-16 + ZOffset: -1500 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 26,27,28,29,30,31 + Length: 6 + Offset: -16,-16 + ZOffset: -1500 + + +refinery_invert.atreidis: + idle: + Filename: EnhacedAssets.R8 + Start: 304 + Offset: -48,-32 + ZOffset: -600 + idle-front: + Filename: EnhacedAssets.R8 + Start: 305 + Offset: -48,-32 + ZOffset: 600 + idle-top: + Filename: EnhacedAssets.R8 + Start: 306 + Offset: -48,-32 + ZOffset: 1024 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 304 + Offset: -48,-32 + ZOffset: -600 + damaged-idle-top: + Filename: EnhacedAssets.R8 + Start: 307 + Offset: -48,-32 + ZOffset: 1024 + bib: + Filename: EnhacedAssets.R8 + Frames: 7,8,9,10,11,12 + Length: 6 + Offset: -16,-16 + ZOffset: -700 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 26,27,28,29,30,31 + Length: 6 + Offset: -16,-16 + ZOffset: -700 + make: + Filename: DATA.R8 + Start: 4495 + Length: 11 + Offset: -48,96 + ZOffset: 1500 + crumble-overlay: + Filename: DATA.R8 + Start: 4505 + Length: 12 + Offset: -48,96 + Tick: 100 + ZOffset: 1500 + icon: + Filename: EnhacedAssets.R8 + Start: 308 + Offset: -30,-24 + smoke: + Filename: DATA.R8 + Start: 4138 + Length: 14 + Offset: 13, 16 + Tick: 100 + BlendMode: Additive + +refinery_invert.ordos: + idle: + Filename: EnhacedAssets.R8 + Start: 311 + Offset: -54,-26 + ZOffset: -600 + idle-front: + Filename: EnhacedAssets.R8 + Start: 312 + Offset: -54,-26 + ZOffset: 1000 + idle-top: + Filename: EnhacedAssets.R8 + Start: 313 + Offset: -54,-22 + ZOffset: 1024 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 311 + Offset: -48,-22 + ZOffset: -600 + damaged-idle-top: + Filename: EnhacedAssets.R8 + Start: 314 + Offset: -54,-22 + ZOffset: 1024 + bib: + Filename: BLOXBASE.R8 + Frames: 611, 612, 613, 631, 632, 633 + Length: 6 + Offset: -16,-16 + bib-Concrete: + Filename: BLOXBASE.R8 + Frames: 643, 644, 645, 663, 664, 665 + Length: 6 + Offset: -16,-16 + make: + Filename: DATA.R8 + Start: 4495 + Length: 11 + Offset: -48,96 + ZOffset: 1500 + crumble-overlay: + Filename: DATA.R8 + Start: 4505 + Length: 12 + Offset: -48,96 + Tick: 100 + ZOffset: 1500 + icon: + Filename: EnhacedAssets.R8 + Start: 310 + Offset: -30,-24 + smoke: + Filename: DATA.R8 + Start: 4138 + Length: 14 + Offset: 13, 16 + Tick: 100 + BlendMode: Additive + + +refinery_invert.harkonnen: + idle: + Filename: EnhacedAssets.R8 + Start: 315 + Offset: -54,-26 + ZOffset: -600 + idle-front: + Filename: EnhacedAssets.R8 + Start: 316 + Offset: -54,-26 + ZOffset: 1000 + idle-top: + Filename: EnhacedAssets.R8 + Start: 317 + Offset: -54,-22 + ZOffset: 1024 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 315 + Offset: -48,-22 + ZOffset: -600 + damaged-idle-top: + Filename: EnhacedAssets.R8 + Start: 318 + Offset: -54,-22 + ZOffset: 1024 + bib: + Filename: EnhacedAssets.R8 + Frames: 7,8,9,10,11,12 + Length: 6 + Offset: -16,-16 + ZOffset: -700 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 26,27,28,29,30,31 + Length: 6 + Offset: -16,-16 + make: + Filename: DATA.R8 + Start: 4495 + Length: 11 + Offset: -48,96 + ZOffset: 1500 + crumble-overlay: + Filename: DATA.R8 + Start: 4505 + Length: 12 + Offset: -48,96 + Tick: 100 + ZOffset: 1500 + icon: + Filename: EnhacedAssets.R8 + Start: 309 + Offset: -30,-24 + smoke: + Filename: DATA.R8 + Start: 4138 + Length: 14 + Offset: 13, 16 + Tick: 100 + BlendMode: Additive + + +# +# 0.8 buildings +# + +fremen_sietch: + idle: + Filename: EnhacedAssets.R8 + Start: 473 + Offset: -48,-64 + idle-top: + Filename: EnhacedAssets.R8 + Start: 474 + Offset: -48,-80 + ZOffset: 1024 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 473 + Offset: -48,-64 + make: + Filename: DATA.R8 + Start: 4592 + Length: 9 + Offset: -48, 64 + crumble-overlay: + Filename: DATA.R8 + Start: 4601 + Length: 9 + Offset: -48, 64 + Tick: 100 + bib: + Filename: BLOXBASE.R8 + Frames: 631, 632, 633 + Length: 3 + Offset: -16,-16 + bib-Concrete: + Filename: BLOXBASE.R8 + Frames: 663, 664, 665 + Length: 3 + Offset: -16,-16 + icon: + Filename: EnhacedAssets.R8 + Start: 472 + Offset: -30,-24 + +# +# DEBRIS & Shrapnels +# + +debris_rotor_anim: + idle: + Filename: EnhacedAssets.R8 + Start: 44 + Length: 5 + Tick: 180 + +shrapnel_rock01: + idle: + Filename: EnhacedAssets.R8 + Start: 0 + Length: 3 + ZOffset: 1023 + Tick: 180 + + +shrapnel_rock02: + idle: + Filename: EnhacedAssets.R8 + Start: 2 + Length: 1 + ZOffset: 1023 + Tick: 180 + + +shrapnel_vehicle01: + idle: + Filename: EnhacedAssets.R8 + Start: 79 + Length: 15 + ZOffset: 1023 + +shrapnel_vehicle02: + idle: + Filename: EnhacedAssets.R8 + Start: 94 + Length: 15 + ZOffset: 1023 + +harvester_wheel01: + idle: + Filename: EnhacedAssets.R8 + Start: 53 + Length: 5 + Tick: 160 + +harvester_wheel02: + idle: + Filename: EnhacedAssets.R8 + Start: 53 + Length: 5 + Tick: 140 + +empty_shell01: + idle: + Filename: EnhacedAssets.R8 + Start: 448 + Facings: -8 +# +# EXPLOSIONS +# +explosion: + empty_shell_frame_01: + Filename: EnhacedAssets.R8 + Start: 448 + Facings: -8 + ZOffset: -540 + Tick: 2000 + siege_turret_frame01: + Filename: DATA.R8 + Start: 1892 + Length: 1 + BlendMode: None + Tick: 2000 + siege_turret_frame02: + Filename: DATA.R8 + Start: 1896 + Length: 1 + BlendMode: None + Tick: 2000 + siege_turret_frame03: + Filename: DATA.R8 + Start: 1900 + Length: 1 + BlendMode: None + Tick: 2000 + siege_turret_frame04: + Filename: DATA.R8 + Start: 1907 + Length: 1 + BlendMode: None + Tick: 2000 + siege_turret_frame05: + Filename: DATA.R8 + Start: 1910 + Length: 1 + BlendMode: None + Tick: 2000 + atreidis_turret_frame01: + Filename: EnhacedAssets.R8 + Start: 109 + Length: 1 + BlendMode: None + Tick: 2000 + atreidis_turret_frame02: + Filename: EnhacedAssets.R8 + Start: 110 + Length: 1 + BlendMode: None + Tick: 2000 + atreidis_turret_frame03: + Filename: EnhacedAssets.R8 + Start: 111 + Length: 1 + BlendMode: None + Tick: 2000 + atreidis_turret_frame04: + Filename: EnhacedAssets.R8 + Start: 112 + Length: 1 + BlendMode: None + Tick: 2000 + harkonnen_turret_frame01: + Filename: EnhacedAssets.R8 + Start: 113 + Length: 1 + BlendMode: None + Tick: 2000 + harkonnen_turret_frame02: + Filename: EnhacedAssets.R8 + Start: 114 + Length: 1 + BlendMode: None + Tick: 2000 + harkonnen_turret_frame03: + Filename: EnhacedAssets.R8 + Start: 115 + Length: 1 + BlendMode: None + Tick: 2000 + harkonnen_turret_frame04: + Filename: EnhacedAssets.R8 + Start: 116 + Length: 1 + BlendMode: None + Tick: 2000 + ordos_turret_frame01: + Filename: EnhacedAssets.R8 + Start: 117 + Length: 1 + BlendMode: None + Tick: 2000 + ordos_turret_frame02: + Filename: EnhacedAssets.R8 + Start: 118 + Length: 1 + BlendMode: None + Tick: 2000 + ordos_turret_frame03: + Filename: EnhacedAssets.R8 + Start: 119 + Length: 1 + BlendMode: None + Tick: 2000 + ordos_turret_frame04: + Filename: EnhacedAssets.R8 + Start: 120 + Length: 1 + BlendMode: None + Tick: 2000 + heavy_piff: + Filename: bits/HeavyPiff.shp + Offset: 0,-7 + Start: 0 + Length: 4 + wormdisapier: + Filename: DATA.R8 + Start: 3818 + Length: 20 + Tick: 80 + sand: + Filename: DATA.R8 + Frames: 3879, 3880, 3881 + Length: 3 + BlendMode: Multiply + gascloud: + Filename: EnhacedAssets.R8 + Start: 707 + Length: 10 + Alpha: 0.5 + BlendMode: Alpha + Offset: -56, -54 + Tick: 150 + fire2: + Filename: DATA.R8 + Start: 3976 + Length: 11 + Offset: 0,-3 + ZOffset: -100 + napalm_big: + Filename: bits/napalm3.shp + Length: * + ZOffset: -100 + BlendMode: None + napalm_small: + Filename: bits/napalm1.shp + Length: * + ZOffset: -100 + BlendMode: None + worm_explode: + Filename: bits/Wormexplode.shp + Start: 1 + Length: 16 + BlendMode: Alpha + worm_explode_smoke: + Filename: bits/Wormexplode_effect.shp + Start: 1 + Length: 16 + Offset: 0,-15 + +medium_gun_turret: + turret: + Filename: EnhacedAssets.R8 + Start: 384 + Facings: -32 + Offset: -21,-33 + barrel: + Filename: EnhacedAssets.R8 + Start: 416 + Facings: -32 + Offset: -21,-33 + +airstrike_direction: + arrow-t: + Filename: MOUSE.R8 + Start: 112 + Offset: -25, -53, 0 + arrow-tr: + Filename: MOUSE.R8 + Start: 120 + Offset: 6, -47, 0 + arrow-r: + Filename: MOUSE.R8 + Start: 128 + Offset: 17, -26, 0 + arrow-br: + Filename: MOUSE.R8 + Start: 136 + Offset: 6, -1, 0 + arrow-b: + Filename: MOUSE.R8 + Start: 148 + Offset: -25, 7, 0 + arrow-bl: + Filename: MOUSE.R8 + Start: 156 + Offset: -52, -3, 0 + arrow-l: + Filename: MOUSE.R8 + Start: 164 + Offset: -61, -26, 0 + arrow-tl: + Filename: MOUSE.R8 + Start: 172 + Offset: -52, -44, 0 + +# +# 0.8 New units +# +mortar_inf: + stand: + Filename: DATA.R8 + Start: 1402 + Facings: -8 + Transpose: true + idle1: + Filename: DATA.R8 + Frames: 1548, 1555, 1562, 1569, 1576, 1583, 1590, 1597 + Length: 8 + Tick: 80 + idle2: + Filename: DATA.R8 + Frames: 1549, 1556, 1563, 1570, 1577, 1584, 1591, 1598 + Length: 8 + Tick: 80 + run: + Filename: DATA.R8 + Start: 1410 + Length: 6 + Facings: -8 + Transpose: true + Tick: 120 + standup: + Filename: DATA.R8 + Start: 1462 + Facings: -8 + Transpose: true + Tick: 120 + prone-stand: + Filename: DATA.R8 + Start: 1470 + Facings: -8 + Transpose: true + prone-run: + Filename: DATA.R8 + Start: 1478 + Length: 3 + Facings: -8 + Transpose: true + Tick: 120 + deploying: + Filename: EnhacedAssets.R8 + Start: 460 + Length: 8 + Offset: -6,-11 + Tick: 250 + deployed: + Filename: DATA.R8 + Start: 1458 + Facings: 1 + turret: + Filename: DATA.R8 + Start: 1458 + shoot: + Filename: DATA.R8 + Start: 1458 + Length: 5 + invisible: + Filename: DATA.R8 + Start: 38 + thump: + Filename: DATA.R8 + Start: 1458 + Length: 5 + Tick: 150 + thump-sand: + Filename: DATA.R8 + Frames: 3882, 3883, 3879, 3880, 3881 + Length: 5 + Tick: 150 + BlendMode: Multiply + die1: + Filename: DATA.R8 + Frames: 1543, 1550, 1557, 1564, 1571, 1578, 1585, 1592, 1599, 1600, 1601, 1602 + Length: 12 + Tick: 80 + die2: + Filename: DATA.R8 + Frames: 1544, 1551, 1558, 1565, 1572, 1579, 1586, 1593 + Length: 8 + Tick: 80 + die3: + Filename: DATA.R8 + Frames: 1546, 1552, 1559, 1566, 1573, 1580, 1587, 1594 + Length: 8 + Tick: 80 + die4: + Filename: DATA.R8 + Frames: 1547, 1553, 1560, 1567, 1574, 1581, 1588, 1595 + Length: 8 + Tick: 80 + die-crushed: + Filename: DATA.R8 + Frames: 1548, 1554, 1561, 1568, 1575, 1582, 1589, 1596 + Length: 8 + Tick: 800 + ZOffset: -511 + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + icon: + Filename: EnhacedAssets.R8 + Start: 793 + Offset: -30,-24 + +mercenary: + stand: + Filename: EnhacedAssets.R8 + Start: 574 + Facings: -8 + Offset: -12, -17 + idle1: + Filename: EnhacedAssets.R8 + Start: 685 + Length: 12 + Offset: -12, -17 + Tick: 110 + idle2: + Filename: EnhacedAssets.R8 + Start: 698 + Length: 9 + Offset: -12, -17 + Tick: 110 + run: + Filename: EnhacedAssets.R8 + Start: 582 + Facings: -8 + Length: 6 + Offset: -12, -17 + Transpose: false + Tick: 80 + deploying: + Filename: EnhacedAssets.R8 + Start: 630 + Length: 7 + Offset: -17, -17 + Tick: 180 + turret: + Filename: EnhacedAssets.R8 + Start: 637 + Facings: -8 + Length: 1 + Offset: -17, -17 + turret-shoot: + Filename: EnhacedAssets.R8 + Start: 645 + Facings: -8 + Length: 5 + Offset: -17, -17 + Tick: 120 + muzzle: + Filename: DATA.R8 + Start: 4028 + Tick: 60 + Facings: -32 + BlendMode: Additive + invisible: + Filename: DATA.R8 + Start: 38 + prone-stand: + Filename: DATA.R8 + Start: 310 + Facings: -8 + Transpose: true + prone-run: + Filename: DATA.R8 + Start: 310 + Length: 3 + Facings: -8 + Transpose: true + Tick: 110 + standup: + Filename: DATA.R8 + Start: 302 + Facings: -8 + Transpose: true + Tick: 120 + prone-shoot: + Filename: DATA.R8 + Start: 334 + Length: 6 + Facings: -8 + Transpose: true + die1: + Filename: DATA.R8 + Frames: 382, 389, 396, 403, 410, 417, 424, 431, 438, 443, 448, 453 + Length: 12 + Tick: 80 + die2: + Filename: DATA.R8 + Frames: 383, 390, 397, 404, 411, 418, 425, 432, 439, 444, 449, 454 + Length: 12 + Tick: 80 + die3: + Filename: DATA.R8 + Frames: 384, 391, 398, 405, 412, 419, 426, 433, 440, 445, 450, 455 + Length: 12 + Tick: 80 + die4: + Filename: DATA.R8 + Frames: 385, 392, 399, 406, 413, 420, 427, 434, 441, 446, 451, 456 + Length: 12 + Tick: 80 + die-crushed: + Filename: DATA.R8 + Frames: 386, 393, 400, 407, 414, 421, 428, 435, 442, 447, 452, 457 + Length: 12 + Tick: 800 + ZOffset: -511 + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + icon: + Filename: EnhacedAssets.R8 + Start: 717 + Offset: -30,-24 + +mp_sandworm: + mouth: + Filename: DATA.R8 + Start: 3802 + Length: 15 + Tick: 100 + sand: + Filename: EnhacedAssets.R8 + Start: 574 + Length: 11 + Facings: -8 + Offset: -38, -38 + Tick: 80 + stand: + Filename: EnhacedAssets.R8 + Start: 478 + Length: 4 + Facings: -16 + Offset: -30,-30 + run: + Filename: EnhacedAssets.R8 + Start: 478 + Facings: -16 + Offset: -30,-30 + idle: + Filename: bits/WormRider.shp + Start: 0 + Length: 10 + Tick: 125 + Facings: -16 + ZOffset: 2048 + lightninga: + Filename: DATA.R8 + Start: 3844 + Length: 5 + Tick: 80 + BlendMode: Additive + lightningb: + Filename: DATA.R8 + Start: 3849 + Length: 5 + Tick: 80 + BlendMode: Additive + lightningc: + Filename: DATA.R8 + Start: 3854 + Length: 5 + Tick: 80 + BlendMode: Additive + lightningd: + Filename: DATA.R8 + Start: 3859 + Length: 5 + Tick: 80 + BlendMode: Additive + lightninge: + Filename: DATA.R8 + Start: 3864 + Length: 5 + Tick: 80 + BlendMode: Additive + lightningf: + Filename: DATA.R8 + Start: 3869 + Length: 5 + Tick: 80 + BlendMode: Additive + make: + Filename: DATA.R8 + Start: 3844 + Length: 30 + Tick: 80 + BlendMode: Additive + turret: + Filename: bits/FedaykinTurret.shp + Start: 0 + Facings: -32 + Offset: 0,-3 + ZOffset: 2500 + icon: + Filename: wormicon.shp + +engineer: + deploy: + Filename: EnhacedAssets.R8 + Start: 754 + Length: 5 + Tick: 480 + Offset: -5,-9 + thump: + Filename: EnhacedAssets.R8 + Start: 754 + Length: 5 + Tick: 480 + Offset: -5,-9 + thump-sand: + Filename: DATA.R8 + Frames: 3882, 3883, 3879, 3880, 3881 + Length: 5 + Tick: 480 + BlendMode: Multiply + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + +spire: + idle: + Filename: EnhacedAssets.R8 + Start: 722 + Facings: -16 + Offset: -18,-18 + icon: + Filename: DATA.R8 + Start: 4279 + Offset: -30,-24 + +bison_tank: + idle: + Filename: EnhancedAssets_2.R8 + Start: 220 + Facings: -32 + Offset: -32,-32 + Scale: 0.8 + turret: + Filename: EnhancedAssets_2.R8 + Start: 252 + Facings: -32 + Offset: -32,-32 + Scale: 0.7 + icon: + Filename: EnhancedAssets_2.R8 + Start: 65 + Offset: -30,-24 + muzzle: + Filename: DATA.R8 + Start: 4028 + Tick: 60 + Facings: -32 + BlendMode: Additive + +bison_tank.husk: + idle: + Filename: EnhancedAssets_2.R8 + Start: 220 + Facings: -32 + Offset: -32,-32 + ZOffset: -1024 + Scale: 0.8 + turret: + Filename: EnhancedAssets_2.R8 + Start: 252 + Facings: -32 + Offset: -32,-32 + ZOffset: -1024 + Scale: 0.7 +# +# 0.8 buildings +# + +barracks.smuggler: + Inherits: barracks.ordos + idle: + Filename: bits/d2k_barracks_merc.shp + Start: 0 + Offset: 0,0 + damaged-idle: + Filename: bits/d2k_barracks_merc.shp + Start: 1 + Offset: 0,0 + icon: + Filename: EnhacedAssets.R8 + Start: 720 + Offset: -30,-24 + +barracks.fremen: + Inherits: barracks.atreides + idle: + Filename: EnhacedAssets.R8 + Start: 772 + Offset: -37,-50 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 773 + Offset: -37,-50 + icon: + Filename: EnhacedAssets.R8 + Start: 774 + Offset: -30,-24 + +research.smuggler: + Inherits: research.ordos + idle: + Filename: bits/d2k_research_center_gold.shp + Start: 0 + Offset: 0,0 + damaged-idle: + Filename: bits/d2k_research_center_gold.shp + Start: 1 + Offset: 0,0 + icon: + Filename: bits/d2k_research_center_gold_icon.shp + Start: 0 + Offset: 0,0 + +barracks.corrino: + Inherits: barracks.harkonnen + idle: + Filename: bits/d2k_barracks_corrino.shp + Start: 0 + Offset: 0,0 + icon: + Filename: EnhacedAssets.R8 + Start: 721 + Offset: -30,-24 + damaged-idle: + Filename: bits/d2k_barracks_corrino.shp + Start: 1 + Offset: 0,0 + +heavy.mercenary: + icon: + Filename: EnhacedAssets.R8 + Start: 760 + Offset: -30,-24 + +heavy.corrino: + Inherits: heavy.harkonnen + idle: + Filename: DATA.R8 + Start: 2926 + Offset: -48,80 + idle-top: + Filename: bits/d2k_heavy_factory_corrino.shp + Start: 1 + Length: 1 + Offset: 1,-5 + damaged-idle-top: + Filename: bits/d2k_heavy_factory_corrino.shp + Start: 2 + Length: 1 + Offset: 1,-5 + +starport.smuggler: + icon: + Filename: EnhacedAssets.R8 + Start: 759 + Offset: -30,-24 + +starport.mercenary: + Inherits: starport.smuggler + idle: + Filename: EnhancedAssets_2.R8 + Start: 216 + Offset: -48,-48 + ZOffset: -1c511 + damaged-idle: + Filename: EnhancedAssets_2.R8 + Start: 217 + Offset: -48,-48 + ZOffset: -1c511 + icon: + Filename: EnhancedAssets_2.R8 + Start: 218 + Offset: -30,-24 + +palace.corrino: + idle: + Filename: DATA.R8 + Start: 3252 + Offset: -48,16 + damaged-idle: + Filename: DATA.R8 + Start: 3253 + Offset: -48,16 + make: + Filename: DATA.R8 + Start: 4677 + Length: 11 + Offset: -48,16 + crumble-overlay: + Filename: DATA.R8 + Start: 4688 + Length: 11 + Offset: -48,16 + Tick: 100 + +# +# D2kA assets +# +assassin: + stand: + Filename: bits/Assassin.shp + Start: 193 + Stride: 2 + Facings: 8 + idle1: + Filename: bits/Assassin.shp + Start: 385 + Length: 15 + Tick: 100 + idle2: + Filename: bits/Assassin.shp + Start: 400 + Length: 8 + Tick: 100 + run: + Filename: bits/Assassin.shp + Start: 16 + Length: 6 + Facings: 8 + Tick: 100 + shoot: + Filename: bits/Assassin.shp + Start: 64 + Length: 16 + Facings: 8 + Tick: 100 + prone-stand: + Filename: bits/Assassin.shp + Start: 208 + Stride: 4 + Facings: 8 + prone-run: + Filename: bits/Assassin.shp + Start: 208 + Length: 4 + Facings: 8 + Tick: 100 + standup: + Filename: bits/Assassin.shp + Start: 240 + Length: 2 + Facings: 8 + prone-shoot: + Filename: bits/Assassin.shp + Start: 256 + Length: 16 + Facings: 8 + die1: + Filename: bits/Assassin.shp + Start: 416 + Length: 8 + Tick: 80 + die2: + Filename: bits/Assassin.shp + Start: 424 + Length: 8 + Tick: 80 + die3: + Filename: bits/Assassin.shp + Start: 432 + Length: 8 + Tick: 80 + die4: + Filename: bits/Assassin.shp + Start: 440 + Length: 12 + Tick: 80 + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + die-crushed: + Filename: DATA.R8 + Frames: 2698, 2705, 2712, 2719, 2726, 2733, 2740, 2747 + Tick: 800 + ZOffset: -511 + icon: + Filename: EnhacedAssets.R8 + Start: 795 + Offset: -30,-24 + +officer: + stand: + Filename: bits/PropagandaCorps.shp + Start: 0 + Facings: -8 + Offset: 0,-9 + idle1: + Filename: bits/PropagandaCorps.shp + Start: 8 + Length: 8 + Tick: 200 + Offset: 0,-9 + idle2: + Filename: bits/PropagandaCorps.shp + Start: 8 + Length: 8 + Tick: 200 + Offset: 0,-9 + run: + Filename: bits/PropagandaCorps.shp + Start: 52 + Length: 6 + Facings: -8 + Tick: 110 + Offset: 0,-9 + shoot: + Filename: bits/PropagandaCorps.shp + Start: 100 + Length: 6 + Facings: -8 + Offset: 0,-9 + die1: + Filename: bits/PropagandaCorps.shp + Start: 16 + Length: 12 + Tick: 80 + Offset: 0,-9 + die2: + Filename: bits/PropagandaCorps.shp + Start: 16 + Length: 12 + Tick: 80 + Offset: 0,-9 + die3: + Filename: bits/PropagandaCorps.shp + Start: 28 + Length: 12 + Tick: 80 + Offset: 0,-9 + die4: + Filename: bits/PropagandaCorps.shp + Start: 40 + Length: 12 + Tick: 80 + Offset: 0,-9 + die-crushed: + Filename: DATA.R8 + Frames: 386, 393, 400, 407, 414, 421, 428, 435, 442, 447, 452, 457 + Length: 12 + Tick: 800 + ZOffset: -511 + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + icon: + Filename: EnhacedAssets.R8 + Start: 458 + Offset: -30,-24 + +hunter: + idle: + Filename: bits/TrikeChassis.shp + Start: 0 + Facings: -32 + turret: + Filename: bits/AtreidesTurr.shp + Start: 0 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 4092 + Tick: 50 + Facings: -32 + BlendMode: Additive + icon: + Filename: bits/AtreidesTrikeIcon.shp + Start: 0 + +bombardment_tank: + idle: + Filename: DATA.R8 + Start: 2453 + Facings: -32 + turret: + Filename: bits/RocketTankTurr.shp + Start: 0 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 4092 + Tick: 50 + Facings: -32 + BlendMode: Additive + icon: + Filename: EnhacedAssets.R8 + Start: 459 + Offset: -30,-24 + +bombardment_tank.husk: + idle: + Filename: DATA.R8 + Start: 2453 + Facings: -32 + turret: + Filename: bits/RocketTankTurr.shp + Start: 0 + Facings: -32 + tankdebris01: + Filename: EnhacedAssets.R8 + Start: 380 + ZOffset: -512 + tankdebris02: + Filename: EnhacedAssets.R8 + Start: 381 + ZOffset: -512 + tankdebris03: + Filename: EnhacedAssets.R8 + Start: 382 + ZOffset: -512 + tankdebris04: + Filename: EnhacedAssets.R8 + Start: 383 + ZOffset: -512 + +combat_tank_cheap: + idle: + Filename: DATA.R8 + Start: 2051 + Facings: -32 + turret: + Filename: bits/MerchenaryTurr.shp + Start: 0 + Facings: -32 + Offset: 0, -3 + muzzle: + Filename: DATA.R8 + Start: 4028 + Tick: 60 + Facings: -32 + BlendMode: Additive + icon: + Filename: bits/MerchenaryTankIcon.shp + Start: 0 + +combat_tank_cheap.husk: + idle: + Filename: DATA.R8 + Start: 2051 + Facings: -32 + turret: + Filename: bits/MerchenaryTurr.shp + Start: 0 + Facings: -32 + Offset: 0, -3 + +combat_tank_cheap.husk02: + Inherits: combat_tank_cheap.husk + tankdebris01: + Filename: EnhacedAssets.R8 + Start: 380 + ZOffset: -512 + tankdebris02: + Filename: EnhacedAssets.R8 + Start: 381 + ZOffset: -512 + tankdebris03: + Filename: EnhacedAssets.R8 + Start: 382 + ZOffset: -512 + tankdebris04: + Filename: EnhacedAssets.R8 + Start: 383 + ZOffset: -512 + +combat_tank_cheap.husk03: + Inherits: combat_tank_cheap.husk + tankdebris01: + Filename: EnhacedAssets.R8 + Start: 380 + ZOffset: -512 + tankdebris02: + Filename: EnhacedAssets.R8 + Start: 381 + ZOffset: -512 + tankdebris03: + Filename: EnhacedAssets.R8 + Start: 382 + ZOffset: -512 + tankdebris04: + Filename: EnhacedAssets.R8 + Start: 383 + ZOffset: -512 + +combat_tank_cheap.husk04: + Inherits: combat_tank_cheap.husk + tankdebris01: + Filename: EnhacedAssets.R8 + Start: 380 + ZOffset: -512 + tankdebris02: + Filename: EnhacedAssets.R8 + Start: 381 + ZOffset: -512 + tankdebris03: + Filename: EnhacedAssets.R8 + Start: 382 + ZOffset: -512 + tankdebris04: + Filename: EnhacedAssets.R8 + Start: 383 + ZOffset: -512 + +combat_tank_corrino: + idle: + Filename: EnhancedAssets_2.R8 + Start: 66 + Facings: -32 + Offset: -24, -24 + turret: + Filename: EnhancedAssets_2.R8 + Start: 137 + Facings: -32 + Offset: -16,-16 + muzzle: + Filename: DATA.R8 + Start: 4028 + Tick: 60 + Facings: -32 + BlendMode: Additive + icon: + Filename: EnhancedAssets_2.R8 + Start: 169 + Offset: -30,-24 + +palace.corrino: + invisible: + Filename: DATA.R8 + Start: 38 + turret: + Filename: DATA.R8 + Frames: 38, 38, 38, 38 + Facings: 4 + +outpost.ordos: + invisible: + Filename: DATA.R8 + Start: 38 + +outpost.fremen: + invisible: + Filename: DATA.R8 + Start: 38 + +outpost.harkonnen: + invisible: + Filename: DATA.R8 + Start: 38 + +outpost.atreides: + invisible: + Filename: DATA.R8 + Start: 38 + + + +choosefaction: + idle: + Filename: EnhacedAssets.R8 + Start: 745 + Offset: -47,-32 + icon: + Filename: DATA.R8 + Start: 38 + Offset: -30,-24 + +subfaction.atreides: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: EnhacedAssets.R8 + Start: 746 + Offset: -30,-24 + +subfaction.harkonnen: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: EnhacedAssets.R8 + Start: 747 + Offset: -30,-24 + +subfaction.ordos: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: EnhacedAssets.R8 + Start: 748 + Offset: -30,-24 + +subfaction.corrino: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: EnhacedAssets.R8 + Start: 749 + Offset: -30,-24 + +subfaction.smuggler: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: EnhacedAssets.R8 + Start: 750 + Offset: -30,-24 + +subfaction.mercenary: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: EnhacedAssets.R8 + Start: 751 + Offset: -30,-24 + +subfaction.fremen: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: EnhacedAssets.R8 + Start: 752 + Offset: -30,-24 + +subfaction.random: + idle: + Filename: DATA.R8 + Start: 38 + icon: + Filename: EnhacedAssets.R8 + Start: 753 + Offset: -30,-24 + +frigate.harkonnen: + idle: + Filename: DATA.R8 + Start: 2517 + Facings: 1 + ZOffset: 1024 + icon: + Filename: EnhacedAssets.R8 + Start: 738 + Offset: -30,-24 + +frigate.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 797 + Offset: -32,-32 + +frigate: + icon: + Filename: DATA.R8 + Start: 4290 + Offset: -30,-24 + +purchase: + icon: + Filename: EnhacedAssets.R8 + Start: 478 + Offset: -30,-24 + +crawler.light: + idle: + Filename: bits/TroopCrawler.shp + Start: 0 + Facings: -32 + icon: + Filename: bits/TroopCrawlerIcon.shp + Start: 0 + +crawler_light.husk: + idle: + Filename: bits/TroopCrawler.shp + Start: 0 + Facings: -32 + icon: + Filename: bits/TroopCrawlerIcon.shp + Start: 0 + +worm_rider: + Inherits: thumper + deploying: + Filename: EnhacedAssets.R8 + Start: 460 + Length: 8 + Offset: -6,-11 + Tick: 250 + deployed: + Filename: EnhacedAssets.R8 + Start: 761 + Facings: 1 + thump: + Filename: EnhacedAssets.R8 + Start: 761 + Length: 5 + Tick: 135 + Offset: -5,-9 + turret: + Filename: DATA.R8 + Start: 1458 + shoot: + Filename: DATA.R8 + Start: 1458 + Length: 5 + invisible: + Filename: DATA.R8 + Start: 38 + +flamer: + idle: + Filename: EnhancedAssets_2.R8 + Start: 98 + Facings: -32 + Offset: -22,-22 + icon: + Filename: EnhancedAssets_2.R8 + Start: 130 + Offset: -30,-24 + +flamer.husk: + idle: + Filename: EnhancedAssets_2.R8 + Start: 98 + Facings: -32 + Offset: -22,-22 + ZOffset: -1024 + tankdebris01: + Filename: EnhacedAssets.R8 + Start: 380 + ZOffset: -512 + tankdebris02: + Filename: EnhacedAssets.R8 + Start: 381 + ZOffset: -512 + tankdebris03: + Filename: EnhacedAssets.R8 + Start: 382 + ZOffset: -512 + tankdebris04: + Filename: EnhacedAssets.R8 + Start: 383 + ZOffset: -512 + +allyrepair: + repair: + Filename: bits/allyrepair.shp + Length: * + Frames: 0, 1, 2, 3, 4 + Tick: 160 + ZOffset: 2047 + Offset: 0,0 + +# +# new death animantions +# + +light_inf: + die5: + Filename: DATA.R8 + Frames: 382, 389, 396, 403, 410, 417, 424, 431, 438, 443, 448, 453 + Length: 12 + Tick: 80 + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + +trooper: + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + +thumper: + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + +fremen: + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + +saboteur: + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + +sardaukar: + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + +grenadier: + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + +quad_rocket: + idle: + Filename: bits/RocketQuad.shp + Start: 0 + Facings: -32 + icon: + Filename: bits/RocketQuadIcon.shp + Start: 0 + + +crane.atreides: + idle: + Filename: bits/Crane.shp + Start: 0 + Offset: 0, -10 + make: + Filename: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + crumble-overlay: + Filename: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + damaged-idle: + Filename: bits/Crane.shp + Start: 3 + Offset: 0, -10 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + icon: + Filename: DATA.R8 + Start: 4310 + Offset: -30,-24 + +crane.harkonnen: + idle: + Filename: bits/Crane.shp + Start: 1 + Offset: 0, -10 + make: + Filename: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + crumble-overlay: + Filename: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + damaged-idle: + Filename: bits/Crane.shp + Start: 4 + Offset: 0, -10 + icon: + Filename: DATA.R8 + Start: 4311 + Offset: -30,-24 + +crane.ordos: + idle: + Filename: bits/Crane.shp + Start: 1 + Offset: 0 ,-10 + make: + Filename: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + crumble-overlay: + Filename: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + damaged-idle: + Filename: bits/Crane.shp + Start: 2 + Offset: 0, -10 + icon: + Filename: DATA.R8 + Start: 4312 + Offset: -30,-24 + +spice_sifter: + idle: + Filename: EnhacedAssets.R8 + Start: 480 + Offset: -32,-40 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 481 + Offset: -32,-40 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + idle-overlay: + Filename: EnhacedAssets.R8 + Start: 482 + Offset: -32,-40 + Length: 5 + Tick: 100 + +ecology_station: + idle: + Filename: EnhacedAssets.R8 + Start: 487 + Offset: -26,-24 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 487 + Offset: -26,-24 + +building01: + idle: + Filename: EnhacedAssets.R8 + Start: 488 + Offset: -15,-8 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 488 + Offset: -15,-8 + +building01_burned: + idle: + Filename: EnhacedAssets.R8 + Start: 489 + Offset: -15,-8 + damaged-idle: + Filename: EnhacedAssets.R8 + Start: 489 + Offset: -15,-8 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + +radar_station_small: + idle: + Filename: EnhacedAssets.R8 + Start: 490 + Offset: -35,-45 + idle-top: + Filename: EnhacedAssets.R8 + Start: 491 + Offset: -15,-45 + bib: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: + Filename: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 diff --git a/mods/d2k/maps/01scriptrework/Enhanced_AI.yaml b/mods/d2k/maps/01scriptrework/Enhanced_AI.yaml new file mode 100644 index 000000000000..073077509cce --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_AI.yaml @@ -0,0 +1,853 @@ +Player: + ModularBot@Omnius: + Name: Omnius + Type: omnius + ModularBot@Vidius: + Name: Vidious + Type: vidious + ModularBot@Gladius: + Name: Gladius + Type: gladius + GrantConditionOnBotOwner@omnius: + Condition: enable-omnius-ai + Bots: omnius + GrantConditionOnBotOwner@vidious: + Condition: enable-vidious-ai + Bots: vidious + GrantConditionOnBotOwner@gladius: + Condition: enable-gladius-ai + Bots: gladius + GrantCondition@bot_test: + Condition: all_bots + RequiresCondition: enable-gladius-ai || enable-vidious-ai || enable-omnius-ai + GrantConditionOnFaction: + Condition: ordos + Factions: ordos + ProvidesPrerequisite@bothack: + Prerequisite: ordos.reinforce + RequiresCondition: all_bots && ordos + SupportPowerBotModule: + RequiresCondition: enable-omnius-ai || enable-vidious-ai || enable-gladius-ai + Decisions: + Airstrike: + OrderName: AirstrikePowerInfoOrder + MinimumAttractiveness: 2000 + Consideration@1: + Against: Enemy + Types: Vehicle, Tank + Attractiveness: 5 + TargetMetric: Value + CheckRadius: 3c0 + Consideration@2: + Against: Enemy + Types: Structure, Defense + Attractiveness: 1 + TargetMetric: Value + CheckRadius: 10c0 + Consideration@3: + Against: Ally + Types: Ground + Attractiveness: -10 + TargetMetric: Value + CheckRadius: 4c0 + Consideration@4: + Against: Enemy + Types: Defense + Attractiveness: 6 + TargetMetric: Value + CheckRadius: 4c0 + AirstrikeAtreidis_multipass: + OrderName: Airstrike_atreidis.multipass + MinimumAttractiveness: 2000 + Consideration@1: + Against: Enemy + Types: Vehicle, Tank + Attractiveness: 5 + TargetMetric: Value + CheckRadius: 5c0 + Consideration@2: + Against: Enemy + Types: Structure, Defense + Attractiveness: 1 + TargetMetric: Value + CheckRadius: 6c0 + Consideration@3: + Against: Ally + Types: Ground + Attractiveness: -10 + TargetMetric: Value + CheckRadius: 4c0 + Consideration@4: + Against: Enemy + Types: Defense + Attractiveness: 5 + TargetMetric: Value + CheckRadius: 3c0 + Airstrike_light: + OrderName: LightAirstrikePowerInfoOrder + MinimumAttractiveness: 2000 + Consideration@1: + Against: Enemy + Types: Infantry + Attractiveness: 20 + TargetMetric: Value + CheckRadius: 8c0 + Consideration@4: + Against: Enemy + Types: Infantry, Vehicle + Attractiveness: 10 + TargetMetric: Value + CheckRadius: 4c0 + Consideration@5: + Against: Enemy + Types: Infantry, Vehicle, Tank + Attractiveness: 6 + TargetMetric: Value + CheckRadius: 5c0 + Consideration@2: + Against: Enemy + Types: Structure + Attractiveness: 1 + TargetMetric: Value + CheckRadius: 10c0 + Consideration@3: + Against: Ally + Types: Ground + Attractiveness: -10 + TargetMetric: Value + CheckRadius: 4c0 + NukePower: + OrderName: NukePowerInfoOrder + MinimumAttractiveness: 3500 + Consideration@1: + Against: Enemy + Types: Structure, Defense + Attractiveness: 10 + TargetMetric: Value + CheckRadius: 5c0 + Consideration@2: + Against: Ally + Types: Air, Ground + Attractiveness: -10 + TargetMetric: Value + CheckRadius: 7c0 + Consideration@3: + Against: Enemy + Types: Infantry, Vehicle, Tank, Defense + Attractiveness: 10 + TargetMetric: Value + CheckRadius: 4c0 + chaosbomb.merged: + OrderName: Orderproduction.chaosbombmerged + MinimumAttractiveness: 3500 + Consideration@2: + Against: Ally + Types: Air, Ground, Water + Attractiveness: -10 + TargetMetric: Value + CheckRadius: 7c0 + Consideration@3: + Against: Enemy + Types: Infantry, Vehicle, Tank + Attractiveness: 5 + TargetMetric: Value + CheckRadius: 4c0 + Consideration@1: + Against: Enemy + Types: Infantry, Vehicle, Tank + Attractiveness: 10 + TargetMetric: Value + CheckRadius: 6c0 + chaosbomb: + OrderName: Orderproduction.chaosbomb + MinimumAttractiveness: 3500 + Consideration@2: + Against: Ally + Types: Air, Ground, Water + Attractiveness: -10 + TargetMetric: Value + CheckRadius: 7c0 + Consideration@3: + Against: Enemy + Types: Infantry, Vehicle, Tank + Attractiveness: 5 + TargetMetric: Value + CheckRadius: 4c0 + Consideration@1: + Against: Enemy + Types: Infantry, Vehicle, Tank + Attractiveness: 10 + TargetMetric: Value + CheckRadius: 6c0 + jammer: + OrderName: SpawnActorPowerInfoOrder.jammer + MinimumAttractiveness: 3000 + Consideration@2: + Against: Ally + Types: Air, Ground, Water + Attractiveness: -10 + TargetMetric: Value + CheckRadius: 7c0 + Consideration@3: + Against: Enemy + Types: Infantry, Vehicle, Tank + Attractiveness: 10 + TargetMetric: Value + CheckRadius: 4c0 + Consideration@1: + Against: Enemy + Types: Infantry, Vehicle, Tank + Attractiveness: 5 + TargetMetric: Value + CheckRadius: 6c0 + hideunits: + OrderName: SpawnActorPowerInfoOrder.hideunits + MinimumAttractiveness: 2000 + Consideration@2: + Against: Ally + Types: Air, Ground, Water + Attractiveness: -10 + TargetMetric: Value + CheckRadius: 7c0 + Consideration@3: + Against: Ally + Types: Infantry, Vehicle, Tank + Attractiveness: 5 + TargetMetric: Value + CheckRadius: 4c0 + Consideration@1: + Against: Ally + Types: Infantry, Vehicle, Tank + Attractiveness: 10 + TargetMetric: Value + CheckRadius: 6c0 + Fremen: + OrderName: ProduceActorPower.Fremen + Consideration@1: + Against: Ally + Saboteur: + OrderName: ProduceActorPower.Saboteur + Consideration@1: + Against: Ally + SaboteurSubfactions: + OrderName: ProduceActorPower.Saboteursubfaction + Consideration@1: + Against: Ally + SardaukarSpeedUp: + OrderName: Orderproduction.sardaukar + Consideration@1: + Against: Ally + Officer: + OrderName: ProduceActorPower.officer + Consideration@1: + Against: Ally + OfficerMerged: + OrderName: ProduceActorPower.officerMerged + Consideration@1: + Against: Ally + wormrider: + OrderName: SpawnActorPowerInfoOrder.wormride + Consideration@1: + Against: Ally + Attractiveness: 5 + TargetMetric: Value + Mercenary.smuggler: + OrderName: ProduceActorPower.contractors + Consideration@1: + Against: Ally + Mercenary.merged: + OrderName: ProduceActorPower.Contractorsmerged + Consideration@1: + Against: Ally + Reinforcement: + OrderName: ordos_reinforcements + Consideration@1: + Against: Enemy + Types: Ground + Attractiveness: 3 + TargetMetric: None + CheckRadius: 20c0 + Consideration@2: + Against: Ally + Types: Ground + Attractiveness: 1 + TargetMetric: None + CheckRadius: 15c0 + corrino_trueSayer: + OrderName: corrino_reinforcements + Consideration@1: + Against: Enemy + Types: Ground + Attractiveness: 3 + TargetMetric: None + CheckRadius: 20c0 + corrino_trueSayer_merged: + OrderName: corrino.true_sayer + Consideration@1: + Against: Enemy + Types: Ground + Attractiveness: 3 + TargetMetric: None + CheckRadius: 20c0 + harkonnen_dropship: + OrderName: harkonnen_reinforcements + Consideration@1: + Against: Enemy + Types: Ground + Attractiveness: 3 + TargetMetric: None + CheckRadius: 20c0 + Consideration@2: + Against: Ally + Types: Ground + Attractiveness: 1 + TargetMetric: None + CheckRadius: 15c0 + HarvesterBotModule: + RequiresCondition: enable-omnius-ai || enable-vidious-ai || enable-gladius-ai + HarvesterTypes: harvester + HarvesterEnemyAvoidanceRadius: 15c0 + RefineryTypes: refinery, refinery_inverted + BaseBuilderBotModule@omnius: + RequiresCondition: enable-omnius-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 60 + MaximumExcessPower: 200 + ExcessPowerIncrement: 50 + ExcessPowerIncreaseThreshold: 4 + MaxBaseRadius: 40 + ConstructionYardTypes: construction_yard + RefineryTypes: refinery, refinery_inverted + PowerTypes: wind_trap + VehiclesFactoryTypes: light_factory, heavy_factory, starport + ProductionTypes: light_factory, heavy_factory, barracks, starport + SiloTypes: silo + BarracksTypes: light_factory + StructureProductionInactiveDelay: 50 + MaximumFailedPlacementAttempts: 4 + MaxResourceCellsToCheck: 20 + PlaceDefenseTowardsEnemyChance: 70 + AdditionalMinimumRefineryCount: 2 + InititalMinimumRefineryCount: 1 + MinimumDefenseRadius: 5 + MaximumDefenseRadius: 30 + CheckForNewBasesDelay: 4000 + BuildingLimits: + silo: 20 + barracks: 4 + refinery: 25 + outpost: 1 + high_tech_factory: 1 + light_factory: 2 + heavy_factory: 5 + starport: 1 + repair_pad: 1 + repair_pad.bot: 1 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + upgrade.hightechOrdos: 1 + fremen_sietch: 1 + upgrade.starport: 1 + upgrade.research: 1 + upgrade.outpost_fremen: 1 + upgrade.outpost: 1 + BuildingFractions: + barracks: 1 + refinery: 20 + medium_gun_turret: 8 + outpost: 1 + high_tech_factory: 1 + large_gun_turret: 6 + light_factory: 2 + heavy_factory: 2 + starport: 1 + repair_pad: 1 + repair_pad.bot: 1 + research_centre: 1 + palace: 1 + palace.harkonnen: 1 + palace.ordos: 1 + palace.atreides: 1 + palace.corrino: 1 + merged.fremen_sietch: 1 + merged.corrino_palace: 1 + merged.starport: 1 + merged.starport_smuggler: 1 + merged.mercenary_factory: 1 + missile_tank.starport_smuggler: 1 + siege_tank.starport_smuggler: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + fremen_sietch: 1 + upgrade.starport: 1 + upgrade.research: 1 + upgrade.outpost_fremen: 1 + upgrade.outpost: 1 + BuildingDelays: + repair_pad: 15000 + repair_pad.bot: 15000 + upgrade.conyard: 15000 + outpost: 5000 + research_centre: 15000 + upgrade.barracks: 5000 + upgrade.light: 5000 + starport: 15000 + upgrade.heavy: 15000 + medium_gun_turret: 3000 + DefenseTypes: medium_gun_turret, large_gun_turret + BaseBuilderBotModule@vidious: + RequiresCondition: enable-vidious-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 60 + MaximumExcessPower: 210 + ExcessPowerIncrement: 50 + ExcessPowerIncreaseThreshold: 4 + ConstructionYardTypes: construction_yard + RefineryTypes: refinery, refinery_inverted + PowerTypes: wind_trap + VehiclesFactoryTypes: light_factory, heavy_factory, starport + ProductionTypes: light_factory, heavy_factory, barracks, starport + SiloTypes: silo + StructureProductionInactiveDelay: 30 + CheckForNewBasesDelay: 3000 + PlaceDefenseTowardsEnemyChance: 80 + MaxBaseRadius: 40 + MaximumDefenseRadius: 30 + NewProductionCashThreshold: 6000 + InititalMinimumRefineryCount: 2 + AdditionalMinimumRefineryCount: 1 + MaxResourceCellsToCheck: 15 + BuildingLimits: + barracks: 4 + refinery: 8 + silo: 20 + outpost: 1 + high_tech_factory: 1 + light_factory: 4 + heavy_factory: 4 + starport: 1 + repair_pad: 1 + repair_pad.bot: 1 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + fremen_sietch: 1 + upgrade.starport: 1 + upgrade.research: 1 + upgrade.outpost_fremen: 1 + upgrade.outpost: 1 + BuildingFractions: + barracks: 5 + refinery: 30 + medium_gun_turret: 5 + outpost: 1 + high_tech_factory: 1 + large_gun_turret: 10 + light_factory: 1 + heavy_factory: 7 + starport: 1 + repair_pad: 1 + repair_pad.bot: 1 + research_centre: 1 + palace: 1 + palace.harkonnen: 1 + palace.ordos: 1 + palace.atreides: 1 + palace.corrino: 1 + merged.fremen_sietch: 1 + merged.corrino_palace: 1 + merged.starport: 1 + merged.starport_smuggler: 1 + merged.mercenary_factory: 1 + missile_tank.starport_smuggler: 1 + siege_tank.starport_smuggler: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + fremen_sietch: 1 + upgrade.starport: 1 + upgrade.research: 1 + upgrade.outpost_fremen: 1 + upgrade.outpost: 1 + BuildingDelays: + repair_pad: 10000 + repair_pad.bot: 10000 + outpost: 11000 + upgrade.conyard: 12000 + upgrade.barracks: 8000 + upgrade.heavy: 10000 + high_tech_factory: 13000 + starport: 20000 + research_centre: 18000 + upgrade.hightech: 15000 + upgrade.light: 10000 + medium_gun_turret: 5000 + DefenseTypes: medium_gun_turret, large_gun_turret + BaseBuilderBotModule@gladius: + RequiresCondition: enable-gladius-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 60 + MaximumExcessPower: 200 + MaxResourceCellsToCheck: 15 + ExcessPowerIncreaseThreshold: 4 + StructureProductionInactiveDelay: 80 + BarracksTypes: barracks + MaxBaseRadius: 40 + ConstructionYardTypes: construction_yard + RefineryTypes: refinery, refinery_inverted + PowerTypes: wind_trap + AdditionalMinimumRefineryCount: 2 + VehiclesFactoryTypes: light_factory, heavy_factory, starport + ProductionTypes: light_factory, heavy_factory, barracks, starport + SiloTypes: silo + NewProductionCashThreshold: 9000 + CheckForNewBasesDelay: 2000 + BuildingLimits: + barracks: 4 + refinery: 8 + silo: 20 + outpost: 1 + high_tech_factory: 1 + light_factory: 4 + heavy_factory: 4 + starport: 2 + repair_pad: 1 + repair_pad.bot: 1 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + fremen_sietch: 1 + upgrade.starport: 1 + upgrade.research: 1 + upgrade.outpost_fremen: 1 + upgrade.outpost: 1 + BuildingFractions: + barracks: 15 + refinery: 40 + medium_gun_turret: 10 + outpost: 1 + high_tech_factory: 1 + large_gun_turret: 12 + light_factory: 5 + heavy_factory: 1 + repair_pad: 1 + repair_pad.bot: 1 + research_centre: 1 + palace: 1 + palace.harkonnen: 1 + palace.ordos: 1 + palace.atreides: 1 + merged.fremen_sietch: 1 + merged.corrino_palace: 1 + merged.starport: 1 + merged.starport_smuggler: 1 + merged.mercenary_factory: 1 + palace.corrino: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + fremen_sietch: 1 + upgrade.starport: 1 + upgrade.research: 1 + upgrade.outpost_fremen: 1 + upgrade.outpost: 1 + BuildingDelays: + repair_pad: 10000 + repair_pad.bot: 10000 + upgrade.conyard: 20000 + upgrade.barracks: 3500 + upgrade.heavy: 20000 + outpost: 12000 + starport: 15000 + upgrade.light: 10000 + medium_gun_turret: 2000 + DefenseTypes: medium_gun_turret, large_gun_turret + BuildingRepairBotModule: + RequiresCondition: enable-omnius-ai || enable-vidious-ai || enable-gladius-ai + CaptureManagerBotModule: + RequiresCondition: enable-omnius-ai || enable-vidious-ai || enable-gladius-ai + CapturingActorTypes: engineer + MinimumCaptureDelay: 200 + CheckCaptureTargetsForVisibility: false + SquadManagerBotModule@omnius: + RequiresCondition: enable-omnius-ai + SquadSize: 20 + SquadSizeRandomBonus: 20 + MaxBaseRadius: 40 + ProtectionScanRadius: 15 + ExcludeFromSquadsTypes: saboteur,frigate_choam, engineer, dummy.generic, harvester, mcv, mcv.starport, frigate.harkonnen, carryall, carryall.reinforce, carryall.reinforce_with_sound + ConstructionYardTypes: construction_yard + IgnoredEnemyTargetTypes: Creep, Cliff, Air, Air_support, CapturedUnit + ProtectUnitScanRadius: 20 + AssignRolesInterval: 30 + AttackForceInterval: 30 + RushInterval: 1500 + AirUnitsTypes: ornithopter + ProtectionTypes: mcv,engineer, harvester, concretea, concreteb, construction_yard, wind_trap, barracks, refinery, silo, light_factory, heavy_factory, outpost, starport, medium_gun_turret, large_gun_turret, repair_pad, high_tech_factory, research_centre, palace, conyard.atreides, conyard.harkonnen, conyard.ordos, mcv.starport, harvester.starport + SquadManagerBotModule@vidious: + RequiresCondition: enable-vidious-ai + SquadSize: 15 + SquadSizeRandomBonus: 30 + MaxBaseRadius: 80 + ExcludeFromSquadsTypes: saboteur, frigate_choam, engineer, dummy.generic, harvester, mcv, mcv.starport, frigate.harkonnen, carryall, carryall.reinforce, carryall.reinforce_with_sound + ConstructionYardTypes: construction_yard + IgnoredEnemyTargetTypes: Creep, Cliff, Air, Air_support, CapturedUnit + ProtectUnitScanRadius: 10 + IdleScanRadius: 25 + AttackScanRadius: 10 + AssignRolesInterval: 50 + AttackForceInterval: 50 + RushInterval: 1000 + AirUnitsTypes: ornithopter + ProtectionTypes: saboteur, engineer,mcv, harvester, concretea, concreteb, construction_yard, wind_trap, barracks, refinery, silo, light_factory, heavy_factory, outpost, starport, medium_gun_turret, large_gun_turret, repair_pad, high_tech_factory, research_centre, palace, conyard.atreides, conyard.harkonnen, conyard.ordos, mcv.starport, harvester.starport + SquadManagerBotModule@gladius: + RequiresCondition: enable-gladius-ai + SquadSize: 20 + SquadSizeRandomBonus: 30 + MaxBaseRadius: 100 + ExcludeFromSquadsTypes: saboteur, engineer,frigate_choam, dummy.generic, harvester, mcv, mcv.starport, frigate.harkonnen, carryall, carryall.reinforce, carryall.reinforce_with_sound + ConstructionYardTypes: construction_yard + IgnoredEnemyTargetTypes: Creep, Cliff, Air, Air_support, CapturedUnit + ProtectUnitScanRadius: 30 + IdleScanRadius: 20 + RushInterval: 2500 + AssignRolesInterval: 70 + AirUnitsTypes: ornithopter + ProtectionTypes: mcv, harvester,engineer, concretea, concreteb, construction_yard, wind_trap, barracks, refinery, silo, light_factory, heavy_factory, outpost, starport, medium_gun_turret, large_gun_turret, repair_pad, high_tech_factory, research_centre, palace, conyard.atreides, conyard.harkonnen, conyard.ordos, mcv.starport, harvester.starport + UnitBuilderBotModule@omnius: + RequiresCondition: enable-omnius-ai + IdleBaseUnitsMaximum: 30 + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 1 + engineer: 1 + light_inf: 65 + trooper: 40 + mpsardaukar: 20 + grenadier: 20 + harvester: 40 + dummy.harvester: 10 + dummy.trike: 10 + dummy.quad: 10 + dummy.siege_tank: 60 + dummy.missile_tank: 70 + dummy.combat_tank_a: 30 + dummy.combat_tank_h: 30 + dummy.combat_tank_o: 30 + dummy.combat_tank_corrino: 30 + dummy.combat_tank_cheap: 30 + purchase.starport: 1 + combat_tank_cheap: 60 + combat_tank_corrino: 60 + flamer: 40 + merged.flamer: 40 + bison_tank: 40 + sonic_tank: 40 + devastator: 40 + deviator: 40 + trike: 10 + raider: 10 + quad: 15 + siege_tank: 35 + missile_tank: 40 + stealth_raider: 5 + combat_tank_a: 60 + combat_tank_h: 60 + combat_tank_o: 60 + bombardment_tank: 40 + crawler: 20 + hunter: 5 + merged.hunter: 5 + merged.sardaukar: 20 + assassin: 25 + fremen_fedaykin: 50 + merged.fremen_fedaykin: 50 + merged.bombardment_tank: 40 + merged.crawler: 30 + mortar_inf: 10 + merged.mortar_inf: 10 + merged.bison_tank: 30 + UnitLimits: + dummy.harvester: 1 + engineer: 1 + mortar_inf: 10 + merged.mortar_inf: 10 + harvester: 20 + carryall: 18 + UnitDelays: + combat_tank_a: 8000 + combat_tank_h: 8000 + combat_tank_o: 8000 + engineer: 8000 + McvManagerBotModule: + RequiresCondition: enable-omnius-ai || enable-gladius-ai + McvTypes: mcv, mcv.starport, dummy.mcv + MinimumConstructionYardCount: 3 + MinBaseRadius: 20 + ScanForNewMcvInterval: 100 + RestrictMCVDeploymentFallbackToBase: false + ConstructionYardTypes: construction_yard + McvFactoryTypes: heavy_factory, starport + McvManagerBotModule@vidious-ai: + RequiresCondition: enable-vidious-ai + McvTypes: mcv, dummy.mcv, mcv.starport + MinimumConstructionYardCount: 4 + ScanForNewMcvInterval: 150 + RestrictMCVDeploymentFallbackToBase: True + MaxBaseRadius: 50 + MinBaseRadius: 20 + ConstructionYardTypes: construction_yard + McvFactoryTypes: heavy_factory, starport + UnitBuilderBotModule@vidious: + IdleBaseUnitsMaximum: 30 + RequiresCondition: enable-vidious-ai + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 3 + engineer: 1 + light_inf: 65 + trooper: 40 + mpsardaukar: 20 + grenadier: 20 + harvester: 30 + dummy.harvester: 15 + dummy.trike: 10 + dummy.quad: 10 + dummy.siege_tank: 50 + dummy.missile_tank: 50 + dummy.combat_tank_a: 50 + dummy.combat_tank_h: 50 + dummy.combat_tank_o: 50 + dummy.combat_tank_corrino: 50 + dummy.combat_tank_cheap: 50 + purchase.starport: 1 + combat_tank_cheap: 60 + combat_tank_corrino: 80 + flamer: 40 + merged.flamer: 40 + bison_tank: 40 + sonic_tank: 50 + devastator: 50 + deviator: 50 + trike: 15 + raider: 15 + quad: 25 + siege_tank: 10 + missile_tank: 15 + stealth_raider: 5 + combat_tank_a: 80 + combat_tank_h: 80 + combat_tank_o: 80 + bombardment_tank: 40 + crawler: 10 + hunter: 10 + merged.hunter: 10 + merged.sardaukar: 30 + merged.bombardment_tank: 40 + merged.crawler: 30 + assassin: 30 + fremen_fedaykin: 60 + merged.fremen_fedaykin: 60 + mortar_inf: 10 + merged.mortar_inf: 10 + merged.bison_tank: 30 + UnitLimits: + engineer: 2 + dummy.harvester: 1 + mortar_inf: 15 + merged.mortar_inf: 15 + harvester: 20 + carryall: 20 + mcv: 1 + UnitDelays: + engineer: 10000 + combat_tank_a: 3000 + combat_tank_h: 3000 + combat_tank_o: 3000 + UnitBuilderBotModule@gladius: + IdleBaseUnitsMaximum: 50 + RequiresCondition: enable-gladius-ai + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 1 + engineer: 1 + light_inf: 50 + trooper: 30 + mpsardaukar: 30 + grenadier: 40 + harvester: 30 + dummy.trike: 10 + dummy.quad: 20 + dummy.harvester: 15 + dummy.siege_tank: 60 + dummy.missile_tank: 60 + dummy.combat_tank_a: 40 + dummy.combat_tank_h: 40 + dummy.combat_tank_o: 40 + dummy.combat_tank_corrino: 40 + dummy.combat_tank_cheap: 40 + purchase.starport: 1 + combat_tank_cheap: 70 + combat_tank_corrino: 70 + flamer: 30 + merged.flamer: 30 + bison_tank: 40 + sonic_tank: 20 + devastator: 20 + deviator: 20 + trike: 10 + raider: 10 + quad: 15 + siege_tank: 20 + missile_tank: 30 + stealth_raider: 7 + combat_tank_a: 70 + combat_tank_h: 70 + combat_tank_o: 70 + bombardment_tank: 40 + crawler: 20 + hunter: 20 + merged.hunter: 5 + merged.sardaukar: 40 + assassin: 50 + fremen_fedaykin: 70 + merged.fremen_fedaykin: 70 + merged.bombardment_tank: 40 + merged.crawler: 30 + mortar_inf: 10 + merged.mortar_inf: 10 + merged.bison_tank: 30 + UnitLimits: + engineer: 2 + dummy.harvester: 1 + mortar_inf: 20 + merged.mortar_inf: 20 + harvester: 20 + carryall: 20 + UnitDelays: + trike: 2000 + quad: 7000 + engineer: 7000 + combat_tank_a: 5000 + combat_tank_h: 5000 + combat_tank_o: 5000 diff --git a/mods/d2k/maps/01scriptrework/Enhanced_Misc.yaml b/mods/d2k/maps/01scriptrework/Enhanced_Misc.yaml new file mode 100644 index 000000000000..c55005631d5c --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_Misc.yaml @@ -0,0 +1,1276 @@ +spicebloom: + SpiceBloom: + Pieces: 7,10 + +^Husk: + Health: + HP: 15000 + +^VehicleHusk: + Inherits: ^Husk + CaptureManager: + Capturable: + Types: husk + TransformOnCapture: + ForceHealthPercentage: 25 + Husk: + AllowedTerrain: Sand, Rock, Transition, Concrete, Spice, SpiceSand, SpiceBlobs, Dune + Targetable: + TargetTypes: Ground, Vehicle + RequiresForceFire: true + -WithColoredOverlay@IDISABLE: + WithColoredOverlay@deadPallete: + Color: 00000060 + Explodes: + Weapon: huskExplode01 + EmptyWeapon: huskExplode01 + Chance: 70 + WithIdleOverlay@Burns: + Image: fire_slow + Sequence: 1_loop + StartSequence: 1_start + IsDecoration: True + ChangesHealth: + Step: -30 + StartIfBelow: 101 + Delay: 4 + FloatingSpriteEmitter@SMOKE: + Palette: smoke3 + Image: smoke3 + Lifetime: 10, 20 + Speed: 7 + Gravity: 50 + SpawnFrequency: 2, 10 + RandomFacing: true + RandomRate: 4 + Offset: 0, 0, 200 + TurnRate: 3 + Duration: 500 + +^AircraftHusk: + FallsToEarth: + Explosion: ExplosionAircraft + HitShape: + Type: Rectangle + TopLeft: -512, -512 + BottomRight: 512, 512 + + +^Dummy: + EditorOnlyTooltip: + Name: wpdummy + MapEditorData: + Categories: system + AlwaysVisible: + Interactable: + Immobile: + OccupiesSpace: false + RenderSpritesEditorOnly: + Image: waypoint + WithSpriteBody: + BodyOrientation: + QuantizedFacings: 1 + OwnerLostAction: + Action: Dispose + +^DummyVehicle: + Inherits@1: ^ExistsInWorld + Inherits@2: ^SpriteActor + Interactable: + Mobile: + TurnSpeed: 20 + Locomotor: vehicle + Speed: 20 + PauseOnCondition: notmobile + Targetable: + TargetTypes: Ground, Vehicle, C4 + Passenger: + CargoType: Vehicle + HiddenUnderFog: + WithFacingSpriteBody: + HitShape: + Type: Circle + Radius: 16 + Tooltip: + AutoCarryable: + CarriedCondition: notmobile + LockedCondition: notmobile + RejectsOrders: + +dummy.kill_self: + Inherits: dummyShrapnelThrower_carryall + -ThrowsShrapnel@derbisshort: + -ThrowsShrapnel@derbislong: + + +^LivingDummy: + Inherits: ^Dummy + -Immobile: + Mobile: + Speed: 0 + Locomotor: foot + Health: + HP: 10 + Armor: + Type: invulnerable + HitShape: + +dummy.generic: + Inherits: ^DummyVehicle + Targetable: + TargetTypes: Ground, Air_support + RequiresForceFire: true + RenderSprites: + Image: invisible + GrantCondition@dontmoveDammit: + Condition: notmobile + Health: + HP: 1000000 + Armor: + Type: invulnerable + +dummy.true_sayer: + Inherits: ^Dummy + RevealsShroud: + Range: 8c0 + Type: CenterPosition + DetectCloaked: + Range: 8c0 + +waypoint.airtstrike_a: + Inherits: ^Dummy + RenderSpritesEditorOnly: + +waypoint.airtstrike_o: + Inherits: ^Dummy + RenderSpritesEditorOnly: + + +waypoint.reinforce_h: + Inherits: ^Dummy + ProximityExternalCondition: + Condition: landing_area + Range: 6c0 + +waypoint.reinforce_o: + Inherits: ^Dummy + +dummy.sardaukar_production_speed_up: + Inherits: ^DummyVehicle + Buildable: + Prerequisites: ~disabled + Queue: Infantry + RenderSprites: + Image: invisible + Health: + HP: 10 + Armor: + Type: invulnerable + ProvidesPrerequisite: + Prerequisite: productionSpeedup.sardaukar + KillsSelf: + Delay: 1100 + TerrainLightSource: + Range: 3c640 + Intensity: 0.01 + RedTint: 0.75 + GreenTint: 0.01 + BlueTint: 0.01 + +jammer_point: + Inherits: ^Dummy + TerrainLightSource: + Range: 7c0 + Intensity: -0.5 + RedTint: 0.04 + GreenTint: 0.02 + BlueTint: 0.02 + -Immobile: + Health: + HP: 10 + Armor: + Type: invulnerable + KillsSelf: + Delay: 500 + HitShape: + Mobile: + Speed: 0 + Locomotor: foot + CreatesShroud: + Range: 9c0 + ValidRelationships: Enemy, Neutral + ProximityExternalCondition@jammer: + Range: 6c0 + Condition: jammed + ValidRelationships: Enemy, Neutral + JamsMissiles: + Range: 6c0 + Chance: 90 + DeflectionRelationships: Enemy, Neutral + RejectsOrders: + +dummy.hide_units: + Inherits: ^LivingDummy + RejectsOrders: + KillsSelf: + Delay: 1 + GrantsCondition: hideActivator + Explodes: + Weapon: hideWeapon + EmptyWeapon: hideWeapon + RequiresCondition: hideActivator + + +testshrout: + Inherits: thumper + RenderSprites: + Image: thumper + -RevealsShroud: + Tooltip: + Name: jammer test + CreatesShroud: + Range: 8c0 + ValidRelationships: Enemy, Neutral + ProximityExternalCondition@jammer: + Range: 6c0 + Condition: jammed + ValidRelationships: Enemy, Neutral + JamsMissiles: + Range: 6c0 + Chance: 90 + DeflectionRelationships: Enemy, Neutral + +dummy_spam_actor: + Inherits: ^DummyVehicle + GrantConditionOnTerrain@TerrailTest: + Condition: on_land + TerrainTypes: Rock, Concrete, Sand, SpiceSand, Spice, Dune, Rough, SpiceBlobs, Clear, Transition + RenderSprites: + Image: invisible + Health: + HP: 10 + ChangesHealth: + Step: -5 + Delay: 3 + StartIfBelow: 110 + RequiresCondition: on_land + + +dummy_mercenary_spawnpoint: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Purchase Items + Buildable: + Queue: Infantry + Prerequisites: ~disabled + Valued: + Cost: 1 + RenderSprites: + Image: mercenary + +waypoint_dummy_chaosbomb: + Inherits: ^Dummy + ProximityExternalCondition@chaos: + Condition: chaos_bomb + Range: 5c0 + +dummyShrapnelThrower_carryall: + Inherits: ^Dummy + KillsSelf: + Delay: 0 + HitShape: + Type: Circle + Radius: 16 + Health: + HP: 1 + ThrowsShrapnel@derbisshort: + Weapons: Debris, Debris2, debris_vehicle01 + Pieces: 1, 3 + Range: 1c0, 3c0 + ThrowsShrapnel@derbislong: + Weapons: Debris, Debris2, Debris3, Debris4, DeathHandClusterDebris + Pieces: 2, 4 + Range: 4c0, 7c0 + +dummyShrapnelThrower: + Inherits: ^Dummy + KillsSelf: + Delay: 0 + HitShape: + Type: Circle + Radius: 16 + Health: + HP: 1 + ThrowsShrapnel@derbis: + Weapons: Debris, Debris2, debris_vehicle01, debris_vehicle02, DeathHandClusterDebris + Pieces: 3, 7 + Range: 1c0, 6c0 + +dummycrazybombleaks: + Inherits: ^Dummy + KillsSelf: + Delay: 5 + Explodes: + Weapon: chaosbomb_from_husk + EmptyWeapon: chaosbomb_from_husk + HitShape: + Type: Circle + Radius: 16 + Health: + HP: 5 + +dummy_wormmakeanim: + Inherits: ^Dummy + KillsSelf: + Delay: 70 + ProximityExternalCondition: + Range: 2c0 + Condition: makeAnimation + + +mcv.husk: + Health: + HP: 11000 + TransformOnCapture: + IntoActor: mcv + +harvester.husk: + Health: + HP: 9000 + TransformOnCapture: + IntoActor: harvester + +carryall.husk: + Inherits: ^AircraftHusk + Tooltip: + Name: Carryall + Aircraft: + TurnSpeed: 4 + Speed: 95 + CanSlide: True + VTOL: true + RenderSprites: + Image: carryall + FallsToEarth: + MaximumSpinSpeed: 14 + Explosion: ExplosionAircraft + AmbientSound: + SoundFiles: audio/explosion_Carryall.wav + Interval: 5000 + SpawnActorOnDeath@carry: + Actor: carryall.husk_on_land + OwnerType: InternalName + SpawnActorOnDeath@debris: + Actor: dummyShrapnelThrower_carryall + OwnerType: InternalName + Contrail@1: + Offset: -300,-383,0 + StartColor: 000000 + StartColorUsePlayerColor: false + Contrail@2: + Offset: -598,383,0 + StartColor: 000000 + StartColorUsePlayerColor: false + +carryall.bomberhusk: + Inherits: ornithopter.husk + RenderSprites: + Image: Carryall + FallsToEarth: + Velocity: 0c40 + SpawnActorOnDeath: + Actor: dummyShrapnelThrower + SpawnActorOnDeath@chasbom: + Actor: dummycrazybombleaks + +ornithopter.husk: + Inherits: ^AircraftHusk + Tooltip: + Name: Ornithopter + Aircraft: + TurnSpeed: 20 + Speed: 190 + FallsToEarth: + MaximumSpinSpeed: 1 + Explosion: ExplosionAircraft + Velocity: 0c35 + RenderSprites: + Image: ornithopter + Contrail@1: + Offset: -300,-383,0 + StartColor: 000000 + StartWidth: 0c128 + StartColorUsePlayerColor: false + Contrail@2: + Offset: -598,383,0 + StartColor: 000000 + StartWidth: 0c80 + StartColorUsePlayerColor: false + SpawnActorOnDeath: + Actor: dummyShrapnelThrower + AmbientSound@falldown: + SoundFiles: audio/ornithroperFall01.wav + Delay: 10 + + +rotor: + Inherits: ^AircraftHusk + -WithFacingSpriteBody: + WithIdleOverlay: + Image: debris_rotor_anim + Sequence: idle + FallsToEarth: + MaximumSpinSpeed: 2 + Explosion: debris.rotor + Velocity: 0c80 + Aircraft: + TurnSpeed: 16 + Speed: 144 + CanSlide: True + VTOL: true + +rotor.flyingdown: + Inherits: ^AircraftHusk + -WithFacingSpriteBody: + Aircraft: + TurnSpeed: 16 + Speed: 144 + CanSlide: True + RenderSprites: + Image: debris_rotor_anim + Palette: d2k + FallsToEarth: + Explosion: ExplosionWithDamege_large + +carryall.huskVTOL_reinforce: + Inherits: carryall.huskVTOL + SpawnActorOnDeath: + Actor: carryall.husk_on_land + OwnerType: InternalName + SpawnActorOnDeath@debris: + Actor: dummyShrapnelThrower_carryall + OwnerType: InternalName + +frigate.husk: + Inherits: carryall.husk + RenderSprites: + Image: frigate.harkonnen + Aircraft: + Speed: 135 + FallsToEarth: + MaximumSpinSpeed: 0 + Explosion: ExplosionFrigate + Contrail@01: + ZOffset: -100 + Contrail@02: + ZOffset: -100 + Contrail@03: + Offset: -0,0,-300 + ZOffset: -100 + StartWidth: 0c120 + StartColor: 000000 + StartColorUsePlayerColor: false + SpawnActorOnDeath@carry: + Actor: frigate.husk_on_land + OwnerType: InternalName + AmbientSound@falldown: + SoundFiles: audio/ornithroperFall01.wav + Delay: 10 + +frigate.huskvtol: + Inherits: carryall.huskVTOL_reinforce + RenderSprites: + Image: frigate.harkonnen + SpawnActorOnDeath: + Actor: frigate.husk_on_land + FallsToEarth: + Explosion: ExplosionFrigate + + +carryall.husk_on_land: + Inherits: ^VehicleHusk + -TransformOnCapture: + Health: + HP: 10000 + WithIdleOverlay@Burns: + Image: fire_slow + Sequence: 1 + IsDecoration: True + Palette: effect + WithIdleOverlay@Smoke: + Image: smoke_m + Sequence: smokLandFromR_idle + StartSequence: smokLandFromRA_Open + Palette: disabled + IsDecoration: True + Offset: 512, -512, 0 + RenderSprites: + Image: carryall.husk_on_land + Tooltip: + Name: Carryall husk + ThrowsShrapnel: + Weapons: Debris3, Debris4 + Pieces: 1, 4 + Range: 1c0, 3c0 + GivesCashOnCapture: + Amount: 800 + TransformOnCapture: + IntoActor: dummy.kill_self + + +frigate.husk_on_land: + Inherits: carryall.husk_on_land + RenderSprites: + Image: frigate.husk + Tooltip: + Name: Frigate husk + -WithColoredOverlay@deadPallete: + WithIdleOverlay@Smoke: + Offset: -1000, -600, 0 + GivesCashOnCapture: + Amount: 1200 + +carryall.huskVTOL: + Inherits: ^AircraftHusk + Tooltip: + Name: Carryall + FallsToEarth: + Aircraft: + TurnSpeed: 16 + CanSlide: True + VTOL: true + RenderSprites: + Image: carryall + SpawnActorOnDeath@debris: + Actor: dummyShrapnelThrower_carryall + OwnerType: InternalName + + +siege_tank.husk: + Inherits: ^VehicleHusk + Health: + HP: 10000 + Tooltip: + Name: Siege Tank (Destroyed) + -ThrowsParticle@turret: + TransformOnCapture: + IntoActor: siege_tank + WithIdleOverlay@Burns: + Image: fire + StartSequence: 2 + Sequence: 1 + IsDecoration: True + +sonic_tank.husk: + Inherits: ^VehicleHusk + WithIdleOverlay@Burns: + Image: fire_slow + Sequence: 1 + IsDecoration: True + ThrowsParticle@turret: + Anim: turret + MaxThrowRange: 1c224 + MinThrowRange: 0c512 + ThrowsParticle@debris01: + Anim: tankdebris01 + ThrowsParticle@debris02: + Anim: tankdebris02 + ThrowsParticle@debris03: + Anim: tankdebris03 + ThrowsParticle@debris04: + Anim: tankdebris04 + +flamer.husk: + Inherits: ^VehicleHusk + ThrowsParticle@debris01: + Anim: tankdebris01 + ThrowsParticle@debris02: + Anim: tankdebris02 + ThrowsParticle@debris03: + Anim: tankdebris03 + ThrowsParticle@debris04: + Anim: tankdebris04 + TransformOnCapture: + IntoActor: flamer + +^combat_tank.husk: + Inherits: ^VehicleHusk + Health: + HP: 12000 + Tooltip: + Name: Combat Tank (Destroyed) + ThrowsParticle@turret: + Anim: turret + TurnSpeed: 10 + +combat_tank_cheap.husk: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: combat_tank_cheap + +combat_tank_cheap.husk02: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: combat_tank_cheap + ThrowsParticle@debris01: + Anim: tankdebris01 + MaxThrowRange: 2c512 + MinThrowRange: 1c0 + ThrowsParticle@debris02: + Anim: tankdebris02 + MinThrowAngle: 80 + MaxThrowAngle: 200 + +combat_tank_cheap.husk03: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: combat_tank_cheap + ThrowsParticle@turret: + ThrowsParticle@debris02: + Anim: tankdebris02 + MinThrowAngle: 80 + MaxThrowAngle: 200 + ThrowsParticle@debris03: + Anim: tankdebris03 + MinThrowAngle: 30 + MaxThrowAngle: 150 + ThrowsParticle@debris04: + Anim: tankdebris04 + +combat_tank_cheap.husk04: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: combat_tank_cheap + ThrowsParticle@debris03: + Anim: tankdebris03 + MinThrowAngle: 30 + MaxThrowAngle: 150 + ThrowsParticle@debris04: + Anim: tankdebris04 + +combat_tank_a.husk: + -ThrowsParticle@turret: + +combat_tank_a.husk02: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: combat_tank_a + Health: + HP: 10000 + -WithIdleOverlay@Burns: + ThrowsParticle@turret: + +combat_tank_a.husk03: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: combat_tank_a + Health: + HP: 13000 + ThrowsParticle@turret: + Anim: turret + MinThrowRange: 0c112 + MaxThrowRange: 1c768 + MinThrowAngle: 30 + MaxThrowAngle: 50 + Velocity: 50 + TurnSpeed: 50 + +combat_tank_a.husk04: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: combat_tank_a + Health: + HP: 9000 + -WithIdleOverlay@Burns: + ThrowsParticle@turret: + Anim: turret + MinThrowRange: 0c512 + MaxThrowRange: 1c768 + MinThrowAngle: 50 + MaxThrowAngle: 70 + Velocity: 40 + TurnSpeed: 100 + +combat_tank_h.husk: + -ThrowsParticle@turret: + +combat_tank_h.husk02: + Inherits: ^combat_tank.husk + Health: + HP: 13000 + TransformOnCapture: + IntoActor: combat_tank_h + WithIdleOverlay@Burns: + Image: fire_slow + Sequence: 2 + IsDecoration: True + ThrowsParticle@turret: + + +combat_tank_h.husk03: + Inherits: ^combat_tank.husk + Health: + HP: 11000 + -WithIdleOverlay@Burns: + TransformOnCapture: + IntoActor: combat_tank_h + ThrowsParticle@turret: + Anim: turret + MinThrowRange: 0c512 + MaxThrowRange: 4c768 + MinThrowAngle: 20 + MaxThrowAngle: 100 + Velocity: 50 + TurnSpeed: 50 + +combat_tank_h.husk04: + Inherits: ^combat_tank.husk + Health: + HP: 9000 + TransformOnCapture: + IntoActor: combat_tank_h + WithIdleOverlay@Burns: + Image: fire_slow + Sequence: 2 + ThrowsParticle@turret: + Anim: turret + MinThrowRange: 0c512 + MaxThrowRange: 3c768 + MinThrowAngle: 70 + MaxThrowAngle: 150 + Velocity: 40 + TurnSpeed: 20 + +combat_tank_o.husk: + -ThrowsParticle@turret: + +combat_tank_o.husk02: + Inherits: ^combat_tank.husk + Health: + HP: 15000 + TransformOnCapture: + IntoActor: combat_tank_o + WithIdleOverlay@Burns: + Image: fire_slow + Sequence: 2 + IsDecoration: True + -ThrowsParticle@turret: + + +combat_tank_o.husk03: + Inherits: ^combat_tank.husk + Health: + HP: 9000 + TransformOnCapture: + IntoActor: combat_tank_o + -WithIdleOverlay@Burns: + ThrowsParticle@turret: + Anim: turret + MinThrowRange: 1c0 + MaxThrowRange: 3c768 + MinThrowAngle: 30 + MaxThrowAngle: 80 + Velocity: 50 + TurnSpeed: 50 + +combat_tank_o.husk04: + Inherits: ^combat_tank.husk + Health: + HP: 12000 + TransformOnCapture: + IntoActor: combat_tank_o + -WithIdleOverlay@Burns: + ThrowsParticle@turret: + Anim: turret + MinThrowRange: 0c512 + MaxThrowRange: 3c768 + MinThrowAngle: 60 + MaxThrowAngle: 120 + Velocity: 40 + TurnSpeed: 20 + +devastator.husk: + Inherits: ^VehicleHusk + Health: + HP: 19500 + Tooltip: + Name: Devastator (Destroyed) + TransformOnCapture: + IntoActor: devastator + +missile_tank.husk: + Inherits: ^VehicleHusk + TransformOnCapture: + IntoActor: missile_tank + ThrowsParticle@turret: + Anim: turret + TurnSpeed: 10 + ThrowsParticle@debris01: + Anim: tankdebris01 + MaxThrowRange: 2c512 + MinThrowRange: 1c0 + ThrowsParticle@debris02: + Anim: tankdebris02 + MinThrowAngle: 80 + MaxThrowAngle: 200 + ThrowsParticle@debris03: + Anim: tankdebris03 + MinThrowAngle: 30 + MaxThrowAngle: 150 + ThrowsParticle@debris04: + Anim: tankdebris04 + +bombardment_tank.husk: + Inherits: ^VehicleHusk + TransformOnCapture: + IntoActor: bombardment_tank + ThrowsParticle@turret: + Anim: turret + TurnSpeed: 10 + ThrowsParticle@debris01: + Anim: tankdebris01 + MaxThrowRange: 2c512 + MinThrowRange: 1c0 + ThrowsParticle@debris02: + Anim: tankdebris02 + MinThrowAngle: 80 + MaxThrowAngle: 200 + ThrowsParticle@debris03: + Anim: tankdebris03 + MinThrowAngle: 30 + MaxThrowAngle: 150 + ThrowsParticle@debris04: + Anim: tankdebris04 + +bison_tank.husk: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: bison_tank + RenderSprites: + PlayerPalette: player_r16 + WithIdleOverlay@Burns: + Palette: d2k + +crawler_light.husk: + Inherits: ^VehicleHusk + TransformOnCapture: + IntoActor: crawler.light + + +deviator.husk: + Inherits: ^VehicleHusk + ProximityExternalCondition@isHuskAlive: + Condition: devation_husk_still_alive + Range: 2c112 + MaximumVerticalOffset: 1c0 + AffectsParent: true + ValidRelationships: Ally, Neutral, Enemy + Tooltip: + Name: Deviator (Destroyed) + TransformOnCapture: + IntoActor: deviator + WithIdleOverlay@Burns: + Image: smoke_m + -StartSequence: + Sequence: smoke_player + IsPlayerPalette: True + IsDecoration: True + Offset: -100, -200, 312 + + + +^dummygas: + Inherits: ^Dummy + ExternalCondition@huskCheck: + Condition: devation_husk_still_alive + Explodes: + Weapon: DeviatorGas + EmptyWeapon: DeviatorGas + RequiresCondition: devation_husk_still_alive + KillsSelf: + Delay: 10 + HitShape: + Type: Circle + Radius: 16 + Health: + HP: 1 + +dummygas01: + Inherits: ^dummygas + KillsSelf: + Delay: 100 + +dummygas02: + Inherits: ^dummygas + KillsSelf: + Delay: 130 + +dummygas03: + Inherits: ^dummygas + KillsSelf: + Delay: 160 + +dummygas04: + Inherits: ^dummygas + KillsSelf: + Delay: 200 + +dummygas05: + Inherits: ^dummygas + KillsSelf: + Delay: 250 +dummygas06: + Inherits: ^dummygas + KillsSelf: + Delay: 300 +dummygas07: + Inherits: ^dummygas + KillsSelf: + Delay: 350 +dummygas08: + Inherits: ^dummygas + KillsSelf: + Delay: 390 + +^BuildingHusk: + Inherits@1: ^SpriteActor + GrantRandomCondition: + Conditions: decoration01, decoration02, decoration03 + Interactable: + Health: + HP: 15000 + Armor: + Type: wood + FrozenUnderFog: + Tooltip: + GenericName: Destroyed Building + WithSpriteBody: + HitShape: + UseTargetableCellsOffsets: true + Type: Rectangle + TopLeft: -512, -512 + BottomRight: 512, 512 + MapEditorData: + Categories: Husk + Targetable: + TargetTypes: Ground, Vehicle + RequiresForceFire: true + Building: + Dimensions: 1,1 + Footprint: x + TerrainTypes: Rock, Concrete + WithColoredOverlay@darker: + Color: 00000040 + WithBuildingBib: + ChangesHealth: + Step: -70 + StartIfBelow: 101 + Delay: 4 + ChangesHealth@damageidle: + Step: -160 + StartIfBelow: 50 + Delay: 4 + Tooltip: + Name: Building (destroyed) + + +windTrap.husk_passable: + Inherits: ^BuildingHusk + RenderSprites: + Image: husk_wind_trap_passable + Health: + HP: 15000 + Building: + Footprint: __ __ __ + Dimensions: 2,3 + LocalCenterOffset: 0,-512,0 + HitShape: + Type: Rectangle + TopLeft: -1024, -1024 + BottomRight: 1024, 1024 + WithIdleOverlay@smoke: + Image: smoke_big + Sequence: loop + StartSequence: start + Palette: disabled + IsDecoration: True + Offset: 0, 0, 312 + RequiresCondition: decoration02 || decoration03 + WithIdleOverlay@fire2: + Image: fire_slow + StartSequence: 1 + Sequence: 2 + IsDecoration: True + Offset: 0,-512,0 + RequiresCondition: decoration01 + ThrowsParticle@debris01: + Anim: debris01 + MinThrowRange: 1c115 + MaxThrowRange: 3c0 + ThrowsParticle@debris02: + Anim: debris02 + MinThrowRange: 1c115 + MaxThrowRange: 2c0 + ThrowsParticle@debris03: + Anim: debris03 + MinThrowRange: 2c115 + MaxThrowRange: 5c0 + ThrowsParticle@debris04: + Anim: debris04 + +windTrap.husk: + Inherits: ^BuildingHusk + RenderSprites: + Image: husk_wind_trap.ordos + FactionImages: + atreides: husk_wind_trap.atreides + harkonnen: husk_wind_trap.harkonnen + Health: + HP: 12000 + Building: + Footprint: xx xx == + Dimensions: 2,3 + LocalCenterOffset: 0,-512,0 + HitShape: + Type: Rectangle + TopLeft: -1024, -1024 + BottomRight: 1024, 1024 + WithIdleOverlay@smoke: + Image: smoke_big + Sequence: loop + StartSequence: start + Palette: disabled + IsDecoration: True + Offset: 250, 0, 312 + RequiresCondition: decoration02 || decoration03 + WithIdleOverlay@fire: + Image: fire_fromts + Palette: effect + Sequence: 1 + IsDecoration: True + Offset: 2000, 0, 0 + RequiresCondition: decoration01 || decoration02 + WithIdleOverlay@fire2: + Image: fire_slow + StartSequence: 1 + Sequence: 2 + IsDecoration: True + Offset: 0,-512,0 + RequiresCondition: decoration01 || decoration03 + SpawnActorOnDeath@passableruins: + Actor: windTrap.husk_passable + + +refinery_ruins: + Inherits: ^BuildingHusk + Building: + Dimensions: 3,3 + Footprint: ___ ___ ___ + LocalCenterOffset: 0,-512,0 + WithIdleOverlay@smokeSmall: + Image: smoke_m + StartSequence: smokeFromRA01idle + Sequence: smokeFromRA01loop + IsDecoration: True + Offset: 1024, 1500, 0 + Palette: huskPalette + RequiresCondition: decoration01 || decoration02 + WithIdleOverlay@smokeCenter: + Image: smoke_m + StartSequence: smokeFromRA01idle + Sequence: smokeFromRA01loop + IsDecoration: True + Offset: 0, 0, -1024 + Palette: huskPalette + RequiresCondition: decoration03 || decoration02 + +refinery_husk.ordos: + Inherits: ^BuildingHusk + RenderSprites: + Image: husk_refinery.ordos + WithIdleOverlay@front: + Sequence: idle-front + WithIdleOverlay@top: + Sequence: idle-top + Building: + Dimensions: 3,3 + Footprint: =xx x=x ___ + LocalCenterOffset: 0,-512,0 + HitShape: + Type: Rectangle + TopLeft: -512, -1024 + BottomRight: 1536, 0 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -1536, 0 + BottomRight: 512, 1024 + WithIdleOverlay@smoke: + Image: smoke_big + Sequence: loop + StartSequence: start + Palette: disabled + IsDecoration: True + Offset: 1400, 600, 0 + RequiresCondition: decoration01 || decoration02 + WithIdleOverlay@smoke2: + Image: smoke_m + Sequence: smokLandFromR_idle + StartSequence: smokLandFromRA_Open + Palette: disabled + IsDecoration: True + Offset: -1024,-400,0 + RequiresCondition: decoration02 || decoration03 + WithIdleOverlay@fire2: + Image: fire_slow + StartSequence: 1 + Sequence: 2 + IsDecoration: True + Offset: 0,-1024,0 + RequiresCondition: decoration01 || decoration03 + SpawnActorOnDeath@ruins: + Actor: refinery_ruins + + +refinery_husk.atreides: + Inherits: ^BuildingHusk + RenderSprites: + Image: husk_refinery.atreides + WithIdleOverlay@front: + Sequence: idle-front + WithIdleOverlay@top: + Sequence: idle-top + Building: + Footprint: =xx xx= === + Dimensions: 3,3 + LocalCenterOffset: 0,-512,0 + HitShape: + Type: Rectangle + TopLeft: -512, -1024 + BottomRight: 1536, 0 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -1536, 0 + BottomRight: 512, 1024 + WithIdleOverlay@smoke: + Image: smoke_big + Sequence: loop + StartSequence: start + Palette: disabled + IsDecoration: True + Offset: -500,-700, 0 + RequiresCondition: decoration01 || decoration03 + WithIdleOverlay@smoke2: + Image: smoke_m + Sequence: smokLandFromR_idle + StartSequence: smokLandFromRA_Open + Palette: disabled + IsDecoration: True + Offset: -800,-400,0 + RequiresCondition: decoration02 || decoration03 + WithIdleOverlay@fire2: + Image: fire_slow + StartSequence: 1 + Sequence: 2 + IsDecoration: True + Offset: 1400, 600, 0 + RequiresCondition: decoration01 || decoration03 || decoration02 + SpawnActorOnDeath@ruins: + Actor: refinery_ruins + +refinery_husk.harkonnen: + Inherits: ^BuildingHusk + RenderSprites: + Image: husk_refinery.harkonnen + WithIdleOverlay@front: + Sequence: idle-front + WithIdleOverlay@top: + Sequence: idle-top + Building: + Footprint: =xx =x= =X= + Dimensions: 3,3 + LocalCenterOffset: 0,-512,0 + HitShape: + Type: Rectangle + TopLeft: -512, -1024 + BottomRight: 1536, 0 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -1536, 0 + BottomRight: 512, 1024 + WithIdleOverlay@smokeLeft: + Image: smoke_big + Sequence: loop + StartSequence: start + Palette: disabled + IsDecoration: True + Offset: 1024, 1500, 500 + RequiresCondition: decoration01 || decoration02 + WithIdleOverlay@smoke2: + Image: smoke_m + Sequence: smokLandFromR_idle + Palette: disabled + IsDecoration: True + Offset: -1024,-700,0 + RequiresCondition: decoration02 || decoration03 || decoration01 + WithIdleOverlay@smokeSmall: + Image: smoke_m + StartSequence: smokeFromRA01idle + Sequence: smokeFromRA01loop + IsDecoration: True + Offset: 1024, 1500, 0 + Palette: huskPalette + RequiresCondition: decoration01 || decoration03 || decoration02 + WithIdleOverlay@fire2: + Image: fire_slow + StartSequence: 1 + Sequence: 2 + IsDecoration: True + Offset: 1024, 1000, 0 + RequiresCondition: decoration03 || decoration02 + SpawnActorOnDeath@ruins: + Actor: refinery_ruins + +crater_big: + Inherits: ^Husk + -WithFacingSpriteBody: + WithSpriteBody: + Armor: + Type: invulnerable + GrantConditionOnTerrain@rock: + Condition: rock + TerrainTypes: Rock, Concrete + GrantConditionOnTerrain@sand: + Condition: sand + TerrainTypes: Sand, Dune, Spice, SpiceSand + RenderSprites: + Palette: terrain + RequiresSpecificOwners: + ValidOwnerNames: Neutral + Building: + Dimensions: 3, 2 + Footprint: ___ ___ + MapEditorData: + ExcludeTilesets: INTERIOR + Categories: Decorations + HitShape: + UseTargetableCellsOffsets: true + Type: Rectangle + TopLeft: -512, -512 + BottomRight: 512, 512 + WithIdleOverlay@rock: + RequiresCondition: rock + Image: crater_big + Sequence: rock + Palette: terrain + WithIdleOverlay@sand: + RequiresCondition: sand + Image: crater_big + Sequence: sand + Palette: terrain + ChangesHealth: + Step: -70 + StartIfBelow: 101 + Delay: 4 + -Tooltip: diff --git a/mods/d2k/maps/01scriptrework/Enhanced_Starport09.yaml b/mods/d2k/maps/01scriptrework/Enhanced_Starport09.yaml new file mode 100644 index 000000000000..41ed78527ebe --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_Starport09.yaml @@ -0,0 +1,647 @@ +^Starport_icon_numbers: + WithProductionIconOverlay@order1: + Types: 1 + Prerequisites: starportOrder_1 + WithProductionIconOverlay@order2: + Types: 2 + Prerequisites: starportOrder_2 + WithProductionIconOverlay@order3: + Types: 3 + Prerequisites: starportOrder_3 + WithProductionIconOverlay@order4: + Types: 4 + Prerequisites: starportOrder_4 + WithProductionIconOverlay@order5: + Types: 5 + Prerequisites: starportOrder_5 + WithProductionIconOverlay@order6: + Types: 6 + Prerequisites: starportOrder_6 + +^Overlay_external_conditions: + ExternalCondition@order1: + Condition: order_1 + ExternalCondition@order2: + Condition: order_2 + ExternalCondition@order3: + Condition: order_3 + ExternalCondition@order4: + Condition: order_4 + ExternalCondition@order5: + Condition: order_5 + ExternalCondition@order6: + Condition: order_6 + +^Bot_eco_namager: + GrantConditionOnPlayerResources@botonly: + Condition: good_eco + GrantConditionOnBotOwner: + Condition: im_bot + ProvidesPrerequisite: + Prerequisite: bot.allow_buy + RequiresCondition: im_bot && good_eco + +^StarportDummy: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Purchase Items + Buildable: + BuildPaletteOrder: 150 + Prerequisites: ~frigate.not_empty + Queue: Starport + BuildDuration: 10 + BuildDurationModifier: 100 + Description: Purchase vehicles from CHOAM + Valued: + Cost: 1 + ProductionCostMultiplier@SmugglerStarportDiscount: + Prerequisites: starport.smuggler + Queue: Starport + Multiplier: 90 + + +purchase.starport: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Purchase Items + Buildable: + BuildPaletteOrder: 150 + Prerequisites: ~frigate.not_empty + Queue: Starport + BuildLimit: 1 + BuildDuration: 10 + BuildDurationModifier: 100 + Description: Purchase vehicles from CHOAM + Valued: + Cost: 0 + RenderSprites: + Image: purchase + ProvidesPrerequisite@upgradename: + +dummy.trike: + Inherits@overlay: ^Overlay_external_conditions + Inherits@starport: ^Starport_icon_numbers + Inherits: ^StarportDummy + RenderSprites: + Image: trike + ProvidesPrerequisite@trike1: + Prerequisite: starport.trike_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.trike_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.trike_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.trike_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.trike_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.trike_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.trike_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.trike_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.trike_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.trike_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.trike_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.trike_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 15 + Valued: + Cost: 350 + + +dummy.quad: + Inherits@overlay: ^Overlay_external_conditions + Inherits: ^StarportDummy + Inherits@starport: ^Starport_icon_numbers + RenderSprites: + Image: quad + ProvidesPrerequisite@trike1: + Prerequisite: starport.quad_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.quad_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.quad_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.quad_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.quad_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.quad_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.quad_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.quad_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.quad_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.quad_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.quad_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.quad_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 30 + Valued: + Cost: 500 + +dummy.harvester: + Inherits@overlay: ^Overlay_external_conditions + Inherits: ^StarportDummy + Inherits@starport: ^Starport_icon_numbers + RenderSprites: + Image: harvester + ProvidesPrerequisite@trike1: + Prerequisite: starport.harvester_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.harvester_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.harvester_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.harvester_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.harvester_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.harvester_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.harvester_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.harvester_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.harvester_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.harvester_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.harvester_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.harvester_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 10 + Valued: + Cost: 1500 + + +dummy.mcv: + Inherits@overlay: ^Overlay_external_conditions + Inherits@starport: ^Starport_icon_numbers + Inherits: ^StarportDummy + RenderSprites: + Image: mcv + ProvidesPrerequisite@trike1: + Prerequisite: starport.mcv_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.mcv_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.mcv_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.mcv_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.mcv_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.mcv_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.mcv_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.mcv_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.mcv_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.mcv_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.mcv_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.mcv_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 90 + Valued: + Cost: 2500 + +dummy.siege_tank: + Inherits@overlay: ^Overlay_external_conditions + Inherits@starport: ^Starport_icon_numbers + Inherits: ^StarportDummy + RenderSprites: + Image: siege_tank + ProvidesPrerequisite@trike1: + Prerequisite: starport.siege_tank_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.siege_tank_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.siege_tank_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.siege_tank_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.siege_tank_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.siege_tank_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.siege_tank_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.siege_tank_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.siege_tank_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.siege_tank_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.siege_tank_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.siege_tank_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 70 + Valued: + Cost: 1075 + +dummy.missile_tank: + Inherits@overlay: ^Overlay_external_conditions + Inherits@starport: ^Starport_icon_numbers + Inherits: ^StarportDummy + RenderSprites: + Image: missile_tank + ProvidesPrerequisite@trike1: + Prerequisite: starport.missile_tank_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.missile_tank_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.missile_tank_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.missile_tank_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.missile_tank_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.missile_tank_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.missile_tank_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.missile_tank_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.missile_tank_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.missile_tank_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.missile_tank_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.missile_tank_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 80 + Valued: + Cost: 1250 + +dummy.combat_tank_a: + Inherits@overlay: ^Overlay_external_conditions + Inherits@starport: ^Starport_icon_numbers + Inherits: ^StarportDummy + RenderSprites: + Image: combat_tank_a + ProvidesPrerequisite@trike1: + Prerequisite: starport.combat_tank_a_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.combat_tank_a_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.combat_tank_a_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.combat_tank_a_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.combat_tank_a_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.combat_tank_a_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.combat_tank_a_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.combat_tank_a_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.combat_tank_a_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.combat_tank_a_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.combat_tank_a_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.combat_tank_a_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport, ~starport.atreides_combat + BuildPaletteOrder: 40 + Valued: + Cost: 875 + +dummy.combat_tank_h: + Inherits@overlay: ^Overlay_external_conditions + Inherits: ^StarportDummy + Inherits@starport: ^Starport_icon_numbers + RenderSprites: + Image: combat_tank_h + ProvidesPrerequisite@trike1: + Prerequisite: starport.combat_tank_h_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.combat_tank_h_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.combat_tank_h_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.combat_tank_h_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.combat_tank_h_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.combat_tank_h_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.combat_tank_h_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.combat_tank_h_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.combat_tank_h_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.combat_tank_h_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.combat_tank_h_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.combat_tank_h_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport, ~starport.harkonnen_combat + BuildPaletteOrder: 50 + Valued: + Cost: 875 + +dummy.combat_tank_corrino: + Inherits@overlay: ^Overlay_external_conditions + Inherits: ^StarportDummy + Inherits@starport: ^Starport_icon_numbers + RenderSprites: + Image: combat_tank_corrino + ProvidesPrerequisite@trike1: + Prerequisite: starport.combat_tank_corrino_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.combat_tank_corrino_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.combat_tank_corrino_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.combat_tank_corrino_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.combat_tank_corrino_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.combat_tank_corrino_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.combat_tank_corrino_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.combat_tank_corrino_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.combat_tank_corrino_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.combat_tank_corrino_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.combat_tank_corrino_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.combat_tank_corrino_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport, ~starport.corrino_combat + BuildPaletteOrder: 50 + Valued: + Cost: 875 + +dummy.combat_tank_cheap: + Inherits@overlay: ^Overlay_external_conditions + Inherits: ^StarportDummy + Inherits@starport: ^Starport_icon_numbers + RenderSprites: + Image: combat_tank_cheap + ProvidesPrerequisite@trike1: + Prerequisite: starport.combat_tank_cheap_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.combat_tank_cheap_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.combat_tank_cheap_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.combat_tank_cheap_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.combat_tank_cheap_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.combat_tank_cheap_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.combat_tank_cheap_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.combat_tank_cheap_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.combat_tank_cheap_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.combat_tank_cheap_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.combat_tank_cheap_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.combat_tank_cheap_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport, ~starport.cheap_combat + BuildPaletteOrder: 50 + Valued: + Cost: 750 + +dummy.combat_tank_o: + Inherits@overlay: ^Overlay_external_conditions + Inherits@starport: ^Starport_icon_numbers + Inherits: ^StarportDummy + RenderSprites: + Image: combat_tank_o + ProvidesPrerequisite@trike1: + Prerequisite: starport.combat_tank_o_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.combat_tank_o_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.combat_tank_o_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.combat_tank_o_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.combat_tank_o_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.combat_tank_o_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.combat_tank_o_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.combat_tank_o_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.combat_tank_o_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.combat_tank_o_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.combat_tank_o_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.combat_tank_o_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport, ~starport.ordos_combat + BuildPaletteOrder: 60 + Valued: + Cost: 875 + +dummy.carryall: + Inherits@overlay: ^Overlay_external_conditions + Inherits@starport: ^Starport_icon_numbers + Inherits: ^StarportDummy + RenderSprites: + Image: carryall + ProvidesPrerequisite@trike1: + Prerequisite: starport.carryall_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.carryall_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.carryall_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.carryall_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.carryall_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.carryall_6 + RequiresCondition: order_6 + WithProductionIconOverlay@order1: + Prerequisites: starport.carryall_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.carryall_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.carryall_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.carryall_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.carryall_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.carryall_6 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 100 + Valued: + Cost: 1500 + + + + + +harvester.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + +mcv.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + +trike.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + + + +quad.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + +siege_tank.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + + +missile_tank.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + + +combat_tank_a.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + +combat_tank_h.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + +combat_tank_o.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 + +carryall.starport: + Buildable: + Prerequisites: ~disabled + BuildDuration: 5 diff --git a/mods/d2k/maps/01scriptrework/Enhanced_Structures09.yaml b/mods/d2k/maps/01scriptrework/Enhanced_Structures09.yaml new file mode 100644 index 000000000000..4d12f14d2261 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_Structures09.yaml @@ -0,0 +1,2345 @@ +^Building: + InstantlyRepairable: + Types: Building + ProductionTimeMultiplier@craneBonus: + Prerequisites: bonus.crane + Multiplier: 95 + GrantRandomCondition@randomFX: + Conditions: explode02, explode03 + Explodes@02: + Type: CenterPosition + Weapon: buildingExplosions02 + EmptyWeapon: buildingExplosions02 + Chance: 50 + Offset: 1,0,1 + RequiresCondition: explode02 && !being-demolished + Explodes@03: + Type: CenterPosition + Weapon: buildingExplosions03 + EmptyWeapon: buildingExplosions03 + Chance: 50 + Offset: 1,2,1 + RequiresCondition: (explode02 || explode03) && !being-demolished + Explodes@sabotuerdemolition: + RequiresCondition: being-demolished + Type: CenterPosition + Weapon: buildingBigExplosion + EmptyWeapon: buildingBigExplosion + ThrowsShrapnel: + Weapons: derbisRock01, derbisRock02, derbisRock03, Debris4 + Pieces: 2, 5 + Range: 1c512, 4c0 + SpawnActorOnDeath@bigcrater: + Actor: crater_big + Offset: 0,1 + RequiresCondition: being-demolished + AmbientSound@saboteurCharge: + SoundFiles: audio/explodeSaboteurEmperor02.wav + RequiresCondition: being-demolished + WithBuildingRepairDecoration: + Palette: player + IsPlayerPalette: True + +^DamagedBuildingsVFX: + GrantConditionOnFaction@atreidesVFX: + Condition: atreidesVFX + Factions: atreides, fremen + GrantConditionOnFaction@harkonnenVFX: + Condition: harkonnenVFX + Factions: harkonnen, corrino + GrantConditionOnFaction@ordosVFX: + Condition: ordosVFX + Factions: ordos, mercenary, smuggler + GrantConditionOnDamageState@heavyDamage: + Condition: heavy-damage + FloatingSpriteEmitter@smoke_huge_atreides: + RequiresCondition: heavy-damage && atreidesVFX + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 5 + Gravity: 60 + SpawnFrequency: 2, 5 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1224 + FloatingSpriteEmitter@smoke2_small_atreides: + RequiresCondition: heavy-damage && atreidesVFX + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + Gravity: 50 + SpawnFrequency: 4, 15 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1024 + WithIdleOverlay@Burns1_atreides: + RequiresCondition: heavy-damage && atreidesVFX + Image: fire + Sequence: 1 + IsDecoration: True + WithIdleOverlay@Burns2_atreides: + RequiresCondition: heavy-damage && atreidesVFX + Image: fire + Sequence: 2 + IsDecoration: True + FloatingSpriteEmitter@smoke_huge_harkonnen: + RequiresCondition: heavy-damage && harkonnenVFX + Palette: smoke3 + Image: smoke4 + Lifetime: 20,25 + Speed: 5 + Gravity: 60 + SpawnFrequency: 3, 7 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1524 + FloatingSpriteEmitter@smoke2_small_harkonnen: + RequiresCondition: heavy-damage && harkonnenVFX + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + Gravity: 50 + SpawnFrequency: 4, 15 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1024 + WithIdleOverlay@Burns1_harkonnen: + RequiresCondition: heavy-damage && harkonnenVFX + Image: fire + Sequence: 1 + IsDecoration: True + WithIdleOverlay@Burns2_harkonnen: + RequiresCondition: heavy-damage && harkonnenVFX + Image: fire + Sequence: 2 + IsDecoration: True + FloatingSpriteEmitter@smoke_huge_ordos: + RequiresCondition: heavy-damage && ordosVFX + Palette: smoke3 + Image: smoke4 + Lifetime: 20,25 + Speed: 7 + Gravity: 60 + SpawnFrequency: 3, 8 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1524 + FloatingSpriteEmitter@smoke2_small_ordos: + RequiresCondition: heavy-damage && ordosVFX + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + Gravity: 50 + SpawnFrequency: 4, 15 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1024 + WithIdleOverlay@Burns1_ordos: + RequiresCondition: heavy-damage && ordosVFX + Image: fire + Sequence: 1 + IsDecoration: True + WithIdleOverlay@Burns2_ordos: + RequiresCondition: heavy-damage && ordosVFX + Image: fire + Sequence: 2 + IsDecoration: True + +construction_yard: + Inherits@damageVFX: ^DamagedBuildingsVFX + Health: + HP: 40000 + Armor: + Type: cy + RevealsShroud: + Range: 5c768 + Power: + Amount: 50 + ThrowsShrapnel: + Weapons: Debris, Debris2 + Pieces: 1, 3 + Range: 1c0, 2c0 + ThrowsShrapnel@longer: + Weapons: Debris, Debris2, Debris3, Debris4 + Pieces: 5, 7 + Range: 3c0, 6c0 + ThrowsShrapnel@longest: + Weapons: Debris4, DerbisSiegetank + Pieces: 0, 3 + Range: 6c0, 10c0 + Explodes@02: + RequiresCondition: explode02 + Explodes@03: + RequiresCondition: explode03 + Tooltip: + Name: Atreides Conyard + RequiresCondition: !harkonnen && !ordos && !fremen && !corrino && !smuggler && !mercenary + Tooltip@harkonnen: + Name: Harkonnen Conyard + RequiresCondition: harkonnen + Tooltip@ordos: + Name: Ordos Conyard + RequiresCondition: ordos + Tooltip@fremen: + Name: Fremen Conyard + RequiresCondition: fremen + Tooltip@corrino: + Name: Corrino Conyard + RequiresCondition: corrino + Tooltip@smuggler: + Name: Smuggler Conyard + RequiresCondition: smuggler + Tooltip@mercenary: + Name: Mercenary Conyard + RequiresCondition: mercenary + GrantConditionOnFaction@harkonnen: + Condition: harkonnen + Factions: harkonnen + GrantConditionOnFaction@ordos: + Condition: ordos + Factions: ordos + GrantConditionOnFaction@corrino: + Condition: corrino + Factions: corrino + GrantConditionOnFaction@fremen: + Condition: fremen + Factions: fremen + GrantConditionOnFaction@smuggler: + Condition: smuggler + Factions: smuggler + GrantConditionOnFaction@mercenary: + Condition: mercenary + Factions: mercenary + ProvidesPrerequisite@fremenBuildins: + Prerequisite: conyard.fremen + Factions: fremen + ProvidesPrerequisite@atreides: + Prerequisite: conyard.atreides + Factions: atreides + ProvidesPrerequisite@harkonnen: + Prerequisite: conyard.harkonnen + Factions: harkonnen + ProvidesPrerequisite@ordos: + Prerequisite: conyard.ordos + Factions: ordos + ProvidesPrerequisite@corrino: + Prerequisite: conyard.corrino + Factions: corrino + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 600, -500, 0 + Gravity: 70 + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: -300, -1200, 0 + SpawnFrequency: 3, 13 + FloatingSpriteEmitter@smoke3_small_conyard: + RequiresCondition: heavy-damage && atreidesVFX + Offset: -1024, -500, 0 + SpawnFrequency: 5, 20 + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + Gravity: 50 + Duration: 800 + WithIdleOverlay@Burns1_atreides: + Offset: 300, 500, 0 + WithIdleOverlay@Burns2_atreides: + Offset: 2024, -350, 0 + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: -100,300,0 + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: 800,-200,0 + Speed: 10 + WithIdleOverlay@Burns1_harkonnen: + Offset: -700, -200,0 + WithIdleOverlay@Burns2_harkonnen: + Offset: 500, 900,0 + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: 500, -1000, 0 + Gravity: 70 + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: -300, -1200, 0 + SpawnFrequency: 3, 13 + WithIdleOverlay@Burns1_ordos: + Offset: 300, 500, 0 + WithIdleOverlay@Burns2_ordos: + Offset: 1124, -350, 0 + +concretea: + Buildable: + Prerequisites: ~!global-auto-concrete, !choosefaction + +concreteb: + Buildable: + Prerequisites: upgrade.conyard, ~!global-auto-concrete, !choosefaction + +wind_trap: + Inherits@damageVFX: ^DamagedBuildingsVFX + Buildable: + Prerequisites: !choosefaction + BuildDuration: 208 + BuildDurationModifier: 100 + Selectable: + Bounds: 2048, 2048 + Valued: + Cost: 225 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Health: + HP: 35000 + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: wood + RequiresCondition: !ArmorUpgrade + Power: + Amount: 200 + RevealOnDeath: + Radius: 3c768 + SpawnActorOnDeath@husktype01: + Actor: windTrap.husk + RequiresCondition: explode02 && !being-demolished + SpawnActorOnDeath@huskType02: + Actor: windTrap.husk_passable + RequiresCondition: explode03 && !being-demolished + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 100, -1024, 0 + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: -580, -400, 0 + WithIdleOverlay@Burns1_atreides: + Offset: 1124, 0, 0 + -WithIdleOverlay@Burns2_atreides: + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: 100, -1024, 0 + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: -500, -400, 0 + WithIdleOverlay@Burns1_harkonnen: + Offset: 300, -500, 0 + -WithIdleOverlay@Burns2_harkonnen: + -FloatingSpriteEmitter@smoke_huge_ordos: + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: -500, -900, 0 + SpawnFrequency: 3, 13 + WithIdleOverlay@Burns1_ordos: + Offset: 500, -700, 0 + -WithIdleOverlay@Burns2_ordos: + + +barracks: + Inherits@damageVFX: ^DamagedBuildingsVFX + Buildable: + BuildDuration: 325 + Valued: + Cost: 400 + Health: + HP: 37000 + Armor: + Type: building + RevealsShroud: + Range: 3c768 + GrantConditionOnFaction@fremenExit: + Condition: fremen + Factions: fremen + Exit@1: + RequiresCondition: !fremen + Exit@2: + RequiresCondition: !fremen + Exit@3: + SpawnOffset: -0,700,0 + ExitCell: 0,2 + RequiresCondition: fremen + Exit@4: + SpawnOffset: -0,700,0 + ExitCell: 1,2 + RequiresCondition: fremen + RenderSprites: + Image: barracks.ordos + FactionImages: + atreides: barracks.atreides + fremen: barracks.fremen + harkonnen: barracks.harkonnen + corrino: barracks.corrino + smuggler: barracks.ordos + mercenary: barracks.smuggler + Power: + Amount: -50 + GrantConditionOnProduction@ClusterdebrisExplosion: + Condition: producing + ThrowsShrapnel@explosiveDerbis: + Weapons: DeathHandClusterDebris + Pieces: 0, 1 + Range: 1c0, 2c0 + RequiresCondition: producing + ProvidesPrerequisite@smugler: + Prerequisite: barracks.smuggler + Factions: smuggler + RequiresPrerequisites: factions.subfaction_allowed + ProvidesPrerequisite@corrino: + Prerequisite: barracks.corrino + Factions: corrino + ProvidesPrerequisite@mercenary: + Prerequisite: barracks.mercenary + Factions: mercenary + ProvidesPrerequisite@fremen: + Prerequisite: barracks.fremen + Factions: fremen + ProvidesPrerequisite@fremenMerged: + Prerequisite: barracks.fremen + RequiresPrerequisites: merged.fremen + ResetOnOwnerChange: false + WithIdleOverlay@Burns1_atreides: + Offset: 500, 500, 0 + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: 600, -500, 0 + -FloatingSpriteEmitter@smoke_huge_atreides: + -WithIdleOverlay@Burns2_atreides: + -FloatingSpriteEmitter@smoke_huge_harkonnen: + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: 0,0,0 + -WithIdleOverlay@Burns1_harkonnen: + WithIdleOverlay@Burns2_harkonnen: + Offset: 0,0,0 + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: 300, -800, 0 + -FloatingSpriteEmitter@smoke2_small_ordos: + WithIdleOverlay@Burns1_ordos: + Offset: 500, 300, 0 + -WithIdleOverlay@Burns2_ordos: + + +refinery: + Inherits@damageVFX: ^DamagedBuildingsVFX + PlaceBuildingVariants: + Actors: refinery_inverted + Facings: 384, 896 + Buildable: + BuildDuration: 687 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Valued: + Cost: 1500 + Health: + HP: 43000 + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: wood + RequiresCondition: !ArmorUpgrade + RevealsShroud: + Range: 3c768 + StoresResources: + Capacity: 2000 + FreeActorWithDelivery: + Actor: harvester + DeliveryOffset: 2,2 + DeliveringActor: carryall.reinforce + Facing: 160 + CustomSellValue: + Sellable: + RequiresCondition: !build-incomplete && !being-demolished + SellSounds: BUILD1.WAV + Power: + Amount: -75 + Explodes@big04: + Type: CenterPosition + Weapon: buildingExplosions04_big + EmptyWeapon: buildingExplosions04_big + Chance: 100 + Offset: 2,2,1 + ThrowsShrapnel: + Weapons: Debris, Debris2, Debris3, Debris4, HarvesterSpiceExplosion + Pieces: 7, 15 + Range: 2c0, 10c0 + GrantConditionOnFaction@Atreides: + Condition: atreides + Factions: atreides, fremen + GrantConditionOnFaction@Harkonnen: + Condition: harkonnen + Factions: harkonnen, corrino + GrantConditionOnFaction@Ordos: + Condition: ordos + Factions: ordos, mercenary, smuggler + SpawnActorOnDeath@ordosHusk: + Actor: refinery_husk.ordos + RequiresCondition: ordos && !being-demolished + SpawnActorOnDeath@atreidesHusk: + Actor: refinery_husk.atreides + RequiresCondition: atreides && !being-demolished + SpawnActorOnDeath@harkonnenHusk: + Actor: refinery_husk.harkonnen + RequiresCondition: harkonnen && !being-demolished + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: -900, 0, 0 + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 700,-612,0 + WithIdleOverlay@Burns1_atreides: + Offset: 950, 600,0 + WithIdleOverlay@Burns2_atreides: + Offset: 700, -800, 0 + Sequence: 4 + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: 1100,-800,0 + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: -1024, 0,0 + WithIdleOverlay@Burns1_harkonnen: + Offset: 1200, 1000,0 + WithIdleOverlay@Burns2_harkonnen: + Offset: 0, -1024, 0 + Sequence: 4 + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: -100, -1050, 0 + Gravity: 70 + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: -250, 250, 0 + SpawnFrequency: 3, 13 + WithIdleOverlay@Burns1_ordos: + Offset: 1200, -200, 0 + WithIdleOverlay@Burns2_ordos: + Offset: 0, -200, 0 + +refinery_inverted: + Inherits: refinery + PlaceBuildingVariants: + Actors: refinery + Facings: 896, 384 + Buildable: + Prerequisites: wind_trap + Queue: Building + BuildPaletteOrder: 310 + Description: Refinery with docking from north side + RenderSprites: + Image: refinery_invert.ordos + FactionImages: + atreides: refinery_invert.atreidis + fremen: refinery_invert.atreidis + harkonnen: refinery_invert.harkonnen + corrino: refinery_invert.harkonnen + WithIdleOverlay@front: + Sequence: idle-front + RequiresCondition: !build-incomplete + Selectable: + Bounds: 3072, 2048, 0, 1024 + WithIdleOverlay@top: + Sequence: idle-top + RequiresCondition: !build-incomplete + Refinery: + DockHost: + Type: Unload + DockAngle: 128 + DockOffset: 0,1c0,0 + Tooltip: + Name: Spice Refinery Inverted + D2kBuilding: + Footprint: === =xx xx= + Dimensions: 3,3 + LocalCenterOffset: 0,-512,0 + HitShape: + Type: Rectangle + TopLeft: -512, 0 + BottomRight: 1536, 1024 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -1536, 1024 + BottomRight: 512, 2048 + ProvidesPrerequisite: + Prerequisite: refinery + FreeActorWithDelivery: + DeliveryOffset: 0,0 + +silo: + Buildable: + BuildPaletteOrder: 650 + Valued: + Cost: 120 + Health: + HP: 18000 + Armor: + Type: building + RevealsShroud: + Range: 2c768 + StoresResources: + Capacity: 2000 + Power: + Amount: -10 + ThrowsShrapnel: + Weapons: Debris, Debris2, Debris3, Debris4 + Pieces: 3, 5 + Range: 2c0, 5c0 + GrantConditionOnDamageState@heavyDamage: + Condition: heavy-damage + GrantConditionOnDamageState@critical: + ValidDamageStates: Critical + Condition: critical-damage + WithIdleOverlay@Burns1_atreides: + RequiresCondition: critical-damage + Image: fire + Sequence: 1 + IsDecoration: True + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: 0, -300, 0 + RequiresCondition: heavy-damage + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + Gravity: 50 + SpawnFrequency: 4, 15 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1024 + +light_factory: + Inherits@damageVFX: ^DamagedBuildingsVFX + Buildable: + Prerequisites: refinery + BuildDuration: 400 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Valued: + Cost: 800 + Health: + HP: 41000 + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: wood + RequiresCondition: !ArmorUpgrade + RevealsShroud: + Range: 5c768 + Power: + Amount: -100 + ThrowsShrapnel: + Weapons: Debris2, derbisRock01, Debris4 + Pieces: 5, 7 + Range: 0c512, 3c0 + ProvidesPrerequisite@hunter: + Prerequisite: light.hunter + Factions: smuggler, fremen + ProvidesPrerequisite@harkonnen: + Prerequisite: light.harkonnen + Factions: harkonnen + ProvidesPrerequisite@atreides: + Prerequisite: light.atreides + Factions: atreides + ProvidesPrerequisite@quad: + Prerequisite: light.quad + Factions: atreides, fremen, harkonnen, corrino, ordos, mercenary, smuggler + ProvidesPrerequisite@trike: + Prerequisite: light.trike + Factions: atreides, harkonnen, corrino, mercenary + ProvidesPrerequisite@raider: + Prerequisite: light.raider + Factions: ordos + ProvidesPrerequisite@crawler: + Prerequisite: light.crawler + Factions: mercenary + GrantConditionOnPrerequisite@smugglertech: + Condition: smugglertech + Prerequisites: merged.smuggler + GrantCondition@smuggler: + Condition: enable_hunter + GrantPermanently: true + RequiresCondition: smugglertech + ProvidesPrerequisite@smuglglertech: + RequiresCondition: enable_hunter + Prerequisite: light.hunter + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: -400, -500, 0 + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 400,-612,0 + WithIdleOverlay@Burns1_atreides: + Offset: 1024, 300,0 + WithIdleOverlay@Burns2_atreides: + Offset: 1024, -500, 0 + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: -100,300,0 + Speed: 7 + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: -900,-500,0 + Speed: 10 + WithIdleOverlay@Burns1_harkonnen: + Offset: -0,-950,0 + WithIdleOverlay@Burns2_harkonnen: + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: -900, 0, 0 + Gravity: 70 + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: 300, -200, 0 + SpawnFrequency: 3, 13 + WithIdleOverlay@Burns1_ordos: + Offset: -600, -1000, 0 + WithIdleOverlay@Burns2_ordos: + Offset: 700, 200, 0 + + +heavy_factory: + Inherits@damageVFX: ^DamagedBuildingsVFX + Buildable: + BuildDuration: 750 + Valued: + Cost: 1500 + Health: + HP: 42000 + RenderSprites: + Image: heavy.ordos + FactionImages: + atreides: heavy.atreides + fremen: heavy.atreides + harkonnen: heavy.harkonnen + corrino: heavy.corrino + mercenary: heavy.mercenary + Armor: + Type: building + RevealsShroud: + Range: 4c768 + Power: + Amount: -150 + ProvidesPrerequisite@missile_tank: + Prerequisite: heavy.missile_tank + Factions: atreides, fremen, harkonnen, corrino, mercenary + ProvidesPrerequisite@crawler: + Prerequisite: heavy.bison + Factions: mercenary + ProvidesPrerequisite@smuggler: + Prerequisite: heavy.smuggler + Factions: smuggler + ProvidesPrerequisite@mercenary: + Prerequisite: heavy.mercenary + Factions: mercenary + ProvidesPrerequisite@corrino: + Prerequisite: heavy.corrino + Factions: corrino + ProvidesPrerequisite@atreides_combat: + Prerequisite: heavy.atreides_combat + Factions: atreides, fremen + RequiresCondition: !subfaction_mode + ProvidesPrerequisite@ordos_combat: + Prerequisite: heavy.ordos_combat + Factions: ordos, smuggler, mercenary + RequiresCondition: !subfaction_mode + ProvidesPrerequisite@harkonnen_combat: + Prerequisite: heavy.harkonnen_combat + Factions: harkonnen, corrino + RequiresCondition: !subfaction_mode + ProvidesPrerequisite@atreides_combat_subfactions: + Prerequisite: heavy.atreides_combat + Factions: atreides + RequiresCondition: subfaction_mode + ProvidesPrerequisite@ordos_combat_subfactions: + Prerequisite: heavy.ordos_combat + Factions: ordos + RequiresCondition: subfaction_mode + ProvidesPrerequisite@harkonnen_combat_subfactions: + Prerequisite: heavy.harkonnen_combat + Factions: harkonnen + RequiresCondition: subfaction_mode + ProvidesPrerequisite@cheap_tank: + Prerequisite: heavy.cheap_tank + Factions: fremen, mercenary, smuggler + RequiresCondition: subfaction_mode + ProvidesPrerequisite@corrinotank: + Prerequisite: heavy.corrino_combat + Factions: corrino + RequiresCondition: subfaction_mode + GrantConditionOnPrerequisite@combattankslogic: + Prerequisites: factions.subfaction_allowed + Condition: subfaction_mode + GrantConditionOnProduction@debrisExplosion: + Condition: producing + ThrowsShrapnel: + Weapons: Debris, Debris2, Debris3, Debris4 + Pieces: 10, 20 + Range: 1c0, 5c0 + ThrowsShrapnel@explosiveDerbis: + Weapons: DeathHandClusterDebris + Pieces: 0, 1 + Range: 1c0, 3c0 + ThrowsShrapnel@explosiveDerbiswhenproducing: + Weapons: DeathHandClusterDebris + Pieces: 1, 2 + Range: 1c0, 5c0 + RequiresCondition: producing + SpawnActorOnDeath@bigcrater: + Offset: 0,2 + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 512, 0, 0 + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: -300, -1000, 0 + WithIdleOverlay@Burns1_atreides: + Offset: -200, 300, 0 + WithIdleOverlay@Burns2_atreides: + Offset: 1550, -400, 0 + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: -600,-200,0 + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: 0, -660,0 + WithIdleOverlay@Burns1_harkonnen: + Offset: 500, -600,0 + WithIdleOverlay@Burns2_harkonnen: + Offset: 1800, 50,0 + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: -700, 100,0 + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: -400, -1000,0 + WithIdleOverlay@Burns1_ordos: + Offset: 1300, -500,0 + WithIdleOverlay@Burns2_ordos: + Offset: 100, -600,0 + Sequence: 4 + +outpost: + Inherits@damageVFX: ^DamagedBuildingsVFX + Buildable: + BuildDuration: 420 + Valued: + Cost: 1000 + Health: + HP: 43000 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: wood + RequiresCondition: !ArmorUpgrade + RevealsShroud: + Range: 11c0 + RequiresCondition: !disabled + RevealsShroud@lowpower: + Range: 4c0 + RequiresCondition: disabled + Power: + Amount: -125 + DetectCloaked: + Range: 6c0 + RequiresCondition: !disabled + ProvidesPrerequisite@mercenary: + Prerequisite: outpost.mercenary + Factions: mercenary + RequiresPrerequisites: factions.merged + ProvidesPrerequisite@jammerforsmugglers: + Prerequisite: outpost.smuggler + Factions: smuggler + RequiresPrerequisites: factions.subfaction_allowed + ProvidesPrerequisite@fremen: + Prerequisite: outpost.fremen + Factions: fremen + GrantConditionOnFaction@smugglerjammerSubfactionmode: + Condition: jammer + Factions: smuggler + GrantConditionOnFaction@fremen: + Condition: fremen + Factions: fremen + SpawnActorPower@jammer: + Actor: jammer_point + ChargeInterval: 4200 + LifeTime: 500 + Name: Jam communication + Description: Reduce enemy vision and Range in the area, for short period of time. Jam long range missiles + Icon: jammer + RequiresCondition: jammer + Prerequisites: ~techlevel.high, ~upgrade.outpost, ~!factions.standard + EffectImage: carryall.husk_on_land + EffectSequence: + LaunchSound: audio/ironcur9.aud + DisplayRadarPing: true + OrderName: SpawnActorPowerInfoOrder.jammer + SupportPowerPaletteOrder: 100 + SpawnActorPower@hideunits: + EffectImage: carryall.husk_on_land + EffectSequence: + Actor: dummy.hide_units + Name: Hide units + ChargeInterval: 3700 + Description: Hide units in selected area for short period of time + Prerequisites: ~upgrade.outpost_fremen, ~!factions.standard + Icon: hide_units + LaunchSound: audio/EBoD_hidenunits1.wav + DisplayRadarPing: true + RequiresCondition: fremen + OrderName: SpawnActorPowerInfoOrder.hideunits + SupportPowerPaletteOrder: 110 + GrantConditionOnPrerequisite@frementech: + Condition: frementech + Prerequisites: merged.fremen + GrantCondition@permanentConditionFremen: + Condition: enable_hideunits + GrantPermanently: true + RequiresCondition: frementech + ProvidesPrerequisite@frementech: + RequiresCondition: enable_hideunits + Prerequisite: outpost.fremen + GrantCondition@enableFremenCondition: + Condition: fremen + GrantPermanently: true + RequiresCondition: enable_hideunits + ProvidesPrerequisite@mercenarytech: + Prerequisite: outpost.smuggler + RequiresPrerequisites: merged.smuggler + GrantConditionOnPrerequisite@enableSmugglercondition: + Condition: jammer + Prerequisites: merged.smuggler + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: -400, -500, 0 + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 300,0,0 + WithIdleOverlay@Burns1_atreides: + Offset: -150, 300, 0 + WithIdleOverlay@Burns2_atreides: + Offset: 1024, -400, 0 + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: -550, -500, 0 + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: 400, 0, 0 + WithIdleOverlay@Burns1_harkonnen: + Offset: 600,-600,0 + -WithIdleOverlay@Burns2_harkonnen: + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: -600, -300, 0 + Gravity: 70 + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: 350, 0, 0 + SpawnFrequency: 3, 13 + WithIdleOverlay@Burns1_ordos: + Offset: 350, -600, 0 + -WithIdleOverlay@Burns2_ordos: + +starport: + Inherits@damageVFX: ^DamagedBuildingsVFX + Inherits@disablecondition: ^DisableOnLowPower + -WithColoredOverlay@IDISABLE: + Buildable: + BuildDuration: 625 + Prerequisites: heavy_factory, outpost, ~techlevel.high, ~!factions.merged + Valued: + Cost: 1500 + Health: + HP: 45500 + D2kBuilding: + Footprint: xxx +=+ =x= + Dimensions: 3,3 + -ProductionAirdrop: + ProductionFromMapEdge: + Produces: Starport + Production: + Produces: Starport + RenderSprites: + Image: starport.ordos + FactionImages: + atreides: starport.atreides + fremen: starport.atreides + harkonnen: starport.harkonnen + corrino: starport.harkonnen + smuggler: starport.smuggler + mercenary: starport.mercenary + Armor: + Type: heavy + RevealsShroud: + Range: 3c768 + Tooltip@smuggler: + Name: Smuggler Starport + RequiresCondition: smuggler + Tooltip@mercenary: + Name: Mercenary Starport + RequiresCondition: mercenary + Tooltip: + RequiresCondition: !smuggler && !mercenary + Power: + Amount: -150 + -Explodes@02: + ExternalCondition@lights: + Condition: frigate_proximity_influence + WithIdleOverlay@LIGHTS: + RequiresCondition: !build-incomplete && frigate_proximity_influence + Sequence: active + ProvidesPrerequisite@atreides_combat: + Prerequisite: starport.atreides_combat + Factions: atreides + ProvidesPrerequisite@ordos_combat: + Prerequisite: starport.ordos_combat + Factions: ordos + ProvidesPrerequisite@harkonnen_combat: + Prerequisite: starport.harkonnen_combat + Factions: harkonnen + ProvidesPrerequisite@corrino_combat: + Prerequisite: starport.corrino_combat + Factions: corrino + ProvidesPrerequisite@cheap_Tank: + Prerequisite: starport.cheap_combat + Factions: fremen, smuggler, mercenary + ProvidesPrerequisite@smugglerstarport: + Prerequisite: starport.smuggler + Factions: smuggler + ProvidesPrerequisite@mercenaryStarport: + Prerequisite: starport.mercenary + Factions: mercenary + ProvidesPrerequisite@ordosstarport: + Prerequisite: starport.ordos + Factions: ordos + GrantConditionOnFaction@mercenary: + Condition: mercenary + Factions: mercenary + GrantConditionOnFaction@smuggler: + Condition: smuggler + Factions: smuggler + Explodes@03: + Type: CenterPosition + Weapon: buildingExplosions05 + EmptyWeapon: buildingExplosions05 + Chance: 80 + ProduceActorPower@contractors: + Name: Hire Contractors + Description: AT infantry with modest range. Can fire only when deployed \n Strong VS Vehicles, tanks \n Modest VS infantry + Icon: mercenary + PauseOnCondition: disabled + RequiresCondition: mercenary + Prerequisites: upgrade.starport, ~techlevel.superweapons, ~!factions.standard + Actors: dummy_mercenary_spawnpoint + Type: Starport + ChargeInterval: 3200 + LaunchSpeechNotification: Reinforce + BlockedAudio: NoRoom + OrderName: ProduceActorPower.contractors + SupportPowerPaletteOrder: 30 + GrantConditionOnPrerequisite@merchtech: + Condition: mercenary + Prerequisites: merged.mercenary + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 900, -1400, 0 + Gravity: 40 + Speed: 5 + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: -1224, -1312, 0 + SpawnFrequency: 3, 13 + WithIdleOverlay@Burns1_atreides: + Offset: 1424, -1390, 0 + -WithIdleOverlay@Burns2_atreides: + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: -1100,-1000,0 + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: 700,-900,0 + Speed: 10 + -WithIdleOverlay@Burns1_harkonnen: + WithIdleOverlay@Burns2_harkonnen: + Offset: 1800, 780,0 + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: -1100,-1000,0 + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: 700,-900,0 + Speed: 10 + -WithIdleOverlay@Burns1_ordos: + WithIdleOverlay@Burns2_ordos: + Offset: 1800, 780,0 + + + + + +wall: + Buildable: + BuildDuration: 100 + Valued: + Cost: 100 + Health: + HP: 20000 + Armor: + Type: wall + RevealsShroud: + Range: 1c768 + +medium_gun_turret: + Inherits@chaosbomb: ^chaos_bomb_influence + Inherits@jammer: ^jammedvision + -AttackWander: + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Buildable: + Prerequisites: barracks + BuildDuration: 300 + Description: Defensive structure.\n Modest vs everthing\n weak vs Tanks\n detects cloaked units in 2 cell range + Valued: + Cost: 600 + Health: + HP: 30000 + Armor: + Type: wall + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: heavy + RequiresCondition: !ArmorUpgrade + RevealsShroud: + Range: 5c768 + Turreted: + TurnSpeed: 24 + InitialFacing: 512 + RealignDelay: -1 + WithSpriteTurret: + Recoils: false + WithSpriteBarrel: + RequiresCondition: !build-incomplete + Armament: + Weapon: 110mm_Gun + LocalOffset: 512,0,432 + MuzzleSequence: muzzle + Recoil: 200 + RecoilRecovery: 25 + RequiresCondition: !chaos_bomb + Armament@chaos_bomb_influence: + Weapon: 110mm_Gun + LocalOffset: 512,0,432 + MuzzleSequence: muzzle + Recoil: 200 + RecoilRecovery: 25 + Power: + Amount: -50 + DetectCloaked: + Range: 5c0 + GrantConditionOnDamageState@heavyDamage: + Condition: heavy-damage + FloatingSpriteEmitter@smoke2_small: + Offset: 0, -700, 0 + RequiresCondition: heavy-damage + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + Gravity: 50 + SpawnFrequency: 4, 15 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1024 + +large_gun_turret: + Inherits@AUTOTARGET: ^AutoTargetAll + Inherits@Jammer: ^jammedvision + Inherits@chaosbomb: ^chaos_bomb_influence + -AttackWander: + Buildable: + BuildDuration: 380 + Description: Defensive structure.\n Strong vs Tanks, Aircraft\n Weak vs infantry\n\n Requires power to operate. + Valued: + Cost: 800 + Health: + HP: 32000 + Armor: + Type: wall + RevealsShroud: + Range: 6c768 + Armament: + Weapon: MissleTowerNew + LocalOffset: 256,384,768, 256,-384,768 + RequiresCondition: !chaos_bomb + Armament@chaos_bomb_influence: + Weapon: MissleTowerNew + LocalOffset: 256,384,768, 256,-384,768 + Turreted: + TurnSpeed: 32 + Power: + Amount: -70 + DetectCloaked: + Range: 5c0 + GrantConditionOnDamageState@heavyDamage: + Condition: heavy-damage + FloatingSpriteEmitter@smoke2_small: + Offset: 0, -700, 0 + RequiresCondition: heavy-damage + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + Gravity: 50 + SpawnFrequency: 4, 15 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1024 + +repair_pad: + Buildable: + Queue: Building + Prerequisites: heavy_factory, ~techlevel.medium, ~!repair_pad.bot + BuildDuration: 375 + Valued: + Cost: 800 + Health: + HP: 39000 + Armor: + Type: wood + RevealsShroud: + Range: 3c768 + Capturable: + RequiresCondition: !build-incomplete + Types: building + CancelActivity: true + Power: + Amount: -50 + -Explodes@02: + Explodes@03: + Type: CenterPosition + Weapon: buildingExplosions05 + EmptyWeapon: buildingExplosions05 + Chance: 80 + GrantConditionOnDamageState@heavyDamage: + Condition: heavy-damage + FloatingSpriteEmitter@smoke2_small: + Offset: 100, -1400, 0 + Gravity: 40 + RequiresCondition: heavy-damage + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + SpawnFrequency: 4, 15 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1024 + FloatingSpriteEmitter@smoke_huge: + Offset: 800,200,0 + SpawnFrequency: 4,10 + RequiresCondition: heavy-damage + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 7 + Gravity: 60 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1224 + + + +repair_pad.bot: + Inherits: repair_pad + Buildable: + Queue: Building + Prerequisites: heavy_factory, ~techlevel.medium, ~repair_pad.bot + Tooltip: + Name: Repair Pad - bot dummy + D2kBuilding: + Footprint: +++ +=+ =+= + GrantConditionOnBotOwner@enableProximity: + Condition: bot + Bots: omnius, vidious, gladius + ProximityExternalCondition@repairingForbot: + Condition: start_repair + Range: 2c0 + RequiresCondition: bot + ProvidesPrerequisite@buildingname: + Prerequisite: repair_pad + +high_tech_factory: + Inherits@damageVFX: ^DamagedBuildingsVFX + Buildable: + BuildDuration: 610 + Valued: + Cost: 1150 + Health: + HP: 45500 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Armor: + Type: building + RequiresCondition: ArmorUpgrade + RevealsShroud: + Range: 4c768 + Power: + Amount: -100 + ProvidesPrerequisite@ordosprerequisite: + Prerequisite: hightech.ordos + Factions: ordos + SpawnActorOnDeath@bigcrater: + Offset: 0,2 + GrantConditionOnFaction@airstrike: + Condition: atreides + Factions: atreides + GrantConditionOnFaction@reinforcemets: + Condition: ordos + Factions: ordos + GrantConditionOnFaction@harkonnendropship: + Condition: corrino + Factions: corrino + GrantConditionOnFaction@Corrinodropship: + Condition: harkonnen + Factions: harkonnen + GrantConditionOnFaction@basicReinforcements: + Condition: basic_reinforcements + Factions: smuggler, mercenary, fremen + -AirstrikePower: + SpawnActorPower@ordosLightStrike: + Icon: lightStrike + Name: Light Air Strike + Prerequisites: ~techlevel.superweapons, upgrade.hightech + ChargeInterval: 6000 + Description: Ornithopters hit the target with MG guns + DisplayBeacon: True + SupportPowerPaletteOrder: 15 + EndChargeTextNotification: Airstrike ready. + SelectTargetTextNotification: Select target. + OrderName: LightAirstrikePowerInfoOrder + RequiresCondition: ordos + EffectImage: carryall.husk_on_land + EffectSequence: + Actor: waypoint.airtstrike_o + LifeTime: -1 + DisplayRadarPing: true + SpawnActorPower@BasicReinforce: + EffectImage: carryall.husk_on_land + EffectSequence: + Actor: waypoint.reinforce_o + Icon: infantry_reinforcement + Prerequisites: ~techlevel.superweapons, upgrade.hightech, ~factions.subfaction_allowed + ChargeInterval: 4500 + LifeTime: 2000 + Name: Infantry Reinforcements + Description: Calls in a carryall to deploy elite squad\n at target location. + EndChargeSpeechNotification: Reinforce + SupportPowerPaletteOrder: 50 + DisplayBeacon: True + OrderName: ordos_reinforcements + DisplayRadarPing: true + RequiresCondition: basic_reinforcements + SpawnActorPower@EnhancedAirAtreides: + EffectImage: carryall.husk_on_land + EffectSequence: + Actor: waypoint.airtstrike_a + Icon: ornistrike + Prerequisites: ~techlevel.superweapons, upgrade.hightech + ChargeInterval: 7000 + LifeTime: -1 + Name: Airstrike with multiple pass + Description: Ornithopters hit the target multiple times with bombs + EndChargeSpeechNotification: Reinforce + SupportPowerPaletteOrder: 50 + DisplayBeacon: True + DisplayRadarPing: true + OrderName: Airstrike_atreidis.multipass + RequiresCondition: atreides + SpawnActorPower@CorrinoTrueSayer: + EffectImage: frigate.harkonnen + EffectSequence: + Actor: dummy.true_sayer + Icon: true_sayer + Prerequisites: ~techlevel.superweapons, upgrade.hightech, ~factions.subfaction_allowed + ChargeInterval: 4300 + LifeTime: 500 + StartFullyCharged: false + DeploySound: audio/true_sayer.wav + LaunchSound: audio/true_sayer.wav + Name: Emperor's True Sayer + Description: Reveal target Area + SupportPowerPaletteOrder: 60 + DisplayBeacon: True + DisplayRadarPing: true + OrderName: corrino_reinforcements + RequiresCondition: corrino + SpawnActorPower@enhancedAirHarkonnen: + EffectImage: frigate.harkonnen + EffectSequence: + Actor: waypoint.reinforce_h + Icon: sardaukarFleet + Prerequisites: ~techlevel.superweapons, upgrade.hightech + ChargeInterval: 5200 + LifeTime: 1000 + StartFullyCharged: false + Name: Harkonnen Armorred Dropship + Description: Armorred Drop ship that drop reinforcements in targeted area + EndChargeSpeechNotification: Reinforce + SupportPowerPaletteOrder: 60 + DisplayBeacon: True + OrderName: harkonnen_reinforcements + RequiresCondition: harkonnen + ProvidesPrerequisite@enableupgradeStandard_enhancedAir: + Prerequisite: hightech.enableupgrade + Factions: atreides, ordos, harkonnen, corrino + ProvidesPrerequisite@enableupgradeSubfaction: + Prerequisite: hightech.enableupgrade + RequiresPrerequisites: ~factions.subfaction_allowed + Factions: mercenary, smuggler, fremen, corrino + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 500, -800, 0 + WithIdleOverlay@Burns1_atreides: + Offset: 1100, 500, 0 + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: 400,-150,0 + -FloatingSpriteEmitter@smoke2_small_harkonnen: + WithIdleOverlay@Burns1_harkonnen: + Offset: -100, 350,0 + -WithIdleOverlay@Burns2_harkonnen: + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: 500, -200, 0 + Gravity: 70 + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: 0, -800, 0 + SpawnFrequency: 3, 13 + WithIdleOverlay@Burns1_ordos: + Offset: 0, 450, 0 + -WithIdleOverlay@Burns2_ordos: + + +research_centre: + Inherits@IDISABLE: ^DisableOnLowPower + Buildable: + BuildDuration: 650 + Prerequisites: outpost, heavy_factory, ~techlevel.high + Valued: + Cost: 1600 + Health: + HP: 29000 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Armor: + Type: building + RequiresCondition: ArmorUpgrade + RevealsShroud: + Range: 4c768 + Power: + Amount: -75 + RenderSprites: + Image: research.ordos + FactionImages: + atreides: research.atreides + fremen: research.atreides + harkonnen: research.harkonnen + corrino: research.harkonnen + smuggler: research.smuggler + ProduceActorPower@saboteur: + Name: Recruit Saboteur + Description: Sneaky infantry, pernamently cloak\n Can be detected by Outpost: 6 cell, Turrets: 3 cells, infantry: 2 cells\n Special Ability: Destroy buildings \n selfkill ability: mass blast damage everthing in 6 cell Radius + Icon: saboteur + PauseOnCondition: disabled + Prerequisites: ~techlevel.superweapons, upgrade.research, barracks, ~!factions.standard + Actors: saboteur + Type: Infantry + ChargeInterval: 2250 + ReadyAudio: Reinforce + BlockedAudio: NoRoom + OrderName: ProduceActorPower.Saboteursubfaction + SupportPowerPaletteOrder: 30 + ProvidesPrerequisite@saboteur: + Prerequisite: research_centre.smuggler + Factions: smuggler + GrantConditionOnPrerequisite@smugglertech: + Condition: smugglertech + Prerequisites: merged.smuggler + GrantCondition@smuggler: + Condition: enable_saboteur + GrantPermanently: true + RequiresCondition: smugglertech + ProvidesPrerequisite@smuglglertech: + RequiresCondition: enable_saboteur + Prerequisite: research_centre.smuggler + GrantConditionOnDamageState@heavyDamage: + Condition: heavy-damage + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 512, 0, 0 + Speed: 10 + SpawnFrequency: 3,6 + RequiresCondition: heavy-damage + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Gravity: 60 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1224 + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: 300, -1500, 0 + RequiresCondition: heavy-damage + Palette: smoke3 + Image: smoke3 + Lifetime: 15, 20 + Speed: 3 + Gravity: 50 + SpawnFrequency: 4, 15 + RandomFacing: true + RandomRate: 4 + TurnRate: 3 + Duration: 1024 + WithIdleOverlay@Burns1_atreides: + Offset: -300, 500, 0 + RequiresCondition: heavy-damage + Image: fire + Sequence: 1 + IsDecoration: True + + +palace: + Inherits: ^Building + Inherits@PRIMARY: ^PrimaryBuilding + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + Inherits@damageVFX: ^DamagedBuildingsVFX + Buildable: + Prerequisites: research_centre, ~techlevel.high, ~!factions.subfaction_allowed + Queue: Building + BuildPaletteOrder: 620 + BuildDuration: 937 + BuildDurationModifier: 100 + Description: Unlocks elite infantry and weapons. + Selectable: + Bounds: 3072, 3072 + Valued: + Cost: 1600 + Tooltip: + Name: Palace + D2kBuilding: + Footprint: xx= xxx =xx + Dimensions: 3,3 + Health: + HP: 35000 + HitShape: + Type: Rectangle + TopLeft: -1536, -512 + BottomRight: 1536, 512 + HitShape@TOP: + Type: Rectangle + TopLeft: -1536, -1536 + BottomRight: 512, -512 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -512, 512 + BottomRight: 1536, 1536 + Armor: + Type: cy + RevealsShroud: + Range: 4c768 + RenderSprites: + Image: palace.ordos + FactionImages: + atreides: palace.atreides + fremen: palace.atreides + harkonnen: palace.harkonnen + corrino: palace.corrino + WithBuildingBib: + HasMinibib: True + WithSupportPowerActivationOverlay: + RequiresCondition: !build-incomplete && !launchpad-damaged && harkonnen + GrantConditionOnDamageState@LAUNCHPADDAMAGED: + Condition: launchpad-damaged + Power: + Amount: -200 + RallyPoint: + ProvidesPrerequisite@nuke: + Prerequisite: palace.nuke + Factions: harkonnen + ProvidesPrerequisite@fremen: + Prerequisite: palace.fremen + Factions: atreides + ProvidesPrerequisite@saboteur: + Prerequisite: palace.saboteur + Factions: ordos + ProvidesPrerequisite@sardaukar: + Prerequisite: palace.sardaukar + Factions: corrino + PrimaryBuilding: + ProductionQueues: Fremen, Saboteur + RequiresCondition: atreides || ordos + WithTextDecoration@primary: + RequiresCondition: primary && (atreides || ordos) + NukePower: + Cursor: nuke + Icon: deathhand + PauseOnCondition: disabled + MissileDelay: 18 + DetonationAltitude: 6c0 + RequiresCondition: harkonnen + RemoveMissileOnDetonation: True + Prerequisites: ~techlevel.superweapons, ~palace.nuke + ChargeInterval: 7600 + Name: Death Hand + Description: Excellent VS Infantry, light vehicles, Turrets \n Weak vs Tanks, Buildings + BeginChargeSpeechNotification: DeathHandMissilePrepping + EndChargeSpeechNotification: DeathHandMissileReady + IncomingSpeechNotification: MissileLaunchDetected + MissileWeapon: deathhand + SpawnOffset: 32,816,0 + DisplayBeacon: True + DisplayRadarPing: True + CameraRange: 9c0 + CameraRemoveDelay: 75 + ArrowSequence: arrow + CircleSequence: circles + FlightVelocity: 384 + TrailInterval: 0 + TrailImage: large_trail + TrailSequences: idle + SupportPowerPaletteOrder: 40 + MissileImage: deathhand + ProduceActorPower@fremen: + Name: Recruit Fremen + Description: Elite infantry unit armed with assault rifles and rockets\n Strong vs Infantry, Vehicles\n Weak vs Artillery\n Special Ability: Invisibility + Icon: fremen + PauseOnCondition: disabled + RequiresCondition: atreides + Prerequisites: ~techlevel.superweapons, ~palace.fremen, ~factions.standard + Actors: fremen, fremen, fremen, fremen + Type: Fremen + ChargeInterval: 2850 + ReadyAudio: Reinforce + BlockedAudio: NoRoom + OrderName: ProduceActorPower.Fremen + SupportPowerPaletteOrder: 20 + ProduceActorPower@Officer: + Name: Recruit Officer + Description: Officer provides speed and armor bonus to nearby infantry \n Disable prone effect on infantry + Actors: officer + Type: Infantry + ChargeInterval: 2500 + Icon: officer + PauseOnCondition: disabled + RequiresCondition: atreides + Prerequisites: ~techlevel.superweapons, ~factions.merged, ~palace.fremen + ReadyAudio: Reinforce + BlockedAudio: NoRoom + OrderName: ProduceActorPower.officerMerged + SupportPowerPaletteOrder: 25 + ProduceActorPower@saboteur: + Name: Recruit Saboteur + Description: Sneaky infantry, armed with explosives\n Strong vs Buildings\n Weak vs Everything\n Special Ability: destroy buildings + Icon: saboteur + PauseOnCondition: disabled + RequiresCondition: ordos + Prerequisites: ~techlevel.superweapons, ~palace.saboteur, ~factions.standard + Actors: saboteur + Type: Saboteur + ChargeInterval: 2200 + ReadyAudio: Reinforce + BlockedAudio: NoRoom + OrderName: ProduceActorPower.Saboteur + SupportPowerPaletteOrder: 30 + AirstrikePower@chaosbombMerged: + Icon: gascloud + Name: Chaos bomb + ChargeInterval: 7500 + SquadSize: 1 + StartFullyCharged: false + PauseOnCondition: disabled + Prerequisites: ~techlevel.high, ~palace.saboteur, ~factions.merged + Description: Carryall with bomb that force units to kill each other. + UnitType: carryall.bomber + DisplayBeacon: True + CameraActor: camera + CameraRemoveDelay: 75 + ArrowSequence: arrow + UseDirectionalTarget: True + DirectionArrowAnimation: airstrike_direction + CircleSequence: circles + SupportPowerPaletteOrder: 35 + OrderName: Orderproduction.chaosbombmerged + Exit@1: + SpawnOffset: -704,768,0 + ExitCell: -1,2 + Exit@2: + SpawnOffset: -704,768,0 + ExitCell: -1,3 + Exit@3: + SpawnOffset: -704,768,0 + ExitCell: 0,3 + Production@Atreides: + Produces: Fremen + RequiresCondition: atreides + Production@OfficerSpawn: + Produces: Officer + RequiresCondition: atreides + Production@Ordos: + Produces: Saboteur + RequiresCondition: ordos + GrantConditionOnFaction@Atreides: + Condition: atreides + Factions: atreides, fremen + GrantConditionOnFaction@Harkonnen: + Condition: harkonnen + Factions: harkonnen + GrantConditionOnFaction@Ordos: + Condition: ordos + Factions: ordos, mercenary, smuggler + SupportPowerChargeBar: + RequiresCondition: atreides || harkonnen || ordos + ProvidesPrerequisite@buildingname: + FloatingSpriteEmitter@smoke_huge_atreides: + Offset: 1000, -600, 0 + Gravity: 70 + FloatingSpriteEmitter@smoke2_small_atreides: + Offset: -300, -2000, 0 + SpawnFrequency: 2,6 + Speed: 10 + WithIdleOverlay@Burns1_atreides: + Offset: -200, 800, 0 + WithIdleOverlay@Burns2_atreides: + Offset: 3048, -350, 0 + Sequence: 4 + FloatingSpriteEmitter@smoke_huge_harkonnen: + Offset: 600,-200,0 + FloatingSpriteEmitter@smoke2_small_harkonnen: + Offset: -100, -660,0 + WithIdleOverlay@Burns1_harkonnen: + Offset: -300, 512,0 + WithIdleOverlay@Burns2_harkonnen: + Offset: 1700, -100,0 + FloatingSpriteEmitter@smoke_huge_ordos: + Offset: 800,0,0 + FloatingSpriteEmitter@smoke2_small_ordos: + Offset: -150, -1200,0 + WithIdleOverlay@Burns1_ordos: + Offset: -500, 750,0 + WithIdleOverlay@Burns2_ordos: + Offset: 2450, -200,0 + +palace.harkonnen: + Inherits: ^Building + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + Valued: + Cost: 2000 + Health: + HP: 35000 + Armor: + Type: cy + RevealsShroud: + Range: 4c768 + Power: + Amount: -200 + Buildable: + Prerequisites: research_centre, ~techlevel.high, ~factions.subfaction_allowed, ~conyard.harkonnen + Queue: Building + BuildPaletteOrder: 620 + BuildDuration: 937 + BuildDurationModifier: 100 + Description: Unlocks elite infantry and weapons. + Selectable: + Bounds: 3072, 3072 + Tooltip: + Name: Harkonnen Palace + D2kBuilding: + Footprint: xx= xxx =xx + Dimensions: 3,3 + Health: + HP: 35000 + HitShape: + Type: Rectangle + TopLeft: -1536, -512 + BottomRight: 1536, 512 + HitShape@TOP: + Type: Rectangle + TopLeft: -1536, -1536 + BottomRight: 512, -512 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -512, 512 + BottomRight: 1536, 1536 + RenderSprites: + Image: palace.harkonnen + WithBuildingBib: + HasMinibib: True + WithSupportPowerActivationOverlay: + RequiresCondition: !build-incomplete && !launchpad-damaged + GrantConditionOnDamageState@LAUNCHPADDAMAGED: + Condition: launchpad-damaged + ProvidesPrerequisite@nuke: + Prerequisite: palace.nuke + Factions: harkonnen + NukePower: + LaunchSound: audio/death_hand_launch_1.wav + Cursor: nuke + Icon: deathhand + ChargeInterval: 7600 + MissileWeapon: deathhand + MissileDelay: 18 + Name: Death Hand \n Excellent VS Infantry, light vehicles, Turrets ;n Weak vs Tanks, Buildings + SpawnOffset: 32,816,0 + DetonationAltitude: 6c0 + RemoveMissileOnDetonation: True + FlightVelocity: 384 + TrailInterval: 0 + TrailImage: large_trail + TrailSequences: idle + CameraRemoveDelay: 80 + PauseOnCondition: disabled + Description: Launches an atomic missile at a target location + BeginChargeSpeechNotification: DeathHandMissilePrepping + EndChargeSpeechNotification: DeathHandMissileReady + IncomingSpeechNotification: MissileLaunchDetected + DisplayBeacon: True + DisplayRadarPing: True + CameraRange: 10c0 + ArrowSequence: arrow + SupportPowerPaletteOrder: 40 + MissileImage: deathhand + SupportPowerChargeBar: + ProvidesPrerequisite@buildingname: + +palace.atreides: + Inherits: ^Building + Inherits@PRIMARY: ^PrimaryBuilding + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + PrimaryBuilding: + ProductionQueues: Officer + Buildable: + Prerequisites: research_centre, ~techlevel.high, ~factions.subfaction_allowed, ~conyard.atreides + Queue: Building + BuildPaletteOrder: 620 + BuildDuration: 937 + BuildDurationModifier: 100 + Description: Unlocks elite infantry and weapons. + Selectable: + Bounds: 3072, 3072 + RallyPoint: + Valued: + Cost: 2000 + Tooltip: + Name: Atreides Palace + D2kBuilding: + Footprint: xx= xxx =xx + Dimensions: 3,3 + Health: + HP: 35000 + HitShape: + Type: Rectangle + TopLeft: -1536, -512 + BottomRight: 1536, 512 + HitShape@TOP: + Type: Rectangle + TopLeft: -1536, -1536 + BottomRight: 512, -512 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -512, 512 + BottomRight: 1536, 1536 + RenderSprites: + Image: palace.atreides + FactionImages: + WithBuildingBib: + HasMinibib: True + Power: + Amount: -200 + Exit@1: + SpawnOffset: -704,768,0 + ExitCell: -1,2 + Exit@2: + SpawnOffset: -704,768,0 + ExitCell: -1,3 + Exit@3: + SpawnOffset: -704,768,0 + ExitCell: 0,3 + RevealsShroud: + Range: 4c768 + ProduceActorPower@Officer: + Name: Recruit Officer + Description: Officer provides speed and armor bonus to nearby infantry \n Disable prone effect on infantry + Actors: officer + Type: Officer + ChargeInterval: 2500 + Icon: officer + PauseOnCondition: disabled + Prerequisites: ~techlevel.superweapons, ~factions.subfaction_allowed + ReadyAudio: Reinforce + BlockedAudio: NoRoom + OrderName: ProduceActorPower.officer + SupportPowerPaletteOrder: 25 + Production@Atreides: + Produces: Officer + SupportPowerChargeBar: + ProvidesPrerequisite@buildingname: + + +palace.ordos: + Inherits: ^Building + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + Buildable: + Prerequisites: research_centre, ~techlevel.high, ~factions.subfaction_allowed, ~conyard.ordos + Queue: Building + BuildPaletteOrder: 620 + BuildDuration: 937 + BuildDurationModifier: 100 + Description: Unlocks elite infantry and weapons. + Selectable: + Bounds: 3072, 3072 + Valued: + Cost: 2000 + Tooltip: + Name: Ordos Palace + D2kBuilding: + Footprint: xx= xxx =xx + Dimensions: 3,3 + Health: + HP: 35000 + HitShape: + Type: Rectangle + TopLeft: -1536, -512 + BottomRight: 1536, 512 + HitShape@TOP: + Type: Rectangle + TopLeft: -1536, -1536 + BottomRight: 512, -512 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -512, 512 + BottomRight: 1536, 1536 + Armor: + Type: cy + RevealsShroud: + Range: 4c768 + WithBuildingBib: + HasMinibib: True + Power: + Amount: -200 + SupportPowerChargeBar: + Production: + Produces: Building, Elite + AirstrikePower@chaosbomb: + Icon: gascloud + Name: Chaos bomb + ChargeInterval: 7500 + SquadSize: 1 + StartFullyCharged: false + Prerequisites: ~techlevel.high + Description: Carryall will drop bomb that force units to kill each other. + UnitType: carryall.bomber + DisplayBeacon: True + CameraActor: camera + CameraRemoveDelay: 75 + PauseOnCondition: disabled + ArrowSequence: arrow + UseDirectionalTarget: True + DirectionArrowAnimation: airstrike_direction + CircleSequence: circles + SupportPowerPaletteOrder: 80 + OrderName: Orderproduction.chaosbomb + ProvidesPrerequisite@buildingname: + + +palace.corrino: + Inherits: ^Building + Inherits@PRIMARY: ^PrimaryBuilding + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + Inherits@AUTOTARGET: ^AutoTargetGround + PrimaryBuilding: + ProductionQueues: Saudarkar + Buildable: + Prerequisites: research_centre, ~techlevel.high, ~conyard.corrino, ~factions.subfaction_allowed + Queue: Building + BuildPaletteOrder: 620 + BuildDuration: 937 + BuildDurationModifier: 100 + Description: Unlocks elite infantry + Selectable: + Bounds: 3072, 3072 + Valued: + Cost: 2000 + Tooltip: + Name: Palace Corrino + D2kBuilding: + Footprint: xxx xxx === + Dimensions: 3,3 + Health: + HP: 35000 + HitShape: + Type: Rectangle + TopLeft: -1536, -512 + BottomRight: 1536, 512 + HitShape@TOP: + Type: Rectangle + TopLeft: -1536, -1536 + BottomRight: 1536, -512 + Armor: + Type: cy + RevealsShroud: + Range: 4c768 + WithBuildingBib: + HasMinibib: True + Power: + Amount: -200 + Exit@1: + SpawnOffset: 544,-224,0 + ExitCell: 2,1 + Exit@2: + SpawnOffset: 544,-224,0 + ExitCell: 2,2 + Exit@3: + SpawnOffset: 544,-224,0 + ExitCell: 1,0 + ProvidesPrerequisite@buildingname: + ProduceActorPower@releasethesardaukars: + Name: Rally Sardaukars + Description: Speed up Sardaukars production for short period of time \n Movement speed up for shortperiod of time \n + Actors: dummy.sardaukar_production_speed_up + Type: Saudarkar + ChargeInterval: 5500 + Icon: sardaukarVeterancy + PauseOnCondition: disabled + Prerequisites: ~techlevel.superweapons, ~factions.subfaction_allowed + ReadyAudio: Reinforce + StartFullyCharged: false + LaunchSound: audio/HI_releaseTheSardaukar01.wav + BlockedAudio: NoRoom + LaunchSpeechNotification: release_sardaukars + OrderName: Orderproduction.sardaukar + SupportPowerPaletteOrder: 25 + Production@Saudarkar: + Produces: Saudarkar + Armament: + FireDelay: 5 + Weapon: clusterMissile.palace + LocalOffset: -100,0,1024, -100,100,1024, -100,200,1024 + AttackTurreted: + PauseOnCondition: disabled + FacingTolerance: 128 + Turreted: + TurnSpeed: 50 + +fremen_sietch: + Inherits: ^Building + Inherits@primary: ^PrimaryBuilding + -D2kBuilding: + WithBuildingBib: + Buildable: + Queue: Building + BuildPaletteOrder: 630 + BuildDuration: 937 + BuildDurationModifier: 100 + Prerequisites: research_centre, ~techlevel.high, ~conyard.fremen, ~factions.subfaction_allowed + SpawnActorsOnSell: + ActorTypes: nsfremen + Valued: + Cost: 1800 + RevealsShroud: + Range: 4c768 + HitShape: + Type: Rectangle + TopLeft: -1536, -512 + BottomRight: 1536, 512 + HitShape@TOP: + Type: Rectangle + TopLeft: -536, -1536 + BottomRight: 512, -512 + HitShape@BOTTOM: + Type: Rectangle + TopLeft: -512, 512 + BottomRight: 1536, 1536 + Building: + Footprint: =x= xxx =xx + Dimensions: 3,3 + TerrainTypes: Rock, Concrete + BuildSounds: BUILD1.WAV + RallyPoint: + Tooltip: + Name: Sietch + Health: + HP: 35000 + Armor: + Type: cy + Selectable: + Bounds: 3072, 3072 + Exit@1: + SpawnOffset: -704,1024,0 + ExitCell: -1,2 + Exit@2: + SpawnOffset: -704,1024,0 + ExitCell: -1,3 + SpawnActorPower@wormrider: + EffectImage: Carryall + Actor: worm_rider + Name: Worm rider + Description: Deploy Wormride who can invocate and ride worm + ChargeInterval: 6700 + LifeTime: -1 + Icon: sandworm + StartFullyCharged: false + Prerequisites: ~techlevel.high + SupportPowerPaletteOrder: 90 + OrderName: SpawnActorPowerInfoOrder.wormride + Production@wormriderproduction: + Produces: Fremen + + +upgrade.conyard: + Buildable: + BuildDuration: 1400 + Prerequisites: construction_yard, outpost, ~!choosefaction + Description: UPGRADE BUILDINGS ARMOR!!! \n Unlock Rocket Turret + Valued: + Cost: 1000 + +upgrade.barracks: + Buildable: + Prerequisites: barracks, ~!choosefaction + BuildDuration: 900 + Valued: + Cost: 400 + RenderSprites: + Image: barracks.ordos + FactionImages: + atreides: barracks.atreides + fremen: barracks.fremen + harkonnen: barracks.harkonnen + corrino: barracks.corrino + mercenary: barracks.smuggler + +upgrade.light: + Buildable: + Prerequisites: light_factory, ~!choosefaction + BuildDuration: 1000 + Valued: + Cost: 600 + +upgrade.heavy: + Buildable: + Prerequisites: heavy_factory, ~!choosefaction + BuildDuration: 1200 + Valued: + Cost: 1000 + +upgrade.outpost: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Outpost upgrade + Buildable: + BuildPaletteOrder: 80 + Prerequisites: ~outpost.smuggler, ~!choosefaction,~factions.subfaction_allowed, high_tech_factory, ~techlevel.superweapons + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1500 + BuildDurationModifier: 100 + Description: Unlocks Jam ability + Valued: + Cost: 1500 + RenderSprites: + Image: outpost.ordos + ProvidesPrerequisite@upgradename: + +merged_upgrade.outpost: + Inherits: upgrade.outpost + RenderSprites: + Image: outpost.ordos + Buildable: + Prerequisites: ~outpost, ~!choosefaction,~merged.smuggler,~factions.merged, ~techlevel.superweapons + ProvidesPrerequisite@enablejammer: + Prerequisite: upgrade.outpost + +upgrade.outpost_fremen: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Fremen Outpost ugrade + Buildable: + BuildPaletteOrder: 80 + Prerequisites: ~!choosefaction, ~outpost.fremen, ~!factions.standard, ~techlevel.superweapons + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1500 + BuildDurationModifier: 100 + Description: Unlocks Hide ability + Valued: + Cost: 1200 + RenderSprites: + Image: outpost.atreides + ProvidesPrerequisite@upgradename: + +upgrade.research: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Research center ungrade + Buildable: + BuildPaletteOrder: 50 + Prerequisites: ~!choosefaction, ~research_centre.smuggler, ~!factions.standard, ~techlevel.high + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 937 + BuildDurationModifier: 100 + Description: Unlocks Saboteur + Valued: + Cost: 1500 + RenderSprites: + Image: research.smuggler + ProvidesPrerequisite@upgradename: + +upgrade.starport: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Starport upgrade + Buildable: + BuildPaletteOrder: 50 + Prerequisites: ~!choosefaction, ~starport.mercenary, ~factions.subfaction_allowed, ~techlevel.high + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 937 + BuildDurationModifier: 100 + Description: Unlocks Contractors + Valued: + Cost: 1500 + RenderSprites: + Image: starport.mercenary + ProvidesPrerequisite@upgradename: + +merged_upgrade.starport: + Inherits: upgrade.starport + RenderSprites: + Image: starport.mercenary + Buildable: + Prerequisites: ~starport, ~!choosefaction, ~merged.mercenary,~factions.merged, merged.mercenary_factory, ~techlevel.superweapons + ProvidesPrerequisite@enablecontractors: + Prerequisite: upgrade.starport + +upgrade.hightech: + Buildable: + Prerequisites: ~!choosefaction, ~hightech.enableupgrade, ~techlevel.superweapons + BuildDuration: 1500 + Description: Unlocks Hight tech Support powers + Valued: + Cost: 1200 + RenderSprites: + Image: hightech.atreides + FactionImages: + ordos: hightech.ordos + harkonnen: hightech.harkonnen + +sietch: + -GrantRandomCondition@randomFX: + -Explodes@02: + -Explodes@03: + -Explodes@sabotuerdemolition: + -Demolishable: + Demolishable@testfix: + Condition: being-demolished + Building: + Footprint: xx xx + Dimensions: 2,2 + TerrainTypes: Cliff + +merged.fremen_sietch: + Inherits: fremen_sietch + Buildable: + Prerequisites: research_centre, ~merged.fremen, ~techlevel.high, ~factions.merged + RenderSprites: + Image: fremen_sietch + ProvidesPrerequisite@name: + ProvidesPrerequisite@frementech: + Prerequisite: merged.fremen + +merged.corrino_palace: + Inherits: palace.corrino + Buildable: + Prerequisites: research_centre, ~merged.corrino, ~techlevel.high, ~factions.merged + RenderSprites: + Image: palace.corrino + -ProduceActorPower@releasethesardaukars: + ProvidesPrerequisite@name: + Production: + Produces: palace_corinno + RallyPoint: + ProvidesPrerequisite@corrinotech: + Prerequisite: merged.corrino + SpawnActorPower@CorrinoTrueSayer: + EffectImage: frigate.harkonnen + EffectSequence: + Actor: dummy.true_sayer + Icon: true_sayer + Prerequisites: ~techlevel.superweapons, factions.merged + ChargeInterval: 3900 + LifeTime: 500 + StartFullyCharged: false + DeploySound: audio/true_sayer.wav + LaunchSound: audio/true_sayer.wav + Name: Emperor's True Sayer + Description: Reveal target Area + SupportPowerPaletteOrder: 60 + DisplayBeacon: True + OrderName: corrino.true_sayer + DisplayRadarPing: true + +merged.starport: + Inherits: starport + Buildable: + Prerequisites: heavy_factory, outpost, ~techlevel.high, ~factions.merged, ~!merged.smuggler + RenderSprites: + Image: starport.ordos + FactionImages: + atreides: starport.atreides + fremen: starport.atreides + harkonnen: starport.harkonnen + corrino: starport.harkonnen + smuggler: starport.smuggler + mercenary: starport.mercenary + ProvidesPrerequisite@justincase: + Prerequisite: starport + + +merged.starport_smuggler: + Inherits: starport + Buildable: + Prerequisites: heavy_factory, outpost, ~techlevel.high, ~factions.merged, ~merged.smuggler + RenderSprites: + Image: starport.smuggler + FactionImages: + atreides: starport.smuggler + fremen: starport.smuggler + harkonnen: starport.smuggler + corrino: starport.smuggler + smuggler: starport.smuggler + mercenary: starport.smuggler + Tooltip: + Name: Smugglers Starport + ProvidesPrerequisite@smugglerstarportmerged: + Prerequisite: starport.smuggler + ProvidesPrerequisite@default: + Prerequisite: starport + ProvidesPrerequisite@smugllertech: + Prerequisite: merged.smuggler + + + +merged.mercenary_factory: + Inherits: heavy_factory + Buildable: + BuildDuration: 750 + Prerequisites: refinery, ~merged.mercenary + Queue: Building + BuildPaletteOrder: 630 + BuildDurationModifier: 100 + Description: Produces mercenary vehicles + Tooltip: + Name: Mercenary Heavy factory + RenderSprites: + Image: heavy.mercenary + FactionImages: + atreides: heavy.mercenary + fremen: heavy.mercenary + harkonnen: heavy.mercenary + corrino: heavy.mercenary + mercenary: heavy.mercenary + ProvidesPrerequisite@actorsname: + ProvidesPrerequisite@mercenarytech: + Prerequisite: merged.mercenary + ProvidesPrerequisite@buildingname: + Prerequisite: heavy_factory diff --git a/mods/d2k/maps/01scriptrework/Enhanced_Units09.yaml b/mods/d2k/maps/01scriptrework/Enhanced_Units09.yaml new file mode 100644 index 000000000000..0505359580e6 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_Units09.yaml @@ -0,0 +1,2596 @@ +^AutoTargetGround: + AutoTarget: + AttackAnythingCondition: stance-attackanything + AutoTargetPriority@DEFAULT: + ValidTargets: Infantry, Vehicle, Water, Defense, Tank + AutoTargetPriority@ATTACKANYTHING: + ValidTargets: Infantry, Vehicle, Water, Structure, Defense, Tank + AutoTargetPriority@CREEPS: + ValidTargets: Creep + +^AutoTargetAll: + AutoTarget: + AttackAnythingCondition: stance-attackanything + AutoTargetPriority@DEFAULT: + RequiresCondition: !stance-attackanything + ValidTargets: Infantry, Vehicle, Tank, Water, Air, Defense + AutoTargetPriority@ATTACKANYTHING: + RequiresCondition: stance-attackanything + ValidTargets: Infantry, Vehicle, Tank, Water, Air, Structure, Defense + AutoTargetPriority@CREEPS: + ValidTargets: Creep + +^AutoTargetGroundAssaultMove: + AutoTargetPriority@Bot_walls: + RequiresCondition: ignore-creeps + ValidTargets: Wall + +^AutoTargetAllAssaultMove: + AutoTargetPriority@Bot_walls: + RequiresCondition: ignore-creeps + ValidTargets: Wall + +^temporarycloak: + ExternalCondition@temporeryclock: + Condition: temporery_clock + Cloak@temporeryclock: + RequiresCondition: temporery_clock + UncloakOn: Attack, Unload, Infiltrate, Demolish, Dock, Damage, Heal + InitialDelay: 10 + CloakDelay: 30 + IsPlayerPalette: true + +^chaos_bomb_influence: + ExternalCondition@Trigger: + Condition: chaos_bomb + Armament@chaos_bomb_influence: + TargetRelationships: Enemy, Ally, Neutral + RequiresCondition: chaos_bomb + AttackWander: + WanderMoveRadius: 3 + RequiresCondition: chaos_bomb + RejectsOrders@chaos_bomb_influence: + RequiresCondition: chaos_bomb + WithDecoration@skullFromRA: + Image: pips + Sequence: pip-skull + Palette: temperat + Position: TopLeft + ValidRelationships: Ally, Enemy, Neutral + RequiresCondition: chaos_bomb + +^jammedvision: + ExternalCondition@jammed: + Condition: jammed + ReloadDelayMultiplier@jammer: + Modifier: 120 + RequiresCondition: jammed + InaccuracyMultiplier@jammer: + Modifier: 170 + RequiresCondition: jammed + RangeMultiplier@jammer: + Modifier: 60 + RequiresCondition: jammed + RevealsShroud: + RevealGeneratedShroud: false + RevealsShroud@jammed: + Range: 3c512 + RevealGeneratedShroud: true + WithColoredOverlay@black: + Color: 3E202080 + RequiresCondition: jammed + WithDecoration@skullFromRA: + Image: pips + Sequence: pip-jammer + Palette: disabled + Position: TopLeft + ValidRelationships: Ally, Enemy, Neutral + RequiresCondition: jammed + +^BotLogicEngineer: + ExternalCondition@giveControl: + Condition: reject_control + ScriptTags: + RejectsOrders: + RequiresCondition: reject_control + +^BotLogicRepairing: + ExternalCondition@giveControl: + Condition: reject_control + ExternalCondition@startrepair: + Condition: start_repair + ScriptTags: + RejectsOrders: + RequiresCondition: reject_control + RejectsOrders@rejectOnRepairPad: + RequiresCondition: repairing + GrantConditionOnDamageState@fullyrepaird: + Condition: full_hp + ValidDamageStates: Undamaged + GrantCondition: + RequiresCondition: start_repair && !full_hp + Condition: repairing + ChangesHealth@BotRepairing: + Step: 800 + Delay: 10 + StartIfBelow: 105 + RequiresCondition: start_repair + +^botDeployLogic: + GrantConditionOnBotOwner@Imstupidbotthatcandeploy: + Condition: Imbot + Bots: omnius, vidious, gladius + GrantConditionOnAttack@deploing: + Condition: dummyfire + RevokeDelay: 400 + ArmamentNames: secondary + RequiresCondition: Imbot + GrantConditionOnAttack@beforedeploy: + Condition: beforedeploy + RevokeDelay: 40 + ArmamentNames: primary + RequiresCondition: Imbot + GrantCondition@deploythrowattack: + Condition: deployed + RequiresCondition: dummyfire + Armament@botAiming: + Weapon: dummy_aim + FireDelay: 40 + Name: secondary + PauseOnCondition: deployed + RequiresCondition: Imbot + Armament@botAiming2: + Weapon: dummy_aim2 + FireDelay: 0 + Name: primary + PauseOnCondition: deployed + RequiresCondition: Imbot + WithIdleOverlay@botdeployanim: + Sequence: deploying + RequiresCondition: beforedeploy && !deployed + PauseOnCondition: dummyfire + AmbientSound@botdeploysound: + SoundFiles: audio/EBoD_MortarDeploy.wav + Interval: 100 + Delay: 2 + RequiresCondition: beforedeploy && !deployed + RejectsOrders@noundeploy: + Reject: AttackMove, AssaultMove + RequiresCondition: !Imbot && deployed + +^GainsExperience: + ChangesHealth@ELITE: + Step: 0 + PercentageStep: 4 + Delay: 125 + StartIfBelow: 100 + DamageCooldown: 125 + RequiresCondition: rank-veteran >= 3 + +^wormslowing: + ExternalCondition@wormIsnear: + Condition: worm_attack + ExternalCondition@stop: + Condition: stop + SpeedMultiplier@wormeated: + Modifier: 0 + RequiresCondition: stop + SpeedMultiplier@worm_eating: + Modifier: 20 + RequiresCondition: worm_attack + +^CliffAvalanche: + KillsSelf@rockAvalanche: + RequiresCondition: rock_avalanche + DamageTypes: SmallExplosionDeath + ExternalCondition@rockAvalanche: + Condition: rock_avalanche + +^Infantry: + Inherits@rockAvalanche: ^CliffAvalanche + Inherits@temporerycloak: ^temporarycloak + Inherits@jammer: ^jammedvision + Inherits@chaos: ^chaos_bomb_influence + Inherits@wormslowing: ^wormslowing + GrantRandomCondition: + Conditions: inf_cond01, inf_cond02, inf_cond03 + Crushable: + CrushSound: CRUSH1.WAV + RequiresCondition: inf_cond01 + Crushable@2: + CrushSound: audio/crush_guy_2.wav + RequiresCondition: inf_cond02 + Crushable@3: + CrushSound: audio/crush_guy_4.wav + RequiresCondition: inf_cond03 + Crushable@worm: + CrushClasses: worm_dinner + WarnProbability: 0 + CrushedByFriendlies: true + CrushSound: audio/EBoD_normal_dying_3.wav + RequiresCondition: inf_cond01 + Crushable@worm2: + CrushClasses: worm_dinner + WarnProbability: 0 + CrushedByFriendlies: true + CrushSound: CRUSH1.WAV + RequiresCondition: inf_cond02 + Crushable@worm3: + CrushClasses: worm_dinner + WarnProbability: 0 + CrushedByFriendlies: true + CrushSound: audio/EBoD_normal_dying_3.wav + RequiresCondition: inf_cond03 + TurnOnIdle: + WithInfantryBody: + MinIdleDelay: 50 + MaxIdleDelay: 160 + WithDeathAnimation: + DeathTypes: + ExplosionDeath: 1 + SoundDeath: 2 + SmallExplosionDeath: 3 + BulletDeath: 4 + FireDeath: 6, 3 + DeathSounds@choke: + Voice: Choke + DeathTypes: ChokeDeath + VolumeMultiplier: 0.8 + DeathSounds@burn: + Voice: Burn + DeathTypes: FireDeath + VolumeMultiplier: 0.8 + ExternalCondition@bonuses: + Condition: officerAura + SpeedMultiplier@officerAuraspeedBonus: + Modifier: 110 + RequiresCondition: officerAura + DamageMultiplier@officerAuraArmorbonus: + Modifier: 50 + RequiresCondition: officerAura + TakeCover: + RequiresCondition: !officerAura + -HitShape: + HitShape@infantry: + Type: Circle + Radius: 52 + Demolishable@wormCrush: + RevealsShroud@jammed: + Range: 3c112 + + + +^Vehicle: + Inherits@BotRepairLogic: ^BotLogicRepairing + Inherits@rockAvalanche: ^CliffAvalanche + Inherits@chaosbomb: ^chaos_bomb_influence + Inherits@temporerycloak: ^temporarycloak + Inherits@jammer: ^jammedvision + Inherits@wormslowing: ^wormslowing + ExternalCondition: + Condition: unitCapturated + RevealsShroud: + RequiresCondition: !unitCapturated + RevealGeneratedShroud: false + RevealsShroud@whileCaptured: + Range: 3c512 + RequiresCondition: unitCapturated + SpeedMultiplier@HEAVYDAMAGE: + RequiresCondition: heavy-damage + Modifier: 75 + Crushable: + CrushClasses: vehicle + WarnProbability: 0 + CrushedByFriendlies: true + CrushSound: WORM.WAV + Targetable: + TargetTypes: Ground, Vehicle, C4 + RequiresCondition: !unitCapturated + Targetable@CAPTURED: + TargetTypes: CapturedUnit, Ground + RequiresCondition: unitCapturated + + +^Tank: + Targetable: + TargetTypes: Ground, C4, Tank + GrantConditionOnDamageState@HEAVY: + ValidDamageStates: Critical + SpeedMultiplier@HEAVYDAMAGE: + Modifier: 75 + RevealsShroud@jammed: + Range: 4c0 + SpawnActorOnDeath: + SpawnAfterDefeat: false + WithDamageOverlay: + MinimumDamageState: Critical + +mcv: + Valued: + Cost: 2000 + Buildable: + Prerequisites: repair_pad, ~techlevel.medium + Queue: Armor + BuildPaletteOrder: 110 + BuildDuration: 750 + Health: + HP: 45000 + Armor: + Type: light + Mobile: + Speed: 31 + RevealsShroud: + Range: 2c768 + SpawnActorOnDeath: + RequiresCondition: !worm_attack + -Armament@chaos_bomb_influence: + +thumper: + Buildable: + Prerequisites: ~disabled + +harvester: + -Armament@chaos_bomb_influence: + Buildable: + Queue: Armor + Prerequisites: refinery + BuildDuration: 600 + Description: Collects Spice for processing\n Explode after death + Valued: + Cost: 1200 + WithDockingAnimation: + Harvester: + HarvestFacings: 8 + Resources: Spice + BaleUnloadDelay: 6 + SearchFromProcRadius: 30 + SearchFromHarvesterRadius: 15 + EmptyCondition: harvesterEmpty + Health: + HP: 45000 + Mobile: + Speed: 38 + RevealsShroud: + Range: 3c768 + Explodes: + Weapon: UnitExplodeLarge + EmptyWeapon: UnitExplodeLarge + SpawnActorOnDeath: + Actor: harvester.Husk + OwnerType: InternalName + RequiresCondition: !worm_attack && harvesterEmpty + EffectiveOwnerFromOwner: true + SpawnAfterDefeat: false + ThrowsShrapnel@ShrapnelNotEmpty: + Weapons: Debris, Debris2, Debris3, Debris4 + Pieces: 3, 5 + Range: 1c0, 6c0 + RequiresCondition: !harvesterEmpty + ThrowsShrapnel@DeathHandClusterDebris: + Weapons: DeathHandClusterDebris + Pieces: 1, 3 + Range: 1c0, 5c0 + RequiresCondition: !harvesterEmpty + ThrowsShrapnel@ShrapnelEmpty: + Weapons: Debris, Debris2 + Pieces: 0, 2 + Range: 1c0, 6c0 + RequiresCondition: harvesterEmpty + ThrowsShrapnel@throwSpice: + Weapons: HarvesterSpiceExplosion + Pieces: 1, 4 + Range: 1c0, 5c0 + RequiresCondition: !harvesterEmpty + ThrowsShrapnel@wheel: + Weapons: debris_harvester_wheel01, debris_harvester_wheel02 + Pieces: 0, 2 + Range: 3c0, 5c0 + + + +trike: + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: ignore-creeps + Buildable: + Prerequisites: ~light.trike + BuildDuration: 225 + Description: Scout\n Excellent visibility\n Strong vs Infantry\n Weak vs Tanks, Rockets + Valued: + Cost: 300 + Selectable: + Class: trike + Health: + HP: 9000 + Armor: + Type: light + Mobile: + Locomotor: light_vehicle + TurnSpeed: 40 + Speed: 115 + RevealsShroud: + Range: 7c512 + Armament@damage: + FireDelay: 0 + Weapon: HMG + LocalOffset: 180,0,110 + Armament@chaos_bomb_influence: + Weapon: HMG + LocalOffset: 180,0,110 + Armament@muzzle: + FireDelay: 0 + Weapon: HMG_muzzle + LocalOffset: -544,0,0 + MuzzleSequence: muzzle + Armament@muzzlechaosbomb: + FireDelay: 0 + Weapon: HMG_muzzle + LocalOffset: -544,0,0 + MuzzleSequence: muzzle + RequiresCondition: chaos_bomb + TargetRelationships: Enemy, Ally, Neutral + SpeedMultiplier@HEAVYDAMAGE: + RequiresCondition: heavy-damage + Modifier: 75 + RevealsShroud@jammed: + Range: 5c0 + + +raider: + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: ignore-creeps + Buildable: + Prerequisites: ~light.raider + BuildDuration: 225 + Description: Fast scout \n Excellent visibility \n Strong vs Infantry\n Weak vs Tanks, Rockets + Valued: + Cost: 350 + Tooltip: + Name: Raider Trike + UpdatesPlayerStatistics: + AddToArmyValue: true + Health: + HP: 10000 + Armor: + Type: light + Mobile: + Locomotor: light_vehicle + TurnSpeed: 40 + Speed: 136 + WithMuzzleOverlay: + Armament@damage: + Weapon: HMGo + LocalOffset: 170,0,0 + Armament@chaos_bomb_influence: + Weapon: HMGo + LocalOffset: 170,0,0 + Armament@muzzle: + Weapon: HMGo_muzzle + LocalOffset: 170,0,0 + Armament@muzzlechaosbomb: + Weapon: HMGo_muzzle + LocalOffset: 170,0,0 + MuzzleSequence: muzzle + RequiresCondition: chaos_bomb + SpeedMultiplier@HEAVYDAMAGE: + RequiresCondition: heavy-damage + Modifier: 75 + +quad: + AutoTargetPriority@bot: + ValidTargets: Vehicle, Structure, Tank + InvalidTargets: Infantry + Priority: 50 + RequiresCondition: ignore-creeps + Buildable: + Prerequisites: upgrade.light, ~light.quad, ~techlevel.medium + BuildDuration: 353 + BuildDurationModifier: 100 + Description: Missile Scout\n Excellent vs Light Armor\n Modest vs Tanks\n Weak vs Moving Targets, Infantry + Valued: + Cost: 450 + Health: + HP: 11000 + Armor: + Type: light + Mobile: + Locomotor: light_vehicle + TurnSpeed: 40 + Speed: 95 + RevealsShroud: + Range: 6c0 + Armament: + Weapon: Rocket + LocalOffset: 128,64,64, 128,-64,64 + Armament@chaos_bomb_influence: + Weapon: Rocket + LocalOffset: 128,64,64, 128,-64,64 + Explodes: + Weapon: UnitExplodeSmall + EmptyWeapon: UnitExplodeSmall + SpeedMultiplier@HEAVYDAMAGE: + RequiresCondition: heavy-damage + Modifier: 75 + RevealsShroud@jammed: + Range: 5c0 + +stealth_raider: + Inherits: raider + Buildable: + Prerequisites: ~light.ordos, upgrade.light, high_tech_factory, ~techlevel.high + BuildPaletteOrder: 30 + BuildDuration: 260 + Description: Invisible Raider Trike\n Can be detected by infantry(1 cell), Turrets(2 cells), Outpost (5 cells) + Valued: + Cost: 450 + Mobile: + TurnSpeed: 32 + Speed: 120 + Tooltip: + Name: Stealth Raider Trike + RevealsShroud: + Range: 6c0 + UpdatesPlayerStatistics: + AddToArmyValue: true + Cloak: + InitialDelay: 45 + CloakDelay: 90 + UncloakOn: Attack, Unload, Infiltrate, Demolish, Dock, Damage, Heal + IsPlayerPalette: true + PauseOnCondition: cloak-force-disabled + +siege_tank: + Buildable: + Queue: Armor + Prerequisites: upgrade.heavy, ~techlevel.medium + BuildDuration: 400 + BuildDurationModifier: 100 + Description: Siege Artillery\n High range, high Inaccuracy\n Strong vs Infantry, Buildings\n Weak vs Tanks, Quads + AutoTargetPriority@bot: + ValidTargets: Infantry, Defense + InvalidTargets: Tanks + Priority: 50 + RequiresCondition: ignore-creeps + AutoTargetPriority@bot2: + ValidTargets: Vehicle + InvalidTargets: Tanks + Priority: 10 + RequiresCondition: bot-owned + AttackFrontal: + ForceFireIgnoresActors: True + TargetFrozenActors: True + FacingTolerance: 0 + Valued: + Cost: 800 + Health: + HP: 13000 + Armor: + Type: light + Mobile: + Speed: 38 + TurnSpeed: 12 + RevealsShroud: + Range: 5c512 + Turreted: + TurnSpeed: 12 + Offset: 0,0,-32 + -RevealOnFire: + Armament: + Weapon: 155mm + Recoil: 150 + RecoilRecovery: 19 + LocalOffset: 512,0,320 + MuzzleSequence: muzzle + Armament@chaos_bomb_influence: + Weapon: 155mm + Recoil: 150 + RecoilRecovery: 19 + LocalOffset: 512,0,320 + MuzzleSequence: muzzle + Explodes: + Weapon: UnitExplodeMed + EmptyWeapon: UnitExplodeMed + SpawnActorOnDeath: + Actor: siege_tank.husk + OwnerType: InternalName + EffectiveOwnerFromOwner: true + RequiresCondition: !worm_attack + ThrowsShrapnel: + Weapons: DerbisSiegetank, Debris3 + Pieces: 1, 2 + Range: 2c0, 4c0 + ThrowsShrapnel@turret: + Weapons: derbisSiegetank.turret + Pieces: 1, 1 + Range: 0c512, 2c0 + +missile_tank: + AutoTargetPriority@bot: + ValidTargets: Tank, Defense, Air + InvalidTargets: Infantry + Priority: 50 + RequiresCondition: ignore-creeps + AutoTargetPriority@bot2: + ValidTargets: Structure, Vehicle + InvalidTargets: Infantry + Priority: 20 + RequiresCondition: ignore-creeps + AttackFrontal: + ForceFireIgnoresActors: false + TargetFrozenActors: true + FacingTolerance: 0 + GrantRandomCondition: + Conditions: shrapnel_01, shrapnel_02, shrapnel_03 + Buildable: + BuildDuration: 512 + Prerequisites: ~heavy.missile_tank, heavy_factory,upgrade.heavy, high_tech_factory, ~techlevel.high + Description: Rocket Artillery\n Excellent vs moving targets, Tanks\n Strong vs Vehicles, Aircraft\n Weak vs Infantry, Quads + Valued: + Cost: 900 + Mobile: + Speed: 50 + TurnSpeed: 20 + Health: + HP: 14000 + Armor: + Type: light + RevealsShroud: + Range: 5c512 + Armament: + Weapon: mtank_pri + LocalOffset: -128,128,171, -128,-128,171 + Armament@chaos_bomb_influence: + Weapon: mtank_pri + LocalOffset: -128,128,171, -128,-128,171 + -RevealOnFire: + ThrowsShrapnel@01: + Weapons: Debris, Debris4, Debris3 + Pieces: 0,1 + Range: 1c0, 3c0 + RequiresCondition: shrapnel_01 && !worm_attack + ThrowsShrapnel@02: + Weapons: Debris3, Debris + Pieces: 1,2 + Range: 2c0, 3c0 + RequiresCondition: shrapnel_02 && !worm_attack + ThrowsShrapnel@02_02: + Weapons: DerbisMissile + Pieces: 0,2 + Range: 3c0, 5c0 + RequiresCondition: shrapnel_02 && !worm_attack + ThrowsShrapnel@03: + Weapons: DerbisMissile, Debris, Debris4, Debris3 + Pieces: 1,3 + Range: 4c0, 6c0 + RequiresCondition: shrapnel_03 && !worm_attack + SpawnActorOnDeath: + RequiresCondition: !worm_attack + +sonic_tank: + AutoTargetPriority@bot: + ValidTargets: Vehicle, Defense, Structure, Infantry + InvalidTargets: Tank + Priority: 50 + RequiresCondition: ignore-creeps + AttackFrontal: + TargetFrozenActors: True + ForceFireIgnoresActors: True + FacingTolerance: 0 + Buildable: + Queue: Armor + Prerequisites: ~heavy.atreides,upgrade.heavy, research_centre, ~techlevel.high + BuildDuration: 630 + Description: Fires sonic shocks\n Excellent vs Infantry, Buildings, Turrets\n Modest vs vehicles \n Weak vs Tanks, Missiles,\n Friendly Fire + Valued: + Cost: 1100 + UpdatesPlayerStatistics: + AddToArmyValue: true + Health: + HP: 30000 + Armor: + Type: light + Mobile: + TurnSpeed: 15 + Speed: 28 + RevealsShroud: + Range: 5c768 + Armament: + Weapon: Sound + LocalOffset: 600,0,427 + Armament@allydamage: + Weapon: Sound.Ally + LocalOffset: 600,0,427 + Armament@chaos_bomb_influence: + Weapon: Sound + LocalOffset: 600,0,427 + Armament@chaos_bomb_influenceAlly: + Weapon: Sound.Ally + LocalOffset: 600,0,427 + RequiresCondition: chaos_bomb + -RevealOnFire: + SpawnActorOnDeath: + RequiresCondition: !worm_attack + +devastator: + GrantConditionOnDamageState@forbot: + Condition: lowhp + ValidDamageStates: Critical + GrantCondition@botselfdestruct: + Condition: overload + RequiresCondition: lowhp && bot-owned && !unitCapturated + Buildable: + Prerequisites: ~heavy.harkonnen, research_centre, upgrade.heavy, ~techlevel.high + BuildDuration: 700 + Description: Super Heavy Tank\n Decent damage vs everthing\n weak vs missile\n SelfDestruction damage 8 square cells + ExternalCondition: + Condition: unitCapturated + Valued: + Cost: 1200 + Health: + HP: 65000 + Armor: + Type: heavy + Mobile: + TurnSpeed: 12 + Speed: 28 + Locomotor: devastator + RequiresCondition: !overload + PauseOnCondition: notmobile + RevealsShroud: + Range: 4c768 + Armament: + Weapon: DevBullet + LocalOffset: 640,0,32 + MuzzleSequence: muzzle + Armament@chaos_bomb_influence: + Weapon: DevBullet + LocalOffset: 640,0,32 + MuzzleSequence: muzzle + Explodes@OVERLOAD: + Weapon: PlasmaExplosion + EmptyWeapon: PlasmaExplosion + RequiresCondition: meltdown + GrantConditionOnDeploy@REACTOR: + DeployedCondition: overload + PauseOnCondition: overload + RequiresCondition: !unitCapturated + WithIdleOverlay@OVERLOAD: + Sequence: active + RequiresCondition: overload + WithIdleOverlay@OVERLOAD2: + Sequence: active-2 + RequiresCondition: overload + KillsSelf@MELTDOWN: + Delay: 150 + RequiresCondition: overload + GrantsCondition: meltdown + AttractsWorms: + Intensity: 700 + ChangesHealth: + Step: 40 + Delay: 3 + StartIfBelow: 50 + -RevealOnFire: + Selectable: + DecorationBounds: 1408, 1216, 0, 0 + AmbientSound@onMeltDown: + SoundFiles: audio/DevastatorMeltdown01.wav + RequiresCondition: overload + ThrowsShrapnel@TrowOnMeldown: + Weapons: Debris2, DeathHandClusterDebris, Debris4, DerbisSiegetank + Pieces: 7, 15 + Range: 3c512, 7c0 + RequiresCondition: meltdown + ThrowsShrapnel@standart: + Weapons: Debris, Debris3, DerbisSiegetank + Pieces: 1, 2 + RequiresCondition: !meltdown + SpawnActorOnDeath: + RequiresCondition: !meltdown && !worm_attack + SpawnActorOnDeath@crater: + Actor: crater_big + RequiresCondition: meltdown + Offset: -1,0 + +deviator: + AutoTargetPriority@bot: + ValidTargets: Tank, Vehicle + InvalidTargets: Infantry, Structure, Defense + Priority: 50 + RequiresCondition: ignore-creeps + Valued: + Cost: 1100 + Buildable: + Prerequisites: ~heavy.ordos, research_centre,upgrade.heavy, ~techlevel.high + BuildDuration: 618 + Description: Fires a Gas which changes\nthe allegiance of enemy vehicles\n Gas leaks from Deviator husk dead\n weak vs everythink + Mobile: + TurnSpeed: 12 + Speed: 49 + Health: + HP: 11000 + Armor: + Type: light + RevealsShroud: + Range: 5c112 + -RevealOnFire: + Armament: + Weapon: DeviatorMissile + LocalOffset: -299,0,85 + Armament@chaos_bomb_influence: + Weapon: DeviatorMissile + LocalOffset: -299,0,85 + ThrowsShrapnel: + Weapons: Debris4, Debris + Pieces: 0,2 + Range: 0c512, 4c512 + SpawnActorOnDeath: + RequiresCondition: !worm_attack + SpawnActorOnDeath@dummygas1: + Actor: dummygas01 + Offset: 0, 0 + SpawnActorOnDeath@dummygas2: + Actor: dummygas02 + Offset: 0, 0 + SpawnActorOnDeath@dummygas3: + Actor: dummygas03 + SpawnAfterDefeat: false + SpawnActorOnDeath@dummygas4: + Actor: dummygas04 + SpawnAfterDefeat: false + SpawnActorOnDeath@dummygas5: + Actor: dummygas05 + SpawnAfterDefeat: false + SpawnActorOnDeath@dummygas6: + Actor: dummygas06 + SpawnAfterDefeat: false + SpawnActorOnDeath@dummygas7: + Actor: dummygas07 + SpawnAfterDefeat: false + SpawnActorOnDeath@dummygas8: + Actor: dummygas08 + SpawnAfterDefeat: false + +^combat_tank: + GrantRandomCondition: + Conditions: Husk01, Husk02, Husk03, Husk04 + AutoTargetPriority@bot: + InvalidTargets: Infantry + ValidTargets: Vehicle, Defense, Structure, Tank + Priority: 40 + RequiresCondition: ignore-creeps + Buildable: + Queue: Armor + BuildDuration: 432 + Description: Main Battle Tank\n Modest vs Tanks, vehicles\n Weak vs Infantry, Missiles \n Can crush Infantry + Valued: + Cost: 700 + UpdatesPlayerStatistics: + AddToArmyValue: true + Health: + HP: 22000 + Armor: + Type: heavy + Mobile: + Speed: 72 + TurnSpeed: 20 + RevealsShroud: + Range: 5c0 + Turreted: + TurnSpeed: 20 + RealignDelay: 0 + Armament: + Weapon: 80mm_A + Recoil: 128 + RecoilRecovery: 32 + LocalOffset: 256,0,0 + MuzzleSequence: muzzle + ThrowsShrapnel: + Weapons: Debris, Debris3, debris_vehicle02, debris_vehicle01 + Pieces: 0, 2 + Range: 2c0, 4c0 + -RevealOnFire: + +combat_tank_a: + Inherits: ^combat_tank + Buildable: + Prerequisites: ~heavy.atreides_combat + Description: Atreides Combat Tank \n Modest speed/HP \n Combat bonus: Longer Range + Mobile: + TurnSpeed: 20 + Tooltip: + Name: Atreides Combat Tank + Armament: + Weapon: 80mm_A + Armament@chaos_bomb_influence: + Weapon: 80mm_A + SpawnActorOnDeath: + Actor: combat_tank_a.husk + RequiresCondition: Husk01 && !worm_attack + SpawnActorOnDeath@husk02: + Actor: combat_tank_a.husk02 + RequiresCondition: Husk02 && !worm_attack + SpawnActorOnDeath@husk03: + Actor: combat_tank_a.husk03 + RequiresCondition: Husk03 && !worm_attack + SpawnActorOnDeath@husk04: + Actor: combat_tank_a.husk04 + RequiresCondition: Husk04 && !worm_attack + ThrowsShrapnel@turret: + Weapons: debris_turret.atreides + Pieces: 1,1 + Range: 0c250, 2c512 + RequiresCondition: Husk01 + ThrowsShrapnel@turret01: + Weapons: debris_turret01.atreides + Pieces: 1,1 + Range: 1c0, 2c512 + RequiresCondition: Husk02 + + +combat_tank_h: + Inherits: ^combat_tank + Buildable: + Prerequisites: ~heavy.harkonnen_combat + Description: Harkonnen Combat tank \n More Healt, low Speed \n Combat Bonus: Damage \n less affected by Dune terrain + Armament: + Weapon: 80mm_H + Armament@chaos_bomb_influence: + Weapon: 80mm_H + Tooltip: + Name: Harkonnen Combat Tank + Mobile: + Speed: 62 + TurnSpeed: 18 + Locomotor: tank_harkonnen + Health: + HP: 29000 + SpawnActorOnDeath: + Actor: combat_tank_h.husk + RequiresCondition: Husk01 && !worm_attack + SpawnActorOnDeath@husk02: + Actor: combat_tank_h.husk02 + RequiresCondition: Husk02 && !worm_attack + SpawnActorOnDeath@husk03: + Actor: combat_tank_h.husk03 + RequiresCondition: Husk03 && !worm_attack + SpawnActorOnDeath@husk04: + Actor: combat_tank_h.husk04 + RequiresCondition: Husk04 && !worm_attack + ThrowsShrapnel@turret: + Weapons: debris_turret.harkonnen + Pieces: 1,1 + Range: 0c250, 2c512 + RequiresCondition: Husk01 + ThrowsShrapnel@turret01: + Weapons: debris_turret01.harkonnen + Pieces: 1,1 + Range: 1c0, 2c512 + RequiresCondition: Husk02 + +combat_tank_o: + Inherits: ^combat_tank + Buildable: + Prerequisites: ~heavy.ordos_combat + Description: Ordos tank \n Fast speed, low HP \n Combat Bonus: Rate of fire + Turreted: + TurnSpeed: 24 + Armament: + Weapon: 80mm_O + Armament@chaos_bomb_influence: + Weapon: 80mm_O + Tooltip: + Name: Ordos Combat Tank + Mobile: + Speed: 82 + TurnSpeed: 22 + Health: + HP: 19000 + SpawnActorOnDeath: + Actor: combat_tank_o.husk + RequiresCondition: Husk01 && !worm_attack + SpawnActorOnDeath@husk02: + Actor: combat_tank_o.husk02 + RequiresCondition: Husk02 && !worm_attack + SpawnActorOnDeath@husk03: + Actor: combat_tank_o.husk03 + RequiresCondition: Husk03 && !worm_attack + SpawnActorOnDeath@husk04: + Actor: combat_tank_o.husk04 + RequiresCondition: Husk04 && !worm_attack + ThrowsShrapnel@turret: + Weapons: debris_turret.ordos + Pieces: 1,1 + Range: 1c0, 2c512 + RequiresCondition: Husk01 || Husk02 + +combat_tank_cheap: + Inherits: ^combat_tank + Buildable: + BuildDuration: 400 + Prerequisites: ~factions.subfaction_allowed, ~heavy.cheap_tank + Description: Standard combat tank licensed by various manufacturers \n Modest speed, Low HP \n Bonus: Cheaper + Valued: + Cost: 600 + Tooltip: + Name: Generic Combat Tank + Mobile: + Speed: 70 + TurnSpeed: 19 + Locomotor: tank + Health: + HP: 20000 + Armament: + Weapon: 80mm_cheap + Armament@chaos_bomb_influence: + Weapon: 80mm_cheap + SpawnActorOnDeath: + Actor: combat_tank_cheap.husk + RequiresCondition: Husk01 && !worm_attack + SpawnActorOnDeath@husk02: + Actor: combat_tank_cheap.husk02 + RequiresCondition: Husk02 && !worm_attack + SpawnActorOnDeath@husk03: + Actor: combat_tank_cheap.husk03 + RequiresCondition: Husk03 && !worm_attack + SpawnActorOnDeath@husk04: + Actor: combat_tank_cheap.husk04 + RequiresCondition: Husk04 && !worm_attack + ThrowsShrapnel@turret: + Weapons: debris_turret.harkonnen + Pieces: 1,1 + Range: 0c250, 2c512 + RequiresCondition: Husk01 + +combat_tank_corrino: + Inherits: combat_tank_h + Buildable: + Prerequisites: ~heavy.corrino_combat, ~factions.subfaction_allowed + Description: Corrino Combat tank \n Better HP, low Speed \n Combat bonus: area damage \n Less affected by Dune terrain + Tooltip: + Name: Corrino Combat Tank + Health: + HP: 25000 + Mobile: + Speed: 64 + TurnSpeed: 19 + Locomotor: tank_harkonnen + Armament: + Weapon: 80mm_corrino + Armament@chaos_bomb_influence: + Weapon: 80mm_corrino + +carryall: + -Interactable: + AutoCarryall: + #AutoCarryCondition: auto_mode + Selectable: + PriorityModifiers: Ctrl + Priority: 9 + SelectionDecorations: + RevealsShroud: + Range: 6c0 + Type: CenterPosition + RevealOnDeath: + +carryall.reinforce: + Inherits: ^Plane + Valued: + Cost: 1100 + UpdatesPlayerStatistics: + AddToAssetsValue: false + Tooltip: + Name: Carryall + Health: + HP: 12000 + Armor: + Type: light + Aircraft: + CruiseAltitude: 2160 + CruisingCondition: cruising + Speed: 170 + TurnSpeed: 16 + LandableTerrainTypes: Sand, Rock, Transition, Spice, SpiceSand, Dune, Concrete + Repulsable: False + AirborneCondition: airborne + CanSlide: True + VTOL: true + IdleTurnSpeed: 5 + IdleSpeed: 115 + ThrowsShrapnel@derbis: + Weapons: Debris, Debris2, debris_vehicle01, debris_vehicle02 + Pieces: 1, 3 + Range: 1c0, 6c0 + ThrowsShrapnel@derbisExplosions: + Weapons: DeathHandClusterDebris + Pieces: 1 , 3 + Range: 1c0, 5c0 + ThrowsShrapnel@derbisExplosions2: + Weapons: DeathHandClusterDebris + Pieces: 0 , 2 + Range: 1c0, 5c0 + SpawnActorOnDeath@rotor: + Actor: rotor + SkipMakeAnimations: false + Offset: 0, 1 + RequiresCondition: cruising + SpawnActorOnDeath@CRUISING: + SpawnAfterDefeat: false + SpawnActorOnDeath@LANDING: + SpawnAfterDefeat: false + HiddenUnderFog: + AlwaysVisibleRelationships: Ally + GrantConditionOnDamageState@HEAVY: + Condition: heavy-damage + FloatingSpriteEmitter@smoke: + RequiresCondition: heavy-damage + Palette: smoke3 + Image: smoke3 + Lifetime: 20, 22 + Speed: 15 + Gravity: 10 + SpawnFrequency: 2, 7 + RandomFacing: true + RandomRate: 4 + Offset: 300,383,0 + TurnRate: 3 + Duration: 500 + + + +carryall.reinforce_with_sound: + Inherits: carryall.reinforce + Health: + HP: 11000 + -Carryall: + Cargo: + Types: Infantry, Vehicle + PassengerFacing: 512 + BeforeUnloadDelay: 50 + Aircraft: + MinAirborneAltitude: 400 + TakeoffSounds: audio/adv_carryall_takeoff_1.wav + LandingSounds: audio/adv_carryall_land_1.wav + Speed: 140 + RevealsShroud@landing: + Range: 3c0 + RequiresCondition: !cruising + Type: CenterPosition + RevealsShroud@onland: + Range: 4c0 + RequiresCondition: !airborne + Type: CenterPosition + AmbientSound: + SoundFiles: audio/carryallSound(2).wav + RequiresCondition: cruising + SpawnActorOnDeath@LANDING: + Actor: carryall.huskVTOL_reinforce + SpawnActorOnDeath@rotor2: + Actor: rotor + Offset: 0, 1 + +carryall.bomber: + Inherits: ^Plane + RejectsOrders: + RenderSprites: + Image: carryall + Health: + HP: 14000 + Aircraft: + MinAirborneAltitude: 500 + AirborneCondition: airborne + CruiseAltitude: 2500 + Speed: 170 + Targetable@AIRBORNE: + TargetTypes: Air + RequiresCondition: airborne + AmmoPool: + Ammo: 1 + AmbientSound: + SoundFiles: audio/carryallSound(2).wav + ThrowsShrapnel@derbis: + Weapons: Debris, Debris2, debris_vehicle01 + Pieces: 1, 3 + Range: 0c512, 2c0 + HitShape: + Type: Circle + Radius: 32 + AttackBomber: + FacingTolerance: 8 + Armament: + Weapon: chaosbomb1 + Armament@2: + Weapon: chaosbomb2 + FireDelay: 5 + Armament@3: + Weapon: chaosbomb3 + FireDelay: 11 + Armament@4: + Weapon: chaosbomb4 + FireDelay: 17 + SpawnActorOnDeath: + Actor: carryall.bomberhusk + +ornithopter: + Inherits: ^Plane + Health: + HP: 7000 + Aircraft: + MinAirborneAltitude: 500 + AirborneCondition: airborne + Targetable@AIRBORNE: + TargetTypes: Air + RequiresCondition: airborne + AmbientSound: + SoundFiles: audio/ornithopterMotor01.wav + ThrowsShrapnel@derbis: + Weapons: Debris, Debris2, debris_vehicle01 + Pieces: 1, 3 + Range: 0c512, 2c0 + RevealOnFire: + Duration: 90 + Radius: 5c112 + HitShape: + Type: Circle + Radius: 32 + +ornithopter_a: + Inherits: ornithopter + RenderSprites: + Image: ornithopter + -AttackBomber: + Aircraft: + AltitudeVelocity: 2c0 + AttackAircraft: + AttackType: Strafe + StrafeRunLength: 4c0 + OpportunityFire: false + ForceFireIgnoresActors: true + Voice: Attack + FacingTolerance: 512 + PersistentTargeting: false + AbortOnResupply: true + Armament: + Weapon: OrniBomb_multipass + PauseOnCondition: !ammo + Health: + HP: 8000 + Armor: + Type: light + Aircraft: + Speed: 224 + TurnSpeed: 10 + Repulsable: False + CruiseAltitude: 1920 + AmmoPool: + Ammo: 15 + AmmoCondition: ammo + Valued: + Cost: 500 + + +ornithopter_o: + Inherits: ornithopter + RenderSprites: + Image: ornithopter + -AttackBomber: + Aircraft: + AltitudeVelocity: 2c0 + AttackAircraft: + AttackType: Strafe + StrafeRunLength: 4c0 + OpportunityFire: false + ForceFireIgnoresActors: true + Voice: Attack + FacingTolerance: 512 + PersistentTargeting: false + AbortOnResupply: true + Armament: + Weapon: Ornithopter_MG + MuzzleSequence: muzzle + LocalOffset: -120,0,0 + PauseOnCondition: !ammo + Health: + HP: 8000 + Armor: + Type: light + Aircraft: + Speed: 224 + TurnSpeed: 10 + Repulsable: False + CruiseAltitude: 1920 + AmmoPool: + Ammo: 16 + AmmoCondition: ammo + Valued: + Cost: 500 + + +light_inf: + ExternalCondition@chaos_bomb: + Condition: chaos_bomb + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: ignore-creeps + AutoTargetPriority@bot2: + ValidTargets: Vehicle + Priority: 20 + RequiresCondition: bot-owned + Buildable: + Queue: Infantry + BuildDuration: 62 + Valued: + Cost: 50 + Health: + HP: 6000 + Mobile: + Speed: 43 + Armament: + Weapon: LMG + Armament@chaos_bomb_influence: + Weapon: LMG + WithInfantryBody: + -DefaultAttackSequence: + AttackSequences: + primary: shoot + Armament@chaossounds: + Weapon: chaosambiencesounds + TargetRelationships: Enemy, Ally, Neutral + Name: secondary + RequiresCondition: chaos_bomb + +light_inf.vet4: + Inherits: light_inf + RenderSprites: + Image: light_inf + ProducibleWithLevel: + Prerequisites: techlevel.medium + InitialLevels: 4 + WithProductionIconOverlay: + Types: veteran + UpdatesPlayerStatistics: + OverrideActor: light_inf + -Buildable: + +light_inf.vet3: + Inherits: light_inf + RenderSprites: + Image: light_inf + ProducibleWithLevel: + Prerequisites: techlevel.medium + InitialLevels: 3 + WithProductionIconOverlay: + Types: veteran + UpdatesPlayerStatistics: + OverrideActor: light_inf + -Buildable: + +trooper.vet2: + Inherits: trooper + RenderSprites: + Image: trooper + ProducibleWithLevel: + Prerequisites: techlevel.medium + InitialLevels: 2 + WithProductionIconOverlay: + Types: veteran + UpdatesPlayerStatistics: + OverrideActor: trooper + -Buildable: + +trooper: + AutoTargetPriority@bot: + InvalidTargets: Infantry + ValidTargets: Vehicle, Defense, Structure, Tank + Priority: 50 + RequiresCondition: ignore-creeps + Buildable: + Prerequisites: upgrade.barracks, ~techlevel.medium + BuildDuration: 120 + Description: Anti-tank infantry\n Strong vs Tanks\n Weak vs Infantry, Artillery, Moving targets + Valued: + Cost: 100 + Health: + HP: 7000 + RevealsShroud: + Range: 4c768 + Mobile: + Speed: 31 + Armament: + Weapon: Bazooka + LocalOffset: 128,0,256 + Armament@chaos_bomb_influence: + Weapon: Bazooka + LocalOffset: 128,0,256 + TakeCover: + ProneOffset: 324,0,-204 + WithInfantryBody: + -DefaultAttackSequence: + AttackSequences: + primary: shoot + Armament@chaossounds: + Weapon: chaosambiencesounds + TargetRelationships: Enemy, Ally, Neutral + Name: secondary + RequiresCondition: chaos_bomb + +engineer: + Inherits@botLogic: ^BotLogicEngineer + Buildable: + Prerequisites: upgrade.barracks, ~techlevel.medium + BuildDuration: 160 + BuildPaletteOrder: 80 + Description: Infiltrates and captures enemy structures\n Attracts nearby worms when deployed\n Can repair Buildings \n Capture husks + Valued: + Cost: 400 + Health: + HP: 5000 + RevealsShroud: + Range: 2c768 + Mobile: + Speed: 31 + PauseOnCondition: deployed + InstantlyRepairs: + Types: Building + -Passenger: + CaptureManager: + Captures: + CaptureTypes: building + Captures@cliff: + CaptureTypes: cliff + ConsumedByCapture: false + CaptureDelay: 150 + ValidRelationships: Enemy, Neutral, Ally + Captures@husks: + CaptureTypes: husk + ValidRelationships: Enemy, Neutral, Ally + GrantConditionOnDeploy: + DeployedCondition: deployed + UndeployedCondition: undeployed + Facing: 512 + SkipMakeAnimation: true + AllowedTerrainTypes: Sand, Spice, Dune, SpiceSand + WithInfantryBody: + RequiresCondition: undeployed + WithSpriteBody@DEPLOYED: + Sequence: thump + RequiresCondition: !undeployed + WithIdleOverlay@DEPLOYED: + Sequence: thump-sand + RequiresCondition: deployed + AmbientSound: + SoundFiles: THUMPER1.WAV + Interval: 60 + RequiresCondition: deployed + AttractsWorms: + Intensity: 1000 + Falloff: 0, 0, 0, 100, 100, 100, 25, 11, 6, 4, 3, 2, 1, 0 + RequiresCondition: deployed + -Armament@chaos_bomb_influence: + +grenadier: + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: ignore-creeps + Buildable: + Prerequisites: ~barracks.atreides, upgrade.barracks, outpost, ~techlevel.medium + BuildDuration: 98 + Valued: + Cost: 80 + Health: + HP: 6000 + Mobile: + Speed: 43 + Armament: + Weapon: grenade + LocalOffset: 192,0,224 + FireDelay: 3 + Armament@chaos_bomb_influence: + Weapon: grenade + LocalOffset: 192,0,224 + FireDelay: 3 + TakeCover: + ProneOffset: 96,100,-64 + WithInfantryBody: + DefaultAttackSequence: throw + Explodes: + Weapon: GrenDeath + EmptyWeapon: GrenDeath + + +mpsardaukar: + Buildable: + Prerequisites: ~barracks.harkonnen, upgrade.barracks, high_tech_factory, ~techlevel.medium, ~factions.standard + BuildDuration: 165 + Description: Elite assault infantry of Corrino\n Strong vs Vehicles\n Modest vs Infantry\n Weak vs Artillery, Sonic Beams + Valued: + Cost: 200 + Health: + HP: 10000 + Mobile: + Speed: 31 + Armament@PRIMARY: + Weapon: M_LMG_H + Armament@SECONDARY: + Weapon: M_HMG_H + Armament@chaos_bomb_influence: + Weapon: M_LMG_H + Armament@chaos_bomb_influence2: + Weapon: M_HMG_H + RequiresCondition: chaos_bomb + GrantConditionOnPrerequisite@supportpoweractivator: + Condition: stimpack + Prerequisites: productionSpeedup.sardaukar + TakeCover: + RequiresCondition: !officerAura || !stimpack + SpeedMultiplier@corrinosupportposer: + Modifier: 135 + RequiresCondition: stimpack + +mpsardaukar.corrino: + Inherits: mpsardaukar + Buildable: + Prerequisites: ~barracks.corrino, upgrade.barracks, high_tech_factory, ~techlevel.medium, ~factions.subfaction_allowed + ProductionTimeMultiplier: + Multiplier: 40 + Queue: Infantry + Prerequisites: productionSpeedup.sardaukar + ProductionCostMultiplier: + Multiplier: 50 + Prerequisites: productionSpeedup.sardaukar + ProducibleWithLevel: + InitialLevels: 1 + Prerequisites: productionSpeedup.sardaukar + WithProductionIconOverlay: + Types: veteran + Prerequisites: productionSpeedup.sardaukar + + +mpsardaukar.level4: + Inherits: mpsardaukar + RenderSprites: + Image: sardaukar + ProducibleWithLevel: + InitialLevels: 4 + WithProductionIconOverlay: + Types: veteran + UpdatesPlayerStatistics: + OverrideActor: mpsardaukar + Buildable: + Prerequisites: ~disabled + +mpsardaukar.level3: + Inherits: mpsardaukar + RenderSprites: + Image: sardaukar + ProducibleWithLevel: + InitialLevels: 3 + WithProductionIconOverlay: + Types: veteran + UpdatesPlayerStatistics: + OverrideActor: mpsardaukar + Buildable: + Prerequisites: ~disabled + +mpsardaukar.level2: + Inherits: mpsardaukar + RenderSprites: + Image: sardaukar + ProducibleWithLevel: + InitialLevels: 2 + WithProductionIconOverlay: + Types: veteran + UpdatesPlayerStatistics: + OverrideActor: mpsardaukar + Buildable: + Prerequisites: ~disabled + +saboteur: + -Passenger: + ScriptTags: + Buildable: + Prerequisites: ~disabled + Description: Always cloaked. \n Destroy buildings \n SelfKill explosion + UpdatesPlayerStatistics: + AddToArmyValue: true + WithDecoration@ScullIcon: + Image: skullicon + Sequence: idle + ValidRelationships: Enemy, Neutral, Ally + Palette: effect + Position: BottomRight + Margin: 5, 6 + Health: + HP: 6000 + Mobile: + Speed: 43 + PauseOnCondition: SuicideAtt + Demolition: + DetonationDelay: 50 + Flashes: 3 + EnterBehaviour: Suicide + Cloak: + InitialDelay: 100 + CloakDelay: 100 + CloakSound: STEALTH1.WAV + UncloakOn: Attack, Unload, Infiltrate, Demolish, Damage, Heal + IsPlayerPalette: true + PauseOnCondition: cloak-force-disabled + RequiresCondition: !SuicideAtt + Explodes@Selfkill: + Weapon: PlasmaSaboteur + EmptyWeapon: PlasmaSaboteur + RequiresCondition: kamikadze + GrantConditionOnDeploy: + DeployedCondition: SuicideAtt + PauseOnCondition: SuicideAtt + -GrantConditionOnDeployWithCharge: + KillsSelf@SuicideKillCount: + Delay: 50 + RequiresCondition: SuicideAtt + GrantsCondition: kamikadze + GrantConditionOnDamageState@UNCLOAK: + Condition: cloak-force-disabled + ValidDamageStates: Critical + Voiced: + VoiceSet: SaboteurVoice + AmbientSound@onSuicide: + SoundFiles: audio/explodeSaboteurEmperor02.wav + RequiresCondition: SuicideAtt + TakeCover: + RequiresCondition: SuicideAtt + SpawnActorOnDeath@crater: + Actor: crater_big + RequiresCondition: kamikadze + Offset: -1,0 + -Armament@chaos_bomb_influence: + +fremen: + Buildable: + Prerequisites: ~disabled + Mobile: + Speed: 43 + Valued: + Cost: 200 + Health: + HP: 7000 + RevealsShroud: + Range: 4c768 + AutoTarget: + ScanRadius: 7 + InitialStance: HoldFire + InitialStanceAI: ReturnFire + -Armament@PRIMARY: + Armament@SECONDARY: + Weapon: Fremen_L + Name: secondary + Armament@chaos_bomb_influence: + Weapon: Fremen_S + Armament@chaos_bomb_influence2: + Weapon: Fremen_L + ChangesHealth@regen: + Step: 0 + PercentageStep: 4 + Delay: 125 + StartIfBelow: 50 + DamageCooldown: 125 + + +mortar_inf: + Inherits: ^Infantry + Inherits@botlogic: ^botDeployLogic + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: ignore-creeps + Selectable: + Priority: 10 + PriorityModifiers: Ctrl, Alt + RevealsShroud: + Range: 5c856 + Buildable: + Queue: Infantry + BuildPaletteOrder: 60 + Prerequisites: ~barracks.mercenary, upgrade.barracks, ~techlevel.medium, outpost, ~factions.subfaction_allowed + BuildDuration: 130 + BuildDurationModifier: 100 + Description: Mortar infantry, \n Strong VS infantry, Buildings\n Weak VS Tanks, Trikes \n Must be deployed to fire + Valued: + Cost: 130 + Tooltip: + Name: Mortar Infantry + WithRangeCircle: + RequiresCondition: deployed + Range: 6c512 + UpdatesPlayerStatistics: + AddToArmyValue: true + Health: + HP: 6500 + Mobile: + Speed: 35 + PauseOnCondition: deployed + RequireForceMoveCondition: !undeployed + GrantConditionOnDeploy: + DeployedCondition: deployed + UndeployedCondition: undeployed + Facing: 768 + UndeployOnMove: false + DeploySounds: audio/EBoD_MortarDeploy.wav + UndeploySounds: audio/EBoD_MortarUndeploy.wav + SkipMakeAnimation: false + WithMakeAnimation: + Sequence: deploying + WithInfantryBody: + RequiresCondition: undeployed && !beforedeploy && !dummyfire + WithSpriteBody@DEPLOYED: + Sequence: invisible + RequiresCondition: !undeployed + Turreted: + Turret: turret + WithSpriteTurret@idle: + RequiresCondition: deployed && !AnimateTurret + WithSpriteTurret@animated: + RequiresCondition: deployed && AnimateTurret + Sequence: thump + WithIdleOverlay@sand: + Sequence: thump-sand + RequiresCondition: deployed && AnimateTurret + GrantConditionOnAttack: + Condition: AnimateTurret + RevokeDelay: 14 + Armament: + Weapon: 40mm_mortar + RequiresCondition: deployed + LocalOffset: 0,100,200 + Armament@chaos_bomb_influence: + Weapon: 40mm_mortar + RequiresCondition: deployed && chaos_bomb + LocalOffset: 0,100,200 + GrantCondition: + Condition: editorhack + WithInfantryBody@Editor: + RequiresCondition: !editorhack + AttackFrontal: + FacingTolerance: 512 + OutsideRangeRequiresForceFire: true + +assassin: + Inherits: ^Infantry + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Valued: + Cost: 120 + Buildable: + Queue: Infantry + BuildPaletteOrder: 70 + Prerequisites: ~!factions.standard, ~barracks.harkonnen, upgrade.barracks, high_tech_factory, ~techlevel.high + BuildDuration: 140 + BuildDurationModifier: 60 + Description: Infantry with long range rifle\n Attacks only infantry\n Inaccuracy is high at long range \n No armor + Tooltip: + Name: Assassin + Health: + HP: 5000 + Mobile: + Speed: 38 + Voice: Move + RevealsShroud: + Range: 5c0 + Armament: + Weapon: SniperRifle + FireDelay: 2 + Armament@chaos_bomb_influence: + Weapon: SniperRifle + FireDelay: 2 + AttackFrontal: + FacingTolerance: 0 + WithInfantryBody: + DefaultAttackSequence: shoot + MinIdleDelay: 90 + MaxIdleDelay: 200 + GrantConditionOnTerrain: + TerrainTypes: Rough + Condition: hiddenbetweenrocks + Cloak: + InitialDelay: 120 + CloakDelay: 120 + UncloakOn: Move, Damage + IsPlayerPalette: true + RequiresCondition: !cloak-force-disabled && hiddenbetweenrocks + GrantConditionOnDamageState@UNCLOAK: + Condition: cloak-force-disabled + ValidDamageStates: Critical + -MustBeDestroyed: + Voiced: + VoiceSet: AssassinVoice + + +officer: + Inherits: ^Infantry + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Buildable: + Queue: Infantry + BuildPaletteOrder: 100 + Prerequisites: ~disabled, ~factions.subfaction_allowed + Description: Speed and armor bonus to nearby infantry units. \n Disable prone effect on infantry \n Aura range 5 cells + Tooltip: + Name: Officer + RevealsShroud: + Range: 5c112 + Valued: + Cost: 200 + Health: + HP: 7500 + Mobile: + Speed: 41 + Armament: + Weapon: dummy.targeting + -Armament@chaos_bomb_influence: + UpdatesPlayerStatistics: + AddToArmyValue: true + WithInfantryBody: + DefaultAttackSequence: shoot + WithRangeCircle: + Range: 4c0 + Color: 09FF00C7 + ProximityExternalCondition: + Range: 5c0 + AffectsParent: true + ValidRelationships: Ally + Condition: officerAura + -TakeCover: + +fremen_fedaykin: + Inherits: fremen + RenderSprites: + Image: fremen + Tooltip: + Name: Fremen Fedaykin + AutoTarget: + ScanRadius: 7 + InitialStance: Defend + InitialStanceAI: Defend + Valued: + Cost: 180 + Buildable: + Queue: Infantry + Prerequisites: ~factions.subfaction_allowed, ~barracks.fremen, research_centre, ~techlevel.medium + BuildDuration: 155 + BuildDurationModifier: 100 + Description: Fremen Fedaykin \n Strong VS Infantry, Vehicles, Tanks \n Weak VS Buildings, Defenses. \n Pernamently clocked on Sand + Armament@PRIMARY: + Weapon: Fremen_S_MP + Armament@SECONDARY: + Weapon: Fremen_L_MP + Armament@chaos_bomb_influence: + Weapon: Fremen_S_MP + RequiresCondition: chaos_bomb + Armament@chaos_bomb_influence2: + Weapon: Fremen_L_MP + RequiresCondition: chaos_bomb + + +mercenary: + Inherits: ^Infantry + Inherits: ^botDeployLogic + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + AutoTargetPriority@bot: + InvalidTargets: Infantry + ValidTargets: Vehicle, Defense, Structure, Tank + Priority: 40 + RequiresCondition: ignore-creeps + Selectable: + Priority: 10 + PriorityModifiers: Alt + Buildable: + Prerequisites: ~disabled, barracks + BuildDuration: 220 + BuildDurationModifier: 100 + Description: Elite Mercenary Strong VS Vehicles, Tanks \n can shoot only when deployed + Valued: + Cost: 250 + Tooltip: + Name: Mercenary + Mobile: + Speed: 34 + ImmovableCondition: !undeployed + RequireForceMoveCondition: !undeployed + -TakeCover: + RevealsShroud: + Range: 5c0 + Health: + HP: 8000 + Armor: + Type: none + Armament: + Weapon: portable_cannon + PauseOnCondition: !deployed + LocalOffset: 0,100,0 + MuzzleSequence: muzzle + -Armament@chaos_bomb_influence: + WithMuzzleOverlay: + GrantConditionOnDeploy: + UndeployOnPickup: true + UndeployOnMove: true + DeployedCondition: deployed + UndeployedCondition: undeployed + Facing: 768 + DeploySounds: audio/EBoD_MortarDeploy.wav + UndeploySounds: audio/EBoD_MortarUndeploy.wav + SkipMakeAnimation: false + WithInfantryBody: + RequiresCondition: undeployed && !beforedeploy && !dummyfire + WithFacingSpriteBody: + Sequence: invisible + RequiresCondition: !undeployed + Turreted: + TurnSpeed: 200 + InitialFacing: 1023 + RealignDelay: -1 + RequiresCondition: deployed + WithSpriteTurret@idle: + RequiresCondition: deployed && !AnimateTurret + WithSpriteTurret@animated: + RequiresCondition: deployed && AnimateTurret + Sequence: turret-shoot + GrantConditionOnAttack: + Condition: AnimateTurret + RevokeDelay: 14 + WithMakeAnimation@DEPLOYING: + Sequence: deploying + GrantCondition: + Condition: editorhack + WithRangeCircle: + RequiresCondition: deployed + Range: 5c256 + WithInfantryBody@Editor: + RequiresCondition: !editorhack + -AttackFrontal: + AttackTurreted: + OutsideRangeRequiresForceFire: True + + + +bison_tank: + Inherits@GAINSEXPERIENCE: ^GainsExperience + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Inherits: ^Vehicle + AutoTargetPriority@bot: + InvalidTargets: Infantry + ValidTargets: Vehicle, Defense, Structure, Tank + Priority: 40 + RequiresCondition: ignore-creeps + Buildable: + Queue: Armor + Prerequisites: ~heavy.bison, research_centre,upgrade.heavy, ~techlevel.high, ~factions.subfaction_allowed + BuildDuration: 545 + BuildDurationModifier: 100 + BuildPaletteOrder: 100 + Description: Heavy double barrel tank licensed from IX \n Strong VS vehicles, Tanks \n Weak VS infantry + Health: + HP: 30000 + RenderSprites: + PlayerPalette: player_r16 + Valued: + Cost: 1000 + Tooltip: + Name: Bison tank + Armor: + Type: heavy + Mobile: + Speed: 58 + TurnSpeed: 20 + Locomotor: tank + PauseOnCondition: notmobile + RevealsShroud: + Range: 5c0 + Armament: + Weapon: 80mm_double + Recoil: 128 + RecoilRecovery: 32 + LocalOffset: 300,60,0, 300,-40,0 + MuzzleSequence: muzzle + Turreted: + TurnSpeed: 20 + RealignDelay: 0 + AttackTurreted: + Explodes: + Weapon: UnitExplodeMed + EmptyWeapon: UnitExplodeMed + WithMuzzleOverlay: + WithSpriteTurret: + Armament@chaos_bomb_influence: + Weapon: 80mm_double + SpawnActorOnDeath: + Actor: bison_tank.Husk + RequiresCondition: !worm_attack + +worm_rider: + Inherits: thumper + AttackFrontal@deploytargeting: + FacingTolerance: 0 + GrantConditionOnBotOwner@bots: + Condition: deployed + Bots: omnius, vidious, gladius + GrantConditionOnTerrain@forBotonly: + TerrainTypes: Sand, Spice, Dune, SpiceSand + Condition: desert_terain + -ActorLostNotification: + Tooltip: + Name: Worm rider + Mobile: + Speed: 43 + KillsSelf: + Delay: 500 + GrantsCondition: spawnWorm + RequiresCondition: deployed && desert_terain + GrantConditionOnDeploy: + DeployedCondition: deployed + UndeployedCondition: undeployed + PauseOnCondition: deployed + UndeployOnMove: false + AmbientSound: + SoundFiles: THUMPER1.WAV + Delay: 10 + Interval: 20 + RequiresCondition: deployed && desert_terain + SpawnActorOnDeath@worm: + Actor: mp_sandworm + RequiresCondition: spawnWorm + SkipMakeAnimations: false + +mp_sandworm: + Inherits@world: ^ExistsInWorld + Inherits@selectable: ^SelectableCombatUnit + Inherits@1: ^SpriteActor + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Selectable: + Bounds: 1024, 1024, 0, 0 + Tooltip: + Name: Sandworm + Health: + HP: 170000 + HitShape: + Type: Rectangle + TopLeft: -512, -512 + BottomRight: 512, 1024 + Armor: + Type: heavy + RenderSprites: + Palette: terrain + Mobile: + Speed: 55 + TurnSpeed: 20 + Locomotor: worm_mp + PauseOnCondition: makeAnimation + Targetable: + TargetTypes: Ground, Vehicle + WithFacingSpriteBody: + WithIdleOverlay@makeanimfromdummy: + RequiresCondition: makeAnimation + Sequence: make + Image: mp_sandworm + WithMakeAnimation: + Condition: makeAnimation + AmbientSound: + SoundFiles: WRMSIGN1.WAV + Delay: 500 + Interval: 500 + KillsSelf: + Delay: 2000 + GrantsCondition: dispose + Explodes@1: + Weapon: worm_disapier + EmptyWeapon: worm_disapier + RequiresCondition: dispose + Explodes@2: + Weapon: worm_explode + EmptyWeapon: worm_explode + RequiresCondition: !dispose + AmbientSound@worm_roar: + SoundFiles: audio/worm_roar_1_tc.wav, audio/worm_roar_2_tc.wav, audio/worm_roar_5_tc.wav, audio/worm_roar_6_tc.wav, + Interval: 20, 100 + RequiresCondition: !makeAnimation + AmbientSound@invoking: + SoundFiles: audio/worm_sign_elec_1.wav + RequiresCondition: makeAnimation + HiddenUnderFog: + AppearsOnRadar: + UseLocation: true + Demolition: + DetonationDelay: 0 + Flashes: 0 + DamageTypes: Vehicle, Infantry + EnterBehaviour: Exit + Cursor: attack + ExternalCondition: + Condition: worm_eating_anim + WithIdleOverlay@mouth: + Sequence: mouth + RequiresCondition: worm_eating_anim + Wanders: + WanderMoveRadius: 5 + AvoidTerrainTypes: Rock, Rough, Concrete + IgnoresCloak: + AnnounceOnSeen: + Notification: WormSign + PingRadar: True + RevealsShroud: + Range: 8c0 + LeavesTrails: + Image: sandtrail + Sequences: traila, trailb, trailc + Palette: effect + Type: CenterPosition + TerrainTypes: Sand, Dune, SpiceSand, Spice + MovingInterval: 3 + Offsets: -1024,0,0 + RevealOnFire: + Duration: 50 + Radius: 2c512 + ProximityExternalCondition: + Range: 1c412 + Condition: worm_attack + ValidRelationships: Ally, Neutral, Enemy + ProximityExternalCondition@stop: + Range: 1c0 + Condition: stop + ValidRelationships: Neutral, Enemy, Ally + SpawnActorOnDeath@rideEnds: + Actor: fremen_fedaykin + RequiresCondition: dispose + SkipMakeAnimations: false + Armament@1: + Name: primary + Weapon: Fremen_wormrider + Recoil: 128 + RecoilRecovery: 32 + Armament@2: + Name: secondary + Weapon: Fremen_wormrider2 + Recoil: 128 + RecoilRecovery: 32 + Turret: secondary + Turreted@1: + TurnSpeed: 25 + Turret: primary + Offset: -600,0,200 + Turreted@2: + TurnSpeed: 25 + Turret: secondary + Offset: -50,-150,350 + AttackTurreted: + Turrets: primary, secondary + AutoTarget: + AttackMove: + WithSpriteTurret@1: + Turret: primary + RequiresCondition: !makeAnimation + WithSpriteTurret@2: + Turret: secondary + RequiresCondition: !makeAnimation + GrantConditionOnCombatantOwner@nonAi: + Condition: human_player + RejectsOrders: + Reject: AttackMove, AssaultMove + RequiresCondition: human_player + + + + +spire: + Inherits: quad + Buildable: + Prerequisites: ~disabled, upgrade.light, ~factions.subfaction_allowed, ~techlevel.medium + BuildDuration: 353 + BuildDurationModifier: 100 + Description: Heavy missile Scout\n Excellent vs Light Armor\n Modest vs Tanks\n Weak vs Moving Targets, Infantry \n Slower speed, more HP, better damage + Valued: + Cost: 500 + Health: + HP: 12000 + Tooltip: + Name: Spire + Armor: + Type: light + Mobile: + Locomotor: light_vehicle + TurnSpeed: 40 + Speed: 90 + Armament: + Weapon: rocket_spike + LocalOffset: 128,64,64 + Armament@secondrocket: + Weapon: rocket_spike + LocalOffset: 128,-64,64 + Armament@chaos_bomb_influence: + Weapon: Rocket + LocalOffset: 128,64,64, 128,-64,64 + + +hunter: + Inherits: trike + Inherits@GAINSEXPERIENCE: ^GainsExperience + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Buildable: + Prerequisites: ~light.hunter, ~factions.subfaction_allowed + BuildPaletteOrder: 10 + BuildDuration: 240 + Description: Trike with turret \n Stronger vs Troopers, moving targets\n Reduced speed and vision + Tooltip: + Name: Hunter + Valued: + Cost: 350 + Turreted: + TurnSpeed: 25 + Offset: -200,0,30 + RealignDelay: 0 + -AttackFrontal: + WithMuzzleOverlay: + AttackTurreted: + WithSpriteTurret: + RevealsShroud: + Range: 7c0 + Mobile: + Speed: 93 + Armament@damage: + Weapon: HMG + LocalOffset: -200,0,0 + MuzzleSequence: muzzle + Armament@muzzle: + Weapon: HMG_muzzle + LocalOffset: -200,0,0 + MuzzleSequence: muzzle + +crawler.light: + Inherits: ^Vehicle + Buildable: + Queue: Vehicle + Prerequisites: ~light.crawler, ~factions.subfaction_allowed, upgrade.light, outpost + BuildDuration: 405 + BuildDurationModifier: 100 + BuildPaletteOrder: 60 + Description: Light transporter \n Can transport 5 infantry units. \n Can hide while idle \n Can crush infantry + Health: + HP: 14000 + Valued: + Cost: 400 + Tooltip: + Name: Crawler + Armor: + Type: light + Mobile: + Speed: 92 + Locomotor: tank + PauseOnCondition: notmobile + SpeedMultiplier: + Modifier: 95 + RequiresCondition: full + RevealsShroud: + Range: 5c512 + Cargo: + Types: Infantry + MaxWeight: 5 + LoadingCondition: notmobile + LoadedCondition: full + Explodes: + Weapon: UnitExplodeSmall + EmptyWeapon: UnitExplodeSmall + WithCargoPipsDecoration: + Position: BottomLeft + Margin: 4, 3 + RequiresSelection: true + Cloak: + InitialDelay: 85 + CloakDelay: 85 + UncloakOn: Attack, Unload, Infiltrate, Demolish, Move, Damage, Heal + IsPlayerPalette: true + PauseOnCondition: cloak-force-disabled + GrantConditionOnDamageState@UNCLOAK: + Condition: cloak-force-disabled + ValidDamageStates: Critical + -Armament@chaos_bomb_influence: + +bombardment_tank: + Inherits: ^Vehicle + Inherits@GAINSEXPERIENCE: ^GainsExperience + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Buildable: + Queue: Armor + Prerequisites: ~heavy.corrino, upgrade.heavy, research_centre, ~factions.subfaction_allowed + BuildDuration: 690 + BuildDurationModifier: 100 + BuildPaletteOrder: 105 + Description: Heavy missile barrage affecting large area. \n Strong VS Infantry, Light armor \n Weak VS moving targets, tanks \n Ability: can fire 4 missile before reload \n High inaccuraty + Health: + HP: 22000 + Valued: + Cost: 1200 + Tooltip: + Name: Bombardment tank + Armor: + Type: light + Mobile: + Speed: 40 + TurnSpeed: 17 + RevealsShroud: + Range: 5c512 + Turreted: + TurnSpeed: 15 + Offset: -200,0,170 + AttackTurreted: + WithMuzzleOverlay: + WithSpriteTurret: + Explodes: + Weapon: UnitExplodeMed + EmptyWeapon: UnitExplodeMed + AmmoPool: + Ammo: 4 + AmmoCondition: ammo + ReloadAmmoPool: + Count: 1 + Delay: 80 + Armament: + Weapon: clusterMissile + LocalOffset: -200,128,171, -200,-128,171, -200,70,250, -200,-70,300 + PauseOnCondition: ammo == 0 + Armament@chaos_bomb_influence: + Weapon: clusterMissile + WithAmmoPipsDecoration: + PipCount: 4 + SpawnActorOnDeath: + Actor: bombardment_tank.husk + SpawnAfterDefeat: false + RequiresCondition: !worm_attack + -RevealOnFire: + +flamer: + Inherits: ^Tank + Inherits@GAINSEXPERIENCE: ^GainsExperience + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tanks + Priority: 25 + RequiresCondition: ignore-creeps + AutoTargetPriority@bot2: + ValidTargets: Vehicle + InvalidTargets: Tanks + Priority: 10 + RequiresCondition: bot-owned + Buildable: + Queue: Armor + BuildDuration: 580 + BuildDurationModifier: 100 + BuildPaletteOrder: 106 + Prerequisites: ~heavy.smuggler, research_centre, upgrade.heavy + Description: Flamer \n Strong VS Infantry, Heavy armor, Buildings \n Weak VS Tanks, Defenses \n Destroy spice + Health: + HP: 25000 + Valued: + Cost: 1000 + Tooltip: + Name: Flamer + Armor: + Type: heavy + Mobile: + Speed: 75 + RevealsShroud: + Range: 4c750 + AttackFrontal: + FacingTolerance: 0 + AutoTarget: + ScanRadius: 6 + Explodes: + Weapon: UnitExplodeMed + EmptyWeapon: UnitExplodeMed + DeathTypes: BulletDeath + Explodes@big: + Weapon: flamer_explosion_big + EmptyWeapon: flamer_explosion_big + DeathTypes: ExplosionDeath, SoundDeath, FireDeath, SmallExplosionDeath + Explodes@small1: + Offset: 500,400,0 + Chance: 50 + Weapon: flamer_explosion_small + EmptyWeapon: flamer_explosion_small + DeathTypes: ExplosionDeath, SoundDeath, FireDeath, SmallExplosionDeath + Explodes@small2: + Offset: -800,-300,0 + Chance: 50 + Weapon: flamer_explosion_small02 + EmptyWeapon: flamer_explosion_small02 + DeathTypes: ExplosionDeath, SoundDeath, FireDeath, SmallExplosionDeath + Explodes@small3: + Offset: 200,900,0 + Chance: 50 + Weapon: flamer_explosion_small03 + EmptyWeapon: flamer_explosion_small03 + DeathTypes: ExplosionDeath, SoundDeath, FireDeath + Armament: + Weapon: flamethrower + LocalOffset: 100,0, 200 + Armament@chaos_bomb_influence: + Weapon: flamethrower + SpawnActorOnDeath: + Actor: flamer.husk + DeathType: BulletDeath + RequiresCondition: !worm_attack + +frigate.harkonnen: + Inherits: carryall.reinforce_with_sound + RenderSprites: + Image: frigate.harkonnen + Health: + HP: 14000 + Aircraft: + IdleBehavior: LeaveMapAtClosestEdge + Speed: 170 + TakeoffSounds: audio/EITSTakeOff.wav + LandingSounds: audio/EITSLand.wav + SpawnActorOnDeath@CRUISING: + Actor: frigate.husk + RequiresCondition: cruising + AmbientSound: + SoundFiles: audio/frigate_new2.wav + RequiresCondition: cruising + SpawnActorOnDeath@LANDING: + Actor: frigate.huskvtol + RejectsOrders: + -SpawnActorOnDeath@rotor: + -SpawnActorOnDeath@rotor2: + +frigate.harkonnen_cargo: + Inherits: frigate.harkonnen + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + RenderSprites: + Image: frigate.harkonnen + Aircraft: + IdleBehavior: None + Health: + HP: 13000 + RejectsOrders: + Armament: + Weapon: clusterMissile + LocalOffset: -100,0,0, -100,100,0, -100,200,0 + PauseOnCondition: ammo == 0 + RequiresCondition: landing_area + ExternalCondition@activateWeapon: + Condition: landing_area + AmmoPool: + Ammo: 12 + AmmoCondition: ammo + AutoTarget: + InitialStance: AttackAnything + Cargo: + Types: Infantry, Vehicle + PassengerFacing: 512 + BeforeUnloadDelay: 50 + Turreted: + AttackTurreted: + + +frigate_choam: + Inherits: carryall.reinforce + ParaDrop: + RenderSprites: + Image: frigate + AmbientSound: + SoundFiles: audio/frigate_new2.wav + RequiresCondition: cruising + Cargo: + MaxWeight: 20 + RejectsOrders: + ProximityExternalCondition: + Condition: frigate_proximity_influence + Range: 6c0 + Aircraft: + IdleBehavior: LeaveMapAtClosestEdge + Speed: 170 + TurnSpeed: 4 + Repulsable: False + MaximumPitch: 20 + CruiseAltitude: 2048 + VTOL: true + CanHover: true + CanSlide: true + TakeoffSounds: audio/EITSTakeOff.wav + LandingSounds: audio/frigate_land.wav + SpawnActorOnDeath@CRUISING: + Actor: frigate.husk + SpawnActorOnDeath@LANDING: + Actor: frigate.huskvtol + +thumper: + Buildable: + Prerequisites: ~disabled + -Armament@chaos_bomb_influence: + +sardaukar: + Buildable: + Prerequisites: ~disabled + Armament@chaos_bomb_influence: + Weapon: M_HMG + Armament@chaos_bomb_influence2: + Weapon: M_LMG + RequiresCondition: chaos_bomb + + + +merged.fremen_fedaykin: + Inherits: fremen_fedaykin + Buildable: + BuildDuration: 160 + Prerequisites: ~techlevel.high, ~factions.merged, barracks, upgrade.barracks, merged.fremen_sietch, ~merged.fremen + RenderSprites: + Image: fremen + + +merged.sardaukar: + Inherits: mpsardaukar.corrino + RenderSprites: + Image: sardaukar + Buildable: + Prerequisites: ~techlevel.high, ~factions.merged, ~merged.corrino, merged.corrino_palace, barracks, upgrade.barracks + +merged.bombardment_tank: + Inherits: bombardment_tank + RenderSprites: + Image: bombardment_tank + Buildable: + Prerequisites: ~techlevel.high,~factions.merged, ~merged.corrino, heavy_factory, upgrade.heavy, research_centre + +merged.flamer: + Inherits: flamer + RenderSprites: + Image: flamer + Buildable: + Prerequisites: ~techlevel.high, ~factions.merged, ~merged.smuggler, research_centre, heavy_factory, upgrade.heavy, merged.starport_smuggler + +merged.hunter: + Inherits: hunter + RenderSprites: + Image: hunter + Buildable: + Prerequisites: ~factions.merged, ~light.hunter, upgrade.light, ~merged.smuggler + BuildPaletteOrder: 50 + +merged.hunter_fremen: + Inherits: hunter + RenderSprites: + Image: hunter + Buildable: + Prerequisites: ~factions.merged, upgrade.light, ~merged.fremen + BuildPaletteOrder: 50 + +merged.crawler.light: + Inherits: crawler.light + RenderSprites: + Image: crawler.light + Buildable: + BuildPaletteOrder: 106 + Prerequisites: ~merged.mercenary, outpost, ~factions.merged, ~techlevel.high, upgrade.light, light_factory + +merged.mortar_inf: + Inherits: mortar_inf + RenderSprites: + Image: mortar_inf + Buildable: + Prerequisites: ~merged.mercenary, outpost, ~factions.merged, ~techlevel.high, barracks, upgrade.barracks, merged.mercenary_factory + +merged.bison_tank: + Inherits: bison_tank + RenderSprites: + Image: bison_tank + Buildable: + Prerequisites: merged.mercenary_factory, ~merged.mercenary, ~factions.merged, ~techlevel.high, research_centre diff --git a/mods/d2k/maps/01scriptrework/Enhanced_Weapons09.yaml b/mods/d2k/maps/01scriptrework/Enhanced_Weapons09.yaml new file mode 100644 index 000000000000..6617f1586274 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_Weapons09.yaml @@ -0,0 +1,1229 @@ + +^MG: + ReloadDelay: 36 + Range: 3c0 + Report: MGUN2.WAV + Projectile: InstantHit + Inaccuracy: 128 + InaccuracyType: PerCellIncrement + Blockable: true + Warhead@1Dam: SpreadDamage + Damage: 1500 + Spread: 600 + Falloff: 100, 0 + Versus: + wall: 10 + building: 25 + wood: 50 + light: 35 + heavy: 13 + invulnerable: 0 + cy: 15 + harvester: 25 + DamageTypes: Prone50Percent, TriggerProne, BulletDeath + DamageCalculationType: ClosestTargetablePosition + Warhead@2Eff: CreateEffect + Explosions: piffs + ImpactActors: false + Warhead@3Concrete: DamagesConcrete + Damage: 1250 + Warhead@test: LeaveSmudge + SmudgeType: Building + InvalidTargets: Vehicle, Structure + +LMG: + Inherits: ^MG + +Fremen_S: + Inherits: ^MG + ReloadDelay: 48 + Report: FREMODD1.WAV + Warhead@2Eff: CreateEffect + Explosions: small_explosion + +M_LMG: + Inherits: ^MG + ReloadDelay: 48 + ValidTargets: Infantry + +M_LMG_H: + Inherits: M_LMG + ReloadDelay: 48 + +HMG: + Inherits: ^MG + ReloadDelay: 24 + Range: 3c870 + Report: 20MMGUN1.WAV + Projectile: InstantHit + Inaccuracy: 135 + Warhead@1Dam: SpreadDamage + Damage: 2160 + Spread: 700 + Versus: + none: 120 + building: 30 + wood: 50 + light: 30 + heavy: 15 + invulnerable: 0 + Warhead@3Concrete: DamagesConcrete + Damage: 1800 + +HMGo: + Inherits: HMG + ReloadDelay: 21 + +HMG_muzzle: + ReloadDelay: 20 + Range: 4c440 + +M_HMG: + Inherits: ^MG + ReloadDelay: 48 + Range: 4c0 + Report: 20MMGUN1.WAV + InvalidTargets: Infantry + Warhead@1Dam: SpreadDamage + Damage: 2800 + Versus: + none: 25 + wall: 60 + building: 50 + light: 100 + heavy: 50 + invulnerable: 0 + cy: 20 + harvester: 50 + Warhead@3Concrete: DamagesConcrete + Damage: 625 + +M_HMG_H: + Inherits: M_HMG + ReloadDelay: 55 + +Fremen_L: + Inherits: M_HMG + ReloadDelay: 55 + Report: FREMODD1.WAV + -InvalidTargets: + Projectile: Bullet + Image: RPG + Speed: 281 + TrailImage: bazooka_trail3 + TrailInterval: 1 + Warhead@1Dam: SpreadDamage + DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath + Warhead@2Eff: CreateEffect + Explosions: small_explosion + +Fremen_wormrider: + Inherits: Sound + ReloadDelay: 55 + Range: 5c0 + Report: FREMODD1.WAV + Projectile: AreaBeam + Width: 300 + Duration: 2 + DamageInterval: 1 + Speed: 0c350, 0c500 + MinDistance: 5c0 + BeyondTargetRange: 0c512 + Falloff: 50, 100, 100, 30, 0 + Range: 0, 4c0, 5c0, 8c0 + ZOffset: 2300 + Shape: Cylindrical + Color: 2636404F + Warhead@1Dam: SpreadDamage + Range: 0, 32 + Falloff: 100, 100 + Damage: 950 + AffectsParent: false + ValidRelationships: Neutral, Enemy, Ally + Versus: + building: 40 + infantry: 200 + +Fremen_wormrider2: + Inherits: Fremen_wormrider + ReloadDelay: 45 + Range: 5c0 + Report: FREMODD1.WAV + Projectile: AreaBeam + Width: 300 + Speed: 0c350, 0c500 + Shape: Cylindrical + ZOffset: 2300 + Warhead@1Dam: SpreadDamage + Range: 0, 32 + Falloff: 100, 100 + AffectsParent: false + ValidRelationships: Neutral, Enemy, Ally + +Fremen_L_MP: + Inherits: Fremen_L + Range: 4c0 + Warhead@1Dam: SpreadDamage + Versus: + building: 30 + wall: 50 + +Fremen_S_MP: + Inherits: Fremen_S + + +HMGo_muzzle: + ReloadDelay: 17 + +110mm_Gun: + Inherits: ^Cannon + ReloadDelay: 140 + Burst: 5 + BurstDelays: 15 + Range: 6c0 + Report: TURRET1.WAV + Projectile: Bullet + Speed: 875 + Blockable: false + InaccuracyType: Absolute + Warhead@1Dam: SpreadDamage + Damage: 3510 + Versus: + none: 80 + wall: 50 + light: 60 + building: 60 + wood: 80 + heavy: 30 + invulnerable: 0 + cy: 20 + harvester: 50 + +^Cannon: + ReloadDelay: 60 + Range: 4c112 + Report: MEDTANK1.WAV + Projectile: Bullet + Speed: 562 + Inaccuracy: 133 + InaccuracyType: PerCellIncrement + Warhead@1Dam: SpreadDamage + Damage: 3375 + Spread: 756 + Falloff: 100, 0 + Versus: + none: 40 + wall: 50 + building: 50 + wood: 65 + heavy: 80 + invulnerable: 0 + cy: 20 + harvester: 50 + DamageCalculationType: ClosestTargetablePosition + DamageTypes: Prone50Percent, SmallExplosionDeath + Warhead@prone: TargetDamage + Damage: 1 + Spread: 512 + DamageTypes: TriggerProne, SmallExplosionDeath + +80mm_A: + Inherits: ^Cannon + Range: 5c112 + +80mm_H: + Inherits: ^Cannon + ReloadDelay: 66 + Warhead@1Dam: SpreadDamage + Spread: 836 + +80mm_O: + Range: 4c112 + Inherits: ^Cannon + ReloadDelay: 54 + +80mm_cheap: + Inherits: ^Cannon + ReloadDelay: 68 + Projectile: Bullet + Inaccuracy: 135 + +80mm_corrino: + Inherits: ^Cannon + ReloadDelay: 68 + Projectile: Bullet + Inaccuracy: 145 + Warhead@1Dam: SpreadDamage + Spread: 1c112 + +80mm_double: + Inherits: ^Cannon + Burst: 2 + Report: TURRET1.WAV + ReloadDelay: 60 + BurstDelays: 6 + Range: 5c112 + Warhead@1Dam: SpreadDamage + Damage: 3510 + Versus: + none: 40 + wall: 50 + light: 80 + building: 60 + wood: 80 + heavy: 100 + invulnerable: 0 + cy: 20 + harvester: 50 + +155mm: + Inherits: ^Cannon + ReloadDelay: 105 + Range: 7c512 + MinRange: 2c0 + Projectile: Bullet + Inaccuracy: 180 + Speed: 192 + LaunchAngle: 85 + ContrailLength: 10 + Warhead@1Dam: SpreadDamage + Damage: 4800 + Spread: 1c880 + Falloff: 100, 0 + Versus: + none: 125 + wall: 70 + building: 100 + wood: 70 + light: 40 + heavy: 20 + invulnerable: 0 + cy: 30 + harvester: 30 + DamageTypes: ExplosionDeath, Prone50Percent + Warhead@triggerProne: TargetDamage + Damage: 1 + Spread: 1c700 + DamageTypes: TriggerProne + Warhead@2Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + +DevBullet: + Range: 4c512 + ReloadDelay: 85 + Speed: 281 + Warhead@1Dam: SpreadDamage + Damage: 7800 + Spread: 1c0 + Versus: + none: 60 + wall: 100 + building: 80 + wood: 100 + heavy: 100 + invulnerable: 0 + cy: 50 + harvester: 100 + DamageTypes: Prone50Percent, TriggerProne, FireDeath + +^Rocket: + ReloadDelay: 53 + Range: 3c852 + Report: ROCKET1.WAV + Projectile: Bullet + Blockable: true + Speed: 340 + Inaccuracy: 128 + Warhead@1Dam: SpreadDamage + Damage: 3600 + Spread: 600 + Falloff: 100, 0 + Versus: + none: 20 + wall: 60 + building: 40 + wood: 50 + light: 70 + heavy: 100 + invulnerable: 0 + cy: 20 + harvester: 60 + +Bazooka: + Inherits: ^Rocket + +Rocket: + Inherits: ^Rocket + ReloadDelay: 50 + Burst: 2 + BurstDelays: 10 + Range: 4c0 + Projectile: Bullet + Speed: 350 + Inaccuracy: 150 + Warhead@1Dam: SpreadDamage + Damage: 3000 + Spread: 600 + Versus: + none: 25 + wall: 60 + building: 50 + wood: 65 + light: 100 + heavy: 50 + invulnerable: 0 + cy: 20 + harvester: 60 + +^Missile: + Inherits: ^Rocket + ReloadDelay: 72 + Range: 8c512 + MinRange: 0c650 + Projectile: Missile + Inaccuracy: 190 + InaccuracyType: Absolute + HorizontalRateOfTurn: 22 + RangeLimit: 9c614 + CruiseAltitude: 1c0 + Blockable: false + MinimumLaunchAngle: 64 + VerticalRateOfTurn: 30 + Jammable: true + Speed: 288 + Warhead@1Dam: SpreadDamage + Damage: 3240 + Spread: 960 + Falloff: 100, 10 + Versus: + none: 20 + wall: 75 + building: 60 + wood: 65 + light: 80 + heavy: 100 + invulnerable: 0 + cy: 30 + harvester: 60 + +mtank_pri: + Inherits: ^Missile + ReloadDelay: 145 + Burst: 2 + BurstDelays: 30 + Range: 8c0 + ValidTargets: Ground, Air + Projectile: Missile + RangeLimit: 10c204 + Warhead@1Dam: SpreadDamage + Damage: 4900 + ValidTargets: Ground, Air + DamageTypes: Prone50Percent, SmallExplosionDeath, TriggerProne + + +MissleTowerNew: + Inherits: mtank_pri + Range: 7c112 + Projectile: Missile + VerticalRateOfTurn: 40 + -MinRange: + +clusterMissile: + Inherits: ^Rocket + Report: audio/DeathHand_video.wav + Burst: 1 + BurstDelays: 20 + ReloadDelay: 20 + Range: 7c512 + MinRange: 2c221 + Projectile: Missile + Inaccuracy: 160 + InaccuracyType: PerCellIncrement + Image: MISSILE2 + Speed: 310 + LockOnProbability: 0 + Acceleration: 0c50 + MinimumLaunchSpeed: 150 + MaximumLaunchAngle: 200 + CruiseAltitude: 5c0 + RangeLimit: 9c0 + Blockable: true + Shadow: true + Width: 0c50 + ContrailLength: 3 + ContrailStartColor: 181616C6 + Warhead@1Dam: SpreadDamage + Damage: 3950 + Spread: 1c550 + Versus: + none: 100 + wall: 70 + building: 80 + wood: 100 + light: 100 + heavy: 50 + invulnerable: 0 + cy: 30 + harvester: 100 + Warhead@3Eff: CreateEffect + Explosions: sand, heavy_piff, med_explosion, tiny_explosion + ImpactActors: false + ValidTargets: Ground, Air + +clusterMissile.frigate: + Inherits: clusterMissile + ReloadDelay: 15 + Range: 8c512 + +clusterMissile.palace: + Inherits: clusterMissile + ReloadDelay: 40 + Projectile: Missile + MinimumLaunchSpeed: 80 + MaximumLaunchAngle: 200 + MinimumLaunchAngle: 40 + CruiseAltitude: 0 + +missile_Dummy: + Range: 8c512 + ReloadDelay: 600 + ValidTargets: Ground + Projectile: InstantHit + Warhead: SpreadDamage + Spread: 0 + Damage: 0 + + + +DeviatorMissile: + Inherits: ^Missile + ReloadDelay: 176 + Range: 6c0 + Projectile: Missile + RangeLimit: 6c512 + Inaccuracy: 96 + Warhead@1Dam: SpreadDamage + Damage: 2000 + Spread: 512 + Versus: + none: 100 + wall: 100 + building: 100 + wood: 100 + light: 100 + heavy: 100 + invulnerable: 0 + cy: 50 + harvester: 100 + DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath, ChokeDeath + Warhead@5OwnerChange: ChangeOwner + Range: 512 + Duration: 405 + InvalidTargets: Infantry, Structure + ValidRelationships: Enemy, Neutral + Warhead@Trigger: GrantExternalCondition + Condition: unitCapturated + Duration: 405 + +DeviatorGas: + Warhead@5OwnerChange: ChangeOwner + Range: 2c0 + Duration: 160 + InvalidTargets: Infantry, Structure + Warhead@3Eff: CreateEffect + Explosions: deviator + ExplosionPalette: player + UsePlayerPalette: true + + + + +Sound: + ReloadDelay: 100 + Range: 6c0 + Report: SONIC1.WAV + Projectile: AreaBeam + Inaccuracy: 128 + InaccuracyType: PerCellIncrement + Duration: 4 + DamageInterval: 3 + Width: 980 + Shape: Flat + Falloff: 20, 100, 0, 0 + Range: 0, 6c0, 7c512 + BeyondTargetRange: 0c0 + MinDistance: 7c0 + Color: 00FFFFC8 + Warhead@1Dam: SpreadDamage + Range: 0, 32 + Falloff: 100, 100 + Damage: 1282 + AffectsParent: false + ValidRelationships: Neutral, Enemy + Versus: + none: 195 + wall: 120 + building: 100 + wood: 110 + light: 120 + heavy: 50 + invulnerable: 0 + cy: 70 + harvester: 130 + DamageTypes: Prone50Percent, TriggerProne, SoundDeath + Warhead@3Concrete: DamagesConcrete + Damage: 1720 + +Sound.Ally: + Inherits: Sound + Projectile: AreaBeam + Shape: Flat + Color: 00FFFF00 + Falloff: 10, 100, 0, 0 + Range: 0, 6c0, 7c512 + Warhead@1Dam: SpreadDamage + ValidRelationships: Ally + +OrniBomb: + ReloadDelay: 25 + Burst: 5 + BurstDelays: 6 + Range: 3c0 + Report: audio/OrniBomb01.wav + Projectile: GravityBomb + Image: BOMBS + Velocity: 0, 0, -64 + Acceleration: 0, 0, 0 + Shadow: true + Warhead@1Dam: SpreadDamage + Damage: 9000 + Spread: 2c0 + Falloff: 100, 0 + Versus: + none: 90 + wall: 170 + building: 80 + wood: 100 + light: 110 + heavy: 120 + invulnerable: 0 + cy: 30 + harvester: 60 + + +OrniBomb_multipass: + Inherits: OrniBomb + ReloadDelay: 60 + Burst: 10 + BurstDelays: 6 + Range: 3c0 + TargetActorCenter: true + ValidTargets: Air_support, Ground + Projectile: GravityBomb + Image: BOMBS + Velocity: 0, 0, -64 + Acceleration: 0, 0, 0 + Shadow: true + Warhead@1Dam: SpreadDamage + Damage: 7000 + ValidTargets: Air_support, Ground + Versus: + none: 90 + wall: 170 + building: 70 + wood: 100 + light: 110 + heavy: 120 + invulnerable: 0 + cy: 30 + harvester: 60 + +Ornithopter_MG: + Inherits: HMG + ReloadDelay: 60 + Range: 6c0 + Burst: 8 + FirstBurstTargetOffset: -2984,0,0 + FollowingBurstTargetOffset: 950,0,0 + Warhead@1Dam: SpreadDamage + Damage: 4500 + Spread: 1c412 + Versus: + none: 120 + wall: 10 + building: 40 + wood: 100 + light: 50 + heavy: 20 + invulnerable: 0 + cy: 20 + harvester: 50 + +DeathHand: + Warhead@Cluster: FireCluster + Weapon: DeathHandCluster + RandomClusterCount: 36 + Dimensions: 6,6 + Footprint: xXxXxX xxXXxx xXXXXx xxXXxx xXxxXx XxXxXx + Warhead@2Eff: CreateEffect + Explosions: nuke + ImpactSounds: audio/bigexplosion01.wav + ImpactActors: false + Warhead@Shake: ShakeScreen + Duration: 20 + Intensity: 5 + Multiplier: 1,1 + Warhead@flash: FlashEffect + FlashType: flash + Duration: 20 + +DeathHandCluster: + Inherits: Debris2 + Range: 7c0 + Report: audio/bigexplosion01.wav + Projectile: Bullet + Image: 120mm + Speed: 96 + LaunchAngle: 0, 32 + Inaccuracy: 1c512 + BounceCount: 0 + Warhead@1Dam: SpreadDamage + Damage: 8000 + Spread: 1c950 + Versus: + none: 120 + wall: 170 + building: 60 + wood: 80 + light: 70 + heavy: 60 + invulnerable: 0 + cy: 25 + harvester: 60 + Warhead@3Eff: CreateEffect + Explosions: large_explosion + ImpactSounds: EXPLSML4.WAV, EXPLSML1.WAV, EXPLSML2.WAV + +grenade: + ReloadDelay: 65 + Range: 4c0 + Projectile: Bullet + Speed: 160 + Blockable: false + LaunchAngle: 128 + Inaccuracy: 128 + InaccuracyType: PerCellIncrement + Image: grenade + Shadow: true + Warhead@1Dam: SpreadDamage + Damage: 1810 + Falloff: 100, 0 + Versus: + none: 125 + building: 80 + wall: 50 + wood: 100 + light: 30 + heavy: 20 + invulnerable: 0 + cy: 30 + harvester: 30 + +Debris: + ReloadDelay: 60 + Range: 2c768 + Projectile: Bullet + Speed: 32, 64 + Blockable: false + LaunchAngle: 128, 192 + Inaccuracy: 1c256 + Image: shrapnel + Shadow: true + BounceCount: 3 + BounceRangeModifier: 20 + Warhead@1Dam: SpreadDamage + Damage: 1500 + Spread: 512 + Falloff: 100, 0 + Versus: + none: 60 + wall: 50 + building: 50 + wood: 60 + light: 100 + heavy: 60 + concrete: 100 + invulnerable: 0 + cy: 20 + harvester: 50 + +DeathHandClusterDebris: + Inherits: Debris2 + Range: 7c0 + Projectile: Bullet + Image: 120mm + TrailImage: small_trail2 + Speed: 50, 70 + LaunchAngle: 150, 220 + Inaccuracy: 2c512 + BounceCount: 1 + ContrailLength: 0 + Warhead@1Dam: SpreadDamage + Damage: 4000 + Spread: 1c562 + Versus: + none: 150 + wall: 80 + building: 100 + wood: 100 + light: 130 + heavy: 80 + invulnerable: 0 + cy: 80 + harvester: 100 + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + DamageCalculationType: ClosestTargetablePosition + Warhead@2Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + InvalidTargets: Vehicle, Structure + Warhead@3Eff: CreateEffect + Explosions: large_explosion, building, wall_explosion + ImpactSounds: EXPLSML4.WAV + Warhead@4Concrete: DamagesConcrete + Damage: 4500 + +DerbisDeviator: + Inherits: Debris2 + Warhead@3Eff: CreateEffect + Explosions: deviator + UsePlayerPalette: true + Warhead@5OwnerChange: ChangeOwner + Range: 1c0 + Duration: 120 + +DerbisDeviator_big: + Projectile: Bullet + Speed: 32, 64 + Blockable: false + LaunchAngle: 20, 60 + Inaccuracy: 0 + BounceCount: 0 + Inherits: DerbisDeviator + Warhead@5OwnerChange: ChangeOwner + Range: 2c512 + Duration: 150 + +Derbis: + Warhead@1Dam: SpreadDamage + AffectsParent: False + +DerbisSiegetank: + Inherits: Debris2 + Projectile: Bullet + Speed: 40, 60 + Inaccuracy: 3c256 + Warhead@1Dam: SpreadDamage + Damage: 2500 + Spread: 1c512 + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + Warhead@3Eff: CreateEffect + Explosions: med_explosion + ImpactSounds: EXPLMD2.WAV + +DerbisMissile: + Inherits: ^Missile + -Report: + Projectile: Missile + HorizontalRateOfTurn: 20 + MinimumLaunchAngle: 120 + MaximumLaunchAngle: 250 + VerticalRateOfTurn: 20 + CruiseAltitude: 0 + ExplodeWhenEmpty: false + Speed: 250 + Warhead@1Dam: SpreadDamage + Spread: 1c0 + +PlasmaExplosion: + Warhead@1Dam: SpreadDamage + Damage: 30000 + Spread: 6c0 + Falloff: 100, 20 + ValidRelationships: Neutral, Enemy + Versus: + None: 100 + Wood: 100 + Light: 100 + Heavy: 100 + invulnerable: 0 + Concrete: 60 + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + DamageCalculationType: ClosestTargetablePosition + Warhead@2Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + Size: 3,3 + Chance: 100 + Warhead@SmugleUnder1: LeaveSmudge + SmudgeType: SandCrater, RockCrater + Size: 1,1 + Chance: 100 + Warhead@SmugleUnder2: LeaveSmudge + SmudgeType: SandCrater, RockCrater + Size: 2,2 + Chance: 80 + Warhead@SmugleUnder3: LeaveSmudge + SmudgeType: SSandCrater, RockCrater + Size: 4,4 + Chance: 90 + Warhead@3Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + Size: 5,5 + Delay: 3 + Chance: 90 + Warhead@4Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + Size: 6,6 + Delay: 6 + Chance: 80 + Warhead@3Eff: CreateEffect + Explosions: devastator + ImpactSounds: EXPLMD1.WAV + Warhead@soundEff4: CreateEffect + ImpactSounds: audio/new_DeathHandnew.wav, audio/bigxplosion02.wav + Delay: 0 + Warhead@4Concrete: DamagesConcrete + Damage: 20000 + Warhead@5Shake: ShakeScreen + Duration: 15 + Intensity: 10 + Multiplier: 2,2 + Warhead@6ResorceKill: DestroyResource + Size: 6 + +PlasmaSaboteur: + Inherits: PlasmaExplosion + Warhead@1Dam: SpreadDamage + Spread: 3c0 + Damage: 20000 + Falloff: 100, 50, 20 + ValidRelationships: Neutral, Enemy, Ally + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + Warhead@additionalinfantrydmg: SpreadDamage + Spread: 6c512 + Damage: 10000 + Delay: 5 + Falloff: 100, 10 + Versus: + none: 100 + building: 0 + wall: 10 + wood: 20 + light: 30 + heavy: 10 + invulnerable: 0 + cy: 0 + harvester: 0 + Warhead@Sound: CreateEffect + ImpactSounds: EXPLMD1.WAV + Warhead@6ResorceKill: DestroyResource + Size: 6 + +HarvesterSpiceExplosion: + Projectile: Bullet + Speed: 40, 65 + Blockable: false + LaunchAngle: 60, 90 + TrailImage: large_trail + Image: 120mm + Warhead@1Dam: SpreadDamage + Damage: 750 + Spread: 1c0 + Falloff: 100, 0 + Versus: + none: 90 + wall: 5 + building: 65 + wood: 50 + light: 40 + heavy: 30 + invulnerable: 0 + cy: 20 + harvester: 25 + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + DamageCalculationType: ClosestTargetablePosition + AffectsParent: false + Warhead@2Res: CreateResource + AddsResourceType: Spice + Size: 1 + Warhead@3Eff: CreateEffect + Explosions: med_explosion + ImpactActors: false + +GrenDeath: + Warhead@1Dam: SpreadDamage + Damage: 1600 + Spread: 1c112 + +SardDeath: + Warhead@1Dam: SpreadDamage + Damage: 3800 + Spread: 625 + Versus: + none: 20 + wall: 75 + building: 60 + wood: 65 + light: 80 + invulnerable: 0 + cy: 30 + harvester: 50 + +rocket_spike: + Inherits: Rocket + ReloadDelay: 45 + Burst: 1 + Range: 4c112 + Projectile: Bullet + Speed: 350 + Inaccuracy: 128 + + +40mm_mortar: + Inherits: ^Cannon + ReloadDelay: 80 + Range: 6c512 + MinRange: 2c0 + Report: audio/EBoD_MortarFire.wav + Projectile: Bullet + Speed: 110 + Blockable: false + Inaccuracy: 150 + Shadow: true + LaunchAngle: 180 + ContrailLength: 20 + Image: 155mm + Warhead@1Dam: SpreadDamage + Damage: 2500 + Spread: 1c350 + Falloff: 100, 0 + Versus: + none: 145 + wall: 40 + building: 100 + wood: 110 + light: 60 + heavy: 20 + invulnerable: 0 + cy: 40 + harvester: 50 + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + Warhead@4Concrete: DamagesConcrete + Damage: 3500 + Warhead@3Eff: CreateEffect + Explosions: med_explosion + ImpactSounds: audio/EBoD_MortarExplosion.wav + +portable_cannon: + ReloadDelay: 65 + Range: 5c512 + Report: BAZOOK1.WAV + Projectile: InstantHit + Blockable: true + Inaccuracy: 400 + InaccuracyType: Maximum + Warhead@damage: SpreadDamage + Damage: 3200 + Spread: 0c450 + Falloff: 100, 0 + Versus: + none: 10 + wall: 100 + building: 60 + wood: 80 + light: 70 + heavy: 100 + invulnerable: 0 + cy: 80 + harvester: 100 + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + Warhead@effect1: CreateEffect + Explosions: sand + Warhead@2Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + InvalidTargets: Vehicle, Structure + Warhead@4Concrete: DamagesConcrete + Damage: 540 + +pistol: + Inherits: ^MG + Report: audio/hk_engineer_pistol_1.wav + Range: 2c512 + ReloadDelay: 60 + Projectile: InstantHit + Inaccuracy: 50 + Warhead@1Dam: SpreadDamage + Damage: 1100 + Spread: 180 + -Warhead@2Eff: + -Warhead@3Concrete: + +dummy.targeting: + Inherits: pistol + Range: 4c0 + ReloadDelay: 70 + Warhead@NeededForTargeting: TargetDamage + InvalidTargets: Structure + +SniperRifle: + Report: audio/FIREWORKS.WAV + ReloadDelay: 120 + AfterFireSound: audio/EBoD_infantry_reload_low.wav + AfterFireSoundDelay: 50 + Range: 5c0 + ValidTargets: Ground, Infantry + InvalidTargets: Vehicle, Tank, Structure, Wall, Husk, Creep + Projectile: InstantHit + Inaccuracy: 220 + Warhead@1Dam: SpreadDamage + Spread: 200 + Falloff: 100, 0 + Damage: 9000 + ValidTargets: Infantry + DamageTypes: Prone50Percent, TriggerProne, BulletDeath + DamageCalculationType: ClosestTargetablePosition + Warhead@3Eff: CreateEffect + Explosions: heavy_piff + +flamethrower: + Range: 4c712 + ReloadDelay: 38 + Burst: 5 + BurstDelays: 5 + FirstBurstTargetOffset: 0, 0, 0 + FollowingBurstTargetOffset: 50,-50,0 + StartBurstReport: FLAMER1.WAV + Projectile: Bullet + Inaccuracy: 250 + Speed: 180 + InaccuracyType: PerCellIncrement + TrailImage: flame_trail + TrailSequences: idle, small_napalm_trail + TrailInterval: 0 + TrailDelay: 1 + Warhead@1damage: SpreadDamage + Spread: 1c250 + Damage: 2000 + Falloff: 100, 0 + Versus: + none: 110 + wall: 30 + building: 80 + wood: 100 + light: 60 + heavy: 25 + invulnerable: 0 + cy: 25 + harvester: 50 + DamageTypes: TriggerProne, FireDeath + DamageCalculationType: ClosestTargetablePosition + Warhead@2Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + InvalidTargets: Vehicle, Structure + Warhead@3Eff: CreateEffect + Explosions: fire2 + ImpactSounds: audio/flamethrower.wav + ImpactSoundChance: 70 + ImpactActors: false + ValidTargets: Ground, Air + Warhead@4Concrete: DamagesConcrete + Damage: 50 + Warhead@spiceburner: DestroyResource + Delay: 5 + Size: 0,0 + +chaosbomb1: + ReloadDelay: 30 + Range: 0c112 + AfterFireSound: audio/daisy_whistle.wav + Report: audio/OrniBomb01.wav + Projectile: GravityBomb + Image: BOMBS + Velocity: 0, 0, -10 + Acceleration: 0, 0, -2 + Shadow: true + Warhead@3Eff: CreateEffect + Explosions: gascloud + ExplosionPalette: player + UsePlayerPalette: true + ImpactSounds: audio/daisygas.wav + ImpactActors: false + Warhead@extenalcondition: GrantExternalCondition + Condition: chaos_bomb + Duration: 550 + Range: 1c0 + Warhead@hackToResetQuery: GrantExternalCondition + Condition: notmobile + Duration: 10 + Range: 15c0 + +chaosbomb2: + Inherits: chaosbomb1 + -Report: + Projectile: GravityBomb + -Image: BOMBS + Shadow: false + -Warhead@3Eff: + Warhead@extenalcondition: GrantExternalCondition + Range: 3c0 + +chaosbomb3: + Inherits: chaosbomb1 + -Report: + Projectile: GravityBomb + -Image: BOMBS + Shadow: false + -Warhead@3Eff: + Warhead@extenalcondition: GrantExternalCondition + Range: 4c0 + +chaosbomb4: + Inherits: chaosbomb1 + -Report: + Projectile: GravityBomb + -Image: BOMBS + Shadow: false + Warhead@extenalcondition: GrantExternalCondition + Range: 6c0 + +chaosbomb_from_husk: + Warhead@extenalcondition: GrantExternalCondition + Condition: chaos_bomb + Duration: 300 + Range: 5c0 + Warhead@3Eff: CreateEffect + Explosions: gascloud + ExplosionPalette: player + UsePlayerPalette: true + ImpactSounds: EXPLSML4.WAV + ImpactActors: false + +hideWeapon: + Warhead: GrantExternalCondition + Duration: 750 + Range: 4c0 + Condition: temporery_clock + ValidRelationships: Ally + +dummy_aim: + Range: 7c0 + Projectile: Bullet + ReloadDelay: 40 + Warhead: TargetDamage + Damage: 0 + +dummy_aim2: + Range: 7c0 + Projectile: Bullet + ReloadDelay: 400 + Warhead: TargetDamage + Damage: 0 diff --git a/mods/d2k/maps/01scriptrework/Enhanced_WeaponsFX.yaml b/mods/d2k/maps/01scriptrework/Enhanced_WeaponsFX.yaml new file mode 100644 index 000000000000..a9a08bd43952 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_WeaponsFX.yaml @@ -0,0 +1,449 @@ +Derbis: + Warhead@1Dam: SpreadDamage + AffectsParent: False + +empty_shell01: + ReloadDelay: 60 + Range: 6c0 + ValidTargets: Infantry, Vehicle, Building, Wall, Ground, Water, Air + Projectile: Bullet + Speed: 50, 70 + Inaccuracy: 1c512 + InaccuracyType: PerCellIncrement + LaunchAngle: 91, 140 + Image: empty_shell01 + Shadow: true + Warhead@effect: CreateEffect + Explosions: empty_shell_frame_01 + + +debris_vehicle01: + Inherits: Debris2 + Projectile: Bullet + Image: shrapnel_vehicle01 + Warhead: CreateEffect + Explosions: tiny_explosion + ImpactSoundChance: 50 + ImpactActors: false + ImpactSounds: audio/new_DerbisHeavy01.wav, audio/new_DerbisHeavy02.wav, audio/new_derbisLight01.wav, audio/new_derbisHeavy_bounce02.wav + +debris_vehicle02: + Inherits: Debris3 + Projectile: Bullet + Image: shrapnel_vehicle02 + BounceSound: audio/new_derbisLight_bounce01.wav + BounceCount: 2 + Warhead: CreateEffect + Explosions: tiny_explosion + ImpactSoundChance: 50 + ImpactActors: false + ImpactSounds: audio/new_DerbisHeavy01.wav, audio/new_DerbisHeavy02.wav, audio/new_derbisHeave_bounce01.wav, audio/new_derbisHeavy_bounce02.wav + +debris_harvester_wheel01: + Inherits: Debris3 + Projectile: Bullet + Image: harvester_wheel01 + BounceCount: 2 + Warhead: CreateEffect + Explosions: tiny_explosion + ImpactSoundChance: 50 + ImpactActors: false + ImpactSounds: audio/new_DerbisHeavy01.wav, audio/new_DerbisHeavy02.wav, audio/new_derbisHeave_bounce01.wav, audio/new_derbisHeavy_bounce02.wav + +debris_harvester_wheel02: + Inherits: Debris3 + Projectile: Bullet + Image: harvester_wheel02 + BounceSound: audio/new_DerbisHeavy02.wav + BounceCount: 1 + TrailImage: bazooka_trail2 + TrailInterval: 2 + Warhead: CreateEffect + Explosions: tiny_explosion + ImpactSoundChance: 50 + ImpactActors: false + ImpactSounds: audio/new_DerbisHeavy01.wav, audio/new_DerbisHeavy02.wav, audio/new_derbisLight01.wav, audio/new_Cliff_Destroyed.wav + +debris.rotor: + Inherits: ^derbis.turret + Range: 1c512 + Projectile: + Image: debris_rotor_anim + Speed: 90, 110 + BounceCount: 2 + Blockable: false + BounceRangeModifier: 60 + TrailImage: bazooka_trail2 + TrailInterval: 2 + Warhead: CreateEffect + Explosions: tiny_explosion + ImpactSounds: audio/new_Cliff_Destroyed.wav + +^derbis.turret: + ReloadDelay: 60 + Range: 0c512 + Projectile: Bullet + Image: siege_turret_husk_anim + Speed: 50, 70 + Inaccuracy: 200 + Blockable: true + LaunchAngle: 40, 150 + BounceCount: 2 + Shadow: true + BounceRangeModifier: 20 + BounceSound: audio/new_DerbisHeavy02.wav + Warhead: CreateEffect + Explosions: tiny_explosion + ImpactSoundChance: 50 + ImpactActors: false + ImpactSounds: audio/new_DerbisHeavy01.wav, audio/new_DerbisHeavy02.wav, audio/new_derbisLight01.wav + Warhead@dmg: SpreadDamage + Damage: 5000 + Spread: 512 + Falloff: 100, 0 + Versus: + none: 100 + wall: 10 + building: 10 + buildingWeak: 10 + wood: 10 + light: 20 + heavy: 5 + invulnerable: 0 + cy: 5 + harvester: 5 + DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath + +derbisSiegetank.turret: + Inherits: ^derbis.turret + Warhead: CreateEffect + Explosions: siege_turret_frame01, siege_turret_frame02, siege_turret_frame03, siege_turret_frame04, siege_turret_frame05 + +debris_turret.atreides: + Inherits: ^derbis.turret + Projectile: Bullet + Image: tank_turrethusk_anim.atreides + Warhead: CreateEffect + Explosions: atreidis_turret_frame01, atreidis_turret_frame02, atreidis_turret_frame03, atreidis_turret_frame04 + +debris_turret01.atreides: + Inherits: debris_turret.atreides + Projectile: Bullet + Image: tank_turrethusk_anim01.atreides + +debris_turret.harkonnen: + Inherits: ^derbis.turret + Projectile: Bullet + Image: tank_turrethusk_anim.harkonnen + Warhead: CreateEffect + Explosions: harkonnen_turret_frame01, harkonnen_turret_frame02, harkonnen_turret_frame03, harkonnen_turret_frame04 + +debris_turret01.harkonnen: + Inherits: debris_turret.harkonnen + Projectile: Bullet + Image: tank_turrethusk_anim01.harkonnen + +debris_turret.ordos: + Inherits: ^derbis.turret + Projectile: Bullet + Image: tank_turrethusk_anim.ordos + Warhead: CreateEffect + Explosions: ordos_turret_frame01, ordos_turret_frame02, ordos_turret_frame03, ordos_turret_frame04 + +derbisRock01: + Inherits: Debris + Projectile: Bullet + Warhead@3Eff: CreateEffect + Explosions: tiny_explosion + ImpactActors: false + ImpactSoundChance: 20 + ImpactSounds: audio/new_derbisRock01.wav, audio/new_derbisRock02.wav, audio/new_derbisLight01.wav, audio/new_DerbisHeavy01.wav, audio/new_DerbisHeavy02.wav + +derbisRock02: + Inherits: Debris2 + Projectile: Bullet + Image: shrapnel_rock02 + -TrailImage: + Speed: 64, 90 + LaunchAngle: 20, 60 + Warhead@3Eff: CreateEffect + Explosions: tiny_explosion + ImpactActors: false + ImpactSoundChance: 30 + ImpactSounds: audio/new_derbisRock01.wav, audio/new_derbisRock02.wav, audio/new_derbisRock03.wav + +derbisRock03: + Inherits: Debris3 + Projectile: Bullet + Image: shrapnel_rock01 + BounceSound: audio/new_derbisRock02.wav + Speed: 40, 70 + LaunchAngle: 40, 110 + -TrailImage: + Warhead@3Eff: CreateEffect + Explosions: tiny_explosion + ImpactActors: false + ImpactSoundChance: 20 + ImpactSounds: audio/new_derbisRock01.wav, audio/new_derbisRock03.wav + + + +UnitExplodeMed: + Warhead@2Eff: CreateEffect + ImpactSounds: audio/new_DerbisHeavy01.wav, audio/EBoD_MortarExplosion.wav, EXPLSML2.WAV + ImpactSoundChance: 20 + Delay: 10 + ImpactActors: false + Warhead@explosiondmg: SpreadDamage + Damage: 1000 + Falloff: 100, 10 + DamageTypes: TriggerProne, SmallExplosionDeath + DamageCalculationType: ClosestTargetablePosition + Spread: 1c112 + none: 100 + wall: 20 + building: 20 + wood: 50 + light: 50 + heavy: 20 + concrete: 100 + invulnerable: 0 + cy: 20 + harvester: 30 + +BuildingExplode: + Warhead@1Eff: CreateEffect + Explosions: building + ImpactActors: false + Delay: 0 + Warhead@Smudges: LeaveSmudge + SmudgeType: Building_smudge + Size: 2,2 + +cliffExplode01: + Warhead@1Eff: CreateEffect + Explosions: building + ImpactActors: false + Delay: 0 + ImpactSounds: audio/new_Cliff_Destroyed.wav + Warhead@rockAvalanche: GrantExternalCondition + Condition: rock_avalanche + Range: 1c512 + +buildingExplosions02: + Warhead@2Eff: CreateEffect + Explosions: self_destruct + ImpactActors: false + ImpactSounds: EXPLSML1.WAV + Delay: 10 + Inaccuracy: 0c512 + Warhead@3Eff: CreateEffect + Explosions: large_explosion + ImpactActors: false + ImpactSounds: audio/ExplosionBuildingLightResonance01.wav + Delay: 10 + Inaccuracy: 1c0 + +buildingExplosions03: + Warhead@4Eff: CreateEffect + Explosions: building, self_destruct, large_explosion + ImpactActors: false + ImpactSounds: audio/new_DerbisBigExplosion01.wav + ImpactSoundChance: 60 + Inaccuracy: 1c512 + Delay: 10 + +buildingExplosions04_big: + Warhead@4Eff: CreateEffect + Explosions: building, self_destruct, large_explosion + ImpactActors: false + ImpactSounds: audio/bigxplosion17.wav + Inaccuracy: 1c512 + Delay: 0 + +buildingExplosions05: + Warhead@3Eff: CreateEffect + Explosions: building + ImpactActors: false + ImpactSounds: audio/explosion_large_2.wav + Inaccuracy: 1c512 + Delay: 10 + +buildingBigExplosion: + Inherits: PlasmaExplosion + Warhead@1Dam: SpreadDamage + Spread: 3c0 + Damage: 5000 + Falloff: 100, 50 + ValidRelationships: Neutral, Enemy, Ally + Warhead@flash: FlashEffect + FlashType: flash + Duration: 20 + Warhead@concrete: DamagesConcrete + Damage: 10000 + AffectsParent: true + -Warhead@3Smu: + -Warhead@4Smu: + +huskExplode01: + Warhead@1Eff: CreateEffect + Explosions: building, self_destruct + ImpactSounds: EXPLHG2.WAV , audio/EBoD_MortarExplosion.wav, EXPLSML1.WAV + ImpactActors: false + ImpactSoundChance: 70 + + +ExplosionWithDamege_large: + Inherits: UnitExplodeLarge + Warhead@dmg: SpreadDamage + Damage: 2500 + Spread: 1c512 + DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath + +ExplosionAircraft: + Warhead@sound: CreateEffect + Explosions: building + ImpactSounds: EXPLLG3.WAV + Inaccuracy: 1c0 + Warhead@eff: CreateEffect + Explosions: large_explosion + ImpactSounds: audio/bigxplosion17.wav + ImpactActors: false + Delay: 10 + Warhead@areadmg: TargetDamage + Spread: 1c512 + Damage: 10000 + DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath + Versus: + none: 110 + light: 90 + heavy: 30 + building: 120 + harvester: 70 + buildingWeak: 120 + wall: 80 + invulnerable: 0 + cy: 30 + +ExplosionFrigate: + Inherits: ExplosionAircraft + Warhead@eff: CreateEffect + Explosions: large_explosion + ImpactSounds: audio/explosion_large_2.wav + ImpactActors: false + Delay: 10 + Warhead@areadmg: SpreadDamage + Spread: 2c0 + Damage: 25000 + Falloff: 100 , 10 + DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath + Versus: + none: 125 + light: 100 + heavy: 50 + building: 100 + harvester: 70 + buildingWeak: 100 + wall: 80 + invulnerable: 0 + cy: 30 + +worm_explode: + Warhead@3Eff: CreateEffect + Explosions: worm_explode + ImpactSounds: WORM.WAV + Warhead@4Eff: CreateEffect + Explosions: worm_explode_smoke + Warhead@rockAvalanche: GrantExternalCondition + Condition: rock_avalanche + Range: 1c512 + +worm_disapier: + Warhead@eff: CreateEffect + Explosions: wormdisapier + +chaosambiencesounds: + ReloadDelay: 20 + InvalidTargets: Structure + Range: 3c512 + Projectile: Bullet + Warhead@NeededForTargeting: TargetDamage + InvalidTargets: Structure + Warhead@sounds: CreateEffect + ImpactSoundChance: 5 + ImpactSounds: audio/burn_dying_6.wavaudio/burn_dying_6.wav, audio/EBoD_normal_dying_2.wav, audio/EBoD_normal_dying_3.wav audio/choke_dying_6.wav, audio/burn_dying_1.wav audio/choke_dying_2.wav, audio/choke_dying_6.wav + +flamer_explosion_big: + Warhead@damagedarea1: TargetDamage + Spread: 2c0 + Damage: 2000 + Versus: + none: 110 + wall: 75 + building: 80 + buildingWeak: 90 + wood: 70 + light: 60 + heavy: 30 + invulnerable: 0 + cy: 20 + harvester: 50 + DamageTypes: FireDeath + Warhead@damagedarea1: SpreadDamage + Spread: 2c0 + Falloff: 100, 0 + Damage: 10000 + Versus: + none: 110 + wall: 75 + building: 80 + buildingWeak: 90 + wood: 70 + light: 60 + heavy: 30 + invulnerable: 0 + cy: 20 + harvester: 50 + DamageTypes: FireDeath + Warhead@effec1: CreateEffect + Explosions: napalm_big + ExplosionPalette: temperat + ImpactSounds: NAPALM1.WAV + +flamer_explosion_small: + Warhead@damagedarea1: SpreadDamage + Delay: 5 + Spread: 600 + Falloff: 100, 0 + Damage: 1000 + Versus: + none: 110 + wall: 75 + building: 80 + buildingWeak: 90 + wood: 70 + light: 60 + heavy: 30 + invulnerable: 0 + cy: 20 + harvester: 50 + DamageTypes: Prone50Percent, TriggerProne, FireDeath + Warhead@effec1: CreateEffect + Delay: 5 + Explosions: napalm_big + ExplosionPalette: temperat + ImpactSounds: FLAMER1.WAV, audio/flamethrower.wav + ImpactSoundChance: 50 + +flamer_explosion_small02: + Inherits: flamer_explosion_small + Warhead@damagedarea1: SpreadDamage + Delay: 10 + Warhead@effec1: CreateEffect + Delay: 10 +flamer_explosion_small03: + Inherits: flamer_explosion_small + Warhead@damagedarea1: SpreadDamage + Delay: 13 + Warhead@effec1: CreateEffect + Delay: 13 diff --git a/mods/d2k/maps/01scriptrework/Enhanced_World09.yaml b/mods/d2k/maps/01scriptrework/Enhanced_World09.yaml new file mode 100644 index 000000000000..c0901f3c4469 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_World09.yaml @@ -0,0 +1,688 @@ +^BaseWorld: + Faction@Atreides: + Name: Atreides + InternalName: atreides + Description: House Atreides\nThe noble Atreides, from the water world of Caladan,\nrely on their ornithopters to ensure air superiority.\nThey have allied themselves with the Fremen, the fearsome\nnative warriors of Dune that can move undetected in battle.\n\nFaction Variations:\n - Combat tanks are balanced in terms of speed and durability\n\nSpecial Units:\n - Grenadier\n - Fremen\n - Sonic Tank\n\nSuperweapon:\n - Airstrike + Faction@Harkonnen: + Name: Harkonnen + InternalName: harkonnen + Description: House Harkonnen\nThe evil Harkonnen will stop at nothing to gain control of the spice.\nThey rely on brute force and atomic weapons to achieve their goals:\nwealth, and the destruction of House Atreides.\n\nFaction Variations:\n - Combat Tanks are more durable but slower \n\nSpecial Units:\n - Sardaukar\n - Devastator\n\nSuperweapon: \n - Death Hand Missile + Faction@Ordos: + Name: Ordos + InternalName: ordos + Faction@Random: + Name: Any + InternalName: Random + RandomFactionMembers: atreides, harkonnen, ordos + Description: Random House\nA random house will be chosen when the game starts. + Faction@Corrino: + Name: Corrino + InternalName: corrino + Selectable: true + Description: Corrino house + Faction@Mercenaries: + Name: Mercenaries + InternalName: mercenary + Selectable: true + Description: mercenaries troops + Faction@Smugglers: + Name: Smugglers + InternalName: smuggler + Selectable: true + Faction@Fremen: + Name: Fremen + InternalName: fremen + Selectable: true + Locomotor@TANK_harkonnen: + Name: tank_harkonnen + Crushes: crate, infantry, spicebloom + TerrainSpeeds: + Sand: 100 + Rock: 100 + Transition: 100 + Concrete: 100 + SpiceSand: 100 + Spice: 100 + SpiceBlobs: 100 + Dune: 70 + Locomotor@TANK: + Name: tank + Crushes: crate, infantry, spicebloom + TerrainSpeeds: + Sand: 100 + Rock: 100 + Transition: 100 + Concrete: 100 + SpiceSand: 100 + Spice: 100 + SpiceBlobs: 100 + Dune: 60 + Locomotor@LIGHTVEHICLE: + Name: light_vehicle + Crushes: crate, spicebloom + WaitAverage: 20 + TerrainSpeeds: + Sand: 100 + Rock: 100 + Transition: 100 + Concrete: 100 + SpiceSand: 100 + Spice: 100 + SpiceBlobs: 100 + Dune: 50 + Locomotor@WORMMP: + Name: worm_mp + Crushes: crate, worm_dinner, spicebloom, vehicle + TerrainSpeeds: + Sand: 100 + Dune: 100 + SpiceSand: 100 + Spice: 100 +World: + LuaScript: + Scripts: scripts_new.lua + MissionData: + Briefing: \n\n**** Enhanced D2k ver 0.96 **** \n\nFor more competitive and fun MP games \n\nHighlights: \n* New playable sub-factions: FREMENS, CORRINO, SMUGGLERS, MERCENARIES (Use Playable Factions Dropbox to activate) \n* Original D2k Starport and Airstrike implementation \n* New Map Options: FreeCarryall, Worm Spawn, Factions options \n* Competitive balance, Super weapons rebalanced \n* Refinery with alternative docking angles. \n* Engineer can repair passages/buildings and capture husks \n* Better AI \n* new Neutral buildings, map Tilesets, VFX, SFX and decorations. \nAdditional Assets by SirCake, Fey, Kipp, N.N.> and Fed2k forum \nFULL CHANGELOG AT MAP FILE. + MapOptions: + TechLevelDropdownVisible: false + TechLevel: unrestricted + ShortGameCheckboxVisible: true + GameSpeed: fast + MapCreeps: + CheckboxEnabled: true + CheckboxLocked: true + CheckboxVisible: false + SpawnStartingUnits: + DropdownDisplayOrder: 70 + TimeLimitManager: + TimeLimitDisplayOrder: 3 + ScriptLobbyDropdown@WormsSpawnDelay: + ID: WormsSpawnDelay + Label: Spawn Worms + Description: Spawn worms options + Default: 10 + Values: + 5: After 5 min + 10: After 10 min + 15: After 15 min + 0: Never + Locked: false + Visible: true + DisplayOrder: 30 + ScriptLobbyDropdown@factionoptions: + ID: fation_mode + Label: Playable Factions + Description: 1. Just vanilla D2k. 2. SUB+Main: Choose between Main faction or one of its sub-factions. 3. Merged: Subfaction tech tree is merged into your tech tree. + Default: 0 + Values: + 0: Main factions only + 1: Main & Subfactions + 2: Subfactions in Main Fac. + Visible: true + DisplayOrder: 2 + SmudgeLayer@RockSmoke: + Type: RockCrater_with_smoke + Sequence: rockcraters + SmokeChance: 100 + SmokeImage: smoke_m + SmokeSequences: smokeFromRA01loop + SmudgeLayer@SandSmoke: + Type: SandCrater_with_smoke + Sequence: sandcraters + SmokeChance: 100 + SmokeImage: smoke_m + SmokeSequences: smokeFromRA01loop + StartingUnits@mcv: + Class: none + ClassName: MCV Only + BaseActor: choosefaction + Factions: atreides, ordos, harkonnen, corrino, mercenary, smuggler, fremen + StartingUnits@lightatreides: + Class: light + ClassName: Light Support + Factions: atreides, fremen + BaseActor: choosefaction + SupportActors: light_inf, light_inf, light_inf, trooper, grenadier, trike, quad + InnerSupportRadius: 3 + OuterSupportRadius: 5 + StartingUnits@lightharkonnen: + Class: light + ClassName: Light Support + Factions: harkonnen, corrino + BaseActor: choosefaction + SupportActors: light_inf, light_inf, light_inf, trooper, trooper, trike, quad + InnerSupportRadius: 3 + OuterSupportRadius: 5 + StartingUnits@lightordos: + Class: light + ClassName: Light Support + Factions: ordos, mercenary, smuggler + BaseActor: choosefaction + SupportActors: light_inf, light_inf, light_inf, trooper, engineer, raider, quad + InnerSupportRadius: 3 + OuterSupportRadius: 5 + StartingUnits@heavyatreides: + Class: heavy + ClassName: Heavy Support + Factions: atreides, fremen + BaseActor: choosefaction + SupportActors: light_inf, light_inf, light_inf, trooper, grenadier, trike, combat_tank_a, missile_tank + InnerSupportRadius: 3 + OuterSupportRadius: 5 + StartingUnits@heavyharkonnen: + Class: heavy + ClassName: Heavy Support + Factions: harkonnen, corrino + BaseActor: choosefaction + SupportActors: light_inf, light_inf, light_inf, trooper, engineer, quad, combat_tank_h, siege_tank + InnerSupportRadius: 3 + OuterSupportRadius: 5 + StartingUnits@heavyordos: + Class: heavy + ClassName: Heavy Support + Factions: ordos, mercenary, smuggler + BaseActor: choosefaction + SupportActors: light_inf, light_inf, light_inf, trooper, engineer, raider, combat_tank_o, missile_tank + InnerSupportRadius: 3 + OuterSupportRadius: 5 + FlashPostProcessEffect: + Type: flash + Color: E2DD8F4D + TerrainLighting: + + +Player: + DeveloperMode: + CheckboxEnabled: true + CheckboxLocked: true + Shroud: + ExploredMapCheckboxEnabled: true + FogCheckboxEnabled: true + FogCheckboxLocked: true + LobbyPrerequisiteCheckbox@AUTOCONCRETE: + Enabled: True + LobbyPrerequisiteCheckbox@FreeCarryCheckBox: + ID: FreeCarryCheckBox + Label: Free Carryall + Description: Give 1 free Carryall to all Players + Enabled: true + Visible: true + DisplayOrder: 7 + Prerequisites: FreeCarry + ExternalCondition@vanilla_factions_Only: + Condition: vanilla_factions_Only + ExternalCondition@subfactions: + Condition: subfactions + ExternalCondition@merged: + Condition: mergedsubfactions + ProvidesPrerequisite@merged: + Prerequisite: factions.merged + RequiresCondition: mergedsubfactions + ProvidesPrerequisite@subfactions: + Prerequisite: factions.subfaction_allowed + RequiresCondition: subfactions + ProvidesPrerequisite@vanila_factions: + Prerequisite: factions.standard + RequiresCondition: vanilla_factions_Only + ExternalCondition@frigateCheck: + Condition: frigate_not_empty + ProvidesPrerequisite@frigatenotempty: + Prerequisite: frigate.not_empty + RequiresCondition: frigate_not_empty + ExternalCondition@frigatefull: + Condition: frigate_full + ClassicProductionQueue@Infantry: + BuildTimeSpeedReduction: 100, 80, 60, 50 + ClassicProductionQueue@Building: + BuildTimeSpeedReduction: 100, 75, 50 + ClassicProductionQueue@Armor: + BuildTimeSpeedReduction: 100, 75, 50 + ClassicProductionQueue@Aircraft: + BuildTimeSpeedReduction: 100, 75, 50 + ClassicProductionQueue@Starport: + Type: Starport + DisplayOrder: 4 + DisallowPaused: true + BuildDurationModifier: 100 + BlockedAudio: NoRoom + BlockedTextNotification: No room for new unit. + QueuedAudio: Silent + OnHoldAudio: Silent + CancelledAudio: Silent + QueueLimit: 6 + PlaceBuilding: + ToggleVariantKey: ToggleVariant + ProductionIconOverlayManager: + Image: iconchevrons + Sequence: veteran + Type: veteran + ProvidesPrerequisite@FrigateFULL: + RequiresCondition: frigate_full + Prerequisite: frigate.full + ProductionIconOverlayManager@StarportsOverlay1: + Image: choam_unit_number + Sequence: 1 + Type: 1 + ProductionIconOverlayManager@StarportsOverlay2: + Image: choam_unit_number + Sequence: 2 + Type: 2 + ProductionIconOverlayManager@StarportsOverlay3: + Image: choam_unit_number + Sequence: 3 + Type: 3 + ProductionIconOverlayManager@StarportsOverlay4: + Image: choam_unit_number + Sequence: 4 + Type: 4 + ProductionIconOverlayManager@StarportsOverlay5: + Image: choam_unit_number + Sequence: 5 + Type: 5 + ProductionIconOverlayManager@StarportsOverlay6: + Image: choam_unit_number + Sequence: 6 + Type: 6 + GrantConditionOnBotOwner@bot: + Condition: bot + Bots: omnius, vidious, gladius + ProvidesPrerequisite: + RequiresCondition: bot + Prerequisite: repair_pad.bot + + + +wormspawner: + ExternalCondition: + Condition: WormSpamDelayed + ActorSpawner: + RequiresCondition: WormSpamDelayed + +choosefaction: + Inherits@1: ^ExistsInWorld + Inherits@2: ^SpriteActor + Building: + Footprint: xxx xxx === + Dimensions: 3,3 + LocalCenterOffset: -1024,-1536,0 + Health: + HP: 30000 + HitShape: + Type: Rectangle + TopLeft: -1536, -1024 + BottomRight: 1536, 1024 + Armor: + Type: invulnerable + RevealsShroud: + Range: 5c768 + HiddenUnderFog: + MustBeDestroyed: + RequiredForShortGame: true + WithSpriteBody: + ProvidesPrerequisite@upgradename: + Production: + Produces: Upgrade + ProvidesPrerequisite@bluesubfactions: + Prerequisite: bluesubfactions + Factions: atreides, fremen + ProvidesPrerequisite@redsubfactions: + Prerequisite: redsubfactions + Factions: harkonnen, corrino + ProvidesPrerequisite@greensubfactions: + Prerequisite: greensubfactions + Factions: ordos, smuggler, mercenary + ProvidesPrerequisite@mergedsubfactions: + Prerequisite: mergedsubfactions + +subfaction.random_blue: + Interactable: + HiddenUnderFog: + Type: CenterPosition + ScriptTriggers: + Tooltip: + Name: Random + Buildable: + BuildPaletteOrder: 11 + Prerequisites: ~bluesubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Random selection + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.random + GrantRandomCondition: + Conditions: atreides, fremen + ProvidesPrerequisite@Atreides: + Prerequisite: subfaction.atreides + RequiresCondition: atreides + ProvidesPrerequisite@Fremen: + Prerequisite: subfaction.fremen + RequiresCondition: fremen + +subfaction.atreides: + Interactable: + HiddenUnderFog: + Type: CenterPosition + ScriptTriggers: + Tooltip: + Name: Atreides + Buildable: + BuildPaletteOrder: 12 + Prerequisites: ~bluesubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Atreides \n special units: Grenadier, Sonic tank \n Support powers: AirStrike, Officer + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.atreides + ProvidesPrerequisite@upgradename: + +subfaction.fremen: + Interactable: + HiddenUnderFog: + Type: CenterPosition + ScriptTriggers: + Tooltip: + Name: Fremen + Buildable: + BuildPaletteOrder: 13 + Prerequisites: ~bluesubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Fremen \n Special units: Fremen Fedaykin, Hunt trike, Bison tank \n Support powers: Hide units, WormRider + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.fremen + ProvidesPrerequisite@upgradename: + +subfaction.random_red: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Random + Buildable: + BuildPaletteOrder: 14 + Prerequisites: ~redsubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Random selection + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.random + GrantRandomCondition: + Conditions: harkonnen, corrino + ProvidesPrerequisite@Harkonnen: + Prerequisite: subfaction.harkonnen + RequiresCondition: harkonnen + ProvidesPrerequisite@Corrino: + Prerequisite: subfaction.corrino + RequiresCondition: corrino + +subfaction.harkonnen: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Harkonnen + Buildable: + BuildPaletteOrder: 15 + Prerequisites: ~redsubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Harkonnen \n Special units: Assassin, Devastator \n Support powers: Death hand + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.harkonnen + ProvidesPrerequisite@upgradename: + +subfaction.corrino: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Corrino + Buildable: + BuildPaletteOrder: 16 + Prerequisites: ~redsubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Corrino \n Special units: Sardaukar, Bombardment tank \n Support powers: Rally Sardaudars \n Passive bonus: Defenses on Palace + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.corrino + ProvidesPrerequisite@upgradename: + +subfaction.random_green: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Random + Buildable: + BuildPaletteOrder: 17 + Prerequisites: ~greensubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Random selection + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.random + GrantRandomCondition: + Conditions: ordos, mercenary, smuggler + ProvidesPrerequisite@Ordos: + Prerequisite: subfaction.ordos + RequiresCondition: ordos + ProvidesPrerequisite@mercenary: + Prerequisite: subfaction.mercenary + RequiresCondition: mercenary + ProvidesPrerequisite@smuggler: + Prerequisite: subfaction.smuggler + RequiresCondition: smuggler + +subfaction.ordos: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Ordos + Buildable: + BuildPaletteOrder: 18 + Prerequisites: ~greensubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Ordos \n Special unit: Deviator, Raider, Stealth Raider \n Support powers: Chaos bomb \n no Missile tank + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.ordos + ProvidesPrerequisite@upgradename: + +subfaction.smuggler: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Smugglers + Buildable: + BuildPaletteOrder: 19 + Prerequisites: ~greensubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Smugglers \n Special units: Flamer, Hunt trike\n Support powers: Saboteur, Jammer \n Passive bonus: 10% discout from Starport purchases \n no missile tank + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.smuggler + ProvidesPrerequisite@upgradename: + +subfaction.mercenary: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Mercenaries + Buildable: + BuildPaletteOrder: 20 + Prerequisites: ~greensubfactions, ~factions.subfaction_allowed + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Mercenaries \n Special units: Bison tank, Mortar infantry, Crawler \n Support powers: Hire Contractors + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.mercenary + ProvidesPrerequisite@upgradename: + +merged.random: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Random + Buildable: + BuildPaletteOrder: 21 + Prerequisites: ~mergedsubfactions, ~factions.merged + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Randowm selection + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.random + GrantRandomCondition: + Conditions: fremen, corrino, smuggler, mercenary + ProvidesPrerequisite@fremen: + Prerequisite: merged.fremen + RequiresCondition: fremen + ProvidesPrerequisite@corrino: + Prerequisite: merged.corrino + RequiresCondition: corrino + ProvidesPrerequisite@smuggler: + Prerequisite: merged.smuggler + RequiresCondition: smuggler + ProvidesPrerequisite@mercenary: + Prerequisite: merged.mercenary + RequiresCondition: mercenary + + +merged.fremen: + Interactable: + HiddenUnderFog: + Type: CenterPosition + ScriptTriggers: + Tooltip: + Name: Fremen + Buildable: + BuildPaletteOrder: 22 + Prerequisites: ~mergedsubfactions, ~factions.merged + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Fremen \n Special Building: Sietch \n Special units: Fremen Fedaykin \n Support powers: Hide units, WormRider + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.fremen + ProvidesPrerequisite@upgradename: + +merged.corrino: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Corrino + Buildable: + BuildPaletteOrder: 23 + Prerequisites: ~mergedsubfactions, ~factions.merged + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Corrino \n Special Building: Corrino Palace\n Special units: Sardaukar, Bombardment tank \n Passive bonus: Defenses on Palace + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.corrino + ProvidesPrerequisite@upgradename: + +merged.smuggler: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Smugglers + Buildable: + BuildPaletteOrder: 24 + Prerequisites: ~mergedsubfactions, ~factions.merged + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Smugglers \n Special Building: Smugglers Starport \n Special units: Hunter trike, Flamer \n Support powers: Saboteur \n Passive bonus: 10% discout from Starport purchases + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.smuggler + ProvidesPrerequisite@upgradename: + +merged.mercenary: + Interactable: + ScriptTriggers: + HiddenUnderFog: + Type: CenterPosition + Tooltip: + Name: Mercenaries + Buildable: + BuildPaletteOrder: 25 + Prerequisites: ~mergedsubfactions, ~factions.merged + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 1 + BuildDurationModifier: 100 + Description: Mercenaries \n Special Building: Mercenary factory \n Special units: Mortar Infantry, Crawler \n Support powers: Hire Contractors, Area jammer + Valued: + Cost: 0 + RenderSprites: + Image: subfaction.mercenary + ProvidesPrerequisite@upgradename: diff --git a/mods/d2k/maps/01scriptrework/Enhanced_notifications.yaml b/mods/d2k/maps/01scriptrework/Enhanced_notifications.yaml new file mode 100644 index 000000000000..186204987120 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_notifications.yaml @@ -0,0 +1,21 @@ +Speech: + Notifications: + release_sardaukars: audio/releaseTheSardaukar01.wav + Silent: audio/silent.wav + +Sounds: + Notifications: + LevelUp: audio/veteran_upgrade_1 + Beacon: MULTI1 + OrderPlaced: ORDER + InterruptType: Overlap + TMinusFive: 5MIN + InterruptType: Overlap + TMinusFour: 4MIN + InterruptType: Overlap + TMinusOne: 1MIN + InterruptType: Overlap + TMinusThree: 3MIN + InterruptType: Overlap + TMinusTwo: 2MIN + InterruptType: Overlap diff --git a/mods/d2k/maps/01scriptrework/Enhanced_palettes.yaml b/mods/d2k/maps/01scriptrework/Enhanced_palettes.yaml new file mode 100644 index 000000000000..3658584c8700 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_palettes.yaml @@ -0,0 +1,40 @@ +^Palettes: + PaletteFromRGBA@huskPalette: + Name: huskPalette + R: 0 + G: 0 + B: 0 + A: 60 + PaletteFromRGBA@huskBuilding: + Name: huskBuilding + R: 0 + G: 0 + B: 0 + A: 40 + PaletteFromFile@d2kpal: + Name: palette_d2k + ShadowIndex: 1 + Filename: D2k.pal + PaletteFromFile@fromRA: + Name: temperat + ShadowIndex: 1 + Filename: temperat.pal + PaletteFromRGBA@disabled: + Name: disabled + R: 0 + G: 0 + B: 0 + A: 80 + PaletteFromGimpOrJascFile@tree01: + Name: tree01 + Filename: bits/tree01.gpl + PaletteFromGimpOrJascFile@waterpalette: + Name: water_palette + Filename: bits/water_tiles_palette.gpl + PaletteFromGimpOrJascFile@r16palete: + Name: d2k_r16 + Filename: bits/d2k_R16.gpl + PlayerColorPalette@R16Remap: + BasePalette: d2k_r16 + BaseName: player_r16 + RemapIndex: 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240 diff --git a/mods/d2k/maps/01scriptrework/Enhanced_voices.yaml b/mods/d2k/maps/01scriptrework/Enhanced_voices.yaml new file mode 100644 index 000000000000..1ff5ed270878 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Enhanced_voices.yaml @@ -0,0 +1,101 @@ +GenericVoice: + DefaultVariant: .AUD + Variants: + atreides: .WAV + ordos: .WAV + harkonnen: .WAV + smuggler: .WAV + mercenary: .WAV + corrino: .WAV + fremen: .WAV + Voices: + Choke: audio/choke_dying_2, audio/choke_dying_6 + Burn: audio/burn_dying_1, audio/burn_dying_2, audio/burn_dying_6 + + +InfantryVoice: + DefaultVariant: .AUD + Variants: + atreides: .WAV + ordos: .WAV + harkonnen: .WAV + smuggler: .WAV + mercenary: .WAV + corrino: .WAV + fremen: .WAV + Voices: + Choke: audio/choke_dying_2, audio/choke_dying_6 + Burn: audio/burn_dying_1, audio/burn_dying_2, audio/burn_dying_6, KILLGUY5,KILLGUY6,KILLGUY7 + DisablePrefixes: Die, Choke, Burn + DisableVariants: Select, Action, Guard + +EngineerVoice: + DefaultVariant: .AUD + Variants: + atreides: .WAV + ordos: .WAV + harkonnen: .WAV + smuggler: .WAV + mercenary: .WAV + corrino: .WAV + fremen: .WAV + Voices: + Choke: audio/choke_dying_2, audio/choke_dying_6 + Burn: audio/burn_dying_1, audio/burn_dying_2, audio/burn_dying_6 + DisablePrefixes: Die, Choke, Burn + DisableVariants: Select, Action, Guard + +FremenVoice: + DefaultVariant: .AUD + Variants: + atreides: .WAV + ordos: .WAV + harkonnen: .WAV + smuggler: .WAV + mercenary: .WAV + corrino: .WAV + fremen: .WAV + Voices: + Choke: audio/choke_dying_2, audio/choke_dying_6 + Burn: audio/burn_dying_1, audio/burn_dying_2, audio/burn_dying_6, KILLGUY5,KILLGUY6,KILLGUY7 + DisablePrefixes: Select, Action, Die, Choke, Burn + +AssassinVoice: + DefaultVariant: .AUD + Variants: + atreides: .WAV + ordos: .WAV + harkonnen: .WAV + Prefixes: + atreides: A + fremen: A + ordos: O + smuggler: O + mercenary: O + harkonnen: H + corrino: H + Voices: + Select: H__ESEL1,H_ESEL2,H_ESEL3 + Action: O_SCONF1,O_SCONF2,O_SCONF3 + Move: O_SCONF1,O_SCONF2,O_SCONF3 + Die: KILLGUY1,KILLGUY2,KILLGUY3,KILLGUY4,KILLGUY5,KILLGUY6,KILLGUY7,KILLGUY8,KILLGUY9 + Guard: I_GUARD + Choke: audio/choke_dying_2, audio/choke_dying_6 + Burn: audio/burn_dying_1, audio/burn_dying_2, audio/burn_dying_6, KILLGUY5,KILLGUY6,KILLGUY7 + DisablePrefixes: Select, Action, Die, Choke, Burn + DisableVariants: Select, Action, Guard + +SaboteurVoice: + DefaultVariant: .AUD + Variants: + atreides: .WAV + ordos: .WAV + harkonnen: .WAV + smuggler: .WAV + mercenary: .WAV + corrino: .WAV + fremen: .WAV + Voices: + Choke: audio/choke_dying_2, audio/choke_dying_6 + Burn: audio/burn_dying_1, audio/burn_dying_2, audio/burn_dying_6 + DisablePrefixes: Die, Choke, Burn diff --git a/mods/d2k/maps/01scriptrework/NeutralBuildings.yaml b/mods/d2k/maps/01scriptrework/NeutralBuildings.yaml new file mode 100644 index 000000000000..64f038de5afc --- /dev/null +++ b/mods/d2k/maps/01scriptrework/NeutralBuildings.yaml @@ -0,0 +1,372 @@ +^NeutralBuilding: + Inherits@1: ^ExistsInWorld + Inherits@2: ^SpriteActor + Huntable: + Interactable: + HitShape: + UseTargetableCellsOffsets: true + Type: Rectangle + TopLeft: -512, -512 + BottomRight: 512, 512 + Building: + Dimensions: 1,1 + Footprint: x + TerrainTypes: Rock, Concrete, Sand + BuildSounds: BUILD1.WAV + Health: + HP: 25000 + Armor: + Type: building + Tooltip: + Name: Neutral Building + GenericVisibility: None + FrozenUnderFog: + MapEditorData: + Categories: Neutral building + Targetable: + TargetTypes: Ground, Structure + RequiresForceFire: true + Explodes: + Type: Footprint + Weapon: BuildingExplode + EmptyWeapon: BuildingExplode + WithSpriteBody: + ThrowsShrapnel@1: + Weapons: derbisRock01, derbisRock02, derbisRock03 + Pieces: 0, 2 + Range: 1c0, 4c0 + ThrowsShrapnel@2: + Weapons: derbisRock01, derbisRock02, derbisRock03 + Pieces: 1, 4 + Range: 0c512, 2c0 + ThrowsShrapnel: + Weapons: Debris, Debris2, Debris3, Debris4 + Pieces: 1, 3 + Range: 1c256, 3c0 + Crushable: + CrushClasses: wall + Explodes: + Type: CenterPosition + Weapon: cliffExplode01 + EmptyWeapon: cliffExplode01 + +^NeutralBuildingCapturable: + Inherits@1: ^ExistsInWorld + Inherits@2: ^SpriteActor + Inherits@selection: ^SelectableBuilding + FrozenUnderFog: + WithSpriteBody: + Huntable: + HitShape: + UseTargetableCellsOffsets: true + Type: Rectangle + TopLeft: -1024, -1024 + BottomRight: 1024, 1024 + D2kBuilding: + Dimensions: 2,2 + Footprint: xx xx + TerrainTypes: Rock, Concrete + BuildSounds: BUILD1.WAV + Health: + HP: 25000 + Armor: + Type: building + MapEditorData: + Categories: Neutral building Capturable + Targetable: + TargetTypes: Ground, C4, Structure + RequiresForceFire: false + CaptureManager: + RevealsShroud: + Range: 4c0 + Capturable: + Types: building + Explodes: + Type: Footprint + Weapon: BuildingExplode + EmptyWeapon: BuildingExplode + InstantlyRepairable: + RepairableBuilding: + RepairStep: 500 + PlayerExperience: 5 + RepairingNotification: Repairing + Demolishable: + RevealOnDeath: + Duration: 100 + Radius: 4c768 + WithBuildingRepairDecoration: + Image: allyrepair + Sequence: repair + Position: Center + Palette: player + IsPlayerPalette: True + OwnerLostAction: + Action: ChangeOwner + ThrowsShrapnel: + Weapons: Debris, Debris2, Debris3, Debris4 + Pieces: 2, 5 + Range: 1c512, 4c0 + Explodes: + Type: Footprint + Weapon: BuildingExplode + EmptyWeapon: BuildingExplode + SoundOnDamageTransition: + DamagedSounds: EXPLSML1.WAV + DestroyedSounds: EXPLHG1.WAV + + +crane: + Inherits: ^NeutralBuildingCapturable + Tooltip: + Name: Crane + WithBuildingBib: + Power: + Amount: 0 + Health: + HP: 20000 + Armor: + Type: cy + HitShape: + Type: Rectangle + TopLeft: -1024, -1024 + BottomRight: 1024, 1039 + RevealsShroud: + Range: 3c0 + GivesBuildableArea: + AreaTypes: building + RenderSprites: + + Image: crane.ordos + FactionImages: + atreides: crane.atreides + harkonnen: crane.harkonnen + fremen: crane.atreides + corrino: crane.harkonnen + smuggler: crane.ordos + mercenary: crane.ordos + Tooltip: + Name: Crane + ProvidesPrerequisite: + Prerequisite: bonus.crane + TooltipDescription: + Description: Provides buildable area. Speed up building production by 10% + +spice_sifter: + Inherits: ^NeutralBuildingCapturable + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + Power: + Amount: 0 + WithBuildingBib: + D2kBuilding: + Dimensions: 2,2 + Footprint: xx xx + TerrainTypes: Rock, Concrete + BuildSounds: BUILD1.WAV + Tooltip: + Name: Spice sifter + TooltipDescription: + Description: Absorbs Spice obtained by the wind flow. Provides Passive income + CashTrickler: + Interval: 325 + Amount: 250 + PauseOnCondition: lowpower || disabled + CashTricklerBar: + WithIdleOverlay: + RequiresCondition: !damaged + PauseOnCondition: disabled + GrantConditionOnDamageState@DAMAGED: + Condition: damaged + ValidDamageStates: Heavy, Critical + Explodes: + Type: Footprint + Weapon: BuildingExplode + EmptyWeapon: BuildingExplode + ThrowsShrapnel@spice: + Weapons: HarvesterSpiceExplosion + Pieces: 1, 5 + Range: 5c0, 10c0 + +spice_sifter_no_bibs: + Inherits: spice_sifter + RenderSprites: + Image: spice_sifter + -WithBuildingBib: + EditorOnlyTooltip: + Name: Spice sifter (no bibs) + +radar_station: + Inherits: ^NeutralBuildingCapturable + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + Tooltip: + Name: Radar Station + TooltipDescription: + Description: Provides Vision and building range + Power: + Amount: -75 + WithBuildingBib: + HitShape: + Type: Rectangle + TopLeft: -1536, -1024 + BottomRight: 1536, 1024 + Health: + HP: 30000 + RenderSprites: + Image: outpost.harkonnen + D2kBuilding: + Dimensions: 3,2 + Footprint: xxx xxx + TerrainTypes: Rock, Concrete + BuildSounds: BUILD1.WAV + WithIdleOverlay@DISH: + RequiresCondition: !damaged + Sequence: idle-dish + PauseOnCondition: disabled + GrantConditionOnDamageState@DAMAGED: + Condition: damaged + ValidDamageStates: Heavy, Critical + Explodes: + Type: Footprint + Weapon: BuildingExplode + EmptyWeapon: BuildingExplode + GivesBuildableArea: + AreaTypes: building + DetectCloaked: + Range: 8c0 + RequiresCondition: !disabled + RevealsShroud: + Range: 10c0 + RequiresCondition: !disabled + +radar_station_small: + Inherits: ^NeutralBuildingCapturable + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + Tooltip: + Name: Radar Station + TooltipDescription: + Description: Provides Vision + Power: + Amount: -75 + WithBuildingBib: + HitShape: + Type: Rectangle + TopLeft: -1536, -1024 + BottomRight: 1536, 1024 + Health: + HP: 30000 + RenderSprites: + Image: outpost.harkonnen + -D2kBuilding: + Building: + Dimensions: 3,2 + Footprint: xxx xxx + TerrainTypes: Rock, Concrete + WithIdleOverlay@DISH: + Sequence: idle-top + Explodes: + Type: Footprint + Weapon: BuildingExplode + EmptyWeapon: BuildingExplode + GivesBuildableArea: + AreaTypes: building + Power: + Amount: -80 + DetectCloaked: + Range: 8c0 + RequiresCondition: !disabled + RevealsShroud: + Range: 10c0 + RequiresCondition: !disabled + + +building01: + Inherits: ^NeutralBuilding + +building01_burned: + Inherits: ^BuildingHusk + Building: + Dimensions: 1,1 + Footprint: _ + -GrantRandomCondition: + -WithBuildingBib: + +fremen_temple: + Inherits: ^NeutralBuilding + RenderSprites: + Palette: terrain + Building: + Dimensions: 3,2 + Footprint: xxx xxx + Tooltip: + Name: Fremen Temple + GenericVisibility: None + +^InfantryHealing: + ExternalCondition@healing: + Condition: healing + WithDecoration@REDCROSS: + Image: pips + Sequence: healt_cross + Position: BottomRight + Margin: 5, 5 + RequiresCondition: healing && damaged + BlinkInterval: 32 + BlinkPattern: Off, On + ValidRelationships: Ally, Neutral, Enemy + ChangesHealth@HOSPITAL: + Step: 400 + Delay: 60 + StartIfBelow: 100 + DamageCooldown: 125 + RequiresCondition: healing + GrantConditionOnDamageState@HOSPITAL: + Condition: damaged + ValidDamageStates: Light, Medium, Heavy, Critical + + +^Infantry: + Inherits@healing: ^InfantryHealing + +ecology_station: + Inherits: ^NeutralBuilding + Inherits@selection: ^SelectableBuilding + -Interactable: + RenderSprites: + Image: custom_rock02_ecology_station + Palette: terrain + Armor: + Type: cy + Health: + HP: 25000 + Building: + Dimensions: 3,3 + Footprint: _X_ xxx xxx + ProximityExternalCondition@dhealign: + Condition: healing + Range: 5c0 + ValidRelationships: Ally, Neutral, Enemy + Tooltip: + Name: Ecology Station + GenericVisibility: None + TooltipDescription: + Description: Heal nearby infantry units + +building_rock01: + Inherits: ^NeutralBuilding + RenderSprites: + Palette: terrain + Building: + Dimensions: 3,3 + Footprint: _XX xxx xxx + +fremen_tent01: + Inherits: ^NeutralBuilding + RenderSprites: + Palette: terrain + Building: + Dimensions: 1,1 + Footprint: x + HitShape: + UseTargetableCellsOffsets: true + Type: Rectangle + TopLeft: -512, -512 + BottomRight: 512, 512 diff --git a/mods/d2k/maps/01scriptrework/NewTiles.yaml b/mods/d2k/maps/01scriptrework/NewTiles.yaml new file mode 100644 index 000000000000..bb76f1d841b1 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/NewTiles.yaml @@ -0,0 +1,1266 @@ +^new_tile_undestroyable: + Inherits@1: ^ExistsInWorld + Inherits@2: ^SpriteActor + FrozenUnderFog: + WithSpriteBody: + Building: + TerrainTypes: Rock, Concrete, Cliff, Sand, Rock, Transition, Spice, SpiceSand, Dune + RenderSprites: + Palette: terrain + Health: + HP: 20000 + Armor: + Type: invulnerable + HitShape: + UseTargetableCellsOffsets: false + Type: Rectangle + TopLeft: -512, -512 + BottomRight: 512, 512 + MapEditorData: + Categories: Tiles + QuantizeFacingsFromSequence: + Interactable: + Tooltip: + GenericName: passage + Name: passage + ShowOwnerRow: false + +^new_tile_destroyable: + Inherits: ^new_tile_undestroyable + Targetable: + TargetTypes: Ground, Cliff + RequiresForceFire: true + Armor: + Type: wall + Health: + HP: 20000 + Tooltip: + GenericName: pasage (Destroable) + Name: passage (Destroable) + OwnerLostAction: + Action: ChangeOwner + Owner: Neutral + HitShape: + UseTargetableCellsOffsets: true + Explodes: + Type: CenterPosition + Weapon: cliffExplode01 + EmptyWeapon: cliffExplode01 + ThrowsShrapnel@1: + Weapons: derbisRock01, derbisRock02, derbisRock03 + Pieces: 0, 2 + Range: 1c0, 4c0 + ThrowsShrapnel@2: + Weapons: derbisRock01, derbisRock02, derbisRock03 + Pieces: 1, 4 + Range: 0c512, 2c0 + MapEditorData: + Categories: Tiles-Destroable + +^new_tile_destroyed: + Inherits: ^new_tile_undestroyable + CaptureManager: + Building: + OwnerLostAction: + Action: ChangeOwner + Owner: Neutral + Tooltip: + GenericName: pasage (repairable) + Name: passage (repairable) + CaptureManager: + CapturableProgressBar: + CapturableProgressBlink: + Interval: 30 + Capturable: + Types: cliff + HitShape: + UseTargetableCellsOffsets: true + Type: Rectangle + TopLeft: -1048, -1048 + BottomRight: 1024, 1054 + Targetable: + TargetTypes: Ground, Cliff + RequiresForceFire: true + MapEditorData: + Categories: Tiles-Repairable + + +rockpass01_left: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,3 + Footprint: xx= === xx= + + +rockpass01_right: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,3 + Footprint: =XX === =xx + + +rockpass01_top: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,3 + Footprint: x=x x=x === + + +sandpass01_bottom: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,2 + Footprint: = = + + +sandpass01_top: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,2 + Footprint: _ _ + + +sandpass01_left: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,1 + Footprint: __ + + +sandpass01_right: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,1 + Footprint: __ + +rockslip01_right: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: XX __ + +rockslip01_right_alter: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: XX __ + +rockslip01_top: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: X_ X_ + +rockslip01_left: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: XX __ + +rockslip02_top_right: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,2 + Footprint: XX_ __X + +rockslip02_top_left: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,2 + Footprint: ___ XX_ + +pass01_destroyable_bottom: + Inherits: ^new_tile_destroyable + RenderSprites: + Image: rockpass01_bottom + Building: + Dimensions: 3,3 + Footprint: === X=X X=X + HitShape: + Type: Rectangle + TopLeft: -512, -512 + BottomRight: 512, 900 + SpawnActorOnDeath: + Actor: pass01_destroyed_bottom + OwnerType: InternalName + +pass01_destroyed_bottom: + Inherits: ^new_tile_destroyed + RenderSprites: + Image: rockpass01_destroyed_bottom + Building: + Dimensions: 3,3 + Footprint: === xxx xxx + TransformOnCapture: + IntoActor: pass01_destroyable_bottom + +pass01_destroyable_left: + Inherits: ^new_tile_destroyable + RenderSprites: + Image: rockpass01_left + HitShape: + Type: Rectangle + TopLeft: -700, -512 + BottomRight: 712, 512 + Building: + Dimensions: 3,3 + Footprint: xx= === xx= + SpawnActorOnDeath: + Actor: pass01_destroyed_left + OwnerType: InternalName + + +pass01_destroyed_left: + Inherits: ^new_tile_destroyed + RenderSprites: + Image: rockpass01_destroyed_left + Building: + Dimensions: 3,3 + Footprint: xxx xxx xxx + TransformOnCapture: + IntoActor: pass01_destroyable_left + +pass01_destroyable_right: + Inherits: ^new_tile_destroyable + RenderSprites: + Image: rockpass01_right + HitShape: + Type: Rectangle + TopLeft: -700, -512 + BottomRight: 700, 512 + Building: + Dimensions: 3,3 + Footprint: =xx === =xx + SpawnActorOnDeath: + Actor: pass01_destroyed_right + OwnerType: InternalName + +pass01_destroyed_right: + Inherits: ^new_tile_destroyed + RenderSprites: + Image: rockpass01_destroyed_right + Building: + Dimensions: 3,3 + Footprint: xxx xxx xxx + TransformOnCapture: + IntoActor: pass01_destroyable_right + +pass01_destroyable_top: + Inherits: ^new_tile_destroyable + RenderSprites: + Image: rockpass01_top + HitShape: + Type: Rectangle + TopLeft: -512, -900 + BottomRight: 512, 512 + Building: + Dimensions: 3,3 + Footprint: X=X X=X === + SpawnActorOnDeath: + Actor: pass01_destroyed_top + OwnerType: InternalName + +pass01_destroyed_top: + Inherits: ^new_tile_destroyed + RenderSprites: + Image: rockpass01_destroyed_top + Building: + Dimensions: 3,3 + Footprint: XxX xxx xxx + TransformOnCapture: + IntoActor: pass01_destroyable_top + +merge_title01: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: XX XX +merge_title02: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: XX XX +merge_title03: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: XX XX +merge_title04: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: XX XX + +transition_tile_01: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,2 + Footprint: XXX XXX + +transition_tile_02: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,2 + Footprint: XXX XXX + +transition_tile_03: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,2 + Footprint: XXX XXX + +transition_tile_04: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,2 + Footprint: XXX XXX + +transition_tile_05: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,2 + Footprint: XXX XXX + +transition_tile_06: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 3,2 + Footprint: XXX XXX + +bridge1_end_top_left: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,1 + Footprint: X_ + +bridge1_end_bottom_left: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,1 + Footprint: X_ + +bridge1_end_top: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +bridge1_end_bottom: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +bridge1_end_left: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +bridge1_end_right: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +platform_sand_bottom: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +platform_sand_bottom_left: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: X_ X_ + +platform_sand_bottom_right: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: _X _X + +platform_rock_right_bottom: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +platform_rock_righ_top: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +bridge01_sand_right: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +sand_end01: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,2 + Footprint: __ __ + +signle_cell1: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +signle_cell2: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,1 + Footprint: __ + +signle_cell3: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,2 + Footprint: _ _ + +signle_cell4: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 2,1 + Footprint: __ + +platform_left_01: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +platform_left_02: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +platform_left_03: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +platform_right_01: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +platform_right_02: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +platform_right_03: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +custom_rock03_h_barracks: + Inherits: ^new_tile_undestroyable + RenderSprites: + Palette: terrain + Building: + Dimensions: 2,3 + Footprint: XX XX XX + MapEditorData: + Categories: Decorations + +custom_rock04_a_barracks: + Inherits: ^new_tile_undestroyable + RenderSprites: + Palette: terrain + Building: + Dimensions: 2,2 + Footprint: XX XX + MapEditorData: + Categories: Decorations + +custom_rock05_o_barracks: + Inherits: ^new_tile_undestroyable + RenderSprites: + Palette: terrain + Building: + Dimensions: 2,3 + Footprint: X_ XX XX + MapEditorData: + Categories: Decorations + +bridge_tile01: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +tree01: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: x + Tooltip: + Name: Palm + MapEditorData: + Categories: Decorations + RenderSprites: + Palette: tree01 + + +rock_decoration01: + Inherits: ^new_tile_undestroyable + Building: + Dimensions: 1,1 + Footprint: _ + +^Ice_tileset: + Inherits@1: ^ExistsInWorld + Inherits@2: ^SpriteActor + FrozenUnderFog: + WithSpriteBody: + Building: + Footprint: _ + Dimensions: 1,1 + RenderSprites: + Palette: terrain + MapEditorData: + Categories: Ice Tileset + Interactable: + AppearsOnRadar: + RadarColorFromTerrain: + Terrain: Ice + AppearsOnMapPreview: + Terrain: Ice + Tooltip: + Name: Ice + ShowOwnerRow: false + RequiresSpecificOwners: + ValidOwnerNames: Neutral + +ice_tileset_small01: + Inherits: ^Ice_tileset + +ice_tileset_small02: + Inherits: ^Ice_tileset + +ice_tileset_small03: + Inherits: ^Ice_tileset + +ice_tileset_small04: + Inherits: ^Ice_tileset + +ice_tileset_small05: + Inherits: ^Ice_tileset + +ice_tileset_small06: + Inherits: ^Ice_tileset + +ice_tileset_small07: + Inherits: ^Ice_tileset + +ice_tileset_small08: + Inherits: ^Ice_tileset + +ice_tileset_small09: + Inherits: ^Ice_tileset + +ice_tileset_small10: + Inherits: ^Ice_tileset + +ice_tileset_small11: + Inherits: ^Ice_tileset + +ice_tileset_small12: + Inherits: ^Ice_tileset + +ice_tileset_small13: + Inherits: ^Ice_tileset + +ice_tileset_small14: + Inherits: ^Ice_tileset + +ice_tileset_small15: + Inherits: ^Ice_tileset + +ice_tileset_small16: + Inherits: ^Ice_tileset + +ice_tileset_small17: + Inherits: ^Ice_tileset + +ice_tileset_small18: + Inherits: ^Ice_tileset + +ice_tileset_small19: + Inherits: ^Ice_tileset + +ice_tileset_small20: + Inherits: ^Ice_tileset + +ice_tileset_small21: + Inherits: ^Ice_tileset + +ice_tileset_small22: + Inherits: ^Ice_tileset + +ice_tileset_small23: + Inherits: ^Ice_tileset + +ice_tileset_small24: + Inherits: ^Ice_tileset + +ice_tileset_small25: + Inherits: ^Ice_tileset + +ice_tileset_big01: + Inherits: ^Ice_tileset + Building: + Footprint: xx _x + Dimensions: 2,2 + +ice_tileset_big02: + Inherits: ^Ice_tileset + Building: + Footprint: _x __ + Dimensions: 2,2 + +ice_tileset_big03: + Inherits: ^Ice_tileset + Building: + Footprint: xx_ xxx + Dimensions: 3,2 + +ice_tileset_big03_1: + Inherits: ^Ice_tileset + Building: + Footprint: _xx __x + Dimensions: 3,2 + +ice_tileset_big03_2: + Inherits: ^Ice_tileset + Building: + Footprint: xxx xx_ + Dimensions: 3,2 + +ice_tileset_big03_3: + Inherits: ^Ice_tileset + Building: + Footprint: _xx xx_ + Dimensions: 3,2 + +ice_tileset_big04: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_big05: + Inherits: ^Ice_tileset + Building: + Footprint: _x _x + Dimensions: 2,2 + +ice_tileset_big06: + Inherits: ^Ice_tileset + Building: + Footprint: xx x_ + Dimensions: 2,2 + +ice_tileset_big07: + Inherits: ^Ice_tileset + Building: + Footprint: _x xx + Dimensions: 2,2 + +ice_tileset_big08: + Inherits: ^Ice_tileset + Building: + Footprint: xx x_ + Dimensions: 2,2 + +ice_tileset_big09: + Inherits: ^Ice_tileset + Building: + Footprint: __ xx _x + Dimensions: 2,3 + +ice_tileset_big10: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx x_ + Dimensions: 2,3 + +ice_tileset_big11: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_big12: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big13: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big14: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big15: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_big16: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_big17: + Inherits: ^Ice_tileset + Building: + Footprint: xx __ + Dimensions: 2,2 + +ice_tileset_big18: + Inherits: ^Ice_tileset + Building: + Footprint: xx __ + Dimensions: 2,2 + +ice_tileset_big19: + Inherits: ^Ice_tileset + Building: + Footprint: xx x_ + Dimensions: 2,2 + +ice_tileset_big20: + Inherits: ^Ice_tileset + Building: + Footprint: _xx _xx + Dimensions: 3,2 + +ice_tileset_big21: + Inherits: ^Ice_tileset + Building: + Footprint: xx __ + Dimensions: 2,2 + +ice_tileset_big22: + Inherits: ^Ice_tileset + Building: + Footprint: xx __ + Dimensions: 2,2 + +ice_tileset_big23: + Inherits: ^Ice_tileset + Building: + Footprint: __ xx + Dimensions: 2,2 + +ice_tileset_big24: + Inherits: ^Ice_tileset + Building: + Footprint: x_ x_ + Dimensions: 2,2 + +ice_tileset_big25: + Inherits: ^Ice_tileset + Building: + Footprint: xx __ + Dimensions: 2,2 + +ice_tileset_big26: + Inherits: ^Ice_tileset + Building: + Footprint: x_ + Dimensions: 2,1 + +ice_tileset_big27: + Inherits: ^Ice_tileset + Building: + Footprint: xx + Dimensions: 2,1 + +ice_tileset_big28: + Inherits: ^Ice_tileset + Building: + Footprint: x _ + Dimensions: 1,2 + +ice_tileset_big29: + Inherits: ^Ice_tileset + Building: + Footprint: x x + Dimensions: 1,2 + +ice_tileset_big_smooth01: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big_smooth02: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big_smooth03: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big_smooth04: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big_smooth05: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big_smooth06: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big_smooth07: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_big_smooth08: + Inherits: ^Ice_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 + +ice_tileset_transition01: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_transition02: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_transition03: + Inherits: ^Ice_tileset + Building: + Footprint: _x xx + Dimensions: 2,2 + +ice_tileset_transition04: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_transition05: + Inherits: ^Ice_tileset + Building: + Footprint: xx __ + Dimensions: 2,2 + +ice_tileset_transition06: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_decoration01: + Inherits: ^Ice_tileset + Building: + Footprint: _ + Dimensions: 1,1 + +ice_tileset_decoration02: + Inherits: ^Ice_tileset + Building: + Footprint: _ + Dimensions: 1,1 + +ice_tileset_decoration03: + Inherits: ^Ice_tileset + Building: + Footprint: _ _ + Dimensions: 1,2 + +ice_tileset_decoration04: + Inherits: ^Ice_tileset + Building: + Footprint: x_x x_x x_x + Dimensions: 3,3 + +ice_tileset_decoration05: + Inherits: ^Ice_tileset + Building: + Footprint: __x xx_ + Dimensions: 3,2 + +ice_tileset_decoration06: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_decoration07: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_decoration08: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_decoration09: + Inherits: ^Ice_tileset + Building: + Footprint: xx + Dimensions: 2,1 + +ice_tileset_decoration10: + Inherits: ^Ice_tileset + Building: + Footprint: __ + Dimensions: 2,1 + +ice_tileset_decoration11: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + +ice_tileset_decoration12: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + + +ice_tileset_decoration13: + Inherits: ^Ice_tileset + Building: + Footprint: xx _x + Dimensions: 2,2 + +ice_tileset_decoration14: + Inherits: ^Ice_tileset + Building: + Footprint: _ _ + Dimensions: 1,2 + + +ice_tileset_decoration15: + Inherits: ^Ice_tileset + Building: + Footprint: __ xx + Dimensions: 2,2 + + +ice_tileset_decoration16: + Inherits: ^Ice_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 + + +^Water_tileset: + Inherits@1: ^ExistsInWorld + Inherits@2: ^SpriteActor + FrozenUnderFog: + WithSpriteBody: + Building: + Footprint: _ + Dimensions: 1,1 + RenderSprites: + Palette: water_palette + MapEditorData: + Categories: Water Tileset + Interactable: + AppearsOnRadar: + RadarColorFromTerrain: + Terrain: Ice + AppearsOnMapPreview: + Terrain: Ice + Tooltip: + Name: Spring + ShowOwnerRow: false + RequiresSpecificOwners: + ValidOwnerNames: Neutral + + + + +water_tileset_01: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_02: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_03: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_04: + Inherits: ^Water_tileset +water_tileset_05: + Inherits: ^Water_tileset +water_tileset_06: + Inherits: ^Water_tileset +water_tileset_07: + Inherits: ^Water_tileset +water_tileset_08: + Inherits: ^Water_tileset +water_tileset_09: + Inherits: ^Water_tileset +water_tileset_09_1: + Inherits: ^Water_tileset +water_tileset_09_2: + Inherits: ^Water_tileset +water_tileset_09_3: + Inherits: ^Water_tileset +water_tileset_09_4: + Inherits: ^Water_tileset +water_tileset_09_5: + Inherits: ^Water_tileset +water_tileset_10: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_11: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_12: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_13: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_14: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_15: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_16: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_17: + Inherits: ^Water_tileset +water_tileset_18: + Inherits: ^Water_tileset +water_tileset_19: + Inherits: ^Water_tileset +water_tileset_20: + Inherits: ^Water_tileset +water_tileset_21: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_22: + Inherits: ^Water_tileset +water_tileset_23: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_24: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_25: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_26: + Inherits: ^Water_tileset + Building: + Footprint: x +water_tileset_27: + Inherits: ^Water_tileset +water_tileset_28: + Inherits: ^Water_tileset +water_tileset_29: + Inherits: ^Water_tileset + Building: + Footprint: _ _ + Dimensions: 1,2 +water_tileset_30: + Inherits: ^Water_tileset + Building: + Footprint: _ _ + Dimensions: 1,2 +water_tileset_31: + Inherits: ^Water_tileset + Building: + Footprint: __ + Dimensions: 2,1 +water_tileset_32: + Inherits: ^Water_tileset + Building: + Footprint: __ + Dimensions: 2,1 +water_tileset_33: + Inherits: ^Water_tileset +water_tileset_34: + Inherits: ^Water_tileset +water_tileset_35: + Inherits: ^Water_tileset +water_tileset_36: + Inherits: ^Water_tileset +water_tileset_37: + Inherits: ^Water_tileset +water_tileset_38: + Inherits: ^Water_tileset +water_tileset_39: + Inherits: ^Water_tileset +water_tileset_40: + Inherits: ^Water_tileset +water_tileset_41: + Inherits: ^Water_tileset +water_tileset_42: + Inherits: ^Water_tileset +water_tileset_43: + Inherits: ^Water_tileset +water_tileset_44: + Inherits: ^Water_tileset +water_tileset_45: + Inherits: ^Water_tileset +water_tileset_46: + Inherits: ^Water_tileset +water_tileset_47: + Inherits: ^Water_tileset +water_tileset_48: + Inherits: ^Water_tileset +water_tileset_49: + Inherits: ^Water_tileset +water_tileset_50: + Inherits: ^Water_tileset +water_tileset_51: + Inherits: ^Water_tileset +water_tileset_52: + Inherits: ^Water_tileset +water_tileset_53: + Inherits: ^Water_tileset + Building: + Footprint: __ + Dimensions: 2,1 +water_tileset_54: + Inherits: ^Water_tileset + Building: + Footprint: __ + Dimensions: 2,1 + +water_tileset_big01: + Inherits: ^Water_tileset + Building: + Footprint: xx x_ + Dimensions: 2,2 +water_tileset_big02: + Inherits: ^Water_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 +water_tileset_big03: + Inherits: ^Water_tileset + Building: + Footprint: xx _x + Dimensions: 2,2 +water_tileset_big04: + Inherits: ^Water_tileset + Building: + Footprint: _x xx + Dimensions: 2,2 +water_tileset_big05: + Inherits: ^Water_tileset + Building: + Footprint: xx _x + Dimensions: 2,2 +water_tileset_big06: + Inherits: ^Water_tileset + Building: + Footprint: xx x_ + Dimensions: 2,2 +water_tileset_big07: + Inherits: ^Water_tileset + Building: + Footprint: _x xx + Dimensions: 2,2 +water_tileset_big08: + Inherits: ^Water_tileset + Building: + Footprint: x_ xx + Dimensions: 2,2 +water_tileset_big09: + Inherits: ^Water_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 +water_tileset_big10: + Inherits: ^Water_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 +water_tileset_big11: + Inherits: ^Water_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 +water_tileset_big12: + Inherits: ^Water_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 +water_tileset_big13: + Inherits: ^Water_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 +water_tileset_big14: + Inherits: ^Water_tileset + Building: + Footprint: __ __ + Dimensions: 2,2 +water_tileset_big15: + Inherits: ^Water_tileset + Building: + Footprint: xx xx + Dimensions: 2,2 diff --git a/mods/d2k/maps/01scriptrework/NewTiles_assets.R8 b/mods/d2k/maps/01scriptrework/NewTiles_assets.R8 new file mode 100644 index 000000000000..6cc7e6a20c51 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/NewTiles_assets.R8 differ diff --git a/mods/d2k/maps/01scriptrework/Sequences_newTiles.yaml b/mods/d2k/maps/01scriptrework/Sequences_newTiles.yaml new file mode 100644 index 000000000000..6aeba4fc43c1 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/Sequences_newTiles.yaml @@ -0,0 +1,1528 @@ +invisible_blocking_actor: + idle: + Filename: NewTiles_assets.R8 + Start: 0 + ZOffset: -1 + Offset: -16,-16 + +invisible_blocking_actor_editor: + idle: + Filename: NewTiles_assets.R8 + Start: 0 + ZOffset: -1 + Offset: -16,-16 + +rockpass01_left: + idle: + Filename: NewTiles_assets.R8 + Start: 1 + ZOffset: -2048 + Offset: -48, -48 + +rockpass01_right: + idle: + Filename: NewTiles_assets.R8 + Start: 2 + ZOffset: -2048 + Offset: -48, -48 + +rockpass01_top: + idle: + Filename: NewTiles_assets.R8 + Start: 3 + ZOffset: -2048 + Offset: -48, -48 + +rockpass01_bottom: + idle: + Filename: NewTiles_assets.R8 + Start: 4 + ZOffset: -2048 + Offset: -48, -48 + + +rockpass01_destroyed_left: + idle: + Filename: NewTiles_assets.R8 + Start: 6 + ZOffset: -2048 + Offset: -48, -48 + +rockpass01_destroyed_right: + idle: + Filename: NewTiles_assets.R8 + Start: 5 + + ZOffset: -2048 + Offset: -48, -48 + +rockpass01_destroyed_top: + idle: + Filename: NewTiles_assets.R8 + Start: 7 + ZOffset: -2512 + Offset: -48, -48 + +rockpass01_destroyed_bottom: + idle: + Filename: NewTiles_assets.R8 + Start: 8 + ZOffset: -2048 + Offset: -48, -48 + +sandpass01_bottom: + idle: + Filename: NewTiles_assets.R8 + Start: 9 + ZOffset: -2048 + Offset: -16, -32 + +sandpass01_top: + idle: + Filename: NewTiles_assets.R8 + Start: 10 + ZOffset: -2048 + Offset: -16, -32 + +sandpass01_left: + idle: + Filename: NewTiles_assets.R8 + Start: 11 + ZOffset: -2048 + Offset: -32, -16 + +sandpass01_right: + idle: + Filename: NewTiles_assets.R8 + Start: 12 + Offset: -32, -16 + ZOffset: -2048 + +rockslip01_right: + idle: + Filename: NewTiles_assets.R8 + Start: 13 + Offset: -32, -32 + ZOffset: -2048 + +rockslip01_right_alter: + idle: + Filename: NewTiles_assets.R8 + Start: 14 + Offset: -32, -32 + ZOffset: -2048 + +rockslip01_top: + idle: + Filename: NewTiles_assets.R8 + Start: 15 + Offset: -32, -32 + ZOffset: -2048 + +rockslip01_left: + idle: + Filename: NewTiles_assets.R8 + Start: 16 + Offset: -32, -32 + ZOffset: -2048 + +rockslip02_top_right: + idle: + Filename: NewTiles_assets.R8 + Start: 17 + Offset: -48, -32 + ZOffset: -2048 + +rockslip02_top_left: + idle: + Filename: NewTiles_assets.R8 + Start: 18 + Offset: -48, -32 + ZOffset: -2048 + +merge_title01: + idle: + Filename: NewTiles_assets.R8 + Start: 19 + Offset: -32, -32 +merge_title02: + idle: + Filename: NewTiles_assets.R8 + Start: 20 + Offset: -32, -32 +merge_title03: + idle: + Filename: NewTiles_assets.R8 + Start: 21 + Offset: -32, -32 +merge_title04: + idle: + Filename: NewTiles_assets.R8 + Start: 22 + Offset: -32, -32 + +transition_tile_01: + idle: + Filename: NewTiles_assets.R8 + Start: 23 + Offset: -48, -32 + ZOffset: -2048 + +transition_tile_02: + idle: + Filename: NewTiles_assets.R8 + Start: 24 + Offset: -48, -32 + ZOffset: -2048 + +transition_tile_03: + idle: + Filename: NewTiles_assets.R8 + Start: 25 + Offset: -48, -32 + ZOffset: -2048 + +transition_tile_04: + idle: + Filename: NewTiles_assets.R8 + Start: 26 + Offset: -48, -32 + ZOffset: -2048 + +transition_tile_05: + idle: + Filename: NewTiles_assets.R8 + Start: 27 + Offset: -48, -32 + ZOffset: -2048 + +transition_tile_06: + idle: + Filename: NewTiles_assets.R8 + Start: 28 + Offset: -48, -32 + ZOffset: -2048 + +bridge1_end_top_left: + idle: + Filename: NewTiles_assets.R8 + Start: 29 + Offset: -32, -16 + ZOffset: -2048 + +bridge1_end_bottom_left: + idle: + Filename: NewTiles_assets.R8 + Start: 30 + Offset: -32, -16 + ZOffset: -2048 + +bridge1_end_top: + idle: + Filename: NewTiles_assets.R8 + Start: 31 + Offset: -16, -16 + ZOffset: -2048 + +bridge1_end_bottom: + idle: + Filename: NewTiles_assets.R8 + Start: 32 + Offset: -16, -16 + ZOffset: -2048 + +bridge1_end_left: + idle: + Filename: NewTiles_assets.R8 + Start: 33 + Offset: -16, -16 + ZOffset: -2048 + +bridge1_end_right: + idle: + Filename: NewTiles_assets.R8 + Start: 34 + Offset: -16, -16 + ZOffset: -2048 + +platform_sand_bottom: + idle: + Filename: NewTiles_assets.R8 + Start: 39 + Offset: -16, -16 + ZOffset: -2048 + +platform_sand_bottom_left: + idle: + Filename: NewTiles_assets.R8 + Start: 37 + Offset: -32, -32 + ZOffset: -2048 + +platform_sand_bottom_right: + idle: + Filename: NewTiles_assets.R8 + Start: 38 + Offset: -32, -32 + ZOffset: -2048 + +platform_rock_right_bottom: + idle: + Filename: NewTiles_assets.R8 + Start: 35 + Offset: -16, -16 + ZOffset: -2048 + +platform_rock_righ_top: + idle: + Filename: NewTiles_assets.R8 + Start: 36 + Offset: -16, -16 + ZOffset: -2048 + +bridge01_sand_right: + idle: + Filename: NewTiles_assets.R8 + Start: 40 + Offset: -16, -16 + ZOffset: -2048 + +sand_end01: + idle: + Filename: NewTiles_assets.R8 + Start: 41 + Offset: -32, -32 + ZOffset: -2048 + +signle_cell1: + idle: + Filename: NewTiles_assets.R8 + Start: 42 + Offset: -24, -24 + ZOffset: -2048 + +signle_cell2: + idle: + Filename: NewTiles_assets.R8 + Start: 43 + Offset: -32, -18 + ZOffset: -2048 + +signle_cell3: + idle: + Filename: NewTiles_assets.R8 + Start: 44 + Offset: -18, -32 + ZOffset: -2048 +signle_cell4: + idle: + Filename: NewTiles_assets.R8 + Start: 45 + Offset: -32,-18 + ZOffset: -2048 + +platform_left_01: + idle: + Filename: NewTiles_assets.R8 + Start: 46 + Offset: -16, -16 + ZOffset: -2048 + +platform_left_02: + idle: + Filename: NewTiles_assets.R8 + Start: 47 + Offset: -16, -16 + ZOffset: -2048 + +platform_left_03: + idle: + Filename: NewTiles_assets.R8 + Start: 48 + Offset: -16, -16 + ZOffset: -2048 + +platform_right_01: + idle: + Filename: NewTiles_assets.R8 + Start: 49 + Offset: -16, -16 + ZOffset: -2048 + +platform_right_02: + idle: + Filename: NewTiles_assets.R8 + Start: 50 + Offset: -16, -16 + ZOffset: -2048 + +platform_right_03: + idle: + Filename: NewTiles_assets.R8 + Start: 51 + Offset: -16, -16 + ZOffset: -2048 + + +fremen_temple: + idle: + Filename: NewTiles_assets.R8 + Start: 52 + Offset: -64, -32 + ZOffset: -2048 + +building_rock01: + idle: + Filename: NewTiles_assets.R8 + Start: 53 + Offset: -64, -64 + ZOffset: -2048 + +custom_rock02_ecology_station: + idle: + Filename: NewTiles_assets.R8 + Start: 54 + Offset: -48, -48 + ZOffset: -2048 + +custom_rock03_h_barracks: + idle: + Filename: NewTiles_assets.R8 + Start: 55 + Offset: -32, -48 + ZOffset: -2048 + +fremen_tent01: + idle: + Filename: NewTiles_assets.R8 + Start: 56 + Offset: -25, -48 + +custom_rock04_a_barracks: + idle: + Filename: NewTiles_assets.R8 + Start: 57 + Offset: -32, -32 + ZOffset: -2048 + +custom_rock05_o_barracks: + idle: + Filename: NewTiles_assets.R8 + Start: 58 + Offset: -32, -48 + ZOffset: -2048 + +bridge_tile01: + idle: + Filename: NewTiles_assets.R8 + Start: 59 + ZOffset: -2048 + Offset: -16,-15 + +pips: + healt_cross: + Filename: NewTiles_assets.R8 + Start: 60 + Offset: -5,-5 + +tree01: + idle: + Filename: NewTiles_assets.R8 + Start: 61 + Offset: -32, -32 + ZOffset: -2048 + Scale: 0.8 + +rock_decoration01: + idle: + Filename: NewTiles_assets.R8 + Start: 62 + Offset: -32, -32 + ZOffset: -2048 + + + + + +ice_tileset_small01: + idle: + Filename: NewTiles_assets.R8 + Start: 63 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small02: + idle: + Filename: NewTiles_assets.R8 + Start: 64 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small03: + idle: + Filename: NewTiles_assets.R8 + Start: 65 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small04: + idle: + Filename: NewTiles_assets.R8 + Start: 86 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small05: + idle: + Filename: NewTiles_assets.R8 + Start: 66 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small06: + idle: + Filename: NewTiles_assets.R8 + Start: 67 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small07: + idle: + Filename: NewTiles_assets.R8 + Start: 68 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small08: + idle: + Filename: NewTiles_assets.R8 + Start: 69 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small09: + idle: + Filename: NewTiles_assets.R8 + Start: 70 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small10: + idle: + Filename: NewTiles_assets.R8 + Start: 71 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small11: + idle: + Filename: NewTiles_assets.R8 + Start: 72 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small12: + idle: + Filename: NewTiles_assets.R8 + Start: 73 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small13: + idle: + Filename: NewTiles_assets.R8 + Start: 74 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small14: + idle: + Filename: NewTiles_assets.R8 + Start: 75 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small15: + idle: + Filename: NewTiles_assets.R8 + Start: 76 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small16: + idle: + Filename: NewTiles_assets.R8 + Start: 77 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small17: + idle: + Filename: NewTiles_assets.R8 + Start: 78 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small18: + idle: + Filename: NewTiles_assets.R8 + Start: 79 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small19: + idle: + Filename: NewTiles_assets.R8 + Start: 80 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small20: + idle: + Filename: NewTiles_assets.R8 + Start: 81 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small21: + idle: + Filename: NewTiles_assets.R8 + Start: 82 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small22: + idle: + Filename: NewTiles_assets.R8 + Start: 83 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small23: + idle: + Filename: NewTiles_assets.R8 + Start: 84 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small24: + idle: + Filename: NewTiles_assets.R8 + Start: 85 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_small25: + idle: + Filename: NewTiles_assets.R8 + Start: 88 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_big01: + idle: + Filename: NewTiles_assets.R8 + Start: 89 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big02: + idle: + Filename: NewTiles_assets.R8 + Start: 90 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big03: + idle: + Filename: NewTiles_assets.R8 + Start: 91 + Offset: -48, -32 + ZOffset: -10c512 + +ice_tileset_big03_1: + idle: + Filename: NewTiles_assets.R8 + Start: 108 + Offset: -48, -32 + ZOffset: -10c512 + +ice_tileset_big03_2: + idle: + Filename: NewTiles_assets.R8 + Start: 109 + Offset: -48, -32 + ZOffset: -10c512 + +ice_tileset_big03_3: + idle: + Filename: NewTiles_assets.R8 + Start: 110 + Offset: -48, -32 + ZOffset: -10c512 + +ice_tileset_big04: + idle: + Filename: NewTiles_assets.R8 + Start: 92 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big05: + idle: + Filename: NewTiles_assets.R8 + Start: 93 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big06: + idle: + Filename: NewTiles_assets.R8 + Start: 94 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big07: + idle: + Filename: NewTiles_assets.R8 + Start: 95 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big08: + idle: + Filename: NewTiles_assets.R8 + Start: 96 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big09: + idle: + Filename: NewTiles_assets.R8 + Start: 97 + Offset: -32, -48 + ZOffset: -10c512 + +ice_tileset_big10: + idle: + Filename: NewTiles_assets.R8 + Start: 98 + Offset: -32,-48 + ZOffset: -10c512 + +ice_tileset_big11: + idle: + Filename: NewTiles_assets.R8 + Start: 99 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big12: + idle: + Filename: NewTiles_assets.R8 + Start: 100 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big13: + idle: + Filename: NewTiles_assets.R8 + Start: 101 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big14: + idle: + Filename: NewTiles_assets.R8 + Start: 102 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big15: + idle: + Filename: NewTiles_assets.R8 + Start: 103 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big16: + idle: + Filename: NewTiles_assets.R8 + Start: 104 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big17: + idle: + Filename: NewTiles_assets.R8 + Start: 105 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big18: + idle: + Filename: NewTiles_assets.R8 + Start: 106 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big19: + idle: + Filename: NewTiles_assets.R8 + Start: 107 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big20: + idle: + Filename: NewTiles_assets.R8 + Start: 108 + Offset: -48,-32 + ZOffset: -10c512 + +ice_tileset_big21: + idle: + Filename: NewTiles_assets.R8 + Start: 111 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big22: + idle: + Filename: NewTiles_assets.R8 + Start: 112 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big23: + idle: + Filename: NewTiles_assets.R8 + Start: 113 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big24: + idle: + Filename: NewTiles_assets.R8 + Start: 114 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big25: + idle: + Filename: NewTiles_assets.R8 + Start: 115 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big26: + idle: + Filename: NewTiles_assets.R8 + Start: 116 + Offset: -32,-16 + ZOffset: -10c512 + +ice_tileset_big27: + idle: + Filename: NewTiles_assets.R8 + Start: 117 + Offset: -32,-16 + ZOffset: -10c512 + +ice_tileset_big28: + idle: + Filename: NewTiles_assets.R8 + Start: 118 + Offset: -16,-32 + ZOffset: -10c512 + +ice_tileset_big29: + idle: + Filename: NewTiles_assets.R8 + Start: 119 + Offset: -16,-32 + ZOffset: -10c512 + +ice_tileset_big_smooth01: + idle: + Filename: NewTiles_assets.R8 + Start: 217 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big_smooth02: + idle: + Filename: NewTiles_assets.R8 + Start: 218 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big_smooth03: + idle: + Filename: NewTiles_assets.R8 + Start: 219 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big_smooth04: + idle: + Filename: NewTiles_assets.R8 + Start: 220 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big_smooth05: + idle: + Filename: NewTiles_assets.R8 + Start: 221 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big_smooth06: + idle: + Filename: NewTiles_assets.R8 + Start: 222 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big_smooth07: + idle: + Filename: NewTiles_assets.R8 + Start: 223 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_big_smooth08: + idle: + Filename: NewTiles_assets.R8 + Start: 224 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_transition01: + idle: + Filename: NewTiles_assets.R8 + Start: 120 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_transition02: + idle: + Filename: NewTiles_assets.R8 + Start: 121 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_transition03: + idle: + Filename: NewTiles_assets.R8 + Start: 122 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_transition04: + idle: + Filename: NewTiles_assets.R8 + Start: 123 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_transition05: + idle: + Filename: NewTiles_assets.R8 + Start: 124 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_transition06: + idle: + Filename: NewTiles_assets.R8 + Start: 125 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_transition07: + idle: + Filename: NewTiles_assets.R8 + Start: 126 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_decoration01: + idle: + Filename: NewTiles_assets.R8 + Start: 127 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_decoration02: + idle: + Filename: NewTiles_assets.R8 + Start: 128 + Offset: -16,-16 + ZOffset: -10c512 + +ice_tileset_decoration03: + idle: + Filename: NewTiles_assets.R8 + Start: 129 + Offset: -16,-32 + ZOffset: -10c512 + +ice_tileset_decoration04: + idle: + Filename: NewTiles_assets.R8 + Start: 130 + Offset: -48,-48 + ZOffset: -10c512 + +ice_tileset_decoration05: + idle: + Filename: NewTiles_assets.R8 + Start: 131 + Offset: -48,-32 + ZOffset: -10c512 + +ice_tileset_decoration06: + idle: + Filename: NewTiles_assets.R8 + Start: 132 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_decoration07: + idle: + Filename: NewTiles_assets.R8 + Start: 133 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_decoration08: + idle: + Filename: NewTiles_assets.R8 + Start: 134 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_decoration09: + idle: + Filename: NewTiles_assets.R8 + Start: 135 + Offset: -32,-16 + ZOffset: -10c512 + +ice_tileset_decoration10: + idle: + Filename: NewTiles_assets.R8 + Start: 136 + Offset: -32,-16 + ZOffset: -10c512 + +ice_tileset_decoration11: + idle: + Filename: NewTiles_assets.R8 + Start: 137 + Offset: -32,-16 + ZOffset: -10c512 + +ice_tileset_decoration12: + idle: + Filename: NewTiles_assets.R8 + Start: 138 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_decoration13: + idle: + Filename: NewTiles_assets.R8 + Start: 139 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_decoration14: + idle: + Filename: NewTiles_assets.R8 + Start: 140 + Offset: -16,-32 + ZOffset: -10c512 + +ice_tileset_decoration15: + idle: + Filename: NewTiles_assets.R8 + Start: 225 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_decoration16: + idle: + Filename: NewTiles_assets.R8 + Start: 226 + Offset: -32,-32 + ZOffset: -10c512 + +ice_tileset_decoration18: + idle: + Filename: NewTiles_assets.R8 + Start: 141 + Offset: -32,-32 + ZOffset: -10c512 + + + + + + + +water_tileset_01: + idle: + Filename: NewTiles_assets.R8 + Start: 142 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_02: + idle: + Filename: NewTiles_assets.R8 + Start: 143 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_03: + idle: + Filename: NewTiles_assets.R8 + Start: 144 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_04: + idle: + Filename: NewTiles_assets.R8 + Start: 145 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_05: + idle: + Filename: NewTiles_assets.R8 + Start: 146 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_06: + idle: + Filename: NewTiles_assets.R8 + Start: 147 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_07: + idle: + Filename: NewTiles_assets.R8 + Start: 148 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_08: + idle: + Filename: NewTiles_assets.R8 + Start: 149 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_09: + idle: + Filename: NewTiles_assets.R8 + Start: 150 + Offset: -16,-16 + ZOffset: -10c512 + +water_tileset_09_1: + idle: + Filename: NewTiles_assets.R8 + Start: 197 + Offset: -16,-16 + ZOffset: -10c512 + +water_tileset_09_2: + idle: + Filename: NewTiles_assets.R8 + Start: 198 + Offset: -16,-16 + ZOffset: -10c512 + +water_tileset_09_3: + idle: + Filename: NewTiles_assets.R8 + Start: 199 + Offset: -16,-16 + ZOffset: -10c512 + +water_tileset_09_4: + idle: + Filename: NewTiles_assets.R8 + Start: 200 + Offset: -16,-16 + ZOffset: -10c512 + +water_tileset_09_5: + idle: + Filename: NewTiles_assets.R8 + Start: 201 + Offset: -16,-16 + ZOffset: -10c512 + + +water_tileset_10: + idle: + Filename: NewTiles_assets.R8 + Start: 151 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_11: + idle: + Filename: NewTiles_assets.R8 + Start: 152 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_12: + idle: + Filename: NewTiles_assets.R8 + Start: 153 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_13: + idle: + Filename: NewTiles_assets.R8 + Start: 154 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_14: + idle: + Filename: NewTiles_assets.R8 + Start: 154 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_15: + idle: + Filename: NewTiles_assets.R8 + Start: 155 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_16: + idle: + Filename: NewTiles_assets.R8 + Start: 156 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_17: + idle: + Filename: NewTiles_assets.R8 + Start: 157 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_18: + idle: + Filename: NewTiles_assets.R8 + Start: 158 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_19: + idle: + Filename: NewTiles_assets.R8 + Start: 159 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_20: + idle: + Filename: NewTiles_assets.R8 + Start: 160 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_21: + idle: + Filename: NewTiles_assets.R8 + Start: 161 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_22: + idle: + Filename: NewTiles_assets.R8 + Start: 162 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_23: + idle: + Filename: NewTiles_assets.R8 + Start: 163 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_24: + idle: + Filename: NewTiles_assets.R8 + Start: 164 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_25: + idle: + Filename: NewTiles_assets.R8 + Start: 165 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_26: + idle: + Filename: NewTiles_assets.R8 + Start: 166 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_27: + idle: + Filename: NewTiles_assets.R8 + Start: 167 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_28: + idle: + Filename: NewTiles_assets.R8 + Start: 168 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_29: + idle: + Filename: NewTiles_assets.R8 + Start: 169 + Offset: -16,-32 + ZOffset: -10c512 +water_tileset_30: + idle: + Filename: NewTiles_assets.R8 + Start: 170 + Offset: -16,-32 + ZOffset: -10c512 +water_tileset_31: + idle: + Filename: NewTiles_assets.R8 + Start: 171 + Offset: -32,-16 + ZOffset: -10c512 +water_tileset_32: + idle: + Filename: NewTiles_assets.R8 + Start: 172 + Offset: -32,-16 + ZOffset: -10c512 +water_tileset_33: + idle: + Filename: NewTiles_assets.R8 + Start: 173 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_34: + idle: + Filename: NewTiles_assets.R8 + Start: 174 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_35: + idle: + Filename: NewTiles_assets.R8 + Start: 175 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_36: + idle: + Filename: NewTiles_assets.R8 + Start: 176 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_37: + idle: + Filename: NewTiles_assets.R8 + Start: 177 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_38: + idle: + Filename: NewTiles_assets.R8 + Start: 178 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_39: + idle: + Filename: NewTiles_assets.R8 + Start: 179 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_40: + idle: + Filename: NewTiles_assets.R8 + Start: 180 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_41: + idle: + Filename: NewTiles_assets.R8 + Start: 181 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_42: + idle: + Filename: NewTiles_assets.R8 + Start: 182 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_43: + idle: + Filename: NewTiles_assets.R8 + Start: 183 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_44: + idle: + Filename: NewTiles_assets.R8 + Start: 184 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_45: + idle: + Filename: NewTiles_assets.R8 + Start: 185 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_46: + idle: + Filename: NewTiles_assets.R8 + Start: 186 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_47: + idle: + Filename: NewTiles_assets.R8 + Start: 187 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_48: + idle: + Filename: NewTiles_assets.R8 + Start: 188 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_49: + idle: + Filename: NewTiles_assets.R8 + Start: 189 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_50: + idle: + Filename: NewTiles_assets.R8 + Start: 190 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_51: + idle: + Filename: NewTiles_assets.R8 + Start: 191 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_52: + idle: + Filename: NewTiles_assets.R8 + Start: 192 + Offset: -16,-16 + ZOffset: -10c512 +water_tileset_53: + idle: + Filename: NewTiles_assets.R8 + Start: 193 + Offset: -32,-16 + ZOffset: -10c512 +water_tileset_54: + idle: + Filename: NewTiles_assets.R8 + Start: 194 + Offset: -32,-16 + ZOffset: -10c512 + + +water_tileset_big01: + idle: + Filename: NewTiles_assets.R8 + Start: 203 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big02: + idle: + Filename: NewTiles_assets.R8 + Start: 204 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big03: + idle: + Filename: NewTiles_assets.R8 + Start: 205 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big04: + idle: + Filename: NewTiles_assets.R8 + Start: 206 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big05: + idle: + Filename: NewTiles_assets.R8 + Start: 207 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big06: + idle: + Filename: NewTiles_assets.R8 + Start: 208 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big07: + idle: + Filename: NewTiles_assets.R8 + Start: 209 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big08: + idle: + Filename: NewTiles_assets.R8 + Start: 210 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big09: + idle: + Filename: NewTiles_assets.R8 + Start: 211 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big10: + idle: + Filename: NewTiles_assets.R8 + Start: 212 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big11: + idle: + Filename: NewTiles_assets.R8 + Start: 213 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big12: + idle: + Filename: NewTiles_assets.R8 + Start: 214 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big13: + idle: + Filename: NewTiles_assets.R8 + Start: 215 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big14: + idle: + Filename: NewTiles_assets.R8 + Start: 216 + Offset: -32,-32 + ZOffset: -10c512 +water_tileset_big15: + idle: + Filename: NewTiles_assets.R8 + Start: 217 + Offset: -32,-32 + ZOffset: -10c512 diff --git a/mods/d2k/maps/01scriptrework/audio/DeathHand_video.wav b/mods/d2k/maps/01scriptrework/audio/DeathHand_video.wav new file mode 100644 index 000000000000..0778c9940646 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/DeathHand_video.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/DevastatorMeltdown01.wav b/mods/d2k/maps/01scriptrework/audio/DevastatorMeltdown01.wav new file mode 100644 index 000000000000..83ed865918a5 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/DevastatorMeltdown01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_MortarDeploy.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_MortarDeploy.wav new file mode 100644 index 000000000000..cc81557ede16 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_MortarDeploy.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_MortarExplosion.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_MortarExplosion.wav new file mode 100644 index 000000000000..61a98abfd2bd Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_MortarExplosion.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_MortarFire.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_MortarFire.wav new file mode 100644 index 000000000000..307329484429 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_MortarFire.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_MortarUndeploy.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_MortarUndeploy.wav new file mode 100644 index 000000000000..21829fece97f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_MortarUndeploy.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_buildingPlacement.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_buildingPlacement.wav new file mode 100644 index 000000000000..1fb433245cc5 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_buildingPlacement.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_hidenunits1.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_hidenunits1.wav new file mode 100644 index 000000000000..de4d3e541025 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_hidenunits1.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_infantry_reload.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_infantry_reload.wav new file mode 100644 index 000000000000..de2986c1b35a Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_infantry_reload.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_infantry_reload_low.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_infantry_reload_low.wav new file mode 100644 index 000000000000..7c4751f3b415 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_infantry_reload_low.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_normal_dying_2.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_normal_dying_2.wav new file mode 100644 index 000000000000..f5d02287778a Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_normal_dying_2.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_normal_dying_3.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_normal_dying_3.wav new file mode 100644 index 000000000000..6965889e8451 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_normal_dying_3.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EBoD_thumper_deploy_1.wav b/mods/d2k/maps/01scriptrework/audio/EBoD_thumper_deploy_1.wav new file mode 100644 index 000000000000..725cdc4623ae Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EBoD_thumper_deploy_1.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EITSLand.wav b/mods/d2k/maps/01scriptrework/audio/EITSLand.wav new file mode 100644 index 000000000000..1a09018cd1ad Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EITSLand.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/EITSTakeOff.wav b/mods/d2k/maps/01scriptrework/audio/EITSTakeOff.wav new file mode 100644 index 000000000000..1f1e84fd212b Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/EITSTakeOff.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/ExplosionBuildingLightResonance01.wav b/mods/d2k/maps/01scriptrework/audio/ExplosionBuildingLightResonance01.wav new file mode 100644 index 000000000000..bb8e8d1e192f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/ExplosionBuildingLightResonance01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/FIREWORKS.wav b/mods/d2k/maps/01scriptrework/audio/FIREWORKS.wav new file mode 100644 index 000000000000..1a1d86493a4f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/FIREWORKS.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/HI_releaseTheSardaukar01.wav b/mods/d2k/maps/01scriptrework/audio/HI_releaseTheSardaukar01.wav new file mode 100644 index 000000000000..ec733cb710b9 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/HI_releaseTheSardaukar01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/OrniBomb01.wav b/mods/d2k/maps/01scriptrework/audio/OrniBomb01.wav new file mode 100644 index 000000000000..18e185043a2a Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/OrniBomb01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/adv_carryall_land_1.wav b/mods/d2k/maps/01scriptrework/audio/adv_carryall_land_1.wav new file mode 100644 index 000000000000..e2879cc47a8b Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/adv_carryall_land_1.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/adv_carryall_takeoff_1.wav b/mods/d2k/maps/01scriptrework/audio/adv_carryall_takeoff_1.wav new file mode 100644 index 000000000000..2de1030a7c00 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/adv_carryall_takeoff_1.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/bigexplosion01.wav b/mods/d2k/maps/01scriptrework/audio/bigexplosion01.wav new file mode 100644 index 000000000000..ca2a096aff8a Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/bigexplosion01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/bigxplosion02.wav b/mods/d2k/maps/01scriptrework/audio/bigxplosion02.wav new file mode 100644 index 000000000000..7aeee737f4cf Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/bigxplosion02.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/bigxplosion17.wav b/mods/d2k/maps/01scriptrework/audio/bigxplosion17.wav new file mode 100644 index 000000000000..f5d16f66569d Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/bigxplosion17.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/burn_dying_1.wav b/mods/d2k/maps/01scriptrework/audio/burn_dying_1.wav new file mode 100644 index 000000000000..3a503454d1d8 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/burn_dying_1.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/burn_dying_2.wav b/mods/d2k/maps/01scriptrework/audio/burn_dying_2.wav new file mode 100644 index 000000000000..c1cda41f8d36 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/burn_dying_2.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/burn_dying_6.wav b/mods/d2k/maps/01scriptrework/audio/burn_dying_6.wav new file mode 100644 index 000000000000..dcd5820289aa Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/burn_dying_6.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/carryallSound(2).wav b/mods/d2k/maps/01scriptrework/audio/carryallSound(2).wav new file mode 100644 index 000000000000..838c07404a83 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/carryallSound(2).wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/choke_dying_2.wav b/mods/d2k/maps/01scriptrework/audio/choke_dying_2.wav new file mode 100644 index 000000000000..21325856d748 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/choke_dying_2.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/choke_dying_6.wav b/mods/d2k/maps/01scriptrework/audio/choke_dying_6.wav new file mode 100644 index 000000000000..811877243c4f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/choke_dying_6.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/crush_guy_2.wav b/mods/d2k/maps/01scriptrework/audio/crush_guy_2.wav new file mode 100644 index 000000000000..2d6211d6928a Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/crush_guy_2.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/crush_guy_4.wav b/mods/d2k/maps/01scriptrework/audio/crush_guy_4.wav new file mode 100644 index 000000000000..9540ee507e26 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/crush_guy_4.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/daisy_whistle.wav b/mods/d2k/maps/01scriptrework/audio/daisy_whistle.wav new file mode 100644 index 000000000000..9222e958104e Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/daisy_whistle.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/daisygas.wav b/mods/d2k/maps/01scriptrework/audio/daisygas.wav new file mode 100644 index 000000000000..9b45fd26c5ef Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/daisygas.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/death_hand_launch_1.wav b/mods/d2k/maps/01scriptrework/audio/death_hand_launch_1.wav new file mode 100644 index 000000000000..a2734a58c80f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/death_hand_launch_1.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/explodeSaboteurEmperor02.wav b/mods/d2k/maps/01scriptrework/audio/explodeSaboteurEmperor02.wav new file mode 100644 index 000000000000..5905304ea3a2 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/explodeSaboteurEmperor02.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/explosion_Carryall.wav b/mods/d2k/maps/01scriptrework/audio/explosion_Carryall.wav new file mode 100644 index 000000000000..9c6a3fb7ec19 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/explosion_Carryall.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/explosion_large_2.wav b/mods/d2k/maps/01scriptrework/audio/explosion_large_2.wav new file mode 100644 index 000000000000..bb4248fce654 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/explosion_large_2.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/falling_bomb.wav b/mods/d2k/maps/01scriptrework/audio/falling_bomb.wav new file mode 100644 index 000000000000..1fb78862fb2f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/falling_bomb.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/flamethrower.wav b/mods/d2k/maps/01scriptrework/audio/flamethrower.wav new file mode 100644 index 000000000000..81c5a421a2df Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/flamethrower.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/frigate_land.wav b/mods/d2k/maps/01scriptrework/audio/frigate_land.wav new file mode 100644 index 000000000000..5c81407211ff Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/frigate_land.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/frigate_new.wav b/mods/d2k/maps/01scriptrework/audio/frigate_new.wav new file mode 100644 index 000000000000..5a332a7e2d46 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/frigate_new.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/frigate_new2.wav b/mods/d2k/maps/01scriptrework/audio/frigate_new2.wav new file mode 100644 index 000000000000..93bde93f3a6e Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/frigate_new2.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/hk_engineer_pistol_1.wav b/mods/d2k/maps/01scriptrework/audio/hk_engineer_pistol_1.wav new file mode 100644 index 000000000000..86c881bdc8a4 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/hk_engineer_pistol_1.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/ironcur9.aud b/mods/d2k/maps/01scriptrework/audio/ironcur9.aud new file mode 100644 index 000000000000..f907a02c11dc Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/ironcur9.aud differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_Cliff_Destroyed.wav b/mods/d2k/maps/01scriptrework/audio/new_Cliff_Destroyed.wav new file mode 100644 index 000000000000..0b135fb9f48f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_Cliff_Destroyed.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_DeathHandnew.wav b/mods/d2k/maps/01scriptrework/audio/new_DeathHandnew.wav new file mode 100644 index 000000000000..083185f44299 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_DeathHandnew.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_DerbisBigExplosion01.wav b/mods/d2k/maps/01scriptrework/audio/new_DerbisBigExplosion01.wav new file mode 100644 index 000000000000..d05657b10dfa Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_DerbisBigExplosion01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_DerbisHeavy01.wav b/mods/d2k/maps/01scriptrework/audio/new_DerbisHeavy01.wav new file mode 100644 index 000000000000..b173e63ac147 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_DerbisHeavy01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_DerbisHeavy02.wav b/mods/d2k/maps/01scriptrework/audio/new_DerbisHeavy02.wav new file mode 100644 index 000000000000..d200f78d91da Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_DerbisHeavy02.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_derbisHeave_bounce01.wav b/mods/d2k/maps/01scriptrework/audio/new_derbisHeave_bounce01.wav new file mode 100644 index 000000000000..a28642ec37f6 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_derbisHeave_bounce01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_derbisHeavy_bounce02.wav b/mods/d2k/maps/01scriptrework/audio/new_derbisHeavy_bounce02.wav new file mode 100644 index 000000000000..b3d3461bf9fe Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_derbisHeavy_bounce02.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_derbisLight01.wav b/mods/d2k/maps/01scriptrework/audio/new_derbisLight01.wav new file mode 100644 index 000000000000..639d3ede821d Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_derbisLight01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_derbisLight_bounce01.wav b/mods/d2k/maps/01scriptrework/audio/new_derbisLight_bounce01.wav new file mode 100644 index 000000000000..56dbe6a60e10 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_derbisLight_bounce01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_derbisRock01.wav b/mods/d2k/maps/01scriptrework/audio/new_derbisRock01.wav new file mode 100644 index 000000000000..3cb266b87104 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_derbisRock01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_derbisRock02.wav b/mods/d2k/maps/01scriptrework/audio/new_derbisRock02.wav new file mode 100644 index 000000000000..f92140996b1f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_derbisRock02.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/new_derbisRock03.wav b/mods/d2k/maps/01scriptrework/audio/new_derbisRock03.wav new file mode 100644 index 000000000000..f24c3a78b341 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/new_derbisRock03.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/ornithopterMotor01.wav b/mods/d2k/maps/01scriptrework/audio/ornithopterMotor01.wav new file mode 100644 index 000000000000..5af41914f481 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/ornithopterMotor01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/ornithroperFall01.wav b/mods/d2k/maps/01scriptrework/audio/ornithroperFall01.wav new file mode 100644 index 000000000000..af5ba50a6ca4 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/ornithroperFall01.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/silent.wav b/mods/d2k/maps/01scriptrework/audio/silent.wav new file mode 100644 index 000000000000..59c8e62acca1 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/silent.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/true_sayer.wav b/mods/d2k/maps/01scriptrework/audio/true_sayer.wav new file mode 100644 index 000000000000..b000c90ad702 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/true_sayer.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/veteran_upgrade_1.wav b/mods/d2k/maps/01scriptrework/audio/veteran_upgrade_1.wav new file mode 100644 index 000000000000..cd52fdffbb86 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/veteran_upgrade_1.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/worm_roar_1_tc.wav b/mods/d2k/maps/01scriptrework/audio/worm_roar_1_tc.wav new file mode 100644 index 000000000000..1acbe8b33aba Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/worm_roar_1_tc.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/worm_roar_2_tc.wav b/mods/d2k/maps/01scriptrework/audio/worm_roar_2_tc.wav new file mode 100644 index 000000000000..5c12cb4e5bd4 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/worm_roar_2_tc.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/worm_roar_5_tc.wav b/mods/d2k/maps/01scriptrework/audio/worm_roar_5_tc.wav new file mode 100644 index 000000000000..c7e0b901566b Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/worm_roar_5_tc.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/worm_roar_6_tc.wav b/mods/d2k/maps/01scriptrework/audio/worm_roar_6_tc.wav new file mode 100644 index 000000000000..14c4c8a4cc85 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/worm_roar_6_tc.wav differ diff --git a/mods/d2k/maps/01scriptrework/audio/worm_sign_elec_1.wav b/mods/d2k/maps/01scriptrework/audio/worm_sign_elec_1.wav new file mode 100644 index 000000000000..d2ff0ce1614b Binary files /dev/null and b/mods/d2k/maps/01scriptrework/audio/worm_sign_elec_1.wav differ diff --git a/mods/d2k/maps/01scriptrework/bits/AirReinforcementsIcons.shp b/mods/d2k/maps/01scriptrework/bits/AirReinforcementsIcons.shp new file mode 100644 index 000000000000..f95942584472 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/AirReinforcementsIcons.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/Assassin.shp b/mods/d2k/maps/01scriptrework/bits/Assassin.shp new file mode 100644 index 000000000000..863063d5a55a Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/Assassin.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/AtreidesTrikeIcon.shp b/mods/d2k/maps/01scriptrework/bits/AtreidesTrikeIcon.shp new file mode 100644 index 000000000000..f2482761f5b1 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/AtreidesTrikeIcon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/AtreidesTurr.shp b/mods/d2k/maps/01scriptrework/bits/AtreidesTurr.shp new file mode 100644 index 000000000000..d81460e9470a Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/AtreidesTurr.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/CarryHusk01.shp b/mods/d2k/maps/01scriptrework/bits/CarryHusk01.shp new file mode 100644 index 000000000000..be30f8353e4f Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/CarryHusk01.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/Crane.shp b/mods/d2k/maps/01scriptrework/bits/Crane.shp new file mode 100644 index 000000000000..36ad4c293a55 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/Crane.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/FedaykinTurret.shp b/mods/d2k/maps/01scriptrework/bits/FedaykinTurret.shp new file mode 100644 index 000000000000..27354f954b48 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/FedaykinTurret.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/GasCloudIcon.shp b/mods/d2k/maps/01scriptrework/bits/GasCloudIcon.shp new file mode 100644 index 000000000000..a0c8a51b2883 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/GasCloudIcon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/HeavyPiff.shp b/mods/d2k/maps/01scriptrework/bits/HeavyPiff.shp new file mode 100644 index 000000000000..9849d4f9932d Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/HeavyPiff.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/MerchenaryTankIcon.shp b/mods/d2k/maps/01scriptrework/bits/MerchenaryTankIcon.shp new file mode 100644 index 000000000000..18a9cc260108 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/MerchenaryTankIcon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/MerchenaryTurr.shp b/mods/d2k/maps/01scriptrework/bits/MerchenaryTurr.shp new file mode 100644 index 000000000000..813dd4063523 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/MerchenaryTurr.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/PropagandaCorps.shp b/mods/d2k/maps/01scriptrework/bits/PropagandaCorps.shp new file mode 100644 index 000000000000..977e93161811 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/PropagandaCorps.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/RocketQuad.shp b/mods/d2k/maps/01scriptrework/bits/RocketQuad.shp new file mode 100644 index 000000000000..a6091a1acaba Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/RocketQuad.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/RocketQuadIcon.shp b/mods/d2k/maps/01scriptrework/bits/RocketQuadIcon.shp new file mode 100644 index 000000000000..7cb7e65b263e Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/RocketQuadIcon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/RocketTankTurr.shp b/mods/d2k/maps/01scriptrework/bits/RocketTankTurr.shp new file mode 100644 index 000000000000..0843cc006d11 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/RocketTankTurr.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/ScullIconTD01.shp b/mods/d2k/maps/01scriptrework/bits/ScullIconTD01.shp new file mode 100644 index 000000000000..6d37880cd31a Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/ScullIconTD01.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/TrikeChassis.shp b/mods/d2k/maps/01scriptrework/bits/TrikeChassis.shp new file mode 100644 index 000000000000..d3800a04ddb6 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/TrikeChassis.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/TroopCrawler.shp b/mods/d2k/maps/01scriptrework/bits/TroopCrawler.shp new file mode 100644 index 000000000000..16bba755d33c Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/TroopCrawler.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/TroopCrawlerIcon.shp b/mods/d2k/maps/01scriptrework/bits/TroopCrawlerIcon.shp new file mode 100644 index 000000000000..db1ee6fa6bcc Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/TroopCrawlerIcon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/WormRider.shp b/mods/d2k/maps/01scriptrework/bits/WormRider.shp new file mode 100644 index 000000000000..6cfeceed19ae Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/WormRider.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/Wormexplode.shp b/mods/d2k/maps/01scriptrework/bits/Wormexplode.shp new file mode 100644 index 000000000000..4484c0fa3d59 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/Wormexplode.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/Wormexplode_effect.shp b/mods/d2k/maps/01scriptrework/bits/Wormexplode_effect.shp new file mode 100644 index 000000000000..27b99429c613 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/Wormexplode_effect.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/allyrepair.shp b/mods/d2k/maps/01scriptrework/bits/allyrepair.shp new file mode 100644 index 000000000000..1bcec199b593 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/allyrepair.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/burn-l.shp b/mods/d2k/maps/01scriptrework/bits/burn-l.shp new file mode 100644 index 000000000000..00ceed4a63f0 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/burn-l.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_R16.gpl b/mods/d2k/maps/01scriptrework/bits/d2k_R16.gpl new file mode 100644 index 000000000000..9c481128ffff --- /dev/null +++ b/mods/d2k/maps/01scriptrework/bits/d2k_R16.gpl @@ -0,0 +1,260 @@ +GIMP Palette +Name: d2k R16 +Columns: 16 +# +255 0 255 Index 0 + 0 0 0 Index 1 + 33 33 41 Index 2 + 16 24 24 Index 3 + 49 57 74 Index 4 +173 198 231 Index 5 + 33 41 49 Index 6 + 41 49 57 Index 7 + 66 82 99 Index 8 +148 181 214 Index 9 +115 132 156 Index 10 + 49 66 74 Index 11 + 82 99 115 Index 12 + 90 115 132 Index 13 +181 214 239 Index 14 +173 206 231 Index 15 +255 255 181 Index 16 + 33 33 33 Index 17 +255 239 148 Index 18 +255 239 181 Index 19 + 57 57 49 Index 20 + 49 49 41 Index 21 + 57 49 49 Index 22 + 57 49 49 Index 23 +123 115 107 Index 24 +255 214 140 Index 25 + 74 66 57 Index 26 + 74 74 66 Index 27 +222 214 198 Index 28 +107 99 90 Index 29 + 66 57 33 Index 30 + 90 74 41 Index 31 +115 90 57 Index 32 +156 132 82 Index 33 +140 115 74 Index 34 + 90 82 74 Index 35 + 90 82 74 Index 36 + 90 82 82 Index 37 +148 148 132 Index 38 + 49 33 16 Index 39 + 33 24 16 Index 40 + 24 24 24 Index 41 + 24 24 24 Index 42 + 24 24 24 Index 43 + 33 24 24 Index 44 + 74 66 66 Index 45 + 33 33 33 Index 46 + 74 74 66 Index 47 + 33 33 33 Index 48 + 41 33 33 Index 49 + 41 33 33 Index 50 + 41 33 33 Index 51 + 74 74 66 Index 52 + 49 49 49 Index 53 + 57 49 41 Index 54 + 57 49 49 Index 55 + 66 66 57 Index 56 + 57 49 49 Index 57 + 74 74 66 Index 58 +255 247 222 Index 59 + 90 82 74 Index 60 +107 99 90 Index 61 +123 115 107 Index 62 + 99 90 82 Index 63 + 90 82 74 Index 64 +231 214 198 Index 65 +231 214 198 Index 66 +222 206 189 Index 67 +214 198 181 Index 68 +198 181 165 Index 69 +165 156 140 Index 70 +165 156 140 Index 71 +140 123 115 Index 72 + 90 82 82 Index 73 +198 189 173 Index 74 +107 107 99 Index 75 + 99 90 82 Index 76 +231 214 198 Index 77 +222 206 198 Index 78 +189 181 165 Index 79 +173 165 156 Index 80 +206 198 181 Index 81 +255 222 181 Index 82 + 24 24 16 Index 83 + 41 33 33 Index 84 + 33 24 24 Index 85 + 57 49 49 Index 86 + 57 49 49 Index 87 + 57 57 49 Index 88 + 33 33 33 Index 89 +115 107 99 Index 90 + 90 82 74 Index 91 + 74 66 66 Index 92 +123 107 99 Index 93 +115 107 99 Index 94 +107 99 90 Index 95 + 90 90 82 Index 96 + 82 74 66 Index 97 + 49 49 41 Index 98 +231 214 198 Index 99 +214 198 181 Index 100 +198 189 173 Index 101 +156 148 132 Index 102 +123 115 107 Index 103 +115 107 99 Index 104 + 99 90 82 Index 105 +247 231 214 Index 106 +239 222 206 Index 107 +231 214 198 Index 108 +222 206 189 Index 109 +222 206 189 Index 110 +173 165 148 Index 111 +156 148 140 Index 112 +156 148 132 Index 113 +132 123 115 Index 114 +132 115 107 Index 115 +115 107 99 Index 116 +115 107 99 Index 117 + 99 90 82 Index 118 + 99 90 82 Index 119 +239 222 206 Index 120 +231 214 198 Index 121 +214 198 181 Index 122 +198 181 173 Index 123 +198 181 165 Index 124 +181 165 156 Index 125 +165 148 140 Index 126 +132 123 115 Index 127 +132 123 115 Index 128 +115 107 99 Index 129 + 90 82 74 Index 130 + 90 82 74 Index 131 +239 222 206 Index 132 +231 214 198 Index 133 +181 173 156 Index 134 +132 123 115 Index 135 +107 99 90 Index 136 +140 123 115 Index 137 +107 99 90 Index 138 +107 99 90 Index 139 +107 99 90 Index 140 +231 214 198 Index 141 +115 99 90 Index 142 +255 231 214 Index 143 +247 231 214 Index 144 +247 222 206 Index 145 +239 222 206 Index 146 +231 214 198 Index 147 +231 214 198 Index 148 +181 173 156 Index 149 +247 231 214 Index 150 +239 222 206 Index 151 +206 189 173 Index 152 +247 231 214 Index 153 +214 198 181 Index 154 +165 156 140 Index 155 +206 189 181 Index 156 +189 173 165 Index 157 +173 165 148 Index 158 +173 165 148 Index 159 +173 156 148 Index 160 +165 148 140 Index 161 + 57 49 49 Index 162 + 90 82 74 Index 163 + 74 74 66 Index 164 + 74 66 66 Index 165 + 90 82 74 Index 166 + 90 82 82 Index 167 +132 115 107 Index 168 +132 115 107 Index 169 + 99 90 82 Index 170 + 99 90 82 Index 171 + 99 90 82 Index 172 +132 123 115 Index 173 +132 123 115 Index 174 + 99 90 82 Index 175 + 74 66 57 Index 176 +255 239 222 Index 177 +255 239 214 Index 178 +247 222 206 Index 179 +247 222 206 Index 180 +231 214 198 Index 181 +198 181 165 Index 182 +247 231 214 Index 183 +231 206 198 Index 184 +156 140 132 Index 185 +140 132 115 Index 186 +231 214 206 Index 187 +115 107 99 Index 188 + 66 49 33 Index 189 +115 82 57 Index 190 +189 140 99 Index 191 +239 173 123 Index 192 + 33 24 24 Index 193 + 33 33 24 Index 194 + 33 33 24 Index 195 + 41 33 33 Index 196 + 49 49 41 Index 197 +115 107 99 Index 198 +115 107 99 Index 199 +115 107 99 Index 200 + 90 82 74 Index 201 +140 99 74 Index 202 +156 115 82 Index 203 +255 189 140 Index 204 + 74 66 57 Index 205 + 74 66 57 Index 206 + 24 24 24 Index 207 + 74 66 57 Index 208 + 74 66 66 Index 209 + 74 66 57 Index 210 + 33 24 8 Index 211 + 90 66 49 Index 212 + 49 33 16 Index 213 + 41 41 33 Index 214 + 33 24 16 Index 215 + 33 33 33 Index 216 + 66 49 33 Index 217 +115 82 66 Index 218 + 66 57 57 Index 219 + 49 41 41 Index 220 + 49 41 41 Index 221 + 90 82 82 Index 222 + 49 41 33 Index 223 + 90 82 74 Index 224 + 90 82 74 Index 225 + 90 82 74 Index 226 + 66 57 57 Index 227 +115 99 99 Index 228 +115 99 99 Index 229 +132 123 115 Index 230 +140 123 115 Index 231 + 33 33 24 Index 232 + 33 33 33 Index 233 + 49 41 41 Index 234 + 66 57 57 Index 235 + 66 57 57 Index 236 + 90 74 74 Index 237 +255 33 24 Index 238 + 33 24 24 Index 239 + 0 0 0 Index 240 + 16 16 16 Index 241 + 33 33 33 Index 242 + 49 49 49 Index 243 + 66 66 66 Index 244 + 82 82 82 Index 245 + 99 99 99 Index 246 +115 115 115 Index 247 +140 140 140 Index 248 +156 156 156 Index 249 +173 173 173 Index 250 +189 189 189 Index 251 +206 206 206 Index 252 +222 222 222 Index 253 +239 239 239 Index 254 +255 255 255 Index 255 diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_barracks_corrino.shp b/mods/d2k/maps/01scriptrework/bits/d2k_barracks_corrino.shp new file mode 100644 index 000000000000..3713700d67bb Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_barracks_corrino.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_barracks_merc.shp b/mods/d2k/maps/01scriptrework/bits/d2k_barracks_merc.shp new file mode 100644 index 000000000000..b4e6ef1f60c4 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_barracks_merc.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_heavy_factory_corrino.shp b/mods/d2k/maps/01scriptrework/bits/d2k_heavy_factory_corrino.shp new file mode 100644 index 000000000000..7fbe096b027c Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_heavy_factory_corrino.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_research_center_gold.shp b/mods/d2k/maps/01scriptrework/bits/d2k_research_center_gold.shp new file mode 100644 index 000000000000..56a0351df410 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_research_center_gold.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_research_center_gold_icon.shp b/mods/d2k/maps/01scriptrework/bits/d2k_research_center_gold_icon.shp new file mode 100644 index 000000000000..daca946eeb08 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_research_center_gold_icon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_sietch_destroyed.shp b/mods/d2k/maps/01scriptrework/bits/d2k_sietch_destroyed.shp new file mode 100644 index 000000000000..7324cfa99bfc Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_sietch_destroyed.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_sietch_icon.shp b/mods/d2k/maps/01scriptrework/bits/d2k_sietch_icon.shp new file mode 100644 index 000000000000..9f466d494950 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_sietch_icon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_spice_sifter.shp b/mods/d2k/maps/01scriptrework/bits/d2k_spice_sifter.shp new file mode 100644 index 000000000000..941e7ef0eaea Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_spice_sifter.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2k_spice_sifter_icon.shp b/mods/d2k/maps/01scriptrework/bits/d2k_spice_sifter_icon.shp new file mode 100644 index 000000000000..731ce0c97210 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2k_spice_sifter_icon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/d2kifvicon.shp b/mods/d2k/maps/01scriptrework/bits/d2kifvicon.shp new file mode 100644 index 000000000000..25829290fe98 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/d2kifvicon.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/napalm1.shp b/mods/d2k/maps/01scriptrework/bits/napalm1.shp new file mode 100644 index 000000000000..4d9e3a02bbff Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/napalm1.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/napalm3.shp b/mods/d2k/maps/01scriptrework/bits/napalm3.shp new file mode 100644 index 000000000000..7347f549cae3 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/napalm3.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/pip-skull.shp b/mods/d2k/maps/01scriptrework/bits/pip-skull.shp new file mode 100644 index 000000000000..d612da34c243 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/pip-skull.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/smokeFromRA.shp b/mods/d2k/maps/01scriptrework/bits/smokeFromRA.shp new file mode 100644 index 000000000000..64890b544a8c Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/smokeFromRA.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/smokeFromTS.shp b/mods/d2k/maps/01scriptrework/bits/smokeFromTS.shp new file mode 100644 index 000000000000..0937537e5b82 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/smokeFromTS.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/smokland.shp b/mods/d2k/maps/01scriptrework/bits/smokland.shp new file mode 100644 index 000000000000..36202299afae Binary files /dev/null and b/mods/d2k/maps/01scriptrework/bits/smokland.shp differ diff --git a/mods/d2k/maps/01scriptrework/bits/tree01.gpl b/mods/d2k/maps/01scriptrework/bits/tree01.gpl new file mode 100644 index 000000000000..ce3783d626de --- /dev/null +++ b/mods/d2k/maps/01scriptrework/bits/tree01.gpl @@ -0,0 +1,259 @@ +GIMP Palette +Name: Colormap tree +Columns: 16 +# + 14 17 16 #0 + 18 18 8 #1 + 19 21 4 #2 + 24 21 22 #3 + 27 27 18 #4 + 25 29 17 #5 + 33 31 15 #6 + 30 33 12 #7 + 27 35 11 #8 + 40 32 23 #9 + 37 34 12 #10 + 39 32 30 #11 + 42 34 17 #12 + 54 32 22 #13 + 40 37 16 #14 + 38 38 23 #15 + 37 39 16 #16 + 27 43 18 #17 + 46 37 37 #18 + 44 42 15 #19 + 35 45 13 #20 + 61 37 25 #21 + 44 43 22 #22 + 56 40 28 #23 + 52 42 21 #24 + 44 45 29 #25 + 39 47 24 #26 + 40 48 44 #27 + 48 50 27 #28 + 51 52 36 #29 + 67 48 31 #30 + 73 47 33 #31 + 43 57 26 #32 + 54 54 26 #33 + 45 58 21 #34 + 63 52 32 #35 + 45 59 16 #36 + 44 58 34 #37 + 51 57 22 #38 + 50 57 27 #39 + 55 56 22 #40 + 65 54 41 #41 + 42 64 12 #42 + 58 58 35 #43 + 80 54 34 #44 + 64 59 46 #45 + 54 65 28 #46 + 53 66 22 #47 + 78 57 41 #48 + 55 65 34 #49 + 61 64 41 #50 + 61 65 30 #51 + 76 60 36 #52 + 46 70 31 #53 + 70 63 35 #54 + 64 65 36 #55 + 58 67 43 #56 + 78 63 44 #57 + 72 65 44 #58 + 60 72 34 #59 + 86 63 46 #60 + 69 70 29 #61 + 76 66 52 #62 + 66 71 35 #63 + 62 73 30 #64 + 67 70 48 #65 + 63 72 41 #66 + 57 75 30 #67 + 62 81 36 #68 + 73 78 41 #69 + 63 82 43 #70 + 64 84 26 #71 + 97 72 51 #72 + 89 74 62 #73 + 84 77 47 #74 + 76 79 56 #75 + 72 82 38 #76 + 91 75 56 #77 + 77 80 50 #78 + 66 85 33 #79 + 71 83 45 #80 + 84 78 58 #81 + 79 82 37 #82 + 94 77 53 #83 + 76 85 29 #84 + 80 84 48 #85 + 76 91 40 #86 + 99 82 63 #87 + 80 90 40 #88 + 72 92 51 #89 + 93 85 64 #90 + 73 94 34 #91 + 88 90 45 #92 + 81 92 48 #93 + 66 98 33 #94 + 80 92 54 #95 + 87 90 54 #96 +102 85 60 #97 +116 83 56 #98 + 72 98 44 #99 + 99 89 54 #100 + 89 92 63 #101 + 83 97 37 #102 + 99 90 62 #103 +108 89 59 #104 + 88 97 47 #105 + 83 99 47 #106 + 98 95 42 #107 + 91 98 41 #108 +108 91 65 #109 + 92 97 60 #110 + 94 97 53 #111 + 88 99 55 #112 + 91 104 33 #113 +119 94 65 #114 +116 97 66 #115 +115 97 71 #116 + 99 105 36 #117 +106 102 46 #118 + 89 107 55 #119 +110 100 72 #120 + 95 106 62 #121 + 97 106 55 #122 +119 99 63 #123 +133 95 65 #124 + 87 111 48 #125 + 94 109 50 #126 +102 105 69 #127 +103 106 62 #128 +102 108 50 #129 + 83 115 39 #130 +112 103 81 #131 + 97 111 46 #132 +121 102 77 #133 +122 103 72 #134 +126 102 78 #135 +134 101 62 #136 +124 104 67 #137 + 83 123 52 #138 +126 108 82 #139 +128 108 77 #140 +111 115 73 #141 +121 111 87 #142 +104 119 55 #143 +131 110 73 #144 +107 118 67 #145 +116 117 57 #146 +126 113 79 #147 +126 115 57 #148 +132 112 81 #149 +113 120 57 #150 +139 111 76 #151 +124 114 97 #152 +138 111 82 #153 +116 119 69 #154 +113 121 64 #155 +123 117 82 #156 +136 114 70 #157 +125 118 68 #158 +131 116 77 #159 +122 119 76 #160 +106 127 48 #161 +110 125 60 #162 +136 116 84 #163 +112 125 72 #164 +138 117 79 #165 +119 123 78 #166 +115 127 53 #167 +112 129 42 #168 +133 120 86 #169 +121 128 78 #170 +148 121 73 #171 +125 130 58 #172 +137 121 129 #173 +145 123 85 #174 +145 123 91 #175 +118 134 71 #176 +143 126 81 #177 +149 125 82 #178 +142 127 87 #179 +134 130 81 #180 +128 135 71 #181 +149 127 89 #182 +127 135 76 #183 +133 134 73 #184 +137 132 91 #185 +141 133 69 #186 +144 130 97 #187 +125 140 53 #188 +125 140 60 #189 +127 140 67 #190 +133 137 87 #191 +163 130 64 #192 +154 131 87 #193 +135 139 67 #194 +153 132 94 #195 +142 139 57 #196 +134 147 69 #197 +160 137 92 #198 +149 142 77 #199 +134 146 86 #200 +142 145 96 #201 +140 147 82 #202 +148 146 72 #203 +153 142 103 #204 +143 148 74 #205 +162 139 113 #206 +163 140 102 #207 +150 146 93 #208 +170 141 86 #209 +147 150 66 #210 +147 148 91 #211 +163 145 96 #212 +154 151 66 #213 +140 156 68 #214 +158 150 75 #215 +169 145 98 #216 +144 155 76 #217 +150 154 77 #218 +164 154 73 #219 +168 154 92 #220 +187 151 78 #221 +164 160 77 #222 +180 155 107 #223 +161 163 86 #224 +165 163 72 #225 +171 157 122 #226 +161 164 79 #227 +182 154 122 #228 +170 159 109 #229 +183 156 99 #230 +172 158 116 #231 +181 158 119 #232 +179 158 129 #233 +163 166 101 #234 +188 165 125 #235 +185 168 111 #236 +179 175 82 #237 +196 168 104 #238 +185 170 122 #239 +179 175 91 #240 +185 170 129 #241 +198 172 120 #242 +191 178 82 #243 +196 184 113 #244 +197 182 139 #245 +194 188 89 #246 +206 185 125 #247 +217 194 128 #248 +240 196 80 #249 +225 196 138 #250 +229 195 144 #251 +239 196 135 #252 +221 203 155 #253 +241 223 179 #254 diff --git a/mods/d2k/maps/01scriptrework/bits/water_tiles_palette.gpl b/mods/d2k/maps/01scriptrework/bits/water_tiles_palette.gpl new file mode 100644 index 000000000000..2a13a9ad43ef --- /dev/null +++ b/mods/d2k/maps/01scriptrework/bits/water_tiles_palette.gpl @@ -0,0 +1,259 @@ +GIMP Palette +Name: water_tiles_palette +Columns: 16 +# + 0 0 0 Index 0 + 24 13 15 Index 1 + 29 13 17 Index 2 + 25 16 32 Index 3 + 44 19 21 Index 4 + 37 23 20 Index 5 + 33 24 25 Index 6 + 55 23 21 Index 7 + 29 31 29 Index 8 + 67 28 14 Index 9 + 45 35 38 Index 10 + 39 41 39 Index 11 + 54 38 35 Index 12 + 68 34 32 Index 13 + 59 38 24 Index 14 + 64 36 39 Index 15 + 56 42 13 Index 16 + 85 36 21 Index 17 + 56 45 30 Index 18 + 93 36 20 Index 19 +105 33 14 Index 20 + 98 37 6 Index 21 + 85 42 25 Index 22 + 91 41 15 Index 23 + 73 47 22 Index 24 + 89 41 41 Index 25 + 82 45 41 Index 26 + 74 49 36 Index 27 + 87 47 15 Index 28 + 83 48 28 Index 29 + 64 53 48 Index 30 + 53 57 55 Index 31 +123 40 16 Index 32 + 82 59 32 Index 33 + 81 59 45 Index 34 +114 51 35 Index 35 + 26 75 76 Index 36 +106 54 37 Index 37 +118 52 17 Index 38 + 82 60 58 Index 39 +115 53 28 Index 40 +105 59 28 Index 41 +101 60 34 Index 42 + 97 61 40 Index 43 + 81 69 47 Index 44 + 75 71 62 Index 45 +119 61 50 Index 46 +143 58 27 Index 47 +134 63 26 Index 48 +105 70 58 Index 49 +129 65 38 Index 50 +117 69 45 Index 51 +123 69 48 Index 52 + 43 91 89 Index 53 +124 72 31 Index 54 +100 77 60 Index 55 +105 77 44 Index 56 +113 75 51 Index 57 + 94 81 61 Index 58 + 67 90 64 Index 59 +129 73 40 Index 60 +170 62 21 Index 61 + 57 92 81 Index 62 +122 77 43 Index 63 +157 71 37 Index 64 +148 78 33 Index 65 +141 83 47 Index 66 +172 74 40 Index 67 +147 82 46 Index 68 +131 87 58 Index 69 +135 87 46 Index 70 +104 94 78 Index 71 + 58 107 100 Index 72 + 61 107 93 Index 73 +142 87 36 Index 74 +110 96 71 Index 75 +125 91 81 Index 76 +118 94 75 Index 77 + 65 107 122 Index 78 + 57 111 112 Index 79 +112 98 64 Index 80 +123 96 62 Index 81 +130 98 36 Index 82 +174 86 44 Index 83 + 88 109 94 Index 84 +134 100 54 Index 85 +166 92 38 Index 86 +105 111 54 Index 87 + 63 119 122 Index 88 +168 95 33 Index 89 +207 83 46 Index 90 + 58 122 132 Index 91 +113 109 85 Index 92 +157 98 62 Index 93 + 63 123 115 Index 94 + 59 124 121 Index 95 +154 101 45 Index 96 +165 97 53 Index 97 +144 102 71 Index 98 +150 103 61 Index 99 +165 98 66 Index 100 + 71 124 106 Index 101 +127 109 84 Index 102 + 58 127 129 Index 103 +139 107 72 Index 104 +124 113 77 Index 105 +181 99 48 Index 106 +182 102 67 Index 107 + 66 134 138 Index 108 + 63 136 152 Index 109 +189 106 48 Index 110 +154 114 83 Index 111 +199 104 48 Index 112 + 78 135 127 Index 113 +170 113 68 Index 114 +181 111 53 Index 115 + 60 141 143 Index 116 +174 114 51 Index 117 + 65 141 134 Index 118 +162 119 51 Index 119 +154 119 84 Index 120 + 73 141 122 Index 121 +160 117 100 Index 122 +182 113 74 Index 123 +191 112 60 Index 124 +165 119 78 Index 125 +152 124 74 Index 126 +145 125 90 Index 127 +170 121 48 Index 128 +188 116 45 Index 129 +171 121 67 Index 130 +143 127 107 Index 131 +131 132 109 Index 132 +172 120 102 Index 133 +141 132 83 Index 134 + 98 142 123 Index 135 +139 132 94 Index 136 +183 123 60 Index 137 +207 120 55 Index 138 +196 123 60 Index 139 +206 120 62 Index 140 +149 137 71 Index 141 +214 119 63 Index 142 +190 125 85 Index 143 + 66 159 160 Index 144 + 71 159 150 Index 145 +195 129 55 Index 146 +169 134 98 Index 147 + 79 159 139 Index 148 +193 131 67 Index 149 +187 134 54 Index 150 +174 138 74 Index 151 +183 134 90 Index 152 +184 137 62 Index 153 +206 131 53 Index 154 +170 140 90 Index 155 +186 137 72 Index 156 +206 132 69 Index 157 +161 143 105 Index 158 +173 144 107 Index 159 +216 135 71 Index 160 +216 139 54 Index 161 +208 140 79 Index 162 +209 141 66 Index 163 +209 141 73 Index 164 +198 145 68 Index 165 +208 144 53 Index 166 + 72 178 171 Index 167 + 69 178 183 Index 168 +225 140 65 Index 169 + 77 178 163 Index 170 +211 145 62 Index 171 +198 148 84 Index 172 +219 143 74 Index 173 +141 165 124 Index 174 + 91 178 156 Index 175 +213 146 91 Index 176 +188 153 102 Index 177 +191 153 91 Index 178 +176 156 136 Index 179 +180 157 115 Index 180 +213 149 103 Index 181 +209 150 121 Index 182 +247 143 70 Index 183 +204 154 108 Index 184 +232 148 79 Index 185 +206 156 81 Index 186 + 77 190 162 Index 187 +176 167 82 Index 188 +213 157 69 Index 189 +226 152 98 Index 190 +172 167 131 Index 191 +233 155 83 Index 192 +225 158 79 Index 193 + 71 196 200 Index 194 + 76 196 186 Index 195 +245 154 67 Index 196 +185 171 100 Index 197 +182 171 115 Index 198 +255 138 252 Index 199 +252 157 56 Index 200 +218 165 101 Index 201 +202 171 119 Index 202 +197 172 128 Index 203 +221 168 88 Index 204 +209 172 109 Index 205 +253 168 87 Index 206 + 80 213 201 Index 207 + 86 213 188 Index 208 +240 175 87 Index 209 +235 176 95 Index 210 +226 179 123 Index 211 +210 184 131 Index 212 +215 183 140 Index 213 + 74 220 222 Index 214 +227 184 96 Index 215 +219 184 127 Index 216 + 92 219 183 Index 217 +207 188 144 Index 218 +224 184 141 Index 219 +238 183 111 Index 220 +230 186 118 Index 221 +222 191 116 Index 222 +241 185 135 Index 223 + 83 228 214 Index 224 + 86 230 202 Index 225 +215 198 129 Index 226 +236 195 92 Index 227 +225 197 137 Index 228 +216 201 138 Index 229 +231 197 146 Index 230 +233 197 139 Index 231 +221 201 153 Index 232 +211 205 167 Index 233 +252 196 152 Index 234 +219 207 156 Index 235 +228 210 97 Index 236 +249 200 147 Index 237 +230 204 171 Index 238 +252 199 177 Index 239 +243 208 112 Index 240 +255 203 138 Index 241 + 91 248 223 Index 242 + 89 248 232 Index 243 + 83 251 243 Index 244 +239 211 148 Index 245 +240 213 167 Index 246 +241 215 140 Index 247 + 81 255 255 Index 248 +237 218 134 Index 249 +102 253 249 Index 250 +234 218 209 Index 251 +124 254 253 Index 252 +245 231 166 Index 253 +255 255 255 Index 254 diff --git a/mods/d2k/maps/01scriptrework/d2k_R16.gpl b/mods/d2k/maps/01scriptrework/d2k_R16.gpl new file mode 100644 index 000000000000..9c481128ffff --- /dev/null +++ b/mods/d2k/maps/01scriptrework/d2k_R16.gpl @@ -0,0 +1,260 @@ +GIMP Palette +Name: d2k R16 +Columns: 16 +# +255 0 255 Index 0 + 0 0 0 Index 1 + 33 33 41 Index 2 + 16 24 24 Index 3 + 49 57 74 Index 4 +173 198 231 Index 5 + 33 41 49 Index 6 + 41 49 57 Index 7 + 66 82 99 Index 8 +148 181 214 Index 9 +115 132 156 Index 10 + 49 66 74 Index 11 + 82 99 115 Index 12 + 90 115 132 Index 13 +181 214 239 Index 14 +173 206 231 Index 15 +255 255 181 Index 16 + 33 33 33 Index 17 +255 239 148 Index 18 +255 239 181 Index 19 + 57 57 49 Index 20 + 49 49 41 Index 21 + 57 49 49 Index 22 + 57 49 49 Index 23 +123 115 107 Index 24 +255 214 140 Index 25 + 74 66 57 Index 26 + 74 74 66 Index 27 +222 214 198 Index 28 +107 99 90 Index 29 + 66 57 33 Index 30 + 90 74 41 Index 31 +115 90 57 Index 32 +156 132 82 Index 33 +140 115 74 Index 34 + 90 82 74 Index 35 + 90 82 74 Index 36 + 90 82 82 Index 37 +148 148 132 Index 38 + 49 33 16 Index 39 + 33 24 16 Index 40 + 24 24 24 Index 41 + 24 24 24 Index 42 + 24 24 24 Index 43 + 33 24 24 Index 44 + 74 66 66 Index 45 + 33 33 33 Index 46 + 74 74 66 Index 47 + 33 33 33 Index 48 + 41 33 33 Index 49 + 41 33 33 Index 50 + 41 33 33 Index 51 + 74 74 66 Index 52 + 49 49 49 Index 53 + 57 49 41 Index 54 + 57 49 49 Index 55 + 66 66 57 Index 56 + 57 49 49 Index 57 + 74 74 66 Index 58 +255 247 222 Index 59 + 90 82 74 Index 60 +107 99 90 Index 61 +123 115 107 Index 62 + 99 90 82 Index 63 + 90 82 74 Index 64 +231 214 198 Index 65 +231 214 198 Index 66 +222 206 189 Index 67 +214 198 181 Index 68 +198 181 165 Index 69 +165 156 140 Index 70 +165 156 140 Index 71 +140 123 115 Index 72 + 90 82 82 Index 73 +198 189 173 Index 74 +107 107 99 Index 75 + 99 90 82 Index 76 +231 214 198 Index 77 +222 206 198 Index 78 +189 181 165 Index 79 +173 165 156 Index 80 +206 198 181 Index 81 +255 222 181 Index 82 + 24 24 16 Index 83 + 41 33 33 Index 84 + 33 24 24 Index 85 + 57 49 49 Index 86 + 57 49 49 Index 87 + 57 57 49 Index 88 + 33 33 33 Index 89 +115 107 99 Index 90 + 90 82 74 Index 91 + 74 66 66 Index 92 +123 107 99 Index 93 +115 107 99 Index 94 +107 99 90 Index 95 + 90 90 82 Index 96 + 82 74 66 Index 97 + 49 49 41 Index 98 +231 214 198 Index 99 +214 198 181 Index 100 +198 189 173 Index 101 +156 148 132 Index 102 +123 115 107 Index 103 +115 107 99 Index 104 + 99 90 82 Index 105 +247 231 214 Index 106 +239 222 206 Index 107 +231 214 198 Index 108 +222 206 189 Index 109 +222 206 189 Index 110 +173 165 148 Index 111 +156 148 140 Index 112 +156 148 132 Index 113 +132 123 115 Index 114 +132 115 107 Index 115 +115 107 99 Index 116 +115 107 99 Index 117 + 99 90 82 Index 118 + 99 90 82 Index 119 +239 222 206 Index 120 +231 214 198 Index 121 +214 198 181 Index 122 +198 181 173 Index 123 +198 181 165 Index 124 +181 165 156 Index 125 +165 148 140 Index 126 +132 123 115 Index 127 +132 123 115 Index 128 +115 107 99 Index 129 + 90 82 74 Index 130 + 90 82 74 Index 131 +239 222 206 Index 132 +231 214 198 Index 133 +181 173 156 Index 134 +132 123 115 Index 135 +107 99 90 Index 136 +140 123 115 Index 137 +107 99 90 Index 138 +107 99 90 Index 139 +107 99 90 Index 140 +231 214 198 Index 141 +115 99 90 Index 142 +255 231 214 Index 143 +247 231 214 Index 144 +247 222 206 Index 145 +239 222 206 Index 146 +231 214 198 Index 147 +231 214 198 Index 148 +181 173 156 Index 149 +247 231 214 Index 150 +239 222 206 Index 151 +206 189 173 Index 152 +247 231 214 Index 153 +214 198 181 Index 154 +165 156 140 Index 155 +206 189 181 Index 156 +189 173 165 Index 157 +173 165 148 Index 158 +173 165 148 Index 159 +173 156 148 Index 160 +165 148 140 Index 161 + 57 49 49 Index 162 + 90 82 74 Index 163 + 74 74 66 Index 164 + 74 66 66 Index 165 + 90 82 74 Index 166 + 90 82 82 Index 167 +132 115 107 Index 168 +132 115 107 Index 169 + 99 90 82 Index 170 + 99 90 82 Index 171 + 99 90 82 Index 172 +132 123 115 Index 173 +132 123 115 Index 174 + 99 90 82 Index 175 + 74 66 57 Index 176 +255 239 222 Index 177 +255 239 214 Index 178 +247 222 206 Index 179 +247 222 206 Index 180 +231 214 198 Index 181 +198 181 165 Index 182 +247 231 214 Index 183 +231 206 198 Index 184 +156 140 132 Index 185 +140 132 115 Index 186 +231 214 206 Index 187 +115 107 99 Index 188 + 66 49 33 Index 189 +115 82 57 Index 190 +189 140 99 Index 191 +239 173 123 Index 192 + 33 24 24 Index 193 + 33 33 24 Index 194 + 33 33 24 Index 195 + 41 33 33 Index 196 + 49 49 41 Index 197 +115 107 99 Index 198 +115 107 99 Index 199 +115 107 99 Index 200 + 90 82 74 Index 201 +140 99 74 Index 202 +156 115 82 Index 203 +255 189 140 Index 204 + 74 66 57 Index 205 + 74 66 57 Index 206 + 24 24 24 Index 207 + 74 66 57 Index 208 + 74 66 66 Index 209 + 74 66 57 Index 210 + 33 24 8 Index 211 + 90 66 49 Index 212 + 49 33 16 Index 213 + 41 41 33 Index 214 + 33 24 16 Index 215 + 33 33 33 Index 216 + 66 49 33 Index 217 +115 82 66 Index 218 + 66 57 57 Index 219 + 49 41 41 Index 220 + 49 41 41 Index 221 + 90 82 82 Index 222 + 49 41 33 Index 223 + 90 82 74 Index 224 + 90 82 74 Index 225 + 90 82 74 Index 226 + 66 57 57 Index 227 +115 99 99 Index 228 +115 99 99 Index 229 +132 123 115 Index 230 +140 123 115 Index 231 + 33 33 24 Index 232 + 33 33 33 Index 233 + 49 41 41 Index 234 + 66 57 57 Index 235 + 66 57 57 Index 236 + 90 74 74 Index 237 +255 33 24 Index 238 + 33 24 24 Index 239 + 0 0 0 Index 240 + 16 16 16 Index 241 + 33 33 33 Index 242 + 49 49 49 Index 243 + 66 66 66 Index 244 + 82 82 82 Index 245 + 99 99 99 Index 246 +115 115 115 Index 247 +140 140 140 Index 248 +156 156 156 Index 249 +173 173 173 Index 250 +189 189 189 Index 251 +206 206 206 Index 252 +222 222 222 Index 253 +239 239 239 Index 254 +255 255 255 Index 255 diff --git a/mods/d2k/maps/01scriptrework/map.bin b/mods/d2k/maps/01scriptrework/map.bin new file mode 100644 index 000000000000..a0ea6a897232 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/map.bin differ diff --git a/mods/d2k/maps/01scriptrework/map.png b/mods/d2k/maps/01scriptrework/map.png new file mode 100644 index 000000000000..71a32c573a34 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/map.png differ diff --git a/mods/d2k/maps/01scriptrework/map.yaml b/mods/d2k/maps/01scriptrework/map.yaml new file mode 100644 index 000000000000..91e8d0c57a20 --- /dev/null +++ b/mods/d2k/maps/01scriptrework/map.yaml @@ -0,0 +1,3205 @@ +MapFormat: 12 + +RequiresMod: d2k + +Title: test- new script + +Author: Your name here + +Tileset: ARRAKIS + +MapSize: 52,52 + +Bounds: 1,1,50,50 + +Visibility: Lobby + +Categories: test + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: harkonnen + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + Faction: atreides + Enemies: Multi0 + PlayerReference@Multi0: + Name: Multi0 + Playable: True + Faction: Random + Enemies: Creeps + +Actors: + Actor2: mpspawn + Owner: Neutral + Location: 26,23 + Actor14: siege_tank + Owner: Multi0 + Facing: 384 + Location: 11,29 + Actor15: siege_tank + Owner: Multi0 + Facing: 384 + Location: 12,30 + Actor16: siege_tank + Owner: Multi0 + Facing: 384 + Location: 12,31 + Actor17: siege_tank + Owner: Multi0 + Facing: 384 + Location: 10,32 + Actor18: siege_tank + Owner: Multi0 + Facing: 384 + Location: 9,32 + Actor19: siege_tank + Owner: Multi0 + Facing: 384 + Location: 21,32 + Actor20: trooper + Owner: Multi0 + SubCell: 3 + Facing: 384 + Location: 19,32 + Actor21: trooper + Owner: Multi0 + Facing: 384 + Location: 19,32 + SubCell: 1 + Actor22: trooper + Owner: Multi0 + Facing: 384 + Location: 19,32 + SubCell: 2 + Actor23: trooper + Owner: Multi0 + Facing: 384 + Location: 19,32 + SubCell: 4 + Actor24: trooper + Owner: Multi0 + Facing: 384 + Location: 19,32 + SubCell: 5 + Actor25: trooper + Owner: Multi0 + SubCell: 3 + Facing: 384 + Location: 19,33 + Actor26: trooper + Owner: Multi0 + Facing: 384 + Location: 19,33 + SubCell: 1 + Actor27: trooper + Owner: Multi0 + Facing: 384 + Location: 19,33 + SubCell: 2 + Actor33: missile_tank + Owner: Multi0 + Facing: 384 + Location: 18,22 + Actor34: missile_tank + Owner: Multi0 + Location: 19,22 + Facing: 384 + Actor35: missile_tank + Owner: Multi0 + Location: 20,22 + Facing: 95 + Actor36: missile_tank + Owner: Multi0 + Location: 22,22 + Facing: 967 + Actor37: missile_tank + Owner: Multi0 + Location: 21,22 + Facing: 0 + Actor38: missile_tank + Owner: Multi0 + Location: 23,22 + Facing: 896 + Actor39: missile_tank + Owner: Multi0 + Location: 23,23 + Facing: 927 + Actor40: missile_tank + Owner: Multi0 + Location: 23,24 + Facing: 840 + Actor41: missile_tank + Owner: Multi0 + Location: 23,25 + Facing: 769 + Actor42: missile_tank + Owner: Multi0 + Location: 23,26 + Facing: 674 + Actor43: missile_tank + Owner: Multi0 + Location: 23,27 + Facing: 602 + Actor44: missile_tank + Owner: Multi0 + Location: 22,27 + Facing: 602 + Actor45: missile_tank + Owner: Multi0 + Location: 21,27 + Facing: 499 + Actor46: missile_tank + Owner: Multi0 + Facing: 384 + Location: 19,27 + Actor47: missile_tank + Owner: Multi0 + Facing: 384 + Location: 18,27 + Actor48: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 18,19 + Actor50: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 20,19 + Actor51: combat_tank_a + Owner: Multi0 + Location: 21,19 + Facing: 384 + Actor52: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 22,19 + Actor53: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 23,19 + Actor60: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 20,20 + Actor61: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 18,17 + Actor62: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 19,17 + Actor63: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 20,17 + Actor64: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 21,17 + Actor65: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 22,17 + Actor66: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 23,17 + Actor67: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 18,15 + Actor68: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 19,15 + Actor69: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 20,15 + Actor70: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 21,15 + Actor71: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 22,15 + Actor72: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 23,15 + Actor74: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 23,13 + Actor75: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 20,13 + Actor76: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 18,13 + Actor80: light_inf + Owner: Multi0 + Facing: 384 + Location: 21,17 + SubCell: 1 + Actor81: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 16,16 + Actor83: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 1 + Location: 20,17 + Actor86: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 1 + Location: 21,19 + Actor87: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 1 + Location: 23,19 + Actor97: combat_tank_a.husk + Owner: Neutral + Facing: 384 + Location: 25,31 + Actor98: combat_tank_a.husk02 + Owner: Neutral + Facing: 384 + Location: 27,31 + Actor99: combat_tank_a.husk03 + Owner: Neutral + Facing: 384 + Location: 29,31 + Actor100: combat_tank_a.husk04 + Owner: Neutral + Facing: 384 + Location: 31,31 + Actor104: engineer + Owner: Multi0 + SubCell: 3 + Facing: 384 + Location: 24,39 + Actor106: engineer + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 35,32 + Actor116: deviator + Owner: Multi0 + Facing: 384 + Location: 25,28 + Actor117: deviator + Owner: Multi0 + Facing: 384 + Location: 26,28 + Actor118: deviator + Owner: Multi0 + Facing: 384 + Location: 28,28 + Actor119: deviator + Owner: Multi0 + Facing: 384 + Location: 27,28 + Actor121: sonic_tank + Owner: Multi0 + Location: 7,38 + Facing: 930 + Actor122: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 8,38 + Actor123: light_inf + Owner: Multi0 + Facing: 384 + Location: 9,38 + SubCell: 3 + Actor124: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 10,38 + Actor125: light_inf + Owner: Multi0 + Facing: 384 + Location: 11,38 + SubCell: 3 + Actor126: light_inf + Owner: Multi0 + Facing: 384 + Location: 12,38 + SubCell: 3 + Actor127: light_inf + Owner: Multi0 + Facing: 384 + Location: 13,38 + SubCell: 3 + Actor128: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 14,38 + Actor129: light_inf + Owner: Multi0 + Facing: 384 + Location: 15,38 + SubCell: 3 + Actor130: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 16,38 + Actor131: light_inf + Owner: Multi0 + Facing: 384 + Location: 16,38 + SubCell: 1 + Actor132: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 17,38 + Actor133: light_inf + Owner: Multi0 + Facing: 384 + Location: 17,38 + SubCell: 1 + Actor134: light_inf + Owner: Multi0 + Facing: 384 + Location: 18,38 + SubCell: 3 + Actor135: light_inf + Owner: Multi0 + Facing: 384 + Location: 18,38 + SubCell: 1 + Actor146: engineer + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 11,26 + Actor147: engineer + Owner: Multi0 + Facing: 384 + Location: 11,26 + SubCell: 1 + Actor148: engineer + Owner: Multi0 + Facing: 384 + Location: 11,26 + SubCell: 2 + Actor154: sonic_tank + Owner: Multi0 + Location: 7,40 + Facing: 930 + Actor155: sonic_tank + Owner: Multi0 + Location: 7,42 + Facing: 930 + Actor186: pass01_destroyed_bottom + Owner: Neutral + Location: 31,9 + Actor188: pass01_destroyed_top + Owner: Neutral + Location: 31,4 + Actor193: engineer + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 23,7 + Actor195: raider + Owner: Multi0 + Facing: 384 + Location: 21,9 + Actor199: quad + Owner: Multi0 + Facing: 384 + Location: 22,4 + Actor201: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 22,6 + Actor203: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 21,10 + Actor204: light_inf + Owner: Multi0 + SubCell: 3 + Facing: 384 + Location: 22,36 + Actor205: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,36 + SubCell: 3 + Actor206: light_inf + Owner: Multi0 + Facing: 384 + Location: 22,37 + SubCell: 3 + Actor207: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 1 + Location: 23,36 + Actor208: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,36 + SubCell: 2 + Actor209: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,36 + SubCell: 4 + Actor210: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,36 + SubCell: 5 + Actor211: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,37 + SubCell: 3 + Actor212: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,37 + SubCell: 1 + Actor213: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,37 + SubCell: 2 + Actor214: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,37 + SubCell: 4 + Actor215: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,37 + SubCell: 3 + Actor216: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,37 + SubCell: 1 + Actor217: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,37 + SubCell: 2 + Actor218: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,37 + SubCell: 4 + Actor219: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,37 + SubCell: 5 + Actor220: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,37 + SubCell: 5 + Actor221: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,36 + SubCell: 3 + Actor222: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,36 + SubCell: 1 + Actor223: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,36 + SubCell: 2 + Actor224: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,36 + SubCell: 4 + Actor225: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,36 + SubCell: 5 + Actor226: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,35 + SubCell: 3 + Actor227: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,35 + SubCell: 1 + Actor228: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,35 + SubCell: 2 + Actor229: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,35 + SubCell: 4 + Actor230: light_inf + Owner: Multi0 + Facing: 384 + Location: 24,35 + SubCell: 5 + Actor231: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,35 + SubCell: 3 + Actor232: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,35 + SubCell: 1 + Actor233: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,35 + SubCell: 2 + Actor234: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,35 + SubCell: 4 + Actor235: light_inf + Owner: Multi0 + Facing: 384 + Location: 23,35 + SubCell: 5 + Actor236: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 25,35 + Actor237: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,35 + SubCell: 1 + Actor238: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,35 + SubCell: 2 + Actor239: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,35 + SubCell: 4 + Actor240: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,35 + SubCell: 5 + Actor241: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,36 + SubCell: 3 + Actor242: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,36 + SubCell: 1 + Actor243: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,36 + SubCell: 2 + Actor244: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,36 + SubCell: 4 + Actor245: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,36 + SubCell: 5 + Actor246: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,37 + SubCell: 3 + Actor247: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,37 + SubCell: 1 + Actor248: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,37 + SubCell: 2 + Actor249: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,37 + SubCell: 4 + Actor250: light_inf + Owner: Multi0 + Facing: 384 + Location: 25,37 + SubCell: 5 + Actor251: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 3,35 + Actor252: light_inf + Owner: Multi0 + Facing: 384 + Location: 4,35 + SubCell: 3 + Actor253: light_inf + Owner: Multi0 + Facing: 384 + Location: 4,34 + SubCell: 3 + Actor254: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 1 + Location: 4,35 + Actor255: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 1 + Location: 3,35 + Actor256: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 5,36 + Actor257: light_inf + Owner: Multi0 + Facing: 384 + Location: 4,36 + SubCell: 3 + Actor258: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,36 + SubCell: 3 + Actor259: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 2 + Location: 4,35 + Actor260: light_inf + Owner: Multi0 + Facing: 384 + Location: 5,35 + SubCell: 3 + Actor261: light_inf + Owner: Multi0 + Facing: 384 + Location: 5,35 + SubCell: 1 + Actor262: light_inf + Owner: Multi0 + Facing: 384 + Location: 4,34 + SubCell: 1 + Actor263: light_inf + Owner: Multi0 + Facing: 384 + Location: 4,34 + SubCell: 2 + Actor264: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 2,35 + Actor265: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 1 + Location: 3,36 + Actor266: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 1 + Location: 5,36 + Actor267: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,34 + SubCell: 3 + Actor268: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,34 + SubCell: 1 + Actor269: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 6,34 + Actor270: light_inf + Owner: Multi0 + Facing: 384 + Location: 5,35 + SubCell: 2 + Actor271: light_inf + Owner: Multi0 + Facing: 384 + Location: 5,34 + SubCell: 3 + Actor272: light_inf + Owner: Multi0 + Facing: 384 + Location: 5,34 + SubCell: 1 + Actor273: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,33 + SubCell: 3 + Actor274: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,33 + SubCell: 1 + Actor275: light_inf + Owner: Multi0 + Facing: 384 + Location: 4,34 + SubCell: 4 + Actor276: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 2 + Location: 3,35 + Actor277: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,35 + SubCell: 4 + Actor278: light_inf + Owner: Multi0 + Facing: 384 + Location: 7,35 + SubCell: 3 + Actor279: light_inf + Owner: Multi0 + Facing: 384 + Location: 5,36 + SubCell: 2 + Actor280: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,36 + SubCell: 2 + Actor281: light_inf + Owner: Multi0 + Facing: 384 + Location: 6,36 + SubCell: 3 + Actor282: light_inf + Owner: Multi0 + Facing: 384 + Location: 6,36 + SubCell: 1 + Actor283: light_inf + Owner: Multi0 + Facing: 384 + Location: 6,34 + SubCell: 1 + Actor284: light_inf + Owner: Multi0 + Facing: 384 + Location: 6,33 + SubCell: 3 + Actor285: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,33 + SubCell: 2 + Actor286: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 5,33 + Actor287: light_inf + Owner: Multi0 + Facing: 384 + Location: 3,33 + SubCell: 4 + Actor288: light_inf + Owner: Multi0 + Facing: 384 + Location: 6,35 + SubCell: 3 + Actor289: light_inf + Owner: Multi0 + Facing: 384 + Location: 6,34 + SubCell: 2 + Actor326: sonic_tank + Owner: Multi0 + Location: 7,37 + Facing: 930 + Actor352: missile_tank + Owner: Multi0 + Location: 20,23 + Facing: 103 + Actor353: missile_tank + Owner: Multi0 + Location: 20,24 + Facing: 158 + Actor354: missile_tank + Owner: Multi0 + Location: 20,25 + Facing: 253 + Actor355: missile_tank + Owner: Multi0 + Location: 20,26 + Facing: 380 + Actor356: missile_tank + Owner: Multi0 + Location: 20,27 + Facing: 428 + Actor357: mortar_inf + Owner: Multi0 + SubCell: 3 + Facing: 384 + Location: 16,34 + Actor358: mortar_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 17,35 + Actor359: mortar_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 19,34 + Actor360: mortar_inf + Owner: Multi0 + Facing: 384 + Location: 18,35 + SubCell: 3 + Actor361: mortar_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 20,35 + Actor362: mortar_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 19,36 + Actor363: mortar_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 15,35 + Actor364: mortar_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 17,34 + Actor365: assassin + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 17,29 + Actor366: assassin + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 21,29 + Actor367: assassin + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 26,34 + Actor368: assassin + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 28,33 + Actor369: assassin + Owner: Multi0 + Facing: 384 + Location: 29,33 + SubCell: 3 + Actor370: assassin + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 15,31 + Actor371: assassin + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 14,28 + Actor372: assassin + Owner: Multi0 + Facing: 384 + Location: 14,28 + SubCell: 1 + Actor373: assassin + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 16,27 + Actor374: crater_big + Owner: Neutral + Location: 19,47 + Actor390: devastator + Owner: Multi0 + Facing: 384 + Location: 17,14 + Actor391: devastator + Owner: Multi0 + Facing: 384 + Location: 17,13 + Actor392: devastator + Owner: Multi0 + Facing: 384 + Location: 18,11 + Actor393: mercenary + Owner: Multi0 + SubCell: 3 + Location: 13,24 + Facing: 134 + Actor395: mercenary + Owner: Multi0 + Location: 14,24 + SubCell: 3 + Facing: 1023 + Actor396: mercenary + Owner: Multi0 + Location: 15,24 + SubCell: 3 + Facing: 927 + Actor397: mercenary + Owner: Multi0 + Location: 15,25 + SubCell: 3 + Facing: 753 + Actor398: mercenary + Owner: Multi0 + Location: 15,26 + SubCell: 3 + DeployState: Deployed + Facing: 682 + TurretFacing: 761 + Actor399: mercenary + Owner: Multi0 + Location: 14,26 + SubCell: 3 + Facing: 507 + Actor400: mercenary + Owner: Multi0 + Facing: 384 + Location: 13,26 + SubCell: 3 + Actor401: mercenary + Owner: Multi0 + Location: 13,25 + SubCell: 3 + TurretFacing: 0 + Facing: 285 + Actor404: engineer + Owner: Multi0 + SubCell: 3 + Location: 31,23 + Facing: 384 + Actor405: bison_tank + Owner: Multi0 + Facing: 384 + Location: 13,20 + Actor406: bison_tank + Owner: Multi0 + Facing: 384 + Location: 14,22 + Actor407: bison_tank + Owner: Multi0 + Facing: 384 + Location: 18,20 + Actor408: bison_tank + Owner: Multi0 + Facing: 384 + Location: 19,20 + Actor409: bison_tank + Owner: Multi0 + Facing: 384 + Location: 17,12 + Actor411: bombardment_tank + Owner: Multi0 + Facing: 384 + Location: 36,30 + Actor412: bombardment_tank + Owner: Multi0 + Facing: 384 + Location: 37,30 + Actor413: bombardment_tank + Owner: Multi0 + Location: 37,29 + TurretFacing: 0 + Facing: 384 + Actor414: bombardment_tank + Owner: Multi0 + Location: 36,29 + Facing: 388 + Actor415: bombardment_tank + Owner: Multi0 + Facing: 384 + Location: 23,10 + Actor416: bombardment_tank + Owner: Multi0 + Facing: 384 + Location: 16,28 + Actor417: bombardment_tank + Owner: Multi0 + Facing: 384 + Location: 18,29 + Actor375: light_inf + Owner: Multi0 + SubCell: 3 + Location: 25,30 + Facing: 384 + Health: 8 + Actor382: devastator + Owner: Multi0 + Facing: 384 + Location: 23,39 + Actor419: engineer + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 39,17 + Actor420: engineer + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 40,28 + Actor423: engineer + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 33,29 + Actor432: light_inf + Owner: Multi0 + SubCell: 3 + Facing: 384 + Location: 42,15 + Actor433: light_inf + Owner: Multi0 + Facing: 384 + Location: 42,15 + SubCell: 1 + Actor434: light_inf + Owner: Multi0 + Facing: 384 + Location: 42,15 + SubCell: 2 + Actor435: light_inf + Owner: Multi0 + Facing: 384 + Location: 42,15 + SubCell: 4 + Actor436: light_inf + Owner: Multi0 + Facing: 384 + Location: 42,15 + SubCell: 5 + Actor437: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 43,15 + Actor438: light_inf + Owner: Multi0 + Facing: 384 + Location: 43,15 + SubCell: 1 + Actor439: light_inf + Owner: Multi0 + Facing: 384 + Location: 43,15 + SubCell: 2 + Actor440: light_inf + Owner: Multi0 + Facing: 384 + Location: 43,15 + SubCell: 4 + Actor441: light_inf + Owner: Multi0 + Facing: 384 + Location: 43,15 + SubCell: 5 + Actor442: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 44,15 + Actor443: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,15 + SubCell: 1 + Actor444: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,15 + SubCell: 2 + Actor445: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,15 + SubCell: 4 + Actor446: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,15 + SubCell: 5 + Actor447: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,15 + SubCell: 3 + Actor448: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,15 + SubCell: 1 + Actor449: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,15 + SubCell: 2 + Actor450: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,15 + SubCell: 4 + Actor451: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,15 + SubCell: 5 + Actor452: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 46,15 + Actor453: light_inf + Owner: Multi0 + Facing: 384 + Location: 46,15 + SubCell: 1 + Actor454: light_inf + Owner: Multi0 + Facing: 384 + Location: 46,15 + SubCell: 2 + Actor455: light_inf + Owner: Multi0 + Facing: 384 + Location: 46,15 + SubCell: 4 + Actor456: light_inf + Owner: Multi0 + Facing: 384 + Location: 46,15 + SubCell: 5 + Actor421: flamer + Owner: Multi0 + Facing: 384 + Location: 23,33 + Actor422: flamer + Owner: Multi0 + Facing: 384 + Location: 23,31 + Actor424: flamer + Owner: Multi0 + Facing: 384 + Location: 21,30 + Actor425: flamer + Owner: Multi0 + Facing: 384 + Location: 10,22 + Actor426: flamer + Owner: Multi0 + Facing: 384 + Location: 11,22 + Actor427: flamer + Owner: Multi0 + Facing: 384 + Location: 12,21 + Actor428: flamer + Owner: Multi0 + Facing: 384 + Location: 42,20 + Actor429: flamer + Owner: Multi0 + Facing: 384 + Location: 42,18 + Actor430: flamer + Owner: Multi0 + Facing: 384 + Location: 42,17 + Actor466: wind_trap + Owner: Multi0 + Location: 3,21 + Actor490: wind_trap + Owner: Multi0 + Location: 5,21 + Actor491: wind_trap + Owner: Multi0 + Location: 7,21 + Actor492: wormspawner + Owner: Neutral + Location: 5,30 + Actor540: bison_tank + Owner: Multi0 + Facing: 384 + Location: 22,42 + Actor541: bison_tank + Owner: Multi0 + Location: 23,42 + Facing: 384 + Actor49: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 19,19 + Actor554: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 15,19 + Actor555: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 15,19 + Actor556: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 16,19 + Actor557: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 17,19 + Actor558: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 15,20 + Actor559: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 16,20 + Actor560: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 17,20 + Actor475: hunter + Owner: Multi0 + Facing: 384 + Location: 38,14 + Actor476: hunter + Owner: Multi0 + Facing: 384 + Location: 39,14 + Actor477: hunter + Owner: Multi0 + Facing: 384 + Location: 40,14 + Actor561: merged.flamer + Owner: Multi0 + Facing: 384 + Location: 42,19 + Actor572: bison_tank + Owner: Multi0 + Facing: 384 + Location: 7,43 + Actor573: bison_tank + Owner: Multi0 + Facing: 384 + Location: 8,43 + Actor574: bison_tank + Owner: Multi0 + Facing: 384 + Location: 9,43 + Actor575: bison_tank + Owner: Multi0 + Facing: 384 + Location: 10,43 + Actor576: bison_tank + Owner: Multi0 + Facing: 384 + Location: 11,43 + Actor577: bison_tank + Owner: Multi0 + Facing: 384 + Location: 12,43 + Actor578: bison_tank + Owner: Multi0 + Facing: 384 + Location: 13,43 + Actor579: bison_tank + Owner: Multi0 + Facing: 384 + Location: 14,43 + Actor580: bison_tank + Owner: Multi0 + Facing: 384 + Location: 15,43 + Actor581: bison_tank + Owner: Multi0 + Facing: 384 + Location: 16,43 + Actor582: bison_tank + Owner: Multi0 + Facing: 384 + Location: 17,43 + Actor583: bison_tank + Owner: Multi0 + Facing: 384 + Location: 18,43 + Actor562: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 10,50 + Actor563: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 11,50 + Actor564: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 12,50 + Actor565: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 13,50 + Actor566: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 14,50 + Actor567: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 15,50 + Actor568: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 15,49 + Actor569: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 14,49 + Actor570: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 13,49 + Actor571: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 12,49 + Actor584: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 11,49 + Actor585: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 10,49 + Actor586: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 9,49 + Actor587: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 9,50 + Actor588: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 16,50 + Actor589: combat_tank_h + Owner: Creeps + Facing: 384 + Location: 16,49 + Actor591: wormspawner + Owner: Neutral + Location: 20,45 + Actor592: pass01_destroyable_left + Owner: Neutral + Location: 29,37 + Actor115: pass01_destroyable_top + Owner: Neutral + Location: 33,34 + Actor597: outpost + Owner: Multi0 + Location: 29,19 + Actor607: pass01_destroyable_left + Owner: Neutral + Location: 26,6 + Actor608: pass01_destroyable_right + Owner: Neutral + Location: 35,6 + Actor525: high_tech_factory + Owner: Multi0 + Location: 29,24 + Actor527: starport + Owner: Multi0 + Location: 6,25 + Actor528: construction_yard + Owner: Multi0 + Location: 3,25 + Actor547: worm_rider + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 38,13 + Actor548: worm_rider + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 11,20 + Actor593: worm_rider + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 35,13 + Actor598: building01 + Owner: Neutral + Location: 33,28 + Actor483: repair_pad.bot + Owner: Multi0 + Location: 33,24 + Actor615: siege_tank + Owner: Multi0 + Facing: 384 + Location: 18,41 + Actor616: siege_tank + Owner: Multi0 + Facing: 384 + Location: 17,41 + Actor617: siege_tank + Owner: Multi0 + Facing: 384 + Location: 16,41 + Actor618: siege_tank + Owner: Multi0 + Facing: 384 + Location: 15,41 + Actor619: siege_tank + Owner: Multi0 + Facing: 384 + Location: 14,41 + Actor620: siege_tank + Owner: Multi0 + Facing: 384 + Location: 13,41 + Actor621: siege_tank + Owner: Multi0 + Facing: 384 + Location: 12,41 + Actor622: siege_tank + Owner: Multi0 + Facing: 384 + Location: 11,41 + Actor623: siege_tank + Owner: Multi0 + Facing: 384 + Location: 10,41 + Actor624: siege_tank + Owner: Multi0 + Location: 8,41 + Facing: 384 + Actor625: siege_tank + Owner: Multi0 + Facing: 384 + Location: 9,41 + Actor626: sonic_tank + Owner: Multi0 + Location: 7,41 + Facing: 930 + Actor627: sonic_tank + Owner: Multi0 + Location: 7,39 + Facing: 770 + Actor628: light_inf + Owner: Neutral + Facing: 384 + SubCell: 3 + Location: 8,42 + Actor629: light_inf + Owner: Neutral + Facing: 384 + Location: 9,42 + SubCell: 3 + Actor630: light_inf + Owner: Neutral + Facing: 384 + Location: 10,42 + SubCell: 3 + Actor631: light_inf + Owner: Neutral + Facing: 384 + Location: 11,42 + SubCell: 3 + Actor632: light_inf + Owner: Neutral + Facing: 384 + Location: 12,42 + SubCell: 3 + Actor633: light_inf + Owner: Neutral + Facing: 384 + Location: 13,42 + SubCell: 3 + Actor634: light_inf + Owner: Neutral + Facing: 384 + Location: 14,42 + SubCell: 3 + Actor635: light_inf + Owner: Neutral + Facing: 384 + Location: 15,42 + SubCell: 3 + Actor636: light_inf + Owner: Neutral + Facing: 384 + Location: 16,42 + SubCell: 3 + Actor637: light_inf + Owner: Neutral + Facing: 384 + Location: 17,42 + SubCell: 3 + Actor638: light_inf + Owner: Neutral + Facing: 384 + Location: 18,42 + SubCell: 3 + Actor639: trike + Owner: Neutral + Facing: 384 + Location: 8,40 + Actor640: trike + Owner: Neutral + Facing: 384 + Location: 9,40 + Actor641: trike + Owner: Neutral + Facing: 384 + Location: 10,40 + Actor642: trike + Owner: Neutral + Facing: 384 + Location: 11,40 + Actor643: trike + Owner: Neutral + Facing: 384 + Location: 12,40 + Actor644: trike + Owner: Neutral + Facing: 384 + Location: 13,40 + Actor645: trike + Owner: Neutral + Facing: 384 + Location: 14,40 + Actor646: trike + Owner: Neutral + Facing: 384 + Location: 15,40 + Actor647: trike + Owner: Neutral + Facing: 384 + Location: 16,40 + Actor648: trike + Owner: Neutral + Facing: 384 + Location: 17,40 + Actor649: trike + Owner: Neutral + Facing: 384 + Location: 18,40 + Actor545: trooper + Owner: Multi0 + SubCell: 3 + Facing: 384 + Location: 44,39 + Actor546: trooper + Owner: Multi0 + Facing: 384 + Location: 44,39 + SubCell: 1 + Actor549: trooper + Owner: Multi0 + Facing: 384 + Location: 44,39 + SubCell: 2 + Actor550: trooper + Owner: Multi0 + Facing: 384 + Location: 44,39 + SubCell: 4 + Actor551: trooper + Owner: Multi0 + Facing: 384 + Location: 44,39 + SubCell: 5 + Actor552: trooper + Owner: Multi0 + Facing: 384 + Location: 45,39 + SubCell: 3 + Actor553: trooper + Owner: Multi0 + Facing: 384 + Location: 45,39 + SubCell: 1 + Actor590: trooper + Owner: Multi0 + Facing: 384 + Location: 45,39 + SubCell: 2 + Actor594: trooper + Owner: Multi0 + Facing: 384 + Location: 45,39 + SubCell: 4 + Actor650: trooper + Owner: Multi0 + Facing: 384 + Location: 45,39 + SubCell: 5 + Actor651: trooper + Owner: Multi0 + Facing: 384 + Location: 46,39 + SubCell: 3 + Actor652: trooper + Owner: Multi0 + Facing: 384 + Location: 46,39 + SubCell: 1 + Actor653: trooper + Owner: Multi0 + Facing: 384 + Location: 46,39 + SubCell: 2 + Actor654: trooper + Owner: Multi0 + Facing: 384 + Location: 46,39 + SubCell: 4 + Actor655: trooper + Owner: Multi0 + Facing: 384 + Location: 46,39 + SubCell: 5 + Actor656: trooper + Owner: Multi0 + Facing: 384 + Location: 47,39 + SubCell: 3 + Actor657: trooper + Owner: Multi0 + Facing: 384 + Location: 47,39 + SubCell: 1 + Actor658: trooper + Owner: Multi0 + Facing: 384 + Location: 47,39 + SubCell: 2 + Actor659: trooper + Owner: Multi0 + Facing: 384 + Location: 47,39 + SubCell: 4 + Actor660: trooper + Owner: Multi0 + Facing: 384 + Location: 47,39 + SubCell: 5 + Actor661: trooper + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 48,39 + Actor662: trooper + Owner: Multi0 + Facing: 384 + Location: 48,39 + SubCell: 1 + Actor663: trooper + Owner: Multi0 + Facing: 384 + Location: 48,39 + SubCell: 2 + Actor664: trooper + Owner: Multi0 + Facing: 384 + Location: 48,39 + SubCell: 4 + Actor665: trooper + Owner: Multi0 + Facing: 384 + Location: 48,39 + SubCell: 5 + Actor666: trooper + Owner: Multi0 + Facing: 384 + Location: 49,39 + SubCell: 3 + Actor667: trooper + Owner: Multi0 + Facing: 384 + Location: 49,39 + SubCell: 1 + Actor668: trooper + Owner: Multi0 + Facing: 384 + Location: 49,39 + SubCell: 2 + Actor669: trooper + Owner: Multi0 + Facing: 384 + Location: 49,39 + SubCell: 4 + Actor670: trooper + Owner: Multi0 + Facing: 384 + Location: 49,39 + SubCell: 5 + Actor493: quad + Owner: Creeps + Facing: 384 + Location: 2,16 + Actor498: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 10,16 + Actor499: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 11,4 + Actor500: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 11,5 + Actor501: light_inf + Owner: Creeps + SubCell: 3 + Facing: 384 + Location: 40,2 + Actor502: light_inf + Owner: Creeps + Facing: 384 + Location: 40,2 + SubCell: 1 + Actor503: light_inf + Owner: Creeps + Facing: 384 + Location: 40,2 + SubCell: 2 + Actor504: light_inf + Owner: Creeps + Facing: 384 + Location: 40,2 + SubCell: 4 + Actor505: light_inf + Owner: Creeps + Facing: 384 + Location: 40,2 + SubCell: 5 + Actor506: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 41,2 + Actor507: light_inf + Owner: Creeps + Facing: 384 + Location: 41,2 + SubCell: 1 + Actor508: light_inf + Owner: Creeps + Facing: 384 + Location: 41,2 + SubCell: 2 + Actor509: light_inf + Owner: Creeps + Facing: 384 + Location: 41,2 + SubCell: 4 + Actor510: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 43,3 + Actor511: light_inf + Owner: Creeps + Facing: 384 + Location: 43,3 + SubCell: 1 + Actor512: light_inf + Owner: Creeps + Facing: 384 + Location: 43,3 + SubCell: 2 + Actor526: light_inf + Owner: Creeps + Facing: 384 + Location: 42,3 + SubCell: 3 + Actor530: light_inf + Owner: Creeps + Facing: 384 + Location: 42,3 + SubCell: 1 + Actor531: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 40,3 + Actor532: light_inf + Owner: Creeps + Facing: 384 + Location: 40,3 + SubCell: 1 + Actor533: light_inf + Owner: Creeps + Facing: 384 + Location: 41,3 + SubCell: 3 + Actor534: light_inf + Owner: Creeps + Facing: 384 + Location: 41,3 + SubCell: 1 + Actor535: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 43,2 + Actor536: light_inf + Owner: Creeps + Facing: 384 + Location: 43,2 + SubCell: 1 + Actor537: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 45,3 + Actor538: light_inf + Owner: Creeps + Facing: 384 + Location: 45,3 + SubCell: 1 + Actor539: light_inf + Owner: Creeps + Facing: 384 + Location: 43,2 + SubCell: 2 + Actor544: light_inf + Owner: Creeps + Facing: 384 + Location: 43,2 + SubCell: 4 + Actor672: light_inf + Owner: Creeps + Facing: 384 + Location: 42,2 + SubCell: 3 + Actor673: light_inf + Owner: Creeps + Facing: 384 + Location: 42,2 + SubCell: 1 + Actor674: light_inf + Owner: Creeps + Facing: 384 + Location: 44,3 + SubCell: 3 + Actor675: light_inf + Owner: Creeps + Facing: 384 + Location: 44,3 + SubCell: 1 + Actor676: light_inf + Owner: Creeps + Facing: 384 + Location: 44,2 + SubCell: 3 + Actor677: light_inf + Owner: Creeps + Facing: 384 + Location: 44,2 + SubCell: 1 + Actor678: light_inf + Owner: Creeps + Facing: 384 + Location: 44,2 + SubCell: 2 + Actor679: light_inf + Owner: Creeps + Facing: 384 + Location: 45,3 + SubCell: 2 + Actor680: light_inf + Owner: Creeps + Facing: 384 + Location: 45,4 + SubCell: 3 + Actor681: light_inf + Owner: Creeps + Facing: 384 + Location: 42,3 + SubCell: 2 + Actor682: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 40,4 + Actor683: light_inf + Owner: Creeps + Facing: 384 + Location: 40,4 + SubCell: 1 + Actor684: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 43,4 + Actor685: light_inf + Owner: Creeps + Facing: 384 + Location: 44,4 + SubCell: 3 + Actor686: light_inf + Owner: Creeps + Facing: 384 + Location: 44,4 + SubCell: 1 + Actor687: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 41,4 + Actor688: light_inf + Owner: Creeps + Facing: 384 + Location: 40,4 + SubCell: 2 + Actor689: light_inf + Owner: Creeps + Facing: 384 + Location: 41,3 + SubCell: 2 + Actor690: light_inf + Owner: Creeps + Facing: 384 + Location: 41,3 + SubCell: 4 + Actor691: light_inf + Owner: Creeps + Facing: 384 + Location: 42,4 + SubCell: 3 + Actor692: light_inf + Owner: Creeps + Facing: 384 + Location: 42,4 + SubCell: 1 + Actor693: light_inf + Owner: Creeps + Facing: 384 + Location: 43,4 + SubCell: 1 + Actor694: light_inf + Owner: Creeps + Facing: 384 + Location: 43,4 + SubCell: 2 + Actor695: light_inf + Owner: Creeps + Facing: 384 + Location: 45,4 + SubCell: 1 + Actor696: light_inf + Owner: Creeps + Facing: 384 + Location: 45,3 + SubCell: 4 + Actor697: light_inf + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 45,2 + Actor698: light_inf + Owner: Creeps + Facing: 384 + Location: 45,2 + SubCell: 1 + Actor699: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 41,12 + Actor700: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 42,12 + Actor701: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 43,12 + Actor702: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 44,12 + Actor705: platform_left_02 + Owner: Neutral + Location: 40,34 + Actor706: platform_left_03 + Owner: Neutral + Location: 40,35 + Actor707: platform_left_01 + Owner: Neutral + Location: 40,33 + Actor710: bridge1_end_bottom_left + Owner: Neutral + Location: 48,35 + Actor711: bridge01_sand_right + Owner: Neutral + Location: 49,34 + Actor712: bridge1_end_top_left + Owner: Neutral + Location: 48,33 + Actor713: bridge1_end_right + Owner: Neutral + Location: 48,34 + Actor714: platform_sand_bottom_right + Owner: Neutral + Location: 45,36 + Actor715: platform_sand_bottom_left + Owner: Neutral + Location: 42,36 + Actor716: platform_sand_bottom + Owner: Neutral + Location: 44,37 + Actor717: fremen_temple + Owner: Neutral + Location: 33,41 + Actor720: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 11,6 + Actor721: combat_tank_o + Owner: Multi0 + Facing: 384 + Location: 11,7 + Actor722: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 12,4 + Actor723: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 12,5 + Actor724: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 12,6 + Actor725: combat_tank_a + Owner: Multi0 + Facing: 384 + Location: 12,7 + Actor726: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 13,4 + Actor727: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 13,5 + Actor728: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 13,6 + Actor729: combat_tank_h + Owner: Multi0 + Facing: 384 + Location: 13,7 + Actor730: flamer + Owner: Multi0 + Facing: 384 + Location: 45,12 + Actor731: flamer + Owner: Multi0 + Facing: 384 + Location: 46,12 + Actor732: flamer + Owner: Multi0 + Facing: 384 + Location: 12,3 + Actor733: flamer + Owner: Multi0 + Facing: 384 + Location: 12,2 + Actor734: bison_tank + Owner: Multi0 + Facing: 384 + Location: 14,7 + Actor735: bison_tank + Owner: Multi0 + Facing: 384 + Location: 14,6 + Actor736: bison_tank + Owner: Multi0 + Facing: 384 + Location: 14,5 + Actor737: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 11,8 + Actor738: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 11,9 + Actor739: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 11,10 + Actor740: combat_tank_cheap + Owner: Multi0 + Facing: 384 + Location: 11,11 + Actor741: combat_tank_corrino + Owner: Multi0 + Facing: 384 + Location: 12,8 + Actor742: combat_tank_corrino + Owner: Multi0 + Facing: 384 + Location: 12,9 + Actor743: combat_tank_corrino + Owner: Multi0 + Facing: 384 + Location: 12,10 + Actor744: combat_tank_corrino + Owner: Multi0 + Facing: 384 + Location: 12,11 + Actor745: trooper + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 2,2 + Actor746: trooper + Owner: Creeps + Facing: 384 + Location: 2,3 + SubCell: 3 + Actor747: trooper + Owner: Creeps + Facing: 384 + Location: 3,3 + SubCell: 3 + Actor748: trooper + Owner: Creeps + Facing: 384 + Location: 3,2 + SubCell: 3 + Actor749: trooper + Owner: Creeps + Facing: 384 + SubCell: 1 + Location: 2,2 + Actor750: trooper + Owner: Creeps + Facing: 384 + SubCell: 1 + Location: 2,3 + Actor751: trooper + Owner: Creeps + Facing: 384 + Location: 3,3 + SubCell: 1 + Actor752: trooper + Owner: Creeps + Facing: 384 + Location: 3,2 + SubCell: 1 + Actor753: trooper + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 4,2 + Actor754: trooper + Owner: Creeps + Facing: 384 + Location: 4,3 + SubCell: 3 + Actor755: trooper + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 3,4 + Actor756: trooper + Owner: Creeps + Facing: 384 + Location: 3,4 + SubCell: 1 + Actor757: trooper + Owner: Creeps + Facing: 384 + Location: 2,4 + SubCell: 3 + Actor758: trooper + Owner: Creeps + Facing: 384 + Location: 2,4 + SubCell: 1 + Actor759: trooper + Owner: Creeps + Facing: 384 + Location: 4,4 + SubCell: 3 + Actor760: trooper + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 3,5 + Actor761: trooper + Owner: Creeps + Facing: 384 + Location: 3,5 + SubCell: 1 + Actor762: trooper + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 2,5 + Actor763: trooper + Owner: Creeps + Facing: 384 + Location: 2,5 + SubCell: 1 + Actor764: trooper + Owner: Creeps + Facing: 384 + Location: 4,5 + SubCell: 3 + Actor765: trooper + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 3,6 + Actor766: trooper + Owner: Creeps + Facing: 384 + Location: 3,6 + SubCell: 1 + Actor767: trooper + Owner: Creeps + Facing: 384 + Location: 2,6 + SubCell: 3 + Actor768: trooper + Owner: Creeps + Facing: 384 + Location: 4,6 + SubCell: 3 + Actor769: trooper + Owner: Creeps + Facing: 384 + SubCell: 1 + Location: 4,6 + Actor770: trooper + Owner: Creeps + Facing: 384 + Location: 4,6 + SubCell: 2 + Actor771: trooper + Owner: Creeps + Facing: 384 + Location: 4,6 + SubCell: 4 + Actor772: trooper + Owner: Creeps + Facing: 384 + Location: 4,6 + SubCell: 5 + Actor773: crawler.light + Owner: Multi0 + Facing: 384 + Location: 44,11 + Actor774: crawler.light + Owner: Multi0 + Facing: 384 + Location: 42,11 + Actor775: crawler.light + Owner: Multi0 + Facing: 384 + Location: 43,11 + Actor776: crawler.light + Owner: Multi0 + Facing: 384 + Location: 41,11 + Actor777: crawler.light + Owner: Multi0 + Facing: 384 + Location: 40,11 + Actor778: crawler.light + Owner: Multi0 + Facing: 384 + Location: 10,11 + Actor779: crawler.light + Owner: Multi0 + Facing: 384 + Location: 10,10 + Actor780: crawler.light + Owner: Multi0 + Facing: 384 + Location: 10,9 + Actor781: crawler.light + Owner: Multi0 + Facing: 384 + Location: 10,8 + Actor782: crawler.light + Owner: Multi0 + Facing: 384 + Location: 10,7 + Actor785: fremen_tent01 + Owner: Neutral + Location: 31,36 + Actor786: hunter + Owner: Multi0 + Facing: 384 + Location: 41,14 + Actor787: hunter + Owner: Multi0 + Facing: 384 + Location: 42,14 + Actor788: hunter + Owner: Multi0 + Facing: 384 + Location: 43,14 + Actor789: ecology_station + Owner: Neutral + Location: 11,33 + Actor799: trike + Owner: Multi0 + Facing: 384 + Location: 36,43 + Actor805: tree01 + Owner: Neutral + Location: 30,29 + Actor806: tree01 + Owner: Neutral + Location: 32,29 + Actor807: tree01 + Owner: Neutral + Location: 33,32 + Actor809: carryall + Owner: Creeps + Facing: 384 + Location: 21,36 + CenterPosition: 21,36,5120 + Actor790: ice_tileset_big17 + Owner: Neutral + Location: 42,41 + Actor816: ice_tileset_big14 + Owner: Neutral + Location: 42,45 + Actor818: ice_tileset_small25 + Owner: Neutral + Location: 40,46 + Actor819: ice_tileset_small25 + Owner: Neutral + Location: 41,46 + Actor793: ice_tileset_decoration01 + Owner: Neutral + Location: 44,40 + Actor794: ice_tileset_decoration02 + Owner: Neutral + Location: 49,40 + Actor795: ice_tileset_transition02 + Owner: Neutral + Location: 38,44 + Actor797: ice_tileset_transition01 + Owner: Neutral + Location: 38,47 + Actor718: ice_tileset_big03_3 + Owner: Neutral + Location: 38,42 + Actor813: ice_tileset_decoration07 + Owner: Neutral + Location: 41,39 + Actor719: ice_tileset_small08 + Owner: Neutral + Location: 33,37 + Actor811: ice_tileset_small07 + Owner: Neutral + Location: 35,37 + Actor822: ice_tileset_small01 + Owner: Neutral + Location: 32,37 + Actor824: ice_tileset_small02 + Owner: Neutral + Location: 32,38 + Actor825: ice_tileset_small03 + Owner: Neutral + Location: 33,38 + Actor826: ice_tileset_small04 + Owner: Neutral + Location: 34,38 + Actor827: ice_tileset_small05 + Owner: Neutral + Location: 35,38 + Actor828: ice_tileset_small06 + Owner: Neutral + Location: 36,38 + Actor829: ice_tileset_small10 + Owner: Neutral + Location: 37,38 + Actor830: ice_tileset_small11 + Owner: Neutral + Location: 37,37 + Actor831: ice_tileset_small12 + Owner: Neutral + Location: 36,39 + Actor832: ice_tileset_small13 + Owner: Neutral + Location: 37,39 + Actor833: ice_tileset_small14 + Owner: Neutral + Location: 36,40 + Actor834: ice_tileset_small15 + Owner: Neutral + Location: 35,40 + Actor835: ice_tileset_small16 + Owner: Neutral + Location: 35,39 + Actor836: ice_tileset_small17 + Owner: Neutral + Location: 34,39 + Actor837: ice_tileset_small18 + Owner: Neutral + Location: 33,39 + Actor838: ice_tileset_small19 + Owner: Neutral + Location: 32,39 + Actor839: ice_tileset_small20 + Owner: Neutral + Location: 32,40 + Actor840: ice_tileset_small21 + Owner: Neutral + Location: 33,40 + Actor841: ice_tileset_small22 + Owner: Neutral + Location: 34,40 + Actor842: ice_tileset_small23 + Owner: Neutral + Location: 37,40 + Actor843: ice_tileset_small24 + Owner: Neutral + Location: 38,40 + Actor812: water_tileset_01 + Owner: Neutral + Location: 27,46 + Actor846: water_tileset_01 + Owner: Neutral + Location: 31,46 + Actor847: water_tileset_01 + Owner: Neutral + Location: 30,46 + Actor848: water_tileset_02 + Owner: Neutral + Location: 31,45 + Actor849: water_tileset_02 + Owner: Neutral + Location: 30,45 + Actor852: water_tileset_02 + Owner: Neutral + Location: 27,45 + Actor853: water_tileset_03 + Owner: Neutral + Location: 31,47 + Actor854: water_tileset_03 + Owner: Neutral + Location: 30,47 + Actor855: water_tileset_03 + Owner: Neutral + Location: 29,47 + Actor856: water_tileset_03 + Owner: Neutral + Location: 27,47 + Actor857: water_tileset_03 + Owner: Neutral + Location: 28,47 + Actor858: water_tileset_07 + Owner: Neutral + Location: 26,39 + Actor859: water_tileset_06 + Owner: Neutral + Location: 25,39 + Actor860: water_tileset_07 + Owner: Neutral + Location: 24,39 + Actor861: water_tileset_06 + Owner: Neutral + Location: 23,39 + Actor863: water_tileset_05 + Owner: Neutral + Location: 27,40 + Actor865: water_tileset_10 + Owner: Neutral + Location: 26,44 + Actor866: water_tileset_21 + Owner: Neutral + Location: 29,48 + Actor867: water_tileset_22 + Owner: Neutral + Location: 27,41 + Actor871: water_tileset_31 + Owner: Neutral + Location: 34,47 + Actor872: water_tileset_41 + Owner: Neutral + Location: 35,46 + Actor873: water_tileset_42 + Owner: Neutral + Location: 34,46 + Actor874: water_tileset_32 + Owner: Neutral + Location: 34,45 + Actor875: water_tileset_33 + Owner: Neutral + Location: 33,46 + Actor876: water_tileset_34 + Owner: Neutral + Location: 36,46 + Actor877: water_tileset_51 + Owner: Neutral + Location: 30,48 + Actor879: water_tileset_12 + Owner: Neutral + Location: 26,48 + Actor880: water_tileset_13 + Owner: Neutral + Location: 32,48 + Actor881: water_tileset_23 + Owner: Neutral + Location: 26,45 + Actor882: water_tileset_23 + Owner: Neutral + Location: 26,46 + Actor883: water_tileset_23 + Owner: Neutral + Location: 26,47 + Actor885: water_tileset_26 + Owner: Neutral + Location: 28,44 + Actor884: water_tileset_16 + Owner: Neutral + Location: 27,44 + Actor886: water_tileset_27 + Owner: Neutral + Location: 27,42 + Actor887: water_tileset_22 + Owner: Neutral + Location: 27,43 + Actor889: water_tileset_47 + Owner: Neutral + Location: 31,49 + Actor869: water_tileset_09_3 + Owner: Neutral + Location: 27,39 + Actor890: water_tileset_big01 + Owner: Neutral + Location: 31,46 + Actor870: water_tileset_big07 + Owner: Neutral + Location: 29,43 + Actor878: water_tileset_big08 + Owner: Neutral + Location: 31,43 + Actor844: water_tileset_big13 + Owner: Neutral + Location: 28,45 + Actor798: water_tileset_big10 + Owner: Neutral + Location: 33,43 + Actor845: water_tileset_big14 + Owner: Neutral + Location: 20,37 + Actor850: water_tileset_09_2 + Owner: Neutral + Location: 21,39 + Actor851: water_tileset_09 + Owner: Neutral + Location: 22,39 + Actor864: water_tileset_18 + Owner: Neutral + Location: 20,36 + Actor868: water_tileset_09_4 + Owner: Neutral + Location: 33,45 + Actor888: water_tileset_45 + Owner: Neutral + Location: 36,45 + Actor891: water_tileset_46 + Owner: Neutral + Location: 31,48 + Actor892: water_tileset_51 + Owner: Neutral + Location: 28,48 + Actor862: ice_tileset_small25 + Owner: Neutral + Location: 41,47 + Actor893: ice_tileset_small25 + Owner: Neutral + Location: 40,47 + Actor894: ice_tileset_big12 + Owner: Neutral + Location: 41,42 + Actor899: wind_trap + Owner: Multi0 + Location: 27,25 + Actor900: wind_trap + Owner: Multi0 + Location: 25,25 + Actor901: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 28,23 + Actor902: light_inf + Owner: Multi0 + Facing: 384 + Location: 28,23 + SubCell: 1 + Actor903: light_inf + Owner: Multi0 + Facing: 384 + Location: 28,23 + SubCell: 2 + Actor904: light_inf + Owner: Multi0 + Facing: 384 + Location: 28,23 + SubCell: 4 + Actor905: light_inf + Owner: Multi0 + Facing: 384 + Location: 28,23 + SubCell: 5 + Actor906: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 27,23 + Actor907: light_inf + Owner: Multi0 + Facing: 384 + Location: 27,23 + SubCell: 1 + Actor908: light_inf + Owner: Multi0 + Facing: 384 + Location: 27,23 + SubCell: 2 + Actor909: light_inf + Owner: Multi0 + Facing: 384 + Location: 27,23 + SubCell: 4 + Actor910: light_inf + Owner: Multi0 + Facing: 384 + Location: 27,23 + SubCell: 5 + Actor911: combat_tank_o + Owner: Creeps + Facing: 384 + Location: 46,3 + Actor912: combat_tank_o + Owner: Creeps + Facing: 384 + Location: 47,4 + Actor913: combat_tank_o + Owner: Creeps + Facing: 384 + Location: 38,2 + Actor914: combat_tank_o + Owner: Creeps + Facing: 384 + Location: 38,3 + Actor915: combat_tank_o + Owner: Creeps + Facing: 384 + Location: 39,3 + Actor916: quad + Owner: Creeps + Facing: 384 + Location: 46,4 + Actor917: quad + Owner: Creeps + Facing: 384 + Location: 38,4 + Actor918: missile_tank + Owner: Creeps + Facing: 384 + Location: 47,2 + Actor919: missile_tank + Owner: Creeps + Facing: 384 + Location: 48,3 + Actor920: combat_tank_o + Owner: Creeps + Facing: 384 + Location: 44,5 + Actor921: combat_tank_o + Owner: Creeps + Facing: 384 + Location: 42,5 + Actor923: trooper + Owner: Creeps + Facing: 384 + Location: 45,4 + SubCell: 2 + Actor924: trooper + Owner: Creeps + Facing: 384 + Location: 46,5 + SubCell: 3 + Actor925: trooper + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 48,5 + Actor926: trooper + Owner: Creeps + Facing: 384 + SubCell: 3 + Location: 46,6 + Actor927: trooper + Owner: Creeps + Facing: 384 + Location: 47,6 + SubCell: 3 + Actor928: trooper + Owner: Creeps + Facing: 384 + Location: 47,5 + SubCell: 3 + Actor929: quad + Owner: Creeps + Facing: 384 + Location: 39,4 + Actor930: quad + Owner: Creeps + Facing: 384 + Location: 41,5 + Actor922: missile_tank + Owner: Neutral + Facing: 384 + Location: 8,39 + Actor931: missile_tank + Owner: Neutral + Facing: 384 + Location: 9,39 + Actor932: missile_tank + Owner: Neutral + Facing: 384 + Location: 10,39 + Actor933: missile_tank + Owner: Neutral + Facing: 384 + Location: 11,39 + Actor934: missile_tank + Owner: Neutral + Facing: 384 + Location: 12,39 + Actor935: missile_tank + Owner: Neutral + Facing: 384 + Location: 13,39 + Actor936: missile_tank + Owner: Neutral + Facing: 384 + Location: 14,39 + Actor937: missile_tank + Owner: Neutral + Facing: 384 + Location: 15,39 + Actor938: missile_tank + Owner: Neutral + Facing: 384 + Location: 16,39 + Actor939: missile_tank + Owner: Neutral + Facing: 384 + Location: 17,39 + Actor940: missile_tank + Owner: Neutral + Facing: 384 + Location: 18,39 + Actor941: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 8,37 + Actor942: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 9,37 + Actor943: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 10,37 + Actor944: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 11,37 + Actor945: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 13,37 + Actor946: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 12,37 + Actor947: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 14,37 + Actor948: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 15,37 + Actor949: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 16,37 + Actor950: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 18,37 + Actor951: combat_tank_a + Owner: Neutral + Facing: 384 + Location: 17,37 + Actor952: trike + Owner: Multi0 + Facing: 384 + Location: 24,28 + Actor953: wind_trap + Owner: Multi0 + Location: 37,24 + Actor954: trike + Owner: Multi0 + Facing: 384 + Location: 38,23 + Actor955: trike + Owner: Multi0 + Facing: 384 + Location: 39,24 + Actor956: trike + Owner: Multi0 + Facing: 384 + Location: 39,26 + Actor957: trike + Owner: Multi0 + Facing: 384 + Location: 36,26 + Actor958: trike + Owner: Multi0 + Facing: 384 + Location: 36,24 + Actor959: refinery + Owner: Multi0 + Location: 33,19 + Actor960: trike + Owner: Multi0 + Facing: 384 + Location: 34,18 + Actor961: trike + Owner: Multi0 + Facing: 384 + Location: 36,19 + Actor962: trike + Owner: Multi0 + Facing: 384 + Location: 36,21 + Actor963: trike + Owner: Multi0 + Facing: 384 + Location: 34,22 + Actor964: trike + Owner: Multi0 + Facing: 384 + Location: 32,20 + Actor965: devastator + Owner: Multi0 + Facing: 384 + Location: 26,36 + Actor966: devastator + Owner: Multi0 + Facing: 384 + Location: 19,31 + Actor967: heavy_factory + Owner: Multi0 + Location: 25,18 + Actor968: trike + Owner: Multi0 + Facing: 384 + Location: 24,21 + Actor969: trike + Owner: Multi0 + Facing: 384 + Location: 27,18 + Actor970: trike + Owner: Multi0 + Facing: 384 + Location: 25,18 + Actor971: trike + Owner: Multi0 + Facing: 384 + Location: 28,21 + Actor972: trike + Owner: Multi0 + Facing: 384 + Location: 26,21 + Actor973: light_factory + Owner: Multi0 + Location: 31,15 + Actor974: trike + Owner: Multi0 + Facing: 384 + Location: 32,17 + Actor975: trike + Owner: Multi0 + Facing: 384 + Location: 34,16 + Actor976: trike + Owner: Multi0 + Facing: 384 + Location: 30,16 + Actor977: trike + Owner: Multi0 + Facing: 384 + Location: 32,14 + Actor783: trike + Owner: Creeps + Facing: 384 + Location: 44,49 + Actor784: trike + Owner: Creeps + Facing: 384 + Location: 45,49 + Actor791: trike + Owner: Creeps + Facing: 384 + Location: 46,49 + Actor792: light_inf + Owner: Multi0 + SubCell: 3 + Facing: 384 + Location: 43,43 + Actor796: light_inf + Owner: Multi0 + Facing: 384 + Location: 43,43 + SubCell: 1 + Actor800: light_inf + Owner: Multi0 + Facing: 384 + Location: 43,43 + SubCell: 2 + Actor801: light_inf + Owner: Multi0 + Facing: 384 + Location: 43,43 + SubCell: 4 + Actor802: light_inf + Owner: Multi0 + Facing: 384 + Location: 43,43 + SubCell: 5 + Actor803: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,43 + SubCell: 3 + Actor804: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,43 + SubCell: 1 + Actor808: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,43 + SubCell: 2 + Actor810: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,43 + SubCell: 4 + Actor814: light_inf + Owner: Multi0 + Facing: 384 + Location: 44,43 + SubCell: 5 + Actor815: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,43 + SubCell: 3 + Actor817: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,43 + SubCell: 1 + Actor820: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,43 + SubCell: 2 + Actor821: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,43 + SubCell: 4 + Actor823: light_inf + Owner: Multi0 + Facing: 384 + Location: 45,43 + SubCell: 5 + Actor895: light_inf + Owner: Multi0 + Facing: 384 + SubCell: 3 + Location: 46,43 + Actor896: light_inf + Owner: Multi0 + Facing: 384 + Location: 46,43 + SubCell: 1 + Actor897: light_inf + Owner: Multi0 + Facing: 384 + Location: 46,43 + SubCell: 2 + Actor898: sonic_tank + Owner: Multi0 + Location: 43,27 + Facing: 103 + Actor983: sonic_tank + Owner: Multi0 + Location: 44,27 + Facing: 31 + Health: 3 + Actor984: sonic_tank + Owner: Multi0 + Location: 45,27 + Facing: 1023 + Actor985: sonic_tank + Owner: Multi0 + Location: 46,27 + Facing: 943 + Actor986: sonic_tank + Owner: Multi0 + Location: 47,27 + Facing: 888 + Actor987: sonic_tank + Owner: Multi0 + Location: 43,28 + Facing: 174 + Actor988: sonic_tank + Owner: Multi0 + Location: 43,29 + Facing: 253 + Actor989: sonic_tank + Owner: Multi0 + Location: 43,30 + Facing: 325 + Actor990: sonic_tank + Owner: Multi0 + Facing: 384 + Location: 43,31 + Actor991: sonic_tank + Owner: Multi0 + Location: 45,31 + Facing: 507 + Actor992: sonic_tank + Owner: Multi0 + Location: 44,31 + Facing: 475 + Actor993: sonic_tank + Owner: Multi0 + Location: 46,31 + Facing: 578 + Actor994: sonic_tank + Owner: Multi0 + Location: 47,31 + Facing: 650 + Actor995: sonic_tank + Owner: Multi0 + Location: 47,30 + Facing: 689 + Actor996: sonic_tank + Owner: Multi0 + Location: 47,29 + Facing: 777 + Actor997: sonic_tank + Owner: Multi0 + Location: 47,28 + Facing: 816 + +Rules: Enhanced_Units09.yaml, Enhanced_Starport09.yaml, Enhanced_Structures09.yaml, Enhanced_World09.yaml, Enhanced_Misc.yaml, Enhanced_AI.yaml, Enhanced_palettes.yaml, NewTiles.yaml, NeutralBuildings.yaml + +Sequences: EnhancedSequences.yaml, Sequences_newTiles.yaml + +Weapons: Enhanced_Weapons09.yaml, Enhanced_WeaponsFX.yaml + +Voices: Enhanced_voices.yaml + +Notifications: Enhanced_notifications.yaml diff --git a/mods/d2k/maps/01scriptrework/scripts_new.lua b/mods/d2k/maps/01scriptrework/scripts_new.lua new file mode 100644 index 000000000000..8499fb788b1a --- /dev/null +++ b/mods/d2k/maps/01scriptrework/scripts_new.lua @@ -0,0 +1,989 @@ +BotPlayers = {} +IsAnyBotsHere = false +CurrentConyards = {} +CheckPlayerTechtree = false +ActivePlayers = {} +PlayersThatNotchoosedyet = 0 --Numbver of players that didnt choose any subfaction yet +FactionsMode = 0 -- default Faction mode: vannila +local CallAirstrike -- must be local fuction. otherwise it crash when multiple AirStrikes are called at ones. +ActorRegister={} +--Airstrike variables +SquadSpamDelay = 0 -- Spam delay betwwen every Aircraft. Use when Useoffest is false, else 0 +SpamWposOffsets = {-1256, 0, 1256} -- offset for each aircraft +Useoffest = true -- if false Air sqad will span in line. !!! If false SquadSpamDelay must be least 5 !!!! +ReinforcementSquads = { + {"light_inf.vet4","light_inf.vet3","light_inf.vet3","trooper.vet2","trooper.vet2"}, + {"light_inf.vet3", "light_inf.vet3", "trooper.vet2", "trooper.vet2", "trooper.vet2"}, + {"mpsardaukar.level3","mpsardaukar.level2","light_inf.vet4", "trooper.vet2", "mpsardaukar.level2"}, + {"mercenary","mercenary","mercenary","mercenary","mercenary"} +} +--different Squads for different Factons 1.Atreides, 2. Ordos 3. Harkonnen +AirSquads = { + {"ornithopter_a","ornithopter_a", "ornithopter_a"}, + {"ornithopter_a","ornithopter_a"}, + {"ornithopter_o", "ornithopter_o", "ornithopter_o"} +} +DropActor = {"carryall.reinforce_with_sound", "carryall.reinforce_with_sound", "frigate.harkonnen_cargo"} + +SubfactionPrerequisitesList = {} +SubfactionPrerequisitesList["atreides"] = "subfaction.atreides" +SubfactionPrerequisitesList["fremen"] = "subfaction.fremen" +SubfactionPrerequisitesList["harkonnen"] = "subfaction.harkonnen" +SubfactionPrerequisitesList["corrino"] = "subfaction.corrino" +SubfactionPrerequisitesList["ordos"] = "subfaction.ordos" +SubfactionPrerequisitesList["smuggler"] = "subfaction.smuggler" +SubfactionPrerequisitesList["mercenary"] = "subfaction.mercenary" +Mergedsubfactions = { "merged.fremen","merged.corrino","merged.smuggler", "merged.mercenary"} + +-- Experimental Starport variables - limited to 24 players +FrigateDeliveryDelay = 1500 --how much time to wait until frigate arrives +FrigateCapacity = 5 -- must be set as: n -1 +StarportUnits = {} +StarportUnits["Multi0"] = {} +StarportUnits["Multi1"] = {} +StarportUnits["Multi2"] = {} +StarportUnits["Multi3"] = {} +StarportUnits["Multi4"] = {} +StarportUnits["Multi5"] = {} +StarportUnits["Multi6"] = {} +StarportUnits["Multi7"] = {} +StarportUnits["Multi8"] = {} +StarportUnits["Multi9"] = {} +StarportUnits["Multi10"] = {} +StarportUnits["Multi11"] = {} +StarportUnits["Multi12"] = {} +StarportUnits["Multi13"] = {} +StarportUnits["Multi14"] = {} +StarportUnits["Multi15"] = {} +StarportUnits["Multi16"] = {} +StarportUnits["Multi17"] = {} +StarportUnits["Multi18"] = {} +StarportUnits["Multi19"] = {} +StarportUnits["Multi20"] = {} +StarportUnits["Multi21"] = {} +StarportUnits["Multi22"] = {} +StarportUnits["Multi23"] = {} +RevokeTokens = {} --isFull and notEmpty revoke tokens +RevokeTokens["Multi0"] = {} +RevokeTokens["Multi1"] = {} +RevokeTokens["Multi2"] = {} +RevokeTokens["Multi3"] = {} +RevokeTokens["Multi4"] = {} +RevokeTokens["Multi5"] = {} +RevokeTokens["Multi6"] = {} +RevokeTokens["Multi7"] = {} +RevokeTokens["Multi8"] = {} +RevokeTokens["Multi9"] = {} +RevokeTokens["Multi10"] = {} +RevokeTokens["Multi11"] = {} +RevokeTokens["Multi12"] = {} +RevokeTokens["Multi13"] = {} +RevokeTokens["Multi14"] = {} +RevokeTokens["Multi15"] = {} +RevokeTokens["Multi16"] = {} +RevokeTokens["Multi17"] = {} +RevokeTokens["Multi18"] = {} +RevokeTokens["Multi19"] = {} +RevokeTokens["Multi20"] = {} +RevokeTokens["Multi21"] = {} +RevokeTokens["Multi22"] = {} +RevokeTokens["Multi23"] = {} +DummyActors = {} -- used for icons overiddes +DummyActors["Multi0"] = {} +DummyActors["Multi1"] = {} +DummyActors["Multi2"] = {} +DummyActors["Multi3"] = {} +DummyActors["Multi4"] = {} +DummyActors["Multi5"] = {} +DummyActors["Multi6"] = {} +DummyActors["Multi7"] = {} +DummyActors["Multi8"] = {} +DummyActors["Multi9"] = {} +DummyActors["Multi10"] = {} +DummyActors["Multi11"] = {} +DummyActors["Multi12"] = {} +DummyActors["Multi13"] = {} +DummyActors["Multi14"] = {} +DummyActors["Multi15"] = {} +DummyActors["Multi16"] = {} +DummyActors["Multi17"] = {} +DummyActors["Multi18"] = {} +DummyActors["Multi19"] = {} +DummyActors["Multi20"] = {} +DummyActors["Multi21"] = {} +DummyActors["Multi22"] = {} +DummyActors["Multi23"] = {} +RepairPadList = {} -- repairpad owned by Bots + +WorldLoaded = function() + --get players + mp0=Player.GetPlayer("Multi0") + mp1=Player.GetPlayer("Multi1") + mp2=Player.GetPlayer("Multi2") + mp3=Player.GetPlayer("Multi3") + mp4=Player.GetPlayer("Multi4") + mp5=Player.GetPlayer("Multi5") + mp6=Player.GetPlayer("Multi6") + mp7=Player.GetPlayer("Multi7") + mp8=Player.GetPlayer("Multi8") + mp9=Player.GetPlayer("Multi9") + mp10=Player.GetPlayer("Multi10") + mp11=Player.GetPlayer("Multi11") + mp12=Player.GetPlayer("Multi12") + mp13=Player.GetPlayer("Multi13") + mp14=Player.GetPlayer("Multi14") + mp15=Player.GetPlayer("Multi15") + mp16=Player.GetPlayer("Multi16") + mp17=Player.GetPlayer("Multi17") + mp18=Player.GetPlayer("Multi18") + mp19=Player.GetPlayer("Multi19") + mp20=Player.GetPlayer("Multi20") + mp21=Player.GetPlayer("Multi21") + mp22=Player.GetPlayer("Multi22") + mp23=Player.GetPlayer("Multi23") + mp24=Player.GetPlayer("Multi24") + mp25=Player.GetPlayer("Multi25") + mp26=Player.GetPlayer("Multi26") + mp27=Player.GetPlayer("Multi27") + Players = {mp0, mp1, mp2, mp3, mp4, mp5, mp6, mp7, mp8, mp9, mp10, mp11, mp12, mp13, mp14, mp15, mp16, mp17, mp18, mp19, mp20, mp21, mp22, mp23, mp24, mp25, mp26, mp27} + + FactionsMode = tonumber(Map.LobbyOption("fation_mode")) + if (FactionsMode == 0) then + --Media.DisplayMessage("you play with standart d2k mode", "Mentat", HSLColor.DarkRed) + end + if (FactionsMode == 1) then + Media.DisplayMessage("Sub-faction Mode - Choose between Major faction or one of its sub-factions", "Mentat", HSLColor.DarkRed) + end + if (FactionsMode == 2) then + Media.DisplayMessage("Merge Faction mode - chosen subfaction will be merged in to your Major faction","Mentat", HSLColor.DarkRed) + end + for i, player in pairs(Players) + do + -- freecarryall + if player.HasPrerequisites({"FreeCarry"}) + then + addCarryToPlayer(player) + end + -- factions option check + if (FactionsMode == 0) + then + player.GrantCondition("vanilla_factions_Only") + addmcv(player) + elseif (FactionsMode == 1) then + CheckPlayerTechtree = true + player.GrantCondition("subfactions") + botsubfaction(player) + elseif (FactionsMode == 2) then + player.GrantCondition("mergedsubfactions") + botsubfaction(player) + CheckPlayerTechtree = true + end + --adding bots to table + if player.IsBot then + table.insert(BotPlayers, player) + end + if not player.IsNonCombatant then + table.insert(ActivePlayers, player) + end + end + -- worm delay + local wormDelay = Map.LobbyOption("WormsSpawnDelay") + if tonumber(wormDelay) > 0 + then + local delay = tonumber(Map.LobbyOption("WormsSpawnDelay")) + Trigger.AfterDelay(DateTime.Minutes(delay), function() + --in teory any player can own wormspawner actor + wormSpawnFunction(Player.GetPlayer("Creeps")) + wormSpawnFunction(Player.GetPlayer("Neutral")) + for i, player in pairs(Players) + do + wormSpawnFunction(player) + end + end) + end + -- Scripts for BOTS + for i, bot in pairs(BotPlayers) + do + IsAnyBotsHere = true + FindSaboteur(bot) + end + --Production trriggers - Starport, AI Engi, AI Repairing + Trigger.OnAnyProduction( function(producer, produced, productionQueue) + local actor = produced.Type + if productionQueue == "Starport" then + if actor == "purchase.starport" then + CHOAMDelivery(produced.Owner) + -- Mercenary support power + elseif actor == "dummy_mercenary_spawnpoint" then + CHOAMDeliverCustomUnits(producer.Owner, ReinforcementSquads[4]) + produced.Destroy() + elseif actor=="dummy.trike" or actor=="dummy.quad" or actor=="dummy.harvester" or actor=="dummy.mcv" or actor=="dummy.combat_tank_a" or actor=="dummy.combat_tank_o" or actor=="dummy.combat_tank_h" or actor=="dummy.siege_tank" or actor=="dummy.missile_tank" or actor=="dummy.carryall" or actor=="dummy.combat_tank_cheap"or actor=="dummy.combat_tank_corrino" then + ExperimentalStarport(producer.Owner, produced) + end + end + if produced.Owner.IsBot then + if actor == "engineer" then + EnginnerLogic(produced) + end + if productionQueue == "Armor" or productionQueue== "Vehicle" then + CheckForRepair(produced, produced.MaxHealth, produced.Owner.InternalName) + end + end + end) +end + +function addCarryToPlayer(player) + + local actors = player.GetActorsByTypes({"mcv", "construction_yard", "choosefaction"}) + for i, actor in pairs(actors) do + if (actor.Type == "mcv") or (actor.Type == "construction_yard") or (actor.Type == "choosefaction") then + Reinforcements.Reinforce(player, { "carryall" }, { actor.Owner.HomeLocation}, 10) + return + end + end + Reinforcements.Reinforce(player, { "carryall" }, { player.HomeLocation}, 10) +end + +function wormSpawnFunction(owner) + local actorsSpawner = owner.GetActorsByType("wormspawner") + if actorsSpawner ~= nil + then + for i, spawner in pairs(actorsSpawner) + do + if spawner.AcceptsCondition("WormSpamDelayed") + then + spawner.GrantCondition("WormSpamDelayed") + end + end + end +end + + + +Tick = function() + --everything execute's one's per 2 second, because preformance :( - will case lags + if DateTime.GameTime % DateTime.Seconds(2) == 0 then + local New_actors = ActorsAddedToWorld(Map.ActorsInWorld, ActorRegister) + for _,actor in pairs(New_actors) do + local actType = actor.Type --less expensive that act.Type + -- Air support powers + if actType == "waypoint.airtstrike_a" then + CallAirstrike(actor) + end + if actType == "waypoint.airtstrike_o" then + CallAirstrike(actor) + end + if actType == "waypoint.reinforce_h" or actType == "waypoint.reinforce_o" then + DropAirReinforcements(actor) + end + if actType == "repair_pad.bot"then + RepairPadList[actor.Owner.InternalName] = actor + end + end + end + -- Bot engi protection scripts: executed ones per 2 sec. + if IsAnyBotsHere then + if DateTime.GameTime % DateTime.Seconds(2) == 0 then + findConyards() + engiProtection() + end + end + -- check if player already choose subfaction + if(CheckPlayerTechtree == true and PlayersThatNotchoosedyet > 0) then + -- Media.DisplayMessage("cheking") + techtreecheck() + end + +end + +------------------------- +--FactionsModes Scripts-- +------------------------- +function addmcv(player) + local actors = player.GetActorsByType("choosefaction") + for pom, actor in pairs(actors) do + local mcv = Actor.Create("mcv", true, { Owner = player, Facing = Angle.SouthWest, Location = actor.Location}) + actor.Kill(); + if player.IsBot then + mcv.Deploy() + end + end +end + +function techtreecheck() + for i, player in pairs(Players) do + local actors = player.GetActorsByType("choosefaction") + if FactionsMode == 1 then + for faction, prerequisite in pairs(SubfactionPrerequisitesList) do + if player.HasPrerequisites({prerequisite}) then + for pom, actor in pairs(actors) do + Actor.Create("mcv", true, { Owner = player, Facing = Angle.North, Location = actor.Location, Faction = faction}) + actor.Kill(); + PlayersThatNotchoosedyet = PlayersThatNotchoosedyet - 1 + --Media.DisplayMessage("Subfaction choosed", tostring(PlayersThatNotchoosedyet)) + end + end + end + elseif FactionsMode == 2 then + for faction, prerequisite in pairs(Mergedsubfactions) do + if player.HasPrerequisites({prerequisite}) then + for pom, actor in pairs(actors) do + Actor.Create("mcv", true, { Owner = player, Facing = Angle.North, Location = actor.Location, Faction = player.Faction}) + actor.Kill(); + PlayersThatNotchoosedyet = PlayersThatNotchoosedyet - 1 + --Media.DisplayMessage("Subfaction choosed Remaining"..tostring(PlayersThatNotchoosedyet)) + end + end + end + end + end +end + +function botsubfaction(player) + if(not player.IsBot) + then + PlayersThatNotchoosedyet = PlayersThatNotchoosedyet + 1 + --Media.DisplayMessage("got the player",tostring(PlayersThatNotchoosedyet) ) + else + local bluefactions = {"atreides", "fremen"} + local redfactions = {"harkonnen", "corrino"} + local greenfactions = {"ordos", "smuggler", "mercenary"} + local faction = {} + local actors = player.GetActorsByType("choosefaction") + if (FactionsMode == 1) then + if player.Faction == "atreides" then + faction = bluefactions + end + if player.Faction == "harkonnen" then + faction = redfactions + end + if player.Faction == "ordos" then + faction = greenfactions + end + --Media.DisplayMessage("got the bot") + for pom, actor in pairs(actors) do + local mcv = Actor.Create("mcv", true, { Owner = player, Facing = Angle.North, Location = actor.Location, Faction = Utils.Random(faction)}) + actor.Kill(); + if player.IsBot then + mcv.Deploy() + end + end + else + faction = player.Faction + for pom, actor in pairs(actors) do + local mcv = Actor.Create("mcv", true, { Owner = player, Facing = Angle.North, Location = actor.Location, Faction = player.Faction}) + Actor.Create( Utils.Random(Mergedsubfactions), true, { Owner = player, Facing = Angle.North, Location = actor.Location, Faction = player.Faction}) + actor.Kill(); + if player.IsBot then + mcv.Deploy() + end + end + end + end +end + +----------------------------------- +---AI protection against engineer-- +----------------------------------- + +function engiProtection() + for i, conyard in pairs(CurrentConyards) do + if conyard.IsDead then + --Media.DisplayMessage("conyard dead") + else + actorsInRadius = Map.ActorsInCircle(conyard.CenterPosition, WDist.New(3036)) + local owner = conyard.Owner + for _, actor in pairs(actorsInRadius) do + if actor.Type == "engineer" and not owner.IsAlliedWith(actor.Owner) then + --Media.DisplayMessage(actor.Type) + conyard.Sell() + --CurrentConyards[i] = nil + end + end + end + end +end + +function findConyards() + local newConyards = {} + for i, bot in pairs(BotPlayers) + do + local conyards = bot.GetActorsByType("construction_yard") + for _, conyard in pairs(conyards) do + table.insert(newConyards, conyard) + end + end + CurrentConyards = newConyards +end +----------------------------- +---AI scripts--engi/Saboteur/repairing +----------------------------- + +function CheckForRepair(actor, maxHP, internalName) + Trigger.AfterDelay(300, function() + if not actor.IsDead then + if maxHP * 0.4 > actor.Health then + if RepairPadList[internalName] ~= nil then + if not RepairPadList[internalName].IsDead then + local token = actor.GrantCondition("reject_control", 3000) -- if unit stuck, expire after 3000 ticks + --Media.Debug("send to repair_pad "..tostring(actor)) + actor.Stop() + actor.Move(RepairPadList[internalName].Location + CVec.New(1,1), 2) + actor.CallFunc(function () + if not actor.IsDead then + actor.RevokeCondition(token) + CheckForRepair(actor, maxHP, internalName) + end + end) + end + else + CheckForRepair(actor, maxHP, internalName) + end + else + CheckForRepair(actor, maxHP, internalName) + end + end + end) +end + +EnginnerLogic = function(enginner) + if enginner.HasTag("close_target") == false then + local closeActors = Map.ActorsInCircle(enginner.CenterPosition, WDist.FromCells(15)) + local targets = Utils.Where(closeActors, function(actor) + return + actor.HasProperty("Capture") and + actor.Type ~= "wall" and + actor.Type ~= "medium_gun_turret" and + actor.Type ~= "large_gun_turret" and + actor.Type ~= "engineer" and + actor.Type ~= "silo" and not + enginner.Owner.IsAlliedWith(actor.Owner) + end) + if targets[1] ~= nil then + local token = enginner.GrantCondition("reject_control") + enginner.Stop() + local target = Utils.Random(targets) + enginner.Capture(target) + enginner.AddTag("close_target") + --Media.Debug("redirection to close target"..tostring(enginner)) + enginner.CallFunc( function () + if enginner.IsDead == false then + --Media.Debug("cancel, target destroyed"..tostring(enginner)) + enginner.RevokeCondition(token) + enginner.RemoveTag("close_target") + end + end) + end + end + Trigger.AfterDelay(500, function() + if enginner.IsDead == false then + EnginnerLogic(enginner) + end + end) +end + +FindCloseTarget = function (saboteur, distance) + local closeActors = Map.ActorsInCircle(saboteur.CenterPosition, WDist.FromCells(distance)) + return Utils.Where(closeActors, function(actor) + return + actor.HasProperty("Sell") and + actor.Type ~= "wall" and + actor.Type ~= "medium_gun_turret" and + actor.Type ~= "large_gun_turret" and + actor.Type ~= "silo" and not + saboteur.Owner.IsAlliedWith(actor.Owner) and not + actor.Owner.IsNonCombatant + end) +end + +FindAnyTarget = function (saboteur) + local filteredPlayers = FilterPlayers(saboteur.Owner) + if filteredPlayers[1] == nil then + -- no suitable players for targeting + return nil + end + local randomplayer = Utils.Random(filteredPlayers) + if randomplayer ~= nil then + local suitableActors = Utils.Where(randomplayer.GetActors(), function(actor) + return + actor.HasProperty("Sell") and + actor.Type ~= "wall" and + actor.Type ~= "medium_gun_turret" and + actor.Type ~= "large_gun_turret" and + actor.Type ~= "silo" + end) + if (next(suitableActors) ~= nil) then + return suitableActors + else + -- case when random player is dead or have no buildings + return nil + end + else + -- case when no suitable players found + return nil + end +end + +FindSaboteur = function(bot) + local saboteurs = bot.GetActorsByType("saboteur") + for i, saboteur in pairs(saboteurs) do + if saboteur.HasTag("close_target") == false and saboteur.HasTag("random_target") == false then + local targets = FindCloseTarget(saboteur, 15) + if (next(targets) ~= nil) then + saboteur.AddTag("close_target") + SendSaboteur(saboteur, targets) + else + targets = FindAnyTarget(saboteur) + if targets ~= nil then + saboteur.AddTag("random_target") + SendSaboteur(saboteur, targets) + end + end + elseif not saboteur.HasTag("close_target") and saboteur.HasTag("random_target") then + local targets = FindCloseTarget(saboteur, 15) + if (next(targets) ~= nil) then + saboteur.AddTag("close_target") + SendSaboteur(saboteur, targets) + end + end + end + Trigger.AfterDelay(400, function () + FindSaboteur(bot) end) +end + +SendSaboteur = function(saboteur, targets) + if targets == nil then + --Media.Debug("no targets for", saboteur.Owner.Name) + saboteur.RemoveTag("close_target") + saboteur.RemoveTag("random_target") + return + end + saboteur.Stop() + local target = Utils.Random(targets) + saboteur.Demolish(target) +-- 'target' was removed from the world in the meantime + saboteur.CallFunc(function() + saboteur.RemoveTag("close_target") + saboteur.RemoveTag("random_target") + end) +end + +function FilterPlayers(forPlayer) + local filteredPlayers = ActivePlayers + for i, player in pairs(filteredPlayers) do + if forPlayer.IsAlliedWith(player) or forPlayer.InternalName == player.InternalName then + table.remove(filteredPlayers, i) + end + end + return filteredPlayers +end + +------------------------------------------------------------ +--Experimental starport---Original D2k Starport behaviour--- +------------------------------------------------------------ + +function ExperimentalStarport(player, dummy) + local playerInternalName = player.InternalName + local unit = dummy.Type + local cutDummyFromString = unit:sub(7, #unit) + -- Icons number Overlays + table.insert(DummyActors[playerInternalName], dummy) + if #DummyActors[playerInternalName] > FrigateCapacity + 1 then + --Media.Debug("Index above Fridate capacity, unit rejected "..playerInternalName) + return + end + dummy.GrantCondition("order_"..tostring(#DummyActors[playerInternalName])) + -- remove not needed number in icon + for i, dummyActor in pairs(DummyActors[playerInternalName]) do + if dummyActor.Type == unit and i < #DummyActors[playerInternalName] then + dummyActor.RevokeCondition(1) + end + end + if not player.HasPrerequisites({"frigate.not_empty"}) then + local token = player.GrantCondition("frigate_not_empty") + table.insert(RevokeTokens[playerInternalName], token) + end + -- add unit to the Shopping list + if StarportUnits[playerInternalName] == nil then + table.insert(StarportUnits[playerInternalName], cutDummyFromString) + elseif #StarportUnits[playerInternalName] < FrigateCapacity then + table.insert(StarportUnits[playerInternalName], cutDummyFromString) + elseif #StarportUnits[playerInternalName] == FrigateCapacity then + table.insert(StarportUnits[playerInternalName], cutDummyFromString) + local token = player.GrantCondition("frigate_full") + table.insert(RevokeTokens[playerInternalName], token) + --for i, name in pairs(StarportUnits[playerInternalName]) do + -- Media.Debug(name.." shoping list") + --end + else + --Media.Debug("Frigate full - unit rejected"..player.Name) + local token = player.GrantCondition("frigate_full") + table.insert(RevokeTokens[playerInternalName], token) + end +end + +function SelectStarport(player) + local chosenStarport + for i, starport in pairs(player.GetActorsByTypes({"starport","merged.starport","merged.starport_smuggler"})) do + if not starport.IsDead then + if starport.IsPrimaryBuilding then + return starport + else + chosenStarport = starport + end + end + end + return chosenStarport +end + +function CHOAMDelivery(player) + DeliveryNotifications(player) + Trigger.AfterDelay(FrigateDeliveryDelay, function () + --Media.Debug("starting delivery process") + local starport = SelectStarport(player) + if starport == nil then + --Media.Debug("Error, cant find any starport. Starport reset"..player.Name) + ResetStartport(player) + return + end + local rallypoint = starport.RallyPoint + local path = {Map.ClosestEdgeCell(starport.Location),starport.Location + CVec.New(1,1)} + local airUnits = FilterAirUnits(player.InternalName) + --wait for Choam to come + local units = Reinforcements.ReinforceWithTransport(player,"frigate_choam",StarportUnits[player.InternalName], path,{path[2], path[1]}) + local frigate = units[1] + Reinforcements.Reinforce(player, airUnits,path) + -- when killed or deliver finish remove Frigade and reset Starport settings + Trigger.OnRemovedFromWorld(starport, function() + --Media.Debug("Starport removed redirecting order "..frigate.Type) + local starport_new = SelectStarport(player) + if starport_new == nil then + if not frigate.IsDead then + --Media.Debug("no more starports, canceling order"..player.Name) + frigate.Stop() + frigate.Move(path[1]) + end + else + -- Media.Debug("Starport removed redirecting order "..frigate.Type) + if not frigate.IsDead then + frigate.Stop() + rallypoint = starport_new.RallyPoint + frigate.Move(starport_new.Location + CVec.New(1,1)) + frigate.UnloadPassengers() + else + --Media.Debug("Cant redirect, frigate is dead"..player.Name) + end + end + end) + -- when killed or deliver finish. Remove Frigade and reset Starport settings + Trigger.OnRemovedFromWorld(frigate, function() + ResetStartport(player) + if not starport.IsDead then + Trigger.ClearAll(starport) + end + end) + --in case frigate stuck + Trigger.OnIdle(frigate, function() + frigate.UnloadPassengers() + end) + Trigger.OnPassengerExited(frigate, + function(carry, pass) + Media.PlaySpeechNotification(carry.Owner,"Reinforce") + if pass ~= nil then + -- triggered when actor is in the world (dont use OnAddedToWorld triger!!!) + Trigger.AfterDelay(10, function() + if pass.HasProperty("AttackMove") then + pass.AttackMove(rallypoint,1) + elseif pass.HasProperty("FindResources") then + pass.Move(rallypoint) + pass.FindResources() + elseif pass.HasProperty("Move") then + pass.Move(rallypoint) + end + end) + end + end) + end) +end + +function ResetStartport(player) + local playerInternalName = player.InternalName + if RevokeTokens[playerInternalName][1] ~= nil then + player.RevokeCondition(RevokeTokens[player.InternalName][1]) + RevokeTokens[playerInternalName][1] = nil + end + if RevokeTokens[playerInternalName][2] ~= nil then + player.RevokeCondition(RevokeTokens[player.InternalName][2]) + RevokeTokens[playerInternalName][1] = nil + end + for i, dummy in pairs(DummyActors[playerInternalName]) do + --edge case check. when player surrender while delivery is in progress + if not dummy.IsDead then + dummy.Destroy() + end + end + DummyActors[playerInternalName] = {} + RevokeTokens[playerInternalName] = {} + StarportUnits[playerInternalName] = {} + local purchaseActors = player.GetActorsByType("purchase.starport") + if purchaseActors[1] ~= nil then + purchaseActors[1].Destroy() + end +end + +function FilterAirUnits(playerInternalName) + local airUnits = {} + for i,unit in pairs(StarportUnits[playerInternalName]) do + if unit == "carryall" then + --Media.Debug("removing carryall") + StarportUnits[playerInternalName][i] = nil + table.insert(airUnits, "carryall") + end + end + return airUnits +end + +function DeliveryNotifications(player) + Media.PlaySpeechNotification(player,"OrderPlaced") + local time = 0 + local timeBetweenNotifications = FrigateDeliveryDelay / 5 + time = time + timeBetweenNotifications + Trigger.AfterDelay(time -15, function() + Media.PlaySpeechNotification(player,"TMinusFive") + end) + time = time + timeBetweenNotifications + Trigger.AfterDelay(time, function() + Media.PlaySpeechNotification(player,"TMinusFour") + end) + time = time + timeBetweenNotifications + Trigger.AfterDelay(time, function() + Media.PlaySpeechNotification(player,"TMinusThree") + end) + time = time + timeBetweenNotifications + Trigger.AfterDelay(time, function() + Media.PlaySpeechNotification(player,"TMinusTwo") + end) + time = time + timeBetweenNotifications + Trigger.AfterDelay(time, function() + Media.PlaySpeechNotification(player,"TMinusOne") + end) + +end + +-- Reinforcements via Starport + +function CHOAMDeliverCustomUnits(player, squad) + local starport = SelectStarport(player) + --Media.Debug("Starting custom units delivery "..player.InternalName) + if starport == nil then + --Media.Debug("Error, cant find any starport. Starport reset"..player.Name) + ResetStartport(player) + return + end + local rallypoint = starport.RallyPoint + local path = {Map.ClosestEdgeCell(starport.Location),starport.Location + CVec.New(1,1)} + local airUnits = FilterAirUnits(player.InternalName) + --wait for Choam to come + local units = Reinforcements.ReinforceWithTransport(player,"frigate_choam",squad, path,{path[2], path[1]}) + local frigate = units[1] + Reinforcements.Reinforce(player, airUnits,path) + -- when killed or deliver finish remove Frigade and reset Starport settings + Trigger.OnRemovedFromWorld(starport, function() + --Media.Debug("Starport removed redirecting order "..frigate.Type) + local starport_new = SelectStarport(player) + if starport_new == nil then + if not frigate.IsDead then + --Media.Debug("no more starports canceling order"..player.Name) + frigate.Stop() + frigate.Move(path[1]) + end + else + -- Media.Debug("Starport removed redirecting order "..frigate.Type) + if not frigate.IsDead then + frigate.Stop() + frigate.Move(starport_new.Location + CVec.New(1,1)) + frigate.UnloadPassengers() + end + end + end) + --in case frigate stuck + Trigger.OnIdle(frigate, function() + frigate.UnloadPassengers() + end) + Trigger.OnPassengerExited(frigate, + function(carry, pass) + if pass ~= nil then + Trigger.AfterDelay(10, function() + if pass.HasProperty("Move") then + pass.Move(rallypoint) + end + end) + end + end) +end +------------------------------- +-- Multi pass Airstrikes - +--warring use only as local function (global function can crash) +-------------------------------- +CallAirstrike = function(dummy) + local dummyPosition = dummy.Location + local spawnEdgeCell = Map.ClosestEdgeCell(dummyPosition) + local angle = CalculateBestAngle(spawnEdgeCell) + local wposDummyLocation = Map.CenterOfCell(dummyPosition) + Beacon.New(dummy.Owner,wposDummyLocation, 250) + local wposAirCraftSpawnLocation = Map.CenterOfCell(spawnEdgeCell) + local airUnits = GiveAirSquad(dummy.Type) + local squadRefference = {} + local dummyRefference = {} + local pon = 1 + local arrayLenght = #SpamWposOffsets + 1 + -- calculate WPos offset for every aircraft + while pon <= #airUnits do + local newLocation + if Useoffest == true then + if angle == Angle.West or angle == Angle.East then + newLocation =WPos.New( wposDummyLocation.X + SpamWposOffsets[arrayLenght - pon], wposDummyLocation.Y+SpamWposOffsets[pon], 0) + else + newLocation =WPos.New( wposDummyLocation.X + SpamWposOffsets[pon], wposDummyLocation.Y+SpamWposOffsets[pon], 0) + end + else + newLocation = wposDummyLocation + end + dummyRefference[pon] = Actor.Create("dummy.generic",true, {Owner = dummy.Owner, CenterPosition = newLocation,Location }) + pon = pon + 1 + end + --Media.Debug("calling Airstrike"..tostring(spawnPosition.X).." , "..tostring(spawnPosition.Y)) + -- calculate squadron + for i, actorName in pairs(airUnits) do + local spamDelay = i * SquadSpamDelay + Trigger.AfterDelay(spamDelay, function() + local airUnit + local finalWposPosition + if angle == Angle.West or angle == Angle.East then + finalWposPosition = wposAirCraftSpawnLocation + WVec.New(SpamWposOffsets[arrayLenght - i], SpamWposOffsets[i], Actor.CruiseAltitude(actorName)) + else + finalWposPosition = wposAirCraftSpawnLocation + WVec.New(SpamWposOffsets[i], SpamWposOffsets[i], Actor.CruiseAltitude(actorName)) + end + if Useoffest == true then + airUnit = Actor.Create(actorName ,true, {Owner = dummy.Owner ,Facing = angle, CenterPosition = finalWposPosition }) + airUnit.Attack(dummyRefference[i], true, true) + else + airUnit = Actor.Create(actorName ,true, {Owner = dummy.Owner, Location = spawnEdgeCell, Facing = angle}) + airUnit.Attack(dummyRefference[i], true, true) + end + table.insert(squadRefference, airUnit) + LeaveOnEmpty(airUnit) + end) + end + Trigger.AfterDelay(SquadSpamDelay + 1 * 5, function() + Trigger.OnAllRemovedFromWorld(squadRefference, function () + -- edge case check. if player surrender while airstrike is in progress -> crash + if not dummy.IsDead then + dummy.Destroy() + for i, dummy_generic in pairs(dummyRefference) do + dummy_generic.Kill() + end + end + end) + end) +end + +function LeaveOnEmpty(unit) + if not unit.IsDead then + if unit.AmmoCount("primary") < 1 then + unit.Stop() + local position = Map.ClosestEdgeCell(unit.Location) + unit.Move(position) + unit.Destroy() + else + Trigger.AfterDelay(30, function() + LeaveOnEmpty(unit) + end) + end + end +end + +function CalculateBestAngle(position) + if position.X <= 2 then + return Angle.East + elseif position.Y <= 2 then + return Angle.South + elseif position.X < position.Y then + return Angle.North + else + return Angle.West + end +end + + +function GiveAirSquad(faction) + if faction == "waypoint.airtstrike_a" then + --Media.DisplayMessage("atreides squad") + return AirSquads[1] + elseif faction == "waypoint.airtstrike_h"then + return AirSquads[2] + elseif faction == "waypoint.airtstrike_o"then + return AirSquads[3] + end +end +---------------------- +---Air Reinforcements- +---------------------- +function DropAirReinforcements(dummy) + local squad + if dummy.Type=="waypoint.reinforce_a" then squad=1 + elseif dummy.Type=="waypoint.reinforce_o" then squad=2 + elseif dummy.Type=="waypoint.reinforce_h" then squad=3 + end + --Carryall reinforcements + local spawnCell = GetSpawnPoint(dummy) + local path = {spawnCell,dummy.Location} + local exitPath = {dummy.Location, Map.ClosestEdgeCell(dummy.Location) } + --Media.Debug("reinforcements on the way"..dummy.Owner.InternalName) + Beacon.New(dummy.Owner,Map.CenterOfCell(dummy.Location)) + local units = Reinforcements.ReinforceWithTransport(dummy.Owner,DropActor[squad] , ReinforcementSquads[squad], path, exitPath, nil, nil, 5) + local carryall = units[1] + Trigger.OnIdle(carryall, function() + carryall.UnloadPassengers() + + end) + Trigger.OnPassengerExited(carryall, + function(carry, pass) + if not carry.HasPassengers + then + carry.Stop() + carry.Move(path[1]) + carry.Destroy() + end + end + ) +end + +function GetSpawnPoint(dummy) + local buildings = dummy.Owner.GetActorsByType("high_tech_factory") + for i, building in pairs(buildings) do + if building.IsPrimaryBuilding then + return Map.ClosestEdgeCell(building.Location) + end + end + if (buildings[1].Location ~= nil) then + return Map.ClosestEdgeCell(buildings[1].Location) + else + return dummy.Owner.HomeLocation + end +end + +-- adds new actors into the list (used only in tick function) + +function ActorsAddedToWorld(newlist,register) + local new_actor_list={} + for key,act in pairs(newlist) + do + if not register[tostring(act)] + then + register[tostring(act)]=true + table.insert(new_actor_list,act) + end + end + return new_actor_list +end \ No newline at end of file diff --git a/mods/d2k/maps/01scriptrework/temperat.pal b/mods/d2k/maps/01scriptrework/temperat.pal new file mode 100644 index 000000000000..bb63fcdd5049 Binary files /dev/null and b/mods/d2k/maps/01scriptrework/temperat.pal differ