Add Harkonnen 5
This commit is contained in:
committed by
reaperrr
parent
b898b5001a
commit
15b77f8d91
@@ -127,6 +127,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dune 2000 Lua scripts", "Du
|
||||
mods\d2k\maps\harkonnen-03b\harkonnen03b.lua = mods\d2k\maps\harkonnen-03b\harkonnen03b.lua
|
||||
mods\d2k\maps\harkonnen-04\harkonnen04-AI.lua = mods\d2k\maps\harkonnen-04\harkonnen04-AI.lua
|
||||
mods\d2k\maps\harkonnen-04\harkonnen04.lua = mods\d2k\maps\harkonnen-04\harkonnen04.lua
|
||||
mods\d2k\maps\harkonnen-05\harkonnen05-AI.lua = mods\d2k\maps\harkonnen-05\harkonnen05-AI.lua
|
||||
mods\d2k\maps\harkonnen-05\harkonnen05.lua = mods\d2k\maps\harkonnen-05\harkonnen05.lua
|
||||
mods\d2k\maps\harkonnen-06a\harkonnen06a-AI.lua = mods\d2k\maps\harkonnen-06a\harkonnen06a-AI.lua
|
||||
mods\d2k\maps\harkonnen-06a\harkonnen06a.lua = mods\d2k\maps\harkonnen-06a\harkonnen06a.lua
|
||||
mods\d2k\maps\harkonnen-06b\harkonnen06b-AI.lua = mods\d2k\maps\harkonnen-06b\harkonnen06b-AI.lua
|
||||
|
||||
49
mods/d2k/maps/harkonnen-05/harkonnen05-AI.lua
Normal file
49
mods/d2k/maps/harkonnen-05/harkonnen05-AI.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
--[[
|
||||
Copyright 2007-2017 The OpenRA Developers (see AUTHORS)
|
||||
This file is part of OpenRA, which is free software. It is made
|
||||
available to you under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version. For more
|
||||
information, see COPYING.
|
||||
]]
|
||||
|
||||
AttackGroupSize =
|
||||
{
|
||||
easy = 6,
|
||||
normal = 8,
|
||||
hard = 10
|
||||
}
|
||||
|
||||
AttackDelays =
|
||||
{
|
||||
easy = { DateTime.Seconds(4), DateTime.Seconds(7) },
|
||||
normal = { DateTime.Seconds(2), DateTime.Seconds(5) },
|
||||
hard = { DateTime.Seconds(1), DateTime.Seconds(3) }
|
||||
}
|
||||
|
||||
OrdosInfantryTypes = { "light_inf", "light_inf", "light_inf", "trooper", "trooper" }
|
||||
OrdosVehicleTypes = { "raider", "raider", "quad" }
|
||||
OrdosTankType = { "combat_tank_o" }
|
||||
|
||||
ActivateAI = function()
|
||||
IdlingUnits[ordos_main] = Reinforcements.Reinforce(ordos_main, InitialOrdosReinforcements[1], InitialOrdosPaths[1]), Reinforcements.Reinforce(ordos_main, InitialOrdosReinforcements[2], InitialOrdosPaths[2])
|
||||
IdlingUnits[ordos_small] = Reinforcements.Reinforce(ordos_small, InitialOrdosReinforcements[1], InitialOrdosPaths[3])
|
||||
IdlingUnits[corrino] = { CSaraukar1, CSaraukar2, CSaraukar3, CSaraukar4, CSaraukar5 }
|
||||
|
||||
DefendAndRepairBase(ordos_main, OrdosMainBase, 0.75, AttackGroupSize[Difficulty])
|
||||
DefendAndRepairBase(ordos_small, OrdosSmallBase, 0.75, AttackGroupSize[Difficulty])
|
||||
DefendAndRepairBase(corrino, CorrinoBase, 0.75, AttackGroupSize[Difficulty])
|
||||
|
||||
local delay = function() return Utils.RandomInteger(AttackDelays[Difficulty][1], AttackDelays[Difficulty][2] + 1) end
|
||||
local infantryToBuild = function() return { Utils.Random(OrdosInfantryTypes) } end
|
||||
local vehilcesToBuild = function() return { Utils.Random(OrdosVehicleTypes) } end
|
||||
local tanksToBuild = function() return OrdosTankType end
|
||||
local attackThresholdSize = AttackGroupSize[Difficulty] * 2.5
|
||||
|
||||
ProduceUnits(ordos_main, OBarracks1, delay, infantryToBuild, AttackGroupSize[Difficulty], attackThresholdSize)
|
||||
ProduceUnits(ordos_main, OLightFactory1, delay, vehilcesToBuild, AttackGroupSize[Difficulty], attackThresholdSize)
|
||||
ProduceUnits(ordos_main, OHeavyFactory, delay, tanksToBuild, AttackGroupSize[Difficulty], attackThresholdSize)
|
||||
|
||||
ProduceUnits(ordos_small, OBarracks3, delay, infantryToBuild, AttackGroupSize[Difficulty], attackThresholdSize)
|
||||
ProduceUnits(ordos_small, OLightFactory2, delay, vehilcesToBuild, AttackGroupSize[Difficulty], attackThresholdSize)
|
||||
end
|
||||
285
mods/d2k/maps/harkonnen-05/harkonnen05.lua
Normal file
285
mods/d2k/maps/harkonnen-05/harkonnen05.lua
Normal file
@@ -0,0 +1,285 @@
|
||||
--[[
|
||||
Copyright 2007-2017 The OpenRA Developers (see AUTHORS)
|
||||
This file is part of OpenRA, which is free software. It is made
|
||||
available to you under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version. For more
|
||||
information, see COPYING.
|
||||
]]
|
||||
|
||||
OrdosMainBase = { OConYard, OOutpost, ORefinery1, ORefinery2, OHeavyFactory, OLightFactory1, OHiTechFactory, OGunt1, OGunt2, OGunt3, OGunt4, OBarracks1, OBarracks2, OPower1, OPower2, OPower3, OPower4, OPower5, OPower6, OPower7, OPower8, OPower9 }
|
||||
OrdosSmallBase = { ORefinery3, OBarracks3, OLightFactory2, OGunt5, OGunt6, OPower10, OPower11, OPower12, OPower13, OSilo }
|
||||
CorrinoBase = { CStarport, CPower1, CPower2 }
|
||||
|
||||
BaseAreaTriggers =
|
||||
{
|
||||
{ CPos.New(68, 70), CPos.New(69, 70), CPos.New(70, 70), CPos.New(71, 70) },
|
||||
{ CPos.New(39, 78), CPos.New(39, 79), CPos.New(39, 80), CPos.New(39, 81), CPos.New(43, 68), CPos.New(44, 68), CPos.New(45, 68), CPos.New(46, 68), CPos.New(47, 68), CPos.New(48, 68), CPos.New(49, 68), CPos.New(50, 68), CPos.New(51, 68), CPos.New(52, 68), CPos.New(53, 68), CPos.New(54, 68), CPos.New(55, 68), CPos.New(56, 68), CPos.New(57, 68), CPos.New(58, 68), CPos.New(59, 68), CPos.New(60, 68) }
|
||||
}
|
||||
|
||||
OrdosReinforcements =
|
||||
{
|
||||
easy =
|
||||
{
|
||||
{ "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper" },
|
||||
{ "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf" },
|
||||
{ "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf" },
|
||||
{ "combat_tank_o", "quad" },
|
||||
{ "combat_tank_o", "raider", "light_inf", "light_inf" },
|
||||
{ "siege_tank", "combat_tank_o", "quad" }
|
||||
},
|
||||
|
||||
normal =
|
||||
{
|
||||
{ "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper" },
|
||||
{ "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf" },
|
||||
{ "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf" },
|
||||
{ "combat_tank_o", "combat_tank_o" },
|
||||
{ "combat_tank_o", "raider", "raider", "light_inf" },
|
||||
{ "siege_tank", "combat_tank_o", "quad", "quad" },
|
||||
{ "combat_tank_o", "combat_tank_o", "combat_tank_o", "combat_tank_o" }
|
||||
},
|
||||
|
||||
hard =
|
||||
{
|
||||
{ "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "trooper" },
|
||||
{ "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf" },
|
||||
{ "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf" },
|
||||
{ "combat_tank_o", "combat_tank_o", "quad" },
|
||||
{ "combat_tank_o", "raider", "raider", "raider" },
|
||||
{ "siege_tank", "combat_tank_o", "combat_tank_o", "quad" },
|
||||
{ "combat_tank_o", "combat_tank_o", "combat_tank_o", "combat_tank_o", "combat_tank_o" },
|
||||
{ "trooper", "trooper", "trooper", "trooper", "trooper", "trooper", "quad", "quad", "raider" }
|
||||
}
|
||||
}
|
||||
|
||||
CorrinoStarportReinforcements =
|
||||
{
|
||||
easy = { "trooper", "trooper", "quad", "quad", "trike", "trike", "missile_tank", "missile_tank" },
|
||||
normal = { "trooper", "trooper", "trooper", "quad", "quad", "trike", "trike", "missile_tank", "missile_tank" },
|
||||
hard = { "trooper", "trooper", "trooper", "quad", "quad", "quad", "trike", "trike", "trike", "missile_tank", "missile_tank" }
|
||||
}
|
||||
|
||||
OrdosAttackDelay =
|
||||
{
|
||||
easy = DateTime.Minutes(3),
|
||||
normal = DateTime.Minutes(2) + DateTime.Seconds(20),
|
||||
hard = DateTime.Minutes(1)
|
||||
}
|
||||
|
||||
CorrinoStarportDelay =
|
||||
{
|
||||
easy = DateTime.Minutes(3),
|
||||
normal = DateTime.Minutes(2) + DateTime.Seconds(30),
|
||||
hard = DateTime.Minutes(2)
|
||||
}
|
||||
|
||||
OrdosAttackWaves =
|
||||
{
|
||||
easy = 6,
|
||||
normal = 7,
|
||||
hard = 8
|
||||
}
|
||||
|
||||
OrdosHunters =
|
||||
{
|
||||
{ "combat_tank_o", "combat_tank_o" },
|
||||
{ "missile_tank" }
|
||||
}
|
||||
|
||||
InitialOrdosReinforcements =
|
||||
{
|
||||
{ "trooper", "trooper", "trooper", "trooper", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf", "light_inf" },
|
||||
{ "combat_tank_o", "combat_tank_o", "quad", "quad", "raider", "raider" }
|
||||
}
|
||||
|
||||
OrdosPaths =
|
||||
{
|
||||
{ OrdosEntry1.Location, OrdosRally1.Location },
|
||||
{ OrdosEntry2.Location, OrdosRally2.Location },
|
||||
{ OrdosEntry3.Location, OrdosRally3.Location },
|
||||
{ OrdosEntry4.Location, OrdosRally4.Location },
|
||||
{ OrdosEntry5.Location, OrdosRally5.Location },
|
||||
{ OrdosEntry6.Location, OrdosRally6.Location },
|
||||
{ OrdosEntry7.Location, OrdosRally7.Location }
|
||||
}
|
||||
|
||||
InitialOrdosPaths =
|
||||
{
|
||||
{ OrdosEntry8.Location, OrdosRally8.Location },
|
||||
{ OrdosEntry9.Location, OrdosRally9.Location },
|
||||
{ OrdosEntry10.Location, OrdosRally10.Location }
|
||||
}
|
||||
|
||||
OrdosHunterPaths =
|
||||
{
|
||||
{ OrdosEntry11.Location, OrdosEntry11.Location },
|
||||
{ OrdosEntry12.Location, OrdosEntry12.Location },
|
||||
}
|
||||
|
||||
HarkonnenReinforcements =
|
||||
{
|
||||
{ "trooper", "trooper", "trooper", "trooper" },
|
||||
{ "combat_tank_h", "combat_tank_h", "combat_tank_h", "combat_tank_h" }
|
||||
}
|
||||
|
||||
HarkonnenPaths =
|
||||
{
|
||||
{ HarkonnenEntry1.Location, HarkonnenRally1.Location },
|
||||
{ HarkonnenEntry2.Location, HarkonnenRally2.Location }
|
||||
}
|
||||
|
||||
SendStarportReinforcements = function()
|
||||
Trigger.AfterDelay(CorrinoStarportDelay[Difficulty], function()
|
||||
if CStarport.IsDead or CStarport.Owner ~= corrino then
|
||||
return
|
||||
end
|
||||
|
||||
local units = Reinforcements.ReinforceWithTransport(corrino, "frigate", CorrinoStarportReinforcements[Difficulty], { CorrinoStarportEntry.Location, CStarport.Location + CVec.New(1, 1) }, { CorrinoStarportExit.Location })[2]
|
||||
Utils.Do(units, function(unit)
|
||||
unit.AttackMove(OrdosAttackLocation)
|
||||
IdleHunt(unit)
|
||||
end)
|
||||
|
||||
SendStarportReinforcements()
|
||||
|
||||
if player.IsObjectiveFailed(GuardOutpost) then
|
||||
return
|
||||
end
|
||||
|
||||
Media.DisplayMessage("Imperial ships penetrating defense grid!", "Mentat")
|
||||
end)
|
||||
end
|
||||
|
||||
SendHarkonnenReinforcements = function(delay, number)
|
||||
Trigger.AfterDelay(delay, function()
|
||||
Reinforcements.ReinforceWithTransport(player, "carryall.reinforce", HarkonnenReinforcements[number], HarkonnenPaths[number], { HarkonnenPaths[number][1] })
|
||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||
Media.PlaySpeechNotification(player, "Reinforce")
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
OrdosReinforcementNotification = function(currentWave, totalWaves)
|
||||
Trigger.AfterDelay(OrdosAttackDelay[Difficulty], function()
|
||||
if player.IsObjectiveFailed(GuardOutpost) or player.IsObjectiveCompleted(KillOrdos) then
|
||||
return
|
||||
end
|
||||
|
||||
currentWave = currentWave + 1
|
||||
if currentWave > totalWaves then
|
||||
return
|
||||
end
|
||||
|
||||
Media.DisplayMessage("Enemy carryall drop detected!", "Mentat")
|
||||
|
||||
OrdosReinforcementNotification(currentWave, totalWaves)
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
Tick = function()
|
||||
if player.HasNoRequiredUnits() then
|
||||
ordos_main.MarkCompletedObjective(KillHarkonnen1)
|
||||
ordos_small.MarkCompletedObjective(KillHarkonnen2)
|
||||
corrino.MarkCompletedObjective(KillHarkonnen3)
|
||||
end
|
||||
|
||||
if ordos_main.HasNoRequiredUnits() and ordos_small.HasNoRequiredUnits() and not player.IsObjectiveCompleted(KillOrdos) then
|
||||
Media.DisplayMessage("The Ordos have been annihilated!", "Mentat")
|
||||
player.MarkCompletedObjective(KillOrdos)
|
||||
end
|
||||
|
||||
if corrino.HasNoRequiredUnits() and not player.IsObjectiveCompleted(KillCorrino) then
|
||||
Media.DisplayMessage("The Emperor has been annihilated!", "Mentat")
|
||||
player.MarkCompletedObjective(KillCorrino)
|
||||
end
|
||||
|
||||
if player.IsObjectiveCompleted(KillOrdos) and player.IsObjectiveCompleted(KillCorrino) and not player.IsObjectiveCompleted(GuardOutpost) then
|
||||
player.MarkCompletedObjective(GuardOutpost)
|
||||
end
|
||||
|
||||
if (HOutpost.IsDead or HOutpost.Owner ~= player) and not player.IsObjectiveFailed(GuardOutpost) then
|
||||
player.MarkFailedObjective(GuardOutpost)
|
||||
end
|
||||
|
||||
if DateTime.GameTime % DateTime.Seconds(10) == 0 and LastHarvesterEaten[ordos_main] then
|
||||
local units = ordos_main.GetActorsByType("harvester")
|
||||
|
||||
if #units > 0 then
|
||||
LastHarvesterEaten[ordos_main] = false
|
||||
ProtectHarvester(units[1], ordos_main, AttackGroupSize[Difficulty])
|
||||
end
|
||||
end
|
||||
|
||||
if DateTime.GameTime % DateTime.Seconds(10) == 0 and LastHarvesterEaten[ordos_small] then
|
||||
local units = ordos_small.GetActorsByType("harvester")
|
||||
|
||||
if #units > 0 then
|
||||
LastHarvesterEaten[ordos_small] = false
|
||||
ProtectHarvester(units[1], ordos_small, AttackGroupSize[Difficulty])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
WorldLoaded = function()
|
||||
ordos_main = Player.GetPlayer("Ordos Main Base")
|
||||
ordos_small = Player.GetPlayer("Ordos Small Base")
|
||||
corrino = Player.GetPlayer("Corrino")
|
||||
player = Player.GetPlayer("Harkonnen")
|
||||
|
||||
InitObjectives(player)
|
||||
KillOrdos = player.AddPrimaryObjective("Destroy the Ordos.")
|
||||
KillCorrino = player.AddPrimaryObjective("Destroy the Imperial Forces.")
|
||||
GuardOutpost = player.AddSecondaryObjective("Keep the Modified Outpost intact.")
|
||||
KillHarkonnen1 = ordos_main.AddPrimaryObjective("Kill all Harkonnen units.")
|
||||
KillHarkonnen2 = ordos_small.AddPrimaryObjective("Kill all Harkonnen units.")
|
||||
KillHarkonnen3 = corrino.AddPrimaryObjective("Kill all Harkonnen units.")
|
||||
|
||||
HOutpost.GrantCondition("modified")
|
||||
|
||||
Camera.Position = HConYard.CenterPosition
|
||||
OrdosAttackLocation = HConYard.Location
|
||||
|
||||
Trigger.OnAllKilledOrCaptured(OrdosMainBase, function()
|
||||
Utils.Do(ordos_main.GetGroundAttackers(), IdleHunt)
|
||||
end)
|
||||
|
||||
Trigger.OnAllKilledOrCaptured(OrdosSmallBase, function()
|
||||
Utils.Do(ordos_small.GetGroundAttackers(), IdleHunt)
|
||||
end)
|
||||
|
||||
Trigger.OnAllKilledOrCaptured(CorrinoBase, function()
|
||||
Utils.Do(corrino.GetGroundAttackers(), IdleHunt)
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(5), function()
|
||||
Media.DisplayMessage("Protect the Outpost from attack.", "Mentat")
|
||||
end)
|
||||
|
||||
local path = function() return Utils.Random(OrdosPaths) end
|
||||
local waveCondition = function() return player.IsObjectiveCompleted(KillOrdos) end
|
||||
local huntFunction = function(unit)
|
||||
unit.AttackMove(OrdosAttackLocation)
|
||||
IdleHunt(unit)
|
||||
end
|
||||
SendCarryallReinforcements(ordos_main, 0, OrdosAttackWaves[Difficulty], OrdosAttackDelay[Difficulty], path, OrdosReinforcements[Difficulty], waveCondition, huntFunction)
|
||||
OrdosReinforcementNotification(0, OrdosAttackWaves[Difficulty])
|
||||
|
||||
SendStarportReinforcements()
|
||||
|
||||
Actor.Create("upgrade.barracks", true, { Owner = ordos_main })
|
||||
Actor.Create("upgrade.light", true, { Owner = ordos_main })
|
||||
Actor.Create("upgrade.heavy", true, { Owner = ordos_main })
|
||||
Actor.Create("upgrade.barracks", true, { Owner = ordos_small })
|
||||
Actor.Create("upgrade.light", true, { Owner = ordos_small })
|
||||
Trigger.AfterDelay(0, ActivateAI)
|
||||
|
||||
SendHarkonnenReinforcements(DateTime.Seconds(15), 1)
|
||||
SendHarkonnenReinforcements(DateTime.Seconds(30), 1)
|
||||
SendHarkonnenReinforcements(DateTime.Seconds(35), 2)
|
||||
|
||||
local ordosCondition = function() return player.IsObjectiveCompleted(KillOrdos) end
|
||||
TriggerCarryallReinforcements(player, ordos_main, BaseAreaTriggers[1], OrdosHunters[1], OrdosHunterPaths[3], ordosCondition)
|
||||
TriggerCarryallReinforcements(player, ordos_main, BaseAreaTriggers[2], OrdosHunters[2], OrdosHunterPaths[2], ordosCondition)
|
||||
end
|
||||
BIN
mods/d2k/maps/harkonnen-05/map.bin
Normal file
BIN
mods/d2k/maps/harkonnen-05/map.bin
Normal file
Binary file not shown.
BIN
mods/d2k/maps/harkonnen-05/map.png
Normal file
BIN
mods/d2k/maps/harkonnen-05/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 291 KiB |
515
mods/d2k/maps/harkonnen-05/map.yaml
Normal file
515
mods/d2k/maps/harkonnen-05/map.yaml
Normal file
@@ -0,0 +1,515 @@
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
Title: Harkonnen 05
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: ARRAKIS
|
||||
|
||||
MapSize: 74,84
|
||||
|
||||
Bounds: 2,2,70,80
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
PlayerReference@Creeps:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
Enemies: Harkonnen, Ordos Main Base, Ordos Small Base, Corrino
|
||||
PlayerReference@Harkonnen:
|
||||
Name: Harkonnen
|
||||
Playable: True
|
||||
LockFaction: True
|
||||
Faction: harkonnen
|
||||
LockColor: True
|
||||
Color: FE0000
|
||||
Enemies: Ordos Main Base, Ordos Small Base, Corrino, Creeps
|
||||
PlayerReference@Ordos Main Base:
|
||||
Name: Ordos Main Base
|
||||
LockFaction: True
|
||||
Faction: ordos
|
||||
LockColor: True
|
||||
Color: B3EAA5
|
||||
Allies: Ordos Small Base, Corrino
|
||||
Enemies: Harkonnen
|
||||
PlayerReference@Ordos Small Base:
|
||||
Name: Ordos Small Base
|
||||
LockFaction: True
|
||||
Faction: ordos
|
||||
LockColor: True
|
||||
Color: B3EAA5
|
||||
Allies: Ordos Main Base, Corrino
|
||||
Enemies: Harkonnen
|
||||
PlayerReference@Corrino:
|
||||
Name: Corrino
|
||||
LockFaction: True
|
||||
Faction: corrino
|
||||
LockColor: True
|
||||
Color: 7D00FE
|
||||
Allies: Ordos Main Base, Ordos Small Base
|
||||
Enemies: Harkonnen
|
||||
|
||||
Actors:
|
||||
Actor0: wall
|
||||
Location: 69,10
|
||||
Owner: Ordos Main Base
|
||||
Actor1: wall
|
||||
Location: 70,10
|
||||
Owner: Ordos Main Base
|
||||
Actor2: wall
|
||||
Location: 71,10
|
||||
Owner: Ordos Main Base
|
||||
Actor3: wall
|
||||
Location: 64,11
|
||||
Owner: Ordos Main Base
|
||||
Actor4: wall
|
||||
Location: 65,11
|
||||
Owner: Ordos Main Base
|
||||
Actor5: wall
|
||||
Location: 66,11
|
||||
Owner: Ordos Main Base
|
||||
Actor6: wall
|
||||
Location: 67,11
|
||||
Owner: Ordos Main Base
|
||||
Actor7: wall
|
||||
Location: 68,11
|
||||
Owner: Ordos Main Base
|
||||
Actor8: wall
|
||||
Location: 69,11
|
||||
Owner: Ordos Main Base
|
||||
OGunt1: medium_gun_turret
|
||||
Location: 59,13
|
||||
Owner: Ordos Main Base
|
||||
CSardaukar1: sardaukar
|
||||
Location: 69,13
|
||||
Owner: Corrino
|
||||
CSardaukar2: sardaukar
|
||||
Location: 70,13
|
||||
Owner: Corrino
|
||||
Actor12: spicebloom.spawnpoint
|
||||
Location: 32,14
|
||||
Owner: Neutral
|
||||
Actor13: wall
|
||||
Location: 59,14
|
||||
Owner: Ordos Main Base
|
||||
CStarport: starport
|
||||
Location: 67,14
|
||||
Owner: Corrino
|
||||
Actor15: wall
|
||||
Location: 59,15
|
||||
Owner: Ordos Main Base
|
||||
OHeavyFactory: heavy_factory
|
||||
Location: 61,15
|
||||
Owner: Ordos Main Base
|
||||
CSardaukar3: sardaukar
|
||||
Location: 65,15
|
||||
Owner: Corrino
|
||||
CSardaukar4: sardaukar
|
||||
Location: 71,15
|
||||
Owner: Corrino
|
||||
Actor19: wall
|
||||
Location: 59,16
|
||||
Owner: Ordos Main Base
|
||||
Actor20: wall
|
||||
Location: 59,17
|
||||
Owner: Ordos Main Base
|
||||
CSardaukar5: sardaukar
|
||||
Location: 66,17
|
||||
Owner: Corrino
|
||||
Actor22: wall
|
||||
Location: 57,18
|
||||
Owner: Ordos Main Base
|
||||
Actor23: wall
|
||||
Location: 58,18
|
||||
Owner: Ordos Main Base
|
||||
Actor24: wall
|
||||
Location: 59,18
|
||||
Owner: Ordos Main Base
|
||||
Actor25: light_inf
|
||||
Location: 65,18
|
||||
Owner: Ordos Main Base
|
||||
CPower1: wind_trap
|
||||
Location: 67,18
|
||||
Owner: Corrino
|
||||
CPower2: wind_trap
|
||||
Location: 69,18
|
||||
Owner: Corrino
|
||||
Actor28: wind_trap
|
||||
Location: 4,19
|
||||
Owner: Harkonnen
|
||||
Actor29: spicebloom.spawnpoint
|
||||
Location: 47,19
|
||||
Owner: Neutral
|
||||
OOutpost: outpost
|
||||
Location: 58,19
|
||||
Owner: Ordos Main Base
|
||||
OConYard: construction_yard
|
||||
Location: 63,19
|
||||
Owner: Ordos Main Base
|
||||
Actor32: light_inf
|
||||
Location: 3,20
|
||||
Owner: Harkonnen
|
||||
Actor33: light_inf
|
||||
Location: 6,20
|
||||
Owner: Harkonnen
|
||||
OPower1: wind_trap
|
||||
Location: 55,20
|
||||
Owner: Ordos Main Base
|
||||
Actor35: trooper
|
||||
Location: 61,20
|
||||
Owner: Ordos Main Base
|
||||
Actor36: combat_tank_h
|
||||
Location: 7,21
|
||||
Owner: Harkonnen
|
||||
ORefinery1: refinery
|
||||
Location: 68,21
|
||||
Owner: Ordos Main Base
|
||||
HConYard: construction_yard
|
||||
Location: 4,23
|
||||
Owner: Harkonnen
|
||||
Actor39: wind_trap
|
||||
Location: 8,23
|
||||
Owner: Harkonnen
|
||||
OLightFactory1: light_factory
|
||||
Location: 57,23
|
||||
Owner: Ordos Main Base
|
||||
OPower2: wind_trap
|
||||
Location: 61,23
|
||||
Owner: Ordos Main Base
|
||||
OBarracks1: barracks
|
||||
Location: 63,23
|
||||
Owner: Ordos Main Base
|
||||
OPower3: wind_trap
|
||||
Location: 67,24
|
||||
Owner: Ordos Main Base
|
||||
OPower4: wind_trap
|
||||
Location: 69,24
|
||||
Owner: Ordos Main Base
|
||||
OPower5: wind_trap
|
||||
Location: 54,26
|
||||
Owner: Ordos Main Base
|
||||
Actor46: light_inf
|
||||
Location: 8,27
|
||||
Owner: Harkonnen
|
||||
Actor47: spicebloom.spawnpoint
|
||||
Location: 19,27
|
||||
Owner: Neutral
|
||||
OHiTechFactory: high_tech_factory
|
||||
Location: 57,27
|
||||
Owner: Ordos Main Base
|
||||
Actor49: trooper
|
||||
Location: 61,27
|
||||
Owner: Ordos Main Base
|
||||
ORefinery2: refinery
|
||||
Location: 63,27
|
||||
Owner: Ordos Main Base
|
||||
Actor51: carryall
|
||||
Location: 66,27
|
||||
Owner: Ordos Main Base
|
||||
Actor52: light_inf
|
||||
Location: 6,28
|
||||
Owner: Harkonnen
|
||||
OPower6: wind_trap
|
||||
Location: 67,28
|
||||
Owner: Ordos Main Base
|
||||
OPower7: wind_trap
|
||||
Location: 69,28
|
||||
Owner: Ordos Main Base
|
||||
Actor55: light_inf
|
||||
Location: 3,29
|
||||
Owner: Harkonnen
|
||||
Actor56: harvester
|
||||
Location: 65,30
|
||||
Owner: Ordos Main Base
|
||||
OBarracks2: barracks
|
||||
Location: 57,31
|
||||
Owner: Ordos Main Base
|
||||
Actor58: combat_tank_o
|
||||
Location: 61,31
|
||||
Owner: Ordos Main Base
|
||||
Actor59: light_inf
|
||||
Location: 63,31
|
||||
Owner: Ordos Main Base
|
||||
OPower8: wind_trap
|
||||
Location: 67,31
|
||||
Owner: Ordos Main Base
|
||||
OPower9: wind_trap
|
||||
Location: 69,31
|
||||
Owner: Ordos Main Base
|
||||
Actor62: wormspawner
|
||||
Location: 48,33
|
||||
Owner: Creeps
|
||||
Actor63: combat_tank_o
|
||||
Location: 59,33
|
||||
Owner: Ordos Main Base
|
||||
Actor64: combat_tank_o
|
||||
Location: 66,33
|
||||
Owner: Ordos Main Base
|
||||
Actor65: wall
|
||||
Location: 57,35
|
||||
Owner: Ordos Main Base
|
||||
Actor66: wall
|
||||
Location: 58,35
|
||||
Owner: Ordos Main Base
|
||||
Actor67: wall
|
||||
Location: 59,35
|
||||
Owner: Ordos Main Base
|
||||
Actor68: wall
|
||||
Location: 60,35
|
||||
Owner: Ordos Main Base
|
||||
OGunt2: medium_gun_turret
|
||||
Location: 61,35
|
||||
Owner: Ordos Main Base
|
||||
Actor70: combat_tank_o
|
||||
Location: 64,35
|
||||
Owner: Ordos Main Base
|
||||
OGunt3: medium_gun_turret
|
||||
Location: 66,35
|
||||
Owner: Ordos Main Base
|
||||
Actor72: wall
|
||||
Location: 67,35
|
||||
Owner: Ordos Main Base
|
||||
Actor73: wall
|
||||
Location: 68,35
|
||||
Owner: Ordos Main Base
|
||||
Actor74: wall
|
||||
Location: 69,35
|
||||
Owner: Ordos Main Base
|
||||
Actor75: wall
|
||||
Location: 70,35
|
||||
Owner: Ordos Main Base
|
||||
Actor76: wall
|
||||
Location: 57,36
|
||||
Owner: Ordos Main Base
|
||||
Actor77: wall
|
||||
Location: 70,36
|
||||
Owner: Ordos Main Base
|
||||
Actor78: wall
|
||||
Location: 57,37
|
||||
Owner: Ordos Main Base
|
||||
Actor79: wall
|
||||
Location: 70,37
|
||||
Owner: Ordos Main Base
|
||||
Actor80: wall
|
||||
Location: 71,37
|
||||
Owner: Ordos Main Base
|
||||
Actor81: spicebloom.spawnpoint
|
||||
Location: 25,38
|
||||
Owner: Neutral
|
||||
OGunt4: medium_gun_turret
|
||||
Location: 56,38
|
||||
Owner: Ordos Main Base
|
||||
Actor83: wall
|
||||
Location: 57,38
|
||||
Owner: Ordos Main Base
|
||||
Actor84: wall
|
||||
Location: 10,43
|
||||
Owner: Harkonnen
|
||||
Actor85: wall
|
||||
Location: 12,43
|
||||
Owner: Harkonnen
|
||||
Actor86: wall
|
||||
Location: 10,44
|
||||
Owner: Harkonnen
|
||||
Actor87: medium_gun_turret
|
||||
Location: 11,44
|
||||
Owner: Harkonnen
|
||||
Actor88: wall
|
||||
Location: 12,44
|
||||
Owner: Harkonnen
|
||||
Actor89: spicebloom.spawnpoint
|
||||
Location: 22,45
|
||||
Owner: Neutral
|
||||
Actor90: spicebloom.spawnpoint
|
||||
Location: 63,45
|
||||
Owner: Neutral
|
||||
Actor91: wall
|
||||
Location: 5,47
|
||||
Owner: Harkonnen
|
||||
Actor92: wall
|
||||
Location: 6,47
|
||||
Owner: Harkonnen
|
||||
Actor93: medium_gun_turret
|
||||
Location: 6,48
|
||||
Owner: Harkonnen
|
||||
Actor94: spicebloom.spawnpoint
|
||||
Location: 27,48
|
||||
Owner: Neutral
|
||||
Actor95: wall
|
||||
Location: 5,49
|
||||
Owner: Harkonnen
|
||||
Actor96: wall
|
||||
Location: 6,49
|
||||
Owner: Harkonnen
|
||||
Actor97: spicebloom.spawnpoint
|
||||
Location: 32,56
|
||||
Owner: Neutral
|
||||
Actor98: spicebloom.spawnpoint
|
||||
Location: 66,62
|
||||
Owner: Neutral
|
||||
Actor99: spicebloom.spawnpoint
|
||||
Location: 41,64
|
||||
Owner: Neutral
|
||||
Actor100: spicebloom.spawnpoint
|
||||
Location: 38,66
|
||||
Owner: Neutral
|
||||
Actor101: spicebloom.spawnpoint
|
||||
Location: 5,69
|
||||
Owner: Neutral
|
||||
OSilo: silo
|
||||
Location: 13,72
|
||||
Owner: Ordos Small Base
|
||||
OPower10: wind_trap
|
||||
Location: 15,72
|
||||
Owner: Ordos Small Base
|
||||
OLightFactory2: light_factory
|
||||
Location: 11,74
|
||||
Owner: Ordos Small Base
|
||||
OPower11: wind_trap
|
||||
Location: 15,75
|
||||
Owner: Ordos Small Base
|
||||
OGunt5: medium_gun_turret
|
||||
Location: 9,76
|
||||
Owner: Ordos Small Base
|
||||
Actor107: wall
|
||||
Location: 10,76
|
||||
Owner: Ordos Small Base
|
||||
Actor108: wall
|
||||
Location: 9,77
|
||||
Owner: Ordos Small Base
|
||||
OBarracks3: barracks
|
||||
Location: 7,78
|
||||
Owner: Ordos Small Base
|
||||
ORefinery3: refinery
|
||||
Location: 10,78
|
||||
Owner: Ordos Small Base
|
||||
Actor111: carryall
|
||||
Location: 13,78
|
||||
Owner: Ordos Small Base
|
||||
OPower12: wind_trap
|
||||
Location: 14,78
|
||||
Owner: Ordos Small Base
|
||||
OPower13: wind_trap
|
||||
Location: 16,78
|
||||
Owner: Ordos Small Base
|
||||
Actor114: wall
|
||||
Location: 19,78
|
||||
Owner: Ordos Small Base
|
||||
Actor115: spicebloom.spawnpoint
|
||||
Location: 32,78
|
||||
Owner: Neutral
|
||||
OGunt6: medium_gun_turret
|
||||
Location: 19,79
|
||||
Owner: Ordos Small Base
|
||||
Actor117: harvester
|
||||
Location: 13,80
|
||||
Owner: Ordos Small Base
|
||||
Actor118: wall
|
||||
Location: 19,80
|
||||
Owner: Ordos Small Base
|
||||
OrdosRally10: waypoint
|
||||
Owner: Neutral
|
||||
Location: 4,78
|
||||
OrdosEntry10: waypoint
|
||||
Owner: Neutral
|
||||
Location: 4,81
|
||||
CorrinoStarportEntry: waypoint
|
||||
Owner: Neutral
|
||||
Location: 71,15
|
||||
CorrinoStarportExit: waypoint
|
||||
Owner: Neutral
|
||||
Location: 2,15
|
||||
OrdosRally8: waypoint
|
||||
Owner: Neutral
|
||||
Location: 63,36
|
||||
OrdosEntry8: waypoint
|
||||
Owner: Neutral
|
||||
Location: 71,34
|
||||
OrdosRally9: waypoint
|
||||
Owner: Neutral
|
||||
Location: 63,33
|
||||
OrdosEntry9: waypoint
|
||||
Owner: Neutral
|
||||
Location: 71,30
|
||||
OrdosRally11: waypoint
|
||||
Owner: Neutral
|
||||
Location: 69,76
|
||||
OrdosEntry11: waypoint
|
||||
Owner: Neutral
|
||||
Location: 71,76
|
||||
HOutpost: outpost
|
||||
Owner: Harkonnen
|
||||
Location: 6,40
|
||||
OrdosRally12: waypoint
|
||||
Owner: Neutral
|
||||
Location: 28,80
|
||||
OrdosEntry12: waypoint
|
||||
Owner: Neutral
|
||||
Location: 28,81
|
||||
OrdosRally1: waypoint
|
||||
Owner: Neutral
|
||||
Location: 29,67
|
||||
OrdosEntry1: waypoint
|
||||
Owner: Neutral
|
||||
Location: 29,81
|
||||
OrdosRally2: waypoint
|
||||
Owner: Neutral
|
||||
Location: 7,67
|
||||
OrdosEntry2: waypoint
|
||||
Owner: Neutral
|
||||
Location: 2,67
|
||||
OrdosRally3: waypoint
|
||||
Owner: Neutral
|
||||
Location: 14,65
|
||||
OrdosEntry3: waypoint
|
||||
Owner: Neutral
|
||||
Location: 2,65
|
||||
OrdosRally4: waypoint
|
||||
Owner: Neutral
|
||||
Location: 32,58
|
||||
OrdosEntry4: waypoint
|
||||
Owner: Neutral
|
||||
Location: 2,58
|
||||
OrdosRally5: waypoint
|
||||
Owner: Neutral
|
||||
Location: 22,30
|
||||
OrdosEntry5: waypoint
|
||||
Owner: Neutral
|
||||
Location: 22,2
|
||||
OrdosRally6: waypoint
|
||||
Owner: Neutral
|
||||
Location: 30,8
|
||||
OrdosEntry6: waypoint
|
||||
Owner: Neutral
|
||||
Location: 30,2
|
||||
OrdosRally7: waypoint
|
||||
Owner: Neutral
|
||||
Location: 31,4
|
||||
OrdosEntry7: waypoint
|
||||
Owner: Neutral
|
||||
Location: 31,2
|
||||
HarkonnenRally1: waypoint
|
||||
Owner: Neutral
|
||||
Location: 11,19
|
||||
HarkonnenEntry1: waypoint
|
||||
Owner: Neutral
|
||||
Location: 2,19
|
||||
HarkonnenRally2: waypoint
|
||||
Owner: Neutral
|
||||
Location: 4,29
|
||||
HarkonnenEntry2: waypoint
|
||||
Owner: Neutral
|
||||
Location: 2,29
|
||||
|
||||
Rules: d2k|rules/campaign-rules.yaml, d2k|rules/campaign-palettes.yaml, rules.yaml
|
||||
76
mods/d2k/maps/harkonnen-05/rules.yaml
Normal file
76
mods/d2k/maps/harkonnen-05/rules.yaml
Normal file
@@ -0,0 +1,76 @@
|
||||
Player:
|
||||
PlayerResources:
|
||||
DefaultCash: 6000
|
||||
|
||||
World:
|
||||
LuaScript:
|
||||
Scripts: campaign-global.lua, harkonnen05.lua, harkonnen05-AI.lua
|
||||
MissionData:
|
||||
Briefing: Protect the Outpost at Habbanya to prevent Imperial interference. Rush ground troops through the mountain passes and secure our Outpost. Once this is done, turn on the Ordos and crush them.
|
||||
BriefingVideo: H_BR05_E.VQA
|
||||
MapOptions:
|
||||
TechLevel: medium
|
||||
ScriptLobbyDropdown@difficulty:
|
||||
ID: difficulty
|
||||
Label: Difficulty
|
||||
Values:
|
||||
easy: Easy
|
||||
normal: Normal
|
||||
hard: Hard
|
||||
Default: easy
|
||||
|
||||
^Palettes:
|
||||
IndexedPlayerPalette:
|
||||
PlayerIndex:
|
||||
Ordos Main Base: 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160
|
||||
Ordos Small Base: 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160
|
||||
|
||||
carryall.reinforce:
|
||||
Cargo:
|
||||
MaxWeight: 25
|
||||
|
||||
frigate:
|
||||
Aircraft:
|
||||
LandableTerrainTypes: Sand, Rock, Transition, Spice, SpiceSand, Dune, Concrete
|
||||
VTOL: true # The frigate would teleport to land otherwise
|
||||
|
||||
concreteb:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
large_gun_turret:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
research_centre:
|
||||
Buildable:
|
||||
Prerequisites: outpost, heavy_factory, upgrade.heavy
|
||||
|
||||
missile_tank:
|
||||
Buildable:
|
||||
Prerequisites: ~heavy.missiletank, upgrade.heavy, research_centre
|
||||
|
||||
siege_tank:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
sardaukar:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
stealth_raider:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
upgrade.conyard:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
outpost:
|
||||
ExternalCondition@lua:
|
||||
Condition: modified
|
||||
Tooltip:
|
||||
RequiresCondition: !modified
|
||||
Tooltip@Modified:
|
||||
Name: Modified Outpost
|
||||
RequiresCondition: modified
|
||||
@@ -25,5 +25,6 @@ Harkonnen Campaign:
|
||||
./mods/d2k/maps/harkonnen-03a
|
||||
./mods/d2k/maps/harkonnen-03b
|
||||
./mods/d2k/maps/harkonnen-04
|
||||
./mods/d2k/maps/harkonnen-05
|
||||
./mods/d2k/maps/harkonnen-06a
|
||||
./mods/d2k/maps/harkonnen-06b
|
||||
|
||||
Reference in New Issue
Block a user