@@ -82,6 +82,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dune 2000 Lua scripts", "Du
|
||||
mods\d2k\maps\atreides-01a\atreides01a.lua = mods\d2k\maps\atreides-01a\atreides01a.lua
|
||||
mods\d2k\maps\atreides-01b\atreides01b.lua = mods\d2k\maps\atreides-01b\atreides01b.lua
|
||||
mods\d2k\maps\atreides-02a\atreides02a.lua = mods\d2k\maps\atreides-02a\atreides02a.lua
|
||||
mods\d2k\maps\atreides-02b\atreides02b.lua = mods\d2k\maps\atreides-02b\atreides02b.lua
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System Lua scripts", "System Lua scripts", "{A4D6AEA4-8009-4256-903B-8D227E50452B}"
|
||||
|
||||
@@ -4,7 +4,7 @@ RequiresMod: d2k
|
||||
|
||||
Title: Atreides 01a
|
||||
|
||||
Description: Harvest Spice from the Imperial Basin. Construct a Spice Refinery and defend it against the Harkonnen troops scattered throughout the basin. You have been assigned only limited offensive forces - use them wisely.\n\nYou will have to learn the subtleties of mining as you go, but remember to build Silos to store the Spice. When you run out of storage space you can not gather more Spice. Also, any building without adequate concrete foundation will need immediate repair and be vulnerable to erosive damage from the harsh environment. Your greatest adversary may be the elements. Good luck.\n
|
||||
Description: Harvest Spice from the Imperial Basin. Construct a Spice Refinery and defend it against the Harkonnen troops scattered throughout the basin. You have been assigned only limited offensive forces - use them wisely.\n\nYou will have to learn the subtleties of mining as you go, but remember to build Silos to store the Spice. When you run out of storage space you can not gather more Spice. Also, any building without adequate concrete foundation will need immediate repair and be vulnerable to erosive damage from the harsh environment. Your greatest adversary may be the elements.\n\nGood luck.\n
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
@@ -44,6 +44,7 @@ Players:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
Faction: Random
|
||||
Enemies: Atreides, Harkonnen
|
||||
PlayerReference@Atreides:
|
||||
Name: Atreides
|
||||
Playable: true
|
||||
@@ -51,14 +52,14 @@ Players:
|
||||
LockFaction: true
|
||||
ColorRamp: 170,255,200
|
||||
LockColor: true
|
||||
Enemies: Harkonnen
|
||||
Enemies: Harkonnen, Creeps
|
||||
PlayerReference@Harkonnen:
|
||||
Name: Harkonnen
|
||||
Faction: harkonnen
|
||||
LockFaction: true
|
||||
ColorRamp: 0,255,127
|
||||
LockColor: true
|
||||
Enemies: Atreides
|
||||
Enemies: Atreides, Creeps
|
||||
|
||||
Actors:
|
||||
Actor0: trike
|
||||
|
||||
@@ -4,7 +4,7 @@ RequiresMod: d2k
|
||||
|
||||
Title: Atreides 01b
|
||||
|
||||
Description: Harvest Spice from the Imperial Basin. Construct a Spice Refinery and defend it against the Harkonnen troops scattered throughout the basin. You have been assigned only limited offensive forces - use them wisely.\n\nYou will have to learn the subtleties of mining as you go, but remember to build Silos to store the Spice. When you run out of storage space you can not gather more Spice. Also, any building without adequate concrete foundation will need immediate repair and be vulnerable to erosive damage from the harsh environment. Your greatest adversary may be the elements. Good luck.\n
|
||||
Description: Harvest Spice from the Imperial Basin. Construct a Spice Refinery and defend it against the Harkonnen troops scattered throughout the basin. You have been assigned only limited offensive forces - use them wisely.\n\nYou will have to learn the subtleties of mining as you go, but remember to build Silos to store the Spice. When you run out of storage space you can not gather more Spice. Also, any building without adequate concrete foundation will need immediate repair and be vulnerable to erosive damage from the harsh environment. Your greatest adversary may be the elements.\n\nGood luck.\n
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
@@ -44,6 +44,7 @@ Players:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
Faction: Random
|
||||
Enemies: Atreides, Harkonnen
|
||||
PlayerReference@Atreides:
|
||||
Name: Atreides
|
||||
Playable: true
|
||||
@@ -51,14 +52,14 @@ Players:
|
||||
LockFaction: true
|
||||
ColorRamp: 170,255,200
|
||||
LockColor: true
|
||||
Enemies: Harkonnen
|
||||
Enemies: Harkonnen, Creeps
|
||||
PlayerReference@Harkonnen:
|
||||
Name: Harkonnen
|
||||
Faction: harkonnen
|
||||
LockFaction: true
|
||||
ColorRamp: 0,255,127
|
||||
LockColor: true
|
||||
Enemies: Atreides
|
||||
Enemies: Atreides, Creeps
|
||||
|
||||
Actors:
|
||||
Actor0: light_inf
|
||||
|
||||
Binary file not shown.
@@ -4,7 +4,7 @@ RequiresMod: d2k
|
||||
|
||||
Title: Atreides 02a
|
||||
|
||||
Description: Infiltrate the Imperial Basin and build up our forces until they are strong enough to eradicate the local Harkonnen presence.\n\nThe Harkonnen are reinforcing their troops by air, so be on your guard. Use the Outpost's radar to detect attacks from unexpected quarters.\n\nBe careful when minig the Spice. Spice mounds grow out of the sand. While a vital source of Spice, Spice mounds can damage or destroy any unit that blunders into them.\n\nGood luck.\n
|
||||
Description: Infiltrate the Imperial Basin and build up our forces until they are strong enough to eradicate the local Harkonnen presence.\n\nThe Harkonnen are reinforcing their troops by air, so be on your guard. Use the Outpost's radar to detect attacks from unexpected quarters.\n\nBe careful when mining the Spice. Spice mounds grow out of the sand. While a vital source of Spice, Spice mounds can damage or destroy any unit that blunders into them.\n\nGood luck.\n
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
@@ -42,6 +42,7 @@ Players:
|
||||
PlayerReference@Creeps:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
Enemies: Atreides, Harkonnen
|
||||
PlayerReference@Atreides:
|
||||
Name: Atreides
|
||||
Playable: True
|
||||
@@ -49,14 +50,14 @@ Players:
|
||||
Faction: atreides
|
||||
LockColor: True
|
||||
ColorRamp: 170,255,200
|
||||
Enemies: Harkonnen
|
||||
Enemies: Harkonnen, Creeps
|
||||
PlayerReference@Harkonnen:
|
||||
Name: Harkonnen
|
||||
LockFaction: True
|
||||
Faction: harkonnen
|
||||
LockColor: True
|
||||
ColorRamp: 0,255,127
|
||||
Enemies: Atreides
|
||||
Enemies: Atreides, Creeps
|
||||
|
||||
Actors:
|
||||
Actor0: spicebloom
|
||||
|
||||
128
mods/d2k/maps/atreides-02b/atreides02b.lua
Normal file
128
mods/d2k/maps/atreides-02b/atreides02b.lua
Normal file
@@ -0,0 +1,128 @@
|
||||
|
||||
HarkonnenBase = { HConyard, HOutpost, HBarracks }
|
||||
|
||||
HarkonnenReinforcements = { }
|
||||
HarkonnenReinforcements["Easy"] =
|
||||
{
|
||||
{ "light_inf", "trike" },
|
||||
{ "light_inf", "trike" },
|
||||
{ "light_inf", "light_inf", "light_inf", "trike", "trike" }
|
||||
}
|
||||
|
||||
HarkonnenReinforcements["Normal"] =
|
||||
{
|
||||
{ "light_inf", "trike" },
|
||||
{ "light_inf", "trike" },
|
||||
{ "light_inf", "light_inf", "light_inf", "trike", "trike" },
|
||||
{ "light_inf", "light_inf" },
|
||||
{ "light_inf", "light_inf", "light_inf" },
|
||||
{ "light_inf", "trike" },
|
||||
}
|
||||
|
||||
HarkonnenReinforcements["Hard"] =
|
||||
{
|
||||
{ "trike", "trike" },
|
||||
{ "light_inf", "trike" },
|
||||
{ "light_inf", "trike" },
|
||||
{ "light_inf", "light_inf", "light_inf", "trike", "trike" },
|
||||
{ "light_inf", "light_inf" },
|
||||
{ "trike", "trike" },
|
||||
{ "light_inf", "light_inf", "light_inf" },
|
||||
{ "light_inf", "trike" },
|
||||
{ "trike", "trike" }
|
||||
}
|
||||
|
||||
HarkonnenAttackPaths =
|
||||
{
|
||||
{ HarkonnenEntry1.Location, HarkonnenRally1.Location },
|
||||
{ HarkonnenEntry1.Location, HarkonnenRally3.Location },
|
||||
{ HarkonnenEntry2.Location, HarkonnenRally2.Location },
|
||||
{ HarkonnenEntry2.Location, HarkonnenRally4.Location }
|
||||
}
|
||||
|
||||
HarkonnenAttackDelay =
|
||||
{
|
||||
Easy = DateTime.Minutes(5),
|
||||
Normal = DateTime.Minutes(2) + DateTime.Seconds(40),
|
||||
Hard = DateTime.Minutes(1) + DateTime.Seconds(20)
|
||||
}
|
||||
|
||||
HarkonnenAttackWaves =
|
||||
{
|
||||
Easy = 3,
|
||||
Normal = 6,
|
||||
Hard = 9
|
||||
}
|
||||
|
||||
wave = 0
|
||||
SendHarkonnen = function()
|
||||
Trigger.AfterDelay(HarkonnenAttackDelay[Map.Difficulty], function()
|
||||
wave = wave + 1
|
||||
if wave > HarkonnenAttackWaves[Map.Difficulty] then
|
||||
return
|
||||
end
|
||||
|
||||
local path = Utils.Random(HarkonnenAttackPaths)
|
||||
local units = Reinforcements.ReinforceWithTransport(harkonnen, "carryall.reinforce", HarkonnenReinforcements[Map.Difficulty][wave], path, { path[1] })[2]
|
||||
Utils.Do(units, IdleHunt)
|
||||
|
||||
SendHarkonnen()
|
||||
end)
|
||||
end
|
||||
|
||||
IdleHunt = function(unit)
|
||||
Trigger.OnIdle(unit, unit.Hunt)
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if player.HasNoRequiredUnits() then
|
||||
harkonnen.MarkCompletedObjective(KillAtreides)
|
||||
end
|
||||
|
||||
if harkonnen.HasNoRequiredUnits() and not player.IsObjectiveCompleted(KillHarkonnen) then
|
||||
Media.DisplayMessage("The Harkonnen have been anihilated!", "Mentat")
|
||||
player.MarkCompletedObjective(KillHarkonnen)
|
||||
end
|
||||
end
|
||||
|
||||
WorldLoaded = function()
|
||||
harkonnen = Player.GetPlayer("Harkonnen")
|
||||
player = Player.GetPlayer("Atreides")
|
||||
|
||||
InitObjectives()
|
||||
|
||||
Camera.Position = AConyard.CenterPosition
|
||||
|
||||
Trigger.OnAllKilled(HarkonnenBase, function()
|
||||
Utils.Do(harkonnen.GetGroundAttackers(), IdleHunt)
|
||||
end)
|
||||
|
||||
SendHarkonnen()
|
||||
end
|
||||
|
||||
InitObjectives = function()
|
||||
Trigger.OnObjectiveAdded(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
|
||||
end)
|
||||
|
||||
KillAtreides = harkonnen.AddPrimaryObjective("Kill all Atreides units.")
|
||||
KillHarkonnen = player.AddPrimaryObjective("Destroy all Harkonnen forces.")
|
||||
|
||||
Trigger.OnObjectiveCompleted(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
|
||||
end)
|
||||
Trigger.OnObjectiveFailed(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
|
||||
end)
|
||||
|
||||
Trigger.OnPlayerLost(player, function()
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
Media.PlaySpeechNotification(player, "Lose")
|
||||
end)
|
||||
end)
|
||||
Trigger.OnPlayerWon(player, function()
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
Media.PlaySpeechNotification(player, "Win")
|
||||
end)
|
||||
end)
|
||||
end
|
||||
BIN
mods/d2k/maps/atreides-02b/map.bin
Normal file
BIN
mods/d2k/maps/atreides-02b/map.bin
Normal file
Binary file not shown.
BIN
mods/d2k/maps/atreides-02b/map.png
Normal file
BIN
mods/d2k/maps/atreides-02b/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 169 KiB |
212
mods/d2k/maps/atreides-02b/map.yaml
Normal file
212
mods/d2k/maps/atreides-02b/map.yaml
Normal file
@@ -0,0 +1,212 @@
|
||||
MapFormat: 7
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
Title: Atreides 02b
|
||||
|
||||
Description: Infiltrate the Imperial Basin and build up our forces until they are strong enough to eradicate the local Harkonnen presence.\n\nThe Harkonnen are reinforcing their troops by air, so be on your guard. Use the Outpost's radar to detect attacks from unexpected quarters.\n\nBe careful when mining the Spice. Spice mounds grow out of the sand. While a vital source of Spice, Spice mounds can damage or destroy any unit that blunders into them.\n\nGood luck.\n
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: ARRAKIS
|
||||
|
||||
MapSize: 52,52
|
||||
|
||||
Bounds: 2,2,48,48
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
|
||||
Videos:
|
||||
Briefing: a_br02_e.vqa
|
||||
|
||||
Options:
|
||||
Crates: False
|
||||
Creeps: True
|
||||
Fog: True
|
||||
Shroud: True
|
||||
AllyBuildRadius: False
|
||||
FragileAlliances: False
|
||||
StartingCash: 5000
|
||||
TechLevel: Low
|
||||
ConfigurableStartingUnits: False
|
||||
Difficulties: Easy, Normal, Hard
|
||||
ShortGame: False
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
PlayerReference@Creeps:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
Enemies: Atreides, Harkonnen
|
||||
PlayerReference@Atreides:
|
||||
Name: Atreides
|
||||
Playable: True
|
||||
LockFaction: True
|
||||
Faction: atreides
|
||||
LockColor: True
|
||||
ColorRamp: 170,255,200
|
||||
Enemies: Harkonnen, Creeps
|
||||
PlayerReference@Harkonnen:
|
||||
Name: Harkonnen
|
||||
LockFaction: True
|
||||
Faction: harkonnen
|
||||
LockColor: True
|
||||
ColorRamp: 0,255,127
|
||||
Enemies: Atreides, Creeps
|
||||
|
||||
Actors:
|
||||
Actor0: light_inf
|
||||
Location: 26,8
|
||||
Owner: Atreides
|
||||
Actor1: trike
|
||||
Location: 28,8
|
||||
Owner: Atreides
|
||||
Actor2: trike
|
||||
Location: 30,8
|
||||
Owner: Atreides
|
||||
Actor3: light_inf
|
||||
Location: 24,10
|
||||
Owner: Atreides
|
||||
Actor5: trike
|
||||
Location: 31,11
|
||||
Owner: Atreides
|
||||
Actor6: light_inf
|
||||
Location: 47,11
|
||||
Owner: Harkonnen
|
||||
Actor7: light_inf
|
||||
Location: 25,12
|
||||
Owner: Atreides
|
||||
Actor8: light_inf
|
||||
Location: 8,14
|
||||
Owner: Harkonnen
|
||||
Actor9: light_inf
|
||||
Location: 27,14
|
||||
Owner: Atreides
|
||||
Actor10: wormspawner
|
||||
Location: 40,17
|
||||
Owner: Creeps
|
||||
Actor11: light_inf
|
||||
Location: 40,33
|
||||
Owner: Harkonnen
|
||||
Actor12: trike
|
||||
Location: 14,39
|
||||
Owner: Harkonnen
|
||||
Actor13: light_inf
|
||||
Location: 16,39
|
||||
Owner: Harkonnen
|
||||
Actor14: trike
|
||||
Location: 18,39
|
||||
Owner: Harkonnen
|
||||
Actor16: trike
|
||||
Location: 16,41
|
||||
Owner: Harkonnen
|
||||
Actor17: light_inf
|
||||
Location: 9,42
|
||||
Owner: Harkonnen
|
||||
Actor20: light_inf
|
||||
Location: 11,44
|
||||
Owner: Harkonnen
|
||||
Actor21: trike
|
||||
Location: 12,46
|
||||
Owner: Harkonnen
|
||||
Actor22: light_inf
|
||||
Location: 18,46
|
||||
Owner: Harkonnen
|
||||
Actor23: light_inf
|
||||
Location: 21,46
|
||||
Owner: Harkonnen
|
||||
Actor24: trike
|
||||
Location: 16,48
|
||||
Owner: Harkonnen
|
||||
HConyard: construction_yard
|
||||
Location: 14,42
|
||||
Owner: Harkonnen
|
||||
HOutpost: outpostnopower
|
||||
Location: 11,40
|
||||
Owner: Harkonnen
|
||||
HBarracks: barracks
|
||||
Location: 18,42
|
||||
Owner: Harkonnen
|
||||
AConyard: construction_yard
|
||||
Location: 27,10
|
||||
Owner: Atreides
|
||||
HarkonnenEntry1: waypoint
|
||||
Owner: Neutral
|
||||
Location: 2,22
|
||||
HarkonnenEntry2: waypoint
|
||||
Owner: Neutral
|
||||
Location: 49,33
|
||||
HarkonnenRally1: waypoint
|
||||
Owner: Neutral
|
||||
Location: 12,7
|
||||
HarkonnenRally2: waypoint
|
||||
Owner: Neutral
|
||||
Location: 36,15
|
||||
HarkonnenRally3: waypoint
|
||||
Owner: Neutral
|
||||
Location: 18,17
|
||||
HarkonnenRally4: waypoint
|
||||
Owner: Neutral
|
||||
Location: 30,28
|
||||
|
||||
Smudges:
|
||||
|
||||
Rules:
|
||||
Player:
|
||||
-ConquestVictoryConditions:
|
||||
MissionObjectives:
|
||||
EarlyGameOver: true
|
||||
World:
|
||||
-CrateSpawner:
|
||||
-SpawnMPUnits:
|
||||
-MPStartLocations:
|
||||
LuaScript:
|
||||
Scripts: atreides02b.lua
|
||||
ObjectivesPanel:
|
||||
PanelName: MISSION_OBJECTIVES
|
||||
WormManager:
|
||||
Minimum: 1
|
||||
Maximum: 1
|
||||
carryall.reinforce:
|
||||
Cargo:
|
||||
MaxWeight: 10
|
||||
construction_yard:
|
||||
Production:
|
||||
Produces: Building
|
||||
concreteb:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
heavy_factory:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
medium_gun_turret:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
wall:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
outpost:
|
||||
Buildable:
|
||||
Prerequisites: barracks
|
||||
outpostnopower:
|
||||
Inherits: outpost
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
-RequiresPower:
|
||||
|
||||
Sequences:
|
||||
|
||||
VoxelSequences:
|
||||
|
||||
Weapons:
|
||||
|
||||
Voices:
|
||||
|
||||
Notifications:
|
||||
|
||||
Translations:
|
||||
@@ -2,3 +2,4 @@ Atreides Campaign:
|
||||
./mods/d2k/maps/atreides-01a
|
||||
./mods/d2k/maps/atreides-01b
|
||||
./mods/d2k/maps/atreides-02a
|
||||
./mods/d2k/maps/atreides-02b
|
||||
|
||||
Reference in New Issue
Block a user