Merge pull request #9512 from abcdefg30/atreides02b

Add atreides02b
This commit is contained in:
Oliver Brakmann
2015-10-18 20:07:18 +02:00
10 changed files with 354 additions and 9 deletions

View File

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

View File

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

View File

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

View File

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

View 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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

View 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:

View File

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