Merge pull request #9550 from clemty/gdi06

Add gdi06
This commit is contained in:
Matthias Mailänder
2015-10-25 18:27:33 +01:00
7 changed files with 1405 additions and 0 deletions

View File

@@ -32,6 +32,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts",
mods\cnc\maps\gdi04c\gdi04c.lua = mods\cnc\maps\gdi04c\gdi04c.lua mods\cnc\maps\gdi04c\gdi04c.lua = mods\cnc\maps\gdi04c\gdi04c.lua
mods\cnc\maps\gdi05a\gdi05a.lua = mods\cnc\maps\gdi05a\gdi05a.lua mods\cnc\maps\gdi05a\gdi05a.lua = mods\cnc\maps\gdi05a\gdi05a.lua
mods\cnc\maps\gdi05b\gdi05b.lua = mods\cnc\maps\gdi05b\gdi05b.lua mods\cnc\maps\gdi05b\gdi05b.lua = mods\cnc\maps\gdi05b\gdi05b.lua
mods\cnc\maps\gdi06\gdi06.lua = mods\cnc\maps\gdi06\gdi06.lua
mods\cnc\maps\nod01\nod01.lua = mods\cnc\maps\nod01\nod01.lua mods\cnc\maps\nod01\nod01.lua = mods\cnc\maps\nod01\nod01.lua
mods\cnc\maps\nod02a\nod02a.lua = mods\cnc\maps\nod02a\nod02a.lua mods\cnc\maps\nod02a\nod02a.lua = mods\cnc\maps\nod02a\nod02a.lua
mods\cnc\maps\nod02b\nod02b.lua = mods\cnc\maps\nod02b\nod02b.lua mods\cnc\maps\nod02b\nod02b.lua = mods\cnc\maps\nod02b\nod02b.lua

View File

@@ -0,0 +1,233 @@
IslandSamSites = { SAM01, SAM02 }
NodBase = { PowerPlant1, PowerPlant2, PowerPlant3, PowerPlant4, PowerPlant5, Refinery, HandOfNod, Silo1, Silo2, Silo3, Silo4, ConYard, CommCenter }
FlameSquad = { FlameGuy1, FlameGuy2, FlameGuy3 }
FlameSquadRoute = { waypoint4.Location, waypoint12.Location, waypoint4.Location, waypoint6.Location }
FootPatrol1Squad = { MiniGunner1, MiniGunner2, RocketSoldier1 }
FootPatrol1Route = {
waypoint4.Location,
waypoint12.Location,
waypoint13.Location,
waypoint3.Location,
waypoint2.Location,
waypoint7.Location,
waypoint6.Location
}
FootPatrol2Squad = { MiniGunner3, MiniGunner4 }
FootPatrol2Route = {
waypoint14.Location,
waypoint16.Location
}
FootPatrol3Squad = { MiniGunner5, MiniGunner6 }
FootPatrol3Route = {
waypoint15.Location,
waypoint17.Location
}
FootPatrol4Route = {
waypoint4.Location,
waypoint5.Location
}
FootPatrol5Squad = { RocketSoldier2, RocketSoldier3, RocketSoldier4 }
FootPatrol5Route = {
waypoint4.Location,
waypoint12.Location,
waypoint13.Location,
waypoint8.Location,
waypoint9.Location,
}
Buggy1Route = {
waypoint6.Location,
waypoint7.Location,
waypoint2.Location,
waypoint8.Location,
waypoint9.Location,
waypoint8.Location,
waypoint2.Location,
waypoint7.Location
}
Buggy2Route = {
waypoint6.Location,
waypoint10.Location,
waypoint11.Location,
waypoint10.Location
}
HuntTriggerActivator = { SAM03, SAM04, SAM05, SAM06, LightTank1, LightTank2, LightTank3, Buggy1, Buggy2, Turret1, Turret2 }
AttackCellTriggerActivator = { CPos.New(57,26), CPos.New(56,26), CPos.New(57,25), CPos.New(56,25), CPos.New(57,24), CPos.New(56,24), CPos.New(57,23), CPos.New(56,23), CPos.New(57,22), CPos.New(56,22), CPos.New(57,21), CPos.New(56,21) }
AttackUnits = { LightTank2, LightTank3 }
KillCounter = 0
WorldLoaded = function()
player = Player.GetPlayer("GDI")
enemy = Player.GetPlayer("Nod")
civilian = Player.GetPlayer("Neutral")
Trigger.OnObjectiveAdded(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
end)
Trigger.OnObjectiveCompleted(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
end)
Trigger.OnObjectiveFailed(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
Trigger.OnPlayerWon(player, function()
Media.PlaySpeechNotification(player, "Win")
end)
Trigger.OnPlayerLost(player, function()
Media.PlaySpeechNotification(player, "Lose")
end)
if Map.Difficulty == "Easy" then
CommandoType = "rmbo.easy"
KillCounterHuntThreshold = 30
elseif Map.Difficulty == "Hard" then
CommandoType = "rmbo.hard"
KillCounterHuntThreshold = 15
else
CommandoType = "rmbo"
KillCounterHuntThreshold = 20
end
destroyObjective = player.AddPrimaryObjective("Destroy the Nod ********.")
Trigger.OnKilled(Airfield, function()
player.MarkCompletedObjective(destroyObjective)
end)
Utils.Do(NodBase, function(structure)
Trigger.OnKilled(structure, function()
player.MarkCompletedObjective(destroyObjective)
end)
end)
Trigger.OnAllKilled(IslandSamSites, function()
TransportFlare = Actor.Create('flare', true, { Owner = player, Location = Flare.Location })
Reinforcements.ReinforceWithTransport(player, 'tran', nil, { lstStart.Location, TransportRally.Location })
end)
Trigger.OnKilled(CivFleeTrigger, function()
if not Civilian.IsDead then
Civilian.Move(CivHideOut.Location)
end
end)
Trigger.OnKilled(AttackTrigger2, function()
Utils.Do(FlameSquad, function(unit)
unit.Patrol(FlameSquadRoute, false)
end)
end)
Trigger.OnEnteredFootprint(AttackCellTriggerActivator, function(a, id)
if a.Owner == player then
Utils.Do(AttackUnits, function(unit)
unit.AttackMove(waypoint10.Location)
end)
Trigger.RemoveFootprintTrigger(id)
end
end)
Utils.Do(HuntTriggerActivator, function(unit)
Trigger.OnDamaged(unit, HuntTriggerFunction)
end)
Trigger.AfterDelay(5, NodKillCounter)
Utils.Do(FootPatrol1Squad, function(unit)
unit.Patrol(FootPatrol1Route, true)
end)
Utils.Do(FootPatrol2Squad, function(unit)
unit.Patrol(FootPatrol2Route, true, 50)
end)
Utils.Do(FootPatrol3Squad, function(unit)
unit.Patrol(FootPatrol3Route, true, 50)
end)
Utils.Do(FootPatrol5Squad, function(unit)
unit.Patrol(FootPatrol5Route, true, 50)
end)
AttackTrigger2.Patrol(FootPatrol4Route, true, 25)
LightTank1.Move(waypoint6.Location)
Buggy1.Patrol(Buggy1Route, true, 25)
Buggy2.Patrol(Buggy2Route, true, 25)
Camera.Position = UnitsRally.CenterPosition
Reinforce({ CommandoType })
end
Tick = function()
if DateTime.GameTime > DateTime.Seconds(5) and player.HasNoRequiredUnits() then
player.MarkFailedObjective(destroyObjective)
end
end
Reinforce = function(units)
Media.PlaySpeechNotification(player, "Reinforce")
ReinforceWithLandingCraft(units, lstStart.Location, lstEnd.Location, UnitsRally.Location)
end
ReinforceWithLandingCraft = function(units, transportStart, transportUnload, rallypoint)
local transport = Actor.Create("oldlst", true, { Owner = player, Facing = 0, Location = transportStart })
local subcell = 0
Utils.Do(units, function(a)
transport.LoadPassenger(Actor.Create(a, false, { Owner = transport.Owner, Facing = transport.Facing, Location = transportUnload, SubCell = subcell }))
subcell = subcell + 1
end)
transport.ScriptedMove(transportUnload)
transport.CallFunc(function()
Utils.Do(units, function()
local a = transport.UnloadPassenger()
a.IsInWorld = true
a.MoveIntoWorld(transport.Location - CVec.New(0, 1))
if rallypoint ~= nil then
a.Move(rallypoint)
end
end)
end)
transport.Wait(5)
transport.ScriptedMove(transportStart)
transport.Destroy()
end
NodKillCounter = function()
local enemyUnits = enemy.GetGroundAttackers()
Utils.Do(enemyUnits, function(unit)
Trigger.OnKilled(unit, function()
KillCounter = KillCounter + 1
if KillCounter >= KillCounterHuntThreshold then
HuntTriggerFunction()
end
end)
end)
end
HuntTriggerFunction = function()
local list = enemy.GetGroundAttackers()
Utils.Do(list, function(unit)
IdleHunt(unit)
end)
end
IdleHunt = function(unit)
if not unit.IsDead then
Trigger.OnIdle(unit, unit.Hunt)
end
end

BIN
mods/cnc/maps/gdi06/map.bin Normal file

Binary file not shown.

BIN
mods/cnc/maps/gdi06/map.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

1170
mods/cnc/maps/gdi06/map.yaml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -7,6 +7,7 @@ GDI Campaign:
./mods/cnc/maps/gdi04c ./mods/cnc/maps/gdi04c
./mods/cnc/maps/gdi05a ./mods/cnc/maps/gdi05a
./mods/cnc/maps/gdi05b ./mods/cnc/maps/gdi05b
./mods/cnc/maps/gdi06
Nod Campaign: Nod Campaign:
./mods/cnc/maps/nod01 ./mods/cnc/maps/nod01