commit 6c6fea68b2d8fcdc83bdb0f5cc31d951b5483082 Author: patto Date: Wed Jun 12 22:20:51 2024 +0100 first commit version 20 diff --git a/AI_READY.AUD b/AI_READY.AUD new file mode 100644 index 0000000..c5eff01 Binary files /dev/null and b/AI_READY.AUD differ diff --git a/AMBUSH.wav b/AMBUSH.wav new file mode 100644 index 0000000..00d791f Binary files /dev/null and b/AMBUSH.wav differ diff --git a/ARAKATAK.wav b/ARAKATAK.wav new file mode 100644 index 0000000..2e55666 Binary files /dev/null and b/ARAKATAK.wav differ diff --git a/ATREGAIN.wav b/ATREGAIN.wav new file mode 100644 index 0000000..955e3ea Binary files /dev/null and b/ATREGAIN.wav differ diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 0000000..982d4d0 --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,60 @@ + +**** 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/Credits.txt b/Credits.txt new file mode 100644 index 0000000..f055075 --- /dev/null +++ b/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/D2k.pal b/D2k.pal new file mode 100644 index 0000000..01b5bab Binary files /dev/null and b/D2k.pal differ diff --git a/ENTORDOS.wav b/ENTORDOS.wav new file mode 100644 index 0000000..c0c6c16 Binary files /dev/null and b/ENTORDOS.wav differ diff --git a/EnhacedAssets.R8 b/EnhacedAssets.R8 new file mode 100644 index 0000000..acc5a5c Binary files /dev/null and b/EnhacedAssets.R8 differ diff --git a/EnhancedAssets_2.R8 b/EnhancedAssets_2.R8 new file mode 100644 index 0000000..4bef183 Binary files /dev/null and b/EnhancedAssets_2.R8 differ diff --git a/EnhancedSequences.yaml b/EnhancedSequences.yaml new file mode 100644 index 0000000..9602e83 --- /dev/null +++ b/EnhancedSequences.yaml @@ -0,0 +1,3679 @@ +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 + AtAirDrop: + Filename: ebassets.R8 + Start: 0 + Offset: -30,-24 + OrAirDrop: + Filename: ebassets.R8 + Start: 1 + 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: -5 + 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 + 7: + Filename: DATA.R8 + Start: 24 + 8: + Filename: DATA.R8 + Start: 25 + 9: + Filename: DATA.R8 + Start: 26 +# +# 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: + 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_slow: + Defaults: + Tick: 80 + 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 +# +# 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 +# + + +mcv.husk: + idle: + Filename: DATA.R8 + Start: 1795 + Facings: -32 + ZOffset: -1023 + +harvester: + idle: + Filename: DATA.R8 + Start: 1699 + Facings: -32 + harvest: + Filename: DATA.R8 + Start: 3884 + Length: 6 + Facings: -8 + Tick: 80 + ZOffset: 1 + BlendMode: Multiply + dock: + Filename: DATA.R8 + Start: 3623 + Length: 10 + dock-loop: + Filename: DATA.R8 + Start: 3633 + icon: + Filename: DATA.R8 + Start: 4280 + Offset: -30,-24 + + +harvester_upgraded: + idle: + Filename: DATA.R8 + Start: 1699 + Facings: -32 + harvest: + Filename: DATA.R8 + Start: 3884 + Length: 6 + Facings: -8 + Tick: 80 + ZOffset: 1 + BlendMode: Multiply + dock: + Filename: DATA.R8 + Start: 3623 + Length: 10 + dock-loop: + Filename: DATA.R8 + Start: 3633 + icon: + Filename: DATA.R8 + Start: 4280 + Offset: -30,-24 + +harvester.eco: + idle: + Filename: DATA.R8 + Start: 1699 + Facings: -32 + harvest: + Filename: DATA.R8 + Start: 3884 + Length: 6 + Facings: -8 + Tick: 80 + ZOffset: 1 + BlendMode: Multiply + dock: + Filename: DATA.R8 + Start: 3623 + Length: 10 + dock-loop: + Filename: DATA.R8 + Start: 3633 + icon: + Filename: DATA.R8 + Start: 4280 + Offset: -30,-24 + +harvester.husk: + idle: + Filename: DATA.R8 + Start: 1699 + Facings: -32 + ZOffset: -512 + +harvester_upgraded.husk: + idle: + Filename: DATA.R8 + Start: 1699 + Facings: -32 + ZOffset: -512 + +harvester.eco.husk: + idle: + Filename: DATA.R8 + Start: 1699 + Facings: -32 + ZOffset: -512 + +trike.eco: + idle: + Filename: DATA.R8 + Start: 1635 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 4092 + Tick: 50 + Facings: -32 + BlendMode: Additive + icon: + Filename: DATA.R8 + Start: 4305 + Offset: -30,-24 + +quad.eco: + idle: + Filename: DATA.R8 + Start: 1667 + Facings: -32 + icon: + Filename: DATA.R8 + Start: 4279 + Offset: -30,-24 + +siege_tank.eco: + idle: + Filename: DATA.R8 + Start: 1763 + Facings: -32 + turret: + Filename: DATA.R8 + Start: 1891 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 3671 + Length: 3 + BlendMode: Additive + icon: + Filename: DATA.R8 + Start: 4287 + Offset: -30,-24 + + +missile_tank.eco: + idle: + Filename: DATA.R8 + Start: 1603 + Facings: -32 + icon: + Filename: DATA.R8 + Start: 4285 + Offset: -30,-24 + + +sonic_tank.eco: + idle: + Filename: DATA.R8 + Start: 1827 + Facings: -32 + icon: + Filename: DATA.R8 + Start: 4288 + Offset: -30,-24 + + +combat_tank_a.eco: + idle: + Filename: DATA.R8 + Start: 1731 + Facings: -32 + turret: + Filename: DATA.R8 + Start: 1859 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 4028 + Tick: 60 + Facings: -32 + BlendMode: Additive + icon: + Filename: DATA.R8 + Start: 4281 + Offset: -30,-24 + + + +combat_tank_o.eco: + idle: + Filename: DATA.R8 + Start: 2453 + Facings: -32 + turret: + Filename: DATA.R8 + Start: 2485 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 4028 + Tick: 60 + Facings: -32 + BlendMode: Additive + icon: + Filename: DATA.R8 + Start: 4283 + Offset: -30,-24 + + +devastator.eco: + idle: + Filename: DATA.R8 + Start: 2083 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 4060 + Tick: 80 + Facings: -32 + BlendMode: Additive + active: + Filename: DATA.R8 + Start: 3839 + Length: 14 + Tick: 130 + BlendMode: Additive + active-2: + Filename: DATA.R8 + Start: 4152 + Length: 12 + Tick: 110 + BlendMode: Additive + icon: + Filename: DATA.R8 + Start: 4289 + Offset: -30,-24 + +devastator.husk.eco: + idle: + Filename: DATA.R8 + Start: 2083 + Facings: -32 + ZOffset: -512 + +raider.eco: + idle: + Filename: DATA.R8 + Start: 2421 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 3996 + Tick: 50 + Facings: -32 + BlendMode: Additive + icon: + Filename: DATA.R8 + Start: 4278 + Offset: -30,-24 + +stealth_raider.eco: + idle: + Filename: DATA.R8 + Start: 2421 + Facings: -32 + muzzle: + Filename: DATA.R8 + Start: 3996 + Tick: 50 + Facings: -32 + BlendMode: Additive + icon: + Filename: DATA.R8 + Start: 4298 + Offset: -30,-24 + +deviator.eco: + idle: + Filename: DATA.R8 + Start: 2389 + Facings: -32 + icon: + Filename: DATA.R8 + Start: 4286 + Offset: -30,-24 + +deviator.eco.husk: + idle: + Filename: DATA.R8 + Start: 2389 + Facings: -32 + ZOffset: -512 + + + + + + + + + + + + + +combat_tank_a.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 133 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + +combat_tank_a.eco.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.eco.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.eco.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: EnhacedAssets.R8 + Start: 133 + Facings: -32 + ZOffset: -512 + Offset: -22,-22 + turret: + Filename: EnhacedAssets.R8 + Start: 109 + Facings: -4 + ZOffset: -512 + +combat_tank_a.eco.husk04: + 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_h: + #idle:EnhacedAssets.R8 + # Start: 769 + # Facings: -3 + 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.eco: + #idle:EnhacedAssets.R8 + # Start: 769 + # Facings: -3 + 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.eco.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.eco.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.eco.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: EnhacedAssets.R8 + Start: 165 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 113 + Facings: -4 + ZOffset: -512 + +combat_tank_h.eco.husk04: + 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_o.husk: + idle: + Filename: EnhacedAssets.R8 + Start: 197 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + +combat_tank_o.eco.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.eco.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.eco.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: EnhacedAssets.R8 + Start: 197 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + turret: + Filename: EnhacedAssets.R8 + Start: 117 + Facings: -4 + ZOffset: -512 + +combat_tank_o.eco.husk04: + idle: + Filename: EnhacedAssets.R8 + Start: 197 + Facings: -32 + ZOffset: -512 + Offset: -22, -22 + 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 + +siege_tank.eco.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 + +sonic_tank.eco.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 + +missile_tank.eco.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: -5 + +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: 52 + Offset: -32,-32 + 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: 52 + Offset: -32,-32 + 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: 52 + Offset: -32,-32 + + +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: + Tick: 2000 + siege_turret_frame02: + Filename: DATA.R8 + Start: 1896 + Length: 1 + Tick: 2000 + -BlendMode: + siege_turret_frame03: + Filename: DATA.R8 + Start: 1900 + Length: 1 + -BlendMode: + Tick: 2000 + siege_turret_frame04: + Filename: DATA.R8 + Start: 1907 + Length: 1 + Tick: 2000 + -BlendMode: + siege_turret_frame05: + Filename: DATA.R8 + Start: 1910 + Length: 1 + Tick: 2000 + -BlendMode: + atreidis_turret_frame01: + Filename: EnhacedAssets.R8 + Start: 109 + Length: 1 + Tick: 2000 + -BlendMode: + atreidis_turret_frame02: + Filename: EnhacedAssets.R8 + Start: 110 + Length: 1 + Tick: 2000 + -BlendMode: + atreidis_turret_frame03: + Filename: EnhacedAssets.R8 + Start: 111 + Length: 1 + Tick: 2000 + -BlendMode: + atreidis_turret_frame04: + Filename: EnhacedAssets.R8 + Start: 112 + Length: 1 + Tick: 2000 + -BlendMode: + harkonnen_turret_frame01: + Filename: EnhacedAssets.R8 + Start: 113 + Length: 1 + Tick: 2000 + -BlendMode: + harkonnen_turret_frame02: + Filename: EnhacedAssets.R8 + Start: 114 + Length: 1 + Tick: 2000 + -BlendMode: + harkonnen_turret_frame03: + Filename: EnhacedAssets.R8 + Start: 115 + Length: 1 + Tick: 2000 + -BlendMode: + harkonnen_turret_frame04: + Filename: EnhacedAssets.R8 + Start: 116 + Length: 1 + Tick: 2000 + -BlendMode: + ordos_turret_frame01: + Filename: EnhacedAssets.R8 + Start: 117 + Length: 1 + Tick: 2000 + -BlendMode: + ordos_turret_frame02: + Filename: EnhacedAssets.R8 + Start: 118 + Length: 1 + Tick: 2000 + -BlendMode: + ordos_turret_frame03: + Filename: EnhacedAssets.R8 + Start: 119 + Length: 1 + Tick: 2000 + -BlendMode: + ordos_turret_frame04: + Filename: EnhacedAssets.R8 + Start: 120 + Length: 1 + Tick: 2000 + -BlendMode: + 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 + 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 + napalm_small: + Filename: bits/napalm1.shp + Length: * + ZOffset: -100 + 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: 480 + thump-sand: + Filename: DATA.R8 + Frames: 3882, 3883, 3879, 3880, 3881 + Length: 5 + Tick: 480 + 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 + Facing: -24 + Offset: -30,-30 + run: + Filename: EnhacedAssets.R8 + Start: 478 + Facings: -24 + 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: + stand: + Filename: DATA.R8 + Start: 1166 + Facings: -8 + Transpose: true + idle1: + Filename: DATA.R8 + Frames: 1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396 + Length: 8 + Tick: 80 + idle2: + Filename: DATA.R8 + Frames: 1348, 1355, 1362, 1369, 1376, 1383, 1390, 1397 + Length: 8 + Tick: 80 + run: + Filename: DATA.R8 + Start: 1174 + Length: 6 + Facings: -8 + Transpose: true + Tick: 120 + standup: + Filename: DATA.R8 + Start: 1262 + Facings: -8 + Transpose: true + Tick: 120 + prone-stand: + Filename: DATA.R8 + Start: 1270 + Facings: -8 + Transpose: true + prone-run: + Filename: DATA.R8 + Start: 1278 + Length: 3 + Facings: -8 + Transpose: true + Tick: 120 + die1: + Filename: DATA.R8 + Frames: 1342, 1349, 1356, 1363, 1370, 1377, 1384, 1391, 1398, 1399, 1400, 1401 + Length: 12 + Tick: 80 + die2: + Filename: DATA.R8 + Frames: 1343, 1350, 1357, 1364, 1371, 1378, 1385, 1392 + Length: 8 + Tick: 80 + die3: + Filename: DATA.R8 + Frames: 1344, 1351, 1358, 1365, 1372, 1379, 1386, 1393 + Length: 8 + Tick: 80 + die4: + Filename: DATA.R8 + Frames: 1345, 1352, 1359, 1366, 1373, 1380, 1387, 1394 + Length: 8 + Tick: 80 + die-crushed: + Filename: DATA.R8 + Frames: 1346, 1353, 1360, 1367, 1374, 1381, 1388, 1395 + Length: 8 + Tick: 800 + ZOffset: -511 + icon: + Filename: DATA.R8 + Start: 4274 + Offset: -30,-24 + 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 + +engineer.eco: + stand: + Filename: DATA.R8 + Start: 1166 + Facings: -8 + Transpose: true + idle1: + Filename: DATA.R8 + Frames: 1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396 + Length: 8 + Tick: 80 + idle2: + Filename: DATA.R8 + Frames: 1348, 1355, 1362, 1369, 1376, 1383, 1390, 1397 + Length: 8 + Tick: 80 + run: + Filename: DATA.R8 + Start: 1174 + Length: 6 + Facings: -8 + Transpose: true + Tick: 120 + standup: + Filename: DATA.R8 + Start: 1262 + Facings: -8 + Transpose: true + Tick: 120 + prone-stand: + Filename: DATA.R8 + Start: 1270 + Facings: -8 + Transpose: true + prone-run: + Filename: DATA.R8 + Start: 1278 + Length: 3 + Facings: -8 + Transpose: true + Tick: 120 + die1: + Filename: DATA.R8 + Frames: 1342, 1349, 1356, 1363, 1370, 1377, 1384, 1391, 1398, 1399, 1400, 1401 + Length: 12 + Tick: 80 + die2: + Filename: DATA.R8 + Frames: 1343, 1350, 1357, 1364, 1371, 1378, 1385, 1392 + Length: 8 + Tick: 80 + die3: + Filename: DATA.R8 + Frames: 1344, 1351, 1358, 1365, 1372, 1379, 1386, 1393 + Length: 8 + Tick: 80 + die4: + Filename: DATA.R8 + Frames: 1345, 1352, 1359, 1366, 1373, 1380, 1387, 1394 + Length: 8 + Tick: 80 + die-crushed: + Filename: DATA.R8 + Frames: 1346, 1353, 1360, 1367, 1374, 1381, 1388, 1395 + Length: 8 + Tick: 800 + ZOffset: -511 + icon: + Filename: DATA.R8 + Start: 4274 + Offset: -30,-24 + 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: 0 + Facings: -32 + Offset: -23,-23 + turret: + Filename: EnhancedAssets_2.R8 + Start: 32 + Facings: -32 + Offset: -20,-20 + 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: 0 + Facings: -32 + Offset: -23,-23 + ZOffset: -1024 + turret: + Filename: EnhancedAssets_2.R8 + Start: 32 + Facings: -32 + Offset: -20,-20 + ZOffset: -1024 +# +# 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: ebassets.R8 + Start: 1 + Lenghth: 1 + Offset: -54, -40 + +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: ebassets.R8 + Start: 2 + Offset: -54, -40 + +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 + +cobra_vehicle: + idle: + Filename: ebassets.R8 + Start: 2 + Facings: -32 + Offset: -23, -23 + muzzle: + Filename: ebassets.R8 + Start: 3 + Tick: 29 + Offset: -24, -24 + icon: + Filename: ebassets.R8 + Start: 32 + 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, 38 + Facings: 5 + +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 + +light_inf.eco: + stand: + Filename: DATA.R8 + Start: 206 + Facings: -8 + Transpose: true + idle1: + Filename: DATA.R8 + Frames: 387, 394, 401, 408, 415, 422, 429, 436 + Length: 8 + Tick: 80 + idle2: + Filename: DATA.R8 + Frames: 388, 395, 402, 409, 416, 423, 430, 437 + Length: 8 + Tick: 80 + run: + Filename: DATA.R8 + Start: 214 + Length: 6 + Facings: -8 + Tick: 110 + Transpose: true + shoot: + Filename: DATA.R8 + Start: 254 + Length: 6 + Facings: -8 + Transpose: true + 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 + icon: + Filename: DATA.R8 + Start: 4272 + Offset: -30,-24 + 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 + +trooper.eco: + stand: + Filename: DATA.R8 + Start: 458 + Facings: -8 + Transpose: true + idle1: + Filename: DATA.R8 + Frames: 639, 646, 653, 660, 667, 674, 681, 688 + Length: 8 + Tick: 80 + idle2: + Filename: DATA.R8 + Frames: 640, 647, 654, 661, 668, 675, 682, 689 + Length: 8 + Tick: 80 + run: + Filename: DATA.R8 + Start: 466 + Length: 6 + Facings: -8 + Tick: 120 + Transpose: true + shoot: + Filename: DATA.R8 + Start: 506 + Length: 6 + Facings: -8 + Transpose: true + prone-stand: + Filename: DATA.R8 + Start: 562 + Facings: -8 + Transpose: true + prone-run: + Filename: DATA.R8 + Start: 570 + Length: 3 + Facings: -8 + Transpose: true + Tick: 120 + standup: + Filename: DATA.R8 + Start: 554 + Facings: -8 + Transpose: true + prone-shoot: + Filename: DATA.R8 + Start: 586 + Length: 6 + Facings: -8 + Transpose: true + die1: + Filename: DATA.R8 + Frames: 634, 641, 648, 655, 662, 669, 676, 683, 690, 691, 692, 693 + Length: 12 + Tick: 80 + die2: + Filename: DATA.R8 + Frames: 635, 642, 649, 656, 663, 670, 677, 684 + Length: 8 + Tick: 80 + die3: + Filename: DATA.R8 + Frames: 636, 643, 650, 657, 664, 671, 678, 685 + Length: 8 + Tick: 80 + die4: + Filename: DATA.R8 + Frames: 637, 644, 651, 658, 665, 672, 679, 686 + Length: 8 + Tick: 80 + die-crushed: + Filename: DATA.R8 + Frames: 638, 645, 652, 659, 666, 673, 680, 687 + Length: 8 + Tick: 800 + ZOffset: -511 + die6: + Filename: EnhacedAssets.R8 + Start: 775 + Length: 18 + Tick: 80 + Offset: -16,-16 + icon: + Filename: DATA.R8 + Start: 4273 + Offset: -30,-24 + + + +trooper.heavy: + + 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: ebassets.R8 + Start: 0 + Lenghth: 1 + Offset: -57, -46 + +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 + +sardaukar.eco: + 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/Enhanced_AI.yaml b/Enhanced_AI.yaml new file mode 100644 index 0000000..37843a5 --- /dev/null +++ b/Enhanced_AI.yaml @@ -0,0 +1,1230 @@ +Player: + ModularBot@Omnius: + Name: Omnius + Type: omnius + ModularBot@Vidius: + Name: Vidious + Type: vidious + ModularBot@Gladius: + Name: Gladius + Type: gladius + ModularBot@Optimus: + Name: Optimus + Type: optimus + ModularBot@Virtus: + Name: Virtus + Type: virtus + GrantConditionOnBotOwner@omnius: + Condition: enable-omnius-ai + Bots: omnius + GrantConditionOnBotOwner@vidious: + Condition: enable-vidious-ai + Bots: vidious + GrantConditionOnBotOwner@gladius: + Condition: enable-gladius-ai + Bots: gladius + GrantConditionOnBotOwner@optimus: + Condition: enable-optimus-ai + Bots: optimus + GrantConditionOnBotOwner@virtus: + Condition: enable-virtus-ai + Bots: virtus + GrantCondition@bot_test: + Condition: all_bots + RequiresCondition: enable-gladius-ai || enable-vidious-ai || enable-omnius-ai || enable-optimus-ai || enable-virtus-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 || enable-optimus-ai || enable-virtus-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 || enable-optimus-ai || enable-virtus-ai + HarvesterTypes: harvester + HarvesterEnemyAvoidanceRadius: 15c0 + RefineryTypes: refinery, refinery_inverted + BaseBuilderBotModule@optimus: + RequiresCondition: enable-optimus-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 110 + MaximumExcessPower: 200 + ExcessPowerIncrement: 0 + 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: 10 + MaximumFailedPlacementAttempts: 4 + MaxResourceCellsToCheck: 45 + PlaceDefenseTowardsEnemyChance: 95 + InititalMinimumRefineryCount: 3 + MinimumDefenseRadius: 10 + MaximumDefenseRadius: 35 + CheckForNewBasesDelay: 30000 + BuildingLimits: + silo: 20 + barracks: 4 + refinery: 25 + outpost: 1 + high_tech_factory: 2 + light_factory: 3 + heavy_factory: 4 + starport: 1 + repair_pad: 1 + repair_pad.bot: 1 + research_centre: 2 + 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 + barracks.eco: 1 + refinery: 20 + medium_gun_turret: 15 + outpost: 1 + outpost.eco: 1 + high_tech_factory: 1 + large_gun_turret: 10 + 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: 18000 + upgrade.conyard: 30000 + heavy_factory: 3000 + outpost: 6500 + light_factory: 15000 + research_centre: 10000 + upgrade.barracks: 4000 + starport: 15000 + upgrade.heavy: 9500 + medium_gun_turret: 6000 + upgrade.hightech: 25000 + BaseBuilderBotModule@virtus: + RequiresCondition: enable-virtus-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 110 + 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: 4000 + upgrade.heavy: 20000 + outpost: 12000 + starport: 15000 + upgrade.light: 12000 + medium_gun_turret: 3000 + BaseBuilderBotModule@omnius: + RequiresCondition: enable-omnius-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 110 + 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: 110 + 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: 110 + 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 || enable-optimus-ai || enable-virtus-ai + CaptureManagerBotModule: + RequiresCondition: enable-omnius-ai || enable-vidious-ai || enable-gladius-ai || enable-optimus-ai || enable-virtus-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@virtus: + RequiresCondition: enable-virtus-ai + SquadSize: 25 + SquadSizeRandomBonus: 50 + MaxBaseRadius: 40 + ProtectionScanRadius: 25 + 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: 1000 + 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 + SquadManagerBotModule@optimus: + RequiresCondition: enable-optimus-ai + SquadSize: 30 + SquadSizeRandomBonus: 45 + MaxBaseRadius: 50 + ProtectionScanRadius: 50 + 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_support, CapturedUnit, Air + ProtectUnitScanRadius: 20 + AssignRolesInterval: 10 + AttackForceInterval: 10 + RushInterval: 12000 + 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 + 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: 60 + merged.mortar_inf: 10 + merged.bison_tank: 30 + UnitLimits: + dummy.harvester: 1 + engineer: 1 + mortar_inf: 60 + merged.mortar_inf: 10 + harvester: 20 + carryall: 18 + UnitDelays: + combat_tank_a: 8000 + combat_tank_h: 8000 + combat_tank_o: 8000 + engineer: 8000 + UnitBuilderBotModule@optimus: + RequiresCondition: enable-optimus-ai + IdleBaseUnitsMaximum: 50 + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 1 + engineer: 2 + engineer.eco: 2 + light_inf: 30 + trooper: 80 + trooper.heavy: 50 + mpsardaukar: 80 + grenadier: 40 + harvester: 30 + harvester.eco: 40 + dummy.harvester: 10 + dummy.trike: 10 + dummy.quad: 10 + dummy.siege_tank: 40 + dummy.missile_tank: 70 + dummy.combat_tank_a: 20 + dummy.combat_tank_h: 20 + dummy.combat_tank_o: 20 + dummy.combat_tank_corrino: 30 + dummy.combat_tank_cheap: 30 + purchase.starport: 1 + purchase.starport.eco: 1 + combat_tank_cheap: 20 + combat_tank_corrino: 20 + flamer: 40 + merged.flamer: 40 + bison_tank: 60 + sonic_tank: 80 + devastator: 80 + devastator.eco: 50 + deviator: 50 + trike: 20 + raider: 20 + quad: 60 + siege_tank: 40 + missile_tank: 65 + stealth_raider: 30 + combat_tank_a: 40 + combat_tank_h: 40 + combat_tank_o: 40 + bombardment_tank: 60 + crawler: 40 + hunter: 20 + merged.hunter: 20 + merged.sardaukar: 20 + assassin: 30 + fremen_fedaykin: 80 + merged.fremen_fedaykin: 50 + merged.bombardment_tank: 40 + merged.crawler: 30 + mortar_inf: 60 + merged.mortar_inf: 10 + merged.bison_tank: 30 + UnitLimits: + dummy.harvester: 10 + engineer: 1 + engineer.eco: 1 + mortar_inf: 60 + merged.mortar_inf: 10 + harvester: 50 + harvester.eco: 50 + carryall: 30 + UnitDelays: + combat_tank_a: 8000 + combat_tank_h: 8000 + combat_tank_o: 8000 + engineer: 30000 + engineer.eco: 30000 + UnitBuilderBotModule@virtus: + RequiresCondition: enable-virtus-ai + IdleBaseUnitsMaximum: 60 + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 1 + engineer: 2 + engineer.eco: 2 + light_inf: 30 + trooper: 60 + trooper.heavy: 50 + mpsardaukar: 95 + grenadier: 40 + harvester: 30 + harvester.eco: 40 + dummy.harvester: 10 + dummy.trike: 10 + dummy.quad: 10 + dummy.siege_tank: 40 + dummy.missile_tank: 70 + dummy.combat_tank_a: 20 + dummy.combat_tank_h: 20 + dummy.combat_tank_o: 20 + dummy.combat_tank_corrino: 30 + dummy.combat_tank_cheap: 30 + purchase.starport: 1 + purchase.starport.eco: 1 + combat_tank_cheap: 20 + combat_tank_corrino: 20 + flamer: 40 + merged.flamer: 40 + bison_tank: 60 + sonic_tank: 80 + devastator: 95 + devastator.eco: 50 + deviator: 50 + trike: 20 + raider: 20 + quad: 60 + siege_tank: 20 + missile_tank: 60 + stealth_raider: 30 + combat_tank_a: 15 + combat_tank_h: 15 + combat_tank_o: 15 + bombardment_tank: 20 + crawler: 40 + hunter: 20 + merged.hunter: 20 + merged.sardaukar: 20 + assassin: 30 + fremen_fedaykin: 80 + merged.fremen_fedaykin: 50 + merged.bombardment_tank: 40 + merged.crawler: 30 + mortar_inf: 80 + merged.mortar_inf: 10 + merged.bison_tank: 30 + UnitLimits: + dummy.harvester: 10 + engineer: 1 + engineer.eco: 1 + mortar_inf: 60 + merged.mortar_inf: 10 + harvester: 50 + harvester.eco: 50 + carryall: 30 + UnitDelays: + engineer: 30000 + engineer.eco: 30000 + combat_tank_a: 6000 + combat_tank_h: 6000 + combat_tank_o: 6000 + McvManagerBotModule: + RequiresCondition: enable-omnius-ai || enable-gladius-ai || enable-virtus-ai + McvTypes: mcv, mcv.starport, dummy.mcv + MinimumConstructionYardCount: 3 + MinBaseRadius: 20 + ScanForNewMcvInterval: 100 + RestrictMCVDeploymentFallbackToBase: false + ConstructionYardTypes: construction_yard + McvFactoryTypes: heavy_factory, starport + McvManagerBotModule@optimus-ai: + McvTypes: mcv, mcv.starport, dummy.mcv + MinimumConstructionYardCount: 6 + 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: 60 + merged.mortar_inf: 10 + merged.bison_tank: 30 + UnitLimits: + engineer: 2 + dummy.harvester: 1 + mortar_inf: 60 + 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: 60 + merged.mortar_inf: 10 + merged.bison_tank: 30 + UnitLimits: + engineer: 2 + dummy.harvester: 1 + mortar_inf: 60 + 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/Enhanced_Misc.yaml b/Enhanced_Misc.yaml new file mode 100644 index 0000000..2afa252 --- /dev/null +++ b/Enhanced_Misc.yaml @@ -0,0 +1,1557 @@ +crate: + HiddenUnderFog: + Tooltip: + Name: Crate + Crate: + Duration: 3000 + TerrainTypes: Sand, Rock, Transition, Spice, SpiceSand, Dune, Concrete + GiveCashCrateAction@1: + Amount: 750 + SelectionShares: 25 + UseCashTick: true + Prerequisites: wind_trap + GiveCashCrateAction@2: + Amount: 1000 + SelectionShares: 15 + UseCashTick: true + GiveCashCrateAction@3: + Amount: 1500 + SelectionShares: 10 + UseCashTick: true + GiveCashCrateAction@4: + Amount: 2000 + SelectionShares: 35 + Prerequisites: ~ext.crate + UseCashTick: true + LevelUpCrateAction: + SelectionShares: 10 + GiveUnitCrateAction@LightInfantry: + SelectionShares: 7 + Units: light_inf, light_inf, light_inf, light_inf, light_inf + Prerequisites: techlevel.low, barracks + GiveUnitCrateAction@LightInfantry2: + SelectionShares: 30 + Units: light_inf, light_inf, light_inf, light_inf, trooper, trooper + Prerequisites: techlevel.low, barracks, ~ext.crate + GiveUnitCrateAction@Trooper: + SelectionShares: 5 + Units: trooper, trooper, trooper, trooper + Prerequisites: techlevel.low, barracks, upgrade.barracks + GiveUnitCrateAction@Trooper2: + SelectionShares: 20 + Units: trooper, trooper, trooper, trooper, trooper, grenadier + Prerequisites: techlevel.low, barracks, upgrade.barracks, ~ext.crate + GiveUnitCrateAction@Engineer: + SelectionShares: 5 + Units: engineer + Prerequisites: techlevel.low, barracks, upgrade.barracks + GiveUnitCrateAction@Grenadier: + SelectionShares: 4 + Units: grenadier, grenadier + ValidFactions: atreides + Prerequisites: techlevel.medium, barracks, upgrade.barracks, high_tech_factory + GiveUnitCrateAction@Sardaukar: + SelectionShares: 4 + Units: sardaukar, sardaukar, sardaukar, sardaukar, sardaukar + ValidFactions: harkonnen + Prerequisites: techlevel.medium, barracks, upgrade.barracks, high_tech_factory, ~ext.crate + GiveUnitCrateAction@Sardaukar2: + SelectionShares: 16 + Units: sardaukar, sardaukar + ValidFactions: harkonnen + Prerequisites: techlevel.medium, barracks, upgrade.barracks, high_tech_factory + GiveUnitCrateAction@Trooper.heavy: + SelectionShares: 15 + Units: trooper.heavy, trooper.heavy, trooper, light_inf, light_inf + Prerequisites: techlevel.medium, barracks, upgrade.barracks, research_centre, ~ext.crate + GiveUnitCrateAction@Trike: + SelectionShares: 12 + Units: trike + ValidFactions: atreides, harkonnen + Prerequisites: techlevel.low, light_factory + GiveUnitCrateAction@Trike2: + SelectionShares: 40 + Units: trike, trike + ValidFactions: atreides, harkonnen + Prerequisites: techlevel.low, light_factory, ~ext.crate + GiveUnitCrateAction@Raider: + SelectionShares: 12 + Units: raider + ValidFactions: ordos + Prerequisites: techlevel.low, light_factory + GiveUnitCrateAction@Raider2: + SelectionShares: 40 + Units: raider, stealth_raider + ValidFactions: ordos + Prerequisites: techlevel.low, light_factory, ~ext.crate + GiveUnitCrateAction@Quad: + SelectionShares: 10 + Units: quad + Prerequisites: techlevel.medium, light_factory, upgrade.light + GiveUnitCrateAction@Quad2: + SelectionShares: 25 + Units: quad, quad + Prerequisites: techlevel.medium, light_factory, upgrade.light + GiveUnitCrateAction@cobra_vehicle: + SelectionShares: 5 + Units: cobra_vehicle + Prerequisites: techlevel.medium, light_factory, upgrade.light, ~ext.crate + GiveUnitCrateAction@StealthRaider: + SelectionShares: 4 + Units: stealth_raider + ValidFactions: ordos + Prerequisites: techlevel.medium, light_factory, upgrade.light, high_tech_factory + GiveUnitCrateAction@StealthRaider2: + SelectionShares: 16 + Units: stealth_raider, stealth_raider, raider + ValidFactions: ordos + Prerequisites: techlevel.medium, light_factory, upgrade.light, high_tech_factory, ~ext.crate + GiveUnitCrateAction@harvester: + SelectionShares: 5 + Units: harvester + Prerequisites: techlevel.low, heavy_factory, refinery + GiveUnitCrateAction@harvester2: + SelectionShares: 5 + Units: harvester + Prerequisites: techlevel.low, refinery, ~ext.crate + GiveUnitCrateAction@CombatA: + SelectionShares: 7 + Units: combat_tank_a + ValidFactions: atreides + Prerequisites: techlevel.low, heavy_factory + GiveUnitCrateAction@CombatAA: + SelectionShares: 25 + Units: combat_tank_a, light_inf, light_inf, light_inf + ValidFactions: atreides + Prerequisites: techlevel.low, heavy_factory, ~ext.crate + GiveUnitCrateAction@CombatH: + SelectionShares: 7 + Units: combat_tank_h + ValidFactions: harkonnen + Prerequisites: techlevel.low, heavy_factory + GiveUnitCrateAction@CombatHH: + SelectionShares: 25 + Units: combat_tank_h, sardaukar + ValidFactions: harkonnen + Prerequisites: techlevel.low, heavy_factory, ~ext.crate + GiveUnitCrateAction@CombatO: + SelectionShares: 7 + Units: combat_tank_o + ValidFactions: ordos + Prerequisites: techlevel.low, heavy_factory + GiveUnitCrateAction@CombatOO: + SelectionShares: 25 + Units: combat_tank_o, combat_tank_o + ValidFactions: ordos + Prerequisites: techlevel.low, heavy_factory, ~ext.crate + GiveUnitCrateAction@SiegeTank: + SelectionShares: 6 + Units: siege_tank + Prerequisites: techlevel.medium, heavy_factory, upgrade.heavy + GiveUnitCrateAction@SiegeTank2: + SelectionShares: 18 + Units: siege_tank, missile_tank + Prerequisites: techlevel.medium, heavy_factory, upgrade.heavy, ~ext.crate + GiveUnitCrateAction@MissileTank: + SelectionShares: 5 + Units: missile_tank + Prerequisites: techlevel.high, heavy_factory, research_centre + GiveUnitCrateAction@MissileTank2: + SelectionShares: 20 + Units: missile_tank, trooper, trooper, trike + Prerequisites: techlevel.high, heavy_factory, research_centre, ~ext.crate + GiveUnitCrateAction@Bombardment_tank: + SelectionShares: 5 + Units: bombardment_tank + Prerequisites: techlevel.high, heavy_factory, research_centre + GiveUnitCrateAction@Bombardment_tank2: + SelectionShares: 20 + Units: bombardment_tank, bombardment_tank + Prerequisites: techlevel.high, heavy_factory, research_centre, ~ext.crate + GiveUnitCrateAction@Fremen: + SelectionShares: 5 + Units: fremen, fremen + ValidFactions: atreides + Prerequisites: techlevel.high, upgrade.barracks + GiveUnitCrateAction@Fremen2: + SelectionShares: 10 + Units: fremen, fremen, fremen, fremen + ValidFactions: atreides + Prerequisites: techlevel.high, upgrade.barracks, ~ext.crate + GiveUnitCrateAction@Saboteur: + SelectionShares: 5 + Units: saboteur + ValidFactions: ordos + Prerequisites: techlevel.high, palace + GiveUnitCrateAction@SonicTank: + SelectionShares: 3 + Units: sonic_tank + ValidFactions: atreides + Prerequisites: techlevel.high, heavy_factory, research_centre + GiveUnitCrateAction@SonicTank2: + SelectionShares: 10 + Units: sonic_tank, sonic_tank, missile_tank + ValidFactions: atreides + Prerequisites: techlevel.high, heavy_factory, research_centre, ~ext.crate + GiveUnitCrateAction@Devastator: + SelectionShares: 3 + Units: devastator + ValidFactions: harkonnen + Prerequisites: techlevel.high, heavy_factory, research_centre + GiveUnitCrateAction@Devastator2: + SelectionShares: 10 + Units: devastator, devastator, combat_tank_h + ValidFactions: harkonnen + Prerequisites: techlevel.high, heavy_factory, research_centre, ~ext.crate + GiveUnitCrateAction@Deviator: + SelectionShares: 3 + Units: deviator + ValidFactions: ordos + Prerequisites: techlevel.high, heavy_factory, research_centre + GiveUnitCrateAction@Deviator2: + SelectionShares: 10 + Units: deviator, deviator, siege_tank + ValidFactions: ordos + Prerequisites: techlevel.high, heavy_factory, research_centre, ~ext.crate + GiveUnitCrateAction@EliteSqzad: + SelectionShares: 10 + Units: trooper.heavy, trooper.heavy, trooper.heavy, trooper.heavy, trooper.heavy + Prerequisites: techlevel.high, heavy_factory, research_centre, upgrade.barracks, ~ext.crate + GiveUnitCrateAction@EliteSquad2: + SelectionShares: 10 + Units: trooper, trooper, trooper, hunter, hunter + Prerequisites: techlevel.high, upgrade.light, research_centre, ~ext.crate + GiveUnitCrateAction@CobraSquad: + SelectionShares: 3 + Units: cobra_vehicle, cobra_vehicle + Prerequisites: techlevel.high, upgrade.light, research_centre, high_tech_factory, ~ext.crate + GiveUnitCrateAction@Mortat: + SelectionShares: 10 + Units: mortar_inf, mortar_inf, mortar_inf, mortar_inf, mortar_inf + ValidFactions: ordos + Prerequisites: techlevel.high, upgrade.barracks, research_centre, high_tech_factory, ~ext.crate + GiveUnitCrateAction@EliteSquad3: + SelectionShares: 10 + Units: trike, trike, hunter, hunter + Prerequisites: techlevel.high, upgrade.light, research_centre, ~ext.crate + GiveUnitCrateAction@EliteSquad4: + SelectionShares: 10 + Units: quad, quad, bombardment_tank, missile_tank + Prerequisites: techlevel.high, upgrade.light, research_centre, ~ext.crate + GiveBaseBuilderCrateAction: + SelectionShares: 0 + NoBaseSelectionShares: 9001 + Units: mcv + QuantizeFacingsFromSequence: + RenderSprites: + Palette: effect + WithCrateBody: + Passenger: + MapEditorData: + Categories: System + Interactable: + Bounds: 640, 640 + +spicebloom: + SpiceBloom: + Pieces: 4,5 + +^Husk: + Health: + HP: 15000 + +^VehicleHusk: + Inherits: ^Husk + CaptureManager: + Capturable: + Types: husk + ValidRelationships: Enemy, Neutral, Ally + 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 + IsDecoration: True + ChangesHealth: + Step: -30 + StartIfBelow: 101 + Delay: 4 + +^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_at: + Inherits: ^Dummy + ProximityExternalCondition: + Condition: landing_area + Range: 6c0 + +waypoint.reinforce_or: + 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 + WithIdleOverlay@Burns: + Image: smoke_m + Sequence: smokeFromRA01loop + IsDecoration: True + 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 + WithIdleOverlay@Burns: + Image: smoke_m + Sequence: smokeFromRA01loop + IsDecoration: True + 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: + Image: smoke_m + Sequence: smokeFromRA01loop + IsDecoration: True + ThrowsParticle@turret: + +combat_tank_a.husk03: + Inherits: ^combat_tank.husk + TransformOnCapture: + IntoActor: combat_tank_a + Health: + HP: 13000 + WithIdleOverlay@Burns: + Image: smoke_m + Sequence: smokeFromRA01loop + IsDecoration: True + 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: + Image: smoke_m + Sequence: smokLandFromR_idle + StartSequence: smokLandFromRA_Open + Palette: disabled + IsDecoration: True + 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 + Sequence: 2 + IsDecoration: True + ThrowsParticle@turret: + + +combat_tank_h.husk03: + Inherits: ^combat_tank.husk + Health: + HP: 11000 + WithIdleOverlay@Burns: + Image: smoke_m + Sequence: smokeFromRA01loop + IsDecoration: True + 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: smoke_m + Sequence: smokLandFromR_idle + StartSequence: smokLandFromRA_Open + Palette: disabled + IsDecoration: True + 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 + Sequence: 2 + IsDecoration: True + -ThrowsParticle@turret: + + +combat_tank_o.husk03: + Inherits: ^combat_tank.husk + Health: + HP: 9000 + TransformOnCapture: + IntoActor: combat_tank_o + WithIdleOverlay@Burns: + Image: smoke_m + Sequence: smokeFromRA01loop + IsDecoration: True + 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: + Image: smoke_m + Sequence: smokLandFromR_idle + StartSequence: smokLandFromRA_Open + Palette: disabled + IsDecoration: True + 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 + +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 + Sequence: smoke_player + Palette: deviatorgas + 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: 27000 + 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 + + +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/Enhanced_Starport09.yaml b/Enhanced_Starport09.yaml new file mode 100644 index 0000000..9c3d563 --- /dev/null +++ b/Enhanced_Starport09.yaml @@ -0,0 +1,840 @@ +^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 + WithProductionIconOverlay@order7: + Types: 7 + Prerequisites: starportOrder_7 + WithProductionIconOverlay@order8: + Types: 8 + Prerequisites: starportOrder_8 + WithProductionIconOverlay@order9: + Types: 9 + Prerequisites: starportOrder_9 + +^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 + ExternalCondition@order7: + Condition: order_7 + ExternalCondition@order8: + Condition: order_8 + ExternalCondition@order9: + Condition: order_9 + +^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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.trike_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.trike_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.trike_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.trike_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.trike_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.trike_9 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 15 + Valued: + Cost: 350 + +dummy.hunter: + Inherits@overlay: ^Overlay_external_conditions + Inherits: ^StarportDummy + Inherits@starport: ^Starport_icon_numbers + RenderSprites: + Image: hunter + ProvidesPrerequisite@trike1: + Prerequisite: starport.hunter_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.hunter_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.hunter_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.hunter_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.hunter_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.hunter_6 + RequiresCondition: order_6 + ProvidesPrerequisite@trike7: + Prerequisite: starport.hunter_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.hunter_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.hunter_9 + RequiresCondition: order_9 + WithProductionIconOverlay@order1: + Prerequisites: starport.hunter_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.hunter_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.hunter_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.hunter_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.hunter_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.hunter_6 + WithProductionIconOverlay@order7: + Prerequisites: starport.hunter_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.hunter_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.hunter_9 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 30 + Valued: + Cost: 500 + +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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.quad_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.quad_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.quad_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.quad_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.quad_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.quad_9 + 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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.harvester_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.harvester_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.harvester_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.harvester_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.harvester_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.harvester_9 + 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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.mcv_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.mcv_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.mcv_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.mcv_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.mcv_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.mcv_9 + 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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.siege_tank_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.siege_tank_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.siege_tank_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.siege_tank_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.siege_tank_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.siege_tank_9 + 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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.missile_tank_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.missile_tank_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.missile_tank_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.missile_tank_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.missile_tank_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.missile_tank_9 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 80 + Valued: + Cost: 1250 + +dummy.bombardment_tank: + Inherits@overlay: ^Overlay_external_conditions + Inherits@starport: ^Starport_icon_numbers + Inherits: ^StarportDummy + RenderSprites: + Image: bombardment_tank + ProvidesPrerequisite@trike1: + Prerequisite: starport.bombardment_tank_1 + RequiresCondition: order_1 + ProvidesPrerequisite@trike2: + Prerequisite: starport.bombardment_tank_2 + RequiresCondition: order_2 + ProvidesPrerequisite@trike3: + Prerequisite: starport.bombardment_tank_3 + RequiresCondition: order_3 + ProvidesPrerequisite@trike4: + Prerequisite: starport.bombardment_tank_4 + RequiresCondition: order_4 + ProvidesPrerequisite@trike5: + Prerequisite: starport.bombardment_tank_5 + RequiresCondition: order_5 + ProvidesPrerequisite@trike6: + Prerequisite: starport.bombardment_tank_6 + RequiresCondition: order_6 + ProvidesPrerequisite@trike7: + Prerequisite: starport.bombardment_tank_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.bombardment_tank_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.bombardment_tank_9 + RequiresCondition: order_9 + WithProductionIconOverlay@order1: + Prerequisites: starport.bombardment_tank_1 + WithProductionIconOverlay@order2: + Prerequisites: starport.bombardment_tank_2 + WithProductionIconOverlay@order3: + Prerequisites: starport.bombardment_tank_3 + WithProductionIconOverlay@order4: + Prerequisites: starport.bombardment_tank_4 + WithProductionIconOverlay@order5: + Prerequisites: starport.bombardment_tank_5 + WithProductionIconOverlay@order6: + Prerequisites: starport.bombardment_tank_6 + WithProductionIconOverlay@order7: + Prerequisites: starport.bombardment_tank_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.bombardment_tank_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.bombardment_tank_9 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport + BuildPaletteOrder: 80 + Valued: + Cost: 1400 + +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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.combat_tank_a_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.combat_tank_a_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.combat_tank_a_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.combat_tank_a_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.combat_tank_a_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.combat_tank_a_9 + 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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.combat_tank_h_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.combat_tank_h_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.combat_tank_h_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.combat_tank_h_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.combat_tank_h_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.combat_tank_h_9 + Buildable: + Prerequisites: starport, !frigate.full, !purchase.starport, ~starport.harkonnen_combat + BuildPaletteOrder: 50 + Valued: + Cost: 875 + +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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.combat_tank_o_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.combat_tank_o_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.combat_tank_o_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.combat_tank_o_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.combat_tank_o_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.combat_tank_o_9 + 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 + ProvidesPrerequisite@trike7: + Prerequisite: starport.carryall_7 + RequiresCondition: order_7 + ProvidesPrerequisite@trike8: + Prerequisite: starport.carryall_8 + RequiresCondition: order_8 + ProvidesPrerequisite@trike9: + Prerequisite: starport.carryall_9 + RequiresCondition: order_9 + 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 + WithProductionIconOverlay@order7: + Prerequisites: starport.carryall_7 + WithProductionIconOverlay@order8: + Prerequisites: starport.carryall_8 + WithProductionIconOverlay@order9: + Prerequisites: starport.carryall_9 + 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/Enhanced_Structures09.yaml b/Enhanced_Structures09.yaml new file mode 100644 index 0000000..e59da2f --- /dev/null +++ b/Enhanced_Structures09.yaml @@ -0,0 +1,1963 @@ +^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 + +construction_yard: + Health: + HP: 60000 + 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 + +concretea: + Buildable: + Prerequisites: ~!global-auto-concrete, !choosefaction + +concreteb: + Buildable: + Prerequisites: upgrade.conyard, ~!global-auto-concrete, !choosefaction + +wind_trap: + 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: buildingWeak + 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 + +barracks: + Buildable: + Prerequisites: wind_trap + BuildDuration: 325 + Valued: + Cost: 400 + Health: + HP: 41000 + 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@atreides: + Prerequisite: barracks.atreides + Factions: atreides + 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 + PrimaryBuilding: + ProductionQueues: Officer + 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: 3700 + Icon: officer + Prerequisites: ~techlevel.superweapons, palace, upgrade.barracks + ReadyAudio: Reinforce + BlockedAudio: NoRoom + OrderName: ProduceActorPower.officerMerged + SupportPowerPaletteOrder: 25 + Production@OfficerSpawn: + Produces: Officer + +refinery: + PlaceBuildingVariants: + Actors: refinery_inverted + Facings: 384, 896 + Buildable: + Prerequisites: wind_trap + BuildDuration: 687 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Valued: + Cost: 1500 + Health: + HP: 42000 + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: buildingWeak + 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 + +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: + DockAngle: 128 + DockOffset: 0,1 + TickRate: 20 + 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: + GrantConditionOnPrerequisite@vision: + Condition: SiloUpgrade + Prerequisites: upgrade.silo + Buildable: + BuildPaletteOrder: 650 + BuildDuration: 200 + Valued: + Cost: 200 + Health: + HP: 18000 + GrantConditionOnPrerequisite@armor: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: buildingWeak + RequiresCondition: !ArmorUpgrade + RevealsShroud@basic: + Range: 2c512 + RevealsShroud@upg: + Range: 8c512 + RequiresCondition: SiloUpgrade + StoresResources@basic: + Capacity: 2000 + StoresResources@upg: + Capacity: 4000 + Power: + Amount: -25 + ThrowsShrapnel: + Weapons: Debris, Debris2, Debris3, Debris4 + Pieces: 3, 5 + Range: 2c0, 5c0 + ProvidesPrerequisite@silo: + +upgrade.silo: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Silo Upgrade + Buildable: + BuildPaletteOrder: 25 + Prerequisites: silo, ~!choosefaction, ~enhancedAirCombat + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 2000 + BuildDurationModifier: 100 + Description: Slow and Not cheap, Increases Storage Capacity and Reveal Shroud Range + Valued: + Cost: 2000 + RenderSprites: + Image: silo.ordos + FactionImages: + atreides: silo.atreides + fremen: silo.atreides + harkonnen: silo.harkonnen + corrino: silo.harkonnen + ProvidesPrerequisite@upgradename: + +light_factory: + Buildable: + Prerequisites: wind_trap, refinery + BuildDuration: 400 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Valued: + Cost: 700 + Health: + HP: 42900 + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: buildingWeak + 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 + +heavy_factory: + Buildable: + Prerequisites: refinery + BuildDuration: 750 + Valued: + Cost: 1500 + Health: + HP: 48000 + RenderSprites: + Image: heavy.ordos + FactionImages: + atreides: heavy.atreides + fremen: heavy.atreides + harkonnen: heavy.harkonnen + corrino: heavy.corrino + mercenary: heavy.mercenary + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: buildingWeak + RequiresCondition: !ArmorUpgrade + 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 + ProvidesPrerequisite: + Prerequisite: heavy_factory + +outpost: + Buildable: + Prerequisites: refinery, barracks + BuildDuration: 420 + Valued: + Cost: 1000 + Health: + HP: 45500 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: buildingWeak + RequiresCondition: !ArmorUpgrade + RevealsShroud: + Range: 14c0 + RequiresCondition: !disabled + RevealsShroud@lowpower: + Range: 4c0 + RequiresCondition: disabled + Power: + Amount: -125 + DetectCloaked: + Range: 6c0 + RequiresCondition: !disabled + ProvidesPrerequisite: + Prerequisite: outpost + ProvidesPrerequisite@atreides: + Prerequisite: outpost.atreides + Factions: atreides + ProvidesPrerequisite@ordos: + Prerequisite: outpost.ordos + Factions: ordos + ProvidesPrerequisite@harkonen: + Prerequisite: outpost.harkonen + Factions: harkonnen + SpawnActorPower@jammer: + Actor: jammer_point + ChargeInterval: 8200 + 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 + Prerequisites: upgrade.radar, outpost.ordos + 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: 7700 + Description: Hide units in selected area for short period of time + Prerequisites: upgrade.radar, outpost.atreides + Icon: hide_units + LaunchSound: audio/EBoD_hidenunits1.wav + DisplayRadarPing: true + OrderName: SpawnActorPowerInfoOrder.hideunits + SupportPowerPaletteOrder: 110 + SpawnActorPower@CorrinoTrueSayer: + EffectImage: frigate.harkonnen + EffectSequence: + Actor: dummy.true_sayer + Icon: true_sayer + Prerequisites: upgrade.radar, outpost.harkonen + ChargeInterval: 7500 + LifeTime: 600 + 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 + +starport: + Inherits@disablecondition: ^DisableOnLowPower + -WithColoredOverlay@IDISABLE: + Buildable: + Prerequisites: heavy_factory, outpost, ~techlevel.high, ~!factions.merged + BuildDuration: 625 + 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 + Palette: starportlights + 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 + +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: 400 + Description: Defensive structure.\n Modest vs everthing\n weak vs Tanks\n detects cloaked units in 2 cell range + Valued: + Cost: 700 + 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 + +large_gun_turret: + Inherits@AUTOTARGET: ^AutoTargetAll + Inherits@Jammer: ^jammedvision + Inherits@chaosbomb: ^chaos_bomb_influence + -AttackWander: + Buildable: + BuildDuration: 480 + Description: Defensive structure.\n Strong vs Tanks, Aircraft\n Weak vs infantry\n\n Requires power to operate. + Valued: + Cost: 900 + 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 + + +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: -100 + -Explodes@02: + Explodes@03: + Type: CenterPosition + Weapon: buildingExplosions05 + EmptyWeapon: buildingExplosions05 + Chance: 80 + + + +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: + Buildable: + BuildDuration: 700 + Valued: + Cost: 1500 + Health: + HP: 45500 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: buildingWeak + RequiresCondition: !ArmorUpgrade + RevealsShroud: + Range: 4c768 + Power: + Amount: -100 + ProvidesPrerequisite@ordosprerequisite: + Prerequisite: hightech.ordos + Factions: ordos + SpawnActorOnDeath@bigcrater: + Offset: 0,2 + GrantConditionOnFaction@Atreidesdropship: + Condition: atreides + Factions: atreides + GrantConditionOnFaction@Ordosdropship: + Condition: ordos + Factions: ordos + GrantConditionOnFaction@harkonnendropship: + Condition: corrino + Factions: corrino + GrantConditionOnFaction@Corrinodropship: + Condition: harkonnen + Factions: harkonnen + -AirstrikePower: + 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: 5700 + LifeTime: 1000 + StartFullyCharged: false + Name: Harkonnen Armorred Dropship + Description: Harkonnen Armorred Drop ship that drop infantry squad with officer + EndChargeSpeechNotification: Reinforce + SupportPowerPaletteOrder: 60 + DisplayBeacon: True + OrderName: harkonnen_reinforcements + RequiresCondition: harkonnen + SpawnActorPower@enhancedAirAtreides: + EffectImage: frigate.atreides + EffectSequence: + Actor: waypoint.reinforce_at + Icon: AtAirDrop + Prerequisites: ~techlevel.superweapons, upgrade.hightech + ChargeInterval: 5700 + LifeTime: 1000 + StartFullyCharged: false + Name: Atreides Armorred Dropship + Description: Atreides Armorred Drop ship that drop infantry squad with officer + EndChargeSpeechNotification: Reinforce + SupportPowerPaletteOrder: 60 + DisplayBeacon: True + OrderName: atreides_reinforcements + RequiresCondition: atreides + SpawnActorPower@enhancedAirOrdos: + EffectImage: frigate.ordos + EffectSequence: + Actor: waypoint.reinforce_or + Icon: OrAirDrop + Prerequisites: ~techlevel.superweapons, upgrade.hightech + ChargeInterval: 5700 + LifeTime: 1000 + StartFullyCharged: false + Name: Ordos Armorred Dropship + Description: Ordos Armorred Drop ship that drop infantry squad with officer + EndChargeSpeechNotification: Reinforce + SupportPowerPaletteOrder: 60 + DisplayBeacon: True + OrderName: ordos_reinforcements + RequiresCondition: ordos + 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 + +research_centre: + Inherits@IDISABLE: ^DisableOnLowPower + Buildable: + BuildDuration: 650 + Prerequisites: outpost, heavy_factory, ~techlevel.high + Valued: + Cost: 1600 + Health: + HP: 32500 + GrantConditionOnPrerequisite: + Condition: ArmorUpgrade + Prerequisites: upgrade.conyard + Armor: + Type: building + RequiresCondition: ArmorUpgrade + Armor@weakArmor: + Type: buildingWeak + 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 + +palace: + Inherits: ^Building + Inherits@PRIMARY: ^PrimaryBuilding + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + 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: 4000 + Tooltip: + Name: Palace + D2kBuilding: + Footprint: xx= xxx =xx + Dimensions: 3,3 + Health: + HP: 50000 + 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: -400 + RallyPoint: + ProvidesPrerequisite@nuke: + Prerequisite: palace.nuke + Factions: harkonnen + ProvidesPrerequisite@fremen: + Prerequisite: palace.fremen + Factions: fremen + 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: 8800 + 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: 10c0 + CameraRemoveDelay: 75 + ArrowSequence: arrow + CircleSequence: circles + FlightVelocity: 384 + TrailInterval: 0 + TrailImage: large_trail + TrailSequences: idle + SupportPowerPaletteOrder: 40 + MissileImage: deathhand + SpawnActorPower@EnhancedAirAtreides: + EffectImage: carryall.husk_on_land + EffectSequence: + Actor: waypoint.airtstrike_a + Icon: ornistrike + Prerequisites: ~techlevel.superweapons + ChargeInterval: 8300 + 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@wormrider: + EffectImage: Carryall + Actor: worm_rider + Name: Worm rider + Description: Deploy Wormride who can invocate and ride worm + ChargeInterval: 7000 + LifeTime: -1 + Icon: sandworm + StartFullyCharged: false + Prerequisites: ~techlevel.high + SupportPowerPaletteOrder: 90 + OrderName: SpawnActorPowerInfoOrder.wormride + RequiresCondition: atreides + Production@wormriderproduction: + Produces: Fremen + 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 + RequiresCondition: ordos + 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: 6500 + Icon: sardaukarVeterancy + PauseOnCondition: disabled + Prerequisites: ~techlevel.superweapons, ~palace.nuke + ReadyAudio: Reinforce + StartFullyCharged: false + LaunchSound: audio/HI_releaseTheSardaukar01.wav + BlockedAudio: NoRoom + LaunchSpeechNotification: release_sardaukars + OrderName: Orderproduction.sardaukar + SupportPowerPaletteOrder: 25 + Production@Saudarkar: + Produces: Saudarkar + + 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@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: + +palace.harkonnen: + Inherits: ^Building + Inherits@IDISABLE: ^DisableOnLowPowerOrPowerDown + Valued: + Cost: 4000 + Health: + HP: 55000 + Armor: + Type: cy + RevealsShroud: + Range: 4c768 + Power: + Amount: -400 + 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 + 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: Infantry + 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, ~palace.nuke + 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: 1500 + Prerequisites: construction_yard + Description: Unlocks Large Concrete Slab, Rocket Turret \n UPGRADE BUILDING ARMOR!!! + Valued: + Cost: 1500 + +upgrade.barracks: + Buildable: + Prerequisites: barracks, ~!choosefaction + BuildDuration: 900 + Valued: + Cost: 500 + RenderSprites: + Image: barracks.ordos + FactionImages: + atreides: barracks.atreides + fremen: barracks.fremen + harkonnen: barracks.harkonnen + corrino: barracks.corrino + mercenary: barracks.smuggler + +upgrade.wind: + Inherits: upgrade.barracks + AlwaysVisible: + Tooltip: + Name: Windtrap upgrade + Buildable: + Prerequisites: research_centre + BuildDuration: 1500 + Description: Increase amount of produced power + PowerMultiplier: + Modifier: 15 + RenderSprites: + Image: power.atreides +upgrade.light: + Buildable: + Prerequisites: light_factory, ~!choosefaction + BuildDuration: 1000 + Valued: + Cost: 800 + +upgrade.heavy: + Buildable: + Prerequisites: heavy_factory, ~!choosefaction + BuildDuration: 1200 + Valued: + Cost: 1500 + + +upgrade.outpost: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Outpost upgrade + Buildable: + BuildPaletteOrder: 80 + Prerequisites: ~outpost + BuildLimit: 1 + BuildDuration: 1500 + BuildDurationModifier: 100 + Description: Unlocks Hide ability + Valued: + Cost: 1500 + RenderSprites: + Image: outpost.ordos + ProvidesPrerequisite@name: + Prerequisite: radar + +upgrade.outpost2: + Inherits: upgrade.outpost + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Outpost upgrade + Buildable: + BuildPaletteOrder: 80 + Prerequisites: ~outpost, ~upgrade.outpost + BuildLimit: 1 + BuildDuration: 1500 + BuildDurationModifier: 100 + Description: Unlocks Hide ability + Valued: + Cost: 1500 + RenderSprites: + Image: outpost.ordos + ProvidesPrerequisite: + Prerequisite: radar2 + +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.radar: + AlwaysVisible: + Interactable: + ScriptTriggers: + Tooltip: + Name: Oupost uprgrade 1 + Buildable: + BuildPaletteOrder: 50 + Prerequisites: outpost + Queue: Upgrade + BuildLimit: 1 + BuildDuration: 937 + BuildDurationModifier: 100 + Description: Unlocks new outpost ability + Valued: + Cost: 1500 + RenderSprites: + Image: outpost.ordos + 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: ~hightech.enableupgrade + BuildDuration: 1500 + Description: Unlocks Hight tech Support powers + Valued: + Cost: 1700 + 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/Enhanced_Units09.yaml b/Enhanced_Units09.yaml new file mode 100644 index 0000000..976025b --- /dev/null +++ b/Enhanced_Units09.yaml @@ -0,0 +1,2625 @@ +^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: 100 + 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 + GrantConditionOnDamageState@HEAVY: + Condition: heavy-damage + ValidDamageStates: Heavy, Critical + 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 + WithDamageOverlay: + MinimumDamageState: Heavy + Image: smoke_m + IdleSequence: smokeFromRA01idle + LoopSequence: smokeFromRA01loop + 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: + Capacity: 28 + HarvestFacings: 8 + Resources: Spice + BaleUnloadDelay: 6 + SearchFromProcRadius: 40 + SearchFromHarvesterRadius: 20 + EmptyCondition: harvesterEmpty + Health: + HP: 45000 + Mobile: + Speed: 38 + RevealsShroud: + Range: 4c512 + 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, 7c0 + RequiresCondition: !harvesterEmpty + ThrowsShrapnel@DeathHandClusterDebris: + Weapons: DeathHandClusterDebris + Pieces: 1, 4 + Range: 1c0, 6c0 + RequiresCondition: !harvesterEmpty + ThrowsShrapnel@ShrapnelEmpty: + Weapons: Debris, Debris2 + Pieces: 0, 3 + Range: 1c0, 7c0 + RequiresCondition: harvesterEmpty + ThrowsShrapnel@throwSpice: + Weapons: HarvesterSpiceExplosion + Pieces: 1, 7 + Range: 1c0, 8c0 + RequiresCondition: !harvesterEmpty + ThrowsShrapnel@wheel: + Weapons: debris_harvester_wheel01, debris_harvester_wheel02 + Pieces: 0, 2 + Range: 3c0, 5c0 + +harvester_upgraded: + Inherits: harvester + Buildable: + Description: Collects more spice, has more health + Prerequisites: refinery, upgrade.hightech + Tooltip: + Name: Upgraded Harvester + Valued: + Cost: 2000 + WithDockingAnimation: + Harvester: + Capacity: 40 + HarvestFacings: 8 + Resources: Spice + BaleUnloadDelay: 5 + SearchFromProcRadius: 64 + SearchFromHarvesterRadius: 32 + EmptyCondition: harvesterEmpty + Health: + HP: 90000 + Mobile: + Speed: 40 + RevealsShroud: + Range: 5c512 + + + +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: 325 + Selectable: + Class: trike + Health: + HP: 9000 + Armor: + Type: light + Mobile: + Locomotor: light_vehicle + TurnSpeed: 40 + Speed: 112 + 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: 375 + Tooltip: + Name: Raider Trike + RevealsShroud: + Range: 7c0 + UpdatesPlayerStatistics: + AddToArmyValue: true + Health: + HP: 10000 + Armor: + Type: light + Mobile: + Locomotor: light_vehicle + TurnSpeed: 40 + Speed: 132 + 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 + +cobra_vehicle: + Inherits: quad + AutoTargetPriority@bot: + ValidTargets: Vehicle, Structure, Tank + InvalidTargets: Infantry + Priority: 50 + RequiresCondition: ignore-creeps + Buildable: + Prerequisites: ~disabled + Health: + HP: 7500 + Armor: + Type: light + Mobile: + Locomotor: light_vehicle + TurnSpeed: 40 + Speed: 150 + RevealsShroud: + Range: 9c0 + Armament: + Weapon: Rocket.cobra + LocalOffset: 64,32,32, 64,-32,32 + Armament@chaos_bomb_influence: + Weapon: Rocket + LocalOffset: 64,32,32, 64,-32,32 + 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 + BuildDuration: 270 + 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: 110 + Tooltip: + Name: Stealth Raider Trike + RevealsShroud: + Range: 5c512 + 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: 45 + 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: 35000 + Armor: + Type: light + Mobile: + TurnSpeed: 15 + Speed: 27 + 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: 730 + 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: 55000 + Armor: + Type: heavy + Mobile: + TurnSpeed: 12 + Speed: 27 + 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: 47 + Health: + HP: 22000 + 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, 3c512 + 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: 61 + TurnSpeed: 17 + 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: 80 + 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.reinforce: + Inherits: ^Plane + Valued: + Cost: 1200 + UpdatesPlayerStatistics: + AddToAssetsValue: false + Tooltip: + Name: Carryall + Health: + HP: 12000 + Armor: + Type: light + Aircraft: + CruiseAltitude: 2160 + CruisingCondition: cruising + Speed: 125 + 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 + + +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: 100 + Description: Anti-tank infantry\n Strong vs Tanks\n Weak vs Infantry, Artillery, Moving targets + Valued: + Cost: 120 + 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 + +trooper.heavy: + Inherits: trooper + Buildable: + Prerequisites: ~disabled + Valued: + Cost: 200 + Mobile: + Speed: 35 + Health: + HP: 9500 + Armament: + Weapon: LMG.elite + LocalOffset: 128,0,256 + Armament@chaos_bomb_influence: + Weapon: LMG.elite + LocalOffset: 128,0,256 + Tooltip: + Name: Elite Soldier + +engineer: + Inherits@botLogic: ^BotLogicEngineer + Buildable: + Prerequisites: upgrade.barracks, ~techlevel.medium + BuildDuration: 180 + 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: 4c512 + Mobile: + Speed: 31 + PauseOnCondition: deployed + InstantlyRepairs: + Types: Building + -Passenger: + CaptureManager: + Captures: + CaptureTypes: building + Captures@cliff: + CaptureTypes: cliff + ConsumedByCapture: false + CaptureDelay: 150 + Captures@husks: + CaptureTypes: husk + 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: 100 + 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, research_centre, high_tech_factory, ~techlevel.medium, ~factions.standard + BuildDuration: 175 + 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 + 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 + 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: 150000 + 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 + 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@AUTOTARGET: ^AutoTargetGroundAssaultMove + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: ignore-creeps + Selectable: + Priority: 10 + PriorityModifiers: Ctrl, Alt + RevealsShroud: + Range: 4c856 + Buildable: + Queue: Infantry + BuildPaletteOrder: 60 + Prerequisites: ~barracks.ordos, research_centre, ~techlevel.medium, upgrade.barracks + BuildDuration: 175 + BuildDurationModifier: 100 + Description: Mortar infantry, \n Strong VS infantry, Buildings, light \n weak VS heavy + Valued: + Cost: 250 + Tooltip: + Name: Mortar Infantry + UpdatesPlayerStatistics: + AddToArmyValue: true + Health: + HP: 7500 + Mobile: + Speed: 30 + Turreted: + Turret: turret + WithIdleOverlay@sand: + Sequence: thump-sand + RequiresCondition: AnimateTurret + GrantConditionOnAttack: + Condition: AnimateTurret + RevokeDelay: 14 + Armament: + Weapon: 40mm_mortar + LocalOffset: 0,100,200 + Armament@chaos_bomb_influence: + Weapon: 40mm_mortar + RequiresCondition: chaos_bomb + LocalOffset: 0,100,200 + GrantCondition: + Condition: editorhack + WithInfantryBody@Editor: + RequiresCondition: !editorhack + +assassin: + Inherits: ^Infantry + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Valued: + Cost: 110 + Buildable: + Queue: Infantry + BuildPaletteOrder: 70 + Prerequisites: ~!factions.standard, ~barracks.harkonnen, upgrade.barracks, high_tech_factory, ~techlevel.high + BuildDuration: 130 + 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: ~barracks.atreides, upgrade.barracks, research_centre + 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 + PauseOnCondition: deployed + -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: + UndeployOnMove: false + DeployedCondition: deployed + UndeployedCondition: undeployed + Facing: 768 + DeploySounds: audio/EBoD_MortarDeploy.wav + UndeploySounds: audio/EBoD_MortarUndeploy.wav + SkipMakeAnimation: false + WithInfantryBody: + RequiresCondition: undeployed + WithSpriteBody@DEPLOYED: + Sequence: invisible + RequiresCondition: !undeployed + Turreted: + TurnSpeed: 200 + InitialFacing: 640 + RealignDelay: -1 + Turret: turret + 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 + + +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: research_centre, ~heavy.ordos, ~techlevel.high, ~factions.subfaction_allowed + BuildDuration: 540 + BuildDurationModifier: 100 + BuildPaletteOrder: 100 + Description: Heavy tank licensed from IX \n Strong VS vehicles, Tanks \n Weak VS infantry + Health: + HP: 30000 + Valued: + Cost: 950 + Tooltip: + Name: Bison tank + Armor: + Type: heavy + Mobile: + Speed: 60 + TurnSpeed: 20 + Locomotor: tank + PauseOnCondition: notmobile + RevealsShroud: + Range: 5c0 + Armament: + Weapon: 90mm_bison + Recoil: 128 + RecoilRecovery: 32 + LocalOffset: 0,0,0 + MuzzleSequence: muzzle + Turreted: + TurnSpeed: 20 + RealignDelay: 0 + AttackTurreted: + Explodes: + Weapon: UnitExplodeMed + EmptyWeapon: UnitExplodeMed + WithMuzzleOverlay: + WithSpriteTurret: + Armament@chaos_bomb_influence: + Weapon: 90mm_bison + 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: Wormrider + Mobile: + Speed: 43 + KillsSelf: + Delay: 600 + GrantsCondition: spawnWorm + RequiresCondition: deployed && desert_terain + GrantConditionOnDeploy: + DeployedCondition: deployed + UndeployedCondition: undeployed + PauseOnCondition: deployed + 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: upgrade.light, research_centre + BuildPaletteOrder: 10 + BuildDuration: 340 + Description: Trike with turret \n Stronger vs Troopers, moving targets + Tooltip: + Name: Heavy Trike + Valued: + Cost: 450 + Health: + HP: 15000 + Turreted: + TurnSpeed: 25 + Offset: -200,0,30 + RealignDelay: 0 + AttackFrontal: + FacingTolerance: 0 + WithMuzzleOverlay: + AttackTurreted: + WithSpriteTurret: + RevealsShroud: + Range: 8c0 + Mobile: + Speed: 110 + Armament@damage: + Weapon: HMG.hunter + 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 crush infantry + Health: + HP: 15000 + Valued: + Cost: 500 + 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 + -Armament@chaos_bomb_influence: + +bombardment_tank: + Inherits: ^Vehicle + Inherits@GAINSEXPERIENCE: ^GainsExperience + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Buildable: + Queue: Armor + Prerequisites: upgrade.heavy, research_centre + 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: 585 + 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: 21000 + Valued: + Cost: 1000 + Tooltip: + Name: Flamer + Armor: + Type: heavy + Mobile: + Speed: 70 + 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.atreides_cargo: + Inherits: frigate.harkonnen_cargo + +frigate.ordos_cargo: + Inherits: frigate.harkonnen_cargo + +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/Enhanced_Weapons09.yaml b/Enhanced_Weapons09.yaml new file mode 100644 index 0000000..cd60f57 --- /dev/null +++ b/Enhanced_Weapons09.yaml @@ -0,0 +1,1379 @@ + +^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 + buildingWeak: 40 + wood: 50 + light: 35 + heavy: 13 + invulnerable: 0 + cy: 10 + 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.elite: + Inherits: ^MG + Range: 4c0 + ReloadDelay: 36 + Range: 3c0 + Report: audio/elite.wav + Projectile: InstantHit + Inaccuracy: 128 + InaccuracyType: PerCellIncrement + Blockable: true + Warhead@1Dam: SpreadDamage + Damage: 2750 + Spread: 600 + Falloff: 100, 0 + Versus: + wall: 55 + building: 55 + buildingWeak: 70 + wood: 75 + light: 70 + heavy: 60 + invulnerable: 0 + cy: 40 + harvester: 40 + +LMG: + Inherits: ^MG + +Fremen_S: + Inherits: ^MG + ReloadDelay: 48 + Report: FREMODD1.WAV + Warhead@2Eff: CreateEffect + Explosions: small_explosion + +M_LMG: + Inherits: ^MG + ReloadDelay: 40 + ValidTargets: Infantry + +M_LMG_H: + Inherits: M_LMG + ReloadDelay: 40 + +M_HMG: + Inherits: ^MG + ReloadDelay: 48 + Range: 3c960 + Report: 20MMGUN1.WAV + InvalidTargets: Infantry + Warhead@1Dam: SpreadDamage + Damage: 2900 + Versus: + none: 28 + wall: 63 + building: 55 + buildingWeak: 64 + wood: 68 + light: 73 + heavy: 74 + invulnerable: 0 + cy: 25 + harvester: 58 + Warhead@3Concrete: DamagesConcrete + Damage: 645 + +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 + TrailPalette: effect75alpha + 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: 20 + buildingWeak: 20 + 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: 3c850 + Warhead@1Dam: SpreadDamage + Versus: + building: 30 + buildingWeak: 40 + wall: 50 + +Fremen_S_MP: + Inherits: Fremen_S + +HMG: + Inherits: ^MG + ReloadDelay: 24 + Range: 3c650 + Report: 20MMGUN1.WAV + Projectile: InstantHit + Inaccuracy: 135 + Warhead@1Dam: SpreadDamage + Damage: 2160 + Spread: 700 + Versus: + wall: 10 + none: 120 + building: 28 + buildingWeak: 45 + wood: 60 + light: 30 + heavy: 15 + invulnerable: 0 + cy: 10 + harvester: 25 + Warhead@3Concrete: DamagesConcrete + Damage: 1800 + +HMG.hunter: + Inherits: ^MG + ReloadDelay: 24 + Range: 3c650 + Report: 20MMGUN1.WAV + Projectile: InstantHit + Inaccuracy: 135 + Warhead@1Dam: SpreadDamage + Damage: 2350 + Spread: 700 + Versus: + wall: 20 + none: 125 + building: 30 + buildingWeak: 45 + wood: 65 + light: 35 + heavy: 20 + invulnerable: 0 + cy: 30 + harvester: 25 + Warhead@3Concrete: DamagesConcrete + Damage: 2000 + +HMGo: + Inherits: HMG + ReloadDelay: 21 + +HMG_muzzle: + ReloadDelay: 20 + +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 + +90mm_bison: + Inherits: 110mm_Gun + Burst: 1 + ReloadDelay: 55 + BurstDelays: 15 + Range: 4c850 + Warhead@1Dam: SpreadDamage + Damage: 3510 + Versus: + none: 40 + wall: 50 + light: 80 + building: 60 + buildingWeak: 70 + wood: 80 + heavy: 100 + 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: 45 + buildingWeak: 65 + light: 100 + wood: 80 + 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: 4c0 + 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 + + +155mm: + Inherits: ^Cannon + ReloadDelay: 105 + Range: 7c512 + MinRange: 2c0 + Projectile: Bullet + Inaccuracy: 175 + Speed: 192 + LaunchAngle: 85 + ContrailLength: 10 + Warhead@1Dam: SpreadDamage + Damage: 4800 + Spread: 1c780 + Falloff: 100, 0 + Versus: + none: 125 + wall: 100 + building: 100 + buildingWeak: 110 + wood: 70 + light: 40 + heavy: 20 + invulnerable: 0 + cy: 60 + harvester: 50 + DamageTypes: ExplosionDeath, Prone50Percent + Warhead@triggerProne: TargetDamage + Damage: 1 + Spread: 1c700 + DamageTypes: TriggerProne + Warhead@2Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + +155mm_heavy: + Inherits: 155mm + Warhead@1Dam: SpreadDamage + Damage: 5000 + Spread: 1c780 + Falloff: 100, 0 + Versus: + none: 135 + wall: 110 + building: 110 + buildingWeak: 120 + wood: 80 + light: 50 + heavy: 30 + invulnerable: 0 + cy: 70 + harvester: 50 +DevBullet: + Range: 4c512 + ReloadDelay: 80 + Speed: 281 + Warhead@1Dam: SpreadDamage + Damage: 7350 + Spread: 1c150 + Versus: + none: 70 + wall: 100 + building: 80 + buildingWeak: 80 + wood: 95 + heavy: 90 + invulnerable: 0 + cy: 50 + harvester: 100 + DamageTypes: Prone50Percent, TriggerProne, FireDeath + +^Rocket: + ReloadDelay: 55 + Range: 3c552 + 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: 50 + building: 40 + buildingWeak: 50 + wood: 45 + light: 70 + heavy: 100 + invulnerable: 0 + cy: 20 + harvester: 60 + +Rocket.cobra: + Inherits: ^Rocket + ReloadDelay: 2 + Range: 4c552 + Report: bits/cobra.wav + Projectile: Bullet + Blockable: true + Speed: 340 + Inaccuracy: 128 + Warhead@1Dam: SpreadDamage + Damage: 1500 + Spread: 600 + Falloff: 100, 0 + Versus: + none: 60 + wall: 20 + building: 15 + buildingWeak: 15 + wood: 20 + light: 15 + heavy: 10 + invulnerable: 0 + cy: 5 + harvester: 5 + +Bazooka: + Inherits: ^Rocket + Warhead@1Dam: SpreadDamage + Damage: 3600 + +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 + buildingWeak: 60 + wood: 65 + light: 90 + heavy: 50 + invulnerable: 0 + cy: 20 + harvester: 60 + +^Missile: + Inherits: ^Rocket + ReloadDelay: 72 + Range: 8c512 + MinRange: 0c512 + 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: 850 + Falloff: 100, 10 + Versus: + none: 20 + wall: 75 + building: 60 + buildingWeak: 70 + wood: 65 + light: 80 + heavy: 100 + invulnerable: 0 + cy: 30 + harvester: 60 + +mtank_pri: + Inherits: ^Missile + Report: audio/tankMissile.wav + ReloadDelay: 145 + Burst: 2 + BurstDelays: 30 + Range: 8c0 + MinRange: 1c512 + 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/tankBombar.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: 1c450 + Versus: + none: 100 + wall: 60 + building: 80 + buildingWeak: 100 + wood: 100 + light: 90 + heavy: 50 + invulnerable: 0 + cy: 60 + 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: 192 + Range: 6c0 + Projectile: Missile + RangeLimit: 6c512 + Inaccuracy: 96 + Warhead@1Dam: SpreadDamage + Damage: 2000 + Spread: 512 + Versus: + none: 100 + wall: 100 + building: 100 + buildingWeak: 115 + 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: deviatorgas + UsePlayerPalette: true + + + + +Sound: + ReloadDelay: 100 + Range: 6c0 + Report: SONIC1.WAV + Projectile: AreaBeam + Inaccuracy: 128 + InaccuracyType: PerCellIncrement + Duration: 4 + DamageInterval: 3 + Width: 850 + Shape: Flat + Falloff: 20, 100, 0, 0 + Range: 0, 6c0, 7c512 + BeyondTargetRange: 0c0 + MinDistance: 6c950 + 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: 110 + wall: 190 + building: 105 + buildingWeak: 120 + wood: 108 + light: 119 + heavy: 125 + invulnerable: 0 + cy: 30 + harvester: 60 + + +OrniBomb_multipass: + Inherits: OrniBomb + ReloadDelay: 60 + Burst: 10 + BurstDelays: 6 + Range: 4c0 + 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: 107 + wall: 173 + building: 93 + buildingWeak: 105 + wood: 113 + light: 125 + heavy: 141 + 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: 6200 + Spread: 1c512 + Versus: + none: 130 + wall: 15 + building: 45 + buildingWeak: 65 + wood: 110 + light: 110 + heavy: 34 + 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: FlashPaletteEffect + 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: 7700 + Spread: 2c950 + Versus: + none: 103 + wall: 142 + building: 62 + buildingWeak: 72 + wood: 95 + light: 55 + heavy: 55 + invulnerable: 0 + cy: 30 + 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 + Spread: 1c112 + Falloff: 100, 0 + Versus: + none: 125 + building: 60 + buildingWeak: 80 + wall: 50 + wood: 70 + light: 40 + 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 + buildingWeak: 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 + buildingWeak: 100 + wood: 150 + 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 + ExplosionPalette: deviatorgas + 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: 20000 + 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@2Dam: SpreadDamage + Damage: 20000 + Spread: 6c0 + Falloff: 100, 20 + ValidRelationships: Ally + 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, 20 + Versus: + none: 100 + building: 0 + buildingWeak: 0 + wall: 10 + wood: 20 + light: 30 + heavy: 10 + invulnerable: 0 + cy: 0 + harvester: 0 + Warhead@Sound: CreateEffect + ImpactSounds: EXPLMD1.WAV + -Warhead@2Dam: + 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 + buildingWeak: 70 + 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: 25 + wall: 75 + building: 60 + wood: 65 + light: 80 + heavy: 100 + 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: 90 + Range: 5c0 + MinRange: 2c0 + Report: audio/mortarInf.wav + Projectile: Bullet + Speed: 105 + Blockable: false + Inaccuracy: 100 + Shadow: true + LaunchAngle: 160 + ContrailLength: 20 + Image: 155mm + Warhead@1Dam: SpreadDamage + Damage: 2750 + Spread: 1c350 + Falloff: 100, 0 + Versus: + none: 75 + wall: 55 + building: 50 + wood: 70 + light: 65 + heavy: 18 + invulnerable: 0 + cy: 30 + harvester: 30 + 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 + buildingWeak: 80 + wood: 70 + 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: 2c112 + 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: 6c0 + ValidTargets: Ground, Infantry + InvalidTargets: Vehicle, Tank, Structure, Wall, Husk, Creep + Projectile: InstantHit + Inaccuracy: 220 + Warhead@1Dam: SpreadDamage + Spread: 160 + Falloff: 100, 10 + Damage: 10000 + ValidTargets: Infantry + DamageTypes: Prone50Percent, BulletDeath + DamageCalculationType: ClosestTargetablePosition + Warhead@TriggerProne: SpreadDamage + Spread: 150 + Falloff: 100, 100 + Damage: 1 + DamageTypes: TriggerProne, BulletDeath + Warhead@3Eff: CreateEffect + Explosions: heavy_piff + +flamethrower: + Range: 3c750 + ReloadDelay: 38 + Burst: 5 + BurstDelays: 5 + FirstBurstTargetOffset: 0, 0, 0 + FollowingBurstTargetOffset: 50,-50,0 + StartBurstReport: FLAMER1.WAV + Projectile: Bullet + Inaccuracy: 350 + Speed: 180 + InaccuracyType: PerCellIncrement + TrailImage: flame_trail + TrailSequences: idle, small_napalm_trail + TrailInterval: 0 + TrailDelay: 1 + Warhead@1damage: SpreadDamage + Spread: 1c0 + Damage: 2000 + Falloff: 100, 0 + Versus: + none: 110 + wall: 30 + building: 80 + buildingWeak: 90 + wood: 70 + light: 60 + heavy: 25 + invulnerable: 0 + cy: 25 + harvester: 70 + 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: deviatorgas + UsePlayerPalette: true + ImpactSounds: audio/daisygas.wav + ImpactActors: false + Warhead@extenalcondition: GrantExternalCondition + Condition: chaos_bomb + Duration: 550 + Range: 1c0 + +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: deviatorgas + 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 + +WormJaw: + ReloadDelay: 10 + InvalidTargets: Structure + Range: 1c512 + Warhead@NeededForTargeting: TargetDamage + InvalidTargets: Structure \ No newline at end of file diff --git a/Enhanced_WeaponsFX.yaml b/Enhanced_WeaponsFX.yaml new file mode 100644 index 0000000..bd0fd81 --- /dev/null +++ b/Enhanced_WeaponsFX.yaml @@ -0,0 +1,451 @@ +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 + TrailPalette: effect75alpha + 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 + TrailPalette: effect75alpha + 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: FlashPaletteEffect + 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/Enhanced_World09.yaml b/Enhanced_World09.yaml new file mode 100644 index 0000000..d488817 --- /dev/null +++ b/Enhanced_World09.yaml @@ -0,0 +1,752 @@ +^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**** XLegacy ****\n\n Based on N.N,> Enhanced mod. New infantry units added - Fremen for Atreides, Mortar infatry for Ordos. New vehicle unit added - Heavy trike. New tank unit added -Bombardment tank. Ordos airstrike changed to chaos Bomb. Atreides and Ordos airstrike are now pruduced in Palace. High_tech upgrade provides strong armored air drop - squad of Elite soldiers and officer. Atreides Airstrikes and DeathHand are more deathly. Outpost has better RevealShroud and has unique upgrade ability based on choosed faction - Hide ability for Atreides, RevealShroud for Harkonnen, Jam ability for Ordos. Saboteur RevealShroud increased. CY and Palace increased HP, Palace consumes more power now. Harkonnen can produce Sardaukar faster as new Palace abbilitie. Atreides palace produces officers. \n\n New Optimus ai added for more variable gameplay expirience. \n\n XLegecy2beta. New lobby options - Starport units up to 9 and new crates with better content. Each faction has unique airdrop. Officer provides better bonus and is spawn in barracks. Atreides can spawn wormrider. You can order Bombardment tank and heavy trike from Starport. Mortar infantry has better balance. You can start with additional MCV. New sounds for missile tank and Mortar inf. New Virtus AI added. New soundtrack added. + MapOptions: + TechLevelDropdownVisible: false + TechLevel: unrestricted + ShortGameCheckboxVisible: true + GameSpeed: fast + CrateSpawner: + CheckboxEnabled: true + CheckboxLocked: false + CheckboxVisible: true + SpawnInterval: 1250 + WaterChance: 0 + ValidGround: Sand, Rock, Transition, Spice, SpiceSand, Dune, Concrete + InitialSpawnDelay: 1250 + CheckboxDisplayOrder: 1 + 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: + 1: After 1 min + 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: Factions mode + Description: Main FACTION: Standard D2k with Enhanced rules \n- SUBFACTIONS enabled: Play as Main faction or one of its sub-factions \n Subfaction Merged: Subfaction tech tree will merged into your tech tree. + Default: 0 + Values: + 0: Main factions only + 1: Subfactions enabled + 2: Subfaction Merged + Visible: false + DisplayOrder: 11 + ScriptLobbyDropdown@extendedStarport: + ID: extendedStarport + Label: Starport mode + Description: Squad size you can order via starport. + Default: 6 + Values: + 6: 6 units + 7: 7 units + 8: 8 units + 9: 9 units + Visible: true + DisplayOrder: 10 + 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: 1 Free Carryall + BaseActor: choosefaction + Factions: atreides, ordos, harkonnen, corrino, mercenary, smuggler, fremen + SupportActors: Carryall + InnerSupportRadius: 3 + OuterSupportRadius: 6 + StartingUnits@lightatreides: + Class: light + ClassName: 1 Carryall, Light Support + Factions: atreides, ordos, harkonnen, corrino, mercenary, smuggler, fremen + BaseActor: choosefaction + SupportActors: Carryall, light_inf, trooper, engineer, trike, quad, missile_tank + InnerSupportRadius: 3 + OuterSupportRadius: 6 + StartingUnits@lightharkonnen: + Class: lightTwo + ClassName: 2 Carryall, Light Support + Factions: atreides, ordos, harkonnen, corrino, mercenary, smuggler, fremen + BaseActor: choosefaction + SupportActors: Carryall, Carryall, light_inf, trooper, engineer, trike, quad, missile_tank + InnerSupportRadius: 3 + OuterSupportRadius: 6 + StartingUnits@lightordos: + Class: lightthree + ClassName: 3 Carryall, Light Support + Factions: atreides, ordos, harkonnen, corrino, mercenary, smuggler, fremen + BaseActor: choosefaction + SupportActors: Carryall, Carryall, Carryall, light_inf, trooper, trike, engineer, quad, missile_tank + InnerSupportRadius: 3 + OuterSupportRadius: 6 + StartingUnits@heavyatreides: + Class: heavyOne + ClassName: 2 Free Carryall, 1 MCV + Factions: atreides, ordos, harkonnen, corrino, mercenary, smuggler, fremen + BaseActor: choosefaction + SupportActors: Carryall, Carryall, mcv, light_inf, trooper, trike, engineer, quad, missile_tank + InnerSupportRadius: 3 + OuterSupportRadius: 6 + StartingUnits@heavyharkonnen: + Class: heavyTwo + ClassName: 3 Free Carryall, 1 MCV + Factions: atreides, ordos, harkonnen, corrino, mercenary, smuggler, fremen + BaseActor: choosefaction + SupportActors: Carryall, Carryall, Carryall, mcv, light_inf, trooper, trike, engineer, quad, missile_tank + InnerSupportRadius: 3 + OuterSupportRadius: 6 + StartingUnits@heavyordos: + Class: ultra + ClassName: 4 Free Carryall, 1MCV + Factions: atreides, ordos, harkonnen, corrino, mercenary, smuggler, fremen + BaseActor: choosefaction + SupportActors: Carryall, Carryall, Carryall, Carryall, mcv, light_inf, trooper, trike, engineer, quad, missile_tank + InnerSupportRadius: 3 + OuterSupportRadius: 6 + FlashPaletteEffect: + Type: flash + Color: E2DD8F4D + TerrainLighting: + ActorSpawnManager: + Actors: sandworm + Minimum: 4 + Maximum: 10 + SpawnInterval: 300 + + + + +Player: + DeveloperMode: + Shroud: + ExploredMapCheckboxEnabled: true + ExploredMapCheckboxLocked: true + FogCheckboxEnabled: true + FogCheckboxLocked: true + LobbyPrerequisiteCheckbox@AUTOCONCRETE: + Enabled: True + Visible: True + Locked: True + LobbyPrerequisiteCheckbox@CratesChanger: + ID: CratesGameChanger + Label: Powerful Crates + Description: Crates with more powerful content + Enabled: true + Visible: true + DisplayOrder: 2 + Prerequisites: ext.crate + LobbyPrerequisiteCheckbox@FreeCarryCheckBox: + ID: FreeCarryCheckBox + Label: Additional MCV + Description: Give 1 more MCV to all players + Enabled: false + Visible: false + DisplayOrder: 7 + Prerequisites: FreeCarry + LobbyPrerequisiteCheckbox@EnhancedAirCombat: + ID: EnhancedAirCombat + Label: New Air Combat + Description: Unigue Air Support power for every faction + Enabled: true + Visible: false + Locked: true + DisplayOrder: 8 + Prerequisites: enhancedAirCombat + 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, 75, 60, 45 + ClassicProductionQueue@Building: + BuildTimeSpeedReduction: 100, 75, 50, 40 + ClassicProductionQueue@Vehicle: + 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: 9 + 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 + ProductionIconOverlayManager@StarportsOverlay7: + Image: choam_unit_number + Sequence: 7 + Type: 7 + ProductionIconOverlayManager@StarportsOverlay8: + Image: choam_unit_number + Sequence: 8 + Type: 8 + ProductionIconOverlayManager@StarportsOverlay9: + Image: choam_unit_number + Sequence: 9 + Type: 9 + 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/Enhanced_notifications.yaml b/Enhanced_notifications.yaml new file mode 100644 index 0000000..1862049 --- /dev/null +++ b/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/Enhanced_palettes.yaml b/Enhanced_palettes.yaml new file mode 100644 index 0000000..3658584 --- /dev/null +++ b/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/Enhanced_voices.yaml b/Enhanced_voices.yaml new file mode 100644 index 0000000..1ff5ed2 --- /dev/null +++ b/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/FREMEN.wav b/FREMEN.wav new file mode 100644 index 0000000..7964428 Binary files /dev/null and b/FREMEN.wav differ diff --git a/HARK_BAT.wav b/HARK_BAT.wav new file mode 100644 index 0000000..5b15153 Binary files /dev/null and b/HARK_BAT.wav differ diff --git a/HI_READY.AUD b/HI_READY.AUD new file mode 100644 index 0000000..8492c2c Binary files /dev/null and b/HI_READY.AUD differ diff --git a/NeutralBuildings.yaml b/NeutralBuildings.yaml new file mode 100644 index 0000000..64f038d --- /dev/null +++ b/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/NewTiles.yaml b/NewTiles.yaml new file mode 100644 index 0000000..53e5b04 --- /dev/null +++ b/NewTiles.yaml @@ -0,0 +1,1267 @@ +^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 + ValidRelationships: Enemy, Neutral, Ally + 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/NewTiles_assets.R8 b/NewTiles_assets.R8 new file mode 100644 index 0000000..6cc7e6a Binary files /dev/null and b/NewTiles_assets.R8 differ diff --git a/OI_READY.AUD b/OI_READY.AUD new file mode 100644 index 0000000..ccc45c1 Binary files /dev/null and b/OI_READY.AUD differ diff --git a/PLOTTING.wav b/PLOTTING.wav new file mode 100644 index 0000000..576312c Binary files /dev/null and b/PLOTTING.wav differ diff --git a/RISEHARK.wav b/RISEHARK.wav new file mode 100644 index 0000000..0e78848 Binary files /dev/null and b/RISEHARK.wav differ diff --git a/Sequences.yaml b/Sequences.yaml new file mode 100644 index 0000000..d1d0228 --- /dev/null +++ b/Sequences.yaml @@ -0,0 +1,194 @@ +skullicon: + idle: bits/ScullIconTD01.shp + Length: * + +purchase: + icon: EnhacedAssets.R8 + Start: 478 + Offset: -30,-24 + +iconchevrons: + veteran: EnhacedAssets.R8 + Start: 741 + Offset: 0,0 + +invisible: + idle: DATA.R8 + Start: 38 + icon: DATA.R8 + Start: 102 + Offset: -16,-16 + +#numbers of items u buy at starport +choam_unit_number: + 1: DATA.R8 + Start: 18 + 2: DATA.R8 + Start: 19 + 3: DATA.R8 + Start: 20 + 4: DATA.R8 + Start: 21 + 5: DATA.R8 + Start: 22 + 6: DATA.R8 + Start: 23 + +frigate: + icon: DATA.R8 + Start: 4290 + Offset: -30,-24 + +refinery_invert.atreidis: + idle: EnhacedAssets.R8 + Start: 304 + Offset: -48,-32 + ZOffset: -600 + idle-front: EnhacedAssets.R8 + Start: 305 + Offset: -48,-32 + ZOffset: 600 + idle-top: EnhacedAssets.R8 + Start: 306 + Offset: -48,-32 + ZOffset: 1024 + damaged-idle: EnhacedAssets.R8 + Start: 304 + Offset: -48,-32 + ZOffset: -600 + damaged-idle-top: EnhacedAssets.R8 + Start: 307 + Offset: -48,-32 + ZOffset: 1024 + bib: EnhacedAssets.R8 + Frames: 7,8,9,10,11,12 + Length: 6 + Offset: -16,-16 + ZOffset: -700 + bib-Concrete: EnhacedAssets.R8 + Frames: 26,27,28,29,30,31 + Length: 6 + Offset: -16,-16 + ZOffset: -700 + make: DATA.R8 + Start: 4495 + Length: 11 + Offset: -48,96 + ZOffset: 1500 + crumble-overlay: DATA.R8 + Start: 4505 + Length: 12 + Offset: -48,96 + Tick: 100 + ZOffset: 1500 + icon: EnhacedAssets.R8 + Start: 308 + Offset: -30,-24 + smoke: DATA.R8 + Start: 4138 + Length: 14 + Offset: 13, 16 + Tick: 100 + BlendMode: Additive + +refinery_invert.ordos: + idle: EnhacedAssets.R8 + Start: 311 + Offset: -54,-26 + ZOffset: -600 + idle-front: EnhacedAssets.R8 + Start: 312 + Offset: -54,-26 + ZOffset: 1000 + idle-top: EnhacedAssets.R8 + Start: 313 + Offset: -54,-22 + ZOffset: 1024 + damaged-idle: EnhacedAssets.R8 + Start: 311 + Offset: -48,-22 + ZOffset: -600 + damaged-idle-top: EnhacedAssets.R8 + Start: 314 + Offset: -54,-22 + ZOffset: 1024 + bib: BLOXBASE.R8 + Frames: 611, 612, 613, 631, 632, 633 + Length: 6 + Offset: -16,-16 + bib-Concrete: BLOXBASE.R8 + Frames: 643, 644, 645, 663, 664, 665 + Length: 6 + Offset: -16,-16 + make: DATA.R8 + Start: 4495 + Length: 11 + Offset: -48,96 + ZOffset: 1500 + crumble-overlay: DATA.R8 + Start: 4505 + Length: 12 + Offset: -48,96 + Tick: 100 + ZOffset: 1500 + icon: EnhacedAssets.R8 + Start: 310 + Offset: -30,-24 + smoke: DATA.R8 + Start: 4138 + Length: 14 + Offset: 13, 16 + Tick: 100 + BlendMode: Additive + + +refinery_invert.harkonnen: + idle: EnhacedAssets.R8 + Start: 315 + Offset: -54,-26 + ZOffset: -600 + idle-front: EnhacedAssets.R8 + Start: 316 + Offset: -54,-26 + ZOffset: 1000 + idle-top: EnhacedAssets.R8 + Start: 317 + Offset: -54,-22 + ZOffset: 1024 + damaged-idle: EnhacedAssets.R8 + Start: 315 + Offset: -48,-22 + ZOffset: -600 + damaged-idle-top: EnhacedAssets.R8 + Start: 318 + Offset: -54,-22 + ZOffset: 1024 + bib: EnhacedAssets.R8 + Frames: 7,8,9,10,11,12 + Length: 6 + Offset: -16,-16 + ZOffset: -700 + bib-Concrete: EnhacedAssets.R8 + Frames: 26,27,28,29,30,31 + Length: 6 + Offset: -16,-16 + make: DATA.R8 + Start: 4495 + Length: 11 + Offset: -48,96 + ZOffset: 1500 + crumble-overlay: DATA.R8 + Start: 4505 + Length: 12 + Offset: -48,96 + Tick: 100 + ZOffset: 1500 + icon: EnhacedAssets.R8 + Start: 309 + Offset: -30,-24 + smoke: DATA.R8 + Start: 4138 + Length: 14 + Offset: 13, 16 + Tick: 100 + BlendMode: Additive \ No newline at end of file diff --git a/Sequences_NeutralBuldings.yaml b/Sequences_NeutralBuldings.yaml new file mode 100644 index 0000000..7682ffa --- /dev/null +++ b/Sequences_NeutralBuldings.yaml @@ -0,0 +1,152 @@ +crane.atreides: + idle: bits/Crane.shp + Start: 0 + Offset: 0, -10 + make: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + crumble-overlay: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + damaged-idle: bits/Crane.shp + Start: 3 + Offset: 0, -10 + bib: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + icon: DATA.R8 + Start: 4310 + Offset: -30,-24 + +crane.harkonnen: + idle: bits/Crane.shp + Start: 1 + Offset: 0, -10 + make: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + bib: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + crumble-overlay: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + damaged-idle: bits/Crane.shp + Start: 4 + Offset: 0, -10 + icon: DATA.R8 + Start: 4311 + Offset: -30,-24 + +crane.ordos: + idle: bits/Crane.shp + Start: 1 + Offset: 0 ,-10 + make: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + crumble-overlay: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + bib: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + damaged-idle: bits/Crane.shp + Start: 2 + Offset: 0, -10 + icon: DATA.R8 + Start: 4312 + Offset: -30,-24 + +spice_sifter: + idle: EnhacedAssets.R8 + Start: 480 + Offset: -32,-40 + damaged-idle: EnhacedAssets.R8 + Start: 481 + Offset: -32,-40 + bib: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + idle-overlay: EnhacedAssets.R8 + Start: 482 + Offset: -32,-40 + Length: 5 + Tick: 100 + +ecology_station: + idle: EnhacedAssets.R8 + Start: 487 + Offset: -26,-24 + damaged-idle: EnhacedAssets.R8 + Start: 487 + Offset: -26,-24 + +building01: + idle: EnhacedAssets.R8 + Start: 488 + Offset: -15,-8 + damaged-idle: EnhacedAssets.R8 + Start: 488 + Offset: -15,-8 + +building01_burned: + idle: EnhacedAssets.R8 + Start: 489 + Offset: -15,-8 + damaged-idle: EnhacedAssets.R8 + Start: 489 + Offset: -15,-8 + bib: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: EnhacedAssets.R8 + Frames: 22, 23, 24, 25 + Length: 4 + Offset: -16,-16 + +radar_station_small: + idle: EnhacedAssets.R8 + Start: 490 + Offset: -35,-45 + idle-top: EnhacedAssets.R8 + Start: 491 + Offset: -15,-45 + bib: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 + bib-Concrete: EnhacedAssets.R8 + Frames: 3, 4, 5, 6 + Length: 4 + Offset: -16,-16 \ No newline at end of file diff --git a/Sequences_newTiles.yaml b/Sequences_newTiles.yaml new file mode 100644 index 0000000..6aeba4f --- /dev/null +++ b/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/Structures.yaml b/Structures.yaml new file mode 100644 index 0000000..f5fc1da --- /dev/null +++ b/Structures.yaml @@ -0,0 +1,135 @@ + +construction_yard: + Health: + HP: 35000 + Power: + Amount: 50 + +barracks: + Valued: + Cost: 400 + Power: + Amount: -50 + +light_factory: + Valued: + Cost: 600 + Power: + Amount: -100 + +repair_pad: + Inherits: ^Building + Buildable: + Queue: Building + Prerequisites: heavy_factory, ~techlevel.medium + +outpost: + RevealsShroud: + Range: 10c0 + RequiresCondition: !disabled + RevealsShroud@lowpower: + Range: 4c0 + RequiresCondition: disabled + DetectCloaked: + Range: 6c0 + RequiresCondition: !disabled + +high_tech_factory: + -AirstrikePower: + 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: AirstrikePowerInfoOrder + +refinery: + PlaceBuildingVariants: + Actors: refinery_inverted + Facings: 384, 896 + + +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: + DockAngle: 128 + DockOffset: 0,1 + TickRate: 20 + 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 + + +medium_gun_turret: + Buildable: + Description: Defensive structure.\n Decent vs Infantry, Vehicles\n Weak vs Tanks + DetectCloaked: + Range: 5c0 + + +large_gun_turret: + Buildable: + Description: Defensive structure.\n Strong vs Tanks, Aircraft, Vehicles\n Weak vs Infantry \n\n Requires power to operate. + DetectCloaked: + Range: 6c0 + + +palace: + ProduceActorPower@fremen: + Actors: fremen, fremen, fremen, fremen, fremen + NukePower: + DetonationAltitude: 6c0 + RemoveMissileOnDetonation: True + Armor: + Type: cy \ No newline at end of file diff --git a/Weapons.yaml b/Weapons.yaml new file mode 100644 index 0000000..5a57db8 --- /dev/null +++ b/Weapons.yaml @@ -0,0 +1,229 @@ +^MG: + Warhead@1Dam: SpreadDamage + Versus: + cy: 10 + + +Sound: + Projectile: AreaBeam + Width: 0c810 + Falloff: 20, 100, 0 + Range: 0, 4c0, 8c0 + Warhead@1Dam: SpreadDamage + Range: 0, 32 + Falloff: 100, 100 + Damage: 1080 + ValidRelationships: Neutral, Enemy + +Sound.Ally: + Inherits: Sound + Projectile: AreaBeam + Shape: Flat + Color: 00FFFF00 + Falloff: 0, 0, 100, 0 + Range: 0, 0c450, 4c0, 8c0 + Warhead@1Dam: SpreadDamage + ValidRelationships: Ally + +DevBullet: + Warhead@1Dam: SpreadDamage + Damage: 6500 + Spread: 1c112 + Versus: + none: 70 + wall: 100 + building: 75 + wood: 60 + heavy: 100 + invulnerable: 0 + cy: 40 + harvester: 100 + Warhead@4Concrete: DamagesConcrete + Damage: 3250 + Warhead@3Eff: CreateEffect + Explosions: shockwave + ImpactSounds: EXPLMD4.WAV + +DeviatorMissile: + Warhead@1Dam: SpreadDamage + Damage: 2000 + Warhead@Trigger: GrantExternalCondition + Condition: unitCapturated + Duration: 512 + +PlasmaExplosion: + Warhead@1Dam: SpreadDamage + Damage: 20000 + Spread: 6c0 + Versus: + None: 80 + +M_LMG_H: + Inherits: M_LMG + ReloadDelay: 50 + Range: 3c0 + Projectile: InstantHit + Inaccuracy: 150 + +grenade: + ReloadDelay: 50 + Range: 3c0 + +ExplosionAircraft: + Warhead@sound: CreateEffect + Explosions: building + ImpactSounds: EXPLLG3.WAV + Inaccuracy: 1c0 + Warhead@1: SpreadDamage + Spread: 2c0 + Damage: 13000 + Falloff: 100, 0 + DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath + Versus: + none: 110 + light: 90 + heavy: 30 + harvester: 70 + wall: 80 + invulnerable: 0 + cy: 30 + Warhead@4Concrete: DamagesConcrete + Damage: 4500 + Warhead@2Smu: LeaveSmudge + SmudgeType: SandCrater, RockCrater + InvalidTargets: Vehicle, Structure + +110mm_Gun: + Inherits: ^Cannon + ReloadDelay: 35 + Range: 5c0 + Report: TURRET1.WAV + Projectile: Bullet + Speed: 875 + Blockable: false + InaccuracyType: Absolute + Warhead@1Dam: SpreadDamage + Damage: 3240 + Versus: + none: 90 + wall: 50 + light: 100 + heavy: 20 + invulnerable: 0 + cy: 20 + harvester: 50 + +mtank_pri: + Inherits: ^Missile + ReloadDelay: 165 + Burst: 2 + BurstDelays: 30 + Range: 6c0 + ValidTargets: Ground + Projectile: Missile + RangeLimit: 8c204 + Warhead@1Dam: SpreadDamage + Damage: 6000 + ValidTargets: Ground + +mtank_air: + Inherits: mtank_pri + ValidTargets: Air + Range: 7c512 + Projectile: Missile + RangeLimit: 9c0 + Warhead@1Dam: SpreadDamage + Damage: 6000 + ValidTargets: Air + +TowerMissile: + Inherits: ^Missile + ReloadDelay: 150 + Burst: 2 + BurstDelays: 30 + +DeathHand: + Warhead@Cluster: FireCluster + Weapon: DeathHandCluster + RandomClusterCount: 36 + Dimensions: 6,6 + Footprint: xXxXxX xxXXxx xXXXXx xxXXxx xXxxXx XxXxXx + Warhead@flash: FlashPaletteEffect + 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: 6000 + Versus: + none: 90 + building: 60 + wood: 100 + light: 70 + heavy: 100 + invulnerable: 0 + cy: 20 + harvester: 90 + +OrniBomb: + ReloadDelay: 25 + Burst: 5 + BurstDelays: 6 + Range: 3c0 + Projectile: GravityBomb + Image: BOMBS + Velocity: 0, 0, -64 + Acceleration: 0, 0, 0 + Shadow: true + Warhead@1Dam: SpreadDamage + Damage: 7500 #400 in original, reduce when bombers can do multiple passes + Spread: 2c0 + Falloff: 100, 0 + Versus: + none: 90 + building: 80 + wood: 60 + light: 100 + heavy: 80 + invulnerable: 0 + cy: 25 + harvester: 60 + DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath + DamageCalculationType: ClosestTargetablePosition + + +OrniBomb_multipass: + Inherits: OrniBomb + ReloadDelay: 60 + Burst: 10 + BurstDelays: 6 + Range: 3c0 + TargetActorCenter: true + Report: audio/OrniBomb01.wav + ValidTargets: Air_support, Ground + Projectile: GravityBomb + Image: BOMBS + Velocity: 0, 0, -64 + Acceleration: 0, 0, 0 + Shadow: true + Warhead@1Dam: SpreadDamage + Damage: 6000 + ValidTargets: Air_support, Ground + Versus: + none: 90 + building: 70 + wood: 100 + light: 110 + heavy: 120 + invulnerable: 0 + cy: 20 + harvester: 60 diff --git a/World.yaml b/World.yaml new file mode 100644 index 0000000..d2ea8a1 --- /dev/null +++ b/World.yaml @@ -0,0 +1,125 @@ + +World: + LuaScript: + Scripts: scripts_new.lua + MissionData: + Briefing: \n\n ****D2k Balance - March 2023 **** \n\n Devastator: increased Spread to 1c112, Selfdestruct explosion AoE increased from 3c0 to 5c0, selfDestruct blocked when captured by Deviator\n Sonic tank: Different damage FallOff for Ally and Enemy units.\n Carryall: reduced HP from 48000 to 20000, increased Speed to 165, Cause damage when crash\n Conyard: increased HP to 35000\n Reduced damage VS Conyard from MG weapons.\n Sardaudars/Fremen range VS infantry increased from 2c512 to 3c0 \n Harkonnen tank Hp increased to 28000 \n Rebalanced super weapons\n Rebalanced turrets \n Original D2k Starport and Airstrike game logic.\n Engineers can retake Vehicle husk and repair cliffs \n New AI + 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 + FlashPaletteEffect: + Type: flash + Color: E2DD8F4D + TerrainLighting: + + +Player: + DeveloperMode: + 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: FreeCarryd + 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, 45 + ClassicProductionQueue@Building: + BuildTimeSpeedReduction: 100, 75, 50 + ClassicProductionQueue@Vehicle: + 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: + OnHoldAudio: + CancelledAudio: + 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 + + + + +wormspawner: + ExternalCondition: + Condition: WormSpamDelayed + ActorSpawner: + RequiresCondition: WormSpamDelayed + diff --git a/ai.yaml b/ai.yaml new file mode 100644 index 0000000..00889ae --- /dev/null +++ b/ai.yaml @@ -0,0 +1,577 @@ +Player: + -ModularBot@Omnius: + -ModularBot@Vidius: + -ModularBot@Gladius: + ModularBot@easy: + Name: Easy AI + Type: easy + ModularBot@medium: + Name: Medium AI + Type: medium + MinOrderQuotientPerTick: 10 + ModularBot@hard-eco: + Name: Hard AI (eco) + Type: hard-eco + ModularBot@hard-defense: + Name: Hard AI (defence) + Type: hard-defense + GrantConditionOnBotOwner@hard-eco: + Condition: enable-hard-eco-ai + Bots: hard-eco + GrantConditionOnBotOwner@medium: + Condition: enable-medium-ai + Bots: medium + GrantConditionOnBotOwner@hard-defense: + Condition: enable-hard-defense-ai + Bots: hard-defense + GrantConditionOnBotOwner@easy: + Condition: enable-easy-ai + Bots: easy + SupportPowerBotModule: + RequiresCondition: enable-hard-eco-ai || enable-medium-ai || enable-hard-defense-ai || enable-easy-ai + Decisions: + Airstrike: + OrderName: AirstrikePowerInfoOrder + MinimumAttractiveness: 3000 + Consideration@1: + Against: Enemy + Types: Vehicle, Tank, Infantry, Defense + Attractiveness: 5 + TargetMetric: Value + CheckRadius: 3c0 + 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: 6 + 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: 5 + TargetMetric: Value + CheckRadius: 4c0 + Fremen: + OrderName: ProduceActorPower.Fremen + Consideration@1: + Against: Ally + HarvesterBotModule@medium: + RequiresCondition: enable-medium-ai || enable-hard-defense-ai || enable-hard-eco-ai + HarvesterTypes: harvester + RefineryTypes: refinery + HarvesterEnemyAvoidanceRadius: 15c0 + HarvesterBotModule@easy: + RequiresCondition: enable-easy-ai + HarvesterTypes: harvester + RefineryTypes: refinery + CaptureManagerBotModule: + RequiresCondition: enable-medium-ai || enable-hard-defense-ai || enable-hard-eco-ai + CapturingActorTypes: engineer + MinimumCaptureDelay: 200 + CheckCaptureTargetsForVisibility: false + BaseBuilderBotModule@easy: + RequiresCondition: enable-easy-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 60 + StructureProductionRandomBonusDelay: 30 + StructureProductionInactiveDelay: 175 + MaximumExcessPower: 200 + ExcessPowerIncrement: 50 + ExcessPowerIncreaseThreshold: 4 + MaxBaseRadius: 40 + PlaceDefenseTowardsEnemyChance: 50 + ConstructionYardTypes: construction_yard + RefineryTypes: refinery + PowerTypes: wind_trap + VehiclesFactoryTypes: light_factory, heavy_factory, starport + ProductionTypes: light_factory, heavy_factory, barracks, starport + SiloTypes: silo + BuildingLimits: + barracks: 1 + refinery: 4 + outpost: 1 + high_tech_factory: 1 + light_factory: 1 + heavy_factory: 1 + starport: 1 + repair_pad: 1 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + BuildingFractions: + barracks: 1 + refinery: 20 + medium_gun_turret: 5 + outpost: 1 + high_tech_factory: 1 + large_gun_turret: 10 + light_factory: 1 + heavy_factory: 1 + starport: 1 + repair_pad: 1 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + BuildingDelays: + upgrade.conyard: 10000 + DefenseTypes: medium_gun_turret, large_gun_turret + BaseBuilderBotModule@medium: + InititalMinimumRefineryCount: 2 + RequiresCondition: enable-medium-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 60 + MaximumExcessPower: 200 + ExcessPowerIncrement: 50 + PlaceDefenseTowardsEnemyChance: 70 + StructureProductionRandomBonusDelay: 20 + ExcessPowerIncreaseThreshold: 4 + MaxBaseRadius: 40 + ConstructionYardTypes: construction_yard + RefineryTypes: refinery + PowerTypes: wind_trap + VehiclesFactoryTypes: light_factory, heavy_factory, starport + ProductionTypes: light_factory, heavy_factory, barracks, starport + SiloTypes: silo + BuildingLimits: + barracks: 3 + refinery: 5 + outpost: 1 + high_tech_factory: 1 + light_factory: 2 + heavy_factory: 3 + starport: 1 + repair_pad: 1 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + BuildingFractions: + barracks: 3 + refinery: 20 + medium_gun_turret: 5 + outpost: 1 + high_tech_factory: 1 + large_gun_turret: 10 + light_factory: 1 + heavy_factory: 1 + starport: 1 + repair_pad: 1 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + BuildingDelays: + upgrade.conyard: 12000 + upgrade.heavy: 6000 + outpost: 12000 + repair_pad: 10000 + upgrade.hightech: 18000 + upgrade.light: 10000 + medium_gun_turret: 5000 + DefenseTypes: medium_gun_turret, large_gun_turret + BaseBuilderBotModule@hard-eco: + RequiresCondition: enable-hard-eco-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 60 + MaximumExcessPower: 200 + ExcessPowerIncrement: 50 + ExcessPowerIncreaseThreshold: 4 + MaxBaseRadius: 40 + ConstructionYardTypes: construction_yard + RefineryTypes: refinery + PowerTypes: wind_trap + VehiclesFactoryTypes: light_factory, heavy_factory, starport + ProductionTypes: light_factory, heavy_factory, barracks, starport + SiloTypes: silo + StructureProductionInactiveDelay: 50 + MaximumFailedPlacementAttempts: 4 + MaxResourceCellsToCheck: 10 + PlaceDefenseTowardsEnemyChance: 80 + AdditionalMinimumRefineryCount: 2 + InititalMinimumRefineryCount: 1 + MinimumDefenseRadius: 5 + MaximumDefenseRadius: 30 + CheckForNewBasesDelay: 4000 + BuildingLimits: + silo: 20 + barracks: 4 + refinery: 10 + outpost: 1 + high_tech_factory: 1 + light_factory: 4 + heavy_factory: 4 + starport: 1 + repair_pad: 1 + research_centre: 1 + palace: 1 + BuildingFractions: + barracks: 1 + refinery: 30 + 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 + 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 + BuildingDelays: + repair_pad: 13000 + upgrade.conyard: 15000 + outpost: 5000 + upgrade.barracks: 4500 + upgrade.light: 10000 + starport: 15000 + upgrade.heavy: 8000 + medium_gun_turret: 3000 + DefenseTypes: medium_gun_turret, large_gun_turret + BaseBuilderBotModule@hard-defense: + RequiresCondition: enable-hard-defense-ai + BuildingQueues: Building, Upgrade + MinimumExcessPower: 60 + MaximumExcessPower: 200 + MaxResourceCellsToCheck: 15 + ExcessPowerIncreaseThreshold: 4 + StructureProductionInactiveDelay: 80 + PlaceDefenseTowardsEnemyChance: 100 + MaxBaseRadius: 40 + ConstructionYardTypes: construction_yard + RefineryTypes: refinery + BarracksTypes: barracks + PowerTypes: wind_trap + AdditionalMinimumRefineryCount: 2 + VehiclesFactoryTypes: light_factory, heavy_factory, starport + ProductionTypes: light_factory, heavy_factory, barracks, starport + SiloTypes: silo + NewProductionCashThreshold: 8000 + 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 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + BuildingFractions: + barracks: 15 + refinery: 25 + medium_gun_turret: 10 + outpost: 1 + high_tech_factory: 1 + large_gun_turret: 12 + light_factory: 5 + heavy_factory: 2 + repair_pad: 1 + research_centre: 1 + palace: 1 + upgrade.conyard: 1 + upgrade.barracks: 1 + upgrade.light: 1 + upgrade.heavy: 1 + upgrade.hightech: 1 + BuildingDelays: + repair_pad: 10000 + upgrade.conyard: 20000 + upgrade.barracks: 3500 + upgrade.heavy: 10000 + outpost: 12000 + upgrade.light: 12000 + medium_gun_turret: 2000 + DefenseTypes: medium_gun_turret, large_gun_turret + BuildingRepairBotModule: + RequiresCondition: enable-hard-eco-ai || enable-medium-ai || enable-hard-defense-ai || enable-easy-ai + SquadManagerBotModule@easy: + RequiresCondition: enable-easy-ai + SquadSize: 6 + RushInterval: 3000 + MaxBaseRadius: 20 + AssignRolesInterval: 100 + ExcludeFromSquadsTypes: harvester, mcv, carryall, carryall.reinforce, ornithopter, saboteur, engineer, dummy.generic + ConstructionYardTypes: construction_yard + IgnoredEnemyTargetTypes: Creep, Cliff, Air_support + ProtectionTypes: construction_yard, wind_trap, barracks, refinery, light_factory, heavy_factory, outpost, starport, repair_pad, high_tech_factory, research_centre, palace + SquadManagerBotModule@medium: + RequiresCondition: enable-medium-ai + SquadSize: 15 + SquadSizeRandomBonus: 30 + MaxBaseRadius: 80 + ExcludeFromSquadsTypes: harvester, mcv, mcv.starport, carryall, carryall.reinforce, ornithopter, saboteur, engineer, dummy.generic + ConstructionYardTypes: construction_yard + IgnoredEnemyTargetTypes: Creep, Cliff, Air_support + ProtectUnitScanRadius: 15 + AttackScanRadius: 10 + AttackForceInterval: 50 + RushInterval: 1000 + ProtectionTypes: mcv, harvester, construction_yard, conyard.atreides, conyard.harkonnen, conyard.ordos, 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, mcv.starport, harvester.starport + SquadManagerBotModule@hard-eco: + RequiresCondition: enable-hard-eco-ai + SquadSize: 20 + SquadSizeRandomBonus: 20 + MaxBaseRadius: 40 + ProtectionScanRadius: 15 + ExcludeFromSquadsTypes: harvester, mcv, mcv.starport, carryall, carryall.reinforce, ornithopter, saboteur, engineer, dummy.generic + ConstructionYardTypes: construction_yard + IgnoredEnemyTargetTypes: Creep, Cliff, Air_support + ProtectUnitScanRadius: 20 + IdleScanRadius: 15 + AssignRolesInterval: 50 + AttackForceInterval: 30 + MinimumAttackForceDelay: 15 + RushInterval: 1500 + AirUnitsTypes: ornithopter + ProtectionTypes: 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@hard-defense: + RequiresCondition: enable-hard-defense-ai + SquadSize: 20 + SquadSizeRandomBonus: 30 + MaxBaseRadius: 100 + AttackScanRadius: 15 + ExcludeFromSquadsTypes: harvester, mcv, mcv.starport, carryall, carryall.reinforce, ornithopter, saboteur, engineer + ConstructionYardTypes: construction_yard + IgnoredEnemyTargetTypes: Creep, Cliff, Air_support + ProtectUnitScanRadius: 30 + IdleScanRadius: 20 + RushInterval: 2500 + AssignRolesInterval: 70 + AirUnitsTypes: ornithopter + ProtectionTypes: 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 + McvManagerBotModule: + RequiresCondition: enable-hard-eco-ai || enable-hard-defense-ai + McvTypes: mcv, mcv.starport + MinimumConstructionYardCount: 3 + MinBaseRadius: 20 + ScanForNewMcvInterval: 100 + RestrictMCVDeploymentFallbackToBase: false #its works better without this + ConstructionYardTypes: construction_yard + McvFactoryTypes: heavy_factory, Starport + McvManagerBotModule@medium-ai: + RequiresCondition: enable-medium-ai + McvTypes: mcv, mcv.starport + MinimumConstructionYardCount: 2 + ScanForNewMcvInterval: 150 + RestrictMCVDeploymentFallbackToBase: True + MaxBaseRadius: 50 + MinBaseRadius: 20 + ConstructionYardTypes: construction_yard + McvFactoryTypes: heavy_factory, starport + McvManagerBotModule@easy-ai: + RequiresCondition: enable-easy-ai + McvTypes: mcv, mcv.starport + ConstructionYardTypes: construction_yard + McvFactoryTypes: heavy_factory, starport + UnitBuilderBotModule@easy: + RequiresCondition: enable-easy-ai + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 1 + light_inf: 65 + trooper: 40 + mpsardaukar: 20 + grenadier: 20 + harvester: 1 + trike.starport: 7 + quad.starport: 12 + siege_tank.starport: 5 + missile_tank.starport: 7 + combat_tank_a.starport: 15 + combat_tank_h.starport: 15 + combat_tank_o.starport: 15 + sonic_tank: 50 + devastator: 40 + deviator: 5 + trike: 15 + raider: 15 + quad: 25 + siege_tank: 10 + missile_tank: 15 + stealth_raider: 5 + combat_tank_a: 100 + combat_tank_h: 100 + combat_tank_o: 100 + purchase.starport: 1 + UnitLimits: + harvester: 8 + carryall: 4 + UnitBuilderBotModule@medium: + IdleBaseUnitsMaximum: 30 + RequiresCondition: enable-medium-ai + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 1 + engineer: 1 + light_inf: 65 + trooper: 40 + mpsardaukar: 20 + grenadier: 20 + harvester: 20 + trike.starport: 1 + quad.starport: 1 + siege_tank.starport: 20 + missile_tank.starport: 20 + combat_tank_a.starport: 30 + combat_tank_h.starport: 30 + combat_tank_o.starport: 30 + sonic_tank: 20 + devastator: 20 + deviator: 20 + 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 + purchase.starport: 1 + UnitLimits: + engineer: 1 + harvester: 10 + carryall: 8 + UnitDelays: + combat_tank_a: 3000 + combat_tank_h: 3000 + combat_tank_o: 3000 + UnitBuilderBotModule@hard-eco: + RequiresCondition: enable-hard-eco-ai + IdleBaseUnitsMaximum: 30 + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 1 + engineer: 1 + light_inf: 65 + trooper: 40 + mpsardaukar: 20 + grenadier: 20 + harvester: 15 + trike.starport: 1 + quad.starport: 1 + siege_tank.starport: 50 + missile_tank.starport: 40 + combat_tank_a.starport: 30 + combat_tank_h.starport: 30 + combat_tank_o.starport: 30 + 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 + purchase.starport: 1 + UnitLimits: + engineer: 2 + harvester: 25 + carryall: 20 + UnitDelays: + combat_tank_a: 5000 + combat_tank_h: 5000 + combat_tank_o: 5000 + UnitBuilderBotModule@hard-defense: + IdleBaseUnitsMaximum: 50 + RequiresCondition: enable-hard-defense-ai + UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft + UnitsToBuild: + carryall: 1 + engineer: 1 + light_inf: 50 + trooper: 30 + mpsardaukar: 30 + grenadier: 40 + harvester: 30 + trike.starport: 1 + quad.starport: 1 + siege_tank.starport: 5 + missile_tank.starport: 7 + combat_tank_a.starport: 15 + combat_tank_h.starport: 15 + combat_tank_o.starport: 15 + 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 + purchase.starport: 1 + UnitLimits: + engineer: 3 + harvester: 20 + carryall: 18 + UnitDelays: + trike: 2000 + quad: 7000 + combat_tank_a: 4000 + combat_tank_h: 4000 + combat_tank_o: 4000 + diff --git a/arrakisX.yaml b/arrakisX.yaml new file mode 100644 index 0000000..701c827 --- /dev/null +++ b/arrakisX.yaml @@ -0,0 +1,134 @@ + +spicebloom.spawnpoint: + Interactable: + EditorOnlyTooltip: + Name: Spice Bloom spawnpoint + AlwaysVisible: + RenderSpritesEditorOnly: + Image: spicebloom + Palette: effect50alpha + WithSpriteBody: + Sequence: grow3 + BodyOrientation: + QuantizedFacings: 1 + GrantConditionOnTerrain: + Condition: clearsand + TerrainTypes: SpiceSand + KillsSelf: + RequiresCondition: clearsand + Delay: 1750, 3250 + SpawnActorOnDeath: + Actor: spicebloom + Health: + HP: 100000 + Immobile: + OccupiesSpace: false + HitShape: + Type: Circle + Radius: 1 + MapEditorData: + Categories: System + RequiresSpecificOwners: + ValidOwnerNames: Neutral + +spicebloom: + HiddenUnderShroud: + BodyOrientation: + QuantizedFacings: 1 + RenderSprites: + AppearsOnRadar: + UseLocation: true + Tooltip: + Name: Spice Bloom + SpiceBloom: + Weapon: SpiceExplosion + Explodes: + Weapon: BloomExplosion + EmptyWeapon: BloomExplosion + Crushable: + CrushClasses: spicebloom + CrushedByFriendlies: true + RadarColorFromTerrain: + Terrain: Spice + AppearsOnMapPreview: + Terrain: Spice + Immobile: + Health: + HP: 1 + Targetable: + TargetTypes: Ground + RequiresForceFire: true + Armor: + Type: none + SpawnActorOnDeath: + Actor: spicebloom.spawnpoint + HitShape: + Type: Circle + Radius: 16 + MapEditorData: + Categories: System + Interactable: + RequiresSpecificOwners: + ValidOwnerNames: Neutral + +sandworm: + Inherits@1: ^SpriteActor + Interactable: + Tooltip: + Name: Sandworm + Health: + HP: 100000 + HitShape: + Type: Circle + Radius: 16 + Armor: + Type: heavy + Mobile: + Speed: 65 + Locomotor: worm + Targetable: + TargetTypes: Ground, Creep + WithSpriteBody: + WithIdleAnimation: + Interval: 160 + Sequences: lightninga, lightningb, lightningc, lightningd, lightninge, lightningf + RequiresCondition: !attacking + AmbientSound: + SoundFiles: WRMSIGN1.WAV + Interval: 160 + RequiresCondition: !attacking + WithAttackOverlay@mouth: + Sequence: mouth + WithAttackOverlay@sand: + Sequence: sand + HiddenUnderFog: + AppearsOnRadar: + UseLocation: true + AttackSwallow: + AttackRequiresEnteringCell: true + AttackingCondition: attacking + Armament: + Weapon: WormJaw + Sandworm: + WanderMoveRadius: 5 + ChanceToDisappear: 20 + IgnoresCloak: + AnnounceOnSeen: + Notification: WormSign + TextNotification: Worm sign. + PingRadar: True + RevealsShroud: + Range: 11c0 + LeavesTrails: + Image: sandtrail + Sequences: traila, trailb, trailc + Palette: effect + Type: CenterPosition + TerrainTypes: Sand, Dune, SpiceSand, Spice + MovingInterval: 3 + RequiresCondition: !attacking + RevealOnFire: + Duration: 50 + Radius: 2c512 + RequiresSpecificOwners: + ValidOwnerNames: Creeps \ No newline at end of file diff --git a/audio/DeathHand_video.wav b/audio/DeathHand_video.wav new file mode 100644 index 0000000..0778c99 Binary files /dev/null and b/audio/DeathHand_video.wav differ diff --git a/audio/DevastatorMeltdown01.wav b/audio/DevastatorMeltdown01.wav new file mode 100644 index 0000000..83ed865 Binary files /dev/null and b/audio/DevastatorMeltdown01.wav differ diff --git a/audio/EBoD_MortarDeploy.wav b/audio/EBoD_MortarDeploy.wav new file mode 100644 index 0000000..cc81557 Binary files /dev/null and b/audio/EBoD_MortarDeploy.wav differ diff --git a/audio/EBoD_MortarExplosion.wav b/audio/EBoD_MortarExplosion.wav new file mode 100644 index 0000000..61a98ab Binary files /dev/null and b/audio/EBoD_MortarExplosion.wav differ diff --git a/audio/EBoD_MortarFire.wav b/audio/EBoD_MortarFire.wav new file mode 100644 index 0000000..3073294 Binary files /dev/null and b/audio/EBoD_MortarFire.wav differ diff --git a/audio/EBoD_MortarUndeploy.wav b/audio/EBoD_MortarUndeploy.wav new file mode 100644 index 0000000..21829fe Binary files /dev/null and b/audio/EBoD_MortarUndeploy.wav differ diff --git a/audio/EBoD_buildingPlacement.wav b/audio/EBoD_buildingPlacement.wav new file mode 100644 index 0000000..1fb4332 Binary files /dev/null and b/audio/EBoD_buildingPlacement.wav differ diff --git a/audio/EBoD_hidenunits1.wav b/audio/EBoD_hidenunits1.wav new file mode 100644 index 0000000..de4d3e5 Binary files /dev/null and b/audio/EBoD_hidenunits1.wav differ diff --git a/audio/EBoD_infantry_reload.wav b/audio/EBoD_infantry_reload.wav new file mode 100644 index 0000000..de2986c Binary files /dev/null and b/audio/EBoD_infantry_reload.wav differ diff --git a/audio/EBoD_infantry_reload_low.wav b/audio/EBoD_infantry_reload_low.wav new file mode 100644 index 0000000..7c4751f Binary files /dev/null and b/audio/EBoD_infantry_reload_low.wav differ diff --git a/audio/EBoD_normal_dying_2.wav b/audio/EBoD_normal_dying_2.wav new file mode 100644 index 0000000..f5d0228 Binary files /dev/null and b/audio/EBoD_normal_dying_2.wav differ diff --git a/audio/EBoD_normal_dying_3.wav b/audio/EBoD_normal_dying_3.wav new file mode 100644 index 0000000..6965889 Binary files /dev/null and b/audio/EBoD_normal_dying_3.wav differ diff --git a/audio/EBoD_thumper_deploy_1.wav b/audio/EBoD_thumper_deploy_1.wav new file mode 100644 index 0000000..725cdc4 Binary files /dev/null and b/audio/EBoD_thumper_deploy_1.wav differ diff --git a/audio/EITSLand.wav b/audio/EITSLand.wav new file mode 100644 index 0000000..1a09018 Binary files /dev/null and b/audio/EITSLand.wav differ diff --git a/audio/EITSTakeOff.wav b/audio/EITSTakeOff.wav new file mode 100644 index 0000000..1f1e84f Binary files /dev/null and b/audio/EITSTakeOff.wav differ diff --git a/audio/ExplosionBuildingLightResonance01.wav b/audio/ExplosionBuildingLightResonance01.wav new file mode 100644 index 0000000..bb8e8d1 Binary files /dev/null and b/audio/ExplosionBuildingLightResonance01.wav differ diff --git a/audio/FIREWORKS.wav b/audio/FIREWORKS.wav new file mode 100644 index 0000000..1a1d864 Binary files /dev/null and b/audio/FIREWORKS.wav differ diff --git a/audio/HI_releaseTheSardaukar01.wav b/audio/HI_releaseTheSardaukar01.wav new file mode 100644 index 0000000..ec733cb Binary files /dev/null and b/audio/HI_releaseTheSardaukar01.wav differ diff --git a/audio/OrniBomb01.wav b/audio/OrniBomb01.wav new file mode 100644 index 0000000..18e1850 Binary files /dev/null and b/audio/OrniBomb01.wav differ diff --git a/audio/adv_carryall_land_1.wav b/audio/adv_carryall_land_1.wav new file mode 100644 index 0000000..e2879cc Binary files /dev/null and b/audio/adv_carryall_land_1.wav differ diff --git a/audio/adv_carryall_takeoff_1.wav b/audio/adv_carryall_takeoff_1.wav new file mode 100644 index 0000000..2de1030 Binary files /dev/null and b/audio/adv_carryall_takeoff_1.wav differ diff --git a/audio/bigexplosion01.wav b/audio/bigexplosion01.wav new file mode 100644 index 0000000..ca2a096 Binary files /dev/null and b/audio/bigexplosion01.wav differ diff --git a/audio/bigxplosion02.wav b/audio/bigxplosion02.wav new file mode 100644 index 0000000..7aeee73 Binary files /dev/null and b/audio/bigxplosion02.wav differ diff --git a/audio/bigxplosion17.wav b/audio/bigxplosion17.wav new file mode 100644 index 0000000..f5d16f6 Binary files /dev/null and b/audio/bigxplosion17.wav differ diff --git a/audio/burn_dying_1.wav b/audio/burn_dying_1.wav new file mode 100644 index 0000000..3a50345 Binary files /dev/null and b/audio/burn_dying_1.wav differ diff --git a/audio/burn_dying_2.wav b/audio/burn_dying_2.wav new file mode 100644 index 0000000..c1cda41 Binary files /dev/null and b/audio/burn_dying_2.wav differ diff --git a/audio/burn_dying_6.wav b/audio/burn_dying_6.wav new file mode 100644 index 0000000..dcd5820 Binary files /dev/null and b/audio/burn_dying_6.wav differ diff --git a/audio/carryallSound(2).wav b/audio/carryallSound(2).wav new file mode 100644 index 0000000..838c074 Binary files /dev/null and b/audio/carryallSound(2).wav differ diff --git a/audio/choke_dying_2.wav b/audio/choke_dying_2.wav new file mode 100644 index 0000000..2132585 Binary files /dev/null and b/audio/choke_dying_2.wav differ diff --git a/audio/choke_dying_6.wav b/audio/choke_dying_6.wav new file mode 100644 index 0000000..8118772 Binary files /dev/null and b/audio/choke_dying_6.wav differ diff --git a/audio/combatTank.wav b/audio/combatTank.wav new file mode 100644 index 0000000..f8d7e11 Binary files /dev/null and b/audio/combatTank.wav differ diff --git a/audio/crush_guy_2.wav b/audio/crush_guy_2.wav new file mode 100644 index 0000000..2d6211d Binary files /dev/null and b/audio/crush_guy_2.wav differ diff --git a/audio/crush_guy_4.wav b/audio/crush_guy_4.wav new file mode 100644 index 0000000..9540ee5 Binary files /dev/null and b/audio/crush_guy_4.wav differ diff --git a/audio/daisy_whistle.wav b/audio/daisy_whistle.wav new file mode 100644 index 0000000..9222e95 Binary files /dev/null and b/audio/daisy_whistle.wav differ diff --git a/audio/daisygas.wav b/audio/daisygas.wav new file mode 100644 index 0000000..9b45fd2 Binary files /dev/null and b/audio/daisygas.wav differ diff --git a/audio/daisygast.wav b/audio/daisygast.wav new file mode 100644 index 0000000..727b52b Binary files /dev/null and b/audio/daisygast.wav differ diff --git a/audio/death_hand_launch_1.wav b/audio/death_hand_launch_1.wav new file mode 100644 index 0000000..a2734a5 Binary files /dev/null and b/audio/death_hand_launch_1.wav differ diff --git a/audio/elite.wav b/audio/elite.wav new file mode 100644 index 0000000..fb450fa Binary files /dev/null and b/audio/elite.wav differ diff --git a/audio/explodeSaboteurEmperor02.wav b/audio/explodeSaboteurEmperor02.wav new file mode 100644 index 0000000..5905304 Binary files /dev/null and b/audio/explodeSaboteurEmperor02.wav differ diff --git a/audio/explosion_Carryall.wav b/audio/explosion_Carryall.wav new file mode 100644 index 0000000..9c6a3fb Binary files /dev/null and b/audio/explosion_Carryall.wav differ diff --git a/audio/explosion_large_2.wav b/audio/explosion_large_2.wav new file mode 100644 index 0000000..bb4248f Binary files /dev/null and b/audio/explosion_large_2.wav differ diff --git a/audio/falling_bomb.wav b/audio/falling_bomb.wav new file mode 100644 index 0000000..1fb7886 Binary files /dev/null and b/audio/falling_bomb.wav differ diff --git a/audio/flamethrower.wav b/audio/flamethrower.wav new file mode 100644 index 0000000..160d4e0 Binary files /dev/null and b/audio/flamethrower.wav differ diff --git a/audio/frigate_land.wav b/audio/frigate_land.wav new file mode 100644 index 0000000..5c81407 Binary files /dev/null and b/audio/frigate_land.wav differ diff --git a/audio/frigate_new.wav b/audio/frigate_new.wav new file mode 100644 index 0000000..5a332a7 Binary files /dev/null and b/audio/frigate_new.wav differ diff --git a/audio/frigate_new2.wav b/audio/frigate_new2.wav new file mode 100644 index 0000000..93bde93 Binary files /dev/null and b/audio/frigate_new2.wav differ diff --git a/audio/gunTurret.wav b/audio/gunTurret.wav new file mode 100644 index 0000000..0d71733 Binary files /dev/null and b/audio/gunTurret.wav differ diff --git a/audio/hk_engineer_pistol_1.wav b/audio/hk_engineer_pistol_1.wav new file mode 100644 index 0000000..86c881b Binary files /dev/null and b/audio/hk_engineer_pistol_1.wav differ diff --git a/audio/ironcur9.aud b/audio/ironcur9.aud new file mode 100644 index 0000000..f907a02 Binary files /dev/null and b/audio/ironcur9.aud differ diff --git a/audio/lightInf.wav b/audio/lightInf.wav new file mode 100644 index 0000000..6e8341a Binary files /dev/null and b/audio/lightInf.wav differ diff --git a/audio/mortarInf.wav b/audio/mortarInf.wav new file mode 100644 index 0000000..66726b2 Binary files /dev/null and b/audio/mortarInf.wav differ diff --git a/audio/new_Cliff_Destroyed.wav b/audio/new_Cliff_Destroyed.wav new file mode 100644 index 0000000..0b135fb Binary files /dev/null and b/audio/new_Cliff_Destroyed.wav differ diff --git a/audio/new_DeathHandnew.wav b/audio/new_DeathHandnew.wav new file mode 100644 index 0000000..083185f Binary files /dev/null and b/audio/new_DeathHandnew.wav differ diff --git a/audio/new_DerbisBigExplosion01.wav b/audio/new_DerbisBigExplosion01.wav new file mode 100644 index 0000000..d05657b Binary files /dev/null and b/audio/new_DerbisBigExplosion01.wav differ diff --git a/audio/new_DerbisHeavy01.wav b/audio/new_DerbisHeavy01.wav new file mode 100644 index 0000000..b173e63 Binary files /dev/null and b/audio/new_DerbisHeavy01.wav differ diff --git a/audio/new_DerbisHeavy02.wav b/audio/new_DerbisHeavy02.wav new file mode 100644 index 0000000..d200f78 Binary files /dev/null and b/audio/new_DerbisHeavy02.wav differ diff --git a/audio/new_derbisHeave_bounce01.wav b/audio/new_derbisHeave_bounce01.wav new file mode 100644 index 0000000..a28642e Binary files /dev/null and b/audio/new_derbisHeave_bounce01.wav differ diff --git a/audio/new_derbisHeavy_bounce02.wav b/audio/new_derbisHeavy_bounce02.wav new file mode 100644 index 0000000..b3d3461 Binary files /dev/null and b/audio/new_derbisHeavy_bounce02.wav differ diff --git a/audio/new_derbisLight01.wav b/audio/new_derbisLight01.wav new file mode 100644 index 0000000..639d3ed Binary files /dev/null and b/audio/new_derbisLight01.wav differ diff --git a/audio/new_derbisLight_bounce01.wav b/audio/new_derbisLight_bounce01.wav new file mode 100644 index 0000000..56dbe6a Binary files /dev/null and b/audio/new_derbisLight_bounce01.wav differ diff --git a/audio/new_derbisRock01.wav b/audio/new_derbisRock01.wav new file mode 100644 index 0000000..3cb266b Binary files /dev/null and b/audio/new_derbisRock01.wav differ diff --git a/audio/new_derbisRock02.wav b/audio/new_derbisRock02.wav new file mode 100644 index 0000000..f921409 Binary files /dev/null and b/audio/new_derbisRock02.wav differ diff --git a/audio/new_derbisRock03.wav b/audio/new_derbisRock03.wav new file mode 100644 index 0000000..f24c3a7 Binary files /dev/null and b/audio/new_derbisRock03.wav differ diff --git a/audio/ornithopterMotor01.wav b/audio/ornithopterMotor01.wav new file mode 100644 index 0000000..5af4191 Binary files /dev/null and b/audio/ornithopterMotor01.wav differ diff --git a/audio/ornithroperFall01.wav b/audio/ornithroperFall01.wav new file mode 100644 index 0000000..af5ba50 Binary files /dev/null and b/audio/ornithroperFall01.wav differ diff --git a/audio/sardaukar.wav b/audio/sardaukar.wav new file mode 100644 index 0000000..eaa3337 Binary files /dev/null and b/audio/sardaukar.wav differ diff --git a/audio/siege.wav b/audio/siege.wav new file mode 100644 index 0000000..4069f27 Binary files /dev/null and b/audio/siege.wav differ diff --git a/audio/silent.wav b/audio/silent.wav new file mode 100644 index 0000000..59c8e62 Binary files /dev/null and b/audio/silent.wav differ diff --git a/audio/tank.wav b/audio/tank.wav new file mode 100644 index 0000000..c0eacd5 Binary files /dev/null and b/audio/tank.wav differ diff --git a/audio/tankBombar.wav b/audio/tankBombar.wav new file mode 100644 index 0000000..695e20c Binary files /dev/null and b/audio/tankBombar.wav differ diff --git a/audio/tankMissile.wav b/audio/tankMissile.wav new file mode 100644 index 0000000..c0e39e3 Binary files /dev/null and b/audio/tankMissile.wav differ diff --git a/audio/trike.wav b/audio/trike.wav new file mode 100644 index 0000000..d61b0a3 Binary files /dev/null and b/audio/trike.wav differ diff --git a/audio/true_sayer.wav b/audio/true_sayer.wav new file mode 100644 index 0000000..b000c90 Binary files /dev/null and b/audio/true_sayer.wav differ diff --git a/audio/turret.wav b/audio/turret.wav new file mode 100644 index 0000000..601610c Binary files /dev/null and b/audio/turret.wav differ diff --git a/audio/veteran_upgrade_1.wav b/audio/veteran_upgrade_1.wav new file mode 100644 index 0000000..cd52fdf Binary files /dev/null and b/audio/veteran_upgrade_1.wav differ diff --git a/audio/worm_roar_1_tc.wav b/audio/worm_roar_1_tc.wav new file mode 100644 index 0000000..1acbe8b Binary files /dev/null and b/audio/worm_roar_1_tc.wav differ diff --git a/audio/worm_roar_2_tc.wav b/audio/worm_roar_2_tc.wav new file mode 100644 index 0000000..5c12cb4 Binary files /dev/null and b/audio/worm_roar_2_tc.wav differ diff --git a/audio/worm_roar_5_tc.wav b/audio/worm_roar_5_tc.wav new file mode 100644 index 0000000..c7e0b90 Binary files /dev/null and b/audio/worm_roar_5_tc.wav differ diff --git a/audio/worm_roar_6_tc.wav b/audio/worm_roar_6_tc.wav new file mode 100644 index 0000000..14c4c8a Binary files /dev/null and b/audio/worm_roar_6_tc.wav differ diff --git a/audio/worm_sign_elec_1.wav b/audio/worm_sign_elec_1.wav new file mode 100644 index 0000000..d2ff0ce Binary files /dev/null and b/audio/worm_sign_elec_1.wav differ diff --git a/bits/AirReinforcementsIcons.shp b/bits/AirReinforcementsIcons.shp new file mode 100644 index 0000000..f959425 Binary files /dev/null and b/bits/AirReinforcementsIcons.shp differ diff --git a/bits/Assassin.shp b/bits/Assassin.shp new file mode 100644 index 0000000..863063d Binary files /dev/null and b/bits/Assassin.shp differ diff --git a/bits/AtreidesTrikeIcon.shp b/bits/AtreidesTrikeIcon.shp new file mode 100644 index 0000000..f248276 Binary files /dev/null and b/bits/AtreidesTrikeIcon.shp differ diff --git a/bits/AtreidesTurr.shp b/bits/AtreidesTurr.shp new file mode 100644 index 0000000..d81460e Binary files /dev/null and b/bits/AtreidesTurr.shp differ diff --git a/bits/CarryHusk01.shp b/bits/CarryHusk01.shp new file mode 100644 index 0000000..be30f83 Binary files /dev/null and b/bits/CarryHusk01.shp differ diff --git a/bits/Crane.shp b/bits/Crane.shp new file mode 100644 index 0000000..36ad4c2 Binary files /dev/null and b/bits/Crane.shp differ diff --git a/bits/FedaykinTurret.shp b/bits/FedaykinTurret.shp new file mode 100644 index 0000000..27354f9 Binary files /dev/null and b/bits/FedaykinTurret.shp differ diff --git a/bits/GasCloudIcon.shp b/bits/GasCloudIcon.shp new file mode 100644 index 0000000..a0c8a51 Binary files /dev/null and b/bits/GasCloudIcon.shp differ diff --git a/bits/HeavyPiff.shp b/bits/HeavyPiff.shp new file mode 100644 index 0000000..9849d4f Binary files /dev/null and b/bits/HeavyPiff.shp differ diff --git a/bits/MerchenaryTankIcon.shp b/bits/MerchenaryTankIcon.shp new file mode 100644 index 0000000..18a9cc2 Binary files /dev/null and b/bits/MerchenaryTankIcon.shp differ diff --git a/bits/MerchenaryTurr.shp b/bits/MerchenaryTurr.shp new file mode 100644 index 0000000..813dd40 Binary files /dev/null and b/bits/MerchenaryTurr.shp differ diff --git a/bits/PropagandaCorps.shp b/bits/PropagandaCorps.shp new file mode 100644 index 0000000..977e931 Binary files /dev/null and b/bits/PropagandaCorps.shp differ diff --git a/bits/RocketQuad.shp b/bits/RocketQuad.shp new file mode 100644 index 0000000..a6091a1 Binary files /dev/null and b/bits/RocketQuad.shp differ diff --git a/bits/RocketQuadIcon.shp b/bits/RocketQuadIcon.shp new file mode 100644 index 0000000..7cb7e65 Binary files /dev/null and b/bits/RocketQuadIcon.shp differ diff --git a/bits/RocketTankTurr.shp b/bits/RocketTankTurr.shp new file mode 100644 index 0000000..0843cc0 Binary files /dev/null and b/bits/RocketTankTurr.shp differ diff --git a/bits/ScullIconTD01.shp b/bits/ScullIconTD01.shp new file mode 100644 index 0000000..6d37880 Binary files /dev/null and b/bits/ScullIconTD01.shp differ diff --git a/bits/TrikeChassis.shp b/bits/TrikeChassis.shp new file mode 100644 index 0000000..d3800a0 Binary files /dev/null and b/bits/TrikeChassis.shp differ diff --git a/bits/TroopCrawler.shp b/bits/TroopCrawler.shp new file mode 100644 index 0000000..16bba75 Binary files /dev/null and b/bits/TroopCrawler.shp differ diff --git a/bits/TroopCrawlerIcon.shp b/bits/TroopCrawlerIcon.shp new file mode 100644 index 0000000..db1ee6f Binary files /dev/null and b/bits/TroopCrawlerIcon.shp differ diff --git a/bits/Unit_rules.yaml b/bits/Unit_rules.yaml new file mode 100644 index 0000000..95a9f35 --- /dev/null +++ b/bits/Unit_rules.yaml @@ -0,0 +1,969 @@ +#MISC AND BALANCE CHANGES +^AutoTargetGround: + AutoTarget: + AttackAnythingCondition: stance-attackanything + AutoTargetPriority@DEFAULT: + RequiresCondition: !stance-attackanything + ValidTargets: Infantry, Vehicle, Creep, Water, Defense, KwisatzHaderach, Wormrider + InvalidTargets: NoAutoTarget + AutoTargetPriority@ATTACKANYTHING: + RequiresCondition: stance-attackanything + ValidTargets: Infantry, Vehicle, Creep, Water, Structure, Defense, KwisatzHaderach, Wormrider + InvalidTargets: NoAutoTarget +^AutoTargetAll: + AutoTarget: + AttackAnythingCondition: stance-attackanything + AutoTargetPriority@DEFAULT: + RequiresCondition: !stance-attackanything + ValidTargets: Infantry, Vehicle, Creep, Water, Air, Defense, KwisatzHaderach, Wormrider + InvalidTargets: NoAutoTarget + AutoTargetPriority@ATTACKANYTHING: + RequiresCondition: stance-attackanything + ValidTargets: Infantry, Vehicle, Creep, Water, Air, Structure, Defense, KwisatzHaderach, Wormrider + InvalidTargets: NoAutoTarget +^AutoTargetAir: + AutoTarget: + AttackAnythingCondition: stance-attackanything + AutoTargetPriority@DEFAULT: + RequiresCondition: !stance-attackanything + ValidTargets: Air + InvalidTargets: NoAutoTarget + AutoTargetPriority@ATTACKANYTHING: + RequiresCondition: stance-attackanything + ValidTargets: Air + InvalidTargets: NoAutoTarget +^AutoTargetAirAssaultMove: + Inherits: ^AutoTargetAir + AutoTargetPriority@DEFAULT: + RequiresCondition: !stance-attackanything && !assault-move + AutoTargetPriority@ATTACKANYTHING: + RequiresCondition: stance-attackanything || assault-move + AttackMove: + AssaultMoveCondition: assault-move +^Infantry: + ExternalCondition: + Condition: Inspired + ProximityExternalCondition: + Condition: MeleeRange + Range: 1c256 + ValidStances: Enemy + -Targetable: + Targetable@UNINSPIRED: + TargetTypes: Ground, Infantry, Uninspired + RequiresCondition: !Inspired + Targetable@INSPIRED: + TargetTypes: Ground, Infantry + RequiresCondition: Inspired +^Vehicle: + Crushable: + CrushClasses: vehicle +quad: + RenderSprites: + Image: quad_rocket +trooper: + Buildable: + Prerequisites: barracks +engineer: + #..so it cant be transported by the troop crawler + Passenger: + CargoType: dangerousInfantry +mcv: + Buildable: + Description: Deploys into another Construction Yard\n Unarmed\n Builds buildings and defenses. +mobile_crane: + Inherits: mcv + Buildable: + Prerequisites: ~disabled + Description: Deploys into a Crane.\n Unarmed\n Builds only basic buildings. + Tooltip: + Name: Mobile Crane + Mobile: + Speed: 50 + Transforms: + Facing: 16 + IntoActor: crane + Offset: 0,-1 + TransformSounds: BUILD1.WAV + NoTransformNotification: CannotDeploy + Selectable: + Class: mcv + Priority: 3 +#ATREIDES UNITS +trike_a: + Inherits: trike + Buildable: + Prerequisites: ~light.atreides + Description: Fast scout with gun turret \n Strong vs Infantry\n Weak vs Tanks, Aircraft + Tooltip: + Name: Atreides Trike + Turreted: + TurnSpeed: 10 + Offset: -200,0,30 + RealignDelay: 0 + -AttackFrontal: + WithMuzzleOverlay: + AttackTurreted: + WithSpriteTurret: + Armament@damage: + Weapon: HMG + LocalOffset: -200,0,0 + MuzzleSequence: muzzle + Armament@muzzle: + Weapon: HMG_muzzle + LocalOffset: -200,0,0 + MuzzleSequence: muzzle + RenderSprites: + Image: trike_a +light_thopter: + Inherits: ornithopter + Inherits@AUTOTARGET: ^AutoTargetAirAssaultMove + Valued: + Cost: 700 + Buildable: + Queue: Aircraft + Prerequisites: high_tech_factory, ~techlevel.medium + BuildPaletteOrder: 30 + BuildDuration: 400 + BuildDurationModifier: 40 + Description: Agile Airborne Scout\n Armed with anti air beam weapons. + Health: + HP: 7000 + Tooltip: + Name: Light Thopter + -RejectsOrders: + -Interactable: + AttackFrontal: + AutoTarget: + -Armament: + Armament@Beam: + Weapon: BeamCannon + -AmmoPool: + -AttackBomber: + Aircraft: + AirborneCondition: airborne + MinAirborneAltitude: 50 + CanHover: True + VTOL: True + Speed: 150 + TurnSpeed: 20 + Repulsable: True + RepulsionSpeed: 40 + RevealsShroud: + Range: 6c768 + Type: CenterPosition + Targetable: + TargetTypes: Air + Selectable: + Bounds: 36,28,0,2 + Class: light_thopter + DecorationBounds: 40,29,0,1 + WithSpriteControlGroupDecoration: + SelectionDecorations: + Voiced: + VoiceSet: VehicleVoice + RenderSprites: + Image: ornithopter + WithFacingSpriteBody: + RequiresCondition: airborne + WithFacingSpriteBody@landed: + Name: landedbody + Sequence: landed + RequiresCondition: !airborne + Repairable: + RepairActors: repair_pad +advanced_harvester_a: + Inherits: harvester + Inherits@GAINSEXPERIENCE: ^GainsExperience + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Buildable: + Prerequisites: refinery, ~heavy.atreides + Description: Collects Spice for processing\n Armed with a turret + ProducibleWithLevel: + InitialLevels: 1 + Tooltip: + Name: Advanced Harvester + Selectable: + Class: combat_harvester + Turreted: + TurnSpeed: 5 + RealignDelay: 0 + AttackTurreted: + WithMuzzleOverlay: + WithSpriteTurret: + Armament@damage: + Weapon: HMG + LocalOffset: -200,0,0 + MuzzleSequence: muzzle + Armament@muzzle: + Weapon: HMG_muzzle + LocalOffset: -200,0,0 + MuzzleSequence: muzzle + AutoTarget: + WithMuzzleOverlay: + RenderSprites: + Image: harvester_a +combat_tank_a: + ProducibleWithLevel: + InitialLevels: 1 +siege_tank_a: + Inherits: siege_tank + Buildable: + Prerequisites: ~heavy.atreides, upgrade.heavy, ~techlevel.medium + ProducibleWithLevel: + InitialLevels: 1 + RenderSprites: + Image: siege_tank +missile_tank_a: + Inherits: missile_tank + ProducibleWithLevel: + InitialLevels: 1 + Buildable: + Prerequisites: ~heavy.atreides, upgrade.heavy, research_centre, ~techlevel.high + RenderSprites: + Image: missile_tank +sonic_tank: + ProducibleWithLevel: + InitialLevels: 1 + Buildable: + Prerequisites: ~heavy.atreides, research_centre, ~techlevel.house +loyalist: + Inherits: ^Infantry + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Buildable: + Queue: Infantry + Prerequisites: ~barracks.atreides, upgrade.barracks, ~techlevel.high, high_tech_factory + BuildPaletteOrder: 80 + BuildDuration: 68 + BuildDurationModifier: 60 + Description: Strong and fast Anti-Vehicular infantry\n Strong vs Tanks\n Weak vs Infantry + Valued: + Cost: 170 + Tooltip: + Name: Atreides Loyalist + Health: + HP: 9000 + Mobile: + Speed: 43 + RevealsShroud: + Range: 4c768 + Armament: + Weapon: HandheldRocket + FireDelay: 5 + AttackFrontal: + WithInfantryBody: + DefaultAttackSequence: shoot + IdleSequences: idle1 + RenderSprites: + Image: loyalist +propaganda_corps: + Inherits: ^Infantry + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Valued: + Cost: 200 + Buildable: + Queue: Infantry + BuildPaletteOrder: 90 + Prerequisites: ~barracks.atreides, upgrade.barracks, ~techlevel.house, palace.atreides + BuildAtProductionType: Elite + BuildDuration: 81 + BuildDurationModifier: 60 + Description: Elite Atreides Infantry which inspires troops\n Strong vs Infantry.\n Weak vs Vehicles.\n Prevents sourrounding allies from going prone. + Tooltip: + Name: Propaganda Corps + Health: + HP: 8000 + Mobile: + Speed: 43 + Armament: + Weapon: LMG + AttackFrontal: + WithInfantryBody: + DefaultAttackSequence: shoot + IdleSequences: idle1 + ProximityExternalCondition: + Condition: Inspired + Range: 3c511 + ValidStances: Ally + -TakeCover: + -MustBeDestroyed: + RenderSprites: + Image: propaganda_corps +paul_atreides: + Inherits: ^Infantry + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + #Paul isnt Infantry so he can be "eaten" by worms and thereby transform into a worm-rider + Targetable@UNINSPIRED: + TargetTypes: Ground, KwisatzHaderach, Uninspired + RequiresCondition: !Inspired + Targetable@INSPIRED: + TargetTypes: Ground, KwisatzHaderach + RequiresCondition: Inspired + Health: + HP: 22500 + Mobile: + Speed: 43 + Passenger: + CargoType: dangerousInfantry + PortableChrono: + ChargeDelay: 800 + MaxDistance: 10 + TargetCursor: move + Tooltip: + Name: Paul Atreides + Valued: + Cost: 2500 + RevealsShroud: + Range: 6c768 + ProximityExternalCondition@spawnFremen: + Condition: spawnFremen + Range: 6c0 + ValidStances: Enemy + GrantConditionOnTerrain: + TerrainTypes: Sand, Dune, SpiceSand, Spice + Condition: HiddeninSand + GrantConditionOnDamageState@UNCLOAK: + Condition: cloak-force-disabled + ValidDamageStates: Critical + Cloak: + InitialDelay: 0 + CloakDelay: 85 + UncloakOn: Attack, Unload, Infiltrate, Demolish, Dock, Damage + IsPlayerPalette: true + CloakSound: veil.wav + UncloakSound: unveil.wav + RequiresCondition: !cloak-force-disabled && HiddeninSand + ExternalCondition@MELEE: + Condition: MeleeRange + WithInfantryBody: + AttackSequences: + primary: shoot + secondary: close_combat + Armament@PRIMARY: + Weapon: RiotGun + FireDelay: 3 + Armament@SECONDARY: + Name: secondary + RequiresCondition: MeleeRange + Weapon: WeirdingWay + AttackFrontal: + Voiced: + VoiceSet: FremenLeader + AttractsWorms: + Intensity: 1000 + RenderSprites: + Image: paul_atreides +worm_rider: + Inherits@1: ^ExistsInWorld + Inherits@2: ^GainsExperience + Inherits@3: ^SpriteActor + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Huntable: + Mobile: + TurnSpeed: 5 + Locomotor: wormrider + Speed: 50 + SelectionDecorations: + WithSpriteControlGroupDecoration: + Selectable: + Bounds: 40,45 + Targetable: + TargetTypes: Ground, Wormrider + AttackMove: + DrawLineToTarget: + HiddenUnderFog: + ActorLostNotification: + Guard: + Voice: Guard + Guardable: + WithFacingSpriteBody: + MustBeDestroyed: + Voiced: + VoiceSet: FremenVoice + RevealOnFire: + Valued: + Cost: 3500 + Tooltip: + Name: Wormrider + Health: + HP: 150000 + HitShape: + Armor: + Type: heavy + RevealsShroud: + Range: 7c768 + Explodes: + Weapon: UnitExplodeSmall + EmptyWeapon: UnitExplodeSmall + Transforms: + IntoActor: wormdetonation_dummy + Facing: 0 + Turreted@PRIMARY: + Turret: primary + Offset: -600,0,200 + TurnSpeed: 20 + Turreted@SECONDARY: + Turret: secondary + Offset: -50,-150,350 + TurnSpeed: 20 + Armament@PRIMARY: + Turret: primary + Weapon: sound + Recoil: 30 + RecoilRecovery: 15 + Armament@SECONDARY: + Name: secondary + Turret: secondary + Weapon: sound + Recoil: 30 + RecoilRecovery: 15 + AttackTurreted: + WithSpriteTurret@PRIMARY: + Turret: primary + WithSpriteTurret@SECONDARY: + Turret: secondary + QuantizeFacingsFromSequence: + Sequence: stand + WithFacingSpriteBody: + Sequence: stand + WithMoveAnimation: + MoveSequence: walk + RenderSprites: + Image: worm_rider +wormdetonation_dummy: + EditorOnlyTooltip: + Name: wpdummy + AlwaysVisible: + Interactable: + Immobile: + OccupiesSpace: false + Health: + HP: 10000 + HitShape: + BodyOrientation: + QuantizedFacings: 16 + KillsSelf: + Explodes: + Weapon: ExplodeDestroySpice + EmptyWeapon: ExplodeDestroySpice + OwnerLostAction: + Action: Dispose + RenderSpritesEditorOnly: + Image: worm_rider +#ORDOS UNITS +raider: + Selectable: + Class: trike +stealth_raider: + Buildable: + Prerequisites: ~light.ordos, upgrade.light, high_tech_factory, ~techlevel.high + Selectable: + Class: stealth_raider +advanced_harvester_o: + Inherits: harvester + Buildable: + Prerequisites: refinery, ~heavy.ordos + Description: Collects Spice for processing\n Unarmed\n Doesn't attract worms + Tooltip: + Name: Advanced Harvester + -AttractsWorms: + RenderSprites: + Image: harvester_o +missile_tank_o: + Inherits: missile_tank + Buildable: + Prerequisites: ~heavy.ordos, upgrade.heavy, research_centre, ~techlevel.high + Turreted: + TurnSpeed: 5 + Offset: -200,0,170 + RealignDelay: 0 + -AttackFrontal: + AttackTurreted: + WithSpriteTurret: + -Armament: + Armament@damage: + Weapon: mtank_pri + LocalOffset: -200,0,0 + RenderSprites: + Image: missile_tank_o +deviator: + Buildable: + BuildPaletteOrder: 100 + Prerequisites: ~heavy.ordos, research_centre, ~techlevel.house +siege_tank_o: + Inherits: siege_tank + Buildable: + Prerequisites: upgrade.heavy, ~heavy.ordos, ~techlevel.medium + -AttackFrontal: + AttackTurreted: + Armament: + Weapon: 155mm + Recoil: 150 + RecoilRecovery: 19 + LocalOffset: 0,0,320 + MuzzleSequence: muzzle + RenderSprites: + Image: siege_tank_o +saboteur: + Valued: + Cost: 250 + Buildable: + BuildPaletteOrder: 80 + Prerequisites: ~barracks.ordos, upgrade.barracks, ~techlevel.high, high_tech_factory + BuildDuration: 120 + BuildDurationModifier: 60 + Description: Sneaky infantry, armed with explosives\n Strong vs Buildings and Vehicles\n Weak vs Everything\n Special Ability: destroy buildings and vehicles\n Stealth granted by Ordos Palace + Passenger: + CargoType: dangerousInfantry + Demolition: + DetonationDelay: 125 + Flashes: 5 + GrantConditionOnPrerequisite@STEALTH: + Condition: PalaceStealth + Prerequisites: palace.ordos + Cloak: + RequiresCondition: !cloak-force-disabled && PalaceStealth +guild_agent: + Inherits: ^Infantry + Buildable: + Queue: Infantry + BuildPaletteOrder: 90 + Prerequisites: ~barracks.ordos, upgrade.barracks, ~techlevel.house, palace.ordos + BuildDuration: 140 + BuildAtProductionType: Elite + BuildDurationModifier: 60 + Description: Elite Ordos spy infantry.\n Weak vs Everything\n Reveals important information inside enemy bases.\n Stealth granted by Ordos Palace\n Unarmed + Valued: + Cost: 350 + Tooltip: + Name: Guild Agent + Health: + HP: 5000 + RevealsShroud: + Range: 6c0 + Mobile: + Speed: 43 + -RevealOnFire: + GrantConditionOnDamageState@UNCLOAK: + Condition: cloak-force-disabled + ValidDamageStates: Critical + ProximityExternalCondition: + Condition: reveal_secrets + Range: 5c768 + ValidStances: Enemy + Cloak: + InitialDelay: 30 + CloakDelay: 30 + UncloakSound: STEALTH2.WAV + UncloakOn: Attack, Unload, Infiltrate, Demolish + IsPlayerPalette: true + RequiresCondition: !cloak-force-disabled + WithInfantryBody: + IdleSequences: idle1 + RenderSprites: + Image: guild_agent +#HARKONNEN UNITS +quad_hmg: + Inherits: quad + Valued: + Cost: 300 + Buildable: + Prerequisites: ~light.harkonnen + BuildPaletteOrder: 10 + BuildDuration: 194 + Description: Durable scout\n Strong vs Infantry\n Weak vs Tanks, Aircraft + Tooltip: + Name: HMG Quad + Selectable: + Class: trike + WithMuzzleOverlay: + -Armament: + Armament@damage: + Weapon: HMG + LocalOffset: -300,0,0 + Armament@muzzle: + Weapon: HMG_muzzle + LocalOffset: -300,0,0 + MuzzleSequence: muzzle + RenderSprites: + Image: quad_hmg +advanced_harvester_h: + Inherits: harvester + Buildable: + Prerequisites: refinery, ~heavy.harkonnen + Description: Collects 30% more Spice for processing\n Unarmed + Tooltip: + Name: Advanced Harvester + Harvester: + PipCount: 9 + Capacity: 36 + RenderSprites: + Image: harvester_h +troop_crawler: + Inherits: quad + -Armament: + -AttackFrontal: + -AutoTarget: + -AutoTargetPriority@DEFAULT: + -AutoTargetPriority@ATTACKANYTHING: + AttackMove: + -AssaultMoveCondition: + Buildable: + Queue: Vehicle + Prerequisites: ~light.harkonnen, barracks, upgrade.light, ~techlevel.medium + BuildPaletteOrder: 30 + Description: Quick Infantry Transport\n Loads up to 8 passengers + Tooltip: + Name: Troop Crawler + Cargo: + MaxWeight: 8 + PipCount: 8 + Types: Infantry + Selectable: + Class: troop_crawler + DecorationBounds: 40,29,0,0 + SelectionDecorations: + RenderSprites: + Image: troop_crawler +siege_tank_h: + Inherits: siege_tank + Buildable: + Prerequisites: ~heavy.harkonnen, upgrade.heavy, ~techlevel.medium + AmmoPool: + Ammo: 4 + AmmoCondition: ammo + ReloadAmmoPool: + Delay: 120 + ResetOnFire: True + -Armament: + GrantCondition@armed: + Condition: armed + RequiresCondition: ammo == 4 || !reloading + GrantCondition@reloading: + Condition: reloading + RequiresCondition: ammo == 0 || !armed + Armament@primary: + Weapon: 155mm_x4 + Recoil: 150 + RecoilRecovery: 19 + LocalOffset: 256,128,320, 256,-128,320 + PauseOnCondition: reloading + Armament@TargetDummy: + Weapon: 155mm_Dummy + RenderSprites: + Image: siege_tank_h +missile_tank_h: + Inherits: missile_tank + Buildable: + Prerequisites: ~heavy.harkonnen, upgrade.heavy, research_centre, ~techlevel.high + Armament: + Weapon: mtank_pri_salvo + LocalOffset: -128,128,171, -128,-128,171 + RenderSprites: + Image: missile_tank_h +assassin: + Inherits: ^Infantry + Inherits@AUTOTARGET: ^AutoTargetGroundAssaultMove + Valued: + Cost: 225 + Buildable: + Queue: Infantry + BuildPaletteOrder: 70 + Prerequisites: ~barracks.harkonnen, upgrade.barracks, high_tech_factory, ~techlevel.high + BuildDuration: 100 + BuildDurationModifier: 60 + Description: Infantry with long range weaponry\n Strong vs Infantry\n Weak vs Vehicles\n Stealthed in rough terrain + Tooltip: + Name: Assassin + Health: + HP: 7500 + Mobile: + Speed: 31 + RevealsShroud: + Range: 6c0 + Armament: + Weapon: SniperRifle + FireDelay: 4 + AttackFrontal: + WithInfantryBody: + DefaultAttackSequence: shoot + MinIdleDelay: 90 + MaxIdleDelay: 200 + GrantConditionOnTerrain: + TerrainTypes: Rough + Condition: hiddenbetweenrocks + Cloak: + InitialDelay: 120 + CloakDelay: 120 + UncloakOn: Move, Unload, Infiltrate, Demolish, Dock, Damage + IsPlayerPalette: true + RequiresCondition: !cloak-force-disabled && hiddenbetweenrocks + GrantConditionOnDamageState@UNCLOAK: + Condition: cloak-force-disabled + ValidDamageStates: Critical + -MustBeDestroyed: + RenderSprites: + Image: assassin +mpsardaukar: + Valued: + Cost: 275 + Buildable: + Prerequisites: ~barracks.harkonnen, upgrade.barracks, ~techlevel.house, palace.harkonnen + BuildAtProductionType: Elite + BuildPaletteOrder: 80 + Description: Elite assault infantry\n Strong vs Infantry, Vehicles\n Weak vs Artillery\n Uncrushable\n Has close combat attack + Crushable: + CrushClasses: vehicle + ExternalCondition@MELEE: + Condition: MeleeRange + AttackFrontal: + Armaments: primary, secondary, tertiary + Armament@Tertiary: + Name: tertiary + RequiresCondition: MeleeRange + Weapon: Dagger + FireDelay: 2 + -Explodes: # useless if uncrushable + WithInfantryBody: + AttackSequences: + primary: shoot + secondary: shoot + tertiary: stab + RenderSprites: + Image: sardaukar + +devastator: + Buildable: + Prerequisites: ~heavy.harkonnen, research_centre, ~techlevel.house +#FREMEN RULES +sietch: + Capturable: + Types: building + Production: + Produces: Infantry, Fremen + RallyPoint: + Path: 1,2 + Exit@1: + SpawnOffset: 352,576,0 + ExitCell: 0,2 + Exit@2: + SpawnOffset: 512,480,0 + ExitCell: 1,2 + ProductionBar: + ProductionType: Infantry + FrozenUnderFog: + ProvidesPrerequisite@buildingname: + PrimaryBuilding: + PrimaryCondition: primary + ProductionQueues: Infantry + SelectionNotification: PrimaryBuildingSelected + WithTextDecoration@primary: + RequiresSelection: true + Text: PRIMARY + ReferencePoint: Top + ZOffset: 256 + RequiresCondition: primary + CaptureManager: +fremen: + Buildable: + Prerequisites: ~sietch + BuildAtProductionType: Fremen + Description: Elite infantry unit armed with assault rifles and close combat weapons\n Strong vs Infantry\n Weak vs Artillery\n Invisibility on Sand\n Close Combat Attack + GrantConditionOnTerrain: + TerrainTypes: Sand, Dune, SpiceSand, Spice + Condition: HiddeninSand + Cloak: + CloakSound: veil.wav + UncloakSound: unveil.wav + PauseOnCondition: !(!cloak-force-disabled && HiddeninSand) + AutoTarget: + InitialStance: Defend + InitialStanceAI: Defend + ExternalCondition@MELEE: + Condition: MeleeRange + Armament@TERTIARY: + Name: tertiary + RequiresCondition: MeleeRange + Weapon: Dagger + FireDelay: 2 + AttackFrontal: + Armaments: primary, secondary, tertiary +fremen_skyhunter: + Inherits: fremen + Inherits@AUTOTARGET: ^AutoTargetAllAssaultMove + Tooltip: + Name: Fremen Skyhunter + Buildable: + Description: Elite infantry unit armed with Rockets and close combat weapons\n Strong vs Aircraft (Infantry)\n Weak vs Artillery\n Invisibility on Sand\n Close Combat Attack + Buildable: + Prerequisites: ~sietch + -TakeCover: + Cloak: + CloakDelay: 116 + Armament@PRIMARY: + Weapon: mtank_pri + -Armament@SECONDARY: + RenderSprites: + Image: fremen +#CARRYALLS +carryall.reinforce: + Cargo: + MaxWeight: 5 + HiddenUnderFog: + AlwaysVisibleStances: Ally +carryall: + WithDeathAnimation: + FallbackSequence: die-sabotaged + DeathSequencePalette: effect + DeathPaletteIsPlayerPalette: False +carryall.controllable: + Inherits: carryall.reinforce + -Interactable: + -Buildable: + -Carryall: + Cargo: + PipCount: 5 + LoadedCondition: loaded + RejectsOrders: + RequiresCondition: !loaded + GrantConditionOnPrerequisite@STEALTH: + Condition: PalaceStealth + Prerequisites: palace.ordos + GrantConditionOnDamageState@UNCLOAK: + Condition: cloak-force-disabled + ValidDamageStates: Critical + Cloak: + CloakTypes: SkyDistort + InitialDelay: 0 + CloakDelay: 30 + UncloakSound: STEALTH2.WAV + UncloakOn: Attack, Unload, Infiltrate, Demolish + IsPlayerPalette: true + PauseOnCondition: !(!cloak-force-disabled && PalaceStealth && airborne) + Aircraft: + Speed: 110 + Repulsable: True + RepulsionSpeed: 40 + Selectable: + Bounds: 36,28,0,2 + Class: carryall + DecorationBounds: 40,29,0,1 + SelectionDecorations: +carryall.bomber: + Inherits: carryall.reinforce + -Buildable: + -Carryall: + -Cargo: + RejectsOrders: + AttackBomber: + Armament: + Weapon: GasBomb + Health: + HP: 30000 + AmmoPool: + Ammo: 1 + GrantConditionOnPrerequisite@STEALTH: + Condition: PalaceStealth + Prerequisites: palace.ordos + GrantConditionOnDamageState@UNCLOAK: + Condition: cloak-force-disabled + ValidDamageStates: Critical + Cloak: + CloakTypes: SkyDistort + InitialDelay: 0 + CloakDelay: 30 + UncloakSound: STEALTH2.WAV + UncloakOn: Attack, Unload, Infiltrate, Demolish + IsPlayerPalette: true + PauseOnCondition: !(!cloak-force-disabled && PalaceStealth && airborne) +frigate.controllable: + Inherits: carryall.controllable + -Cloak: + -GrantConditionOnPrerequisite@STEALTH: + -GrantConditionOnDamageState@UNCLOAK: + -SpawnActorOnDeath@CRUISING: + -SpawnActorOnDeath@LANDING: + Cargo: + PipCount: 7 + Tooltip: + Name: Frigate + Aircraft: + Speed: 189 + -CruisingCondition: + RenderSprites: + Image: frigate + RevealsShroud: + Range: 5c768 + Type: CenterPosition + Explodes: + Weapon: UnitExplodeLarge + EmptyWeapon: UnitExplodeLarge +#STARPORT ADDITIONS +combat_tank_m.starport: + Inherits: ^combat_tank + Buildable: + Prerequisites: starport + Queue: Starport + Description: Main Battle Tank\n Strong vs Tanks\n Weak vs Infantry, Aircraft\n \n Cheap mass product by licensed manufacturers. + Valued: + Cost: 875 + Armament: + Weapon: 80mm_O + SpawnActorOnDeath: + Actor: combat_tank_h.husk + RenderSprites: + Image: combat_tank_m +mobile_crane.starport: + Inherits: mobile_crane + Buildable: + Prerequisites: starport + Queue: Starport + Valued: + Cost: 2000 + RenderSprites: + Image: mobile_crane +quad.starport: + RenderSprites: + Image: quad_rocket +#DISABLED UNITS +trike: + Buildable: + Prerequisites: ~disabled +mcv.starport: + Buildable: + Prerequisites: ~disabled +combat_tank_a.starport: + Buildable: + Prerequisites: ~disabled +combat_tank_h.starport: + Buildable: + Prerequisites: ~disabled +combat_tank_o.starport: + Buildable: + Prerequisites: ~disabled +harvester: + Buildable: + Prerequisites: ~disabled +grenadier: + Buildable: + Prerequisites: ~disabled +siege_tank: + Buildable: + Prerequisites: ~disabled + Description: Siege Artillery with extreme range\n Strong vs Infantry, Buildings\n Weak vs Tanks + Armament: + LocalOffset: 512,0,400 + AutoTarget: + InitialStance: AttackAnything +missile_tank: + Buildable: + Prerequisites: ~disabled + Description: Rocket Artillery\n Strong vs Vehicles, Buildings, Aircraft\n Weak vs Infantry\n\n Detects stealthed aircraft. + DetectCloaked: + CloakTypes: SkyDistort + Range: 6c0 + WithRangeCircle: + Range: 6c0 + Color: B2B2FF60 +nsfremen: + #for lint integrity + -GrantConditionOnTerrain: \ No newline at end of file diff --git a/bits/WormRider.shp b/bits/WormRider.shp new file mode 100644 index 0000000..6cfecee Binary files /dev/null and b/bits/WormRider.shp differ diff --git a/bits/Wormexplode.shp b/bits/Wormexplode.shp new file mode 100644 index 0000000..4484c0f Binary files /dev/null and b/bits/Wormexplode.shp differ diff --git a/bits/Wormexplode_effect.shp b/bits/Wormexplode_effect.shp new file mode 100644 index 0000000..27b9942 Binary files /dev/null and b/bits/Wormexplode_effect.shp differ diff --git a/bits/allyrepair.shp b/bits/allyrepair.shp new file mode 100644 index 0000000..1bcec19 Binary files /dev/null and b/bits/allyrepair.shp differ diff --git a/bits/aoecobra.shp b/bits/aoecobra.shp new file mode 100644 index 0000000..ebe9997 Binary files /dev/null and b/bits/aoecobra.shp differ diff --git a/bits/burn-l.shp b/bits/burn-l.shp new file mode 100644 index 0000000..00ceed4 Binary files /dev/null and b/bits/burn-l.shp differ diff --git a/bits/cobra.wav b/bits/cobra.wav new file mode 100644 index 0000000..210d960 Binary files /dev/null and b/bits/cobra.wav differ diff --git a/bits/cobraTest.shp b/bits/cobraTest.shp new file mode 100644 index 0000000..7bc05c5 Binary files /dev/null and b/bits/cobraTest.shp differ diff --git a/bits/cobraTest2.shp b/bits/cobraTest2.shp new file mode 100644 index 0000000..e4ccc72 Binary files /dev/null and b/bits/cobraTest2.shp differ diff --git a/bits/combatTank.wav b/bits/combatTank.wav new file mode 100644 index 0000000..f3a9f67 Binary files /dev/null and b/bits/combatTank.wav differ diff --git a/bits/d2k_R16.gpl b/bits/d2k_R16.gpl new file mode 100644 index 0000000..9c48112 --- /dev/null +++ b/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/bits/d2k_barracks_corrino.shp b/bits/d2k_barracks_corrino.shp new file mode 100644 index 0000000..3713700 Binary files /dev/null and b/bits/d2k_barracks_corrino.shp differ diff --git a/bits/d2k_barracks_merc.shp b/bits/d2k_barracks_merc.shp new file mode 100644 index 0000000..b4e6ef1 Binary files /dev/null and b/bits/d2k_barracks_merc.shp differ diff --git a/bits/d2k_heavy_factory_corrino.shp b/bits/d2k_heavy_factory_corrino.shp new file mode 100644 index 0000000..7fbe096 Binary files /dev/null and b/bits/d2k_heavy_factory_corrino.shp differ diff --git a/bits/d2k_research_center_gold.shp b/bits/d2k_research_center_gold.shp new file mode 100644 index 0000000..56a0351 Binary files /dev/null and b/bits/d2k_research_center_gold.shp differ diff --git a/bits/d2k_research_center_gold_icon.shp b/bits/d2k_research_center_gold_icon.shp new file mode 100644 index 0000000..daca946 Binary files /dev/null and b/bits/d2k_research_center_gold_icon.shp differ diff --git a/bits/d2k_sietch_destroyed.shp b/bits/d2k_sietch_destroyed.shp new file mode 100644 index 0000000..7324cfa Binary files /dev/null and b/bits/d2k_sietch_destroyed.shp differ diff --git a/bits/d2k_sietch_icon.shp b/bits/d2k_sietch_icon.shp new file mode 100644 index 0000000..9f466d4 Binary files /dev/null and b/bits/d2k_sietch_icon.shp differ diff --git a/bits/d2k_spice_sifter.shp b/bits/d2k_spice_sifter.shp new file mode 100644 index 0000000..941e7ef Binary files /dev/null and b/bits/d2k_spice_sifter.shp differ diff --git a/bits/d2k_spice_sifter_icon.shp b/bits/d2k_spice_sifter_icon.shp new file mode 100644 index 0000000..731ce0c Binary files /dev/null and b/bits/d2k_spice_sifter_icon.shp differ diff --git a/bits/d2kifvicon.shp b/bits/d2kifvicon.shp new file mode 100644 index 0000000..2582929 Binary files /dev/null and b/bits/d2kifvicon.shp differ diff --git a/bits/elite.bmp b/bits/elite.bmp new file mode 100644 index 0000000..dcc866c Binary files /dev/null and b/bits/elite.bmp differ diff --git a/bits/elite.wav b/bits/elite.wav new file mode 100644 index 0000000..00869aa Binary files /dev/null and b/bits/elite.wav differ diff --git a/bits/flamethrower.wav b/bits/flamethrower.wav new file mode 100644 index 0000000..d9d5049 Binary files /dev/null and b/bits/flamethrower.wav differ diff --git a/bits/gunTurret.wav b/bits/gunTurret.wav new file mode 100644 index 0000000..9a64a00 Binary files /dev/null and b/bits/gunTurret.wav differ diff --git a/bits/lightInf.wav b/bits/lightInf.wav new file mode 100644 index 0000000..aa40f4c Binary files /dev/null and b/bits/lightInf.wav differ diff --git a/bits/mortarInf.wav b/bits/mortarInf.wav new file mode 100644 index 0000000..442e92d Binary files /dev/null and b/bits/mortarInf.wav differ diff --git a/bits/napalm1.shp b/bits/napalm1.shp new file mode 100644 index 0000000..4d9e3a0 Binary files /dev/null and b/bits/napalm1.shp differ diff --git a/bits/napalm3.shp b/bits/napalm3.shp new file mode 100644 index 0000000..7347f54 Binary files /dev/null and b/bits/napalm3.shp differ diff --git a/bits/pip-skull.shp b/bits/pip-skull.shp new file mode 100644 index 0000000..d612da3 Binary files /dev/null and b/bits/pip-skull.shp differ diff --git a/bits/sardaukar.wav b/bits/sardaukar.wav new file mode 100644 index 0000000..aee27ff Binary files /dev/null and b/bits/sardaukar.wav differ diff --git a/bits/sequences.yaml b/bits/sequences.yaml new file mode 100644 index 0000000..ea92725 --- /dev/null +++ b/bits/sequences.yaml @@ -0,0 +1,621 @@ +icon: + bannerpaul: PaulNewCameo.shp + Start: 0 + gascloud: GasCloudIcon.shp + Start: 0 + invasion: InvasionNewCameo.shp + Start: 0 + air_reinf_o: AirReinforcementsIcons.shp + Start: 0 + air_reinf_h: AirReinforcementsIcons.shp + Start: 1 + air_reinf_a: AirReinforcementsIcons.shp + Start: 2 +quad_hmg: + idle: DATA.R8 + Start: 1667 + Facings: -32 + muzzle: DATA.R8 + Start: 4092 + Tick: 50 + Facings: -32 + BlendMode: Additive + icon: DATA.R8 + Start: 4279 + Offset: -30,-24 +troop_crawler: + idle: TroopCrawler.shp + Start: 0 + Facings: -32 + icon: TroopCrawlerIcon.shp +mobile_crane: + idle: MobileCrane.shp + Start: 0 + Facings: -32 + icon: MobileCraneIcon.shp + Start: 0 +crane.atreides: + idle: Crane.shp + make: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + crumble-overlay: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + damaged-idle: Crane.shp + Start: 3 + icon: DATA.R8 + Start: 4310 + Offset: -30,-24 +crane.harkonnen: + idle: Crane.shp + Start: 1 + make: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + crumble-overlay: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + damaged-idle: Crane.shp + Start: 4 + icon: DATA.R8 + Start: 4311 + Offset: -30,-24 +crane.ordos: + idle: Crane.shp + Start: 2 + make: DATA.R8 + Start: 4373 + Length: 30 + Offset: -63,64 + crumble-overlay: DATA.R8 + Start: 4403 + Length: 12 + Offset: -48,64 + Tick: 170 + damaged-idle: Crane.shp + Start: 5 + icon: DATA.R8 + Start: 4312 + Offset: -30,-24 +trike_a: + idle: TrikeChassis.shp + Start: 0 + Facings: -32 + turret: AtreidesTurr.shp + Start: 0 + Facings: -32 + muzzle: DATA.R8 + Start: 4092 + Tick: 50 + Facings: -32 + BlendMode: Additive + icon: AtreidesTrikeIcon.shp + Start: 0 +harvester_a: + idle: DATA.R8 + Start: 1699 + Facings: -32 + turret: AtreidesTurr.shp + Start: 0 + Facings: -32 + Offset: 0,-3 + muzzle: DATA.R8 + Start: 4092 + Tick: 50 + Facings: -32 + BlendMode: Additive + harvest: DATA.R8 + Start: 3884 + Length: 6 + Facings: -8 + Tick: 80 + ZOffset: 1 + BlendMode: Multiply + dock: DATA.R8 + Start: 3623 + Length: 10 + dock-loop: DATA.R8 + Start: 3633 + icon: AtreidesHarvesterIcon.shp + Start: 0 +loyalist: + stand: AtreidesLoyalist.shp + Start: 0 + Facings: -8 + Offset: 0,-6 + idle1: AtreidesLoyalist.shp + Start: 8 + Length: 8 + Tick: 200 + Offset: 0,-6 + run: AtreidesLoyalist.shp + Start: 52 + Length: 6 + Facings: -8 + Tick: 110 + Offset: 0,-6 + prone-stand: AtreidesLoyalist.shp + Start: 100 + Facings: -8 + Offset: 0,-6 + standup: AtreidesLoyalist.shp + Start: 108 + Facings: -8 + Offset: 0,-6 + prone-run: AtreidesLoyalist.shp + Start: 116 + Length: 4 + Facings: -8 + Tick: 82 + Offset: 0,-6 + shoot: AtreidesLoyalist.shp + Start: 148 + Length: 5 + Tick: 110 + Facings: -8 + Offset: 0,-6 + prone-shoot: AtreidesLoyalist.shp + Start: 148 + Length: 5 + Tick: 110 + Facings: -8 + Offset: 0,-6 + die1: AtreidesLoyalist.shp + Start: 16 + Length: 12 + Tick: 80 + Offset: 0,-6 + die2: AtreidesLoyalist.shp + Start: 16 + Length: 12 + Tick: 80 + Offset: 0,-6 + die3: AtreidesLoyalist.shp + Start: 28 + Length: 12 + Tick: 80 + Offset: 0,-6 + die4: AtreidesLoyalist.shp + Start: 40 + Length: 12 + Tick: 80 + Offset: 0,-6 + die-crushed: DATA.R8 + Frames: 386, 393, 400, 407, 414, 421, 428, 435, 442, 447, 452, 457 + Length: 12 + Tick: 800 + ZOffset: -511 + icon: AtreidesLoyalistIcon.shp + Start: 0 +propaganda_corps: + stand: PropagandaCorps.shp + Start: 0 + Facings: -8 + Offset: 0,-9 + idle1: PropagandaCorps.shp + Start: 8 + Length: 8 + Tick: 200 + Offset: 0,-9 + run: PropagandaCorps.shp + Start: 52 + Length: 6 + Facings: -8 + Tick: 110 + Offset: 0,-9 + shoot: PropagandaCorps.shp + Start: 100 + Length: 6 + Facings: -8 + Offset: 0,-9 + die1: PropagandaCorps.shp + Start: 16 + Length: 12 + Tick: 80 + Offset: 0,-9 + die2: PropagandaCorps.shp + Start: 16 + Length: 12 + Tick: 80 + Offset: 0,-9 + die3: PropagandaCorps.shp + Start: 28 + Length: 12 + Tick: 80 + Offset: 0,-9 + die4: PropagandaCorps.shp + Start: 40 + Length: 12 + Tick: 80 + Offset: 0,-9 + die-crushed: DATA.R8 + Frames: 386, 393, 400, 407, 414, 421, 428, 435, 442, 447, 452, 457 + Length: 12 + Tick: 800 + ZOffset: -511 + icon: PropagandaCorpsIcon.shp + Start: 0 +paul_atreides: + stand: paul_atreides.shp + Start: 0 + Facings: -8 + Offset: 0,-6 + idle1: paul_atreides.shp + Start: 8 + Length: 8 + Tick: 200 + Offset: 0,-6 + idle2: paul_atreides.shp + Frames: 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16 + Length: 23 + Tick: 200 + Offset: 0,-6 + run: paul_atreides.shp + Start: 104 + Length: 6 + Facings: -8 + Tick: 110 + Offset: 0,-6 + shoot: paul_atreides.shp + Start: 200 + Length: 5 + Facings: -8 + Tick: 200 + Offset: 0,-6 + close_combat: paul_atreides.shp + Start: 64 + Length: 5 + Facings: -8 + Tick: 120 + Offset: 0,-6 + prone-stand: paul_atreides.shp + Start: 152 + Facings: -8 + Offset: 0,-6 + prone-run: paul_atreides.shp + Start: 168 + Length: 4 + Facings: -8 + Tick: 82 + Offset: 0,-6 + standup: paul_atreides.shp + Start: 160 + Facings: -8 + Offset: 0,-6 + prone-shoot: paul_atreides.shp + Start: 240 + Length: 5 + Facings: -8 + Tick: 200 + Offset: 0,-6 + prone-close_combat: paul_atreides.shp + Start: 64 + Length: 5 + Facings: -8 + Tick: 120 + Offset: 0,-6 + die1: paul_atreides.shp + Start: 57 + Length: 7 + Tick: 80 + Offset: 0,-6 + die4: paul_atreides.shp + Start: 28 + Length: 17 + Tick: 80 + Offset: 0,-6 + die3: paul_atreides.shp + Start: 45 + Length: 12 + Tick: 80 + Offset: 0,-6 + die2: paul_atreides.shp + Start: 57 + Length: 7 + Tick: 80 + Offset: 0,-6 + die-crushed: DATA.R8 + Frames: 414, 421, 428, 435, 442, 447, 452, 457 + Length: 8 + Tick: 800 + ZOffset: -511 +worm_rider: + stand: WormRider.shp + Frames: 0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150 + Facings: -16 + walk: WormRider.shp + Start: 0 + Length: 10 + Tick: 125 + Facings: -16 + turret: FedaykinTurret.shp + Start: 0 + Facings: -32 + Offset: 0,-3 + + icon: DATA.R8 + Start: 4279 + Offset: -30,-24 +missile_tank_o: + idle: DATA.R8 + Start: 2453 + Facings: -32 + turret: RocketTankTurr.shp + Start: 0 + Facings: -32 + muzzle: DATA.R8 + Start: 4092 + Tick: 50 + Facings: -32 + BlendMode: Additive + icon: RocketTankOIcon.shp + Start: 0 +harvester_o: + idle: OrdosHarvester.shp + Start: 0 + Facings: -32 + harvest: DATA.R8 + Start: 3884 + Length: 6 + Facings: -8 + Tick: 80 + ZOffset: 1 + BlendMode: Multiply + dock: OrdosHarvesterAnimation.shp + Start: 0 + Length: 10 + dock-loop: OrdosHarvesterAnimation.shp + Start: 9 + icon: OrdosHarvesterIcon.shp + Start: 0 +siege_tank_h: + idle: DATA.R8 + Start: 1763 + Facings: -32 + turret: HarkonnenSiegeTankTurret.shp + Start: 0 + Facings: -32 + Offset: 0,-6 + muzzle: DATA.R8 + Start: 3671 + Length: 3 + BlendMode: Additive + icon: HarkonnenSiegeTankIcon.shp + Start: 0 +siege_tank_o: + idle: DATA.R8 + Start: 2453 + Facings: -32 + turret: DATA.R8 + Start: 1891 + Facings: -32 + muzzle: DATA.R8 + Start: 3671 + Length: 3 + BlendMode: Additive + icon: SiegeTankOIcon.shp + Start: 0 +guild_agent: + stand: GuildAgent.shp + Start: 0 + Facings: -8 + Offset: 0,-7 + idle1: GuildAgent.shp + Start: 8 + Length: 8 + Tick: 200 + Offset: 0,-7 + run: GuildAgent.shp + Start: 52 + Length: 6 + Facings: -8 + Tick: 110 + Offset: 0,-7 + prone-stand: GuildAgent.shp + Start: 100 + Facings: -8 + Offset: 0,-7 + standup: GuildAgent.shp + Start: 108 + Facings: -8 + Offset: 0,-7 + prone-run: GuildAgent.shp + Start: 116 + Length: 4 + Facings: -8 + Tick: 82 + Offset: 0,-7 + die1: GuildAgent.shp + Start: 16 + Length: 12 + Tick: 80 + Offset: 0,-7 + die2: GuildAgent.shp + Start: 16 + Length: 12 + Tick: 80 + Offset: 0,-7 + die3: GuildAgent.shp + Start: 28 + Length: 12 + Tick: 80 + Offset: 0,-7 + die4: GuildAgent.shp + Start: 40 + Length: 12 + Tick: 80 + Offset: 0,-7 + die-crushed: DATA.R8 + Frames: 386, 393, 400, 407, 414, 421, 428, 435, 442, 447, 452, 457 + Length: 12 + Tick: 800 + ZOffset: -511 + icon: GuildAgentIcon.shp + Start: 0 +harvester_h: + idle: HarkonnenHarvester.shp + Start: 0 + Facings: -32 + harvest: DATA.R8 + Start: 3884 + Length: 6 + Facings: -8 + Tick: 80 + ZOffset: 1 + BlendMode: Multiply + dock: HarkonnenHarvesterAnimation.shp + Start: 0 + Length: 10 + dock-loop: HarkonnenHarvesterAnimation.shp + Start: 10 + icon: HarkonnenHarvesterIcon.shp + Start: 0 +missile_tank_h: + idle: HarkonnenMissileTank.shp + Start: 0 + Facings: -32 + icon: HarkonnenMissileTankIcon.shp + Start: 0 +quad_rocket: + idle: RocketQuad.shp + Start: 0 + Facings: -32 + icon: RocketQuadIcon.shp + Start: 0 +combat_tank_m: + idle: DATA.R8 + Start: 2051 + Facings: -32 + turret: MerchenaryTurr.shp + Start: 0 + Facings: -32 + Offset: 0, -3 + muzzle: DATA.R8 + Start: 4028 + Tick: 60 + Facings: -32 + BlendMode: Additive + icon: MerchenaryTankIcon.shp + Start: 0 +pips: + pip-blue: extrapips.shp + Start: 8 + Offset: 2,2 + pip-yellow: extrapips.shp + Start: 5 + Offset: 2,2 + pip-red: extrapips.shp + Start: 10 + Offset: 2,2 + pip-gray: extrapips.shp + Start: 3 + Offset: 2,2 +iconchevrons: + rank: Level1Icon.shp + Offset: 2,2 +assassin: + stand: Assassin.shp + Start: 193 + Stride: 2 + Facings: 8 + idle1: Assassin.shp + Start: 385 + Length: 15 + Tick: 100 + idle2: Assassin.shp + Start: 400 + Length: 8 + Tick: 100 + run: Assassin.shp + Start: 16 + Length: 6 + Facings: 8 + Tick: 100 + shoot: Assassin.shp + Start: 64 + Length: 16 + Facings: 8 + Tick: 100 + prone-stand: Assassin.shp + Start: 208 + Stride: 4 + Facings: 8 + prone-run: Assassin.shp + Start: 208 + Length: 4 + Facings: 8 + Tick: 100 + standup: Assassin.shp + Start: 240 + Length: 2 + Facings: 8 + prone-shoot: Assassin.shp + Start: 256 + Length: 16 + Facings: 8 + die1: Assassin.shp + Start: 416 + Length: 8 + die2: Assassin.shp + Start: 424 + Length: 8 + die3: Assassin.shp + Start: 432 + Length: 8 + die4: Assassin.shp + Start: 440 + Length: 12 + die-crushed: DATA.R8 + Frames: 2698, 2705, 2712, 2719, 2726, 2733, 2740, 2747 + Tick: 800 + ZOffset: -511 + icon: AssassinIcon.shp + Start:0 +sardaukar: + stab: Sardaukar-stab.shp + Start: 0 + Length: 2 + Facings: -8 + Tick: 133 + prone-stab: Sardaukar-stab.shp + Start: 0 + Length: 2 + Facings: -8 + Tick: 133 +explosion: + heavy_piff: HeavyPiff.shp + Offset: 0,-7 + Start: 0 + Length: 4 + gas_explosion: GasCloud.shp + Start: 0 + Length: 23 + worm_explode: Wormexplode.shp + Start: 1 + Length: 16 + BlendMode: Alpha + worm_explode_smoke: Wormexplode_effect.shp + Start: 1 + Length: 16 + Offset: 0,-15 +carryall: + die-sabotaged: DATA.R8 + Start: 4241 + Length: 22 + BlendMode: Additive + Tick: 80 + ZOffset: 511 +ornithopter: + landed: DATA.R8 + Start: 1955 + Facings: -32 + Length: 2 + Tick: 500 + Transpose: true \ No newline at end of file diff --git a/bits/siege.wav b/bits/siege.wav new file mode 100644 index 0000000..be79d42 Binary files /dev/null and b/bits/siege.wav differ diff --git a/bits/smokeFromRA.shp b/bits/smokeFromRA.shp new file mode 100644 index 0000000..64890b5 Binary files /dev/null and b/bits/smokeFromRA.shp differ diff --git a/bits/smokeFromTS.shp b/bits/smokeFromTS.shp new file mode 100644 index 0000000..0937537 Binary files /dev/null and b/bits/smokeFromTS.shp differ diff --git a/bits/smokland.shp b/bits/smokland.shp new file mode 100644 index 0000000..3620229 Binary files /dev/null and b/bits/smokland.shp differ diff --git a/bits/tankBombar.wav b/bits/tankBombar.wav new file mode 100644 index 0000000..695e20c Binary files /dev/null and b/bits/tankBombar.wav differ diff --git a/bits/tankMissile.wav b/bits/tankMissile.wav new file mode 100644 index 0000000..c0e39e3 Binary files /dev/null and b/bits/tankMissile.wav differ diff --git a/bits/tree01.gpl b/bits/tree01.gpl new file mode 100644 index 0000000..ce3783d --- /dev/null +++ b/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/bits/trike.wav b/bits/trike.wav new file mode 100644 index 0000000..1663e22 Binary files /dev/null and b/bits/trike.wav differ diff --git a/bits/turret.wav b/bits/turret.wav new file mode 100644 index 0000000..8fd8a52 Binary files /dev/null and b/bits/turret.wav differ diff --git a/bits/water_tiles_palette.gpl b/bits/water_tiles_palette.gpl new file mode 100644 index 0000000..2a13a9a --- /dev/null +++ b/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/d2k_R16.gpl b/d2k_R16.gpl new file mode 100644 index 0000000..9c48112 --- /dev/null +++ b/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/ebassets.R8 b/ebassets.R8 new file mode 100644 index 0000000..18f8679 Binary files /dev/null and b/ebassets.R8 differ diff --git a/map.bin b/map.bin new file mode 100644 index 0000000..4788c07 Binary files /dev/null and b/map.bin differ diff --git a/map.png b/map.png new file mode 100644 index 0000000..d29bef6 Binary files /dev/null and b/map.png differ diff --git a/map.yaml b/map.yaml new file mode 100644 index 0000000..11cb9cd --- /dev/null +++ b/map.yaml @@ -0,0 +1,3295 @@ +MapFormat: 12 + +RequiresMod: d2k + +Title: Build More Carryalls 20 + +Author: Patto + +Tileset: ARRAKIS + +MapSize: 162,162 + +Bounds: 1,1,160,160 + +Visibility: Lobby + +Categories: Conquest + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: Random + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + Faction: Random + Enemies: Multi0, Multi1, Multi2, Multi3, Multi4, Multi5 + PlayerReference@Multi0: + Name: Multi0 + Playable: True + Faction: Random + Enemies: Creeps + PlayerReference@Multi1: + Name: Multi1 + Playable: True + Faction: Random + Enemies: Creeps + PlayerReference@Multi2: + Name: Multi2 + Playable: True + Faction: Random + Enemies: Creeps + PlayerReference@Multi3: + Name: Multi3 + Playable: True + Faction: Random + Enemies: Creeps + PlayerReference@Multi4: + Name: Multi4 + Playable: True + Faction: Random + Enemies: Creeps + PlayerReference@Multi5: + Name: Multi5 + Playable: True + Faction: Random + Enemies: Creeps + +Actors: + Actor50: spicebloom.spawnpoint + Owner: Neutral + Location: 60,9 + Actor828: spicebloom.spawnpoint + Owner: Neutral + Location: 85,153 + Actor834: spicebloom.spawnpoint + Owner: Neutral + Location: 84,154 + Actor1026: spicebloom.spawnpoint + Owner: Neutral + Location: 85,155 + Actor1045: spicebloom.spawnpoint + Owner: Neutral + Location: 84,156 + Actor1059: spicebloom.spawnpoint + Owner: Neutral + Location: 84,158 + Actor1069: spicebloom.spawnpoint + Owner: Neutral + Location: 85,159 + Actor1074: spicebloom.spawnpoint + Owner: Neutral + Location: 83,160 + Actor1075: spicebloom.spawnpoint + Owner: Neutral + Location: 84,160 + Actor1082: spicebloom.spawnpoint + Owner: Neutral + Location: 85,161 + Actor2543: spicebloom.spawnpoint + Owner: Neutral + Location: 83,0 + Actor2544: spicebloom.spawnpoint + Owner: Neutral + Location: 85,0 + Actor3290: spicebloom.spawnpoint + Owner: Neutral + Location: 84,46 + Actor3318: spicebloom.spawnpoint + Owner: Neutral + Location: 84,47 + Actor3319: spicebloom.spawnpoint + Owner: Neutral + Location: 85,47 + Actor4312: spicebloom.spawnpoint + Owner: Neutral + Location: 80,113 + Actor4313: spicebloom.spawnpoint + Owner: Neutral + Location: 82,113 + Actor4181: spicebloom.spawnpoint + Owner: Neutral + Location: 27,131 + Actor4216: spicebloom.spawnpoint + Owner: Neutral + Location: 27,141 + Actor3695: spicebloom.spawnpoint + Owner: Neutral + Location: 117,105 + Actor3631: spicebloom.spawnpoint + Owner: Neutral + Location: 80,105 + Actor3632: spicebloom.spawnpoint + Owner: Neutral + Location: 81,105 + Actor3825: spicebloom.spawnpoint + Owner: Neutral + Location: 82,105 + Actor4248: spicebloom.spawnpoint + Owner: Neutral + Location: 82,108 + Actor3639: spicebloom.spawnpoint + Owner: Neutral + Location: 81,109 + Actor4251: spicebloom.spawnpoint + Owner: Neutral + Location: 82,109 + Actor4278: spicebloom.spawnpoint + Owner: Neutral + Location: 80,112 + Actor4279: spicebloom.spawnpoint + Owner: Neutral + Location: 82,112 + Actor3312: spicebloom.spawnpoint + Owner: Neutral + Location: 80,49 + Actor3645: spicebloom.spawnpoint + Owner: Neutral + Location: 82,49 + Actor3434: spicebloom.spawnpoint + Owner: Neutral + Location: 82,52 + Actor4285: spicebloom.spawnpoint + Owner: Neutral + Location: 82,53 + Actor4289: spicebloom.spawnpoint + Owner: Neutral + Location: 81,55 + Actor4290: spicebloom.spawnpoint + Owner: Neutral + Location: 82,55 + Actor3436: spicebloom.spawnpoint + Owner: Neutral + Location: 81,56 + Actor3455: spicebloom.spawnpoint + Owner: Neutral + Location: 82,56 + Actor3510: spicebloom.spawnpoint + Owner: Neutral + Location: 80,59 + Actor3516: spicebloom.spawnpoint + Owner: Neutral + Location: 81,59 + Actor4293: spicebloom.spawnpoint + Owner: Neutral + Location: 82,59 + Actor3862: spicebloom.spawnpoint + Owner: Neutral + Location: 61,1 + Actor4236: spicebloom.spawnpoint + Owner: Neutral + Location: 60,4 + Actor4244: spicebloom.spawnpoint + Owner: Neutral + Location: 62,7 + Actor4249: spicebloom.spawnpoint + Owner: Neutral + Location: 66,8 + Actor4254: spicebloom.spawnpoint + Owner: Neutral + Location: 68,1 + Actor4310: spicebloom.spawnpoint + Owner: Neutral + Location: 67,4 + Actor4311: spicebloom.spawnpoint + Owner: Neutral + Location: 71,4 + Actor4175: spicebloom.spawnpoint + Owner: Neutral + Location: 74,1 + Actor4334: spicebloom.spawnpoint + Owner: Neutral + Location: 73,4 + Actor3216: spicebloom.spawnpoint + Owner: Neutral + Location: 73,12 + Actor4200: spicebloom.spawnpoint + Owner: Neutral + Location: 71,13 + Actor4337: spicebloom.spawnpoint + Owner: Neutral + Location: 69,16 + Actor3209: spicebloom.spawnpoint + Owner: Neutral + Location: 68,12 + Actor3177: spicebloom.spawnpoint + Owner: Neutral + Location: 61,11 + Actor3178: spicebloom.spawnpoint + Owner: Neutral + Location: 66,13 + Actor3201: spicebloom.spawnpoint + Owner: Neutral + Location: 60,14 + Actor3276: spicebloom.spawnpoint + Owner: Neutral + Location: 64,14 + Actor4167: spicebloom.spawnpoint + Owner: Neutral + Location: 62,17 + Actor3153: spicebloom.spawnpoint + Owner: Neutral + Location: 61,19 + Actor3118: spicebloom.spawnpoint + Owner: Neutral + Location: 70,9 + Actor3123: spicebloom.spawnpoint + Owner: Neutral + Location: 63,9 + Actor3125: spicebloom.spawnpoint + Owner: Neutral + Location: 73,2 + Actor3130: spicebloom.spawnpoint + Owner: Neutral + Location: 63,1 + Actor3139: spicebloom.spawnpoint + Owner: Neutral + Location: 72,6 + Actor3143: spicebloom.spawnpoint + Owner: Neutral + Location: 71,19 + Actor2984: spicebloom.spawnpoint + Owner: Neutral + Location: 61,20 + Actor2985: spicebloom.spawnpoint + Owner: Neutral + Location: 63,20 + Actor2986: spicebloom.spawnpoint + Owner: Neutral + Location: 68,20 + Actor2988: spicebloom.spawnpoint + Owner: Neutral + Location: 73,21 + Actor2990: spicebloom.spawnpoint + Owner: Neutral + Location: 66,22 + Actor2992: spicebloom.spawnpoint + Owner: Neutral + Location: 60,23 + Actor2994: spicebloom.spawnpoint + Owner: Neutral + Location: 67,23 + Actor2995: spicebloom.spawnpoint + Owner: Neutral + Location: 71,23 + Actor2996: spicebloom.spawnpoint + Owner: Neutral + Location: 73,23 + Actor3000: spicebloom.spawnpoint + Owner: Neutral + Location: 72,25 + Actor3001: spicebloom.spawnpoint + Owner: Neutral + Location: 62,26 + Actor3002: spicebloom.spawnpoint + Owner: Neutral + Location: 69,26 + Actor3004: spicebloom.spawnpoint + Owner: Neutral + Location: 66,27 + Actor3005: spicebloom.spawnpoint + Owner: Neutral + Location: 60,28 + Actor3006: spicebloom.spawnpoint + Owner: Neutral + Location: 63,28 + Actor3007: spicebloom.spawnpoint + Owner: Neutral + Location: 70,28 + Actor3010: spicebloom.spawnpoint + Owner: Neutral + Location: 61,30 + Actor3013: spicebloom.spawnpoint + Owner: Neutral + Location: 68,31 + Actor3014: spicebloom.spawnpoint + Owner: Neutral + Location: 73,31 + Actor3045: spicebloom.spawnpoint + Owner: Neutral + Location: 71,32 + Actor3046: spicebloom.spawnpoint + Owner: Neutral + Location: 60,33 + Actor3055: spicebloom.spawnpoint + Owner: Neutral + Location: 69,35 + Actor3058: spicebloom.spawnpoint + Owner: Neutral + Location: 62,36 + Actor3062: spicebloom.spawnpoint + Owner: Neutral + Location: 65,36 + Actor3063: spicebloom.spawnpoint + Owner: Neutral + Location: 68,37 + Actor3070: spicebloom.spawnpoint + Owner: Neutral + Location: 61,38 + Actor3071: spicebloom.spawnpoint + Owner: Neutral + Location: 71,38 + Actor2834: spicebloom.spawnpoint + Owner: Neutral + Location: 61,39 + Actor2835: spicebloom.spawnpoint + Owner: Neutral + Location: 63,39 + Actor2836: spicebloom.spawnpoint + Owner: Neutral + Location: 68,39 + Actor2838: spicebloom.spawnpoint + Owner: Neutral + Location: 73,40 + Actor2839: spicebloom.spawnpoint + Owner: Neutral + Location: 66,41 + Actor2841: spicebloom.spawnpoint + Owner: Neutral + Location: 60,42 + Actor2842: spicebloom.spawnpoint + Owner: Neutral + Location: 64,42 + Actor2843: spicebloom.spawnpoint + Owner: Neutral + Location: 67,42 + Actor2844: spicebloom.spawnpoint + Owner: Neutral + Location: 71,42 + Actor2845: spicebloom.spawnpoint + Owner: Neutral + Location: 73,42 + Actor2847: spicebloom.spawnpoint + Owner: Neutral + Location: 65,44 + Actor2848: spicebloom.spawnpoint + Owner: Neutral + Location: 72,44 + Actor2849: spicebloom.spawnpoint + Owner: Neutral + Location: 62,45 + Actor2850: spicebloom.spawnpoint + Owner: Neutral + Location: 69,45 + Actor2852: spicebloom.spawnpoint + Owner: Neutral + Location: 66,46 + Actor2853: spicebloom.spawnpoint + Owner: Neutral + Location: 60,47 + Actor2855: spicebloom.spawnpoint + Owner: Neutral + Location: 70,47 + Actor2856: spicebloom.spawnpoint + Owner: Neutral + Location: 74,47 + Actor2858: spicebloom.spawnpoint + Owner: Neutral + Location: 61,49 + Actor2860: spicebloom.spawnpoint + Owner: Neutral + Location: 68,50 + Actor2861: spicebloom.spawnpoint + Owner: Neutral + Location: 73,50 + Actor2863: spicebloom.spawnpoint + Owner: Neutral + Location: 66,51 + Actor2864: spicebloom.spawnpoint + Owner: Neutral + Location: 71,51 + Actor2865: spicebloom.spawnpoint + Owner: Neutral + Location: 60,52 + Actor2866: spicebloom.spawnpoint + Owner: Neutral + Location: 64,52 + Actor2867: spicebloom.spawnpoint + Owner: Neutral + Location: 75,53 + Actor2869: spicebloom.spawnpoint + Owner: Neutral + Location: 72,54 + Actor2871: spicebloom.spawnpoint + Owner: Neutral + Location: 62,55 + Actor2872: spicebloom.spawnpoint + Owner: Neutral + Location: 65,55 + Actor2873: spicebloom.spawnpoint + Owner: Neutral + Location: 68,56 + Actor2874: spicebloom.spawnpoint + Owner: Neutral + Location: 74,56 + Actor2875: spicebloom.spawnpoint + Owner: Neutral + Location: 61,57 + Actor2876: spicebloom.spawnpoint + Owner: Neutral + Location: 71,57 + Actor2682: spicebloom.spawnpoint + Owner: Neutral + Location: 61,58 + Actor2684: spicebloom.spawnpoint + Owner: Neutral + Location: 68,58 + Actor2691: spicebloom.spawnpoint + Owner: Neutral + Location: 73,59 + Actor2692: spicebloom.spawnpoint + Owner: Neutral + Location: 66,60 + Actor2695: spicebloom.spawnpoint + Owner: Neutral + Location: 60,61 + Actor2696: spicebloom.spawnpoint + Owner: Neutral + Location: 64,61 + Actor2697: spicebloom.spawnpoint + Owner: Neutral + Location: 67,61 + Actor2704: spicebloom.spawnpoint + Owner: Neutral + Location: 71,61 + Actor2705: spicebloom.spawnpoint + Owner: Neutral + Location: 73,61 + Actor2709: spicebloom.spawnpoint + Owner: Neutral + Location: 65,63 + Actor2710: spicebloom.spawnpoint + Owner: Neutral + Location: 72,63 + Actor2711: spicebloom.spawnpoint + Owner: Neutral + Location: 62,64 + Actor2714: spicebloom.spawnpoint + Owner: Neutral + Location: 69,64 + Actor2716: spicebloom.spawnpoint + Owner: Neutral + Location: 66,65 + Actor2721: spicebloom.spawnpoint + Owner: Neutral + Location: 60,66 + Actor2722: spicebloom.spawnpoint + Owner: Neutral + Location: 63,66 + Actor2723: spicebloom.spawnpoint + Owner: Neutral + Location: 70,66 + Actor2724: spicebloom.spawnpoint + Owner: Neutral + Location: 74,66 + Actor2729: spicebloom.spawnpoint + Owner: Neutral + Location: 61,68 + Actor2731: spicebloom.spawnpoint + Owner: Neutral + Location: 68,69 + Actor2732: spicebloom.spawnpoint + Owner: Neutral + Location: 73,69 + Actor2736: spicebloom.spawnpoint + Owner: Neutral + Location: 66,70 + Actor2737: spicebloom.spawnpoint + Owner: Neutral + Location: 71,70 + Actor2738: spicebloom.spawnpoint + Owner: Neutral + Location: 60,71 + Actor2739: spicebloom.spawnpoint + Owner: Neutral + Location: 64,71 + Actor2744: spicebloom.spawnpoint + Owner: Neutral + Location: 69,73 + Actor2745: spicebloom.spawnpoint + Owner: Neutral + Location: 72,73 + Actor2749: spicebloom.spawnpoint + Owner: Neutral + Location: 62,74 + Actor2751: spicebloom.spawnpoint + Owner: Neutral + Location: 68,75 + Actor2536: spicebloom.spawnpoint + Owner: Neutral + Location: 61,76 + Actor2537: spicebloom.spawnpoint + Owner: Neutral + Location: 63,76 + Actor2563: spicebloom.spawnpoint + Owner: Neutral + Location: 68,76 + Actor2604: spicebloom.spawnpoint + Owner: Neutral + Location: 66,78 + Actor2618: spicebloom.spawnpoint + Owner: Neutral + Location: 60,79 + Actor2626: spicebloom.spawnpoint + Owner: Neutral + Location: 64,79 + Actor2632: spicebloom.spawnpoint + Owner: Neutral + Location: 67,79 + Actor2662: spicebloom.spawnpoint + Owner: Neutral + Location: 71,79 + Actor2663: spicebloom.spawnpoint + Owner: Neutral + Location: 73,79 + Actor2669: spicebloom.spawnpoint + Owner: Neutral + Location: 65,81 + Actor2674: spicebloom.spawnpoint + Owner: Neutral + Location: 72,81 + Actor2675: spicebloom.spawnpoint + Owner: Neutral + Location: 62,82 + Actor2676: spicebloom.spawnpoint + Owner: Neutral + Location: 69,82 + Actor2678: spicebloom.spawnpoint + Owner: Neutral + Location: 66,83 + Actor2753: spicebloom.spawnpoint + Owner: Neutral + Location: 60,84 + Actor2759: spicebloom.spawnpoint + Owner: Neutral + Location: 74,84 + Actor2763: spicebloom.spawnpoint + Owner: Neutral + Location: 61,86 + Actor2765: spicebloom.spawnpoint + Owner: Neutral + Location: 68,87 + Actor2766: spicebloom.spawnpoint + Owner: Neutral + Location: 73,87 + Actor2771: spicebloom.spawnpoint + Owner: Neutral + Location: 66,88 + Actor2772: spicebloom.spawnpoint + Owner: Neutral + Location: 71,88 + Actor2773: spicebloom.spawnpoint + Owner: Neutral + Location: 60,89 + Actor2778: spicebloom.spawnpoint + Owner: Neutral + Location: 69,91 + Actor2779: spicebloom.spawnpoint + Owner: Neutral + Location: 72,91 + Actor2781: spicebloom.spawnpoint + Owner: Neutral + Location: 62,92 + Actor2782: spicebloom.spawnpoint + Owner: Neutral + Location: 65,92 + Actor2786: spicebloom.spawnpoint + Owner: Neutral + Location: 68,93 + Actor2788: spicebloom.spawnpoint + Owner: Neutral + Location: 61,94 + Actor2792: spicebloom.spawnpoint + Owner: Neutral + Location: 71,94 + Actor2387: spicebloom.spawnpoint + Owner: Neutral + Location: 61,95 + Actor2393: spicebloom.spawnpoint + Owner: Neutral + Location: 63,95 + Actor2394: spicebloom.spawnpoint + Owner: Neutral + Location: 68,95 + Actor2404: spicebloom.spawnpoint + Owner: Neutral + Location: 74,95 + Actor2410: spicebloom.spawnpoint + Owner: Neutral + Location: 73,96 + Actor2425: spicebloom.spawnpoint + Owner: Neutral + Location: 60,98 + Actor2433: spicebloom.spawnpoint + Owner: Neutral + Location: 67,98 + Actor2437: spicebloom.spawnpoint + Owner: Neutral + Location: 73,98 + Actor2446: spicebloom.spawnpoint + Owner: Neutral + Location: 65,100 + Actor2447: spicebloom.spawnpoint + Owner: Neutral + Location: 72,100 + Actor2451: spicebloom.spawnpoint + Owner: Neutral + Location: 62,101 + Actor2452: spicebloom.spawnpoint + Owner: Neutral + Location: 69,101 + Actor2456: spicebloom.spawnpoint + Owner: Neutral + Location: 75,101 + Actor2457: spicebloom.spawnpoint + Owner: Neutral + Location: 66,102 + Actor2463: spicebloom.spawnpoint + Owner: Neutral + Location: 60,103 + Actor2464: spicebloom.spawnpoint + Owner: Neutral + Location: 63,103 + Actor2465: spicebloom.spawnpoint + Owner: Neutral + Location: 70,103 + Actor2471: spicebloom.spawnpoint + Owner: Neutral + Location: 74,103 + Actor2477: spicebloom.spawnpoint + Owner: Neutral + Location: 61,105 + Actor2479: spicebloom.spawnpoint + Owner: Neutral + Location: 68,106 + Actor2485: spicebloom.spawnpoint + Owner: Neutral + Location: 73,106 + Actor2491: spicebloom.spawnpoint + Owner: Neutral + Location: 66,107 + Actor2492: spicebloom.spawnpoint + Owner: Neutral + Location: 71,107 + Actor2493: spicebloom.spawnpoint + Owner: Neutral + Location: 60,108 + Actor2499: spicebloom.spawnpoint + Owner: Neutral + Location: 64,108 + Actor2500: spicebloom.spawnpoint + Owner: Neutral + Location: 75,109 + Actor2505: spicebloom.spawnpoint + Owner: Neutral + Location: 69,110 + Actor2513: spicebloom.spawnpoint + Owner: Neutral + Location: 62,111 + Actor2514: spicebloom.spawnpoint + Owner: Neutral + Location: 65,111 + Actor2519: spicebloom.spawnpoint + Owner: Neutral + Location: 68,112 + Actor2520: spicebloom.spawnpoint + Owner: Neutral + Location: 74,112 + Actor2521: spicebloom.spawnpoint + Owner: Neutral + Location: 61,113 + Actor2522: spicebloom.spawnpoint + Owner: Neutral + Location: 71,113 + Actor2233: spicebloom.spawnpoint + Owner: Neutral + Location: 61,114 + Actor2241: spicebloom.spawnpoint + Owner: Neutral + Location: 68,114 + Actor2242: spicebloom.spawnpoint + Owner: Neutral + Location: 74,114 + Actor2247: spicebloom.spawnpoint + Owner: Neutral + Location: 73,115 + Actor2248: spicebloom.spawnpoint + Owner: Neutral + Location: 66,116 + Actor2256: spicebloom.spawnpoint + Owner: Neutral + Location: 60,117 + Actor2262: spicebloom.spawnpoint + Owner: Neutral + Location: 64,117 + Actor2263: spicebloom.spawnpoint + Owner: Neutral + Location: 67,117 + Actor2264: spicebloom.spawnpoint + Owner: Neutral + Location: 71,117 + Actor2270: spicebloom.spawnpoint + Owner: Neutral + Location: 73,117 + Actor2276: spicebloom.spawnpoint + Owner: Neutral + Location: 65,119 + Actor2277: spicebloom.spawnpoint + Owner: Neutral + Location: 72,119 + Actor2278: spicebloom.spawnpoint + Owner: Neutral + Location: 62,120 + Actor2291: spicebloom.spawnpoint + Owner: Neutral + Location: 66,121 + Actor2292: spicebloom.spawnpoint + Owner: Neutral + Location: 60,122 + Actor2295: spicebloom.spawnpoint + Owner: Neutral + Location: 63,122 + Actor2296: spicebloom.spawnpoint + Owner: Neutral + Location: 70,122 + Actor2297: spicebloom.spawnpoint + Owner: Neutral + Location: 74,122 + Actor2310: spicebloom.spawnpoint + Owner: Neutral + Location: 61,124 + Actor2322: spicebloom.spawnpoint + Owner: Neutral + Location: 73,125 + Actor2330: spicebloom.spawnpoint + Owner: Neutral + Location: 66,126 + Actor2337: spicebloom.spawnpoint + Owner: Neutral + Location: 60,127 + Actor2351: spicebloom.spawnpoint + Owner: Neutral + Location: 69,129 + Actor2105: spicebloom.spawnpoint + Owner: Neutral + Location: 61,130 + Actor2109: spicebloom.spawnpoint + Owner: Neutral + Location: 63,130 + Actor2118: spicebloom.spawnpoint + Owner: Neutral + Location: 73,131 + Actor2123: spicebloom.spawnpoint + Owner: Neutral + Location: 66,132 + Actor2131: spicebloom.spawnpoint + Owner: Neutral + Location: 60,133 + Actor2132: spicebloom.spawnpoint + Owner: Neutral + Location: 64,133 + Actor2138: spicebloom.spawnpoint + Owner: Neutral + Location: 71,133 + Actor2145: spicebloom.spawnpoint + Owner: Neutral + Location: 73,133 + Actor2151: spicebloom.spawnpoint + Owner: Neutral + Location: 65,135 + Actor2152: spicebloom.spawnpoint + Owner: Neutral + Location: 72,135 + Actor2159: spicebloom.spawnpoint + Owner: Neutral + Location: 62,136 + Actor2160: spicebloom.spawnpoint + Owner: Neutral + Location: 69,136 + Actor2166: spicebloom.spawnpoint + Owner: Neutral + Location: 66,137 + Actor2167: spicebloom.spawnpoint + Owner: Neutral + Location: 60,138 + Actor2174: spicebloom.spawnpoint + Owner: Neutral + Location: 63,138 + Actor2180: spicebloom.spawnpoint + Owner: Neutral + Location: 70,138 + Actor2181: spicebloom.spawnpoint + Owner: Neutral + Location: 74,138 + Actor2191: spicebloom.spawnpoint + Owner: Neutral + Location: 61,140 + Actor2200: spicebloom.spawnpoint + Owner: Neutral + Location: 73,141 + Actor2206: spicebloom.spawnpoint + Owner: Neutral + Location: 66,142 + Actor2213: spicebloom.spawnpoint + Owner: Neutral + Location: 71,142 + Actor2007: spicebloom.spawnpoint + Owner: Neutral + Location: 61,143 + Actor2015: spicebloom.spawnpoint + Owner: Neutral + Location: 63,143 + Actor2029: spicebloom.spawnpoint + Owner: Neutral + Location: 74,143 + Actor2035: spicebloom.spawnpoint + Owner: Neutral + Location: 73,144 + Actor2043: spicebloom.spawnpoint + Owner: Neutral + Location: 66,145 + Actor2050: spicebloom.spawnpoint + Owner: Neutral + Location: 60,146 + Actor2064: spicebloom.spawnpoint + Owner: Neutral + Location: 64,146 + Actor2072: spicebloom.spawnpoint + Owner: Neutral + Location: 71,146 + Actor2073: spicebloom.spawnpoint + Owner: Neutral + Location: 73,146 + Actor2075: spicebloom.spawnpoint + Owner: Neutral + Location: 65,148 + Actor2076: spicebloom.spawnpoint + Owner: Neutral + Location: 72,148 + Actor2077: spicebloom.spawnpoint + Owner: Neutral + Location: 62,149 + Actor2080: spicebloom.spawnpoint + Owner: Neutral + Location: 66,150 + Actor2081: spicebloom.spawnpoint + Owner: Neutral + Location: 60,151 + Actor2086: spicebloom.spawnpoint + Owner: Neutral + Location: 70,151 + Actor2101: spicebloom.spawnpoint + Owner: Neutral + Location: 61,153 + Actor2220: spicebloom.spawnpoint + Owner: Neutral + Location: 73,154 + Actor2372: spicebloom.spawnpoint + Owner: Neutral + Location: 71,155 + Actor2373: spicebloom.spawnpoint + Owner: Neutral + Location: 60,156 + Actor2378: spicebloom.spawnpoint + Owner: Neutral + Location: 64,156 + Actor2379: spicebloom.spawnpoint + Owner: Neutral + Location: 75,157 + Actor2534: spicebloom.spawnpoint + Owner: Neutral + Location: 72,158 + Actor2793: spicebloom.spawnpoint + Owner: Neutral + Location: 62,159 + Actor2794: spicebloom.spawnpoint + Owner: Neutral + Location: 65,159 + Actor2795: spicebloom.spawnpoint + Owner: Neutral + Location: 68,160 + Actor2800: spicebloom.spawnpoint + Owner: Neutral + Location: 74,160 + Actor2801: spicebloom.spawnpoint + Owner: Neutral + Location: 61,161 + Actor2802: spicebloom.spawnpoint + Owner: Neutral + Location: 71,161 + Actor2818: spicebloom.spawnpoint + Owner: Neutral + Location: 76,153 + Actor2819: spicebloom.spawnpoint + Owner: Neutral + Location: 78,153 + Actor2822: spicebloom.spawnpoint + Owner: Neutral + Location: 76,155 + Actor2823: spicebloom.spawnpoint + Owner: Neutral + Location: 78,155 + Actor2824: spicebloom.spawnpoint + Owner: Neutral + Location: 77,156 + Actor2826: spicebloom.spawnpoint + Owner: Neutral + Location: 76,157 + Actor2827: spicebloom.spawnpoint + Owner: Neutral + Location: 78,157 + Actor2828: spicebloom.spawnpoint + Owner: Neutral + Location: 77,158 + Actor2829: spicebloom.spawnpoint + Owner: Neutral + Location: 79,158 + Actor2830: spicebloom.spawnpoint + Owner: Neutral + Location: 76,159 + Actor2831: spicebloom.spawnpoint + Owner: Neutral + Location: 78,159 + Actor2832: spicebloom.spawnpoint + Owner: Neutral + Location: 76,160 + Actor2833: spicebloom.spawnpoint + Owner: Neutral + Location: 77,160 + Actor2877: spicebloom.spawnpoint + Owner: Neutral + Location: 79,160 + Actor2878: spicebloom.spawnpoint + Owner: Neutral + Location: 78,161 + Actor2249: spicebloom.spawnpoint + Owner: Neutral + Location: 77,102 + Actor2472: spicebloom.spawnpoint + Owner: Neutral + Location: 76,103 + Actor2478: spicebloom.spawnpoint + Owner: Neutral + Location: 78,103 + Actor2486: spicebloom.spawnpoint + Owner: Neutral + Location: 77,104 + Actor2507: spicebloom.spawnpoint + Owner: Neutral + Location: 79,104 + Actor2909: spicebloom.spawnpoint + Owner: Neutral + Location: 76,105 + Actor2910: spicebloom.spawnpoint + Owner: Neutral + Location: 78,105 + Actor2911: spicebloom.spawnpoint + Owner: Neutral + Location: 77,106 + Actor2912: spicebloom.spawnpoint + Owner: Neutral + Location: 79,106 + Actor2914: spicebloom.spawnpoint + Owner: Neutral + Location: 76,107 + Actor2915: spicebloom.spawnpoint + Owner: Neutral + Location: 77,107 + Actor2919: spicebloom.spawnpoint + Owner: Neutral + Location: 77,110 + Actor2920: spicebloom.spawnpoint + Owner: Neutral + Location: 79,110 + Actor2921: spicebloom.spawnpoint + Owner: Neutral + Location: 76,111 + Actor2923: spicebloom.spawnpoint + Owner: Neutral + Location: 78,111 + Actor2925: spicebloom.spawnpoint + Owner: Neutral + Location: 79,112 + Actor2926: spicebloom.spawnpoint + Owner: Neutral + Location: 76,113 + Actor2927: spicebloom.spawnpoint + Owner: Neutral + Location: 78,113 + Actor2929: spicebloom.spawnpoint + Owner: Neutral + Location: 77,114 + Actor2931: spicebloom.spawnpoint + Owner: Neutral + Location: 76,115 + Actor2932: spicebloom.spawnpoint + Owner: Neutral + Location: 78,115 + Actor2979: spicebloom.spawnpoint + Owner: Neutral + Location: 78,100 + Actor2694: spicebloom.spawnpoint + Owner: Neutral + Location: 77,58 + Actor2706: spicebloom.spawnpoint + Owner: Neutral + Location: 79,58 + Actor2725: spicebloom.spawnpoint + Owner: Neutral + Location: 76,59 + Actor2730: spicebloom.spawnpoint + Owner: Neutral + Location: 78,59 + Actor2735: spicebloom.spawnpoint + Owner: Neutral + Location: 77,60 + Actor2746: spicebloom.spawnpoint + Owner: Neutral + Location: 79,60 + Actor2980: spicebloom.spawnpoint + Owner: Neutral + Location: 76,61 + Actor2981: spicebloom.spawnpoint + Owner: Neutral + Location: 78,61 + Actor2982: spicebloom.spawnpoint + Owner: Neutral + Location: 77,62 + Actor3090: spicebloom.spawnpoint + Owner: Neutral + Location: 77,46 + Actor3094: spicebloom.spawnpoint + Owner: Neutral + Location: 76,47 + Actor3095: spicebloom.spawnpoint + Owner: Neutral + Location: 78,47 + Actor3096: spicebloom.spawnpoint + Owner: Neutral + Location: 77,48 + Actor3101: spicebloom.spawnpoint + Owner: Neutral + Location: 79,48 + Actor3102: spicebloom.spawnpoint + Owner: Neutral + Location: 76,49 + Actor3104: spicebloom.spawnpoint + Owner: Neutral + Location: 78,49 + Actor3109: spicebloom.spawnpoint + Owner: Neutral + Location: 77,50 + Actor3110: spicebloom.spawnpoint + Owner: Neutral + Location: 79,50 + Actor3111: spicebloom.spawnpoint + Owner: Neutral + Location: 76,51 + Actor3115: spicebloom.spawnpoint + Owner: Neutral + Location: 78,51 + Actor3131: spicebloom.spawnpoint + Owner: Neutral + Location: 77,52 + Actor3132: spicebloom.spawnpoint + Owner: Neutral + Location: 79,52 + Actor3137: spicebloom.spawnpoint + Owner: Neutral + Location: 76,53 + Actor3144: spicebloom.spawnpoint + Owner: Neutral + Location: 78,53 + Actor3145: spicebloom.spawnpoint + Owner: Neutral + Location: 77,54 + Actor3151: spicebloom.spawnpoint + Owner: Neutral + Location: 76,55 + Actor3157: spicebloom.spawnpoint + Owner: Neutral + Location: 76,56 + Actor3158: spicebloom.spawnpoint + Owner: Neutral + Location: 77,56 + Actor3160: spicebloom.spawnpoint + Owner: Neutral + Location: 78,57 + Actor3138: spicebloom.spawnpoint + Owner: Neutral + Location: 77,1 + Actor3207: spicebloom.spawnpoint + Owner: Neutral + Location: 79,1 + Actor2583: spicebloom.spawnpoint + Owner: Neutral + Location: 84,1 + Actor3294: spicebloom.spawnpoint + Owner: Neutral + Location: 84,48 + Actor3296: spicebloom.spawnpoint + Owner: Neutral + Location: 83,49 + Actor3299: spicebloom.spawnpoint + Owner: Neutral + Location: 85,49 + Actor3300: spicebloom.spawnpoint + Owner: Neutral + Location: 84,50 + Actor3302: spicebloom.spawnpoint + Owner: Neutral + Location: 83,51 + Actor3303: spicebloom.spawnpoint + Owner: Neutral + Location: 85,51 + Actor3304: spicebloom.spawnpoint + Owner: Neutral + Location: 84,52 + Actor3306: spicebloom.spawnpoint + Owner: Neutral + Location: 83,53 + Actor3308: spicebloom.spawnpoint + Owner: Neutral + Location: 85,53 + Actor3310: spicebloom.spawnpoint + Owner: Neutral + Location: 85,55 + Actor3311: spicebloom.spawnpoint + Owner: Neutral + Location: 84,56 + Actor3314: spicebloom.spawnpoint + Owner: Neutral + Location: 83,57 + Actor3315: spicebloom.spawnpoint + Owner: Neutral + Location: 85,57 + Actor3316: spicebloom.spawnpoint + Owner: Neutral + Location: 84,58 + Actor3320: spicebloom.spawnpoint + Owner: Neutral + Location: 83,59 + Actor3321: spicebloom.spawnpoint + Owner: Neutral + Location: 85,59 + Actor3322: spicebloom.spawnpoint + Owner: Neutral + Location: 84,60 + Actor3325: spicebloom.spawnpoint + Owner: Neutral + Location: 85,61 + Actor3326: spicebloom.spawnpoint + Owner: Neutral + Location: 84,62 + Actor3452: spicebloom.spawnpoint + Owner: Neutral + Location: 85,101 + Actor3453: spicebloom.spawnpoint + Owner: Neutral + Location: 84,102 + Actor3460: spicebloom.spawnpoint + Owner: Neutral + Location: 83,105 + Actor3462: spicebloom.spawnpoint + Owner: Neutral + Location: 84,106 + Actor3464: spicebloom.spawnpoint + Owner: Neutral + Location: 83,107 + Actor3465: spicebloom.spawnpoint + Owner: Neutral + Location: 85,107 + Actor3466: spicebloom.spawnpoint + Owner: Neutral + Location: 84,108 + Actor3468: spicebloom.spawnpoint + Owner: Neutral + Location: 83,109 + Actor3469: spicebloom.spawnpoint + Owner: Neutral + Location: 85,109 + Actor3470: spicebloom.spawnpoint + Owner: Neutral + Location: 84,110 + Actor3478: spicebloom.spawnpoint + Owner: Neutral + Location: 84,114 + Actor3481: spicebloom.spawnpoint + Owner: Neutral + Location: 85,115 + Actor990: spicebloom.spawnpoint + Owner: Neutral + Location: 87,1 + Actor991: spicebloom.spawnpoint + Owner: Neutral + Location: 89,1 + Actor992: spicebloom.spawnpoint + Owner: Neutral + Location: 94,1 + Actor993: spicebloom.spawnpoint + Owner: Neutral + Location: 100,1 + Actor994: spicebloom.spawnpoint + Owner: Neutral + Location: 99,2 + Actor995: spicebloom.spawnpoint + Owner: Neutral + Location: 92,3 + Actor998: spicebloom.spawnpoint + Owner: Neutral + Location: 93,4 + Actor1000: spicebloom.spawnpoint + Owner: Neutral + Location: 99,4 + Actor1001: spicebloom.spawnpoint + Owner: Neutral + Location: 91,6 + Actor1002: spicebloom.spawnpoint + Owner: Neutral + Location: 98,6 + Actor1003: spicebloom.spawnpoint + Owner: Neutral + Location: 88,7 + Actor1005: spicebloom.spawnpoint + Owner: Neutral + Location: 101,7 + Actor1006: spicebloom.spawnpoint + Owner: Neutral + Location: 92,8 + Actor1008: spicebloom.spawnpoint + Owner: Neutral + Location: 89,9 + Actor1010: spicebloom.spawnpoint + Owner: Neutral + Location: 100,9 + Actor1012: spicebloom.spawnpoint + Owner: Neutral + Location: 94,12 + Actor1013: spicebloom.spawnpoint + Owner: Neutral + Location: 99,12 + Actor1015: spicebloom.spawnpoint + Owner: Neutral + Location: 97,13 + Actor1017: spicebloom.spawnpoint + Owner: Neutral + Location: 90,14 + Actor1018: spicebloom.spawnpoint + Owner: Neutral + Location: 101,15 + Actor1021: spicebloom.spawnpoint + Owner: Neutral + Location: 98,16 + Actor1023: spicebloom.spawnpoint + Owner: Neutral + Location: 91,17 + Actor1024: spicebloom.spawnpoint + Owner: Neutral + Location: 94,18 + Actor1025: spicebloom.spawnpoint + Owner: Neutral + Location: 100,18 + Actor1028: spicebloom.spawnpoint + Owner: Neutral + Location: 97,19 + Actor1030: spicebloom.spawnpoint + Owner: Neutral + Location: 89,20 + Actor1031: spicebloom.spawnpoint + Owner: Neutral + Location: 94,20 + Actor1032: spicebloom.spawnpoint + Owner: Neutral + Location: 100,20 + Actor1033: spicebloom.spawnpoint + Owner: Neutral + Location: 99,21 + Actor1034: spicebloom.spawnpoint + Owner: Neutral + Location: 92,22 + Actor1037: spicebloom.spawnpoint + Owner: Neutral + Location: 93,23 + Actor1038: spicebloom.spawnpoint + Owner: Neutral + Location: 97,23 + Actor1039: spicebloom.spawnpoint + Owner: Neutral + Location: 99,23 + Actor1040: spicebloom.spawnpoint + Owner: Neutral + Location: 91,25 + Actor1042: spicebloom.spawnpoint + Owner: Neutral + Location: 88,26 + Actor1043: spicebloom.spawnpoint + Owner: Neutral + Location: 95,26 + Actor1044: spicebloom.spawnpoint + Owner: Neutral + Location: 101,26 + Actor1046: spicebloom.spawnpoint + Owner: Neutral + Location: 92,27 + Actor1048: spicebloom.spawnpoint + Owner: Neutral + Location: 89,28 + Actor1049: spicebloom.spawnpoint + Owner: Neutral + Location: 96,28 + Actor1050: spicebloom.spawnpoint + Owner: Neutral + Location: 100,28 + Actor1052: spicebloom.spawnpoint + Owner: Neutral + Location: 94,31 + Actor1055: spicebloom.spawnpoint + Owner: Neutral + Location: 99,31 + Actor1056: spicebloom.spawnpoint + Owner: Neutral + Location: 92,32 + Actor1057: spicebloom.spawnpoint + Owner: Neutral + Location: 97,32 + Actor1060: spicebloom.spawnpoint + Owner: Neutral + Location: 90,33 + Actor1061: spicebloom.spawnpoint + Owner: Neutral + Location: 101,34 + Actor1062: spicebloom.spawnpoint + Owner: Neutral + Location: 95,35 + Actor1065: spicebloom.spawnpoint + Owner: Neutral + Location: 91,36 + Actor1066: spicebloom.spawnpoint + Owner: Neutral + Location: 94,37 + Actor1067: spicebloom.spawnpoint + Owner: Neutral + Location: 100,37 + Actor1071: spicebloom.spawnpoint + Owner: Neutral + Location: 97,38 + Actor1073: spicebloom.spawnpoint + Owner: Neutral + Location: 89,39 + Actor1076: spicebloom.spawnpoint + Owner: Neutral + Location: 94,39 + Actor1077: spicebloom.spawnpoint + Owner: Neutral + Location: 100,39 + Actor1078: spicebloom.spawnpoint + Owner: Neutral + Location: 99,40 + Actor1079: spicebloom.spawnpoint + Owner: Neutral + Location: 92,41 + Actor1083: spicebloom.spawnpoint + Owner: Neutral + Location: 93,42 + Actor1084: spicebloom.spawnpoint + Owner: Neutral + Location: 97,42 + Actor1085: spicebloom.spawnpoint + Owner: Neutral + Location: 99,42 + Actor1087: spicebloom.spawnpoint + Owner: Neutral + Location: 98,44 + Actor1088: spicebloom.spawnpoint + Owner: Neutral + Location: 88,45 + Actor1089: spicebloom.spawnpoint + Owner: Neutral + Location: 95,45 + Actor1090: spicebloom.spawnpoint + Owner: Neutral + Location: 101,45 + Actor1091: spicebloom.spawnpoint + Owner: Neutral + Location: 92,46 + Actor1093: spicebloom.spawnpoint + Owner: Neutral + Location: 89,47 + Actor1095: spicebloom.spawnpoint + Owner: Neutral + Location: 100,47 + Actor1096: spicebloom.spawnpoint + Owner: Neutral + Location: 87,49 + Actor1097: spicebloom.spawnpoint + Owner: Neutral + Location: 94,50 + Actor1098: spicebloom.spawnpoint + Owner: Neutral + Location: 99,50 + Actor1099: spicebloom.spawnpoint + Owner: Neutral + Location: 92,51 + Actor1100: spicebloom.spawnpoint + Owner: Neutral + Location: 97,51 + Actor1102: spicebloom.spawnpoint + Owner: Neutral + Location: 90,52 + Actor1103: spicebloom.spawnpoint + Owner: Neutral + Location: 101,53 + Actor1104: spicebloom.spawnpoint + Owner: Neutral + Location: 95,54 + Actor1106: spicebloom.spawnpoint + Owner: Neutral + Location: 88,55 + Actor1107: spicebloom.spawnpoint + Owner: Neutral + Location: 91,55 + Actor1109: spicebloom.spawnpoint + Owner: Neutral + Location: 100,56 + Actor1110: spicebloom.spawnpoint + Owner: Neutral + Location: 87,57 + Actor1111: spicebloom.spawnpoint + Owner: Neutral + Location: 97,57 + Actor1112: spicebloom.spawnpoint + Owner: Neutral + Location: 87,58 + Actor1113: spicebloom.spawnpoint + Owner: Neutral + Location: 89,58 + Actor1114: spicebloom.spawnpoint + Owner: Neutral + Location: 94,58 + Actor1115: spicebloom.spawnpoint + Owner: Neutral + Location: 100,58 + Actor1116: spicebloom.spawnpoint + Owner: Neutral + Location: 99,59 + Actor1117: spicebloom.spawnpoint + Owner: Neutral + Location: 92,60 + Actor1119: spicebloom.spawnpoint + Owner: Neutral + Location: 90,61 + Actor1120: spicebloom.spawnpoint + Owner: Neutral + Location: 93,61 + Actor1121: spicebloom.spawnpoint + Owner: Neutral + Location: 97,61 + Actor1122: spicebloom.spawnpoint + Owner: Neutral + Location: 99,61 + Actor1123: spicebloom.spawnpoint + Owner: Neutral + Location: 91,63 + Actor1125: spicebloom.spawnpoint + Owner: Neutral + Location: 88,64 + Actor1126: spicebloom.spawnpoint + Owner: Neutral + Location: 95,64 + Actor1127: spicebloom.spawnpoint + Owner: Neutral + Location: 101,64 + Actor1128: spicebloom.spawnpoint + Owner: Neutral + Location: 92,65 + Actor1130: spicebloom.spawnpoint + Owner: Neutral + Location: 89,66 + Actor1131: spicebloom.spawnpoint + Owner: Neutral + Location: 96,66 + Actor1132: spicebloom.spawnpoint + Owner: Neutral + Location: 100,66 + Actor1134: spicebloom.spawnpoint + Owner: Neutral + Location: 94,69 + Actor1135: spicebloom.spawnpoint + Owner: Neutral + Location: 99,69 + Actor1136: spicebloom.spawnpoint + Owner: Neutral + Location: 92,70 + Actor1137: spicebloom.spawnpoint + Owner: Neutral + Location: 97,70 + Actor1139: spicebloom.spawnpoint + Owner: Neutral + Location: 90,71 + Actor1140: spicebloom.spawnpoint + Owner: Neutral + Location: 101,72 + Actor1141: spicebloom.spawnpoint + Owner: Neutral + Location: 95,73 + Actor1142: spicebloom.spawnpoint + Owner: Neutral + Location: 98,73 + Actor1143: spicebloom.spawnpoint + Owner: Neutral + Location: 88,74 + Actor1144: spicebloom.spawnpoint + Owner: Neutral + Location: 91,74 + Actor1145: spicebloom.spawnpoint + Owner: Neutral + Location: 94,75 + Actor1146: spicebloom.spawnpoint + Owner: Neutral + Location: 100,75 + Actor1149: spicebloom.spawnpoint + Owner: Neutral + Location: 94,76 + Actor1150: spicebloom.spawnpoint + Owner: Neutral + Location: 100,76 + Actor1151: spicebloom.spawnpoint + Owner: Neutral + Location: 99,77 + Actor1152: spicebloom.spawnpoint + Owner: Neutral + Location: 92,78 + Actor1154: spicebloom.spawnpoint + Owner: Neutral + Location: 90,79 + Actor1155: spicebloom.spawnpoint + Owner: Neutral + Location: 93,79 + Actor1157: spicebloom.spawnpoint + Owner: Neutral + Location: 99,79 + Actor1158: spicebloom.spawnpoint + Owner: Neutral + Location: 91,81 + Actor1159: spicebloom.spawnpoint + Owner: Neutral + Location: 98,81 + Actor1160: spicebloom.spawnpoint + Owner: Neutral + Location: 88,82 + Actor1161: spicebloom.spawnpoint + Owner: Neutral + Location: 95,82 + Actor1162: spicebloom.spawnpoint + Owner: Neutral + Location: 101,82 + Actor1165: spicebloom.spawnpoint + Owner: Neutral + Location: 89,84 + Actor1166: spicebloom.spawnpoint + Owner: Neutral + Location: 96,84 + Actor1167: spicebloom.spawnpoint + Owner: Neutral + Location: 100,84 + Actor1169: spicebloom.spawnpoint + Owner: Neutral + Location: 94,87 + Actor1170: spicebloom.spawnpoint + Owner: Neutral + Location: 99,87 + Actor1171: spicebloom.spawnpoint + Owner: Neutral + Location: 92,88 + Actor1172: spicebloom.spawnpoint + Owner: Neutral + Location: 97,88 + Actor1174: spicebloom.spawnpoint + Owner: Neutral + Location: 90,89 + Actor1175: spicebloom.spawnpoint + Owner: Neutral + Location: 101,90 + Actor1177: spicebloom.spawnpoint + Owner: Neutral + Location: 98,91 + Actor1178: spicebloom.spawnpoint + Owner: Neutral + Location: 88,92 + Actor1179: spicebloom.spawnpoint + Owner: Neutral + Location: 91,92 + Actor1180: spicebloom.spawnpoint + Owner: Neutral + Location: 94,93 + Actor1181: spicebloom.spawnpoint + Owner: Neutral + Location: 100,93 + Actor1183: spicebloom.spawnpoint + Owner: Neutral + Location: 97,94 + Actor1185: spicebloom.spawnpoint + Owner: Neutral + Location: 89,95 + Actor1187: spicebloom.spawnpoint + Owner: Neutral + Location: 100,95 + Actor1188: spicebloom.spawnpoint + Owner: Neutral + Location: 99,96 + Actor1189: spicebloom.spawnpoint + Owner: Neutral + Location: 92,97 + Actor1191: spicebloom.spawnpoint + Owner: Neutral + Location: 90,98 + Actor1192: spicebloom.spawnpoint + Owner: Neutral + Location: 93,98 + Actor1193: spicebloom.spawnpoint + Owner: Neutral + Location: 97,98 + Actor1194: spicebloom.spawnpoint + Owner: Neutral + Location: 99,98 + Actor1196: spicebloom.spawnpoint + Owner: Neutral + Location: 98,100 + Actor1197: spicebloom.spawnpoint + Owner: Neutral + Location: 88,101 + Actor1198: spicebloom.spawnpoint + Owner: Neutral + Location: 95,101 + Actor1199: spicebloom.spawnpoint + Owner: Neutral + Location: 101,101 + Actor1200: spicebloom.spawnpoint + Owner: Neutral + Location: 92,102 + Actor1202: spicebloom.spawnpoint + Owner: Neutral + Location: 89,103 + Actor1203: spicebloom.spawnpoint + Owner: Neutral + Location: 96,103 + Actor1204: spicebloom.spawnpoint + Owner: Neutral + Location: 100,103 + Actor1205: spicebloom.spawnpoint + Owner: Neutral + Location: 87,105 + Actor1206: spicebloom.spawnpoint + Owner: Neutral + Location: 94,106 + Actor1208: spicebloom.spawnpoint + Owner: Neutral + Location: 92,107 + Actor1209: spicebloom.spawnpoint + Owner: Neutral + Location: 97,107 + Actor1211: spicebloom.spawnpoint + Owner: Neutral + Location: 90,108 + Actor1212: spicebloom.spawnpoint + Owner: Neutral + Location: 101,109 + Actor1213: spicebloom.spawnpoint + Owner: Neutral + Location: 95,110 + Actor1214: spicebloom.spawnpoint + Owner: Neutral + Location: 98,110 + Actor1215: spicebloom.spawnpoint + Owner: Neutral + Location: 88,111 + Actor1217: spicebloom.spawnpoint + Owner: Neutral + Location: 94,112 + Actor1218: spicebloom.spawnpoint + Owner: Neutral + Location: 100,112 + Actor1219: spicebloom.spawnpoint + Owner: Neutral + Location: 87,113 + Actor1220: spicebloom.spawnpoint + Owner: Neutral + Location: 97,113 + Actor1221: spicebloom.spawnpoint + Owner: Neutral + Location: 87,114 + Actor1222: spicebloom.spawnpoint + Owner: Neutral + Location: 89,114 + Actor1223: spicebloom.spawnpoint + Owner: Neutral + Location: 94,114 + Actor1224: spicebloom.spawnpoint + Owner: Neutral + Location: 100,114 + Actor1225: spicebloom.spawnpoint + Owner: Neutral + Location: 99,115 + Actor1226: spicebloom.spawnpoint + Owner: Neutral + Location: 92,116 + Actor1228: spicebloom.spawnpoint + Owner: Neutral + Location: 90,117 + Actor1229: spicebloom.spawnpoint + Owner: Neutral + Location: 93,117 + Actor1232: spicebloom.spawnpoint + Owner: Neutral + Location: 91,119 + Actor1233: spicebloom.spawnpoint + Owner: Neutral + Location: 98,119 + Actor1234: spicebloom.spawnpoint + Owner: Neutral + Location: 88,120 + Actor1235: spicebloom.spawnpoint + Owner: Neutral + Location: 95,120 + Actor1236: spicebloom.spawnpoint + Owner: Neutral + Location: 101,120 + Actor1239: spicebloom.spawnpoint + Owner: Neutral + Location: 89,122 + Actor1240: spicebloom.spawnpoint + Owner: Neutral + Location: 96,122 + Actor1241: spicebloom.spawnpoint + Owner: Neutral + Location: 100,122 + Actor1243: spicebloom.spawnpoint + Owner: Neutral + Location: 94,125 + Actor1244: spicebloom.spawnpoint + Owner: Neutral + Location: 99,125 + Actor1245: spicebloom.spawnpoint + Owner: Neutral + Location: 92,126 + Actor1246: spicebloom.spawnpoint + Owner: Neutral + Location: 97,126 + Actor1248: spicebloom.spawnpoint + Owner: Neutral + Location: 90,127 + Actor1249: spicebloom.spawnpoint + Owner: Neutral + Location: 101,128 + Actor1251: spicebloom.spawnpoint + Owner: Neutral + Location: 98,129 + Actor1254: spicebloom.spawnpoint + Owner: Neutral + Location: 94,130 + Actor1255: spicebloom.spawnpoint + Owner: Neutral + Location: 100,130 + Actor1256: spicebloom.spawnpoint + Owner: Neutral + Location: 99,131 + Actor1257: spicebloom.spawnpoint + Owner: Neutral + Location: 92,132 + Actor1259: spicebloom.spawnpoint + Owner: Neutral + Location: 90,133 + Actor1262: spicebloom.spawnpoint + Owner: Neutral + Location: 99,133 + Actor1264: spicebloom.spawnpoint + Owner: Neutral + Location: 98,135 + Actor1265: spicebloom.spawnpoint + Owner: Neutral + Location: 88,136 + Actor1266: spicebloom.spawnpoint + Owner: Neutral + Location: 95,136 + Actor1267: spicebloom.spawnpoint + Owner: Neutral + Location: 101,136 + Actor1268: spicebloom.spawnpoint + Owner: Neutral + Location: 92,137 + Actor1270: spicebloom.spawnpoint + Owner: Neutral + Location: 89,138 + Actor1272: spicebloom.spawnpoint + Owner: Neutral + Location: 100,138 + Actor1274: spicebloom.spawnpoint + Owner: Neutral + Location: 94,141 + Actor1275: spicebloom.spawnpoint + Owner: Neutral + Location: 99,141 + Actor1276: spicebloom.spawnpoint + Owner: Neutral + Location: 92,142 + Actor1277: spicebloom.spawnpoint + Owner: Neutral + Location: 97,142 + Actor1279: spicebloom.spawnpoint + Owner: Neutral + Location: 89,143 + Actor1280: spicebloom.spawnpoint + Owner: Neutral + Location: 94,143 + Actor1281: spicebloom.spawnpoint + Owner: Neutral + Location: 100,143 + Actor1282: spicebloom.spawnpoint + Owner: Neutral + Location: 99,144 + Actor1283: spicebloom.spawnpoint + Owner: Neutral + Location: 92,145 + Actor1285: spicebloom.spawnpoint + Owner: Neutral + Location: 90,146 + Actor1287: spicebloom.spawnpoint + Owner: Neutral + Location: 97,146 + Actor1288: spicebloom.spawnpoint + Owner: Neutral + Location: 99,146 + Actor1289: spicebloom.spawnpoint + Owner: Neutral + Location: 91,148 + Actor1290: spicebloom.spawnpoint + Owner: Neutral + Location: 98,148 + Actor1291: spicebloom.spawnpoint + Owner: Neutral + Location: 88,149 + Actor1292: spicebloom.spawnpoint + Owner: Neutral + Location: 95,149 + Actor1293: spicebloom.spawnpoint + Owner: Neutral + Location: 101,149 + Actor1294: spicebloom.spawnpoint + Owner: Neutral + Location: 92,150 + Actor1297: spicebloom.spawnpoint + Owner: Neutral + Location: 96,151 + Actor1298: spicebloom.spawnpoint + Owner: Neutral + Location: 100,151 + Actor1299: spicebloom.spawnpoint + Owner: Neutral + Location: 87,153 + Actor1300: spicebloom.spawnpoint + Owner: Neutral + Location: 94,154 + Actor1302: spicebloom.spawnpoint + Owner: Neutral + Location: 92,155 + Actor1305: spicebloom.spawnpoint + Owner: Neutral + Location: 90,156 + Actor1306: spicebloom.spawnpoint + Owner: Neutral + Location: 101,157 + Actor1307: spicebloom.spawnpoint + Owner: Neutral + Location: 95,158 + Actor1308: spicebloom.spawnpoint + Owner: Neutral + Location: 98,158 + Actor1309: spicebloom.spawnpoint + Owner: Neutral + Location: 88,159 + Actor1310: spicebloom.spawnpoint + Owner: Neutral + Location: 91,159 + Actor1311: spicebloom.spawnpoint + Owner: Neutral + Location: 94,160 + Actor1312: spicebloom.spawnpoint + Owner: Neutral + Location: 100,160 + Actor1313: spicebloom.spawnpoint + Owner: Neutral + Location: 87,161 + Actor1336: spicebloom.spawnpoint + Owner: Neutral + Location: 86,46 + Actor1337: spicebloom.spawnpoint + Owner: Neutral + Location: 86,47 + Actor1338: spicebloom.spawnpoint + Owner: Neutral + Location: 86,48 + Actor1339: spicebloom.spawnpoint + Owner: Neutral + Location: 86,50 + Actor1340: spicebloom.spawnpoint + Owner: Neutral + Location: 86,52 + Actor1341: spicebloom.spawnpoint + Owner: Neutral + Location: 86,53 + Actor1342: spicebloom.spawnpoint + Owner: Neutral + Location: 86,56 + Actor1343: spicebloom.spawnpoint + Owner: Neutral + Location: 86,58 + Actor1344: spicebloom.spawnpoint + Owner: Neutral + Location: 86,60 + Actor1346: spicebloom.spawnpoint + Owner: Neutral + Location: 86,62 + Actor1368: spicebloom.spawnpoint + Owner: Neutral + Location: 86,102 + Actor1370: spicebloom.spawnpoint + Owner: Neutral + Location: 86,106 + Actor1372: spicebloom.spawnpoint + Owner: Neutral + Location: 86,108 + Actor1373: spicebloom.spawnpoint + Owner: Neutral + Location: 86,110 + Actor1374: spicebloom.spawnpoint + Owner: Neutral + Location: 86,112 + Actor1375: spicebloom.spawnpoint + Owner: Neutral + Location: 86,114 + Actor1395: spicebloom.spawnpoint + Owner: Neutral + Location: 86,154 + Actor1396: spicebloom.spawnpoint + Owner: Neutral + Location: 86,156 + Actor1397: spicebloom.spawnpoint + Owner: Neutral + Location: 86,158 + Actor1399: spicebloom.spawnpoint + Owner: Neutral + Location: 86,160 + Actor1401: spicebloom.spawnpoint + Owner: Neutral + Location: 44,105 + Actor1402: spicebloom.spawnpoint + Owner: Neutral + Location: 44,57 + Actor1400: spicebloom.spawnpoint + Owner: Neutral + Location: 117,57 + Actor1405: spicebloom.spawnpoint + Owner: Neutral + Location: 80,158 + Actor1409: spicebloom.spawnpoint + Owner: Neutral + Location: 80,160 + Actor1410: spicebloom.spawnpoint + Owner: Neutral + Location: 82,160 + Actor1411: spicebloom.spawnpoint + Owner: Neutral + Location: 81,161 + Actor1412: spicebloom.spawnpoint + Owner: Neutral + Location: 80,0 + Actor1413: spicebloom.spawnpoint + Owner: Neutral + Location: 80,1 + Actor1414: spicebloom.spawnpoint + Owner: Neutral + Location: 82,1 + Actor1491: crate + Owner: Neutral + Location: 71,26 + Actor1492: crate + Owner: Neutral + Location: 91,27 + Actor1494: crate + Owner: Neutral + Location: 88,56 + Actor1523: crate + Owner: Neutral + Location: 73,119 + Actor1524: crate + Owner: Neutral + Location: 90,81 + Actor1525: crate + Owner: Neutral + Location: 72,39 + Actor1526: crate + Owner: Neutral + Location: 92,142 + Actor1316: spicebloom.spawnpoint + Owner: Neutral + Location: 85,2 + Actor1295: spicebloom.spawnpoint + Owner: Neutral + Location: 85,3 + Actor1424: spicebloom.spawnpoint + Owner: Neutral + Location: 79,46 + Actor1425: spicebloom.spawnpoint + Owner: Neutral + Location: 80,46 + Actor1427: spicebloom.spawnpoint + Owner: Neutral + Location: 80,48 + Actor1428: spicebloom.spawnpoint + Owner: Neutral + Location: 81,48 + Actor1429: spicebloom.spawnpoint + Owner: Neutral + Location: 82,48 + Actor1430: spicebloom.spawnpoint + Owner: Neutral + Location: 83,48 + Actor1118: spicebloom.spawnpoint + Owner: Neutral + Location: 85,4 + Actor1153: spicebloom.spawnpoint + Owner: Neutral + Location: 85,5 + Actor1164: spicebloom.spawnpoint + Owner: Neutral + Location: 77,6 + Actor1173: spicebloom.spawnpoint + Owner: Neutral + Location: 79,6 + Actor1227: spicebloom.spawnpoint + Owner: Neutral + Location: 86,6 + Actor1319: spicebloom.spawnpoint + Owner: Neutral + Location: 74,11 + Actor1321: spicebloom.spawnpoint + Owner: Neutral + Location: 74,20 + Actor1322: spicebloom.spawnpoint + Owner: Neutral + Location: 74,22 + Actor1325: spicebloom.spawnpoint + Owner: Neutral + Location: 74,30 + Actor1327: spicebloom.spawnpoint + Owner: Neutral + Location: 74,39 + Actor1329: spicebloom.spawnpoint + Owner: Neutral + Location: 74,41 + Actor965: spicebloom.spawnpoint + Owner: Neutral + Location: 79,155 + Actor966: spicebloom.spawnpoint + Owner: Neutral + Location: 80,155 + Actor967: spicebloom.spawnpoint + Owner: Neutral + Location: 82,155 + Actor968: spicebloom.spawnpoint + Owner: Neutral + Location: 81,156 + Actor969: spicebloom.spawnpoint + Owner: Neutral + Location: 83,156 + Actor970: spicebloom.spawnpoint + Owner: Neutral + Location: 79,157 + Actor971: spicebloom.spawnpoint + Owner: Neutral + Location: 80,157 + Actor977: spicebloom.spawnpoint + Owner: Neutral + Location: 81,153 + Actor978: spicebloom.spawnpoint + Owner: Neutral + Location: 83,153 + Actor979: spicebloom.spawnpoint + Owner: Neutral + Location: 79,154 + Actor980: spicebloom.spawnpoint + Owner: Neutral + Location: 80,154 + Actor981: spicebloom.spawnpoint + Owner: Neutral + Location: 82,154 + Actor982: spicebloom.spawnpoint + Owner: Neutral + Location: 83,154 + Actor983: spicebloom.spawnpoint + Owner: Neutral + Location: 79,114 + Actor984: spicebloom.spawnpoint + Owner: Neutral + Location: 80,114 + Actor985: spicebloom.spawnpoint + Owner: Neutral + Location: 82,114 + Actor986: spicebloom.spawnpoint + Owner: Neutral + Location: 81,115 + Actor987: spicebloom.spawnpoint + Owner: Neutral + Location: 83,115 + Actor1047: spicebloom.spawnpoint + Owner: Neutral + Location: 81,102 + Actor1053: spicebloom.spawnpoint + Owner: Neutral + Location: 83,102 + Actor1058: spicebloom.spawnpoint + Owner: Neutral + Location: 79,103 + Actor1080: spicebloom.spawnpoint + Owner: Neutral + Location: 80,103 + Actor1323: spicebloom.spawnpoint + Owner: Neutral + Location: 82,103 + Actor1345: spicebloom.spawnpoint + Owner: Neutral + Location: 83,103 + Actor1351: spicebloom.spawnpoint + Owner: Neutral + Location: 81,100 + Actor1352: spicebloom.spawnpoint + Owner: Neutral + Location: 83,100 + Actor1353: spicebloom.spawnpoint + Owner: Neutral + Location: 79,101 + Actor1354: spicebloom.spawnpoint + Owner: Neutral + Location: 80,101 + Actor1355: spicebloom.spawnpoint + Owner: Neutral + Location: 82,101 + Actor1356: spicebloom.spawnpoint + Owner: Neutral + Location: 83,101 + Actor1357: spicebloom.spawnpoint + Owner: Neutral + Location: 79,61 + Actor1358: spicebloom.spawnpoint + Owner: Neutral + Location: 80,61 + Actor1359: spicebloom.spawnpoint + Owner: Neutral + Location: 82,61 + Actor1360: spicebloom.spawnpoint + Owner: Neutral + Location: 81,62 + Actor1361: spicebloom.spawnpoint + Owner: Neutral + Location: 83,62 + Actor1129: spicebloom.spawnpoint + Owner: Neutral + Location: 80,5 + Actor1138: spicebloom.spawnpoint + Owner: Neutral + Location: 81,5 + Actor1190: spicebloom.spawnpoint + Owner: Neutral + Location: 83,5 + Actor1201: spicebloom.spawnpoint + Owner: Neutral + Location: 82,6 + Actor1210: spicebloom.spawnpoint + Owner: Neutral + Location: 84,6 + Actor1092: spicebloom.spawnpoint + Owner: Neutral + Location: 79,2 + Actor1101: spicebloom.spawnpoint + Owner: Neutral + Location: 80,2 + Actor1238: spicebloom.spawnpoint + Owner: Neutral + Location: 82,2 + Actor1247: spicebloom.spawnpoint + Owner: Neutral + Location: 81,3 + Actor1304: spicebloom.spawnpoint + Owner: Neutral + Location: 83,3 + Actor1315: spicebloom.spawnpoint + Owner: Neutral + Location: 79,4 + Actor1377: spicebloom.spawnpoint + Owner: Neutral + Location: 80,4 + Actor1378: spicebloom.spawnpoint + Owner: Neutral + Location: 82,4 + Actor1379: spicebloom.spawnpoint + Owner: Neutral + Location: 83,4 + Actor1258: spicebloom.spawnpoint + Owner: Neutral + Location: 80,7 + Actor1269: spicebloom.spawnpoint + Owner: Neutral + Location: 81,7 + Actor1317: spicebloom.spawnpoint + Owner: Neutral + Location: 83,7 + Actor1320: spicebloom.spawnpoint + Owner: Neutral + Location: 77,8 + Actor1324: spicebloom.spawnpoint + Owner: Neutral + Location: 79,8 + Actor1328: spicebloom.spawnpoint + Owner: Neutral + Location: 82,8 + Actor1330: spicebloom.spawnpoint + Owner: Neutral + Location: 84,8 + Actor1331: spicebloom.spawnpoint + Owner: Neutral + Location: 86,8 + Actor1392: spicebloom.spawnpoint + Owner: Neutral + Location: 132,23 + Actor1393: spicebloom.spawnpoint + Owner: Neutral + Location: 132,33 + Actor1398: pass01_destroyed_right + Owner: Neutral + Location: 22,135 + Actor1386: spicebloom.spawnpoint + Owner: Neutral + Location: 27,77 + Actor1388: pass01_destroyed_right + Owner: Neutral + Location: 22,81 + Actor1403: spicebloom.spawnpoint + Owner: Neutral + Location: 27,87 + Actor1389: spicebloom.spawnpoint + Owner: Neutral + Location: 27,23 + Actor1391: pass01_destroyed_right + Owner: Neutral + Location: 22,27 + Actor1404: spicebloom.spawnpoint + Owner: Neutral + Location: 27,33 + Actor1406: pass01_destroyed_left + Owner: Neutral + Location: 135,27 + Actor1387: spicebloom.spawnpoint + Owner: Neutral + Location: 132,77 + Actor1390: pass01_destroyed_left + Owner: Neutral + Location: 135,81 + Actor1415: spicebloom.spawnpoint + Owner: Neutral + Location: 132,87 + Actor1416: spicebloom.spawnpoint + Owner: Neutral + Location: 132,131 + Actor1417: pass01_destroyed_left + Owner: Neutral + Location: 135,135 + Actor1418: spicebloom.spawnpoint + Owner: Neutral + Location: 132,141 + Actor1426: crate + Owner: Neutral + Location: 76,106 + Actor1431: crate + Owner: Neutral + Location: 73,69 + Actor1434: crate + Owner: Neutral + Location: 89,13 + Actor1435: crate + Owner: Neutral + Location: 81,6 + Actor2315: spicebloom.spawnpoint + Owner: Neutral + Location: 68,125 + Actor2110: spicebloom.spawnpoint + Owner: Neutral + Location: 68,130 + Actor2199: spicebloom.spawnpoint + Owner: Neutral + Location: 68,141 + Actor2021: spicebloom.spawnpoint + Owner: Neutral + Location: 68,143 + Actor2065: spicebloom.spawnpoint + Owner: Neutral + Location: 67,146 + Actor1497: spicebloom.spawnpoint + Owner: Neutral + Location: 70,149 + Actor1499: spicebloom.spawnpoint + Owner: Neutral + Location: 69,148 + Actor853: spicebloom.spawnpoint + Owner: Neutral + Location: 91,158 + Actor854: spicebloom.spawnpoint + Owner: Neutral + Location: 93,158 + Actor855: spicebloom.spawnpoint + Owner: Neutral + Location: 92,156 + Actor856: spicebloom.spawnpoint + Owner: Neutral + Location: 92,157 + Actor857: spicebloom.spawnpoint + Owner: Neutral + Location: 98,153 + Actor858: spicebloom.spawnpoint + Owner: Neutral + Location: 97,154 + Actor859: spicebloom.spawnpoint + Owner: Neutral + Location: 99,154 + Actor860: spicebloom.spawnpoint + Owner: Neutral + Location: 97,155 + Actor861: spicebloom.spawnpoint + Owner: Neutral + Location: 89,150 + Actor862: spicebloom.spawnpoint + Owner: Neutral + Location: 88,151 + Actor863: spicebloom.spawnpoint + Owner: Neutral + Location: 90,151 + Actor864: spicebloom.spawnpoint + Owner: Neutral + Location: 88,152 + Actor865: spicebloom.spawnpoint + Owner: Neutral + Location: 93,146 + Actor866: spicebloom.spawnpoint + Owner: Neutral + Location: 92,147 + Actor867: spicebloom.spawnpoint + Owner: Neutral + Location: 94,147 + Actor868: spicebloom.spawnpoint + Owner: Neutral + Location: 92,148 + Actor869: spicebloom.spawnpoint + Owner: Neutral + Location: 97,138 + Actor870: spicebloom.spawnpoint + Owner: Neutral + Location: 96,139 + Actor871: spicebloom.spawnpoint + Owner: Neutral + Location: 98,139 + Actor872: spicebloom.spawnpoint + Owner: Neutral + Location: 96,140 + Actor873: spicebloom.spawnpoint + Owner: Neutral + Location: 88,139 + Actor875: spicebloom.spawnpoint + Owner: Neutral + Location: 89,140 + Actor877: spicebloom.spawnpoint + Owner: Neutral + Location: 92,133 + Actor878: spicebloom.spawnpoint + Owner: Neutral + Location: 91,134 + Actor879: spicebloom.spawnpoint + Owner: Neutral + Location: 93,134 + Actor880: spicebloom.spawnpoint + Owner: Neutral + Location: 91,135 + Actor881: spicebloom.spawnpoint + Owner: Neutral + Location: 96,127 + Actor882: spicebloom.spawnpoint + Owner: Neutral + Location: 95,128 + Actor883: spicebloom.spawnpoint + Owner: Neutral + Location: 97,128 + Actor884: spicebloom.spawnpoint + Owner: Neutral + Location: 95,129 + Actor885: spicebloom.spawnpoint + Owner: Neutral + Location: 88,129 + Actor887: spicebloom.spawnpoint + Owner: Neutral + Location: 89,130 + Actor889: spicebloom.spawnpoint + Owner: Neutral + Location: 92,120 + Actor890: spicebloom.spawnpoint + Owner: Neutral + Location: 91,121 + Actor891: spicebloom.spawnpoint + Owner: Neutral + Location: 93,121 + Actor892: spicebloom.spawnpoint + Owner: Neutral + Location: 91,122 + Actor893: spicebloom.spawnpoint + Owner: Neutral + Location: 98,116 + Actor894: spicebloom.spawnpoint + Owner: Neutral + Location: 97,117 + Actor895: spicebloom.spawnpoint + Owner: Neutral + Location: 99,117 + Actor896: spicebloom.spawnpoint + Owner: Neutral + Location: 97,118 + Actor897: spicebloom.spawnpoint + Owner: Neutral + Location: 92,110 + Actor898: spicebloom.spawnpoint + Owner: Neutral + Location: 91,111 + Actor899: spicebloom.spawnpoint + Owner: Neutral + Location: 93,111 + Actor900: spicebloom.spawnpoint + Owner: Neutral + Location: 91,112 + Actor901: spicebloom.spawnpoint + Owner: Neutral + Location: 84,111 + Actor902: spicebloom.spawnpoint + Owner: Neutral + Location: 83,112 + Actor903: spicebloom.spawnpoint + Owner: Neutral + Location: 85,112 + Actor904: spicebloom.spawnpoint + Owner: Neutral + Location: 83,113 + Actor905: spicebloom.spawnpoint + Owner: Neutral + Location: 98,104 + Actor906: spicebloom.spawnpoint + Owner: Neutral + Location: 97,105 + Actor907: spicebloom.spawnpoint + Owner: Neutral + Location: 99,105 + Actor908: spicebloom.spawnpoint + Owner: Neutral + Location: 97,106 + Actor909: spicebloom.spawnpoint + Owner: Neutral + Location: 85,103 + Actor910: spicebloom.spawnpoint + Owner: Neutral + Location: 84,104 + Actor911: spicebloom.spawnpoint + Owner: Neutral + Location: 86,104 + Actor912: spicebloom.spawnpoint + Owner: Neutral + Location: 84,105 + Actor913: spicebloom.spawnpoint + Owner: Neutral + Location: 79,107 + Actor914: spicebloom.spawnpoint + Owner: Neutral + Location: 78,108 + Actor915: spicebloom.spawnpoint + Owner: Neutral + Location: 80,108 + Actor916: spicebloom.spawnpoint + Owner: Neutral + Location: 78,109 + Actor917: spicebloom.spawnpoint + Owner: Neutral + Location: 91,99 + Actor918: spicebloom.spawnpoint + Owner: Neutral + Location: 90,100 + Actor919: spicebloom.spawnpoint + Owner: Neutral + Location: 92,100 + Actor920: spicebloom.spawnpoint + Owner: Neutral + Location: 90,101 + Actor921: spicebloom.spawnpoint + Owner: Neutral + Location: 95,95 + Actor922: spicebloom.spawnpoint + Owner: Neutral + Location: 94,96 + Actor923: spicebloom.spawnpoint + Owner: Neutral + Location: 96,96 + Actor924: spicebloom.spawnpoint + Owner: Neutral + Location: 94,97 + Actor925: spicebloom.spawnpoint + Owner: Neutral + Location: 95,89 + Actor926: spicebloom.spawnpoint + Owner: Neutral + Location: 94,90 + Actor927: spicebloom.spawnpoint + Owner: Neutral + Location: 96,90 + Actor928: spicebloom.spawnpoint + Owner: Neutral + Location: 94,91 + Actor929: spicebloom.spawnpoint + Owner: Neutral + Location: 88,88 + Actor931: spicebloom.spawnpoint + Owner: Neutral + Location: 89,89 + Actor933: spicebloom.spawnpoint + Owner: Neutral + Location: 92,82 + Actor934: spicebloom.spawnpoint + Owner: Neutral + Location: 91,83 + Actor935: spicebloom.spawnpoint + Owner: Neutral + Location: 93,83 + Actor936: spicebloom.spawnpoint + Owner: Neutral + Location: 91,84 + Actor937: spicebloom.spawnpoint + Owner: Neutral + Location: 97,77 + Actor938: spicebloom.spawnpoint + Owner: Neutral + Location: 96,78 + Actor939: spicebloom.spawnpoint + Owner: Neutral + Location: 98,78 + Actor940: spicebloom.spawnpoint + Owner: Neutral + Location: 96,79 + Actor941: spicebloom.spawnpoint + Owner: Neutral + Location: 88,76 + Actor943: spicebloom.spawnpoint + Owner: Neutral + Location: 89,77 + Actor945: spicebloom.spawnpoint + Owner: Neutral + Location: 92,66 + Actor946: spicebloom.spawnpoint + Owner: Neutral + Location: 91,67 + Actor947: spicebloom.spawnpoint + Owner: Neutral + Location: 93,67 + Actor948: spicebloom.spawnpoint + Owner: Neutral + Location: 91,68 + Actor949: spicebloom.spawnpoint + Owner: Neutral + Location: 97,63 + Actor950: spicebloom.spawnpoint + Owner: Neutral + Location: 96,64 + Actor951: spicebloom.spawnpoint + Owner: Neutral + Location: 98,64 + Actor952: spicebloom.spawnpoint + Owner: Neutral + Location: 96,65 + Actor953: spicebloom.spawnpoint + Owner: Neutral + Location: 93,55 + Actor954: spicebloom.spawnpoint + Owner: Neutral + Location: 92,56 + Actor955: spicebloom.spawnpoint + Owner: Neutral + Location: 94,56 + Actor956: spicebloom.spawnpoint + Owner: Neutral + Location: 92,57 + Actor957: spicebloom.spawnpoint + Owner: Neutral + Location: 98,52 + Actor958: spicebloom.spawnpoint + Owner: Neutral + Location: 97,53 + Actor959: spicebloom.spawnpoint + Owner: Neutral + Location: 99,53 + Actor960: spicebloom.spawnpoint + Owner: Neutral + Location: 97,54 + Actor961: spicebloom.spawnpoint + Owner: Neutral + Location: 89,49 + Actor962: spicebloom.spawnpoint + Owner: Neutral + Location: 88,50 + Actor963: spicebloom.spawnpoint + Owner: Neutral + Location: 90,50 + Actor964: spicebloom.spawnpoint + Owner: Neutral + Location: 88,51 + Actor972: spicebloom.spawnpoint + Owner: Neutral + Location: 95,46 + Actor973: spicebloom.spawnpoint + Owner: Neutral + Location: 94,47 + Actor997: spicebloom.spawnpoint + Owner: Neutral + Location: 96,47 + Actor999: spicebloom.spawnpoint + Owner: Neutral + Location: 94,48 + Actor1004: spicebloom.spawnpoint + Owner: Neutral + Location: 91,42 + Actor1009: spicebloom.spawnpoint + Owner: Neutral + Location: 90,43 + Actor1019: spicebloom.spawnpoint + Owner: Neutral + Location: 92,43 + Actor1022: spicebloom.spawnpoint + Owner: Neutral + Location: 90,44 + Actor1041: spicebloom.spawnpoint + Owner: Neutral + Location: 98,35 + Actor1063: spicebloom.spawnpoint + Owner: Neutral + Location: 97,36 + Actor1064: spicebloom.spawnpoint + Owner: Neutral + Location: 99,36 + Actor1068: spicebloom.spawnpoint + Owner: Neutral + Location: 97,37 + Actor1081: spicebloom.spawnpoint + Owner: Neutral + Location: 89,34 + Actor1086: spicebloom.spawnpoint + Owner: Neutral + Location: 88,35 + Actor1094: spicebloom.spawnpoint + Owner: Neutral + Location: 90,35 + Actor1105: spicebloom.spawnpoint + Owner: Neutral + Location: 88,36 + Actor1108: spicebloom.spawnpoint + Owner: Neutral + Location: 97,24 + Actor1124: spicebloom.spawnpoint + Owner: Neutral + Location: 96,25 + Actor1147: spicebloom.spawnpoint + Owner: Neutral + Location: 98,25 + Actor1148: spicebloom.spawnpoint + Owner: Neutral + Location: 96,26 + Actor1156: spicebloom.spawnpoint + Owner: Neutral + Location: 96,15 + Actor1163: spicebloom.spawnpoint + Owner: Neutral + Location: 95,16 + Actor1176: spicebloom.spawnpoint + Owner: Neutral + Location: 97,16 + Actor1186: spicebloom.spawnpoint + Owner: Neutral + Location: 95,17 + Actor1195: spicebloom.spawnpoint + Owner: Neutral + Location: 89,16 + Actor1207: spicebloom.spawnpoint + Owner: Neutral + Location: 88,17 + Actor1216: spicebloom.spawnpoint + Owner: Neutral + Location: 90,17 + Actor1230: spicebloom.spawnpoint + Owner: Neutral + Location: 88,18 + Actor1231: spicebloom.spawnpoint + Owner: Neutral + Location: 95,7 + Actor1237: spicebloom.spawnpoint + Owner: Neutral + Location: 94,8 + Actor1250: spicebloom.spawnpoint + Owner: Neutral + Location: 96,8 + Actor1252: spicebloom.spawnpoint + Owner: Neutral + Location: 94,9 + Actor1253: spicebloom.spawnpoint + Owner: Neutral + Location: 89,4 + Actor1260: spicebloom.spawnpoint + Owner: Neutral + Location: 88,5 + Actor1263: spicebloom.spawnpoint + Owner: Neutral + Location: 90,5 + Actor1271: spicebloom.spawnpoint + Owner: Neutral + Location: 88,6 + Actor1273: spicebloom.spawnpoint + Owner: Neutral + Location: 97,2 + Actor1286: spicebloom.spawnpoint + Owner: Neutral + Location: 96,3 + Actor1296: spicebloom.spawnpoint + Owner: Neutral + Location: 98,3 + Actor1301: spicebloom.spawnpoint + Owner: Neutral + Location: 96,4 + Actor1303: spicebloom.spawnpoint + Owner: Neutral + Location: 76,3 + Actor1326: spicebloom.spawnpoint + Owner: Neutral + Location: 75,4 + Actor1369: spicebloom.spawnpoint + Owner: Neutral + Location: 77,4 + Actor1407: spicebloom.spawnpoint + Owner: Neutral + Location: 75,5 + Actor1408: spicebloom.spawnpoint + Owner: Neutral + Location: 65,2 + Actor1420: spicebloom.spawnpoint + Owner: Neutral + Location: 64,3 + Actor1421: spicebloom.spawnpoint + Owner: Neutral + Location: 66,3 + Actor1422: spicebloom.spawnpoint + Owner: Neutral + Location: 64,4 + Actor1423: spicebloom.spawnpoint + Owner: Neutral + Location: 70,5 + Actor1437: spicebloom.spawnpoint + Owner: Neutral + Location: 69,6 + Actor1438: spicebloom.spawnpoint + Owner: Neutral + Location: 71,6 + Actor1440: spicebloom.spawnpoint + Owner: Neutral + Location: 64,10 + Actor1441: spicebloom.spawnpoint + Owner: Neutral + Location: 63,11 + Actor1442: spicebloom.spawnpoint + Owner: Neutral + Location: 65,11 + Actor1443: spicebloom.spawnpoint + Owner: Neutral + Location: 63,12 + Actor1444: spicebloom.spawnpoint + Owner: Neutral + Location: 64,15 + Actor1445: spicebloom.spawnpoint + Owner: Neutral + Location: 63,16 + Actor1446: spicebloom.spawnpoint + Owner: Neutral + Location: 65,16 + Actor1447: spicebloom.spawnpoint + Owner: Neutral + Location: 63,17 + Actor1448: spicebloom.spawnpoint + Owner: Neutral + Location: 73,16 + Actor1449: spicebloom.spawnpoint + Owner: Neutral + Location: 72,17 + Actor1450: spicebloom.spawnpoint + Owner: Neutral + Location: 74,17 + Actor1451: spicebloom.spawnpoint + Owner: Neutral + Location: 72,18 + Actor1452: spicebloom.spawnpoint + Owner: Neutral + Location: 63,23 + Actor1453: spicebloom.spawnpoint + Owner: Neutral + Location: 62,24 + Actor1454: spicebloom.spawnpoint + Owner: Neutral + Location: 64,24 + Actor1455: spicebloom.spawnpoint + Owner: Neutral + Location: 62,25 + Actor1456: spicebloom.spawnpoint + Owner: Neutral + Location: 65,32 + Actor1457: spicebloom.spawnpoint + Owner: Neutral + Location: 64,33 + Actor1458: spicebloom.spawnpoint + Owner: Neutral + Location: 66,33 + Actor1459: spicebloom.spawnpoint + Owner: Neutral + Location: 64,34 + Actor1460: spicebloom.spawnpoint + Owner: Neutral + Location: 73,35 + Actor1461: spicebloom.spawnpoint + Owner: Neutral + Location: 72,36 + Actor1462: spicebloom.spawnpoint + Owner: Neutral + Location: 74,36 + Actor1463: spicebloom.spawnpoint + Owner: Neutral + Location: 72,37 + Actor1464: spicebloom.spawnpoint + Owner: Neutral + Location: 69,41 + Actor1465: spicebloom.spawnpoint + Owner: Neutral + Location: 69,42 + Actor1466: spicebloom.spawnpoint + Owner: Neutral + Location: 68,43 + Actor1467: spicebloom.spawnpoint + Owner: Neutral + Location: 70,43 + Actor1468: spicebloom.spawnpoint + Owner: Neutral + Location: 68,44 + Actor1469: spicebloom.spawnpoint + Owner: Neutral + Location: 64,46 + Actor1470: spicebloom.spawnpoint + Owner: Neutral + Location: 63,47 + Actor1471: spicebloom.spawnpoint + Owner: Neutral + Location: 65,47 + Actor1472: spicebloom.spawnpoint + Owner: Neutral + Location: 63,48 + Actor1473: spicebloom.spawnpoint + Owner: Neutral + Location: 69,53 + Actor1474: spicebloom.spawnpoint + Owner: Neutral + Location: 68,54 + Actor1475: spicebloom.spawnpoint + Owner: Neutral + Location: 70,54 + Actor1476: spicebloom.spawnpoint + Owner: Neutral + Location: 68,55 + Actor1477: spicebloom.spawnpoint + Owner: Neutral + Location: 79,54 + Actor1478: spicebloom.spawnpoint + Owner: Neutral + Location: 78,55 + Actor1479: spicebloom.spawnpoint + Owner: Neutral + Location: 80,55 + Actor1480: spicebloom.spawnpoint + Owner: Neutral + Location: 78,56 + Actor1481: spicebloom.spawnpoint + Owner: Neutral + Location: 63,56 + Actor1482: spicebloom.spawnpoint + Owner: Neutral + Location: 62,57 + Actor1483: spicebloom.spawnpoint + Owner: Neutral + Location: 64,57 + Actor1484: spicebloom.spawnpoint + Owner: Neutral + Location: 62,58 + Actor1485: spicebloom.spawnpoint + Owner: Neutral + Location: 68,65 + Actor1486: spicebloom.spawnpoint + Owner: Neutral + Location: 67,66 + Actor1487: spicebloom.spawnpoint + Owner: Neutral + Location: 69,66 + Actor1488: spicebloom.spawnpoint + Owner: Neutral + Location: 67,67 + Actor1489: spicebloom.spawnpoint + Owner: Neutral + Location: 65,74 + Actor1490: spicebloom.spawnpoint + Owner: Neutral + Location: 64,75 + Actor1495: spicebloom.spawnpoint + Owner: Neutral + Location: 66,75 + Actor1498: spicebloom.spawnpoint + Owner: Neutral + Location: 64,76 + Actor1500: spicebloom.spawnpoint + Owner: Neutral + Location: 74,75 + Actor1502: spicebloom.spawnpoint + Owner: Neutral + Location: 73,76 + Actor1504: spicebloom.spawnpoint + Owner: Neutral + Location: 73,77 + Actor1505: spicebloom.spawnpoint + Owner: Neutral + Location: 69,83 + Actor1506: spicebloom.spawnpoint + Owner: Neutral + Location: 68,84 + Actor1507: spicebloom.spawnpoint + Owner: Neutral + Location: 70,84 + Actor1508: spicebloom.spawnpoint + Owner: Neutral + Location: 68,85 + Actor1510: spicebloom.spawnpoint + Owner: Neutral + Location: 63,90 + Actor1512: spicebloom.spawnpoint + Owner: Neutral + Location: 63,91 + Actor1509: spicebloom.spawnpoint + Owner: Neutral + Location: 65,89 + Actor1511: spicebloom.spawnpoint + Owner: Neutral + Location: 64,90 + Actor1513: spicebloom.spawnpoint + Owner: Neutral + Location: 66,90 + Actor1514: spicebloom.spawnpoint + Owner: Neutral + Location: 64,91 + Actor1515: spicebloom.spawnpoint + Owner: Neutral + Location: 74,91 + Actor1516: spicebloom.spawnpoint + Owner: Neutral + Location: 73,92 + Actor1518: spicebloom.spawnpoint + Owner: Neutral + Location: 73,93 + Actor1519: spicebloom.spawnpoint + Owner: Neutral + Location: 70,98 + Actor1520: spicebloom.spawnpoint + Owner: Neutral + Location: 69,99 + Actor1521: spicebloom.spawnpoint + Owner: Neutral + Location: 71,99 + Actor1522: spicebloom.spawnpoint + Owner: Neutral + Location: 69,100 + Actor1528: spicebloom.spawnpoint + Owner: Neutral + Location: 65,96 + Actor1529: spicebloom.spawnpoint + Owner: Neutral + Location: 64,97 + Actor1530: spicebloom.spawnpoint + Owner: Neutral + Location: 66,97 + Actor1531: spicebloom.spawnpoint + Owner: Neutral + Location: 64,98 + Actor1532: spicebloom.spawnpoint + Owner: Neutral + Location: 71,108 + Actor1533: spicebloom.spawnpoint + Owner: Neutral + Location: 70,109 + Actor1534: spicebloom.spawnpoint + Owner: Neutral + Location: 72,109 + Actor1535: spicebloom.spawnpoint + Owner: Neutral + Location: 70,110 + Actor1536: spicebloom.spawnpoint + Owner: Neutral + Location: 63,104 + Actor1537: spicebloom.spawnpoint + Owner: Neutral + Location: 62,105 + Actor1538: spicebloom.spawnpoint + Owner: Neutral + Location: 64,105 + Actor1539: spicebloom.spawnpoint + Owner: Neutral + Location: 62,106 + Actor1540: spicebloom.spawnpoint + Owner: Neutral + Location: 63,114 + Actor1541: spicebloom.spawnpoint + Owner: Neutral + Location: 62,115 + Actor1542: spicebloom.spawnpoint + Owner: Neutral + Location: 64,115 + Actor1543: spicebloom.spawnpoint + Owner: Neutral + Location: 62,116 + Actor1544: spicebloom.spawnpoint + Owner: Neutral + Location: 69,118 + Actor1545: spicebloom.spawnpoint + Owner: Neutral + Location: 68,119 + Actor1546: spicebloom.spawnpoint + Owner: Neutral + Location: 70,119 + Actor1547: spicebloom.spawnpoint + Owner: Neutral + Location: 68,120 + Actor1548: spicebloom.spawnpoint + Owner: Neutral + Location: 65,127 + Actor1549: spicebloom.spawnpoint + Owner: Neutral + Location: 64,128 + Actor1550: spicebloom.spawnpoint + Owner: Neutral + Location: 66,128 + Actor1551: spicebloom.spawnpoint + Owner: Neutral + Location: 64,129 + Actor1553: spicebloom.spawnpoint + Owner: Neutral + Location: 72,129 + Actor1555: spicebloom.spawnpoint + Owner: Neutral + Location: 72,130 + Actor1552: spicebloom.spawnpoint + Owner: Neutral + Location: 74,128 + Actor1554: spicebloom.spawnpoint + Owner: Neutral + Location: 73,129 + Actor1557: spicebloom.spawnpoint + Owner: Neutral + Location: 73,130 + Actor1558: spicebloom.spawnpoint + Owner: Neutral + Location: 68,133 + Actor1559: spicebloom.spawnpoint + Owner: Neutral + Location: 67,134 + Actor1560: spicebloom.spawnpoint + Owner: Neutral + Location: 69,134 + Actor1561: spicebloom.spawnpoint + Owner: Neutral + Location: 67,135 + Actor1562: spicebloom.spawnpoint + Owner: Neutral + Location: 64,139 + Actor1563: spicebloom.spawnpoint + Owner: Neutral + Location: 63,140 + Actor1564: spicebloom.spawnpoint + Owner: Neutral + Location: 65,140 + Actor1565: spicebloom.spawnpoint + Owner: Neutral + Location: 63,141 + Actor1566: spicebloom.spawnpoint + Owner: Neutral + Location: 69,144 + Actor1567: spicebloom.spawnpoint + Owner: Neutral + Location: 68,145 + Actor1568: spicebloom.spawnpoint + Owner: Neutral + Location: 70,145 + Actor1569: spicebloom.spawnpoint + Owner: Neutral + Location: 68,146 + Actor1570: spicebloom.spawnpoint + Owner: Neutral + Location: 74,149 + Actor1571: spicebloom.spawnpoint + Owner: Neutral + Location: 73,150 + Actor1573: spicebloom.spawnpoint + Owner: Neutral + Location: 73,151 + Actor1574: spicebloom.spawnpoint + Owner: Neutral + Location: 68,152 + Actor1575: spicebloom.spawnpoint + Owner: Neutral + Location: 67,153 + Actor1576: spicebloom.spawnpoint + Owner: Neutral + Location: 69,153 + Actor1577: spicebloom.spawnpoint + Owner: Neutral + Location: 67,154 + Actor1578: spicebloom.spawnpoint + Owner: Neutral + Location: 63,150 + Actor1579: spicebloom.spawnpoint + Owner: Neutral + Location: 62,151 + Actor1580: spicebloom.spawnpoint + Owner: Neutral + Location: 64,151 + Actor1581: spicebloom.spawnpoint + Owner: Neutral + Location: 62,152 + Actor1583: spicebloom.spawnpoint + Owner: Neutral + Location: 69,157 + Actor1584: spicebloom.spawnpoint + Owner: Neutral + Location: 71,157 + Actor1585: spicebloom.spawnpoint + Owner: Neutral + Location: 69,158 + Actor1501: spicebloom.spawnpoint + Owner: Neutral + Location: 69,154 + Actor1582: spicebloom.spawnpoint + Owner: Neutral + Location: 68,155 + Actor1586: spicebloom.spawnpoint + Owner: Neutral + Location: 70,155 + Actor1587: spicebloom.spawnpoint + Owner: Neutral + Location: 68,156 + Actor1588: spicebloom.spawnpoint + Owner: Neutral + Location: 82,157 + Actor1589: spicebloom.spawnpoint + Owner: Neutral + Location: 81,158 + Actor1590: spicebloom.spawnpoint + Owner: Neutral + Location: 83,158 + Actor1591: spicebloom.spawnpoint + Owner: Neutral + Location: 81,159 + Actor1592: wormspawner + Owner: Neutral + Location: 92,158 + Actor1595: wormspawner + Owner: Neutral + Location: 92,121 + Actor1597: wormspawner + Owner: Neutral + Location: 91,100 + Actor1598: wormspawner + Owner: Neutral + Location: 95,90 + Actor1600: wormspawner + Owner: Neutral + Location: 97,64 + Actor1601: wormspawner + Owner: Neutral + Location: 93,56 + Actor1603: wormspawner + Owner: Neutral + Location: 97,25 + Actor1604: wormspawner + Owner: Neutral + Location: 95,8 + Actor1607: wormspawner + Owner: Neutral + Location: 63,24 + Actor1609: wormspawner + Owner: Neutral + Location: 69,43 + Actor1611: wormspawner + Owner: Neutral + Location: 68,66 + Actor1612: wormspawner + Owner: Neutral + Location: 65,75 + Actor1614: wormspawner + Owner: Neutral + Location: 70,99 + Actor1615: wormspawner + Owner: Neutral + Location: 63,115 + Actor1617: wormspawner + Owner: Neutral + Location: 69,145 + Actor1618: wormspawner + Owner: Neutral + Location: 69,155 + Actor1385: mpspawn + Owner: Neutral + Location: 8,24 + Actor1419: mpspawn + Owner: Neutral + Location: 8,81 + Actor1432: mpspawn + Owner: Neutral + Location: 8,138 + Actor1433: mpspawn + Owner: Neutral + Location: 154,23 + Actor1436: mpspawn + Owner: Neutral + Location: 153,81 + Actor1493: mpspawn + Owner: Neutral + Location: 153,138 + +Rules: arrakisX.yaml, 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, playerX.yaml + +Sequences: EnhancedSequences.yaml, Sequences_newTiles.yaml + +Weapons: Enhanced_Weapons09.yaml, Enhanced_WeaponsFX.yaml + +Voices: Enhanced_voices.yaml + +Music: music.yaml + +Notifications: Enhanced_notifications.yaml diff --git a/music.yaml b/music.yaml new file mode 100644 index 0000000..33b0839 --- /dev/null +++ b/music.yaml @@ -0,0 +1,38 @@ + +AMBUSH: The Ambush + Extension: WAV +ARAKATAK: Smell of the sand + Extension: WAV +ATREGAIN: Rage of Atreides + Extension: WAV +ENTORDOS: Exploring + Extension: WAV +FREMEN: First Contact + Extension: WAV +HARK_BAT: Rage of Harkonen + Extension: WAV +PLOTTING: Rage of Ordos + Extension: WAV +RISEHARK: Man Rises + Extension: WAV +FIGHTPWR: Fight for Power + Extension: AUD + Hidden: true +LANDSAND: Land of Sand + Extension: AUD + Hidden: true +ROBOTIX: Robotix + Extension: AUD + Hidden: true +SPICESCT: Spice Scouting + Extension: AUD + Hidden: true +SOLDAPPR: The Soldiers Approach + Extension: AUD + Hidden: true +WAITGAME: The Waiting Game + Extension: AUD + Hidden: true +UNDERCON: Under Construction + Extension: AUD + Hidden: true \ No newline at end of file diff --git a/original_Starport.yaml b/original_Starport.yaml new file mode 100644 index 0000000..8fb26a7 --- /dev/null +++ b/original_Starport.yaml @@ -0,0 +1,599 @@ +starport: + Buildable: + BuildDuration: 625 + Prerequisites: heavy_factory, outpost, ~techlevel.high + Valued: + Cost: 1500 + Health: + HP: 45500 + D2kBuilding: + Footprint: xxx +=+ =x= + Dimensions: 3,3 + -ProductionAirdrop: + ProductionFromMapEdge: + Produces: Starport + Production: + Produces: Starport + +carryall.reinforce_with_sound: + Inherits: carryall.reinforce + Health: + HP: 11000 + -Carryall: + Cargo: + Types: Infantry, Vehicle + PassengerFacing: 512 + BeforeUnloadDelay: 50 + RevealsShroud@landing: + Range: 3c0 + RequiresCondition: !cruising + Type: CenterPosition + RevealsShroud@onland: + Range: 4c0 + RequiresCondition: !airborne + Type: CenterPosition + +frigate_choam: + Inherits: carryall.reinforce + ParaDrop: + RenderSprites: + Image: frigate + 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 + + +^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 + + +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_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: + + +-mcv.starport: + + +-trike.starport: + + + + +-quad.starport: + + +-siege_tank.starport: + + + +-missile_tank.starport: + + + +-combat_tank_a.starport: + + +-combat_tank_h.starport: + + +-combat_tank_o.starport: + + +-carryall.starport: + + diff --git a/playerX.yaml b/playerX.yaml new file mode 100644 index 0000000..65c5be1 --- /dev/null +++ b/playerX.yaml @@ -0,0 +1,2 @@ +Player: + HarvesterInsurance: \ No newline at end of file diff --git a/scripts_new.lua b/scripts_new.lua new file mode 100644 index 0000000..52d59f2 --- /dev/null +++ b/scripts_new.lua @@ -0,0 +1,990 @@ +BotPlayers = {} +IsAnyBotsHere = false +CurrentConyards = {} +CheckPlayerTechtree = false +ActivePlayers = {} +PlayersThatNotchoosedyet = 0 --Numbver of players that didnt choose any subfaction yet +FactionsMode = 0 -- default Faction mode: vannila +ExtendedStarport = 0 +local CallAirstrike -- must be local fuction. otherwise it crash when multiple AirStrikes are called at ones. +ActorRegister={} +--Airstrike variables +SquadSpawnDelay = 0 -- Spawn delay betwwen every Aircraft. Use when Useoffest is false, else 0 +SpawnWposOffsets = {-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"}, + {"trooper.heavy","trooper.heavy","trooper.heavy", "officer", "trooper.heavy", "mpsardaukar", "mpsardaukar"}, + {"trooper.heavy","trooper.heavy","trooper.heavy", "officer", "trooper.heavy", "fremen_fedaykin", "fremen_fedaykin"}, + {"trooper.heavy","trooper.heavy","trooper.heavy", "officer", "trooper.heavy", "mortar_inf", "mortar_inf", "mortar_inf"}, + {"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", "frigate.atreides_cargo", "frigate.ordos_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 defined as n -1 + +-- 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 icon 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() + FrigateCapacity = tonumber(Map.LobbyOption("extendedStarport")) - 1 + --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.hunter" or actor=="dummy.bombardment_tank" 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}, 20) + return + end + end +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 == "waypoint.reinforce_or" or actType == "waypoint.reinforce_or" then + DropAirReinforcements(actor) + end + if actType == "waypoint.reinforce_at" or actType == "waypoint.reinforce_at" 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 + Actor.Create("mcv", true, { Owner = player, Facing = Angle.SouthWest, Location = actor.Location}) + actor.Kill(); + 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 + Actor.Create("mcv", true, { Owner = player, Facing = Angle.North, Location = actor.Location, Faction = Utils.Random(faction)}) + actor.Kill(); + end + else + faction = player.Faction + for pom, actor in pairs(actors) do + 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(); + 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() + else + 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() + pass.Move(rallypoint) + 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 = #SpawnWposOffsets + 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 + SpawnWposOffsets[arrayLenght - pon], wposDummyLocation.Y+SpawnWposOffsets[pon], 0) + else + newLocation =WPos.New( wposDummyLocation.X + SpawnWposOffsets[pon], wposDummyLocation.Y+SpawnWposOffsets[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 * SquadSpawnDelay + Trigger.AfterDelay(spamDelay, function() + local airUnit + local finalWposPosition + if angle == Angle.West or angle == Angle.East then + finalWposPosition = wposAirCraftSpawnLocation + WVec.New(SpawnWposOffsets[arrayLenght - i], SpawnWposOffsets[i], Actor.CruiseAltitude(actorName)) + else + finalWposPosition = wposAirCraftSpawnLocation + WVec.New(SpawnWposOffsets[i], SpawnWposOffsets[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(SquadSpawnDelay + 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 + elseif dummy.Type=="waypoint.reinforce_at" then squad=4 + elseif dummy.Type=="waypoint.reinforce_or" then squad=5 + 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/t1turordfir.wav b/t1turordfir.wav new file mode 100644 index 0000000..e7f4f2a Binary files /dev/null and b/t1turordfir.wav differ diff --git a/temperat.pal b/temperat.pal new file mode 100644 index 0000000..bb63fcd Binary files /dev/null and b/temperat.pal differ diff --git a/units.yaml b/units.yaml new file mode 100644 index 0000000..caad498 --- /dev/null +++ b/units.yaml @@ -0,0 +1,281 @@ +^Infantry: + DetectCloaked: + Range: 2c0 + +^BotLogicEngineer: + ExternalCondition@giveControl: + Condition: reject_control + ScriptTags: + RejectsOrders: + RequiresCondition: reject_control + +^Vehicle: + RevealOnFire: + +^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: + GrantConditionOnBotOwner@hardBot: + Condition: bot-hard + Bots: hard-eco, hard-defense + +^AutoTargetAllAssaultMove: + GrantConditionOnBotOwner@hardBot: + Condition: bot-hard + Bots: hard-eco, hard-defense + + +thumper: + Buildable: + Queue: Infantry + BuildPaletteOrder: 150 + +engineer: + Inherits@botLogic: ^BotLogicEngineer + Buildable: + Prerequisites: upgrade.barracks, ~techlevel.medium + BuildDuration: 160 + BuildPaletteOrder: 80 + Captures@cliff: + CaptureTypes: cliff + ConsumedByCapture: false + CaptureDelay: 150 + Captures@husks: + CaptureTypes: husk + + +carryall.reinforce: + Health: + HP: 20000 + Aircraft: + Speed: 170 + TurnSpeed: 16 + IdleTurnSpeed: 5 + IdleSpeed: 115 + +ornithopter: + Health: + HP: 8000 + +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 + +light_inf: + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: bot-hard + AutoTargetPriority@bot2: + ValidTargets: Vehicle + Priority: 20 + RequiresCondition: bot-hard + + +trooper: + AutoTargetPriority@bot: + InvalidTargets: Infantry + ValidTargets: Vehicle, Defense, Structure, Tank + Priority: 50 + RequiresCondition: bot-hard + +grenadier: + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: bot-hard + +sardaukar: + AutoTargetPriority@bot: + ValidTargets: Vehicle, Tank, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: bot-hard + +fremen: + -GrantConditionOnBotOwner@hardBot: + +trike: + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: bot-hard +raider: + AutoTargetPriority@bot: + ValidTargets: Infantry, Structure + InvalidTargets: Tank + Priority: 50 + RequiresCondition: bot-hard + +quad: + AutoTargetPriority@bot: + ValidTargets: Vehicle, Structure, Tank + InvalidTargets: Infantry + Priority: 50 + RequiresCondition: bot-hard + +^combat_tank: + AutoTargetPriority@bot: + InvalidTargets: Infantry + ValidTargets: Vehicle, Defense, Structure, Tank + Priority: 10 + RequiresCondition: bot-hard + Health: + HP: 22000 + +combat_tank_o: + Health: + HP: 19000 + +combat_tank_h: + Health: + HP: 28000 + +siege_tank: + AutoTargetPriority@bot: + ValidTargets: Infantry, Defense + InvalidTargets: Tanks + Priority: 50 + RequiresCondition: bot-hard + AutoTargetPriority@bot2: + ValidTargets: Vehicle + InvalidTargets: Tanks + Priority: 10 + RequiresCondition: bot-hard + +missile_tank: + AutoTargetPriority@bot: + ValidTargets: Tank, Defense, Air + InvalidTargets: Infantry + Priority: 50 + RequiresCondition: bot-hard + AutoTargetPriority@bot2: + ValidTargets: Structure, Vehicle + InvalidTargets: Infantry + Priority: 20 + RequiresCondition: bot-hard + Armament@antiAir: + Weapon: mtank_air + LocalOffset: -128,128,171, -128,-128,171 + +devastator: + -GrantConditionOnBotOwner@hardBot: + ExternalCondition: + Condition: unitCapturated + GrantConditionOnDeploy@REACTOR: + DeployedCondition: overload + PauseOnCondition: overload + RequiresCondition: !unitCapturated + SpawnActorOnDeath: + RequiresCondition: !meltdown + +sonic_tank: + AutoTargetPriority@bot: + ValidTargets: Vehicle, Defense, Structure, Infantry + InvalidTargets: Tank + Priority: 50 + RequiresCondition: bot-hard + +deviator: + AutoTargetPriority@bot: + ValidTargets: Tank, Vehicle + InvalidTargets: Infantry, Structure, Defense + Priority: 50 + RequiresCondition: bot-hard + +saboteur: + Buildable: + 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 + Mobile: + PauseOnCondition: SuicideAtt + Cloak: + InitialDelay: 100 + CloakDelay: 100 + UncloakOn: Attack, Unload, Infiltrate, Demolish, Damage, Heal + RequiresCondition: !SuicideAtt + Explodes@Selfkill: + Weapon: PlasmaExplosion + EmptyWeapon: PlasmaExplosion + RequiresCondition: kamikadze + GrantConditionOnDeploy: + DeployedCondition: SuicideAtt + PauseOnCondition: SuicideAtt + KillsSelf@SuicideKillCount: + Delay: 70 + RequiresCondition: SuicideAtt + GrantsCondition: kamikadze + Voiced: + VoiceSet: SaboteurVoice + AmbientSound@onSuicide: + SoundFiles: audio/explodeSaboteurEmperor02.wav + RequiresCondition: SuicideAtt + TakeCover: + RequiresCondition: SuicideAtt + +sonic_tank: + Armament@allydamage: + Weapon: Sound.Ally + LocalOffset: 600,0,427 +