Add secondary objective and difficulty levels to nod06b
This commit is contained in:
committed by
Matthias Mailänder
parent
f9a45130fa
commit
1d9ed31f7d
@@ -21,7 +21,6 @@ LockPreview: True
|
||||
Players:
|
||||
PlayerReference@GDI:
|
||||
Name: GDI
|
||||
Playable: False
|
||||
Faction: gdi
|
||||
Color: F5D378
|
||||
Enemies: Nod
|
||||
@@ -37,8 +36,8 @@ Players:
|
||||
Enemies: Nod
|
||||
PlayerReference@Nod:
|
||||
Name: Nod
|
||||
Playable: True
|
||||
AllowBots: False
|
||||
Playable: True
|
||||
Required: True
|
||||
LockFaction: True
|
||||
Faction: nod
|
||||
@@ -304,52 +303,52 @@ Actors:
|
||||
Actor85: nuke
|
||||
Location: 44,18
|
||||
Owner: GDI
|
||||
Actor86: v35
|
||||
Obj2Actor1: v35
|
||||
Location: 36,57
|
||||
Owner: Civilians
|
||||
Actor87: v34
|
||||
Obj2Actor2: v34
|
||||
Location: 34,56
|
||||
Owner: Civilians
|
||||
Actor88: v33
|
||||
Obj2Actor3: v33
|
||||
Location: 32,56
|
||||
Owner: Civilians
|
||||
Actor89: v30
|
||||
Obj2Actor4: v30
|
||||
Location: 36,51
|
||||
Owner: Civilians
|
||||
Actor90: v30
|
||||
Obj2Actor5: v30
|
||||
Location: 30,52
|
||||
Owner: Civilians
|
||||
Actor91: v29
|
||||
Obj2Actor6: v29
|
||||
Location: 36,52
|
||||
Owner: Civilians
|
||||
Actor92: v27
|
||||
Obj2Actor7: v27
|
||||
Location: 24,53
|
||||
Owner: Civilians
|
||||
Actor93: v27
|
||||
Obj2Actor8: v27
|
||||
Location: 25,53
|
||||
Owner: Civilians
|
||||
Actor94: v27
|
||||
Obj2Actor9: v27
|
||||
Location: 26,53
|
||||
Owner: Civilians
|
||||
Actor95: v26
|
||||
Obj2Actor10: v26
|
||||
Location: 31,53
|
||||
Owner: Civilians
|
||||
Actor96: v25
|
||||
Obj2Actor0: v25
|
||||
Location: 30,50
|
||||
Owner: Civilians
|
||||
Actor97: v24
|
||||
Obj2Actor11: v24
|
||||
Location: 29,52
|
||||
Owner: Civilians
|
||||
Actor98: v23
|
||||
Location: 32,57
|
||||
Owner: Civilians
|
||||
Actor99: v22
|
||||
Obj2Actor12: v22
|
||||
Location: 35,53
|
||||
Owner: Civilians
|
||||
Actor100: v21
|
||||
Obj2Actor13: v21
|
||||
Location: 25,57
|
||||
Owner: Civilians
|
||||
Actor101: v20
|
||||
Obj2Actor14: v20
|
||||
Location: 26,54
|
||||
Owner: Civilians
|
||||
Actor104: silo
|
||||
@@ -560,7 +559,7 @@ Actors:
|
||||
Location: 26,61
|
||||
Owner: Neutral
|
||||
Detonator: CRATE.plain
|
||||
Location: 47, 27
|
||||
Location: 47,27
|
||||
Owner: GDI
|
||||
Chn1Actor1: fact
|
||||
Location: 48,18
|
||||
@@ -585,5 +584,16 @@ Actors:
|
||||
Location: 17,36
|
||||
Owner: GDI
|
||||
SubCell: 1
|
||||
waypoint13: waypoint
|
||||
Owner: Neutral
|
||||
Location: 43,58
|
||||
Obj2UnitsEntry: waypoint
|
||||
Owner: Neutral
|
||||
Location: 45,61
|
||||
Actor169: mtnk
|
||||
Owner: GDI
|
||||
Location: 33,54
|
||||
Facing: 92
|
||||
TurretFacing: 92
|
||||
|
||||
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml
|
||||
|
||||
@@ -6,11 +6,36 @@
|
||||
the License, or (at your option) any later version. For more
|
||||
information, see COPYING.
|
||||
]]
|
||||
NodUnitsVehicle1 = { 'bggy', 'bggy', 'bike', 'bike', 'bike' }
|
||||
NodUnitsVehicle2 = { 'ltnk', 'ltnk', 'ltnk' }
|
||||
NodUnitsGunner = { 'e1', 'e1', 'e1', 'e1', 'e1', 'e1' }
|
||||
NodUnitsRocket = { 'e3', 'e3', 'e3', 'e3', 'e3', 'e3' }
|
||||
NodUnitsVehicle1 =
|
||||
{
|
||||
tough = { 'bggy', 'bike', 'bike' },
|
||||
hard = { 'bggy', 'bggy', 'bike', 'bike' },
|
||||
normal = { 'bggy', 'bggy', 'bike', 'bike', 'bike' },
|
||||
easy = { 'bggy', 'bggy', 'bggy', 'bike', 'bike', 'bike', 'bike' }
|
||||
}
|
||||
NodUnitsVehicle2 =
|
||||
{
|
||||
tough = { 'ltnk', 'ltnk' },
|
||||
hard = { 'ltnk', 'ltnk', 'ltnk' },
|
||||
normal = { 'ltnk', 'ltnk', 'ltnk', 'ltnk' },
|
||||
easy = { 'ltnk', 'ltnk', 'ltnk', 'ltnk', 'ltnk' }
|
||||
}
|
||||
NodUnitsGunner =
|
||||
{
|
||||
tough = { 'e1', 'e1', 'e1', 'e1' },
|
||||
hard = { 'e1', 'e1', 'e1', 'e1', 'e1' },
|
||||
normal = { 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e1' },
|
||||
easy = { 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e1', 'e1' }
|
||||
}
|
||||
NodUnitsRocket =
|
||||
{
|
||||
tough = { 'e3', 'e3', 'e3', 'e3' },
|
||||
hard = { 'e3', 'e3', 'e3', 'e3', 'e3' },
|
||||
normal = { 'e3', 'e3', 'e3', 'e3', 'e3', 'e3', 'e3' },
|
||||
easy = { 'e3', 'e3', 'e3', 'e3', 'e3', 'e3', 'e3', 'e3', 'e3', 'e3' }
|
||||
}
|
||||
Gdi1Units = { 'e1', 'e1', 'e2', 'e2', 'e2' }
|
||||
Obj2Units = { 'ftnk', 'e4', 'e4' }
|
||||
|
||||
HuntCellTriggerActivator = { CPos.New(61,34), CPos.New(60,34), CPos.New(59,34), CPos.New(58,34), CPos.New(57,34), CPos.New(56,34), CPos.New(55,34), CPos.New(61,33), CPos.New(60,33), CPos.New(59,33), CPos.New(58,33), CPos.New(57,33), CPos.New(56,33) }
|
||||
DzneCellTriggerActivator = { CPos.New(50,30), CPos.New(49,30), CPos.New(48,30), CPos.New(47,30), CPos.New(46,30), CPos.New(45,30), CPos.New(50,29), CPos.New(49,29), CPos.New(48,29), CPos.New(47,29), CPos.New(46,29), CPos.New(45,29), CPos.New(50,28), CPos.New(49,28), CPos.New(48,28), CPos.New(47,28), CPos.New(46,28), CPos.New(45,28), CPos.New(50,27), CPos.New(49,27), CPos.New(46,27), CPos.New(45,27), CPos.New(50,26), CPos.New(49,26), CPos.New(48,26), CPos.New(47,26), CPos.New(46,26), CPos.New(45,26), CPos.New(50,25), CPos.New(49,25), CPos.New(48,25), CPos.New(47,25), CPos.New(46,25), CPos.New(45,25) }
|
||||
@@ -22,6 +47,7 @@ Chn1ActorTriggerActivator = { Chn1Actor1, Chn1Actor2 }
|
||||
Chn2ActorTriggerActivator = { Chn2Actor1 }
|
||||
Atk1ActorTriggerActivator = { Atk1Actor1, Atk1Actor2 }
|
||||
Atk2ActorTriggerActivator = { Atk2Actor1, Atk2Actor2 }
|
||||
Obj2ActorTriggerActivator = { Obj2Actor0, Obj2Actor1, Obj2Actor2, Obj2Actor3, Obj2Actor4, Obj2Actor5, Obj2Actor6, Obj2Actor7, Obj2Actor8, Obj2Actor9, Obj2Actor10, Obj2Actor11, Obj2Actor12, Obj2Actor13, Obj2Actor14 }
|
||||
|
||||
Chn1Waypoints = { ChnEntry.Location, waypoint0.Location }
|
||||
Chn2Waypoints = { ChnEntry.Location, waypoint0.Location }
|
||||
@@ -34,11 +60,6 @@ HuntTriggerFunction = function()
|
||||
end)
|
||||
end
|
||||
|
||||
Win1TriggerFunction = function()
|
||||
NodObjective2 = player.AddPrimaryObjective("Move to the evacuation point.")
|
||||
player.MarkCompletedObjective(NodObjective1)
|
||||
end
|
||||
|
||||
Chn1TriggerFunction = function()
|
||||
if not Chn1Switch then
|
||||
local cargo = Reinforcements.ReinforceWithTransport(enemy, 'tran', Gdi1Units, Chn1Waypoints, { ChnEntry.Location })[2]
|
||||
@@ -83,6 +104,12 @@ Chn2TriggerFunction = function()
|
||||
end
|
||||
end
|
||||
|
||||
Obj2TriggerFunction = function()
|
||||
player.MarkCompletedObjective(NodObjective2)
|
||||
Media.PlaySpeechNotification(player, "Reinforce")
|
||||
Reinforcements.Reinforce(player, Obj2Units, { Obj2UnitsEntry.Location, waypoint13.Location }, 15)
|
||||
end
|
||||
|
||||
MoveAndHunt = function(unit, waypoints)
|
||||
if unit ~= nil then
|
||||
Utils.Do(waypoints, function(waypoint)
|
||||
@@ -93,6 +120,12 @@ MoveAndHunt = function(unit, waypoints)
|
||||
end
|
||||
|
||||
InsertNodUnits = function()
|
||||
local difficulty = Map.LobbyOption("difficulty")
|
||||
NodUnitsVehicle1 = NodUnitsVehicle1[difficulty]
|
||||
NodUnitsVehicle2 = NodUnitsVehicle2[difficulty]
|
||||
NodUnitsGunner = NodUnitsGunner[difficulty]
|
||||
NodUnitsRocket = NodUnitsRocket[difficulty]
|
||||
|
||||
Media.PlaySpeechNotification(player, "Reinforce")
|
||||
Camera.Position = UnitsRallyVehicle2.CenterPosition
|
||||
|
||||
@@ -127,6 +160,8 @@ WorldLoaded = function()
|
||||
end)
|
||||
|
||||
NodObjective1 = player.AddPrimaryObjective("Steal the GDI nuclear detonator.")
|
||||
NodObjective2 = player.AddSecondaryObjective("Destroy the houses of the GDI supporters\nin the village.")
|
||||
|
||||
GDIObjective = enemy.AddPrimaryObjective("Stop the Nod taskforce from escaping with the detonator.")
|
||||
|
||||
InsertNodUnits()
|
||||
@@ -144,17 +179,20 @@ WorldLoaded = function()
|
||||
Trigger.RemoveFootprintTrigger(id)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnAllRemovedFromWorld(Obj2ActorTriggerActivator, Obj2TriggerFunction)
|
||||
|
||||
Trigger.OnEnteredFootprint(Win1CellTriggerActivator, function(a, id)
|
||||
if a.Owner == player then
|
||||
Win1TriggerFunction()
|
||||
NodObjective3 = player.AddPrimaryObjective("Move to the evacuation point.")
|
||||
player.MarkCompletedObjective(NodObjective1)
|
||||
Trigger.RemoveFootprintTrigger(id)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(Win2CellTriggerActivator, function(a, id)
|
||||
if a.Owner == player and NodObjective2 then
|
||||
player.MarkCompletedObjective(NodObjective2)
|
||||
if a.Owner == player and NodObjective3 then
|
||||
player.MarkCompletedObjective(NodObjective3)
|
||||
Trigger.RemoveFootprintTrigger(id)
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -9,6 +9,15 @@ World:
|
||||
BriefingVideo: nod6.vqa
|
||||
StartVideo: sundial.vqa
|
||||
LossVideo: banner.vqa
|
||||
ScriptLobbyDropdown@difficulty:
|
||||
ID: difficulty
|
||||
Label: Difficulty
|
||||
Values:
|
||||
easy: Easy
|
||||
normal: Normal
|
||||
hard: Hard
|
||||
tough: Real tough guy
|
||||
Default: normal
|
||||
|
||||
Player:
|
||||
PlayerResources:
|
||||
|
||||
Reference in New Issue
Block a user