Fix map previews and order in TD

This commit is contained in:
abcdefg30
2020-10-15 12:42:34 +02:00
committed by Paul Chote
parent e11c8436bd
commit 575596c9ad
22 changed files with 1635 additions and 1635 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

View File

@@ -10,7 +10,7 @@ Tileset: DESERT
MapSize: 64,64
Bounds: 27,34,36,26
Bounds: 3,23,36,26
Visibility: MissionSelector
@@ -23,6 +23,7 @@ Players:
Name: GDI
Faction: gdi
Color: F5D378
Allies: GDI
Enemies: Nod
Bot: campaign
PlayerReference@Nod:
@@ -45,154 +46,192 @@ Players:
Actors:
Actor0: t08
Location: 30,52
Location: 34,38
Owner: Neutral
Actor1: t18
Location: 34,52
Location: 34,36
Owner: Neutral
Actor2: t08
Location: 57,47
Location: 25,31
Owner: Neutral
Actor3: t08
Location: 38,59
Location: 26,31
Owner: Neutral
Actor4: silo
Location: 33,40
Owner: GDI
Actor9: silo
Location: 32,42
Owner: GDI
Actor10: jeep
Location: 30,46
Owner: GDI
Facing: 512
Actor11: jeep
Location: 31,35
Owner: GDI
Facing: 256
Actor17: e1
Location: 34,56
Owner: GDI
SubCell: 3
Actor18: e1
Location: 43,35
Owner: GDI
SubCell: 3
Actor19: e1
Location: 43,36
Owner: GDI
SubCell: 3
Actor31: e1
Location: 47,53
Owner: GDI
SubCell: 4
Actor32: e1
Location: 49,54
Owner: GDI
Facing: 896
SubCell: 1
Actor35: e1
Location: 34,57
Owner: GDI
Facing: 256
SubCell: 1
waypoint27: waypoint
Location: 27,51
Actor4: t08
Location: 21,40
Owner: Neutral
waypoint26: waypoint
Location: 49,35
Actor5: t08
Location: 3,24
Owner: Neutral
waypoint10: waypoint
Location: 30,44
Actor6: t08
Location: 3,42
Owner: Neutral
waypoint9: waypoint
Location: 55,40
Actor7: t08
Location: 4,42
Owner: Neutral
waypoint8: waypoint
Location: 48,41
Actor8: t08
Location: 6,48
Owner: Neutral
waypoint7: waypoint
Location: 60,58
Actor9: t08
Location: 16,43
Owner: Neutral
waypoint6: waypoint
Location: 61,47
Actor10: t08
Location: 26,48
Owner: Neutral
waypoint5: waypoint
Location: 48,55
Actor11: t08
Location: 13,27
Owner: Neutral
waypoint4: waypoint
Location: 41,51
Actor12: t08
Location: 6,40
Owner: Neutral
waypoint3: waypoint
Location: 28,36
Actor13: rock1
Location: 22,32
Owner: Neutral
waypoint2: waypoint
Location: 28,51
Owner: Neutral
waypoint1: waypoint
Location: 40,43
Owner: Neutral
waypoint0: waypoint
Location: 40,35
Owner: Neutral
Refinery: proc
Location: 30,38
Owner: GDI
Barracks: pyle
Location: 34,43
Owner: GDI
Powerplant: nuke
Location: 35,40
Owner: GDI
Yard: fact
Location: 33,37
Owner: GDI
Guard1: e1
Location: 42,39
Owner: GDI
Facing: 256
SubCell: 0
Guard2: e1
Location: 38,38
Owner: GDI
Facing: 256
SubCell: 2
Guard3: e1
Location: 35,49
Actor20: jeep
Location: 5,24
Owner: GDI
Facing: 384
SubCell: 0
Guard4: e1
Location: 34,48
Actor21: jeep
Location: 6,32
Owner: GDI
Facing: 384
SubCell: 3
Guard5: e1
Location: 39,40
Owner: GDI
Facing: 256
SubCell: 1
Guard6: e1
Location: 40,56
Owner: GDI
Facing: 384
SubCell: 4
Guard7: e1
Location: 38,54
Facing: 640
Actor22: jeep
Location: 12,27
Owner: GDI
Facing: 128
Actor28: e1
Location: 10,24
Owner: GDI
Facing: 384
SubCell: 3
Actor29: e1
Location: 10,24
Owner: GDI
Facing: 384
SubCell: 1
Actor30: e1
Location: 9,24
Owner: GDI
Facing: 384
SubCell: 4
Actor31: e1
Location: 5,34
Owner: GDI
SubCell: 3
Actor32: e1
Location: 5,35
Owner: GDI
SubCell: 2
Actor33: e1
Location: 10,27
Owner: GDI
SubCell: 2
Actor34: e1
Location: 11,27
Owner: GDI
SubCell: 1
Actor35: e1
Location: 10,24
Owner: GDI
Facing: 384
SubCell: 2
Actor37: e1
Location: 7,40
Owner: GDI
SubCell: 2
waypoint26: waypoint
Location: 26,41
Owner: Neutral
waypoint23: waypoint
Location: 33,45
Owner: Neutral
waypoint21: waypoint
Location: 32,42
Owner: Neutral
waypoint17: waypoint
Location: 32,26
Owner: Neutral
waypoint9: waypoint
Location: 29,47
Owner: Neutral
waypoint8: waypoint
Location: 16,28
Owner: Neutral
waypoint7: waypoint
Location: 23,40
Owner: Neutral
waypoint6: waypoint
Location: 20,47
Owner: Neutral
waypoint5: waypoint
Location: 10,44
Owner: Neutral
waypoint4: waypoint
Location: 13,36
Owner: Neutral
waypoint3: waypoint
Location: 36,41
Owner: Neutral
waypoint2: waypoint
Location: 31,28
Owner: Neutral
waypoint1: waypoint
Location: 18,25
Owner: Neutral
waypoint0: waypoint
Location: 4,26
Owner: Neutral
Refinery: proc
Location: 7,27
Owner: GDI
FreeActor: false
Yard: fact
Location: 10,28
Owner: GDI
Barracks: pyle
Location: 7,32
Owner: GDI
Plant: nuke
Location: 11,31
Owner: GDI
Silo1: silo
Location: 9,31
Owner: GDI
Silo2: silo
Location: 9,33
Owner: GDI
Guard1: e1
Location: 8,40
Owner: GDI
SubCell: 1
Guard2: e1
Location: 37,24
Owner: GDI
SubCell: 3
Guard3: e1
Location: 36,24
Owner: GDI
SubCell: 2
Guard4: e1
Location: 27,31
Owner: GDI
SubCell: 1
Harvester: harv
Location: 5,29
Owner: GDI
Health: 39
Facing: 896
McvEntry: waypoint
Location: 62,43
Location: 33,48
Owner: Neutral
McvRally: waypoint
Location: 57,41
Location: 33,46
Owner: Neutral
UnitsEntry: waypoint
Location: 62,38
Location: 30,48
Owner: Neutral
UnitsRally: waypoint
Location: 56,38
Location: 30,44
Owner: Neutral
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml

View File

@@ -10,17 +10,10 @@
NodUnits = { "bggy", "e1", "e1", "e1", "e1", "e1", "bggy", "e1", "e1", "e1", "bggy" }
NodBaseBuildings = { "hand", "fact", "nuke" }
GDIBase = { Refinery, Barracks, Powerplant, Yard }
Guards = { Guard1, Guard2, Guard3, Guard4, Guard5, Guard6, Guard7 }
GDIBase = { Refinery, Yard, Barracks, Plant, Silo1, Silo2 }
Atk1CellTriggerActivator = { CPos.New(45,37), CPos.New(44,37), CPos.New(45,36), CPos.New(44,36), CPos.New(45,35), CPos.New(44,35), CPos.New(45,34), CPos.New(44,34) }
Atk4CellTriggerActivator = { CPos.New(50,47), CPos.New(49,47), CPos.New(48,47), CPos.New(47,47), CPos.New(46,47), CPos.New(45,47), CPos.New(44,47), CPos.New(43,47), CPos.New(42,47), CPos.New(41,47), CPos.New(40,47), CPos.New(39,47), CPos.New(38,47), CPos.New(37,47), CPos.New(50,46), CPos.New(49,46), CPos.New(48,46), CPos.New(47,46), CPos.New(46,46), CPos.New(45,46), CPos.New(44,46), CPos.New(43,46), CPos.New(42,46), CPos.New(41,46), CPos.New(40,46), CPos.New(39,46), CPos.New(38,46) }
Atk1Waypoints = { waypoint2, waypoint4, waypoint5, waypoint6 }
Atk2Waypoints = { waypoint2, waypoint5, waypoint7, waypoint6 }
Atk3Waypoints = { waypoint2, waypoint4, waypoint5, waypoint9 }
Atk4Waypoints = { waypoint0, waypoint8, waypoint9 }
Pat1Waypoints = { waypoint0, waypoint1, waypoint2, waypoint3 }
GDIWaypoints1 = { waypoint0, waypoint1, waypoint2, waypoint3 }
GDIWaypoints2 = { waypoint0, waypoint1, waypoint4, waypoint5, waypoint6, waypoint7, waypoint9 }
GetAttackers = function(amount)
local units = GDI.GetActorsByType("e1")
@@ -38,59 +31,52 @@ WorldLoaded = function()
InitObjectives(Nod)
BuildBase = Nod.AddObjective("Build a base.")
DestroyGDI = Nod.AddObjective("Destroy the GDI base.")
GDIObjective = GDI.AddObjective("Kill all enemies.")
BuildBase = Nod.AddObjective("Build a base.")
DestroyGDI = Nod.AddObjective("Destroy all GDI units.")
Utils.Do(Guards, function(actor)
Utils.Do({ Refinery, Yard }, function(actor)
Trigger.OnDamaged(actor, function()
if Atk3TriggerSwitch then
return
if not Grd2TriggerSwitch then
Grd2TriggerSwitch = true
Utils.Do(GetAttackers(5), IdleHunt)
end
Atk3TriggerSwitch = true
MoveAndHunt(GetAttackers(4), Atk3Waypoints)
end)
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(25), function()
MoveAndHunt(GetAttackers(2), GDIWaypoints1)
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(20), function()
MoveAndHunt(GetAttackers(3), GDIWaypoints2)
end)
Trigger.OnKilled(Guard1, function()
MoveAndHunt(GetAttackers(3), GDIWaypoints2)
end)
Trigger.OnKilled(Guard4, function()
MoveAndHunt(GetAttackers(2), GDIWaypoints1)
end)
Trigger.OnAllKilled({ Guard2, Guard3 }, function()
MoveAndHunt(GetAttackers(2), GDIWaypoints1)
end)
Trigger.OnDamaged(Harvester, function()
if Atk5TriggerSwitch then
return
end
Atk5TriggerSwitch = true
MoveAndHunt(GetAttackers(3), GDIWaypoints2)
end)
Trigger.OnAllRemovedFromWorld(GDIBase, function()
Utils.Do(GDI.GetGroundAttackers(), IdleHunt)
end)
Trigger.AfterDelay(DateTime.Seconds(40), function()
MoveAndHunt(GetAttackers(3), Atk2Waypoints)
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(15), function()
MoveAndHunt(GetAttackers(3), Atk2Waypoints)
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(20), function()
MoveAndHunt(GetAttackers(3), Atk3Waypoints)
end)
Trigger.AfterDelay(DateTime.Seconds(50), function()
MoveAndHunt(GetAttackers(3), Atk4Waypoints)
end)
Trigger.AfterDelay(DateTime.Seconds(30), function()
MoveAndHunt(GetAttackers(3), Pat1Waypoints)
end)
Trigger.OnEnteredFootprint(Atk1CellTriggerActivator, function(a, id)
if a.Owner == Nod then
MoveAndHunt(GetAttackers(5), Atk1Waypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(Atk4CellTriggerActivator, function(a, id)
if a.Owner == Nod then
MoveAndHunt(GetAttackers(3), Atk2Waypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.AfterDelay(0, function()
Utils.Do(GDI.GetActorsByType("e1"), function(unit)
RebuildUnit({ unit }, GDI, Barracks)
@@ -103,14 +89,14 @@ WorldLoaded = function()
end
Tick = function()
if GDI.HasNoRequiredUnits() then
Nod.MarkCompletedObjective(DestroyGDI)
end
if DateTime.GameTime > 2 and Nod.HasNoRequiredUnits() then
GDI.MarkCompletedObjective(GDIObjective)
end
if GDI.HasNoRequiredUnits() then
Nod.MarkCompletedObjective(DestroyGDI)
end
if DateTime.GameTime % DateTime.Seconds(1) == 0 and not Nod.IsObjectiveCompleted(BuildBase) and CheckForBase(Nod, NodBaseBuildings) then
Nod.MarkCompletedObjective(BuildBase)
end

View File

@@ -1,7 +1,3 @@
Player:
PlayerResources:
DefaultCash: 4000
World:
LuaScript:
Scripts: campaign-global.lua, nod02a.lua
@@ -15,60 +11,9 @@ World:
WinVideo: airstrk.vqa
LossVideo: deskill.vqa
^Vehicle:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
^Tank:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
^Helicopter:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
^Infantry:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
^Plane:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Ship:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Building:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Wall:
Tooltip:
ShowOwnerRow: false
^CommonHuskDefaults:
Tooltip:
GenericVisibility: Enemy, Ally, Neutral
GenericStancePrefix: false
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
Player:
PlayerResources:
DefaultCash: 4000
NUK2:
Buildable:
@@ -129,20 +74,6 @@ MLRS:
MCV:
Buildable:
Prerequisites: ~disabled
RenderSprites:
PlayerPalette: player
MCV.Husk:
RenderSprites:
PlayerPalette: player
HARV:
RenderSprites:
PlayerPalette: player
HARV.Husk:
RenderSprites:
PlayerPalette: player
SAM:
Buildable:

Binary file not shown.

View File

@@ -10,7 +10,7 @@ Tileset: DESERT
MapSize: 64,64
Bounds: 3,23,36,26
Bounds: 27,34,36,26
Visibility: MissionSelector
@@ -23,7 +23,6 @@ Players:
Name: GDI
Faction: gdi
Color: F5D378
Allies: GDI
Enemies: Nod
Bot: campaign
PlayerReference@Nod:
@@ -46,192 +45,154 @@ Players:
Actors:
Actor0: t08
Location: 34,38
Location: 30,52
Owner: Neutral
Actor1: t18
Location: 34,36
Location: 34,52
Owner: Neutral
Actor2: t08
Location: 25,31
Location: 57,47
Owner: Neutral
Actor3: t08
Location: 26,31
Location: 38,59
Owner: Neutral
Actor4: t08
Location: 21,40
Actor4: silo
Location: 33,40
Owner: GDI
Actor9: silo
Location: 32,42
Owner: GDI
Actor10: jeep
Location: 30,46
Owner: GDI
Facing: 512
Actor11: jeep
Location: 31,35
Owner: GDI
Facing: 256
Actor17: e1
Location: 34,56
Owner: GDI
SubCell: 3
Actor18: e1
Location: 43,35
Owner: GDI
SubCell: 3
Actor19: e1
Location: 43,36
Owner: GDI
SubCell: 3
Actor31: e1
Location: 47,53
Owner: GDI
SubCell: 4
Actor32: e1
Location: 49,54
Owner: GDI
Facing: 896
SubCell: 1
Actor35: e1
Location: 34,57
Owner: GDI
Facing: 256
SubCell: 1
waypoint27: waypoint
Location: 27,51
Owner: Neutral
Actor5: t08
Location: 3,24
waypoint26: waypoint
Location: 49,35
Owner: Neutral
Actor6: t08
Location: 3,42
waypoint10: waypoint
Location: 30,44
Owner: Neutral
Actor7: t08
Location: 4,42
waypoint9: waypoint
Location: 55,40
Owner: Neutral
Actor8: t08
Location: 6,48
waypoint8: waypoint
Location: 48,41
Owner: Neutral
Actor9: t08
Location: 16,43
waypoint7: waypoint
Location: 60,58
Owner: Neutral
Actor10: t08
Location: 26,48
waypoint6: waypoint
Location: 61,47
Owner: Neutral
Actor11: t08
Location: 13,27
waypoint5: waypoint
Location: 48,55
Owner: Neutral
Actor12: t08
Location: 6,40
waypoint4: waypoint
Location: 41,51
Owner: Neutral
Actor13: rock1
Location: 22,32
waypoint3: waypoint
Location: 28,36
Owner: Neutral
Actor20: jeep
Location: 5,24
waypoint2: waypoint
Location: 28,51
Owner: Neutral
waypoint1: waypoint
Location: 40,43
Owner: Neutral
waypoint0: waypoint
Location: 40,35
Owner: Neutral
Refinery: proc
Location: 30,38
Owner: GDI
Barracks: pyle
Location: 34,43
Owner: GDI
Powerplant: nuke
Location: 35,40
Owner: GDI
Yard: fact
Location: 33,37
Owner: GDI
Guard1: e1
Location: 42,39
Owner: GDI
Facing: 256
SubCell: 0
Guard2: e1
Location: 38,38
Owner: GDI
Facing: 256
SubCell: 2
Guard3: e1
Location: 35,49
Owner: GDI
Facing: 384
Actor21: jeep
Location: 6,32
Owner: GDI
Facing: 640
Actor22: jeep
Location: 12,27
Owner: GDI
Facing: 128
Actor28: e1
Location: 10,24
SubCell: 0
Guard4: e1
Location: 34,48
Owner: GDI
Facing: 384
SubCell: 3
Actor29: e1
Location: 10,24
Guard5: e1
Location: 39,40
Owner: GDI
Facing: 384
Facing: 256
SubCell: 1
Actor30: e1
Location: 9,24
Guard6: e1
Location: 40,56
Owner: GDI
Facing: 384
SubCell: 4
Actor31: e1
Location: 5,34
Guard7: e1
Location: 38,54
Owner: GDI
Facing: 128
SubCell: 3
Actor32: e1
Location: 5,35
Owner: GDI
SubCell: 2
Actor33: e1
Location: 10,27
Owner: GDI
SubCell: 2
Actor34: e1
Location: 11,27
Owner: GDI
SubCell: 1
Actor35: e1
Location: 10,24
Owner: GDI
Facing: 384
SubCell: 2
Actor37: e1
Location: 7,40
Owner: GDI
SubCell: 2
waypoint26: waypoint
Location: 26,41
Owner: Neutral
waypoint23: waypoint
Location: 33,45
Owner: Neutral
waypoint21: waypoint
Location: 32,42
Owner: Neutral
waypoint17: waypoint
Location: 32,26
Owner: Neutral
waypoint9: waypoint
Location: 29,47
Owner: Neutral
waypoint8: waypoint
Location: 16,28
Owner: Neutral
waypoint7: waypoint
Location: 23,40
Owner: Neutral
waypoint6: waypoint
Location: 20,47
Owner: Neutral
waypoint5: waypoint
Location: 10,44
Owner: Neutral
waypoint4: waypoint
Location: 13,36
Owner: Neutral
waypoint3: waypoint
Location: 36,41
Owner: Neutral
waypoint2: waypoint
Location: 31,28
Owner: Neutral
waypoint1: waypoint
Location: 18,25
Owner: Neutral
waypoint0: waypoint
Location: 4,26
Owner: Neutral
Refinery: proc
Location: 7,27
Owner: GDI
FreeActor: false
Yard: fact
Location: 10,28
Owner: GDI
Barracks: pyle
Location: 7,32
Owner: GDI
Plant: nuke
Location: 11,31
Owner: GDI
Silo1: silo
Location: 9,31
Owner: GDI
Silo2: silo
Location: 9,33
Owner: GDI
Guard1: e1
Location: 8,40
Owner: GDI
SubCell: 1
Guard2: e1
Location: 37,24
Owner: GDI
SubCell: 3
Guard3: e1
Location: 36,24
Owner: GDI
SubCell: 2
Guard4: e1
Location: 27,31
Owner: GDI
SubCell: 1
Harvester: harv
Location: 5,29
Owner: GDI
Health: 39
Facing: 896
McvEntry: waypoint
Location: 33,48
Location: 62,43
Owner: Neutral
McvRally: waypoint
Location: 33,46
Location: 57,41
Owner: Neutral
UnitsEntry: waypoint
Location: 30,48
Location: 62,38
Owner: Neutral
UnitsRally: waypoint
Location: 30,44
Location: 56,38
Owner: Neutral
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml

View File

@@ -10,10 +10,17 @@
NodUnits = { "bggy", "e1", "e1", "e1", "e1", "e1", "bggy", "e1", "e1", "e1", "bggy" }
NodBaseBuildings = { "hand", "fact", "nuke" }
GDIBase = { Refinery, Yard, Barracks, Plant, Silo1, Silo2 }
GDIBase = { Refinery, Barracks, Powerplant, Yard }
Guards = { Guard1, Guard2, Guard3, Guard4, Guard5, Guard6, Guard7 }
GDIWaypoints1 = { waypoint0, waypoint1, waypoint2, waypoint3 }
GDIWaypoints2 = { waypoint0, waypoint1, waypoint4, waypoint5, waypoint6, waypoint7, waypoint9 }
Atk1CellTriggerActivator = { CPos.New(45,37), CPos.New(44,37), CPos.New(45,36), CPos.New(44,36), CPos.New(45,35), CPos.New(44,35), CPos.New(45,34), CPos.New(44,34) }
Atk4CellTriggerActivator = { CPos.New(50,47), CPos.New(49,47), CPos.New(48,47), CPos.New(47,47), CPos.New(46,47), CPos.New(45,47), CPos.New(44,47), CPos.New(43,47), CPos.New(42,47), CPos.New(41,47), CPos.New(40,47), CPos.New(39,47), CPos.New(38,47), CPos.New(37,47), CPos.New(50,46), CPos.New(49,46), CPos.New(48,46), CPos.New(47,46), CPos.New(46,46), CPos.New(45,46), CPos.New(44,46), CPos.New(43,46), CPos.New(42,46), CPos.New(41,46), CPos.New(40,46), CPos.New(39,46), CPos.New(38,46) }
Atk1Waypoints = { waypoint2, waypoint4, waypoint5, waypoint6 }
Atk2Waypoints = { waypoint2, waypoint5, waypoint7, waypoint6 }
Atk3Waypoints = { waypoint2, waypoint4, waypoint5, waypoint9 }
Atk4Waypoints = { waypoint0, waypoint8, waypoint9 }
Pat1Waypoints = { waypoint0, waypoint1, waypoint2, waypoint3 }
GetAttackers = function(amount)
local units = GDI.GetActorsByType("e1")
@@ -31,52 +38,59 @@ WorldLoaded = function()
InitObjectives(Nod)
GDIObjective = GDI.AddObjective("Kill all enemies.")
BuildBase = Nod.AddObjective("Build a base.")
DestroyGDI = Nod.AddObjective("Destroy all GDI units.")
DestroyGDI = Nod.AddObjective("Destroy the GDI base.")
GDIObjective = GDI.AddObjective("Kill all enemies.")
Utils.Do({ Refinery, Yard }, function(actor)
Utils.Do(Guards, function(actor)
Trigger.OnDamaged(actor, function()
if not Grd2TriggerSwitch then
Grd2TriggerSwitch = true
Utils.Do(GetAttackers(5), IdleHunt)
if Atk3TriggerSwitch then
return
end
Atk3TriggerSwitch = true
MoveAndHunt(GetAttackers(4), Atk3Waypoints)
end)
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(25), function()
MoveAndHunt(GetAttackers(2), GDIWaypoints1)
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(20), function()
MoveAndHunt(GetAttackers(3), GDIWaypoints2)
end)
Trigger.OnKilled(Guard1, function()
MoveAndHunt(GetAttackers(3), GDIWaypoints2)
end)
Trigger.OnKilled(Guard4, function()
MoveAndHunt(GetAttackers(2), GDIWaypoints1)
end)
Trigger.OnAllKilled({ Guard2, Guard3 }, function()
MoveAndHunt(GetAttackers(2), GDIWaypoints1)
end)
Trigger.OnDamaged(Harvester, function()
if Atk5TriggerSwitch then
return
end
Atk5TriggerSwitch = true
MoveAndHunt(GetAttackers(3), GDIWaypoints2)
end)
Trigger.OnAllRemovedFromWorld(GDIBase, function()
Utils.Do(GDI.GetGroundAttackers(), IdleHunt)
end)
Trigger.AfterDelay(DateTime.Seconds(40), function()
MoveAndHunt(GetAttackers(3), Atk2Waypoints)
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(15), function()
MoveAndHunt(GetAttackers(3), Atk2Waypoints)
end)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(20), function()
MoveAndHunt(GetAttackers(3), Atk3Waypoints)
end)
Trigger.AfterDelay(DateTime.Seconds(50), function()
MoveAndHunt(GetAttackers(3), Atk4Waypoints)
end)
Trigger.AfterDelay(DateTime.Seconds(30), function()
MoveAndHunt(GetAttackers(3), Pat1Waypoints)
end)
Trigger.OnEnteredFootprint(Atk1CellTriggerActivator, function(a, id)
if a.Owner == Nod then
MoveAndHunt(GetAttackers(5), Atk1Waypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(Atk4CellTriggerActivator, function(a, id)
if a.Owner == Nod then
MoveAndHunt(GetAttackers(3), Atk2Waypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.AfterDelay(0, function()
Utils.Do(GDI.GetActorsByType("e1"), function(unit)
RebuildUnit({ unit }, GDI, Barracks)
@@ -89,14 +103,14 @@ WorldLoaded = function()
end
Tick = function()
if DateTime.GameTime > 2 and Nod.HasNoRequiredUnits() then
GDI.MarkCompletedObjective(GDIObjective)
end
if GDI.HasNoRequiredUnits() then
Nod.MarkCompletedObjective(DestroyGDI)
end
if DateTime.GameTime > 2 and Nod.HasNoRequiredUnits() then
GDI.MarkCompletedObjective(GDIObjective)
end
if DateTime.GameTime % DateTime.Seconds(1) == 0 and not Nod.IsObjectiveCompleted(BuildBase) and CheckForBase(Nod, NodBaseBuildings) then
Nod.MarkCompletedObjective(BuildBase)
end

View File

@@ -1,3 +1,7 @@
Player:
PlayerResources:
DefaultCash: 4000
World:
LuaScript:
Scripts: campaign-global.lua, nod02b.lua
@@ -11,9 +15,60 @@ World:
WinVideo: airstrk.vqa
LossVideo: deskill.vqa
Player:
PlayerResources:
DefaultCash: 4000
^Vehicle:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
^Tank:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
^Helicopter:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
^Infantry:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
^Plane:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Ship:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Building:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Wall:
Tooltip:
ShowOwnerRow: false
^CommonHuskDefaults:
Tooltip:
GenericVisibility: Enemy, Ally, Neutral
GenericStancePrefix: false
ShowOwnerRow: false
RenderSprites:
PlayerPalette: player-units
NUK2:
Buildable:
@@ -74,6 +129,20 @@ MLRS:
MCV:
Buildable:
Prerequisites: ~disabled
RenderSprites:
PlayerPalette: player
MCV.Husk:
RenderSprites:
PlayerPalette: player
HARV:
RenderSprites:
PlayerPalette: player
HARV.Husk:
RenderSprites:
PlayerPalette: player
SAM:
Buildable:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

View File

@@ -2,7 +2,7 @@ MapFormat: 11
RequiresMod: cnc
Title: 04a: Mao Civil War
Title: 04a: Oum Hadjer
Author: Westwood Studios
@@ -10,7 +10,7 @@ Tileset: DESERT
MapSize: 64,64
Bounds: 11,6,46,34
Bounds: 7,17,52,44
Visibility: MissionSelector
@@ -19,26 +19,21 @@ Categories: Campaign
LockPreview: True
Players:
PlayerReference@GDI:
Name: GDI
Bot: campaign
Faction: gdi
Color: F5D378
Enemies: Nod
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Faction: gdi
PlayerReference@NodSupporter:
Name: NodSupporter
NonCombatant: True
Faction: nod
Bot: campaign
PlayerReference@GDI:
Name: GDI
Faction: gdi
Color: F5D378
Enemies: Nod
Bot: campaign
PlayerReference@Nod:
Name: Nod
Playable: True
AllowBots: False
Playable: True
Required: True
LockFaction: True
Faction: nod
@@ -49,491 +44,437 @@ Players:
Enemies: GDI
Actors:
Actor0: t08
Location: 34,20
Actor0: sbag
Location: 58,26
Owner: Neutral
Actor1: t18
Location: 33,18
Actor1: sbag
Location: 57,26
Owner: Neutral
Actor2: t18
Location: 33,9
Actor2: sbag
Location: 56,26
Owner: Neutral
Actor3: t08
Location: 41,5
Actor3: sbag
Location: 55,26
Owner: Neutral
Actor4: t18
Location: 42,15
Actor4: sbag
Location: 54,26
Owner: Neutral
Actor5: t08
Location: 45,26
Actor5: sbag
Location: 53,26
Owner: Neutral
Actor6: t08
Location: 56,29
Actor6: sbag
Location: 52,26
Owner: Neutral
Actor7: t08
Location: 55,29
Owner: Neutral
Actor8: t08
Actor7: sbag
Location: 51,26
Owner: Neutral
Actor9: t08
Location: 56,18
Actor8: sbag
Location: 50,26
Owner: Neutral
Actor10: t08
Location: 52,16
Actor9: sbag
Location: 49,26
Owner: Neutral
Actor11: t08
Location: 45,21
Actor10: sbag
Location: 48,26
Owner: Neutral
Actor12: t08
Location: 38,19
Actor11: sbag
Location: 47,26
Owner: Neutral
Actor13: t08
Location: 23,16
Actor12: sbag
Location: 58,25
Owner: Neutral
Actor14: t08
Location: 14,22
Actor13: sbag
Location: 47,25
Owner: Neutral
Actor15: t08
Location: 26,22
Actor14: sbag
Location: 58,24
Owner: Neutral
Actor16: t08
Location: 21,26
Actor15: sbag
Location: 47,24
Owner: Neutral
Actor17: t08
Location: 48,6
Actor16: sbag
Location: 58,23
Owner: Neutral
Actor18: t08
Location: 15,19
Actor17: sbag
Location: 58,22
Owner: Neutral
Actor19: t08
Location: 31,15
Actor18: sbag
Location: 58,21
Owner: Neutral
Actor20: t18
Location: 49,34
Actor19: sbag
Location: 47,21
Owner: Neutral
Actor21: t18
Location: 48,38
Actor20: sbag
Location: 58,20
Owner: Neutral
Actor22: t18
Location: 42,35
Actor21: sbag
Location: 47,20
Owner: Neutral
Actor23: t18
Location: 54,37
Actor22: sbag
Location: 58,19
Owner: Neutral
Actor24: t08
Location: 51,35
Actor23: sbag
Location: 47,19
Owner: Neutral
Actor25: t08
Location: 45,37
Actor24: sbag
Location: 58,18
Owner: Neutral
Actor26: t08
Location: 47,33
Actor25: sbag
Location: 57,18
Owner: Neutral
Actor27: t18
Location: 13,10
Actor26: sbag
Location: 48,18
Owner: Neutral
Actor28: t18
Location: 20,7
Actor27: sbag
Location: 47,18
Owner: Neutral
Actor30: t08
Location: 12,8
Actor28: sbag
Location: 58,17
Owner: Neutral
Actor31: t08
Location: 23,9
Actor29: sbag
Location: 57,17
Owner: Neutral
Actor32: v35
Location: 48,38
Owner: NodSupporter
Actor33: v34
Location: 46,33
Owner: NodSupporter
Actor35: v32
Location: 54,35
Owner: NodSupporter
Actor36: v30
Location: 48,32
Owner: NodSupporter
Actor37: v30
Location: 52,34
Owner: NodSupporter
Actor38: v31
Location: 52,35
Owner: NodSupporter
Actor39: v32
Location: 46,37
Owner: NodSupporter
Health: 73
Actor41: v34
Location: 49,38
Owner: NodSupporter
Actor42: v35
Location: 46,32
Owner: NodSupporter
Actor43: v36
Location: 48,37
Owner: NodSupporter
Actor44: v32
Location: 49,33
Owner: NodSupporter
Actor45: v34
Location: 50,34
Owner: NodSupporter
Actor46: v20
Location: 15,10
Actor30: sbag
Location: 56,17
Owner: Neutral
Actor31: sbag
Location: 55,17
Owner: Neutral
Actor32: sbag
Location: 54,17
Owner: Neutral
Actor33: sbag
Location: 53,17
Owner: Neutral
Actor34: sbag
Location: 52,17
Owner: Neutral
Actor35: sbag
Location: 51,17
Owner: Neutral
Actor36: sbag
Location: 50,17
Owner: Neutral
Actor37: sbag
Location: 49,17
Owner: Neutral
Actor38: sbag
Location: 48,17
Owner: Neutral
Actor39: sbag
Location: 47,17
Owner: Neutral
Actor40: t18
Location: 47,50
Owner: Neutral
Actor41: t18
Location: 46,31
Owner: Neutral
Actor42: t08
Location: 39,26
Owner: Neutral
Actor43: t18
Location: 37,25
Owner: Neutral
Actor44: t18
Location: 27,28
Owner: Neutral
Actor45: t18
Location: 54,26
Owner: Neutral
Actor46: t18
Location: 49,18
Owner: Neutral
Actor47: t18
Location: 23,54
Owner: Neutral
Actor48: t18
Location: 34,40
Owner: Neutral
Actor49: t08
Location: 16,45
Owner: Neutral
Actor50: t08
Location: 14,53
Owner: Neutral
Actor52: t18
Location: 13,44
Owner: Neutral
Actor57: t18
Location: 36,49
Owner: Neutral
Actor58: t18
Location: 44,59
Owner: Neutral
Actor59: t18
Location: 11,37
Owner: Neutral
Actor60: t18
Location: 25,20
Owner: Neutral
Actor61: gtwr
Location: 46,21
Owner: GDI
Actor47: v21
Location: 12,10
Actor62: gtwr
Location: 46,24
Owner: GDI
Actor48: v22
Location: 21,11
Actor63: hosp
Location: 48,19
Owner: GDI
Actor49: v23
Location: 22,8
Actor64: pyle
Location: 50,20
Owner: GDI
Actor50: v24
Location: 18,8
Actor65: nuke
Location: 53,21
Owner: GDI
Actor51: v25
Location: 13,7
Actor66: nuke
Location: 52,23
Owner: GDI
Actor52: v26
Location: 20,9
Actor67: silo
Location: 56,24
Owner: GDI
Actor53: v27
Location: 15,9
Actor68: silo
Location: 55,22
Owner: GDI
Actor54: v27
Location: 14,9
Actor69: fact
Location: 53,18
Owner: GDI
Actor55: v27
Location: 13,9
Actor70: hq
Location: 56,19
Owner: GDI
Actor56: v28
Location: 21,7
Actor72: v36
Location: 12,54
Owner: Neutral
Actor73: v35
Location: 10,54
Owner: Neutral
Actor74: v34
Location: 11,53
Owner: Neutral
Actor75: v33
Location: 15,53
Owner: Neutral
Actor76: v32
Location: 12,53
Owner: Neutral
Actor77: v31
Location: 10,52
Owner: Neutral
Actor87: v23
Location: 9,59
Owner: Neutral
Jeep1: jeep
Location: 51,25
Owner: GDI
Actor57: v29
Location: 22,7
Jeep2: jeep
Location: 50,25
Owner: GDI
Actor58: v30
Location: 21,10
Owner: GDI
Actor59: v30
Location: 23,8
Owner: GDI
Actor61: jeep
Location: 15,23
Owner: GDI
Facing: 640
Actor62: jeep
Location: 36,6
Actor94: jeep
Location: 39,48
Owner: GDI
Facing: 384
Actor65: mtnk
Location: 29,10
Actor110: e1
Location: 40,49
Owner: GDI
Facing: 256
Actor71: jeep
Location: 24,26
Owner: GDI
Facing: 384
Actor72: jeep
Location: 37,19
Owner: GDI
Facing: 128
Actor73: jeep
Location: 27,33
Owner: GDI
Facing: 384
Actor86: e1
Location: 43,15
Owner: GDI
Health: 88
Facing: 128
SubCell: 3
Actor99: e1
Location: 45,15
Owner: GDI
SubCell: 3
Actor100: e1
Location: 43,15
Owner: GDI
Health: 94
Facing: 128
SubCell: 4
Actor105: e1
Location: 46,14
Owner: GDI
SubCell: 2
Actor106: e1
Location: 18,29
Owner: GDI
Facing: 384
SubCell: 4
Actor107: e1
Location: 12,20
Owner: GDI
SubCell: 1
Actor108: e1
Location: 39,23
Owner: GDI
SubCell: 1
Actor119: e2
Location: 18,8
Owner: GDI
Facing: 512
SubCell: 3
Actor120: e2
Location: 16,10
Owner: GDI
Facing: 384
SubCell: 2
Actor121: e2
Location: 27,19
Owner: GDI
Facing: 512
SubCell: 1
Actor122: e2
Location: 25,34
Owner: GDI
SubCell: 4
Actor123: e1
Location: 13,13
Owner: GDI
Facing: 512
SubCell: 1
Actor124: e1
Location: 13,13
Owner: GDI
Facing: 512
SubCell: 2
Actor125: e2
Location: 13,13
Owner: GDI
Facing: 512
SubCell: 4
Actor126: e2
Location: 13,13
Owner: GDI
Facing: 512
SubCell: 3
Actor127: e2
Location: 29,18
Owner: GDI
Facing: 256
SubCell: 3
Actor128: e2
Location: 27,22
Owner: GDI
Facing: 256
SubCell: 1
Actor129: e2
Location: 36,10
Owner: GDI
Health: 38
Facing: 256
Facing: 896
SubCell: 0
Actor131: e1
Location: 21,12
Actor111: e2
Location: 38,50
Owner: GDI
Facing: 512
SubCell: 4
Actor132: e1
Location: 22,12
Owner: GDI
Facing: 512
SubCell: 3
Actor29: t18
Location: 14,7
Owner: Neutral
waypoint27: waypoint
Location: 35,25
Owner: Neutral
waypoint26: waypoint
Location: 44,6
Owner: Neutral
waypoint9: waypoint
Location: 26,19
Owner: Neutral
waypoint8: waypoint
Location: 53,37
Owner: Neutral
waypoint7: waypoint
Location: 47,35
Owner: Neutral
waypoint6: waypoint
Location: 45,11
Owner: Neutral
waypoint5: waypoint
Location: 40,17
Owner: Neutral
waypoint4: waypoint
Location: 39,34
Owner: Neutral
waypoint3: waypoint
Location: 21,38
Owner: Neutral
waypoint2: waypoint
Location: 20,28
Owner: Neutral
waypoint1: waypoint
Location: 13,26
Owner: Neutral
waypoint0: waypoint
Location: 13,14
Owner: Neutral
Civilian1: v33
Location: 48,34
Owner: Neutral
Health: 62
Civilian2: v33
Location: 54,37
Owner: Neutral
Soldier1: e2
Location: 22,15
Owner: GDI
Facing: 384
SubCell: 2
Soldier2: e1
Location: 17,14
Owner: GDI
Facing: 384
SubCell: 4
Soldier3: e2
Location: 13,16
Owner: GDI
Facing: 384
SubCell: 1
GDICiv1: c9
Location: 20,12
Owner: GDI
SubCell: 3
GDICiv2: c4
Location: 18,7
Owner: GDI
SubCell: 0
GDICiv3: c9
Location: 19,12
Owner: GDI
SubCell: 1
GDICiv4: c8
Location: 16,8
Owner: GDI
SubCell: 3
GDICiv5: c7
Location: 17,9
Owner: GDI
SubCell: 1
GDICiv6: c6
Location: 24,13
Owner: GDI
SubCell: 2
GDICiv7: c5
Location: 20,7
Owner: GDI
SubCell: 4
GDICiv8: c4
Location: 14,12
Owner: GDI
SubCell: 1
GDICiv9: c3
Location: 15,10
Owner: GDI
SubCell: 2
GDICiv10: c2
Location: 14,10
Owner: GDI
SubCell: 1
GDICiv11: c1
Location: 17,7
Owner: GDI
SubCell: 2
GDICiv12: c1
Location: 20,10
Owner: GDI
SubCell: 1
GDICiv13: c1
Location: 20,11
Owner: GDI
SubCell: 3
UnitsEntryBuggy: waypoint
Location: 52,6
Owner: Neutral
UnitsRallyBuggy: waypoint
Location: 52,10
Owner: Neutral
UnitsEntryBikes: waypoint
Location: 50,6
Owner: Neutral
UnitsRallyBikes: waypoint
Location: 50,10
Owner: Neutral
UnitsEntryGunner: waypoint
Location: 54,6
Owner: Neutral
UnitsRallyGunner: waypoint
Location: 54,10
Owner: Neutral
UnitsEntryRocket: waypoint
Location: 56,12
Owner: Neutral
UnitsRallyRocket: waypoint
Location: 54,12
Owner: Neutral
NodCiv1: c8
Location: 46,36
Owner: NodSupporter
Facing: 512
SubCell: 2
NodCiv2: e3
Location: 48,36
Owner: NodSupporter
Facing: 768
SubCell: 4
NodCiv3: c4
Location: 52,38
Owner: NodSupporter
Facing: 768
SubCell: 1
NodCiv4: c3
Location: 45,35
Owner: NodSupporter
Facing: 128
SubCell: 4
NodCiv5: c1
Location: 51,36
Owner: NodSupporter
Facing: 896
SubCell: 2
NodCiv6: c2
Location: 45,34
Owner: NodSupporter
Facing: 0
SubCell: 1
NodCiv7: c4
Location: 54,36
Owner: NodSupporter
Facing: 640
SubCell: 0
NodCiv8: c5
Location: 50,37
Owner: NodSupporter
Facing: 384
SubCell: 2
NodCiv9: c9
Location: 47,34
Owner: NodSupporter
Facing: 768
SubCell: 2
Gciv1: e1
Location: 38,9
Actor112: e2
Location: 38,49
Owner: GDI
Facing: 512
SubCell: 0
Gciv2: e1
Location: 18,10
Actor113: e2
Location: 35,40
Owner: GDI
Facing: 640
SubCell: 0
Actor114: e2
Location: 35,40
Owner: GDI
SubCell: 1
waypoint27: waypoint
Location: 31,36
Owner: Neutral
waypoint25: waypoint
Location: 40,43
Owner: Neutral
waypoint26: waypoint
Location: 28,27
Owner: Neutral
waypoint11: waypoint
Location: 54,29
Owner: Neutral
waypoint10: waypoint
Location: 45,28
Owner: Neutral
GDIBase: waypoint
Location: 52,22
Owner: Neutral
waypoint8: waypoint
Location: 43,22
Owner: Neutral
waypoint7: waypoint
Location: 31,22
Owner: Neutral
waypoint6: waypoint
Location: 21,25
Owner: Neutral
waypoint5: waypoint
Location: 18,39
Owner: Neutral
waypoint4: waypoint
Location: 10,48
Owner: Neutral
waypoint3: waypoint
Location: 19,48
Owner: Neutral
waypoint2: waypoint
Location: 27,55
Owner: Neutral
waypoint1: waypoint
Location: 48,56
Owner: Neutral
waypoint0: waypoint
Location: 54,42
Owner: Neutral
Convoi: apc
Location: 24,53
Owner: GDI
CivBuilding1: v26
Location: 8,51
Owner: GDI
CivBuilding2: v30
Location: 17,46
Owner: GDI
CivBuilding3: v29
Location: 16,46
Owner: GDI
CivBuilding4: v28
Location: 15,45
Owner: GDI
CivBuilding5: v27
Location: 14,51
Owner: GDI
CivBuilding6: v27
Location: 13,51
Owner: GDI
CivBuilding7: v27
Location: 12,51
Owner: GDI
CivBuilding8: v26
Location: 14,46
Owner: GDI
CivBuilding9: v25
Location: 19,46
Owner: GDI
CivBuilding10: v24
Location: 8,47
Owner: GDI
CivBuilding11: v22
Location: 9,45
Owner: GDI
CivBuilding12: v22
Location: 18,52
Owner: GDI
CivBuilding13: v21
Location: 16,51
Owner: GDI
CivBuilding14: v20
Location: 8,45
Owner: GDI
Civilian1: c2
Location: 11,50
Owner: GDI
Facing: 896
SubCell: 0
Civilian2: c9
Location: 12,49
Owner: GDI
Facing: 896
SubCell: 2
Civilian3: c8
Location: 14,49
Owner: GDI
Facing: 256
SubCell: 3
Civilian4: c7
Location: 13,50
Owner: GDI
Facing: 896
SubCell: 0
Civilian5: c6
Location: 11,49
Owner: GDI
Facing: 128
SubCell: 0
Civilian6: c5
Location: 12,50
Owner: GDI
Facing: 896
SubCell: 2
Civilian7: c4
Location: 10,50
Owner: GDI
Facing: 128
SubCell: 1
Civilian8: c3
Location: 10,51
Owner: GDI
Facing: 128
SubCell: 1
Actor56: t18
Location: 19,51
Owner: Neutral
Actor55: t18
Location: 20,46
Owner: Neutral
Actor51: t08
Location: 13,46
Owner: Neutral
Actor53: t18
Location: 7,46
Owner: Neutral
Actor54: t18
Location: 11,51
Owner: Neutral
GDIGunner1: e1
Location: 41,50
Owner: GDI
Facing: 768
SubCell: 2
GDIGunner2: e1
Location: 39,50
Owner: GDI
SubCell: 0
GDIGunner3: e1
Location: 40,50
Owner: GDI
Facing: 256
SubCell: 0
EntryPointVehicle: waypoint
Location: 33,17
Owner: Neutral
RallyPointVehicle: waypoint
Location: 33,30
Owner: Neutral
EntryPointRocket: waypoint
Location: 35,17
Owner: Neutral
RallyPointRocket: waypoint
Location: 35,32
Owner: Neutral
EntryPointGunner: waypoint
Location: 31,17
Owner: Neutral
RallyPointGunner: waypoint
Location: 31,32
Owner: Neutral
CameraPoint: waypoint
Location: 32,22
Owner: Neutral
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml

View File

@@ -7,201 +7,124 @@
information, see COPYING.
]]
NodUnitsBuggy = { "bggy", "bggy", "bggy", "bggy", "bggy" }
NodUnitsBikes = { "bike", "bike", "bike" }
NodUnitsGunner = { "e1", "e1", "e1", "e1", "e1", "e1" }
NodUnitsBuggy = { "bggy", "bggy", "bike", "bike" }
NodUnitsRocket = { "e3", "e3", "e3", "e3", "e3", "e3" }
NodUnitsGunner = { "e1", "e1", "e1", "e1", "e1", "e1" }
Atk6Units = { "c1", "c2", "c3" }
Atk5Units = { "e1", "e1", "e2", "e2" }
Atk1Units = { "e1", "e1" }
JeepReinforcements = { "jeep" }
GDIUnits = { "e1", "e1", "e2" }
ApcUnits = { "e1", "e1", "e2", "e2" }
Apc3Trigger = { CPos.New(28,58), CPos.New(27,58), CPos.New(28,57), CPos.New(27,57), CPos.New(28,56), CPos.New(27,56), CPos.New(28,55), CPos.New(27,55), CPos.New(28,54), CPos.New(27,54), CPos.New(28,53), CPos.New(27,53) }
NorthernBridgeTrigger = { CPos.New(13,41), CPos.New(14,41), CPos.New(15,41), CPos.New(14,42), CPos.New(15,42), CPos.New(16,42) }
SouthernBridgeTrigger = { CPos.New(26,54), CPos.New(25,54), CPos.New(24,54), CPos.New(25,53), CPos.New(24,53), CPos.New(23,53) }
Spawnpoint = { waypoint0.Location }
Atk6WaypointsPart1 = { waypoint1.Location, waypoint2.Location, waypoint3.Location, waypoint4.Location }
Atk6WaypointsPart2 = { waypoint7.Location, waypoint8.Location, waypoint7.Location }
Atk5Waypoints = { waypoint0.Location, waypoint9.Location}
Atk3Waypoints = { waypoint0 }
Atk2Waypoints = { waypoint6 }
GcivWaypoints = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint4 }
Atk1Waypoints = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint4, waypoint5, waypoint6 }
Atk4Waypoints = { waypoint0, waypoint9 }
Apc1Units = { "c2", "c3", "c4", "c5" }
Atk6ActorTriggerActivator = { Civilian1, Civilian2 }
Atk5ActorTriggerActivator = { Soldier1, Soldier2, Soldier3, Actor105 }
WinActorTriggerActivator = { GDICiv1, GDICiv2, GDICiv3, GDICiv4, GDICiv5, GDICiv6, GDICiv7, GDICiv8, GDICiv9, GDICiv11, GDICiv12, GDICiv13 }
GcivActors = { Gcvi1, Gciv2, GDICiv2, GDICiv9, GDICiv10, GDICiv11 }
Civilians = { Civilian1, Civilian2, Civilian3, Civilian4, Civilian5, Civilian6, Civilian7, Civilian8 }
TargetActors = { Civilian1, Civilian2, Civilian3, Civilian4, Civilian5, Civilian6, Civilian7, Civilian8, CivBuilding1, CivBuilding2, CivBuilding3, CivBuilding4, CivBuilding5, CivBuilding6, CivBuilding7, CivBuilding8, CivBuilding9, CivBuilding10, CivBuilding11, CivBuilding12, CivBuilding13, CivBuilding14 }
Apc2Trigger = { GDIGunner1, GDIGunner2, GDIGunner3 }
Atk2CellTriggerActivator = { CPos.New(41,22), CPos.New(40,22), CPos.New(39,22), CPos.New(41,21), CPos.New(40,21), CPos.New(39,21) }
Atk3CellTriggerActivator = { CPos.New(18,18), CPos.New(17,18), CPos.New(16,18), CPos.New(15,18), CPos.New(14,18), CPos.New(13,18), CPos.New(12,18), CPos.New(11,18), CPos.New(24,17), CPos.New(23,17), CPos.New(22,17), CPos.New(21,17), CPos.New(20,17), CPos.New(19,17), CPos.New(17,17), CPos.New(16,17), CPos.New(15,17), CPos.New(14,17), CPos.New(13,17), CPos.New(12,17), CPos.New(11,17) }
Atk4CellTriggerActivator = { CPos.New(29,28), CPos.New(28,28), CPos.New(29,27), CPos.New(28,27), CPos.New(29,26), CPos.New(28,26), CPos.New(29,25), CPos.New(28,25), CPos.New(29,24), CPos.New(28,24), CPos.New(29,23), CPos.New(28,23), CPos.New(29,22), CPos.New(28,22) }
GcivCellTriggerActivator = { CPos.New(51,17), CPos.New(50,17), CPos.New(49,17), CPos.New(48,17), CPos.New(47,17), CPos.New(46,17), CPos.New(45,17), CPos.New(44,17), CPos.New(43,17), CPos.New(42,17), CPos.New(41,17), CPos.New(40,17), CPos.New(39,17), CPos.New(38,17), CPos.New(37,17), CPos.New(36,17), CPos.New(35,17), CPos.New(52,16), CPos.New(51,16), CPos.New(50,16), CPos.New(49,16), CPos.New(48,16), CPos.New(47,16), CPos.New(46,16), CPos.New(45,16), CPos.New(44,16), CPos.New(43,16), CPos.New(42,16), CPos.New(41,16), CPos.New(40,16), CPos.New(39,16), CPos.New(38,16), CPos.New(37,16), CPos.New(36,16), CPos.New(35,16) }
DelxCellTriggerActivator = { CPos.New(42,20), CPos.New(41,20), CPos.New(40,20), CPos.New(39,20), CPos.New(38,20) }
DelyCellTriggerActivator = { CPos.New(31,28), CPos.New(30,28), CPos.New(31,27), CPos.New(30,27), CPos.New(31,26), CPos.New(30,26), CPos.New(31,25), CPos.New(30,25), CPos.New(31,24), CPos.New(30,24) }
DelzCellTriggerActivator = { CPos.New(18,20), CPos.New(17,20), CPos.New(16,20), CPos.New(15,20), CPos.New(14,20), CPos.New(13,20), CPos.New(12,20), CPos.New(11,20), CPos.New(25,19), CPos.New(24,19), CPos.New(23,19), CPos.New(22,19), CPos.New(21,19), CPos.New(20,19), CPos.New(19,19), CPos.New(18,19), CPos.New(17,19), CPos.New(16,19), CPos.New(15,19), CPos.New(14,19), CPos.New(13,19), CPos.New(12,19), CPos.New(11,19), CPos.New(25,18), CPos.New(24,18), CPos.New(23,18), CPos.New(22,18), CPos.New(21,18), CPos.New(20,18), CPos.New(19,18) }
NodCiviliansActors = { NodCiv1, NodCiv2, NodCiv3, NodCiv4, NodCiv5, NodCiv6, NodCiv7, NodCiv8, NodCiv9 }
SendJeepReinforcements = function()
if not PreventJeepReinforcements then
local units = Reinforcements.Reinforce(GDI, JeepReinforcements, Spawnpoint, 15)
MoveAndHunt(units, Atk2Waypoints)
end
end
SendGDIReinforcements = function()
if not PreventGDIReinforcements then
local units = Reinforcements.Reinforce(GDI, GDIUnits, Spawnpoint, 15)
MoveAndHunt(units, Atk4Waypoints)
end
end
SendApcReinforcements = function()
if not PreventApcReinforcements then
Reinforcements.ReinforceWithTransport(GDI, "apc", ApcUnits, Atk5Waypoints, nil,
function(transport, cargo)
transport.UnloadPassengers()
Utils.Do(cargo, IdleHunt)
end, IdleHunt)
end
end
CreateCivilians = function(actor, discoverer)
Utils.Do(NodCiviliansActors, function(actor)
actor.Owner = Nod
end)
ProtectCivilians = Nod.AddPrimaryObjective("Protect the civilians that support Nod.")
Trigger.OnAllKilled(NodCiviliansActors, function()
Nod.MarkFailedObjective(ProtectCivilians)
end)
Utils.Do(GcivActors, function(actor)
if not actor.IsDead then
actor.AttackMove(waypoint7.Location)
actor.AttackMove(waypoint8.Location)
IdleHunt(actor)
end
end)
end
Apc1Waypoints = { waypoint0.Location, waypoint11.Location, waypoint10.Location, waypoint8.Location, GDIBase.Location }
Apc2Waypoints = { waypoint8, waypoint7, waypoint6, waypoint5, waypoint4 }
Apc3Waypoints = { waypoint3, waypoint2, waypoint1, waypoint0, waypoint11, waypoint10, waypoint8, GDIBase }
FlightRouteTop = { waypoint4, waypoint5, waypoint6, waypoint7, waypoint8, GDIBase }
FlightRouteBottom = { waypoint3, waypoint2, waypoint1, waypoint11, waypoint10, waypoint8, GDIBase }
Hummer1Waypoints = { waypoint8, waypoint7, waypoint6, waypoint5, waypoint4, waypoint3, waypoint2, waypoint1, waypoint0, waypoint11, waypoint10, waypoint8 }
WorldLoaded = function()
Nod = Player.GetPlayer("Nod")
NodSupporter = Player.GetPlayer("NodSupporter")
GDI = Player.GetPlayer("GDI")
InitObjectives(Nod)
Trigger.AfterDelay(DateTime.Seconds(3), function()
local apc = Actor.Create("apc", true, { Owner = GDI, Location = Apc1Waypoints[1], Cargo = Apc1Units })
Utils.Do(Apc1Waypoints, function(waypoint)
apc.AttackMove(waypoint)
end)
Trigger.OnAnyKilled(Atk6ActorTriggerActivator, function()
Reinforcements.ReinforceWithTransport(GDI, "apc", Atk6Units, Atk6WaypointsPart1, Atk6WaypointsPart2,
function(transport, cargo)
Utils.Do(cargo, IdleHunt)
end, IdleHunt)
end)
Utils.Do(Atk5ActorTriggerActivator, function(actor)
Trigger.OnDamaged(actor, function()
if Atk5TriggerSwitch then
return
Trigger.OnEnteredFootprint(Apc3Trigger, function(a, id)
if a.Owner == Nod then
MoveAndHunt({ apc }, Apc3Waypoints)
Trigger.RemoveFootprintTrigger(id)
end
Atk5TriggerSwitch = true
Reinforcements.ReinforceWithTransport(GDI, "apc", Atk5Units, Atk5Waypoints, nil,
function(transport, cargo)
transport.UnloadPassengers()
Utils.Do(cargo, IdleHunt)
end, IdleHunt)
end)
end)
Trigger.OnEnteredFootprint(Atk3CellTriggerActivator, function(a, id)
Trigger.OnEnteredFootprint(NorthernBridgeTrigger, function(a, id)
if a.Owner == Nod then
Trigger.RemoveFootprintTrigger(id)
if not CiviliansEvacuated then
CiviliansEvacuated = true
Utils.Do(Civilians, function(civ)
Utils.Do(FlightRouteBottom, function(waypoint)
civ.Move(waypoint.Location)
end)
for type, count in pairs({ ["e1"] = 3, ["e2"] = 2, ["mtnk"] = 1 }) do
MoveAndHunt(Utils.Take(count, GDI.GetActorsByType(type)), Atk3Waypoints)
Trigger.OnIdle(civ, function()
if civ.Location == GDIBase.Location then
Trigger.Clear(civ, "OnIdle")
else
civ.Move(GDIBase.Location)
end
end)
end)
end
end
end)
Trigger.OnEnteredFootprint(Atk2CellTriggerActivator, function(a, id)
if a.Owner == Nod then
MoveAndHunt(Utils.Take(1, GDI.GetActorsByType("jeep")), Atk2Waypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(GcivCellTriggerActivator, function(a, id)
Trigger.OnEnteredFootprint(SouthernBridgeTrigger, function(a, id)
if a.Owner == Nod then
MoveAndHunt(GcivActors, GcivWaypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
if not CiviliansEvacuated then
CiviliansEvacuated = true
Utils.Do(Civilians, function(civ)
Utils.Do(FlightRouteTop, function(waypoint)
civ.Move(waypoint.Location)
end)
Trigger.OnEnteredFootprint(Atk4CellTriggerActivator, function(a, id)
if a.Owner == Nod then
for type, count in pairs({ ["e1"] = 2,["e2"] = 1 }) do
MoveAndHunt(Utils.Take(count, GDI.GetActorsByType(type)), Atk4Waypoints)
Trigger.OnIdle(civ, function()
if civ.Location == GDIBase.Location then
Trigger.Clear(civ, "OnIdle")
else
civ.Move(GDIBase.Location)
end
end)
end)
end
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.AfterDelay(DateTime.Seconds(20), function()
local units = Reinforcements.Reinforce(GDI, Atk1Units, Spawnpoint, 15)
MoveAndHunt(units, Atk1Waypoints)
Trigger.OnDiscovered(Convoi, function()
MoveAndHunt({ Jeep1, Jeep2 }, Hummer1Waypoints)
end)
Trigger.AfterDelay(DateTime.Seconds(50), SendJeepReinforcements)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(40), SendGDIReinforcements)
Trigger.AfterDelay(DateTime.Minutes(2) + DateTime.Seconds(30), SendApcReinforcements)
Trigger.OnEnteredFootprint(DelxCellTriggerActivator, function(a, id)
if a.Owner == Nod then
PreventJeepReinforcements = true
Trigger.RemoveFootprintTrigger(id)
end
Trigger.OnAllRemovedFromWorld(Apc2Trigger, function()
MoveAndHunt({ Convoi }, Apc2Waypoints)
end)
Trigger.OnEnteredFootprint(DelyCellTriggerActivator, function(a, id)
if a.Owner == Nod then
PreventGDIReinforcements = true
Trigger.RemoveFootprintTrigger(id)
end
Trigger.OnAllRemovedFromWorld(TargetActors, function()
Nod.MarkCompletedObjective(KillCivilians)
end)
Trigger.OnEnteredFootprint(DelzCellTriggerActivator, function(a, id)
if a.Owner == Nod then
PreventApcReinforcements = true
Trigger.RemoveFootprintTrigger(id)
end
end)
InitObjectives(Nod)
Trigger.OnPlayerDiscovered(NodSupporter, CreateCivilians)
KillCivilians = Nod.AddObjective("Destroy the village and kill all civilians.")
KillGDI = Nod.AddObjective("Kill all GDI units in the area.", "Secondary", false)
Trigger.OnAllKilled(WinActorTriggerActivator, function()
Nod.MarkCompletedObjective(KillGDI)
if ProtectCivilians then
Nod.MarkCompletedObjective(ProtectCivilians)
end
end)
KillGDI = Nod.AddObjective("Kill all civilian GDI supporters.")
Camera.Position = CameraPoint.CenterPosition
Media.PlaySpeechNotification(Nod, "Reinforce")
Reinforcements.Reinforce(Nod, NodUnitsBuggy, { UnitsEntryBuggy.Location, UnitsRallyBuggy.Location }, 11)
Reinforcements.Reinforce(Nod, NodUnitsBikes, { UnitsEntryBikes.Location, UnitsRallyBikes.Location }, 15)
Reinforcements.Reinforce(Nod, NodUnitsGunner, { UnitsEntryGunner.Location, UnitsRallyGunner.Location }, 15)
Reinforcements.Reinforce(Nod, NodUnitsRocket, { UnitsEntryRocket.Location, UnitsRallyRocket.Location }, 15)
Camera.Position = waypoint6.CenterPosition
Trigger.AfterDelay(DateTime.Seconds(1), function()
Reinforcements.ReinforceWithTransport(Nod, "tran", NodUnitsBuggy, { EntryPointVehicle.Location, RallyPointVehicle.Location }, { EntryPointVehicle.Location })
end)
Reinforcements.ReinforceWithTransport(Nod, "tran", NodUnitsRocket, { EntryPointRocket.Location, RallyPointRocket.Location }, { EntryPointRocket.Location })
Reinforcements.ReinforceWithTransport(Nod, "tran", NodUnitsGunner, { EntryPointGunner.Location, RallyPointGunner.Location }, { EntryPointGunner.Location })
end
Tick = function()
if DateTime.GameTime > 2 and Nod.HasNoRequiredUnits() then
Nod.MarkFailedObjective(KillGDI)
Nod.MarkFailedObjective(KillCivilians)
end
if GDI.HasNoRequiredUnits() then
Nod.MarkCompletedObjective(KillGDI)
end
end

View File

@@ -2,128 +2,27 @@ World:
LuaScript:
Scripts: campaign-global.lua, nod04a.lua
MusicPlaylist:
StartingMusic: valkyrie
StartingMusic: warfare
VictoryMusic: nod_win1
MissionData:
Briefing: A small village friendly to our cause has been increasingly harassed by GDI, and the Brotherhood wishes you to assist them in their efforts.\n\nSeek out the enemy village and destroy it. The event will be disguised as a GDI attack.
BriefingVideo: nod4b.vqa
StartVideo: retro.vqa
LossVideo: deskill.vqa
SmudgeLayer@SCORCH:
InitialSmudges:
37,24: sc6,0
36,18: sc6,0
LossVideo: nodlose.vqa
Player:
EnemyWatcher:
PlayerResources:
DefaultCash: 0
^Palettes:
IndexedPlayerPalette:
PlayerIndex:
NodSupporter: 192, 164, 132, 155, 133, 197, 112, 12, 163, 132, 155, 133, 134, 197, 154, 198
IndexedPlayerPalette@units:
PlayerIndex:
NodSupporter: 192, 164, 132, 155, 133, 197, 112, 12, 163, 132, 155, 133, 134, 197, 154, 198
^Infantry:
^Vehicle:
AnnounceOnSeen:
^CivBuilding:
^Tank:
AnnounceOnSeen:
^CivBuildingHusk:
AnnounceOnSeen:
NUK2:
Buildable:
Prerequisites: ~disabled
GUN:
Buildable:
Prerequisites: ~disabled
CYCL:
Buildable:
Prerequisites: ~disabled
FIX:
Buildable:
Prerequisites: ~disabled
HPAD:
Buildable:
Prerequisites: ~disabled
OBLI:
Buildable:
Prerequisites: ~disabled
BRIK:
Buildable:
Prerequisites: ~disabled
TMPL:
Buildable:
Prerequisites: ~disabled
FTNK:
Buildable:
Prerequisites: ~disabled
STNK:
Buildable:
Prerequisites: ~disabled
ARTY:
Buildable:
Prerequisites: ~disabled
E5:
Buildable:
Prerequisites: ~disabled
RMBO:
Buildable:
Prerequisites: ~disabled
MLRS:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
SAM:
Buildable:
Prerequisites: ~disabled
AFLD:
Buildable:
Prerequisites: ~disabled
E4:
Buildable:
Prerequisites: ~disabled
SBAG:
Buildable:
Prerequisites: ~disabled
GTWR:
Buildable:
Prerequisites: ~disabled
WEAP:
Buildable:
Prerequisites: ~disabled
EYE:
Buildable:
Prerequisites: ~disabled
ATWR:
Buildable:
Prerequisites: ~disabled
TRAN:
RejectsOrders:
-Selectable:
RevealsShroud:
Range: 5c0
Interactable:

Binary file not shown.

View File

@@ -2,7 +2,7 @@ MapFormat: 11
RequiresMod: cnc
Title: 04b: Oum Hadjer
Title: 04b: Mao Civil War
Author: Westwood Studios
@@ -10,7 +10,7 @@ Tileset: DESERT
MapSize: 64,64
Bounds: 7,17,52,44
Bounds: 11,6,46,34
Visibility: MissionSelector
@@ -19,21 +19,26 @@ Categories: Campaign
LockPreview: True
Players:
PlayerReference@GDI:
Name: GDI
Bot: campaign
Faction: gdi
Color: F5D378
Enemies: Nod
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Faction: gdi
PlayerReference@NodSupporter:
Name: NodSupporter
NonCombatant: True
Faction: nod
Bot: campaign
PlayerReference@GDI:
Name: GDI
Faction: gdi
Color: F5D378
Enemies: Nod
Bot: campaign
PlayerReference@Nod:
Name: Nod
AllowBots: False
Playable: True
AllowBots: False
Required: True
LockFaction: True
Faction: nod
@@ -44,437 +49,491 @@ Players:
Enemies: GDI
Actors:
Actor0: sbag
Location: 58,26
Actor0: t08
Location: 34,20
Owner: Neutral
Actor1: sbag
Location: 57,26
Actor1: t18
Location: 33,18
Owner: Neutral
Actor2: sbag
Location: 56,26
Actor2: t18
Location: 33,9
Owner: Neutral
Actor3: sbag
Location: 55,26
Actor3: t08
Location: 41,5
Owner: Neutral
Actor4: sbag
Location: 54,26
Actor4: t18
Location: 42,15
Owner: Neutral
Actor5: sbag
Location: 53,26
Actor5: t08
Location: 45,26
Owner: Neutral
Actor6: sbag
Location: 52,26
Actor6: t08
Location: 56,29
Owner: Neutral
Actor7: sbag
Actor7: t08
Location: 55,29
Owner: Neutral
Actor8: t08
Location: 51,26
Owner: Neutral
Actor8: sbag
Location: 50,26
Actor9: t08
Location: 56,18
Owner: Neutral
Actor9: sbag
Location: 49,26
Actor10: t08
Location: 52,16
Owner: Neutral
Actor10: sbag
Location: 48,26
Actor11: t08
Location: 45,21
Owner: Neutral
Actor11: sbag
Location: 47,26
Actor12: t08
Location: 38,19
Owner: Neutral
Actor12: sbag
Location: 58,25
Actor13: t08
Location: 23,16
Owner: Neutral
Actor13: sbag
Location: 47,25
Actor14: t08
Location: 14,22
Owner: Neutral
Actor14: sbag
Location: 58,24
Actor15: t08
Location: 26,22
Owner: Neutral
Actor15: sbag
Location: 47,24
Actor16: t08
Location: 21,26
Owner: Neutral
Actor16: sbag
Location: 58,23
Actor17: t08
Location: 48,6
Owner: Neutral
Actor17: sbag
Location: 58,22
Actor18: t08
Location: 15,19
Owner: Neutral
Actor18: sbag
Location: 58,21
Actor19: t08
Location: 31,15
Owner: Neutral
Actor19: sbag
Location: 47,21
Actor20: t18
Location: 49,34
Owner: Neutral
Actor20: sbag
Location: 58,20
Actor21: t18
Location: 48,38
Owner: Neutral
Actor21: sbag
Location: 47,20
Actor22: t18
Location: 42,35
Owner: Neutral
Actor22: sbag
Location: 58,19
Actor23: t18
Location: 54,37
Owner: Neutral
Actor23: sbag
Location: 47,19
Actor24: t08
Location: 51,35
Owner: Neutral
Actor24: sbag
Location: 58,18
Actor25: t08
Location: 45,37
Owner: Neutral
Actor25: sbag
Location: 57,18
Actor26: t08
Location: 47,33
Owner: Neutral
Actor26: sbag
Location: 48,18
Actor27: t18
Location: 13,10
Owner: Neutral
Actor27: sbag
Location: 47,18
Actor28: t18
Location: 20,7
Owner: Neutral
Actor28: sbag
Location: 58,17
Actor30: t08
Location: 12,8
Owner: Neutral
Actor29: sbag
Location: 57,17
Actor31: t08
Location: 23,9
Owner: Neutral
Actor30: sbag
Location: 56,17
Owner: Neutral
Actor31: sbag
Location: 55,17
Owner: Neutral
Actor32: sbag
Location: 54,17
Owner: Neutral
Actor33: sbag
Location: 53,17
Owner: Neutral
Actor34: sbag
Location: 52,17
Owner: Neutral
Actor35: sbag
Location: 51,17
Owner: Neutral
Actor36: sbag
Location: 50,17
Owner: Neutral
Actor37: sbag
Location: 49,17
Owner: Neutral
Actor38: sbag
Location: 48,17
Owner: Neutral
Actor39: sbag
Location: 47,17
Owner: Neutral
Actor40: t18
Location: 47,50
Owner: Neutral
Actor41: t18
Location: 46,31
Owner: Neutral
Actor42: t08
Location: 39,26
Owner: Neutral
Actor43: t18
Location: 37,25
Owner: Neutral
Actor44: t18
Location: 27,28
Owner: Neutral
Actor45: t18
Location: 54,26
Owner: Neutral
Actor46: t18
Location: 49,18
Owner: Neutral
Actor47: t18
Location: 23,54
Owner: Neutral
Actor48: t18
Location: 34,40
Owner: Neutral
Actor49: t08
Location: 16,45
Owner: Neutral
Actor50: t08
Location: 14,53
Owner: Neutral
Actor52: t18
Location: 13,44
Owner: Neutral
Actor57: t18
Location: 36,49
Owner: Neutral
Actor58: t18
Location: 44,59
Owner: Neutral
Actor59: t18
Location: 11,37
Owner: Neutral
Actor60: t18
Location: 25,20
Owner: Neutral
Actor61: gtwr
Location: 46,21
Actor32: v35
Location: 48,38
Owner: NodSupporter
Actor33: v34
Location: 46,33
Owner: NodSupporter
Actor35: v32
Location: 54,35
Owner: NodSupporter
Actor36: v30
Location: 48,32
Owner: NodSupporter
Actor37: v30
Location: 52,34
Owner: NodSupporter
Actor38: v31
Location: 52,35
Owner: NodSupporter
Actor39: v32
Location: 46,37
Owner: NodSupporter
Health: 73
Actor41: v34
Location: 49,38
Owner: NodSupporter
Actor42: v35
Location: 46,32
Owner: NodSupporter
Actor43: v36
Location: 48,37
Owner: NodSupporter
Actor44: v32
Location: 49,33
Owner: NodSupporter
Actor45: v34
Location: 50,34
Owner: NodSupporter
Actor46: v20
Location: 15,10
Owner: GDI
Actor62: gtwr
Location: 46,24
Actor47: v21
Location: 12,10
Owner: GDI
Actor63: hosp
Location: 48,19
Actor48: v22
Location: 21,11
Owner: GDI
Actor64: pyle
Location: 50,20
Actor49: v23
Location: 22,8
Owner: GDI
Actor65: nuke
Location: 53,21
Actor50: v24
Location: 18,8
Owner: GDI
Actor66: nuke
Location: 52,23
Actor51: v25
Location: 13,7
Owner: GDI
Actor67: silo
Location: 56,24
Actor52: v26
Location: 20,9
Owner: GDI
Actor68: silo
Location: 55,22
Actor53: v27
Location: 15,9
Owner: GDI
Actor69: fact
Location: 53,18
Actor54: v27
Location: 14,9
Owner: GDI
Actor70: hq
Location: 56,19
Actor55: v27
Location: 13,9
Owner: GDI
Actor72: v36
Location: 12,54
Owner: Neutral
Actor73: v35
Location: 10,54
Owner: Neutral
Actor74: v34
Location: 11,53
Owner: Neutral
Actor75: v33
Location: 15,53
Owner: Neutral
Actor76: v32
Location: 12,53
Owner: Neutral
Actor77: v31
Location: 10,52
Owner: Neutral
Actor87: v23
Location: 9,59
Owner: Neutral
Jeep1: jeep
Location: 51,25
Actor56: v28
Location: 21,7
Owner: GDI
Jeep2: jeep
Location: 50,25
Actor57: v29
Location: 22,7
Owner: GDI
Actor94: jeep
Location: 39,48
Actor58: v30
Location: 21,10
Owner: GDI
Actor59: v30
Location: 23,8
Owner: GDI
Actor61: jeep
Location: 15,23
Owner: GDI
Facing: 640
Actor62: jeep
Location: 36,6
Owner: GDI
Facing: 384
Actor110: e1
Location: 40,49
Actor65: mtnk
Location: 29,10
Owner: GDI
Facing: 896
SubCell: 0
Actor111: e2
Location: 38,50
Facing: 256
Actor71: jeep
Location: 24,26
Owner: GDI
Facing: 384
Actor72: jeep
Location: 37,19
Owner: GDI
Facing: 128
Actor73: jeep
Location: 27,33
Owner: GDI
Facing: 384
Actor86: e1
Location: 43,15
Owner: GDI
Health: 88
Facing: 128
SubCell: 3
Actor99: e1
Location: 45,15
Owner: GDI
SubCell: 3
Actor100: e1
Location: 43,15
Owner: GDI
Health: 94
Facing: 128
SubCell: 4
Actor105: e1
Location: 46,14
Owner: GDI
Facing: 896
SubCell: 2
Actor112: e2
Location: 38,49
Actor106: e1
Location: 18,29
Owner: GDI
Facing: 512
SubCell: 0
Actor113: e2
Location: 35,40
Owner: GDI
SubCell: 0
Actor114: e2
Location: 35,40
Facing: 384
SubCell: 4
Actor107: e1
Location: 12,20
Owner: GDI
SubCell: 1
waypoint27: waypoint
Location: 31,36
Owner: Neutral
waypoint25: waypoint
Location: 40,43
Owner: Neutral
waypoint26: waypoint
Location: 28,27
Owner: Neutral
waypoint11: waypoint
Location: 54,29
Owner: Neutral
waypoint10: waypoint
Location: 45,28
Owner: Neutral
GDIBase: waypoint
Location: 52,22
Owner: Neutral
waypoint8: waypoint
Location: 43,22
Owner: Neutral
waypoint7: waypoint
Location: 31,22
Owner: Neutral
waypoint6: waypoint
Location: 21,25
Owner: Neutral
waypoint5: waypoint
Location: 18,39
Owner: Neutral
waypoint4: waypoint
Location: 10,48
Owner: Neutral
waypoint3: waypoint
Location: 19,48
Owner: Neutral
waypoint2: waypoint
Location: 27,55
Owner: Neutral
waypoint1: waypoint
Location: 48,56
Owner: Neutral
waypoint0: waypoint
Location: 54,42
Owner: Neutral
Convoi: apc
Location: 24,53
Actor108: e1
Location: 39,23
Owner: GDI
CivBuilding1: v26
Location: 8,51
SubCell: 1
Actor119: e2
Location: 18,8
Owner: GDI
CivBuilding2: v30
Location: 17,46
Facing: 512
SubCell: 3
Actor120: e2
Location: 16,10
Owner: GDI
CivBuilding3: v29
Location: 16,46
Owner: GDI
CivBuilding4: v28
Location: 15,45
Owner: GDI
CivBuilding5: v27
Location: 14,51
Owner: GDI
CivBuilding6: v27
Location: 13,51
Owner: GDI
CivBuilding7: v27
Location: 12,51
Owner: GDI
CivBuilding8: v26
Location: 14,46
Owner: GDI
CivBuilding9: v25
Location: 19,46
Owner: GDI
CivBuilding10: v24
Location: 8,47
Owner: GDI
CivBuilding11: v22
Location: 9,45
Owner: GDI
CivBuilding12: v22
Location: 18,52
Owner: GDI
CivBuilding13: v21
Location: 16,51
Owner: GDI
CivBuilding14: v20
Location: 8,45
Owner: GDI
Civilian1: c2
Location: 11,50
Owner: GDI
Facing: 896
SubCell: 0
Civilian2: c9
Location: 12,49
Owner: GDI
Facing: 896
Facing: 384
SubCell: 2
Civilian3: c8
Location: 14,49
Actor121: e2
Location: 27,19
Owner: GDI
Facing: 512
SubCell: 1
Actor122: e2
Location: 25,34
Owner: GDI
SubCell: 4
Actor123: e1
Location: 13,13
Owner: GDI
Facing: 512
SubCell: 1
Actor124: e1
Location: 13,13
Owner: GDI
Facing: 512
SubCell: 2
Actor125: e2
Location: 13,13
Owner: GDI
Facing: 512
SubCell: 4
Actor126: e2
Location: 13,13
Owner: GDI
Facing: 512
SubCell: 3
Actor127: e2
Location: 29,18
Owner: GDI
Facing: 256
SubCell: 3
Civilian4: c7
Location: 13,50
Owner: GDI
Facing: 896
SubCell: 0
Civilian5: c6
Location: 11,49
Owner: GDI
Facing: 128
SubCell: 0
Civilian6: c5
Location: 12,50
Owner: GDI
Facing: 896
SubCell: 2
Civilian7: c4
Location: 10,50
Owner: GDI
Facing: 128
SubCell: 1
Civilian8: c3
Location: 10,51
Owner: GDI
Facing: 128
SubCell: 1
Actor56: t18
Location: 19,51
Owner: Neutral
Actor55: t18
Location: 20,46
Owner: Neutral
Actor51: t08
Location: 13,46
Owner: Neutral
Actor53: t18
Location: 7,46
Owner: Neutral
Actor54: t18
Location: 11,51
Owner: Neutral
GDIGunner1: e1
Location: 41,50
Owner: GDI
Facing: 768
SubCell: 2
GDIGunner2: e1
Location: 39,50
Owner: GDI
SubCell: 0
GDIGunner3: e1
Location: 40,50
Actor128: e2
Location: 27,22
Owner: GDI
Facing: 256
SubCell: 1
Actor129: e2
Location: 36,10
Owner: GDI
Health: 38
Facing: 256
SubCell: 0
EntryPointVehicle: waypoint
Location: 33,17
Actor131: e1
Location: 21,12
Owner: GDI
Facing: 512
SubCell: 4
Actor132: e1
Location: 22,12
Owner: GDI
Facing: 512
SubCell: 3
Actor29: t18
Location: 14,7
Owner: Neutral
RallyPointVehicle: waypoint
Location: 33,30
waypoint27: waypoint
Location: 35,25
Owner: Neutral
EntryPointRocket: waypoint
Location: 35,17
waypoint26: waypoint
Location: 44,6
Owner: Neutral
RallyPointRocket: waypoint
Location: 35,32
waypoint9: waypoint
Location: 26,19
Owner: Neutral
EntryPointGunner: waypoint
Location: 31,17
waypoint8: waypoint
Location: 53,37
Owner: Neutral
RallyPointGunner: waypoint
Location: 31,32
waypoint7: waypoint
Location: 47,35
Owner: Neutral
CameraPoint: waypoint
Location: 32,22
waypoint6: waypoint
Location: 45,11
Owner: Neutral
waypoint5: waypoint
Location: 40,17
Owner: Neutral
waypoint4: waypoint
Location: 39,34
Owner: Neutral
waypoint3: waypoint
Location: 21,38
Owner: Neutral
waypoint2: waypoint
Location: 20,28
Owner: Neutral
waypoint1: waypoint
Location: 13,26
Owner: Neutral
waypoint0: waypoint
Location: 13,14
Owner: Neutral
Civilian1: v33
Location: 48,34
Owner: Neutral
Health: 62
Civilian2: v33
Location: 54,37
Owner: Neutral
Soldier1: e2
Location: 22,15
Owner: GDI
Facing: 384
SubCell: 2
Soldier2: e1
Location: 17,14
Owner: GDI
Facing: 384
SubCell: 4
Soldier3: e2
Location: 13,16
Owner: GDI
Facing: 384
SubCell: 1
GDICiv1: c9
Location: 20,12
Owner: GDI
SubCell: 3
GDICiv2: c4
Location: 18,7
Owner: GDI
SubCell: 0
GDICiv3: c9
Location: 19,12
Owner: GDI
SubCell: 1
GDICiv4: c8
Location: 16,8
Owner: GDI
SubCell: 3
GDICiv5: c7
Location: 17,9
Owner: GDI
SubCell: 1
GDICiv6: c6
Location: 24,13
Owner: GDI
SubCell: 2
GDICiv7: c5
Location: 20,7
Owner: GDI
SubCell: 4
GDICiv8: c4
Location: 14,12
Owner: GDI
SubCell: 1
GDICiv9: c3
Location: 15,10
Owner: GDI
SubCell: 2
GDICiv10: c2
Location: 14,10
Owner: GDI
SubCell: 1
GDICiv11: c1
Location: 17,7
Owner: GDI
SubCell: 2
GDICiv12: c1
Location: 20,10
Owner: GDI
SubCell: 1
GDICiv13: c1
Location: 20,11
Owner: GDI
SubCell: 3
UnitsEntryBuggy: waypoint
Location: 52,6
Owner: Neutral
UnitsRallyBuggy: waypoint
Location: 52,10
Owner: Neutral
UnitsEntryBikes: waypoint
Location: 50,6
Owner: Neutral
UnitsRallyBikes: waypoint
Location: 50,10
Owner: Neutral
UnitsEntryGunner: waypoint
Location: 54,6
Owner: Neutral
UnitsRallyGunner: waypoint
Location: 54,10
Owner: Neutral
UnitsEntryRocket: waypoint
Location: 56,12
Owner: Neutral
UnitsRallyRocket: waypoint
Location: 54,12
Owner: Neutral
NodCiv1: c8
Location: 46,36
Owner: NodSupporter
Facing: 512
SubCell: 2
NodCiv2: e3
Location: 48,36
Owner: NodSupporter
Facing: 768
SubCell: 4
NodCiv3: c4
Location: 52,38
Owner: NodSupporter
Facing: 768
SubCell: 1
NodCiv4: c3
Location: 45,35
Owner: NodSupporter
Facing: 128
SubCell: 4
NodCiv5: c1
Location: 51,36
Owner: NodSupporter
Facing: 896
SubCell: 2
NodCiv6: c2
Location: 45,34
Owner: NodSupporter
Facing: 0
SubCell: 1
NodCiv7: c4
Location: 54,36
Owner: NodSupporter
Facing: 640
SubCell: 0
NodCiv8: c5
Location: 50,37
Owner: NodSupporter
Facing: 384
SubCell: 2
NodCiv9: c9
Location: 47,34
Owner: NodSupporter
Facing: 768
SubCell: 2
Gciv1: e1
Location: 38,9
Owner: GDI
Facing: 512
SubCell: 0
Gciv2: e1
Location: 18,10
Owner: GDI
Facing: 640
SubCell: 2
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml

View File

@@ -7,124 +7,201 @@
information, see COPYING.
]]
NodUnitsBuggy = { "bggy", "bggy", "bike", "bike" }
NodUnitsRocket = { "e3", "e3", "e3", "e3", "e3", "e3" }
NodUnitsBuggy = { "bggy", "bggy", "bggy", "bggy", "bggy" }
NodUnitsBikes = { "bike", "bike", "bike" }
NodUnitsGunner = { "e1", "e1", "e1", "e1", "e1", "e1" }
NodUnitsRocket = { "e3", "e3", "e3", "e3", "e3", "e3" }
Apc3Trigger = { CPos.New(28,58), CPos.New(27,58), CPos.New(28,57), CPos.New(27,57), CPos.New(28,56), CPos.New(27,56), CPos.New(28,55), CPos.New(27,55), CPos.New(28,54), CPos.New(27,54), CPos.New(28,53), CPos.New(27,53) }
NorthernBridgeTrigger = { CPos.New(13,41), CPos.New(14,41), CPos.New(15,41), CPos.New(14,42), CPos.New(15,42), CPos.New(16,42) }
SouthernBridgeTrigger = { CPos.New(26,54), CPos.New(25,54), CPos.New(24,54), CPos.New(25,53), CPos.New(24,53), CPos.New(23,53) }
Atk6Units = { "c1", "c2", "c3" }
Atk5Units = { "e1", "e1", "e2", "e2" }
Atk1Units = { "e1", "e1" }
JeepReinforcements = { "jeep" }
GDIUnits = { "e1", "e1", "e2" }
ApcUnits = { "e1", "e1", "e2", "e2" }
Apc1Units = { "c2", "c3", "c4", "c5" }
Spawnpoint = { waypoint0.Location }
Atk6WaypointsPart1 = { waypoint1.Location, waypoint2.Location, waypoint3.Location, waypoint4.Location }
Atk6WaypointsPart2 = { waypoint7.Location, waypoint8.Location, waypoint7.Location }
Atk5Waypoints = { waypoint0.Location, waypoint9.Location}
Atk3Waypoints = { waypoint0 }
Atk2Waypoints = { waypoint6 }
GcivWaypoints = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint4 }
Atk1Waypoints = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint4, waypoint5, waypoint6 }
Atk4Waypoints = { waypoint0, waypoint9 }
Civilians = { Civilian1, Civilian2, Civilian3, Civilian4, Civilian5, Civilian6, Civilian7, Civilian8 }
TargetActors = { Civilian1, Civilian2, Civilian3, Civilian4, Civilian5, Civilian6, Civilian7, Civilian8, CivBuilding1, CivBuilding2, CivBuilding3, CivBuilding4, CivBuilding5, CivBuilding6, CivBuilding7, CivBuilding8, CivBuilding9, CivBuilding10, CivBuilding11, CivBuilding12, CivBuilding13, CivBuilding14 }
Apc2Trigger = { GDIGunner1, GDIGunner2, GDIGunner3 }
Atk6ActorTriggerActivator = { Civilian1, Civilian2 }
Atk5ActorTriggerActivator = { Soldier1, Soldier2, Soldier3, Actor105 }
WinActorTriggerActivator = { GDICiv1, GDICiv2, GDICiv3, GDICiv4, GDICiv5, GDICiv6, GDICiv7, GDICiv8, GDICiv9, GDICiv11, GDICiv12, GDICiv13 }
GcivActors = { Gcvi1, Gciv2, GDICiv2, GDICiv9, GDICiv10, GDICiv11 }
Apc1Waypoints = { waypoint0.Location, waypoint11.Location, waypoint10.Location, waypoint8.Location, GDIBase.Location }
Apc2Waypoints = { waypoint8, waypoint7, waypoint6, waypoint5, waypoint4 }
Apc3Waypoints = { waypoint3, waypoint2, waypoint1, waypoint0, waypoint11, waypoint10, waypoint8, GDIBase }
FlightRouteTop = { waypoint4, waypoint5, waypoint6, waypoint7, waypoint8, GDIBase }
FlightRouteBottom = { waypoint3, waypoint2, waypoint1, waypoint11, waypoint10, waypoint8, GDIBase }
Hummer1Waypoints = { waypoint8, waypoint7, waypoint6, waypoint5, waypoint4, waypoint3, waypoint2, waypoint1, waypoint0, waypoint11, waypoint10, waypoint8 }
Atk2CellTriggerActivator = { CPos.New(41,22), CPos.New(40,22), CPos.New(39,22), CPos.New(41,21), CPos.New(40,21), CPos.New(39,21) }
Atk3CellTriggerActivator = { CPos.New(18,18), CPos.New(17,18), CPos.New(16,18), CPos.New(15,18), CPos.New(14,18), CPos.New(13,18), CPos.New(12,18), CPos.New(11,18), CPos.New(24,17), CPos.New(23,17), CPos.New(22,17), CPos.New(21,17), CPos.New(20,17), CPos.New(19,17), CPos.New(17,17), CPos.New(16,17), CPos.New(15,17), CPos.New(14,17), CPos.New(13,17), CPos.New(12,17), CPos.New(11,17) }
Atk4CellTriggerActivator = { CPos.New(29,28), CPos.New(28,28), CPos.New(29,27), CPos.New(28,27), CPos.New(29,26), CPos.New(28,26), CPos.New(29,25), CPos.New(28,25), CPos.New(29,24), CPos.New(28,24), CPos.New(29,23), CPos.New(28,23), CPos.New(29,22), CPos.New(28,22) }
GcivCellTriggerActivator = { CPos.New(51,17), CPos.New(50,17), CPos.New(49,17), CPos.New(48,17), CPos.New(47,17), CPos.New(46,17), CPos.New(45,17), CPos.New(44,17), CPos.New(43,17), CPos.New(42,17), CPos.New(41,17), CPos.New(40,17), CPos.New(39,17), CPos.New(38,17), CPos.New(37,17), CPos.New(36,17), CPos.New(35,17), CPos.New(52,16), CPos.New(51,16), CPos.New(50,16), CPos.New(49,16), CPos.New(48,16), CPos.New(47,16), CPos.New(46,16), CPos.New(45,16), CPos.New(44,16), CPos.New(43,16), CPos.New(42,16), CPos.New(41,16), CPos.New(40,16), CPos.New(39,16), CPos.New(38,16), CPos.New(37,16), CPos.New(36,16), CPos.New(35,16) }
DelxCellTriggerActivator = { CPos.New(42,20), CPos.New(41,20), CPos.New(40,20), CPos.New(39,20), CPos.New(38,20) }
DelyCellTriggerActivator = { CPos.New(31,28), CPos.New(30,28), CPos.New(31,27), CPos.New(30,27), CPos.New(31,26), CPos.New(30,26), CPos.New(31,25), CPos.New(30,25), CPos.New(31,24), CPos.New(30,24) }
DelzCellTriggerActivator = { CPos.New(18,20), CPos.New(17,20), CPos.New(16,20), CPos.New(15,20), CPos.New(14,20), CPos.New(13,20), CPos.New(12,20), CPos.New(11,20), CPos.New(25,19), CPos.New(24,19), CPos.New(23,19), CPos.New(22,19), CPos.New(21,19), CPos.New(20,19), CPos.New(19,19), CPos.New(18,19), CPos.New(17,19), CPos.New(16,19), CPos.New(15,19), CPos.New(14,19), CPos.New(13,19), CPos.New(12,19), CPos.New(11,19), CPos.New(25,18), CPos.New(24,18), CPos.New(23,18), CPos.New(22,18), CPos.New(21,18), CPos.New(20,18), CPos.New(19,18) }
NodCiviliansActors = { NodCiv1, NodCiv2, NodCiv3, NodCiv4, NodCiv5, NodCiv6, NodCiv7, NodCiv8, NodCiv9 }
SendJeepReinforcements = function()
if not PreventJeepReinforcements then
local units = Reinforcements.Reinforce(GDI, JeepReinforcements, Spawnpoint, 15)
MoveAndHunt(units, Atk2Waypoints)
end
end
SendGDIReinforcements = function()
if not PreventGDIReinforcements then
local units = Reinforcements.Reinforce(GDI, GDIUnits, Spawnpoint, 15)
MoveAndHunt(units, Atk4Waypoints)
end
end
SendApcReinforcements = function()
if not PreventApcReinforcements then
Reinforcements.ReinforceWithTransport(GDI, "apc", ApcUnits, Atk5Waypoints, nil,
function(transport, cargo)
transport.UnloadPassengers()
Utils.Do(cargo, IdleHunt)
end, IdleHunt)
end
end
CreateCivilians = function(actor, discoverer)
Utils.Do(NodCiviliansActors, function(actor)
actor.Owner = Nod
end)
ProtectCivilians = Nod.AddPrimaryObjective("Protect the civilians that support Nod.")
Trigger.OnAllKilled(NodCiviliansActors, function()
Nod.MarkFailedObjective(ProtectCivilians)
end)
Utils.Do(GcivActors, function(actor)
if not actor.IsDead then
actor.AttackMove(waypoint7.Location)
actor.AttackMove(waypoint8.Location)
IdleHunt(actor)
end
end)
end
WorldLoaded = function()
Nod = Player.GetPlayer("Nod")
NodSupporter = Player.GetPlayer("NodSupporter")
GDI = Player.GetPlayer("GDI")
Trigger.AfterDelay(DateTime.Seconds(3), function()
local apc = Actor.Create("apc", true, { Owner = GDI, Location = Apc1Waypoints[1], Cargo = Apc1Units })
Utils.Do(Apc1Waypoints, function(waypoint)
apc.AttackMove(waypoint)
end)
Trigger.OnEnteredFootprint(Apc3Trigger, function(a, id)
if a.Owner == Nod then
MoveAndHunt({ apc }, Apc3Waypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
end)
Trigger.OnEnteredFootprint(NorthernBridgeTrigger, function(a, id)
if a.Owner == Nod then
if not CiviliansEvacuated then
CiviliansEvacuated = true
Utils.Do(Civilians, function(civ)
Utils.Do(FlightRouteBottom, function(waypoint)
civ.Move(waypoint.Location)
end)
Trigger.OnIdle(civ, function()
if civ.Location == GDIBase.Location then
Trigger.Clear(civ, "OnIdle")
else
civ.Move(GDIBase.Location)
end
end)
end)
end
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(SouthernBridgeTrigger, function(a, id)
if a.Owner == Nod then
if not CiviliansEvacuated then
CiviliansEvacuated = true
Utils.Do(Civilians, function(civ)
Utils.Do(FlightRouteTop, function(waypoint)
civ.Move(waypoint.Location)
end)
Trigger.OnIdle(civ, function()
if civ.Location == GDIBase.Location then
Trigger.Clear(civ, "OnIdle")
else
civ.Move(GDIBase.Location)
end
end)
end)
end
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnDiscovered(Convoi, function()
MoveAndHunt({ Jeep1, Jeep2 }, Hummer1Waypoints)
end)
Trigger.OnAllRemovedFromWorld(Apc2Trigger, function()
MoveAndHunt({ Convoi }, Apc2Waypoints)
end)
Trigger.OnAllRemovedFromWorld(TargetActors, function()
Nod.MarkCompletedObjective(KillCivilians)
end)
InitObjectives(Nod)
KillCivilians = Nod.AddObjective("Destroy the village and kill all civilians.")
KillGDI = Nod.AddObjective("Kill all GDI units in the area.", "Secondary", false)
Trigger.OnAnyKilled(Atk6ActorTriggerActivator, function()
Reinforcements.ReinforceWithTransport(GDI, "apc", Atk6Units, Atk6WaypointsPart1, Atk6WaypointsPart2,
function(transport, cargo)
Utils.Do(cargo, IdleHunt)
end, IdleHunt)
end)
Camera.Position = CameraPoint.CenterPosition
Utils.Do(Atk5ActorTriggerActivator, function(actor)
Trigger.OnDamaged(actor, function()
if Atk5TriggerSwitch then
return
end
Atk5TriggerSwitch = true
Reinforcements.ReinforceWithTransport(GDI, "apc", Atk5Units, Atk5Waypoints, nil,
function(transport, cargo)
transport.UnloadPassengers()
Utils.Do(cargo, IdleHunt)
end, IdleHunt)
end)
end)
Trigger.OnEnteredFootprint(Atk3CellTriggerActivator, function(a, id)
if a.Owner == Nod then
Trigger.RemoveFootprintTrigger(id)
for type, count in pairs({ ["e1"] = 3, ["e2"] = 2, ["mtnk"] = 1 }) do
MoveAndHunt(Utils.Take(count, GDI.GetActorsByType(type)), Atk3Waypoints)
end
end
end)
Trigger.OnEnteredFootprint(Atk2CellTriggerActivator, function(a, id)
if a.Owner == Nod then
MoveAndHunt(Utils.Take(1, GDI.GetActorsByType("jeep")), Atk2Waypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(GcivCellTriggerActivator, function(a, id)
if a.Owner == Nod then
MoveAndHunt(GcivActors, GcivWaypoints)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(Atk4CellTriggerActivator, function(a, id)
if a.Owner == Nod then
for type, count in pairs({ ["e1"] = 2,["e2"] = 1 }) do
MoveAndHunt(Utils.Take(count, GDI.GetActorsByType(type)), Atk4Waypoints)
end
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.AfterDelay(DateTime.Seconds(20), function()
local units = Reinforcements.Reinforce(GDI, Atk1Units, Spawnpoint, 15)
MoveAndHunt(units, Atk1Waypoints)
end)
Trigger.AfterDelay(DateTime.Seconds(50), SendJeepReinforcements)
Trigger.AfterDelay(DateTime.Minutes(1) + DateTime.Seconds(40), SendGDIReinforcements)
Trigger.AfterDelay(DateTime.Minutes(2) + DateTime.Seconds(30), SendApcReinforcements)
Trigger.OnEnteredFootprint(DelxCellTriggerActivator, function(a, id)
if a.Owner == Nod then
PreventJeepReinforcements = true
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(DelyCellTriggerActivator, function(a, id)
if a.Owner == Nod then
PreventGDIReinforcements = true
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(DelzCellTriggerActivator, function(a, id)
if a.Owner == Nod then
PreventApcReinforcements = true
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnPlayerDiscovered(NodSupporter, CreateCivilians)
Trigger.OnAllKilled(WinActorTriggerActivator, function()
Nod.MarkCompletedObjective(KillGDI)
if ProtectCivilians then
Nod.MarkCompletedObjective(ProtectCivilians)
end
end)
KillGDI = Nod.AddObjective("Kill all civilian GDI supporters.")
Media.PlaySpeechNotification(Nod, "Reinforce")
Trigger.AfterDelay(DateTime.Seconds(1), function()
Reinforcements.ReinforceWithTransport(Nod, "tran", NodUnitsBuggy, { EntryPointVehicle.Location, RallyPointVehicle.Location }, { EntryPointVehicle.Location })
end)
Reinforcements.ReinforceWithTransport(Nod, "tran", NodUnitsRocket, { EntryPointRocket.Location, RallyPointRocket.Location }, { EntryPointRocket.Location })
Reinforcements.ReinforceWithTransport(Nod, "tran", NodUnitsGunner, { EntryPointGunner.Location, RallyPointGunner.Location }, { EntryPointGunner.Location })
Reinforcements.Reinforce(Nod, NodUnitsBuggy, { UnitsEntryBuggy.Location, UnitsRallyBuggy.Location }, 11)
Reinforcements.Reinforce(Nod, NodUnitsBikes, { UnitsEntryBikes.Location, UnitsRallyBikes.Location }, 15)
Reinforcements.Reinforce(Nod, NodUnitsGunner, { UnitsEntryGunner.Location, UnitsRallyGunner.Location }, 15)
Reinforcements.Reinforce(Nod, NodUnitsRocket, { UnitsEntryRocket.Location, UnitsRallyRocket.Location }, 15)
Camera.Position = waypoint6.CenterPosition
end
Tick = function()
if DateTime.GameTime > 2 and Nod.HasNoRequiredUnits() then
Nod.MarkFailedObjective(KillCivilians)
end
if GDI.HasNoRequiredUnits() then
Nod.MarkCompletedObjective(KillGDI)
Nod.MarkFailedObjective(KillGDI)
end
end

View File

@@ -2,27 +2,128 @@ World:
LuaScript:
Scripts: campaign-global.lua, nod04b.lua
MusicPlaylist:
StartingMusic: warfare
StartingMusic: valkyrie
VictoryMusic: nod_win1
MissionData:
Briefing: A small village friendly to our cause has been increasingly harassed by GDI, and the Brotherhood wishes you to assist them in their efforts.\n\nSeek out the enemy village and destroy it. The event will be disguised as a GDI attack.
BriefingVideo: nod4b.vqa
LossVideo: nodlose.vqa
StartVideo: retro.vqa
LossVideo: deskill.vqa
SmudgeLayer@SCORCH:
InitialSmudges:
37,24: sc6,0
36,18: sc6,0
Player:
EnemyWatcher:
PlayerResources:
DefaultCash: 0
^Vehicle:
^Palettes:
IndexedPlayerPalette:
PlayerIndex:
NodSupporter: 192, 164, 132, 155, 133, 197, 112, 12, 163, 132, 155, 133, 134, 197, 154, 198
IndexedPlayerPalette@units:
PlayerIndex:
NodSupporter: 192, 164, 132, 155, 133, 197, 112, 12, 163, 132, 155, 133, 134, 197, 154, 198
^Infantry:
AnnounceOnSeen:
^Tank:
^CivBuilding:
AnnounceOnSeen:
TRAN:
RejectsOrders:
-Selectable:
RevealsShroud:
Range: 5c0
Interactable:
^CivBuildingHusk:
AnnounceOnSeen:
NUK2:
Buildable:
Prerequisites: ~disabled
GUN:
Buildable:
Prerequisites: ~disabled
CYCL:
Buildable:
Prerequisites: ~disabled
FIX:
Buildable:
Prerequisites: ~disabled
HPAD:
Buildable:
Prerequisites: ~disabled
OBLI:
Buildable:
Prerequisites: ~disabled
BRIK:
Buildable:
Prerequisites: ~disabled
TMPL:
Buildable:
Prerequisites: ~disabled
FTNK:
Buildable:
Prerequisites: ~disabled
STNK:
Buildable:
Prerequisites: ~disabled
ARTY:
Buildable:
Prerequisites: ~disabled
E5:
Buildable:
Prerequisites: ~disabled
RMBO:
Buildable:
Prerequisites: ~disabled
MLRS:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
SAM:
Buildable:
Prerequisites: ~disabled
AFLD:
Buildable:
Prerequisites: ~disabled
E4:
Buildable:
Prerequisites: ~disabled
SBAG:
Buildable:
Prerequisites: ~disabled
GTWR:
Buildable:
Prerequisites: ~disabled
WEAP:
Buildable:
Prerequisites: ~disabled
EYE:
Buildable:
Prerequisites: ~disabled
ATWR:
Buildable:
Prerequisites: ~disabled

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB