Add Harkonnen 5

This commit is contained in:
Mustafa Alperen Seki
2017-10-15 19:26:59 +03:00
committed by reaperrr
parent b898b5001a
commit 15b77f8d91
8 changed files with 928 additions and 0 deletions

View File

@@ -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

View 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

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

View 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

View 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

View File

@@ -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