Add Counterstrike mission Fall of Greece 1: Personal War

This commit is contained in:
Smittytron
2020-05-13 14:21:51 -05:00
committed by abcdefg30
parent fc4bd131cd
commit 6871873e93
7 changed files with 2002 additions and 0 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,534 @@
--[[
Copyright 2007-2020 The OpenRA Developers (see AUTHORS)
This file is part of OpenRA, which is free software. It is made
available to you under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version. For more
information, see COPYING.
]]
FootprintTrigger1 = { CPos.New(77, 85), CPos.New(77, 86), CPos.New(77, 87), CPos.New(77, 88) }
Trigger1Rifles = { Rifle1, Rifle2, Rifle3, Rifle4 }
DoomedHeliPath = { DoomedHeliEntry.Location, DoomedHeli.Location }
FootprintTrigger2 = { CPos.New(90, 82), CPos.New(91, 82), CPos.New(93, 82), CPos.New(94, 82), CPos.New(95, 82), CPos.New(96, 82), CPos.New(97, 82), CPos.New(98, 82), CPos.New(99, 82), CPos.New(102, 82) }
Grenadiers = { "e2", "e2", "e2", "e2", "e2" }
FootprintTrigger3 = { CPos.New(88, 77), CPos.New(88, 76), CPos.New(91, 75), CPos.New(92, 75), CPos.New(93, 75), CPos.New(94, 75), CPos.New(95, 75), CPos.New(96, 75), CPos.New(97, 75), CPos.New(98, 75), CPos.New(99, 75), CPos.New(100, 75) }
Trigger3Team = { Gren1, Gren2, Gren3, Gren4, Gren5, VillageMammoth }
FootprintTrigger4 = { CPos.New(94, 60), CPos.New(95, 60), CPos.New(96, 60), CPos.New(97, 60), CPos.New(98, 60), CPos.New(99, 60), CPos.New(100, 60), CPos.New(101, 60), CPos.New(102, 60), CPos.New(103, 60), CPos.New(104, 60) }
CivilianSquad1 = { "c1", "c2", "c3", "c4", "c5" }
CivilianSquad2 = { "c6", "c7", "c8", "c9", "c10" }
FootprintTrigger5 = { CPos.New(99, 53), CPos.New(100, 53), CPos.New(101, 53), CPos.New(102, 53), CPos.New(103, 53), CPos.New(104, 53) }
Trigger5Team = { TeamFive1, TeamFive2, TeamFive3, TeamFive4, TeamFive5, TeamFive6, TeamFive7 }
TentTeam = { "e1", "e1", "e1", "e1", "e3", "e3" }
Doggos = { "dog", "dog", "dog" }
SovietAttackers = { "3tnk", "e2", "e2", "e2", "v2rl" }
MigEntryPath = { BaseAttackersSpawn, GuideSpawn }
FootprintTrigger6 = { CPos.New(81, 57), CPos.New(81, 58), CPos.New(81, 59), CPos.New(81, 60), CPos.New(81, 61) }
FootprintTrigger7 = { CPos.New(73, 58), CPos.New(73, 59), CPos.New(73, 60), CPos.New(73, 61) }
FootprintTrigger8 = { CPos.New(51, 83), CPos.New(51, 84), CPos.New(51, 85), CPos.New(51, 86), CPos.New(51, 87), CPos.New(51, 88) }
FootprintTrigger9 = { CPos.New(28, 77), CPos.New(29, 77), CPos.New(30, 77), CPos.New(31, 77), CPos.New(32, 77), CPos.New(33, 77), CPos.New(34, 77), CPos.New(35, 77), CPos.New(36, 77), CPos.New(37, 77), CPos.New(38, 77) }
BridgeMammoths = { BridgeMammoth1, BridgeMammoth2 }
FootprintTrigger10 = { CPos.New(24, 83), CPos.New(24, 84), CPos.New(24, 85) }
FootprintTrigger11 = { CPos.New(20, 65), CPos.New(21, 65), CPos.New(22, 65) }
SovBase = { SovFact, SovPower1, SovPower2, SovRax, SovWarFactory, SovFlame1, SovFlame2, SovTesla }
SovBaseTeam = { SovBaseTeam1, SovBaseTeam2, SovBaseTeam3, SovBaseTeam4, SovBaseTeam5, SovBaseTeam6 }
RaxTeam = { "e1", "e2", "e2", "e4", "e4", "shok" }
FootprintTrigger12 = { CPos.New(35, 39), CPos.New(35, 40), CPos.New(35, 41), CPos.New(35, 42) }
ExtractionHelicopterType = "tran"
ExtractionPath = { ChinookEntry.Location, ExtractionPoint.Location }
lstReinforcements =
{
first =
{
actors = { "2tnk", "2tnk", "2tnk", "2tnk", "2tnk" },
entryPath = { BoatSpawn.Location, BoatUnload1.Location },
exitPath = { BoatSpawn.Location }
},
second =
{
actors = { "1tnk", "1tnk", "2tnk", "2tnk", "2tnk" },
entryPath = { BoatSpawn.Location, BoatUnload2.Location },
exitPath = { BoatSpawn.Location }
}
}
IdleHunt = function(actor) if not actor.IsDead then Trigger.OnIdle(actor, actor.Hunt) end end
VIPs = { }
MissionStart = function()
FlareBoy.Move(LightFlare.Location)
Trigger.OnEnteredFootprint({ LightFlare.Location }, function(actor, id)
if actor.Owner == Greece then
Trigger.RemoveFootprintTrigger(id)
local insertionFlare = Actor.Create("flare", true, { Owner = Allies, Location = LightFlare.Location })
Trigger.AfterDelay(DateTime.Seconds(2), function()
FlareBoy.AttackMove(FlareBoyAttack.Location)
if Map.LobbyOption("difficulty") == "normal" then
local normalDrop = InsertionDrop.TargetParatroopers(InsertionPoint.CenterPosition, Angle.New(892))
Utils.Do(normalDrop, function(a)
Trigger.OnPassengerExited(a, function(t,p)
VIPs[#VIPs + 1] = p
FailTrigger()
end)
end)
else
local hardDrop = InsertionDropHard.TargetParatroopers(InsertionPoint.CenterPosition, Angle.New(892))
Utils.Do(hardDrop, function(a)
Trigger.OnPassengerExited(a, function(t,p)
VIPs[#VIPs + 1] = p
FailTrigger()
end)
end)
Trigger.AfterDelay(DateTime.Seconds(6), function()
Media.DisplayMessage("Commander, there are several civilians in the area.\nWe'll need you to call out targets.", "Tanya")
end)
end
end)
Trigger.AfterDelay(DateTime.Seconds(20), function()
insertionFlare.Destroy()
end)
end
end)
end
FailTrigger = function()
Trigger.OnAnyKilled(VIPs, function()
Allies.MarkFailedObjective(ProtectVIPs)
end)
end
FootprintTriggers = function()
local foot1Triggered
Trigger.OnEnteredFootprint(FootprintTrigger1, function(actor, id)
if actor.Owner == Allies and not foot1Triggered then
Trigger.RemoveFootprintTrigger(id)
foot1Triggered = true
local trig1cam = Actor.Create("camera", true, { Owner = Allies, Location = Trigger1Cam.Location })
Trigger.AfterDelay(DateTime.Seconds(10), function()
trig1cam.Destroy()
end)
Utils.Do(Trigger1Rifles, function(actor)
if not actor.IsDead then
actor.AttackMove(Trigger1Move.Location)
end
end)
DoomedHeli = Reinforcements.ReinforceWithTransport(Greece, ExtractionHelicopterType, nil, DoomedHeliPath)[1]
end
end)
local foot2Triggered
Trigger.OnEnteredFootprint(FootprintTrigger2, function(actor, id)
if actor.Owner == Allies and not foot2Triggered then
Trigger.RemoveFootprintTrigger(id)
foot2Triggered = true
local drop1 = RifleDropS.TargetParatroopers(VillageParadrop.CenterPosition, Angle.SouthWest)
Utils.Do(drop1, function(a)
Trigger.OnPassengerExited(a, function(t, p)
IdleHunt(p)
end)
end)
local grens = Reinforcements.Reinforce(USSR, Grenadiers, { GrenEntry.Location }, 0)
Utils.Do(grens, IdleHunt)
end
end)
local foot3Triggered
Trigger.OnEnteredFootprint(FootprintTrigger3, function(actor, id)
if actor.Owner == Allies and not foot3Triggered then
Trigger.RemoveFootprintTrigger(id)
foot3Triggered = true
Trig3House.Owner = Civilians
local camera3 = Actor.Create("camera", true, { Owner = Allies, Location = Trigger3Cam.Location })
Trigger.AfterDelay(DateTime.Seconds(10), function()
camera3.Destroy()
end)
if not GuideHut.IsDead then
local guide = Actor.Create("c6", true, { Owner = Greece, Location = GuideSpawn.Location })
guide.Move(SafePath1.Location)
guide.Move(SafePath2.Location)
guide.Move(CivilianRally.Location)
end
Utils.Do(Trigger3Team, function(actor)
if not actor.IsDead then
actor.AttackMove(GuideSpawn.Location)
IdleHunt(actor)
end
end)
end
end)
local foot4Triggered
Trigger.OnEnteredFootprint(FootprintTrigger4, function(actor, id)
if actor.Owner == Allies and not foot4Triggered then
Trigger.RemoveFootprintTrigger(id)
foot4Triggered = true
Trig4House.Owner = Civilians
Reinforcements.Reinforce(Greece, CivilianSquad1, { CivFlee1.Location, CivilianRally.Location }, 0)
Reinforcements.Reinforce(Greece, CivilianSquad2, { CivFlee2.Location, CivilianRally.Location }, 0)
end
end)
local foot5Triggered
Trigger.OnEnteredFootprint(FootprintTrigger5, function(actor, id)
if actor.Owner == Allies and not foot5Triggered then
Trigger.RemoveFootprintTrigger(id)
foot5Triggered = true
Media.PlaySoundNotification(Allies, "AlertBleep")
Media.DisplayMessage("Alfa Niner this is Lima One Six. Be advised, Soviet aircraft and armor moving into your AO.", "Headquarters")
Utils.Do(Trigger5Team, function(actor)
if not actor.IsDead then
actor.AttackMove(TacticalNuke1.Location)
end
end)
SendMig(MigEntryPath)
local barrelcam1 = Actor.Create("camera", true, { Owner = USSR, Location = TacticalNuke1.Location })
local barrelcam2 = Actor.Create("camera", true, { Owner = USSR, Location = TacticalNuke2.Location })
local wave1 = Reinforcements.Reinforce(USSR, SovietAttackers, { BaseAttackersSpawn.Location, SovietAttack.Location })
Utils.Do(wave1, IdleHunt)
local drop2 = RifleDropS.TargetParatroopers(SovietAttack.CenterPosition, Angle.East)
Utils.Do(drop2, function(a)
Trigger.OnPassengerExited(a, function(t, p)
IdleHunt(p)
end)
end)
Trigger.AfterDelay(DateTime.Seconds(20), function()
Media.PlaySoundNotification(Allies, "AlertBuzzer")
Media.DisplayMessage("Extraction point is compromised. Evacuate the base!", "Headquarters")
local defenders = Reinforcements.Reinforce(Greece, TentTeam, { Tent.Location, TentMove.Location }, 0)
Utils.Do(defenders, IdleHunt)
if Map.LobbyOption("difficulty") == "hard" then
Trigger.AfterDelay(DateTime.Seconds(30), function()
local wave2 = Reinforcements.Reinforce(USSR, SovietAttackers, { BaseAttackersSpawn.Location, SovietAttack.Location })
Utils.Do(wave2, IdleHunt)
end)
end
end)
Trigger.AfterDelay(DateTime.Seconds(35), function()
local dogs = Reinforcements.Reinforce(USSR, Doggos, { GrenEntry.Location }, 0)
Utils.Do(dogs, IdleHunt)
Media.PlaySpeechNotification(Allies, "AbombLaunchDetected")
local proxy = Actor.Create("powerproxy.parabombs", false, { Owner = USSR })
proxy.TargetAirstrike(TacticalNuke1.CenterPosition, Angle.NorthWest)
Trigger.AfterDelay(DateTime.Seconds(5), function()
Media.PlaySpeechNotification(Allies, "AbombLaunchDetected")
proxy.TargetAirstrike(TacticalNuke2.CenterPosition, Angle.NorthWest)
end)
proxy.Destroy()
end)
Trigger.AfterDelay(DateTime.Seconds(50), function()
Media.DisplayMessage("We've set up a new extraction point to the Northwest.", "Headquarters")
end)
end
end)
local foot6Triggered
Trigger.OnEnteredFootprint(FootprintTrigger6, function(actor, id)
if actor.Owner == Allies and not foot6Triggered then
Trigger.RemoveFootprintTrigger(id)
foot6Triggered = true
local reinforcement = lstReinforcements.first
Media.PlaySpeechNotification(Allies, "ReinforcementsArrived")
Reinforcements.ReinforceWithTransport(Allies, "lst.reinforcement", reinforcement.actors, reinforcement.entryPath, reinforcement.exitPath)
end
end)
local foot7Triggered
Trigger.OnEnteredFootprint(FootprintTrigger7, function(actor, id)
if actor.Owner == Allies and not foot7Triggered then
Trigger.RemoveFootprintTrigger(id)
foot7Triggered = true
local drop3 = RifleDropS.TargetParatroopers(TacticalNuke3.CenterPosition, Angle.West)
Utils.Do(drop3, function(a)
Trigger.OnPassengerExited(a, function(t, p)
IdleHunt(p)
end)
end)
local trig7camera1 = Actor.Create("camera", true, { Owner = Allies, Location = MammothCam.Location })
local trig7camera2 = Actor.Create("camera", true, { Owner = Allies, Location = TacticalNuke3.Location })
Trigger.AfterDelay(DateTime.Seconds(30), function()
trig7camera1.Destroy()
end)
Trigger.AfterDelay(DateTime.Seconds(20), function()
Media.PlaySpeechNotification(Allies, "AbombLaunchDetected")
local proxy = Actor.Create("powerproxy.parabombs", false, { Owner = USSR })
proxy.TargetAirstrike(TacticalNuke3.CenterPosition, Angle.SouthWest)
proxy.Destroy()
end)
Trigger.AfterDelay(DateTime.Seconds(26), function()
Reinforcements.Reinforce(Greece, CivilianSquad1, { House1.Location, TacticalNuke3.Location }, 0)
Reinforcements.Reinforce(Greece, CivilianSquad2, { House2.Location, TacticalNuke3.Location }, 0)
Reinforcements.Reinforce(Greece, CivilianSquad1, { House3.Location, TacticalNuke3.Location }, 0)
Reinforcements.Reinforce(Greece, CivilianSquad2, { House4.Location, TacticalNuke3.Location }, 0)
end)
Trigger.AfterDelay(DateTime.Seconds(15), function()
trig7camera2.Destroy()
end)
end
end)
local foot8Triggered
Trigger.OnEnteredFootprint(FootprintTrigger8, function(actor, id)
if actor.Owner == Allies and not foot8Triggered then
Trigger.RemoveFootprintTrigger(id)
foot8Triggered = true
local trig8camera = Actor.Create("camera", true, { Owner = Allies, Location = TeslaCam.Location })
Trigger.AfterDelay(DateTime.Seconds(10), function()
trig8camera.Destroy()
end)
Media.PlaySpeechNotification(Allies, "ReinforcementsArrived")
RifleDropA.TargetParatroopers(TeslaDrop.CenterPosition, Angle.New(124))
end
end)
local foot9Triggered
Trigger.OnEnteredFootprint(FootprintTrigger9, function(actor, id)
if actor.Owner == Allies and not foot9Triggered then
Trigger.RemoveFootprintTrigger(id)
foot9Triggered = true
local trig9camera = Actor.Create("camera", true, { Owner = Allies, Location = BridgeCam.Location })
Trigger.AfterDelay(DateTime.Seconds(10), function()
trig9camera.Destroy()
end)
Utils.Do(BridgeMammoths, function(actor)
actor.AttackMove(MammysGo.Location)
end)
end
end)
local foot10Triggered
Trigger.OnEnteredFootprint(FootprintTrigger10, function(actor, id)
if actor.Owner == Allies and not foot10Triggered then
Trigger.RemoveFootprintTrigger(id)
foot10Triggered = true
local trig10camera = Actor.Create("camera", true, { Owner = Allies, Location = TruckCam.Location })
Trigger.AfterDelay(DateTime.Seconds(10), function()
trig10camera.Destroy()
end)
Media.PlaySpeechNotification(Allies, "SignalFlareNorth")
Actor.Create("camera", true, { Owner = Allies, Location = ExtractionPoint.Location })
SendExtractionHelicopter()
HealCrateTruck.Move(TruckGo.Location)
end
end)
local foot11Triggered
Trigger.OnEnteredFootprint(FootprintTrigger11, function(actor, id)
if actor.Owner == Allies and not foot11Triggered then
Trigger.RemoveFootprintTrigger(id)
foot11Triggered = true
local trig11camera = Actor.Create("camera", true, { Owner = Allies, Location = SovBaseCam.Location })
Trigger.AfterDelay(DateTime.Seconds(10), function()
trig11camera.Destroy()
end)
local reinforcement = lstReinforcements.second
Media.PlaySpeechNotification(Allies, "ReinforcementsArrived")
Reinforcements.ReinforceWithTransport(Allies, "lst.reinforcement", reinforcement.actors, reinforcement.entryPath, reinforcement.exitPath)
end
end)
local foot12Triggered
Trigger.OnEnteredFootprint(FootprintTrigger12, function(actor, id)
if (actor.Type == "gnrl" or actor.Type == "gnrl.noautotarget") and not foot12Triggered then
Trigger.RemoveFootprintTrigger(id)
foot12Triggered = true
Media.PlaySoundNotification(Allies, "AlertBleep")
Media.DisplayMessage("Stalin will pay for what he has done today!\nI will bury him with my own hands!", "Stavros")
end
end)
end
SetupTriggers = function()
Utils.Do(USSR.GetGroundAttackers(), function(unit)
Trigger.OnDamaged(unit, function() IdleHunt(unit) end)
end)
Trigger.OnKilled(BridgeBarrel1, function()
local bridge = Utils.Where(Map.ActorsInWorld, function(actor) return actor.Type == "bridge2" end)[1]
if not bridge.IsDead then
bridge.Kill()
end
end)
Trigger.OnKilled(BridgeBarrel2, function()
local bridgepart1 = Utils.Where(Map.ActorsInWorld, function(actor) return actor.Type == "br2" end)[1]
local bridgepart2 = Utils.Where(Map.ActorsInWorld, function(actor) return actor.Type == "br3" end)[1]
if not bridgepart1.IsDead then
bridgepart1.Kill()
end
if not bridgepart2.IsDead then
bridgepart2.Kill()
end
end)
local trukEscaped
Trigger.OnEnteredFootprint({ TruckGo.Location }, function(actor, id)
if actor.Type == "truk" and not trukEscaped then
Trigger.RemoveFootprintTrigger(id)
trukEscaped = true
actor.Destroy()
end
end)
end
ChurchAttack = function()
if not ChurchDamaged then
local churchPanicTeam = Reinforcements.Reinforce(Greece, CivilianSquad1, { ChurchSpawn.Location }, 0)
Utils.Do(churchPanicTeam, function(a)
a.Move(a.Location + CVec.New(-1,-1))
a.Panic()
end)
end
ChurchDamaged = true
end
SendMig = function(waypoints)
local MigEntryPath = { waypoints[1].Location, waypoints[2].Location }
local Mig1 = Reinforcements.Reinforce(USSR, { "mig" }, MigEntryPath)
if not BridgeBarrel1.IsDead then
Utils.Do(Mig1, function(mig)
mig.Attack(BridgeBarrel1)
end)
end
Trigger.AfterDelay(DateTime.Seconds(5), function()
local Mig2 = Reinforcements.Reinforce(USSR, { "mig" }, MigEntryPath)
local Mig3 = Reinforcements.Reinforce(USSR, { "mig" }, MigEntryPath)
if not CivBarrel.IsDead then
Utils.Do(Mig2, function(mig)
mig.Attack(CivBarrel)
end)
end
if not DoomedHeli.IsDead then
Utils.Do(Mig3, function(mig)
mig.Attack(DoomedHeli)
end)
end
end)
end
SovBaseAttack = function()
if not BaseDamaged then
local drop4 = RifleDropS.TargetParatroopers(SovBaseDrop.CenterPosition, Angle.East)
Utils.Do(drop4, function(a)
Trigger.OnPassengerExited(a, function(t, p)
IdleHunt(p)
end)
end)
Utils.Do(SovBaseTeam, function(actor)
if not actor.IsDead then
IdleHunt(actor)
end
end)
if Map.LobbyOption("difficulty") == "hard" then
local barracksTeam = Reinforcements.Reinforce(USSR, RaxTeam, { SovRaxSpawn.Location, SovBaseCam.Location }, 0)
Utils.Do(barracksTeam, IdleHunt)
end
end
BaseDamaged = true
end
ExtractUnits = function(extractionUnit, pos, after)
if extractionUnit.IsDead or not extractionUnit.HasPassengers then
return
end
extractionUnit.Move(pos)
extractionUnit.Destroy()
Trigger.OnRemovedFromWorld(extractionUnit, after)
end
SendExtractionHelicopter = function()
ExtractionHeli = Reinforcements.ReinforceWithTransport(Allies, ExtractionHelicopterType, nil, ExtractionPath)[1]
local exitPos = CPos.New(ExtractionPath[1].X, ExtractionPath[2].Y)
Trigger.OnKilled(ExtractionHeli, function() USSR.MarkCompletedObjective(SovietObj) end)
Trigger.OnAllRemovedFromWorld(VIPs, function()
ExtractUnits(ExtractionHeli, exitPos, function()
Allies.MarkCompletedObjective(ProtectVIPs)
Allies.MarkCompletedObjective(ExtractStavros)
end)
end)
end
WorldLoaded = function()
Allies = Player.GetPlayer("Allies")
USSR = Player.GetPlayer("USSR")
BadGuy = Player.GetPlayer("BadGuy")
Greece = Player.GetPlayer("Greece")
Civilians = Player.GetPlayer("GreekCivilians")
Trigger.OnObjectiveAdded(Allies, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
end)
SovietObj = USSR.AddObjective("Kill Stavros.")
ProtectVIPs = Allies.AddObjective("Keep Stavros and Tanya alive.")
ExtractStavros = Allies.AddObjective("Get Stavros and Tanya to the extraction helicopter.")
Trigger.OnObjectiveCompleted(Allies, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
end)
Trigger.OnObjectiveFailed(Allies, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
Trigger.OnPlayerLost(Allies, function()
Media.PlaySpeechNotification(Allies, "Lose")
end)
Trigger.OnPlayerWon(Allies, function()
Media.PlaySpeechNotification(Allies, "Win")
end)
InsertionDrop = Actor.Create("insertiondrop", false, { Owner = Allies })
InsertionDropHard = Actor.Create("insertiondrophard", false, { Owner = Allies })
RifleDropA = Actor.Create("rifledrop", false, { Owner = Allies })
RifleDropS = Actor.Create("rifledrop", false, { Owner = USSR })
Camera.Position = LightFlare.CenterPosition
MissionStart()
FootprintTriggers()
SetupTriggers()
Trigger.OnDamaged(Church, ChurchAttack)
OnAnyDamaged(SovBase, SovBaseAttack)
end
OnAnyDamaged = function(actors, func)
Utils.Do(actors, function(actor)
Trigger.OnDamaged(actor, func)
end)
end

View File

@@ -0,0 +1,98 @@
World:
LuaScript:
Scripts: personal-war.lua
MissionData:
WinVideo: toofar.vqa
LossVideo: bmap.vqa
Briefing: With the fighting fast approaching Athens, Stavros has insisted that he be allowed to survey the damage in his own hometown in Greece.\n\nYou must escort Stavros through the town and to a nearby friendly outpost. Once you reach it, evacuate Stavros to safety.\n\nIf anything should happen, get Stavros to safety any way possible. He must be kept alive.
ScriptLobbyDropdown@difficulty:
ID: difficulty
Label: Difficulty
Values:
normal: Normal
hard: Hard
Default: normal
INSERTIONDROP:
ParatroopersPower:
DisplayBeacon: False
DropItems: E7, GNRL
AlwaysVisible:
INSERTIONDROPHARD:
ParatroopersPower:
DisplayBeacon: False
DropItems: E7.noautotarget, GNRL.noautotarget
AlwaysVisible:
RIFLEDROP:
ParatroopersPower:
DisplayBeacon: False
DropItems: E1, E1, E1, E1, E1
AlwaysVisible:
LST.Reinforcement:
Inherits: LST
RejectsOrders:
-Buildable:
-Selectable:
RenderSprites:
Image: lst
Interactable:
GNRL:
Valued:
Cost: 1000
Tooltip:
Name: Stavros
Armament:
Weapon: SilencedPPK
Passenger:
CargoType: VIP
GNRL.noautotarget:
Inherits: GNRL
-AutoTarget:
-AutoTargetPriority@DEFAULT:
-AutoTargetPriority@ATTACKANYTHING:
AttackMove:
-AssaultMoveCondition:
RenderSprites:
Image: GNRL
E7:
Passenger:
CargoType: VIP
TRUK:
SpawnActorOnDeath:
Actor: healcrate
HEALCRATE:
Crate:
Lifetime: 0
TRAN:
-Selectable:
RevealsShroud:
Range: 4c0
Targetable@GROUND:
TargetTypes: GroundActor
Interactable:
Health:
HP: 5000
Cargo:
Types: VIP
MaxWeight: 2
BADR.Bomber:
Aircraft:
Speed: 373
Tooltip:
Name: Strategic Bomber
RenderSprites:
Image: U2
MIG:
Aircraft:
IdleBehavior: LeaveMap

View File

@@ -0,0 +1,59 @@
SilencedPPK:
Range: 4c0
ParaBomb:
ReloadDelay: 50
ValidTargets: Ground, Water, GroundActor, WaterActor, Underwater, AirborneActor, Trees
Warhead@1Dam_impact: SpreadDamage
Spread: 1c0
Damage: 15000
Falloff: 1000, 368, 135, 50, 18, 7, 0
ValidTargets: GroundActor, WaterActor, Underwater, AirborneActor, Trees
Versus:
Wood: 1000
Concrete: 25
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@3Smu_impact: LeaveSmudge
SmudgeType: Scorch
ValidTargets: Ground, Infantry
Size: 1
Warhead@4Eff_impact: CreateEffect
Explosions: nuke
ImpactSounds: kaboom1.aud
ImpactActors: false
ValidTargets: Ground, Water, Air
Warhead@5Dam_areanuke1: SpreadDamage
Spread: 2c0
Damage: 6000
Falloff: 1000, 368, 135, 50, 18, 7, 0
Delay: 5
ValidTargets: GroundActor, WaterActor, Underwater, AirborneActor, Trees
Versus:
Wood: 1000
Concrete: 25
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@7Smu_areanuke1: LeaveSmudge
SmudgeType: Scorch
ValidTargets: Ground, Infantry
Size: 2
Delay: 5
Warhead@8Eff_areanuke1: CreateEffect
ImpactSounds: kaboom22.aud
Delay: 5
ImpactActors: false
Warhead@9Dam_areanuke2: SpreadDamage
Spread: 3c0
Damage: 6000
Falloff: 1000, 368, 135, 50, 18, 7, 0
Delay: 10
ValidTargets: GroundActor, Trees, WaterActor, Underwater, AirborneActor
Versus:
Wood: 50
Tree: 200
Concrete: 25
DamageTypes: Prone50Percent, TriggerProne, FireDeath, Incendiary
Warhead@12Smu_areanuke2: LeaveSmudge
SmudgeType: Scorch
ValidTargets: Ground, Infantry
Size: 3
Delay: 10