diff --git a/mods/d2k/maps/shellmap/d2k-shellmap.lua b/mods/d2k/maps/shellmap/d2k-shellmap.lua new file mode 100644 index 0000000000..6526203f20 --- /dev/null +++ b/mods/d2k/maps/shellmap/d2k-shellmap.lua @@ -0,0 +1,192 @@ +AttackGroupSize = {8} +AttackDelay = { DateTime.Seconds(2), DateTime.Seconds(4) } + +IdlingUnits = +{ + Atreides = { }, + Harkonnen = { }, + Ordos = { }, + Emperor = { } +} + +HoldProduction = +{ + Atreides = false, + Harkonnen = false, + Ordos = false, + Emperor = false +} + +IsAttacking = +{ + Atreides = false, + Harkonnen = false, + Ordos = false, + Emperor = false +} + +AtreidesInfantryTypes = { "light_inf", "light_inf", "light_inf", "trooper", "trooper", "grenadier", "grenadier" } +AtreidesVehicleTypes = { "trike", "trike", "quad" } +AtreidesTankTypes = { "combat_tank_a", "combat_tank_a", "combat_tank_a", "siege_tank" } +AtreidesStarportTypes = { "trike.starport", "quad.starport", "siege_tank.starport", "missile_tank.starport", "combat_tank_a.starport" } + +HarkonnenInfantryTypes = { "light_inf", "light_inf", "light_inf", "trooper", "trooper", "sardaukar" } +HarkonnenVehicleTypes = { "trike", "quad", "quad" } +HarkonnenTankTypes = { "combat_tank_h", "combat_tank_h", "combat_tank_h", "siege_tank" } +HarkonnenStarportTypes = { "trike.starport", "quad.starport", "siege_tank.starport", "missile_tank.starport", "combat_tank_h.starport" } + +OrdosInfantryTypes = { "light_inf", "light_inf", "light_inf", "trooper", "trooper" } +OrdosVehicleTypes = { "raider", "raider", "quad", "stealth_raider" } +OrdosTankTypes = { "combat_tank_o", "combat_tank_o", "combat_tank_o", "siege_tank" } +OrdosStarportTypes = { "trike.starport", "quad.starport", "siege_tank.starport", "missile_tank.starport", "combat_tank_o.starport" } + +EmperorInfantryTypes = { "light_inf", "trooper", "sardaukar", "sardaukar", "sardaukar", "sardaukar" } +EmperorVehicleTypes = { "trike", "quad", "quad" } +EmperorTankTypes = { "combat_tank_h", "combat_tank_h", "combat_tank_h", "siege_tank" } +EmperorStarportTypes = { "trike.starport", "quad.starport", "siege_tank.starport", "missile_tank.starport", "combat_tank_h.starport" } + +Upgrades = { "upgrade.barracks", "upgrade.light", "upgrade.conyard", "upgrade.heavy", "upgrade.hightech" } + +Harvester = { "harvester" } + +AtrCarryHarvWaypoints = { atr_harvcarry_2.Location, atr_harvcarry_1.Location } +HarCarryHarvWaypoints = { har_harvcarry_2.Location, har_harvcarry_1.Location } +OrdCarryHarvWaypoints = { ord_harvcarry_2.Location, ord_harvcarry_1.Location } +EmpCarryHarvWaypoints = { emp_harvcarry_2.Location, emp_harvcarry_1.Location } +SmgCarryHarvWaypoints = { smg_harvcarry_2.Location, smg_harvcarry_1.Location } + +IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end + +Produce = function(house, units) + if HoldProduction[house.Name] then + Trigger.AfterDelay(DateTime.Minutes(1), function() Produce(house, units) end) + return + end + + local delay = Utils.RandomInteger(AttackDelay[1], AttackDelay[2]) + local toBuild = { Utils.Random(units) } + house.Build(toBuild, function(unit) + local unitCount = 1 + if IdlingUnits[house.Name] then + unitCount = 1 + #IdlingUnits[house.Name] + end + IdlingUnits[house.Name][unitCount] = unit[1] + Trigger.AfterDelay(delay, function() Produce(house, units) end) + + if unitCount >= (AttackGroupSize[1] * 2) then + SendAttack(house) + end + end) +end + +SetupAttackGroup = function(house) + local units = { } + + for i = 0, AttackGroupSize[1], 1 do + if #IdlingUnits[house.Name] == 0 then + return units + end + + local number = Utils.RandomInteger(1, #IdlingUnits[house.Name]) + + if IdlingUnits[house.Name][number] and not IdlingUnits[house.Name][number].IsDead then + units[i] = IdlingUnits[house.Name][number] + table.remove(IdlingUnits[house.Name], number) + end + end + + return units +end + +SendAttack = function(house) + if IsAttacking[house.Name] then + return + end + IsAttacking[house.Name] = true + HoldProduction[house.Name] = true + + local units = SetupAttackGroup(house) + Utils.Do(units, function(unit) + IdleHunt(unit) + end) + + Trigger.OnAllRemovedFromWorld(units, function() + IsAttacking[house.Name] = false + HoldProduction[house.Name] = false + end) +end + +SendNewHarv = function(house, waypoint, count) + local harvs = house.GetActorsByType("harvester") + if #harvs < count then + local harvesters = Reinforcements.ReinforceWithTransport(house, "carryall.reinforce", Harvester, waypoint, { waypoint[1] })[2] + Utils.Do(harvesters, function(harvester) + Trigger.OnAddedToWorld(harvester, function() + InitializeHarvester(harvester) + SendNewHarv(house, waypoint, count) + end) + end) + end +end + +InitializeHarvester = function(harvester) + harvester.FindResources() +end + +ticks = 0 +speed = 5 + +Tick = function() + ticks = ticks + 1 + + local t = (ticks + 45) % (360 * speed) * (math.pi / 180) / speed; + Camera.Position = viewportOrigin + WVec.New(19200 * math.sin(t), 28800 * math.cos(t), 0) +end + +WorldLoaded = function() + atreides = Player.GetPlayer("Atreides") + harkonnen = Player.GetPlayer("Harkonnen") + ordos = Player.GetPlayer("Ordos") + emperor = Player.GetPlayer("Emperor") + smugglers = Player.GetPlayer("Smugglers") + + viewportOrigin = Camera.Position + + Utils.Do(Utils.Take(4, Upgrades), function(upgrade) + atr_cyard.Produce(upgrade) + har_cyard.Produce(upgrade) + ord_cyard.Produce(upgrade) + emp_cyard.Produce(upgrade) + end) + atr_cyard.Produce(Upgrades[5]) + + Trigger.AfterDelay(DateTime.Seconds(45), function() + SendNewHarv(atreides, AtrCarryHarvWaypoints, 3) + SendNewHarv(harkonnen, HarCarryHarvWaypoints, 3) + SendNewHarv(ordos, OrdCarryHarvWaypoints, 3) + SendNewHarv(emperor, EmpCarryHarvWaypoints, 3) + SendNewHarv(smugglers, SmgCarryHarvWaypoints, 1) + end) + + Trigger.AfterDelay(DateTime.Seconds(1), function() + Produce(atreides, AtreidesInfantryTypes) + Produce(atreides, AtreidesVehicleTypes) + Produce(atreides, AtreidesTankTypes) + Produce(atreides, AtreidesStarportTypes) + + Produce(harkonnen, HarkonnenInfantryTypes) + Produce(harkonnen, HarkonnenVehicleTypes) + Produce(harkonnen, HarkonnenTankTypes) + Produce(harkonnen, HarkonnenStarportTypes) + + Produce(ordos, OrdosInfantryTypes) + Produce(ordos, OrdosVehicleTypes) + Produce(ordos, OrdosTankTypes) + Produce(ordos, OrdosStarportTypes) + + Produce(emperor, EmperorInfantryTypes) + Produce(emperor, EmperorVehicleTypes) + Produce(emperor, EmperorTankTypes) + Produce(emperor, EmperorStarportTypes) + end) +end diff --git a/mods/d2k/maps/shellmap/map.bin b/mods/d2k/maps/shellmap/map.bin index 24a300ddbe..0e39b47559 100644 Binary files a/mods/d2k/maps/shellmap/map.bin and b/mods/d2k/maps/shellmap/map.bin differ diff --git a/mods/d2k/maps/shellmap/map.png b/mods/d2k/maps/shellmap/map.png index 865d37dc88..ce8e536283 100644 Binary files a/mods/d2k/maps/shellmap/map.png and b/mods/d2k/maps/shellmap/map.png differ diff --git a/mods/d2k/maps/shellmap/map.yaml b/mods/d2k/maps/shellmap/map.yaml index a5685f89fb..0a402f91c0 100644 --- a/mods/d2k/maps/shellmap/map.yaml +++ b/mods/d2k/maps/shellmap/map.yaml @@ -4,7 +4,7 @@ RequiresMod: d2k Title: D2k Shellmap -Author: Westwood Studios +Author: Westwood Studios, MustaphaTR Tileset: ARRAKIS @@ -25,63 +25,1009 @@ Players: PlayerReference@Atreides: Name: Atreides Faction: atreides - Color: ABB7E4 + Color: 9191FF + Enemies: Emperor, Ordos, Harkonnen, Creeps + PlayerReference@Emperor: + Name: Emperor + Faction: corrino + Color: EF00FE + Enemies: Atreides, Ordos, Harkonnen, Creeps + PlayerReference@Ordos: + Name: Ordos + Faction: ordos + Color: B3EAA5 + Enemies: Atreides, Emperor, Harkonnen, Creeps + PlayerReference@Harkonnen: + Name: Harkonnen + Faction: harkonnen + Color: FE0000 + Enemies: Atreides, Emperor, Ordos, Creeps + PlayerReference@Smugglers: + Name: Smugglers + Faction: smuggler + Color: 542209 + Enemies: Creeps PlayerReference@Creeps: Name: Creeps NonCombatant: True Faction: atreides - Color: EF00FE - Enemies: Atreides + Enemies: Atreides, Emperor, Ordos, Harkonnen, Smugglers Actors: - Actor4: spicebloom - Location: 50,53 - Owner: Neutral - Actor5: spicebloom - Location: 50,65 - Owner: Neutral - Actor7: spicebloom - Location: 64,52 - Owner: Neutral - Actor8: spicebloom - Location: 65,64 - Owner: Neutral - Actor30: wind_trap - Location: 54,58 - Owner: Atreides - Actor32: silo - Location: 54,62 - Owner: Atreides - Actor33: medium_gun_turret - Location: 54,63 - Owner: Atreides - Actor34: siege_tank - Location: 54,56 - Owner: Atreides - Facing: 24 - Actor38: palace - Location: 50,37 - Owner: Creeps - Actor39: barracks - Location: 48,37 - Owner: Creeps - Actor40: large_gun_turret - Location: 46,39 - Owner: Creeps - Actor41: sardaukar - Location: 50,40 - Owner: Creeps - Actor42: sardaukar - Location: 52,40 - Owner: Creeps WormSpawner: wormspawner Location: 46,64 Owner: Creeps - Entry: waypoint - Location: 80,8 + Actor12: spicebloom.spawnpoint Owner: Neutral - AtreidesSpiceRefinery: refinery + Location: 65,20 + Actor19: spicebloom.spawnpoint + Owner: Neutral + Location: 62,92 + Actor20: spicebloom.spawnpoint + Owner: Neutral + Location: 48,91 + smg_wind: wind_trap + Owner: Smugglers + Location: 54,58 + smg_ref: refinery + Owner: Smugglers Location: 57,58 + smg_silo1: silo + Owner: Smugglers + Location: 54,62 + smg_raider: raider + Owner: Smugglers + Location: 53,57 + Facing: 32 + smg_light1: light_inf + Owner: Smugglers + Location: 59,61 + SubCell: 3 + Facing: 160 + TurretFacing: 160 + smg_light2: light_inf + Owner: Smugglers + Location: 53,63 + SubCell: 3 + Facing: 96 + TurretFacing: 96 + smg_light3: light_inf + Owner: Smugglers + Location: 57,57 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + smg_troop1: trooper + Owner: Smugglers + Location: 60,59 + SubCell: 3 + Facing: 192 + TurretFacing: 192 + smg_troop2: trooper + Owner: Smugglers + Location: 54,60 + SubCell: 3 + Facing: 64 + TurretFacing: 64 + atr_cyard: construction_yard Owner: Atreides + Location: 90,90 + atr_wind1: wind_trap + Owner: Atreides + Location: 87,90 + atr_wind2: wind_trap + Owner: Atreides + Location: 85,90 + atr_barracks: barracks + Owner: Atreides + Location: 91,86 + atr_ref1: refinery + Owner: Atreides + Location: 85,79 + atr_ref2: refinery + Owner: Atreides + Location: 91,79 + atr_wind3: wind_trap + Owner: Atreides + Location: 91,83 + atr_outp: outpost + Owner: Atreides + Location: 87,86 + atr_lfac: light_factory + Owner: Atreides + Location: 87,83 + atr_sport: starport + Owner: Atreides + Location: 78,85 + atr_wind4: wind_trap + Owner: Atreides + Location: 82,85 + atr_wind5: wind_trap + Owner: Atreides + Location: 75,85 + atr_rckt1: large_gun_turret + Owner: Atreides + Location: 84,76 + TurretFacing: 32 + Actor47: wall + Owner: Atreides + Location: 85,76 + Actor48: wall + Owner: Atreides + Location: 84,77 + Actor49: wall + Owner: Atreides + Location: 91,78 + Actor50: wall + Owner: Atreides + Location: 93,78 + atr_gunt1: medium_gun_turret + Owner: Atreides + Location: 92,78 + TurretFacing: 0 + atr_pad: repair_pad + Owner: Atreides + Location: 81,90 + atr_htech: high_tech_factory + Owner: Atreides + Location: 77,89 + atr_ref3: refinery + Owner: Atreides + Location: 71,90 + atr_wind8: wind_trap + Owner: Atreides + Location: 75,90 + atr_wind6: wind_trap + Owner: Atreides + Location: 73,85 + atr_gunt2: medium_gun_turret + Owner: Atreides + Location: 71,87 + TurretFacing: 96 + Actor58: wall + Owner: Atreides + Location: 70,87 + Actor59: wall + Owner: Atreides + Location: 71,88 + Actor60: wall + Owner: Atreides + Location: 75,81 + Actor62: wall + Owner: Atreides + Location: 74,82 + Actor63: wall + Owner: Atreides + Location: 77,81 + Actor64: wall + Owner: Atreides + Location: 78,82 + atr_rckt2: large_gun_turret + Owner: Atreides + Location: 78,81 + TurretFacing: 0 + atr_rckt3: large_gun_turret + Owner: Atreides + Location: 75,82 + TurretFacing: 32 + atr_wind7: wind_trap + Owner: Atreides + Location: 84,85 + atr_hfac: heavy_factory + Owner: Atreides + Location: 83,81 + har_cyard: construction_yard + Owner: Harkonnen + Location: 92,17 + har_wind1: wind_trap + Owner: Harkonnen + Location: 89,17 + har_wind2: wind_trap + Owner: Harkonnen + Location: 87,17 + har_ref1: refinery + Owner: Harkonnen + Location: 81,17 + har_ref2: refinery + Owner: Harkonnen + Location: 75,23 + har_ref3: refinery + Owner: Harkonnen + Location: 84,28 + har_barracks: barracks + Owner: Harkonnen + Location: 85,17 + har_hfac: heavy_factory + Owner: Harkonnen + Location: 77,25 + har_pad: repair_pad + Owner: Harkonnen + Location: 79,21 + har_lfac: light_factory + Owner: Harkonnen + Location: 81,25 + har_wind3: wind_trap + Owner: Harkonnen + Location: 85,21 + har_wind4: wind_trap + Owner: Harkonnen + Location: 83,21 + Actor87: wall + Owner: Harkonnen + Location: 88,33 + Actor89: wall + Owner: Harkonnen + Location: 90,33 + Actor90: wall + Owner: Harkonnen + Location: 87,34 + har_rckt1: large_gun_turret + Owner: Harkonnen + Location: 87,33 + TurretFacing: 128 + har_gunt1: medium_gun_turret + Owner: Harkonnen + Location: 89,33 + TurretFacing: 128 + Actor92: wall + Owner: Harkonnen + Location: 78,31 + Actor93: wall + Owner: Harkonnen + Location: 79,30 + Actor94: wall + Owner: Harkonnen + Location: 74,23 + Actor95: wall + Owner: Harkonnen + Location: 73,24 + Actor96: wall + Owner: Harkonnen + Location: 76,21 + Actor97: wall + Owner: Harkonnen + Location: 77,20 + Actor98: wall + Owner: Harkonnen + Location: 80,17 + Actor99: wall + Owner: Harkonnen + Location: 80,19 + har_gunt2: medium_gun_turret + Owner: Harkonnen + Location: 80,18 + TurretFacing: 64 + har_rckt2: large_gun_turret + Owner: Harkonnen + Location: 77,21 + TurretFacing: 32 + har_rckt3: large_gun_turret + Owner: Harkonnen + Location: 78,30 + TurretFacing: 160 + har_gunt3: medium_gun_turret + Owner: Harkonnen + Location: 73,23 + TurretFacing: 64 + har_wind5: wind_trap + Owner: Ordos + Location: 35,17 + har_wind6: wind_trap + Owner: Ordos + Location: 33,17 + ord_cyard: construction_yard + Owner: Ordos + Location: 29,17 + ord_barracks: barracks + Owner: Ordos + Location: 31,21 + ord_ref1: refinery + Owner: Ordos + Location: 36,30 + ord_ref2: refinery + Owner: Ordos + Location: 28,30 + ord_wind1: wind_trap + Owner: Ordos + Location: 27,17 + ord_wind2: wind_trap + Owner: Ordos + Location: 25,17 + ord_outp: outpost + Owner: Ordos + Location: 17,17 + ord_sport: starport + Owner: Ordos + Location: 21,17 + ord_wind3: wind_trap + Owner: Ordos + Location: 17,21 + ord_ref3: refinery + Owner: Ordos + Location: 17,29 + Actor117: wall + Owner: Ordos + Location: 17,33 + Actor118: wall + Owner: Ordos + Location: 18,32 + Actor120: wall + Owner: Ordos + Location: 20,32 + Actor121: wall + Owner: Ordos + Location: 21,33 + ord_gunt1: medium_gun_turret + Owner: Ordos + Location: 21,32 + TurretFacing: 128 + ord_gunt2: medium_gun_turret + Owner: Ordos + Location: 17,32 + TurretFacing: 128 + Actor123: wall + Owner: Ordos + Location: 29,34 + Actor124: wall + Owner: Ordos + Location: 30,33 + Actor125: wall + Owner: Ordos + Location: 32,33 + Actor126: wall + Owner: Ordos + Location: 33,34 + Actor127: wall + Owner: Ordos + Location: 34,33 + Actor128: wall + Owner: Ordos + Location: 36,33 + Actor129: wall + Owner: Ordos + Location: 38,33 + ord_rckt1: large_gun_turret + Owner: Ordos + Location: 37,33 + TurretFacing: 128 + ord_rckt3: large_gun_turret + Owner: Ordos + Location: 29,33 + TurretFacing: 128 + ord_lfac: light_factory + Owner: Ordos + Location: 19,21 + ord_htech: high_tech_factory + Owner: Ordos + Location: 28,25 + ord_pad: repair_pad + Owner: Ordos + Location: 23,27 + ord_hfac: heavy_factory + Owner: Ordos + Location: 27,20 + ord_wind4: wind_trap + Owner: Ordos + Location: 23,21 + ord_wind5: wind_trap + Owner: Ordos + Location: 25,21 + ord_wind6: wind_trap + Owner: Ordos + Location: 17,25 + ord_wind7: wind_trap + Owner: Ordos + Location: 20,25 + emp_cyard: construction_yard + Owner: Emperor + Location: 27,92 + emp_wind5: wind_trap + Owner: Emperor + Location: 31,92 + emp_wind4: wind_trap + Owner: Emperor + Location: 24,92 + emp_barracks: barracks + Owner: Emperor + Location: 33,92 + emp_ref1: refinery + Owner: Emperor + Location: 38,87 + emp_ref2: refinery + Owner: Emperor + Location: 21,86 + emp_hfac: heavy_factory + Owner: Emperor + Location: 31,85 + emp_outp: outpost + Owner: Emperor + Location: 17,92 + emp_wind1: wind_trap + Owner: Emperor + Location: 22,92 + emp_wind2: wind_trap + Owner: Emperor + Location: 20,92 + Actor151: wall + Owner: Emperor + Location: 19,87 + Actor152: wall + Owner: Emperor + Location: 20,86 + Actor153: wall + Owner: Emperor + Location: 21,85 + emp_gunt1: medium_gun_turret + Owner: Emperor + Location: 20,87 + TurretFacing: 0 + emp_rckt1: large_gun_turret + Owner: Emperor + Location: 20,85 + TurretFacing: 0 + Actor154: wall + Owner: Emperor + Location: 23,83 + Actor155: wall + Owner: Emperor + Location: 24,84 + emp_gunt2: medium_gun_turret + Owner: Emperor + Location: 23,84 + TurretFacing: 32 + Actor158: wall + Owner: Emperor + Location: 35,84 + Actor160: wall + Owner: Emperor + Location: 36,85 + emp_gunt3: medium_gun_turret + Owner: Emperor + Location: 36,84 + TurretFacing: 192 + Actor162: wall + Owner: Emperor + Location: 36,80 + Actor163: wall + Owner: Emperor + Location: 37,79 + emp_rckt2: large_gun_turret + Owner: Emperor + Location: 36,79 + TurretFacing: 160 + emp_htech: high_tech_factory + Owner: Emperor + Location: 37,91 + emp_wind3: wind_trap + Owner: Emperor + Location: 35,92 + emp_lfac: light_factory + Owner: Emperor + Location: 17,89 + emp_pad: repair_pad + Owner: Emperor + Location: 26,84 + Actor170: spicebloom.spawnpoint + Owner: Neutral + Location: 40,45 + Actor171: spicebloom.spawnpoint + Owner: Neutral + Location: 27,42 + Actor172: spicebloom.spawnpoint + Owner: Neutral + Location: 29,61 + Actor173: spicebloom.spawnpoint + Owner: Neutral + Location: 26,75 + Actor174: spicebloom.spawnpoint + Owner: Neutral + Location: 45,75 + Actor178: spicebloom.spawnpoint + Owner: Neutral + Location: 71,74 + Actor179: spicebloom.spawnpoint + Owner: Neutral + Location: 82,65 + Actor180: spicebloom.spawnpoint + Owner: Neutral + Location: 93,68 + Actor181: spicebloom.spawnpoint + Owner: Neutral + Location: 85,42 + Actor182: spicebloom.spawnpoint + Owner: Neutral + Location: 76,43 + Actor183: spicebloom.spawnpoint + Owner: Neutral + Location: 64,52 + Actor184: spicebloom.spawnpoint + Owner: Neutral + Location: 67,34 + Actor185: spicebloom.spawnpoint + Owner: Neutral + Location: 52,37 + Actor186: spicebloom.spawnpoint + Owner: Neutral + Location: 43,22 + ord_siege1: siege_tank + Owner: Ordos + Location: 33,32 + Facing: 128 + TurretFacing: 128 + ord_siege2: siege_tank + Owner: Ordos + Location: 22,31 + Facing: 160 + TurretFacing: 160 + ord_missile: missile_tank + Owner: Ordos + Location: 34,20 + Facing: 160 + ord_raider: raider + Owner: Ordos + Location: 23,23 + Facing: 128 + ord_combat1: combat_tank_o + Owner: Ordos + Location: 33,27 + Facing: 64 + TurretFacing: 64 + ord_combat2: combat_tank_o + Owner: Ordos + Location: 28,28 + Facing: 128 + TurretFacing: 128 + ord_troop1: trooper + Owner: Ordos + Location: 39,30 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + ord_troop2: trooper + Owner: Ordos + Location: 36,29 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + ord_light1: light_inf + Owner: Ordos + Location: 17,24 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + ord_light2: light_inf + Owner: Ordos + Location: 21,29 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + ord_light3: light_inf + Owner: Ordos + Location: 20,20 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + ord_engi: engineer + Owner: Ordos + Location: 32,18 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + ord_carry1: carryall + Owner: Ordos + Location: 27,25 + Facing: 0 + ord_carry2: carryall + Owner: Ordos + Location: 25,25 + Facing: 0 + ord_carry3: carryall + Owner: Ordos + Location: 23,25 + Facing: 0 + har_missile: missile_tank + Owner: Harkonnen + Location: 93,29 + Facing: 128 + har_siege1: siege_tank + Owner: Harkonnen + Location: 89,32 + Facing: 128 + TurretFacing: 128 + har_siege2: siege_tank + Owner: Harkonnen + Location: 74,24 + Facing: 32 + TurretFacing: 32 + har_combat1: combat_tank_h + Owner: Harkonnen + Location: 79,25 + Facing: 96 + TurretFacing: 96 + har_light1: light_inf + Owner: Harkonnen + Location: 91,28 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + har_light2: light_inf + Owner: Harkonnen + Location: 94,24 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + har_sardaukar: sardaukar + Owner: Harkonnen + Location: 82,28 + SubCell: 3 + Facing: 128 + TurretFacing: 128 + har_troop1: trooper + Owner: Harkonnen + Location: 79,31 + SubCell: 3 + Facing: 160 + TurretFacing: 160 + har_troop2: trooper + Owner: Harkonnen + Location: 79,18 + SubCell: 3 + Facing: 64 + TurretFacing: 64 + har_troop3: trooper + Owner: Harkonnen + Location: 84,23 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + har_quad: quad + Owner: Harkonnen + Location: 90,27 + Facing: 0 + art_missile: missile_tank + Owner: Atreides + Location: 70,82 + Facing: 32 + atr_combat1: combat_tank_a + Owner: Atreides + Location: 90,85 + Facing: 0 + TurretFacing: 0 + atr_combat2: combat_tank_a + Owner: Atreides + Location: 81,88 + Facing: 128 + TurretFacing: 128 + atr_siege1: siege_tank + Owner: Atreides + Location: 85,77 + Facing: 32 + TurretFacing: 32 + atr_siege2: siege_tank + Owner: Atreides + Location: 71,86 + Facing: 96 + TurretFacing: 96 + atr_carry1: carryall + Owner: Atreides + Location: 94,86 + Facing: 0 + atr_carry2: carryall + Owner: Atreides + Location: 94,88 + Facing: 0 + atr_carry3: carryall + Owner: Atreides + Location: 94,90 + Facing: 0 + atr_trike: trike + Owner: Atreides + Location: 92,82 + Facing: 0 + atr_light1: light_inf + Owner: Atreides + Location: 89,79 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + atr_light2: light_inf + Owner: Atreides + Location: 74,87 + SubCell: 3 + Facing: 128 + TurretFacing: 128 + atr_light3: light_inf + Owner: Atreides + Location: 80,93 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + atr_gren: grenadier + Owner: Atreides + Location: 80,84 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + atr_trooper1: trooper + Owner: Atreides + Location: 94,84 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + atr_trooper2: trooper + Owner: Atreides + Location: 85,89 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + emp_missile: missile_tank + Owner: Emperor + Location: 41,91 + Facing: 160 + emp_combat1: combat_tank_h + Owner: Emperor + Location: 38,85 + Facing: 0 + TurretFacing: 0 + emp_combat2: combat_tank_h + Owner: Emperor + Location: 21,84 + Facing: 0 + TurretFacing: 0 + emp_siege1: siege_tank + Owner: Emperor + Location: 35,85 + Facing: 224 + TurretFacing: 224 + emp_siege2: siege_tank + Owner: Emperor + Location: 20,88 + Facing: 0 + TurretFacing: 0 + emp_sardaukar1: sardaukar + Owner: Emperor + Location: 40,85 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + emp_sardaukar2: sardaukar + Owner: Emperor + Location: 30,85 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + emp_sardaukar3: sardaukar + Owner: Emperor + Location: 23,89 + SubCell: 3 + Facing: 128 + TurretFacing: 128 + emp_sardaukar4: sardaukar + Owner: Emperor + Location: 30,91 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + emp_sardaukar5: sardaukar + Owner: Emperor + Location: 17,88 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + emp_sardaukar6: sardaukar + Owner: Emperor + Location: 33,81 + SubCell: 3 + Facing: 192 + TurretFacing: 192 + Actor245: wormspawner + Owner: Neutral + Location: 80,48 + Actor246: wormspawner + Owner: Neutral + Location: 28,49 + Actor247: wormspawner + Owner: Neutral + Location: 34,57 + Actor248: wormspawner + Owner: Neutral + Location: 88,62 + Actor249: spicebloom.spawnpoint + Owner: Neutral + Location: 50,53 + har_wind5: wind_trap + Owner: Harkonnen + Location: 87,21 + har_wind6: wind_trap + Owner: Harkonnen + Location: 93,21 + har_htech: high_tech_factory + Owner: Harkonnen + Location: 91,23 + har_outp: outpost + Owner: Harkonnen + Location: 89,21 + har_sport: starport + Owner: Harkonnen + Location: 85,24 + har_wind7: wind_trap + Owner: Harkonnen + Location: 88,24 + emp_wind7: wind_trap + Owner: Emperor + Location: 36,87 + har_carry1: carryall + Owner: Harkonnen + Location: 90,26 + Facing: 0 + har_carry2: carryall + Owner: Harkonnen + Location: 90,24 + Facing: 0 + har_carry3: carryall + Owner: Harkonnen + Location: 90,28 + Facing: 0 + har_combat2: combat_tank_h + Owner: Harkonnen + Location: 88,29 + Facing: 64 + TurretFacing: 64 + atr_engi: engineer + Owner: Atreides + Location: 86,85 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + emp_engi: engineer + Owner: Emperor + Location: 35,89 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + har_engi: engineer + Owner: Harkonnen + Location: 77,29 + SubCell: 3 + Facing: 0 + TurretFacing: 0 + smg_silo2: silo + Owner: Smugglers + Location: 54,63 + atr_silo1: silo + Owner: Atreides + Location: 76,84 + atr_silo2: silo + Owner: Atreides + Location: 75,84 + atr_silo3: silo + Owner: Atreides + Location: 74,84 + atr_silo4: silo + Owner: Atreides + Location: 73,84 + emp_silo1: silo + Owner: Emperor + Location: 33,90 + emp_silo2: silo + Owner: Emperor + Location: 32,90 + emp_silo3: silo + Owner: Emperor + Location: 31,90 + emp_quad: quad + Owner: Emperor + Location: 33,89 + Facing: 0 + har_silo1: silo + Owner: Harkonnen + Location: 92,21 + har_silo2: silo + Owner: Harkonnen + Location: 92,22 + har_silo3: silo + Owner: Harkonnen + Location: 76,26 + har_silo4: silo + Owner: Harkonnen + Location: 75,26 + ord_silo1: silo + Owner: Ordos + Location: 32,25 + ord_silo2: silo + Owner: Ordos + Location: 32,26 + ord_silo3: silo + Owner: Ordos + Location: 30,25 + ord_silo4: silo + Owner: Ordos + Location: 28,25 + emp_silo4: silo + Owner: Emperor + Location: 34,90 + Actor281: wall + Owner: Atreides + Location: 71,93 + Actor282: wall + Owner: Atreides + Location: 72,94 + atr_gunt3: medium_gun_turret + Owner: Atreides + Location: 71,94 + TurretFacing: 64 + Actor283: wall + Owner: Ordos + Location: 33,28 + Actor284: wall + Owner: Ordos + Location: 34,29 + ord_rckt2: large_gun_turret + Owner: Ordos + Location: 33,29 + TurretFacing: 224 + ord_gunt3: medium_gun_turret + Owner: Ordos + Location: 33,33 + TurretFacing: 128 + Actor287: wall + Owner: Emperor + Location: 38,86 + Actor288: wall + Owner: Emperor + Location: 40,86 + emp_rckt3: large_gun_turret + Owner: Emperor + Location: 39,86 + TurretFacing: 0 + emp_wind6: wind_trap + Owner: Emperor + Location: 25,88 + emp_sport: starport + Owner: Emperor + Location: 27,88 + smg_carry: carryall + Owner: Smugglers + Location: 0,0 + Facing: 0 + har_harvcarry_1: waypoint + Owner: Harkonnen + Location: 81,29 + atr_harvcarry_1: waypoint + Owner: Atreides + Location: 75,88 + smg_harvcarry_1: waypoint + Owner: Smugglers + Location: 56,60 + emp_harvcarry_1: waypoint + Owner: Emperor + Location: 34,82 + ord_harvcarry_1: waypoint + Owner: Ordos + Location: 32,31 + atr_harvcarry_2: waypoint + Owner: Atreides + Location: 96,96 + smg_harvcarry_2: waypoint + Owner: Smugglers + Location: 56,96 + emp_harvcarry_2: waypoint + Owner: Emperor + Location: 15,96 + ord_harvcarry_2: waypoint + Owner: Ordos + Location: 15,15 + har_harvcarry_2: waypoint + Owner: Harkonnen + Location: 96,15 + Actor265: spicebloom.spawnpoint + Owner: Neutral + Location: 65,64 + Actor266: spicebloom.spawnpoint + Owner: Neutral + Location: 55,66 + Actor267: spicebloom.spawnpoint + Owner: Neutral + Location: 50,65 Rules: rules.yaml diff --git a/mods/d2k/maps/shellmap/rules.yaml b/mods/d2k/maps/shellmap/rules.yaml index 5d32afc245..f2baf3e2fd 100644 --- a/mods/d2k/maps/shellmap/rules.yaml +++ b/mods/d2k/maps/shellmap/rules.yaml @@ -1,3 +1,7 @@ +Player: + -ConquestVictoryConditions: + -HarvesterInsurance: + World: -CrateSpawner: -SpawnMPUnits: @@ -6,10 +10,113 @@ World: ValuePerUnit: 0 WormManager: Minimum: 1 - Maximum: 1 + Maximum: 3 MusicPlaylist: BackgroundMusic: options + LuaScript: + Scripts: d2k-shellmap.lua -large_gun_turret: - Power: - Amount: 300 +^ExistsInWorld: + -GivesExperience: + +^Building: + DamageMultiplier@UNKILLABLE: + Modifier: 0, 0 + +wall: + DamageMultiplier@UNKILLABLE: + Modifier: 0, 0 + +upgrade.conyard: + Valued: + Cost: 0 + +upgrade.barracks: + Valued: + Cost: 0 + +upgrade.light: + Valued: + Cost: 0 + +upgrade.heavy: + Valued: + Cost: 0 + +upgrade.hightech: + Valued: + Cost: 0 + +light_inf: + Valued: + Cost: 0 + +trooper: + Valued: + Cost: 0 + +grenadier: + Valued: + Cost: 0 + +sardaukar: + Valued: + Cost: 0 + +trike: + Valued: + Cost: 0 + +raider: + Valued: + Cost: 0 + +stealth_raider: + Valued: + Cost: 0 + +quad: + Valued: + Cost: 0 + +^combat_tank: + Valued: + Cost: 0 + +siege_tank: + Valued: + Cost: 0 + +missile_tank: + Valued: + Cost: 0 + +carryall.reinforce: + Cargo: + MaxWeight: 10 + +barracks: + ProvidesPrerequisite@harkonnen: + Prerequisite: barracks.harkonnen + Factions: harkonnen, corrino + +light_factory: + ProvidesPrerequisite@harkonnen: + Prerequisite: light.harkonnen + Factions: harkonnen, corrino + ProvidesPrerequisite@trikes: + Prerequisite: light.regulartrikes + Factions: atreides, harkonnen, corrino + +heavy_factory: + ProvidesPrerequisite@harkonnen: + Prerequisite: heavy.harkonnen + Factions: harkonnen, corrino + ProvidesPrerequisite@missiletank: + Prerequisite: heavy.missiletank + Factions: atreides, harkonnen, corrino + +starport: + ProvidesPrerequisite@harkonnen: + Prerequisite: starport.harkonnen + Factions: harkonnen, corrino