From de74af93d0f981ec7f3a0a2afb72042acb31bed0 Mon Sep 17 00:00:00 2001 From: Mustafa Alperen Seki Date: Fri, 9 Sep 2016 15:30:07 +0200 Subject: [PATCH] Add new shellmap to D2K --- mods/d2k/maps/shellmap/d2k-shellmap.lua | 192 +++++ mods/d2k/maps/shellmap/map.bin | Bin 81937 -> 81937 bytes mods/d2k/maps/shellmap/map.png | Bin 1809 -> 2148 bytes mods/d2k/maps/shellmap/map.yaml | 1040 ++++++++++++++++++++++- mods/d2k/maps/shellmap/rules.yaml | 115 ++- 5 files changed, 1296 insertions(+), 51 deletions(-) create mode 100644 mods/d2k/maps/shellmap/d2k-shellmap.lua 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 24a300ddbee12915c0524df8e1603f477857fa93..0e39b475599396f1cf5eb045cb5115944869ce94 100644 GIT binary patch literal 81937 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 literal 81937 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 N5|{)gfqx!>{|7o%I(7g6 diff --git a/mods/d2k/maps/shellmap/map.png b/mods/d2k/maps/shellmap/map.png index 865d37dc8865bd3d05c7fa67f30da3dc37e1dcd1..ce8e5362837bd7401ea6c8a63b8a52c2c9e3f1e8 100644 GIT binary patch delta 2120 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