Added soviet05

This commit is contained in:
HenrytheSlav
2015-06-13 17:17:01 +02:00
parent dcae3c9dca
commit 197015f056
7 changed files with 1348 additions and 0 deletions

View File

@@ -0,0 +1,159 @@
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
IdlingUnits = function()
local lazyUnits = Map.ActorsInBox(NWIdlePoint.CenterPosition, Map.BottomRight, function(actor)
return actor.HasProperty("Hunt") and (actor.Owner == GoodGuy or actor.Owner == Greece) end)
Utils.Do(lazyUnits, function(unit)
Trigger.OnDamaged(unit, function()
Trigger.ClearAll(unit)
Trigger.AfterDelay(0, function() IdleHunt(unit) end)
end)
end)
end
BaseBuildings = {
{ "powr", CVec.New(3, -2), 300 },
{ "tent", CVec.New(0, 4), 400 },
{ "hbox", CVec.New(3, 6), 600 },
{ "proc", CVec.New(4, 2), 1400 },
{ "powr", CVec.New(5, -3), 300 },
{ "weap", CVec.New(-5, 3), 2000 },
{ "hbox", CVec.New(-6, 5), 600 },
{ "gun", CVec.New(0, 8), 600 },
{ "gun", CVec.New(-4, 7), 600 },
{ "powr", CVec.New(-4, -3), 300 },
{ "proc", CVec.New(-9, 1), 1400 },
{ "powr", CVec.New(-8, -2), 300 },
{ "silo", CVec.New(6, 0), 150 },
{ "agun", CVec.New(-3, 0), 800 },
{ "powr", CVec.New(-6, -2), 300 },
{ "agun", CVec.New(4, 1), 800 },
{ "gun", CVec.New(-9, 5), 600 },
{ "gun", CVec.New(-2, -3), 600 },
{ "powr", CVec.New(4, 6), 300 },
{ "gun", CVec.New(3, -6), 600 },
{ "hbox", CVec.New(3, -4), 600 },
{ "gun", CVec.New(2, 3), 600 }
}
BuildBase = function()
if not CheckForCYard() then
return
end
for i,v in ipairs(BaseBuildings) do
if not v[4] then
BuildBuilding(v)
return
end
end
Trigger.AfterDelay(DateTime.Seconds(5), BuildBase)
end
BuildBuilding = function(building)
Trigger.AfterDelay(Actor.BuildTime(building[1]), function()
local actor = Actor.Create(building[1], true, { Owner = GoodGuy, Location = MCVDeploy.Location + building[2] })
GoodGuy.Cash = GoodGuy.Cash - building[3]
building[4] = true
Trigger.OnKilled(actor, function() building[4] = false end)
Trigger.OnDamaged(actor, function(building)
if building.Owner == GoodGuy and building.Health < building.MaxHealth * 3/4 then
building.StartBuildingRepairs()
end
end)
Trigger.AfterDelay(DateTime.Seconds(1), BuildBase)
end)
end
ProduceInfantry = function()
if Barr.IsDead then
return
end
local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9))
local toBuild = { Utils.Random(AlliedInfantryTypes) }
Greece.Build(toBuild, function(unit)
GreeceInfAttack[#GreeceInfAttack + 1] = unit[1]
if #GreeceInfAttack >= 7 then
SendUnits(GreeceInfAttack, InfantryWaypoints)
GreeceInfAttack = { }
Trigger.AfterDelay(DateTime.Minutes(2), ProduceInfantry)
else
Trigger.AfterDelay(delay, ProduceInfantry)
end
end)
end
ProduceShips = function()
if Shipyard.IsDead then
return
end
Greece.Build( {"dd"}, function(unit)
Ships[#Ships + 1] = unit[1]
if #Ships >= 2 then
SendUnits(Ships, ShipWaypoints)
Ships = { }
Trigger.AfterDelay(DateTime.Minutes(6), ProduceShips)
else
Trigger.AfterDelay(Actor.BuildTime("dd"), ProduceShips)
end
end)
end
ProduceInfantryGG = function()
if not BaseBuildings[2][4] then
return
end
local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9))
local toBuild = { Utils.Random(AlliedInfantryTypes) }
GoodGuy.Build(toBuild, function(unit)
GGInfAttack[#GGInfAttack + 1] = unit[1]
if #GGInfAttack >= 10 then
SendUnits(GGInfAttack, InfantryGGWaypoints)
GGInfAttack = { }
Trigger.AfterDelay(DateTime.Minutes(2), ProduceInfantryGG)
else
Trigger.AfterDelay(delay, ProduceInfantryGG)
end
end)
end
ProduceTanksGG = function()
if not BaseBuildings[6][4] then
return
end
local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17))
local toBuild = { Utils.Random(AlliedTankTypes) }
GoodGuy.Build(toBuild, function(unit)
TankAttackGG[#TankAttackGG + 1] = unit[1]
if #TankAttackGG >= 6 then
SendUnits(TankAttackGG, TanksGGWaypoints)
TankAttackGG = { }
Trigger.AfterDelay(DateTime.Minutes(3), ProduceTanksGG)
else
Trigger.AfterDelay(delay, ProduceTanksGG)
end
end)
end
SendUnits = function(units, waypoints)
Utils.Do(units, function(unit)
if not unit.IsDead then
Utils.Do(waypoints, function(waypoint)
unit.AttackMove(waypoint.Location)
end)
unit.Hunt()
end
end)
end

View File

@@ -0,0 +1,276 @@
CheckForBase = function()
baseBuildings = Map.ActorsInBox(Map.TopLeft, CFBPoint.CenterPosition, function(actor)
return actor.Type == "fact" or actor.Type == "powr"
end)
return #baseBuildings >= 2
end
CheckForCYard = function()
ConYard = Map.ActorsInBox(mcvGGLoadPoint.CenterPosition, ReinfEastPoint.CenterPosition, function(actor)
return actor.Type == "fact" and actor.Owner == GoodGuy
end)
return #ConYard >= 1
end
CheckForSPen = function()
SPens = Map.ActorsInBox(Map.TopLeft, Map.BottomRight, function(actor)
return actor.Type == "spen"
end)
return #SPens >=1
end
RunInitialActivities = function()
if Map.Difficulty == "Hard" then
Expand()
ExpansionCheck = true
else
ExpansionCheck = false
end
Trigger.AfterDelay(1, function()
Harvester.FindResources()
Helper.Destroy()
IdlingUnits()
Media.PlaySpeechNotification(player, "ReinforcementsArrived")
local buildings = Map.ActorsInBox(NWIdlePoint.CenterPosition, Map.BottomRight, function(self) return self.Owner == Greece and self.HasProperty("StartBuildingRepairs") end)
Utils.Do(buildings, function(actor)
Trigger.OnDamaged(actor, function(building)
if building.Owner == Greece and building.Health < building.MaxHealth * 3/4 then
building.StartBuildingRepairs()
end
end)
end)
end)
Reinforcements.Reinforce(player, SovietStartReinf, SovietStartToBasePath, 0, function(soldier)
soldier.AttackMove(SovietBasePoint.Location)
end)
Actor.Create("camera", true, { Owner = player, Location = GreeceBasePoint.Location })
Actor.Create("camera", true, { Owner = player, Location = SovietBasePoint.Location })
startmcv.Move(MCVStartMovePoint.Location)
Runner1.Move(RunnerPoint.Location)
Runner2.Move(RunnerPoint.Location)
Runner3.Move(RunnerPoint.Location)
ProduceInfantry()
Trigger.AfterDelay(DateTime.Minutes(2), ProduceShips)
if Map.Difficulty == "Hard" or Map.Difficulty == "Medium" then
Trigger.AfterDelay(DateTime.Seconds(25), ReinfInf)
end
Trigger.AfterDelay(DateTime.Minutes(2), ReinfInf)
Trigger.AfterDelay(DateTime.Minutes(3), BringDDPatrol2)
Trigger.AfterDelay(DateTime.Minutes(5), ReinfInf)
Trigger.AfterDelay(DateTime.Minutes(6), BringDDPatrol1)
end
Expand = function()
if ExpansionCheck then
return
elseif mcvtransport.IsDead then
return
elseif mcvGG.IsDead then
return
end
mcvGG.Move(mcvGGLoadPoint.Location)
mcvtransport.Move(lstBeachPoint.Location)
Reinforcements.Reinforce(GoodGuy, { "dd", "dd" }, ShipArrivePath, 0, function(ddsquad)
ddsquad.AttackMove(NearExpPoint.Location) end)
ExpansionCheck = true
Trigger.ClearAll(mcvGG)
Trigger.ClearAll(mcvtransport)
Trigger.AfterDelay(DateTime.Seconds(3), function()
if mcvtransport.IsDead then
return
elseif mcvGG.IsDead then
return
end
mcvGG.IsInWorld = false
mcvtransport.LoadPassenger(mcvGG)
mcvtransport.Move(GGUnloadPoint.Location)
mcvtransport.UnloadPassengers()
Trigger.AfterDelay(DateTime.Seconds(12), function()
if mcvGG.IsDead then
return
end
mcvGG.Move(MCVDeploy.Location)
Trigger.AfterDelay(DateTime.Seconds(4), function()
if not mcvGG.IsDead then
mcvGG.Deploy()
Trigger.AfterDelay(DateTime.Seconds(4), function()
local fact = Map.ActorsInBox(mcvGGLoadPoint.CenterPosition, ReinfEastPoint.CenterPosition, function(actor)
return actor.Type == "fact" and actor.Owner == GoodGuy end)
if #fact == 0 then
return
else
Trigger.OnDamaged(fact[1], function()
if fact[1].Owner == GoodGuy and fact[1].Health < fact[1].MaxHealth * 3/4 then
fact[1].StartBuildingRepairs()
end
end)
end
end)
IslandTroops1()
Trigger.AfterDelay(DateTime.Minutes(3), IslandTroops2)
Trigger.AfterDelay(DateTime.Minutes(6), IslandTroops3)
Trigger.AfterDelay(DateTime.Seconds(7), BuildBase)
end
if not mcvtransport.IsDead then
mcvtransport.Move(ReinfNorthPoint.Location)
mcvtransport.Destroy()
end
end)
end)
end)
end
Tick = function()
if Greece.HasNoRequiredUnits() and GoodGuy.HasNoRequiredUnits() then
player.MarkCompletedObjective(KillAll)
player.MarkCompletedObjective(HoldObjective)
end
if player.HasNoRequiredUnits() then
GoodGuy.MarkCompletedObjective(BeatUSSR)
end
if Greece.Resources >= Greece.ResourceCapacity * 0.75 then
Greece.Cash = Greece.Cash + Greece.Resources - Greece.ResourceCapacity * 0.25
Greece.Resources = Greece.ResourceCapacity * 0.25
end
if GoodGuy.Resources >= GoodGuy.ResourceCapacity * 0.75 then
GoodGuy.Cash = GoodGuy.Cash + GoodGuy.Resources - GoodGuy.ResourceCapacity * 0.25
GoodGuy.Resources = GoodGuy.ResourceCapacity * 0.25
end
if not baseEstablished and CheckForBase() then
baseEstablished = true
Para()
end
if not SPenEstablished and CheckForSPen() then
SPenEstablished = true
local units = Reinforcements.ReinforceWithTransport(Greece, "lst", ArtyReinf, SouthReinfPath, { ReinfEastPoint.Location })[2]
Utils.Do(units, function(unit) IdleHunt(unit) end)
if not ExpansionCheck then
Expand()
ExpansionCheck = true
end
end
if not RCheck then
RCheck = true
if Map.Difficulty == "Easy" and ReinfCheck then
Trigger.AfterDelay(DateTime.Minutes(6), ReinfArmor)
elseif Map.Difficulty == "Medium" then
Trigger.AfterDelay(DateTime.Minutes(4), ReinfArmor)
else
Trigger.AfterDelay(DateTime.Minutes(3), ReinfArmor)
end
end
end
WorldLoaded = function()
player = Player.GetPlayer("USSR")
GoodGuy = Player.GetPlayer("GoodGuy")
Greece = Player.GetPlayer("Greece")
RunInitialActivities()
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")
Media.PlaySpeechNotification(player, "ObjectiveMet")
end)
Trigger.OnObjectiveFailed(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
CaptureObjective = player.AddPrimaryObjective("Capture the Radar Dome.")
KillAll = player.AddPrimaryObjective("Defeat the Allied forces.")
BeatUSSR = GoodGuy.AddPrimaryObjective("Defeat the Soviet forces.")
Trigger.OnDamaged(mcvGG, Expand)
Trigger.OnDamaged(mcvtransport, Expand)
Trigger.OnKilled(Radar, function()
player.MarkFailedObjective(CaptureObjective)
end)
Trigger.OnCapture(Radar, function(self, captor)
if captor.Owner ~= player then
return
end
HoldObjective = player.AddPrimaryObjective("Defend the Radar Dome.")
player.MarkCompletedObjective(CaptureObjective)
if not ExpansionCheck then
Expand()
ExpansionCheck = true
end
Reinforcements.Reinforce(Greece, ArmorReinfGreece, AlliedCrossroadsToRadarPath , 0, function(soldier)
soldier.Hunt()
end)
Trigger.AfterDelay(1, function()
local newRadar = Actor.Create("dome", true, { Owner = player, Location = Radar.Location })
newRadar.Health = Radar.Health
Radar.Destroy()
Trigger.OnKilled(newRadar, function()
player.MarkFailedObjective(HoldObjective)
end)
end)
end)
Trigger.OnEnteredProximityTrigger(USSRExpansionPoint.CenterPosition, WRange.New(4 * 1024), function(unit, id)
if unit.Owner == player and Radar.Owner == player then
Trigger.RemoveProximityTrigger(id)
Para2()
ProduceInfantryGG()
ProduceTanksGG()
local units = Reinforcements.ReinforceWithTransport(player, "lst", SovietMCVReinf, { ReinfSouthPoint.Location, USSRlstPoint.Location }, { ReinfSouthPoint.Location })[2]
Utils.Do(units, function(unit)
Trigger.OnAddedToWorld(unit, function()
if unit.Type == "mcv" then
unit.Move(USSRExpansionPoint.Location)
else
unit.AttackMove(USSRExpansionPoint.Location)
end
end)
end)
Media.PlaySpeechNotification(player, "ReinforcementsArrived")
end
end)
Trigger.OnPlayerLost(player, function()
Media.PlaySpeechNotification(player, "Lose")
end)
Trigger.OnPlayerWon(player, function()
Media.PlaySpeechNotification(player, "Win")
end)
Camera.Position = StartCamPoint.CenterPosition
end

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,744 @@
MapFormat: 7
RequiresMod: ra
Title: Soviet 05: Distant Thunder
Description: Khalkis island contains a large quantity of ore that we need.\n\nThe Allies are well aware of our plans, and intend to establish their own base there. See to it that they fail.\n\nIn addition, capture their radar center so we can track Allied activity in this area.
Author: Westwood Studios
Tileset: TEMPERAT
MapSize: 128,128
Bounds: 20,42,90,50
Visibility: MissionSelector
Type: Campaign
Videos:
Briefing: soviet5.vqa
GameStart: double.vqa
GameWon: strafe.vqa
GameLost: sovbatl.vqa
Options:
Crates: False
Fog: True
Shroud: True
AllyBuildRadius: False
FragileAlliances: False
StartingCash: 5000
TechLevel: Medium
ConfigurableStartingUnits: False
Difficulties: Easy, Normal, Hard
ShortGame: False
Players:
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Race: england
PlayerReference@Creeps:
Name: Creeps
NonCombatant: True
Race: england
PlayerReference@Greece:
Name: Greece
Race: allies
ColorRamp: 161,134,236
Allies: GoodGuy
Enemies: USSR
PlayerReference@USSR:
Name: USSR
Race: soviet
Playable: True
AllowBots: False
Required: True
LockRace: True
LockColor: True
ColorRamp: 3,255,127
LockSpawn: True
LockTeam: True
Enemies: Greece, GoodGuy
PlayerReference@GoodGuy:
Name: GoodGuy
Race: allies
ColorRamp: 161,134,236
Allies: Greece
Enemies: USSR
Actors:
Actor0: sbag
Location: 60,42
Owner: Neutral
Actor1: sbag
Location: 61,42
Owner: Neutral
Actor2: sbag
Location: 60,43
Owner: Neutral
Actor3: sbag
Location: 60,44
Owner: Neutral
Actor4: sbag
Location: 60,48
Owner: Neutral
Actor5: sbag
Location: 60,49
Owner: Neutral
Actor6: sbag
Location: 60,50
Owner: Neutral
Actor7: sbag
Location: 61,50
Owner: Neutral
Actor8: tc01
Location: 33,41
Owner: Neutral
Actor9: tc03
Location: 20,52
Owner: Neutral
Actor10: tc02
Location: 24,62
Owner: Neutral
Actor11: t06
Location: 62,84
Owner: Neutral
Actor12: t07
Location: 85,78
Owner: Neutral
Actor13: t14
Location: 84,77
Owner: Neutral
Actor14: t12
Location: 95,77
Owner: Neutral
Actor15: t07
Location: 78,77
Owner: Neutral
Actor16: t02
Location: 81,74
Owner: Neutral
Actor17: t16
Location: 46,79
Owner: Neutral
Actor18: tc03
Location: 47,78
Owner: Neutral
Actor19: t10
Location: 45,78
Owner: Neutral
Actor20: t14
Location: 45,77
Owner: Neutral
Actor21: t17
Location: 45,76
Owner: Neutral
Actor22: t08
Location: 60,83
Owner: Neutral
Actor23: t17
Location: 81,71
Owner: Neutral
Actor24: tc02
Location: 45,48
Owner: Neutral
Actor25: tc01
Location: 32,90
Owner: Neutral
Actor26: tc03
Location: 33,89
Owner: Neutral
Actor27: tc05
Location: 20,83
Owner: Neutral
Actor28: t11
Location: 25,88
Owner: Neutral
Actor29: t17
Location: 20,90
Owner: Neutral
Actor30: tc01
Location: 24,90
Owner: Neutral
Actor31: tc04
Location: 23,89
Owner: Neutral
Actor32: tc05
Location: 20,89
Owner: Neutral
Actor33: t01
Location: 28,47
Owner: Neutral
Actor34: t05
Location: 24,42
Owner: Neutral
Actor35: tc04
Location: 36,54
Owner: Neutral
Actor36: tc01
Location: 36,51
Owner: Neutral
Actor37: tc02
Location: 61,42
Owner: Neutral
Actor38: tc02
Location: 63,70
Owner: Neutral
Actor39: t12
Location: 73,79
Owner: Neutral
Actor40: tc03
Location: 82,64
Owner: Neutral
Actor41: t03
Location: 46,58
Owner: Neutral
Actor42: tc05
Location: 57,50
Owner: Neutral
Actor43: t16
Location: 59,41
Owner: Neutral
Actor44: tc01
Location: 56,51
Owner: Neutral
Actor45: t11
Location: 47,48
Owner: Neutral
Actor46: t05
Location: 51,48
Owner: Neutral
Actor47: mine
Location: 27,48
Owner: Neutral
Actor48: t01
Location: 71,81
Owner: Neutral
Actor49: t02
Location: 71,82
Owner: Neutral
Actor50: t02
Location: 81,61
Owner: Neutral
Actor51: t03
Location: 80,57
Owner: Neutral
Actor52: t05
Location: 80,58
Owner: Neutral
Actor53: tc01
Location: 78,61
Owner: Neutral
Actor54: agun
Location: 73,45
Owner: Greece
Actor55: gun
Location: 69,49
Owner: Greece
Facing: 32
Radar: dome.ignore
Location: 70,45
Owner: Greece
Actor57: fact
Location: 67,42
Owner: Greece
Actor58: powr
Location: 74,47
Owner: Greece
Actor59: brl3
Location: 66,42
Owner: Greece
Actor60: brl3
Location: 71,42
Owner: Greece
Actor61: brl3
Location: 71,43
Owner: Greece
Actor62: brl3
Location: 76,43
Owner: Greece
Actor63: barl
Location: 71,44
Owner: Greece
Actor64: brl3
Location: 73,47
Owner: Greece
Actor65: barl
Location: 66,43
Owner: Greece
Actor66: brl3
Location: 70,42
Owner: Greece
Actor67: gun
Location: 61,44
Owner: Greece
Facing: 192
Actor68: gun
Location: 61,48
Owner: Greece
Facing: 160
Actor69: agun
Location: 68,46
Owner: Greece
Actor70: proc
Location: 63,42
Owner: Greece
FreeActor: False
Barr: tent
Location: 63,47
Owner: Greece
Shipyard: syrd
Location: 78,48
Owner: Greece
Actor73: powr
Location: 74,42
Owner: Greece
Actor74: powr
Location: 72,42
Owner: Greece
Actor75: powr
Location: 72,48
Owner: Greece
startmcv: mcv
Location: 22,80
Owner: USSR
Facing: 192
Actor77: 2tnk
Location: 59,43
Owner: Greece
Facing: 32
TurretFacing: 32
Actor78: 1tnk
Location: 58,48
Owner: Greece
Facing: 32
TurretFacing: 32
Actor79: 1tnk
Location: 57,44
Owner: Greece
Facing: 96
TurretFacing: 96
Actor80: 1tnk
Location: 67,49
Owner: Greece
Facing: 224
TurretFacing: 224
Harvester: harv
Location: 45,45
Owner: Greece
Facing: 96
mcvGG: mcv
Location: 75,46
Owner: GoodGuy
Facing: 192
Actor83: 1tnk
Location: 43,47
Owner: Greece
Facing: 224
TurretFacing: 64
Actor84: e1
Location: 61,45
Owner: Greece
Facing: 160
SubCell: 1
Actor85: e1
Location: 62,46
Owner: Greece
Facing: 160
SubCell: 0
Actor86: e1
Location: 61,49
Owner: Greece
Facing: 224
SubCell: 2
Runner1: e1
Location: 25,75
Owner: GoodGuy
SubCell: 0
Runner2: e1
Location: 25,76
Owner: GoodGuy
SubCell: 2
Runner3: e1
Location: 26,75
Owner: GoodGuy
SubCell: 0
Actor90: e1
Location: 64,49
Owner: Greece
Facing: 96
SubCell: 2
Actor91: e3
Location: 66,44
Owner: Greece
Facing: 160
SubCell: 4
Actor92: e3
Location: 63,49
Owner: Greece
Facing: 160
SubCell: 4
Actor93: e1
Location: 58,46
Owner: Greece
Facing: 160
SubCell: 2
Actor94: e1
Location: 60,48
Owner: Greece
SubCell: 2
Actor96: e3
Location: 41,45
Owner: Greece
SubCell: 4
Facing: 64
TurretFacing: 128
Actor97: e3
Location: 41,44
Owner: Greece
SubCell: 1
Facing: 96
TurretFacing: 160
Actor98: e3
Location: 40,45
Owner: Greece
SubCell: 4
Facing: 64
TurretFacing: 160
Actor99: e3
Location: 40,43
Owner: Greece
SubCell: 1
Facing: 96
TurretFacing: 160
Actor100: e1
Location: 39,45
Owner: Greece
Facing: 160
SubCell: 0
Actor101: e1
Location: 39,44
Owner: Greece
SubCell: 1
Facing: 96
TurretFacing: 192
Minelayer: mnly.at
Owner: GoodGuy
Location: 67,45
Facing: 92
Actor166: pt
Owner: GoodGuy
Location: 67,54
Facing: 92
TurretFacing: 92
Actor167: pt
Owner: GoodGuy
Location: 67,59
Facing: 60
TurretFacing: 60
Actor168: pt
Owner: GoodGuy
Location: 83,56
Facing: 28
TurretFacing: 28
Actor169: pt
Owner: GoodGuy
Location: 83,51
Facing: 92
TurretFacing: 92
mcvtransport: lst
Owner: GoodGuy
Location: 80,45
Facing: 92
Actor171: dd
Owner: GoodGuy
Location: 91,51
Facing: 28
TurretFacing: 28
Actor172: dd
Owner: GoodGuy
Location: 84,44
Facing: 92
TurretFacing: 92
Actor173: dd
Owner: GoodGuy
Location: 96,44
Facing: 92
TurretFacing: 92
Actor174: pt
Owner: GoodGuy
Location: 96,51
Facing: 92
TurretFacing: 92
Actor175: dd
Owner: GoodGuy
Location: 101,49
Facing: 60
TurretFacing: 60
Actor176: pt
Owner: GoodGuy
Location: 107,70
Facing: 188
TurretFacing: 188
Actor177: pt
Owner: GoodGuy
Location: 58,89
Facing: 60
TurretFacing: 60
Helper: proc
Owner: Greece
Location: 42,42
FreeActor: False
Actor181: mine
Owner: Neutral
Location: 63,65
Actor182: mine
Owner: Neutral
Location: 81,78
StartPoint: waypoint
Location: 20,80
Owner: Neutral
SovietBasePoint: waypoint
Location: 24,77
Owner: Neutral
MCVStartMovePoint: waypoint
Location: 28,76
Owner: Neutral
CrossroadPoint: waypoint
Location: 52,46
Owner: Neutral
GreeceBaseEPoint: waypoint
Location: 60,46
Owner: Neutral
NReinfPathPoint1: waypoint
Location: 107,68
Owner: Neutral
SReinfPathPoint1: waypoint
Location: 100,81
Owner: Neutral
SReinfPathPoint2: waypoint
Location: 83,90
Owner: Neutral
NearExpPoint: waypoint
Location: 94,49
Owner: Neutral
CoastGuardPoint: waypoint
Location: 96,56
Owner: Neutral
MCVDeploy: waypoint
Location: 96,60
Owner: Neutral
ReinfSouthPoint: waypoint
Location: 44,91
Owner: Neutral
WIslandPoint: waypoint
Location: 41,61
Owner: Neutral
NearDockPoint: waypoint
Location: 85,46
Owner: Neutral
SReinfPathPoint4: waypoint
Location: 58,88
Owner: Neutral
PatrolPoint1: waypoint
Location: 91,69
Owner: Neutral
PatrolPoint4: waypoint
Location: 73,70
Owner: Neutral
SReinfPathPoint3: waypoint
Location: 69,90
Owner: Neutral
PatrolPoint2: waypoint
Location: 89,80
Owner: Neutral
BetweenBasesPoint: waypoint
Location: 78,73
Owner: Neutral
PatrolPoint3: waypoint
Location: 78,80
Owner: Neutral
USSRExpansionPoint: waypoint
Location: 56,77
Owner: Neutral
PrepGGArmyPoint: waypoint
Location: 71,74
Owner: Neutral
ReinfNorthPoint: waypoint
Location: 81,42
Owner: Neutral
ReinfEastPoint: waypoint
Location: 109,75
Owner: Neutral
NWOrefieldPoint: waypoint
Location: 32,49
Owner: Neutral
AtUSSRBasePoint: waypoint
Location: 27,61
Owner: Neutral
DDAttackPoint: waypoint
Location: 40,78
Owner: Neutral
RunnerPoint: waypoint
Location: 28,50
Owner: Neutral
USSRlstPoint: waypoint
Location: 48,83
Owner: Neutral
CFBPoint: waypoint
Location: 42,90
Owner: Neutral
GreeceBasePoint: waypoint
Location: 69,46
Owner: Neutral
ReinfRoadPoint: waypoint
Location: 52,42
Owner: Neutral
NWIdlePoint: waypoint
Location: 38,42
Owner: Neutral
EIslandPoint: waypoint
Location: 51,58
Owner: Neutral
mcvGGLoadPoint: waypoint
Location: 77,45
Owner: Neutral
lstBeachPoint: waypoint
Location: 78,45
Owner: Neutral
GGUnloadPoint: waypoint
Location: 94,54
Owner: Neutral
ParaPoint: waypoint
Location: 29,75
Owner: Neutral
StartCamPoint: waypoint
Location: 21,80
Owner: Neutral
Smudges:
Rules:
Player:
-ConquestVictoryConditions:
-EnemyWatcher:
MissionObjectives:
EarlyGameOver: true
World:
-CrateSpawner:
-SpawnMPUnits:
-MPStartLocations:
LuaScript:
Scripts: main.lua, AI.lua, reinforcements_teams.lua
ObjectivesPanel:
PanelName: MISSION_OBJECTIVES
^Infantry:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Tank:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
Demolishable:
^Vehicle:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
Demolishable:
^Building:
Capturable:
CaptureThreshold: 0.25
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^TechBuilding:
Capturable:
Type: ~disabled
^Wall:
Tooltip:
ShowOwnerRow: false
^Ship:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Plane:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Husk:
Tooltip:
GenericVisibility: Enemy, Ally, Neutral
GenericStancePrefix: false
ShowOwnerRow: false
^Crate:
Tooltip:
ShowOwnerRow: false
TSLA:
Buildable:
Prerequisites: ~disabled
SAM:
Buildable:
Prerequisites: ~disabled
HPAD:
Buildable:
Prerequisites: ~disabled
APWR:
Buildable:
Prerequisites: ~disabled
BRIK:
Buildable:
Prerequisites: ~disabled
E3:
Buildable:
Prerequisites: ~tent
E4:
Buildable:
Prerequisites: ~disabled
HIJACKER:
Buildable:
Prerequisites: ~disabled
SPY:
Buildable:
Prerequisites: ~disabled
MECH:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
FTRK:
Buildable:
Prerequisites: ~disabled
TRUK:
Buildable:
Prerequisites: ~disabled
APC:
Buildable:
Prerequisites: ~disabled
DOME.IGNORE:
Inherits: DOME
RenderBuilding:
Image: DOME
AutoTargetIgnore:
Buildable:
Prerequisites: ~disabled
powerproxy.paratroopers:
ParatroopersPower:
DropItems: E1,E1,E1,E1,E1
Sequences:
VoxelSequences:
Weapons:
Voices:
Notifications:
Translations:

View File

@@ -0,0 +1,168 @@
SovietStartReinf = { "e2", "e2" }
SovietStartToBasePath = { StartPoint.Location, SovietBasePoint.Location }
SovietMCVReinf = { "mcv", "3tnk", "3tnk", "e1", "e1" }
SovExpansionPointGuard = { "2tnk", "2tnk", "e3", "e3", "e3" }
if Map.Difficulty == "Easy" then
ArmorReinfGreece = { "jeep", "1tnk", "1tnk" }
else
ArmorReinfGreece = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
end
InfantryReinfGreece = { "e1", "e1", "e1", "e1", "e1" }
CrossroadsReinfPath = { ReinfRoadPoint.Location }
ArtyReinf = { "e3", "e3", "e3", "arty", "arty" }
CoastGuardReinf = { "e1", "e1", "e3", "e1", "e3" }
DDPatrol1 = { "dd", "dd", "dd" }
DDPatrol1Path = { EIslandPoint.Location, WIslandPoint.Location, DDAttackPoint.Location, SReinfPathPoint4.Location, DDAttackPoint.Location, WIslandPoint.Location, EIslandPoint.Location, NearDockPoint.Location }
DDPatrol2 = { "dd", "dd" }
DDPatrol2Path = { NReinfPathPoint1.Location, SReinfPathPoint1.Location, SReinfPathPoint2.Location, SReinfPathPoint1.Location, NReinfPathPoint1.Location, NearDockPoint.Location }
ShipArrivePath = { ReinfNorthPoint.Location, NearDockPoint.Location }
AlliedInfantryTypes = { "e1", "e3" }
AlliedTankTypes = { "jeep", "1tnk" }
AlliedAttackPath = { GreeceBaseEPoint.Location, CrossroadPoint.Location, NWOrefieldPoint.Location, AtUSSRBasePoint.Location }
AlliedCrossroadsToRadarPath = { ReinfRoadPoint.Location, CrossroadPoint.Location, GreeceBaseEPoint.Location, GreeceBasePoint.Location }
SouthReinfPath = { ReinfEastPoint.Location, SReinfPathPoint1.Location, SReinfPathPoint2.Location, SReinfPathPoint3.Location, SReinfPathPoint4.Location, USSRlstPoint.Location }
NorthReinfPath = { ReinfEastPoint.Location, NReinfPathPoint1.Location, GGUnloadPoint.Location }
GoodGuyOrefieldPatrolPath = { PatrolPoint1.Location, PatrolPoint2.Location, PatrolPoint3.Location, PatrolPoint4.Location }
Ships = { }
GreeceInfAttack = { }
GGInfAttack = { }
TankAttackGG = { }
ShipWaypoints = { EIslandPoint, WIslandPoint, DDAttackPoint }
InfantryWaypoints = { CrossroadPoint, NWOrefieldPoint, AtUSSRBasePoint, SovietBasePoint }
InfantryGGWaypoints = { PatrolPoint2, BetweenBasesPoint, PrepGGArmyPoint }
TanksGGWaypoints = { PatrolPoint2, BetweenBasesPoint, PrepGGArmyPoint }
Para = function()
local powerproxy = Actor.Create("powerproxy.paratroopers", false, { Owner = player })
local units = powerproxy.SendParatroopers(ParaPoint.CenterPosition, false, 28)
powerproxy.Destroy()
end
Para2 = function()
local powerproxy = Actor.Create("powerproxy.paratroopers", false, { Owner = player })
local units = powerproxy.SendParatroopers(USSRExpansionPoint.CenterPosition, false, 28)
powerproxy.Destroy()
end
ReinfInf = function()
Reinforcements.Reinforce(Greece, InfantryReinfGreece, CrossroadsReinfPath, 0, function(soldier)
soldier.Hunt()
end)
end
ReinfArmor = function()
RCheck = false
Reinforcements.Reinforce(Greece, ArmorReinfGreece, CrossroadsReinfPath, 0, function(soldier)
soldier.Hunt()
end)
end
IslandTroops1 = function()
local units = Reinforcements.ReinforceWithTransport(GoodGuy, "lst", CoastGuardReinf, { ReinfEastPoint.Location, NReinfPathPoint1.Location, GGUnloadPoint.Location }, { ReinfEastPoint.Location })[2]
Utils.Do(units, function(unit)
Trigger.OnIdle(unit, function(coastguard)
coastguard.AttackMove(CoastGuardPoint.Location)
end)
end)
if not CheckForCYard() then
return
elseif Map.Difficulty == "Easy" then
return
else
Trigger.OnAllKilled(units, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(3), IslandTroops1)
else
Trigger.AfterDelay(DateTime.Minutes(5), IslandTroops1)
end
end)
end
end
IslandTroops2 = function()
local units = Reinforcements.ReinforceWithTransport(GoodGuy, "lst", ArmorReinfGreece, NorthReinfPath, { ReinfEastPoint.Location })[2]
Utils.Do(units, function(unit)
Trigger.OnIdle(unit, function(patrols)
patrols.Patrol(GoodGuyOrefieldPatrolPath, true, 150)
end)
end)
if not CheckForCYard() then
return
elseif Map.Difficulty == "Easy" then
return
else
Trigger.OnAllKilled(unit, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(3), IslandTroops2)
else
Trigger.AfterDelay(DateTime.Minutes(5), IslandTroops2)
end
end)
end
end
IslandTroops3 = function()
local units = Reinforcements.ReinforceWithTransport(GoodGuy, "lst", SovExpansionPointGuard, SouthReinfPath, { ReinfEastPoint.Location })[2]
Utils.Do(units, function(unit)
Trigger.OnIdle(unit, function(guards)
guards.AttackMove(USSRExpansionPoint.Location)
end)
end)
if not CheckForCYard() then
return
elseif Map.Difficulty == "Easy" then
return
else
Trigger.OnAllKilled(units, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(3), IslandTroops3)
else
Trigger.AfterDelay(DateTime.Minutes(5), IslandTroops3)
end
end)
end
end
BringDDPatrol1 = function()
local units = Reinforcements.Reinforce(Greece, DDPatrol1, ShipArrivePath, 0)
Utils.Do(units, function(unit)
Trigger.OnIdle(unit, function(patrols)
patrols.Patrol(DDPatrol1Path, true, 250)
end)
end)
if not CheckForCYard() then
return
else
Trigger.OnAllKilled(units, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(4), BringDDPatrol1)
else
Trigger.AfterDelay(DateTime.Minutes(7), BringDDPatrol1)
end
end)
end
end
BringDDPatrol2 = function()
local units = Reinforcements.Reinforce(Greece, DDPatrol2, ShipArrivePath, 0)
Utils.Do(units, function(unit)
Trigger.OnIdle(unit, function(patrols)
patrols.Patrol(DDPatrol2Path, true, 250)
end)
end)
if not CheckForCYard() then
return
else
Trigger.OnAllKilled(units, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(4), BringDDPatrol2)
else
Trigger.AfterDelay(DateTime.Minutes(7), BringDDPatrol2)
end
end)
end
end

View File

@@ -6,4 +6,5 @@ Allied Campaign:
./mods/ra/maps/allies-05a
Soviet Campaign:
./mods/ra/maps/soviet-01
./mods/ra/maps/soviet-05