Add atreides02b

This commit is contained in:
abcdefg30
2015-10-03 12:54:45 +02:00
parent 742aa01284
commit 4cc73ab9a7
5 changed files with 340 additions and 0 deletions

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,211 @@
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
PlayerReference@Atreides:
Name: Atreides
Playable: True
LockFaction: True
Faction: atreides
LockColor: True
ColorRamp: 170,255,200
Enemies: Harkonnen
PlayerReference@Harkonnen:
Name: Harkonnen
LockFaction: True
Faction: harkonnen
LockColor: True
ColorRamp: 0,255,127
Enemies: Atreides
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