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