Added soviet04a and soviet04b

This commit is contained in:
abcdefg30
2015-07-27 18:10:09 +02:00
parent a3eac88e36
commit 7c14f54ca3
14 changed files with 2227 additions and 5 deletions

View File

@@ -0,0 +1,111 @@
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
IdlingUnits = function()
local lazyUnits = Greece.GetGroundAttackers()
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(0, 4), 300 },
{ "tent", CVec.New(-9, 6), 400, true },
{ "proc", CVec.New(4, 7), 1400, true },
{ "weap", CVec.New(8, -1), 2000, true }
}
BuildBase = function()
if CYard.IsDead or CYard.Owner ~= Greece then
return
elseif Harvester.IsDead and Greece.Resources <= 299 then
return
end
for i,v in ipairs(BaseBuildings) do
if not v[4] then
BuildBuilding(v)
return
end
end
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
end
BuildBuilding = function(building)
Trigger.AfterDelay(Actor.BuildTime(building[1]), function()
local actor = Actor.Create(building[1], true, { Owner = Greece, Location = GreeceCYard.Location + building[2] })
Greece.Cash = Greece.Cash - building[3]
building[4] = true
Trigger.OnKilled(actor, function() building[4] = true end)
Trigger.OnDamaged(actor, function(building)
if building.Owner == Greece and building.Health < building.MaxHealth * 3/4 then
building.StartBuildingRepairs()
end
end)
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
end)
end
ProduceInfantry = function()
if not BaseBuildings[2][4] then
return
elseif Harvester.IsDead and Greece.Resources <= 299 then
return
end
local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9))
local toBuild = { Utils.Random(AlliedInfantryTypes) }
local Path = Utils.Random(AttackPaths)
Greece.Build(toBuild, function(unit)
InfAttack[#InfAttack + 1] = unit[1]
if #InfAttack >= 10 then
SendUnits(InfAttack, Path)
InfAttack = { }
Trigger.AfterDelay(DateTime.Minutes(2), ProduceInfantry)
else
Trigger.AfterDelay(delay, ProduceInfantry)
end
end)
end
ProduceArmor = function()
if not BaseBuildings[4][4] then
return
elseif Harvester.IsDead and Greece.Resources <= 599 then
return
end
local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17))
local toBuild = { Utils.Random(AlliedArmorTypes) }
local Path = Utils.Random(AttackPaths)
Greece.Build(toBuild, function(unit)
ArmorAttack[#ArmorAttack + 1] = unit[1]
if #ArmorAttack >= 6 then
SendUnits(ArmorAttack, Path)
ArmorAttack = { }
Trigger.AfterDelay(DateTime.Minutes(3), ProduceArmor)
else
Trigger.AfterDelay(delay, ProduceArmor)
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,148 @@
RunInitialActivities = function()
Harvester.FindResources()
IdlingUnits()
Trigger.AfterDelay(10, function()
BringPatrol1()
BringPatrol2()
BuildBase()
end)
Utils.Do(Map.NamedActors, function(actor)
if actor.Owner == Greece and actor.HasProperty("StartBuildingRepairs") then
Trigger.OnDamaged(actor, function(building)
if building.Owner == Greece and building.Health < 3/4 * building.MaxHealth then
building.StartBuildingRepairs()
end
end)
end
end)
Reinforcements.Reinforce(player, SovietMCV, SovietStartToBasePath, 0, function(mcv)
mcv.Move(StartCamPoint.Location)
end)
Media.PlaySpeechNotification(player, "ReinforcementsArrived")
Trigger.OnKilled(Barr, function(building)
BaseBuildings[2][4] = false
end)
Trigger.OnKilled(Proc, function(building)
BaseBuildings[3][4] = false
end)
Trigger.OnKilled(Weap, function(building)
BaseBuildings[4][4] = false
end)
Trigger.OnEnteredFootprint(VillageCamArea, function(actor, id)
if actor.Owner == player then
local camera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location })
Trigger.RemoveFootprintTrigger(id)
Trigger.OnAllKilled(Village, function()
camera.Destroy()
end)
end
end)
Trigger.OnAnyKilled(Civs, function()
Trigger.ClearAll(civ1)
Trigger.ClearAll(civ2)
Trigger.ClearAll(civ3)
local units = Reinforcements.Reinforce(Greece, Avengers, { SWRoadPoint.Location }, 0)
Utils.Do(units, function(unit)
unit.Hunt()
end)
end)
Runner1.Move(CrossroadsEastPoint.Location)
Runner2.Move(InVillagePoint.Location)
Tank5.Move(V2MovePoint.Location)
Trigger.AfterDelay(DateTime.Seconds(2), function()
Tank1.Stop()
Tank2.Stop()
Tank3.Stop()
Tank4.Stop()
Tank5.Stop()
Trigger.AfterDelay(1, function()
Tank1.Move(SovietBaseEntryPointNE.Location)
Tank2.Move(SovietBaseEntryPointW.Location)
Tank3.Move(SovietBaseEntryPointNE.Location)
Tank4.Move(SovietBaseEntryPointW.Location)
Tank5.Move(V2MovePoint.Location)
end)
end)
Trigger.AfterDelay(DateTime.Minutes(1), ProduceInfantry)
Trigger.AfterDelay(DateTime.Minutes(2), ProduceArmor)
if Map.Difficulty == "Hard" or Map.Difficulty == "Medium" then
Trigger.AfterDelay(DateTime.Seconds(15), ReinfInf)
end
Trigger.AfterDelay(DateTime.Minutes(1), ReinfInf)
Trigger.AfterDelay(DateTime.Minutes(3), ReinfInf)
Trigger.AfterDelay(DateTime.Minutes(2), ReinfArmor)
end
Tick = function()
if Greece.HasNoRequiredUnits() then
player.MarkCompletedObjective(KillAll)
player.MarkCompletedObjective(KillRadar)
end
if player.HasNoRequiredUnits() then
Greece.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 RCheck then
RCheck = false
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Seconds(150), ReinfArmor)
elseif Map.Difficulty == "Medium" then
Trigger.AfterDelay(DateTime.Minutes(5), ReinfArmor)
else
Trigger.AfterDelay(DateTime.Minutes(8), ReinfArmor)
end
end
end
WorldLoaded = function()
player = Player.GetPlayer("USSR")
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")
end)
Trigger.OnObjectiveFailed(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
KillAll = player.AddPrimaryObjective("Defeat the Allied forces.")
BeatUSSR = Greece.AddPrimaryObjective("Defeat the Soviet forces.")
KillRadar = player.AddSecondaryObjective("Destroy Allied Radar Dome to stop enemy\nreinforcements.")
Trigger.OnPlayerLost(player, function()
Media.PlaySpeechNotification(player, "Lose")
end)
Trigger.OnPlayerWon(player, function()
Media.PlaySpeechNotification(player, "Win")
end)
Trigger.OnKilled(Radar, function()
player.MarkCompletedObjective(KillRadar)
Media.PlaySpeechNotification(player, "ObjectiveMet")
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,760 @@
MapFormat: 7
RequiresMod: ra
Title: Soviet 04a: Behind the lines
Description: The Allied base in this region is proving to be problematic.\n\nYour mission is to take it out so that we can begin to move forces through this area.\n\nAs long as they have communications they will be able to call upon heavy reinforcements.\n\nCrush their communications, and they should be easier to remove.
Author: Westwood Studios
Tileset: SNOW
MapSize: 128,128
Bounds: 38,45,72,46
Visibility: MissionSelector
Type: Campaign
Videos:
Briefing: soviet4.vqa
GameStart: sovmcv.vqa
GameWon: radrraid.vqa
GameLost: allymorf.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
Faction: england
PlayerReference@Spain:
Name: Spain
Faction: england
Allies: Greece
Enemies: USSR
PlayerReference@Creeps:
Name: Creeps
NonCombatant: True
Faction: england
PlayerReference@Greece:
Name: Greece
Faction: allies
ColorRamp: 161,134,236
Allies: Spain
Enemies: USSR
PlayerReference@USSR:
Name: USSR
Playable: True
AllowBots: False
Required: True
LockFaction: True
Faction: soviet
LockColor: True
ColorRamp: 3,255,127
LockSpawn: True
LockTeam: True
Enemies: Greece, Spain
Actors:
Actor0: sbag
Location: 71,43
Owner: Neutral
Actor1: sbag
Location: 72,43
Owner: Neutral
Actor2: sbag
Location: 72,44
Owner: Neutral
Actor3: cycl
Location: 47,45
Owner: Neutral
Actor4: cycl
Location: 48,45
Owner: Neutral
Actor5: cycl
Location: 49,45
Owner: Neutral
Actor6: cycl
Location: 50,45
Owner: Neutral
Actor7: cycl
Location: 53,45
Owner: Neutral
Actor8: sbag
Location: 72,45
Owner: Neutral
Actor9: sbag
Location: 72,46
Owner: Neutral
Actor10: sbag
Location: 73,46
Owner: Neutral
Actor11: sbag
Location: 74,46
Owner: Neutral
Actor12: cycl
Location: 46,47
Owner: Neutral
Actor13: sbag
Location: 72,47
Owner: Neutral
Actor14: cycl
Location: 46,48
Owner: Neutral
Actor15: sbag
Location: 71,48
Owner: Neutral
Actor16: sbag
Location: 72,48
Owner: Neutral
Actor17: cycl
Location: 46,49
Owner: Neutral
Actor18: sbag
Location: 71,52
Owner: Neutral
Actor19: sbag
Location: 72,52
Owner: Neutral
Actor20: sbag
Location: 72,53
Owner: Neutral
Actor21: sbag
Location: 72,54
Owner: Neutral
Actor22: sbag
Location: 72,55
Owner: Neutral
Actor23: sbag
Location: 73,55
Owner: Neutral
Actor24: sbag
Location: 74,55
Owner: Neutral
Actor25: sbag
Location: 72,56
Owner: Neutral
Actor26: sbag
Location: 86,56
Owner: Neutral
Actor27: sbag
Location: 88,56
Owner: Neutral
Actor28: sbag
Location: 89,56
Owner: Neutral
Actor29: sbag
Location: 90,56
Owner: Neutral
Actor30: sbag
Location: 91,56
Owner: Neutral
Actor31: sbag
Location: 92,56
Owner: Neutral
Actor32: sbag
Location: 67,57
Owner: Neutral
Actor33: sbag
Location: 68,57
Owner: Neutral
Actor34: sbag
Location: 69,57
Owner: Neutral
Actor35: sbag
Location: 70,57
Owner: Neutral
Actor36: sbag
Location: 71,57
Owner: Neutral
Actor37: sbag
Location: 72,57
Owner: Neutral
Actor38: sbag
Location: 78,58
Owner: Neutral
Actor39: sbag
Location: 79,58
Owner: Neutral
Actor40: sbag
Location: 80,58
Owner: Neutral
Actor41: sbag
Location: 81,58
Owner: Neutral
Actor42: sbag
Location: 82,58
Owner: Neutral
Actor43: sbag
Location: 83,58
Owner: Neutral
Actor44: sbag
Location: 57,69
Owner: Neutral
Actor45: sbag
Location: 61,69
Owner: Neutral
Actor46: sbag
Location: 44,72
Owner: Neutral
Actor47: sbag
Location: 48,72
Owner: Neutral
Actor48: tc04
Location: 97,67
Owner: Neutral
Actor49: tc05
Location: 71,79
Owner: Neutral
Actor50: t10
Location: 100,59
Owner: Neutral
Actor51: t13
Location: 78,50
Owner: Neutral
Actor52: tc01
Location: 68,55
Owner: Neutral
Actor53: t08
Location: 73,47
Owner: Neutral
Actor54: tc01
Location: 29,86
Owner: Neutral
Actor55: t08
Location: 36,84
Owner: Neutral
Actor56: t06
Location: 36,87
Owner: Neutral
Actor57: t11
Location: 38,74
Owner: Neutral
Actor58: tc02
Location: 42,75
Owner: Neutral
Actor59: tc03
Location: 60,80
Owner: Neutral
Actor60: tc05
Location: 54,73
Owner: Neutral
Actor61: tc01
Location: 47,87
Owner: Neutral
Actor62: t16
Location: 56,79
Owner: Neutral
Actor63: tc04
Location: 79,70
Owner: Neutral
Actor64: tc01
Location: 108,73
Owner: Neutral
Actor65: t07
Location: 94,60
Owner: Neutral
Actor66: tc05
Location: 91,66
Owner: Neutral
Actor67: t17
Location: 82,64
Owner: Neutral
Actor68: tc04
Location: 28,80
Owner: Neutral
Actor69: tc05
Location: 29,75
Owner: Neutral
Actor70: tc02
Location: 27,76
Owner: Neutral
Actor71: t17
Location: 42,52
Owner: Neutral
Actor72: t01
Location: 53,81
Owner: Neutral
Actor73: tc01
Location: 99,77
Owner: Neutral
Actor74: mine
Location: 106,86
Owner: Neutral
Actor75: mine
Location: 70,87
Owner: Neutral
Actor76: tc04
Location: 39,46
Owner: Neutral
Actor77: tc05
Location: 45,61
Owner: Neutral
Actor78: tc02
Location: 41,48
Owner: Neutral
Actor79: tc04
Location: 98,45
Owner: Neutral
Actor80: t15
Location: 95,48
Owner: Neutral
Actor81: tc03
Location: 38,68
Owner: Neutral
Actor82: t08
Location: 38,67
Owner: Neutral
Actor83: t08
Location: 40,69
Owner: Neutral
Actor84: tc05
Location: 38,79
Owner: Neutral
Actor104: brl3
Location: 95,50
Owner: Greece
Actor105: barl
Location: 93,49
Owner: Greece
Actor106: brl3
Location: 94,50
Owner: Greece
Actor107: barl
Location: 93,50
Owner: Greece
Actor108: v19
Location: 92,48
Owner: Greece
Actor110: brl3
Location: 83,57
Owner: Greece
Actor111: barl
Location: 82,57
Owner: Greece
Actor112: barl
Location: 81,57
Owner: Greece
Actor113: brl3
Location: 88,55
Owner: Greece
Actor114: barl
Location: 87,55
Owner: Greece
Actor115: brl3
Location: 87,56
Owner: Greece
Actor116: brl3
Location: 57,46
Owner: Greece
Actor117: barl
Location: 57,47
Owner: Greece
Actor118: brl3
Location: 92,50
Owner: Greece
Actor119: barl
Location: 92,49
Owner: Greece
Actor120: barl
Location: 94,49
Owner: Greece
Actor133: 2tnk
Location: 69,54
Owner: Greece
Facing: 64
Actor136: 1tnk
Location: 59,68
Owner: Greece
Facing: 128
Actor137: 1tnk
Location: 46,71
Owner: Greece
Facing: 128
Actor139: jeep
Location: 57,54
Owner: Greece
Facing: 96
Actor140: 1tnk
Location: 62,46
Owner: Greece
Facing: 160
Actor141: 1tnk
Location: 60,57
Owner: Greece
Facing: 128
Actor142: 1tnk
Location: 54,57
Owner: Greece
Facing: 128
Actor143: 2tnk
Location: 92,53
Owner: Greece
Facing: 192
Actor144: 2tnk
Location: 92,55
Owner: Greece
Health: 99
Facing: 192
Actor145: 2tnk
Location: 86,58
Owner: Greece
Health: 99
Facing: 160
Actor146: jeep
Location: 89,60
Owner: Greece
Facing: 160
Actor151: 2tnk
Location: 40,55
Owner: Greece
Facing: 128
Actor152: 2tnk
Location: 44,55
Owner: Greece
Facing: 128
Actor154: 2tnk
Location: 67,64
Owner: Greece
Facing: 160
Actor155: 2tnk
Location: 69,63
Owner: Greece
Facing: 160
Actor159: mine
Location: 77,46
Owner: Neutral
Radar: dome
Location: 49,46
Owner: Greece
CYard: fact
Location: 58,45
Owner: Greece
Proc: proc
Location: 63,53
Owner: Greece
FreeActor: False
Silo1: silo
Location: 62,52
Owner: Greece
Silo2: silo
Location: 63,53
Owner: Greece
Silo3: silo
Location: 65,52
Owner: Greece
Silo4: silo
Location: 66,53
Owner: Greece
Barr: tent
Location: 50,52
Owner: Greece
Gun1: gun
Location: 87,57
Owner: Greece
Facing: 96
Gun2: gun
Location: 84,58
Owner: Greece
Facing: 96
Gun3: gun
Location: 53,48
Owner: Greece
Facing: 96
Gun4: gun
Location: 67,65
Owner: Greece
Facing: 96
Gun5: gun
Location: 70,63
Owner: Greece
Facing: 96
Pbox1: pbox
Location: 57,70
Owner: Greece
Pbox2: powr
Location: 51,45
Owner: Greece
Pbox3: pbox
Location: 61,70
Owner: Greece
Pbox4: pbox
Location: 67,63
Owner: Greece
Pbox5: pbox
Location: 44,73
Owner: Greece
Pbox6: pbox
Location: 48,73
Owner: Greece
village1: v11
Location: 57,80
Owner: Spain
village2: v03
Location: 49,77
Owner: Spain
Health: 75
village3: v02
Location: 43,77
Owner: Spain
village4: v01
Location: 40,75
Owner: Spain
village5: v05
Location: 55,76
Owner: Spain
Health: 39
Weap: weap
Location: 67,45
Owner: Greece
Gap1: gap
Location: 83,51
Owner: Greece
Gap2: gap
Location: 59,65
Owner: Greece
Powr1: powr
Location: 47,47
Owner: Greece
Powr2: powr
Location: 93,46
Owner: Greece
Powr3: powr
Location: 96,45
Owner: Greece
APwr: apwr
Location: 49,56
Owner: Greece
Fix1: fix
Location: 56,55
Owner: Greece
Tank1: 3tnk
Location: 88,87
Owner: USSR
Tank2: 3tnk
Location: 84,87
Owner: USSR
Tank3: 3tnk
Location: 87,86
Owner: USSR
Health: 99
Tank4: 3tnk
Location: 85,86
Owner: USSR
Tank5: v2rl
Location: 86,87
Owner: USSR
civ1: c6
Location: 53,80
Owner: Spain
Facing: 64
SubCell: 2
civ2: c7
Location: 58,79
Owner: Spain
SubCell: 3
civ3: c5
Location: 57,81
Owner: Spain
Facing: 64
SubCell: 3
Harvester: harv
Location: 76,47
Owner: Greece
Facing: 160
Runner1: jeep
Location: 88,83
Owner: Greece
Runner2: jeep
Location: 84,83
Owner: Greece
Facing: 64
GreeceCYard: waypoint
Location: 59,47
Owner: Neutral
BridgeEntrancePoint: waypoint
Location: 83,55
Owner: Neutral
SovietBasePoint: waypoint
Location: 86,88
Owner: Neutral
ToRadarPoint: waypoint
Location: 42,60
Owner: Neutral
InVillagePoint: waypoint
Location: 56,82
Owner: Neutral
NRoadPoint: waypoint
Location: 80,45
Owner: Neutral
SWRoadPoint: waypoint
Location: 38,90
Owner: Neutral
VillagePoint: waypoint
Location: 57,80
Owner: Neutral
CrossroadsNorthPoint: waypoint
Location: 80,49
Owner: Neutral
StartPoint: waypoint
Location: 86,90
Owner: Neutral
SovietBaseEntryPointW: waypoint
Location: 69,79
Owner: Neutral
NearRadarPoint: waypoint
Location: 43,47
Owner: Neutral
NERoadTurnPoint: waypoint
Location: 106,54
Owner: Neutral
CrossroadsEastPoint: waypoint
Location: 106,64
Owner: Neutral
VillageEntrancePoint: waypoint
Location: 59,75
Owner: Neutral
StartCamPoint: waypoint
Location: 86,87
Owner: Neutral
SovietBaseEntryPointNE: waypoint
Location: 96,77
Owner: Neutral
V2MovePoint: waypoint
Location: 84,83
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:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^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
^CivBuilding:
Tooltip:
ShowOwnerRow: false
^TechBuilding:
Tooltip:
ShowOwnerRow: false
AFLD:
ParatroopersPower@paratroopers:
DropItems: E1,E1,E1,E2,E2
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
AGUN:
Buildable:
Prerequisites: ~disabled
Sequences:
VoxelSequences:
Weapons:
Voices:
Notifications:
Translations:

View File

@@ -0,0 +1,80 @@
Civs = { civ1, civ2, civ3 }
Village = { civ1, civ2, civ3, village1, village2, village5 }
SovietMCV = { "mcv" }
InfantryReinfGreece = { "e1", "e1", "e1", "e1", "e1" }
Avengers = { "jeep", "1tnk", "2tnk", "2tnk", "1tnk" }
Patrol1Group = { "jeep", "jeep", "2tnk", "2tnk" }
Patrol2Group = { "jeep", "1tnk", "1tnk", "1tnk" }
AlliedInfantryTypes = { "e1", "e3" }
AlliedArmorTypes = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
InfAttack = { }
ArmorAttack = { }
SovietStartToBasePath = { StartPoint.Location, SovietBasePoint.Location }
InfReinfPath = { SWRoadPoint.Location, InVillagePoint.Location }
ArmorReinfPath = { NRoadPoint.Location, CrossroadsNorthPoint.Location }
Patrol1Path = { NearRadarPoint.Location, ToRadarPoint.Location, InVillagePoint.Location, ToRadarPoint.Location }
Patrol2Path = { BridgeEntrancePoint.Location, NERoadTurnPoint.Location, CrossroadsEastPoint.Location, BridgeEntrancePoint.Location }
VillageCamArea = { CPos.New(68, 75),CPos.New(68, 76),CPos.New(68, 77),CPos.New(68, 78),CPos.New(68, 79), CPos.New(68, 80), CPos.New(68, 81), CPos.New(68, 82) }
if Map.Difficulty == "Easy" then
ArmorReinfGreece = { "jeep", "1tnk", "1tnk" }
else
ArmorReinfGreece = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
end
AttackPaths =
{
{ VillageEntrancePoint },
{ BridgeEntrancePoint, NERoadTurnPoint, CrossroadsEastPoint }
}
ReinfInf = function()
Reinforcements.Reinforce(Greece, InfantryReinfGreece, InfReinfPath, 0, function(soldier)
soldier.Hunt()
end)
end
ReinfArmor = function()
if not Radar.IsDead and Radar.Owner == Greece then
RCheck = true
Reinforcements.Reinforce(Greece, ArmorReinfGreece, ArmorReinfPath, 0, function(soldier)
soldier.Hunt()
end)
end
end
BringPatrol1 = function()
local units = Reinforcements.Reinforce(Greece, Patrol1Group, { SWRoadPoint.Location }, 0)
Utils.Do(units, function(patrols)
patrols.Patrol(Patrol1Path, true, 250)
end)
if not Radar.IsDead and Radar.Owner == Greece then
Trigger.OnAllKilled(units, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(4), BringPatrol1)
else
Trigger.AfterDelay(DateTime.Minutes(7), BringPatrol1)
end
end)
end
end
BringPatrol2 = function()
local units = Reinforcements.Reinforce(Greece, Patrol2Group, { NRoadPoint.Location }, 0)
Utils.Do(units, function(patrols)
patrols.Patrol(Patrol2Path, true, 250)
end)
if not Radar.IsDead and Radar.Owner == Greece then
Trigger.OnAllKilled(units, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(4), BringPatrol2)
else
Trigger.AfterDelay(DateTime.Minutes(7), BringPatrol2)
end
end)
end
end

View File

@@ -0,0 +1,111 @@
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
IdlingUnits = function()
local lazyUnits = Greece.GetGroundAttackers()
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(-4, -2), 300, true },
{ "tent", CVec.New(-8, 1), 400, true },
{ "proc", CVec.New(-5, 1), 1400, true },
{ "weap", CVec.New(-12, -1), 2000, true }
}
BuildBase = function()
if CYard.IsDead or CYard.Owner ~= Greece then
return
elseif Harvester.IsDead and Greece.Resources <= 299 then
return
end
for i,v in ipairs(BaseBuildings) do
if not v[4] then
BuildBuilding(v)
return
end
end
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
end
BuildBuilding = function(building)
Trigger.AfterDelay(Actor.BuildTime(building[1]), function()
local actor = Actor.Create(building[1], true, { Owner = Greece, Location = GreeceCYard.Location + building[2] })
Greece.Cash = Greece.Cash - building[3]
building[4] = true
Trigger.OnKilled(actor, function() building[4] = true end)
Trigger.OnDamaged(actor, function(building)
if building.Owner == Greece and building.Health < building.MaxHealth * 3/4 then
building.StartBuildingRepairs()
end
end)
Trigger.AfterDelay(DateTime.Seconds(10), BuildBase)
end)
end
ProduceInfantry = function()
if not BaseBuildings[2][4] then
return
elseif Harvester.IsDead and Greece.Resources <= 299 then
return
end
local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9))
local toBuild = { Utils.Random(AlliedInfantryTypes) }
local Path = Utils.Random(AttackPaths)
Greece.Build(toBuild, function(unit)
InfAttack[#InfAttack + 1] = unit[1]
if #InfAttack >= 10 then
SendUnits(InfAttack, Path)
InfAttack = { }
Trigger.AfterDelay(DateTime.Minutes(2), ProduceInfantry)
else
Trigger.AfterDelay(delay, ProduceInfantry)
end
end)
end
ProduceArmor = function()
if not BaseBuildings[4][4] then
return
elseif Harvester.IsDead and Greece.Resources <= 599 then
return
end
local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17))
local toBuild = { Utils.Random(AlliedArmorTypes) }
local Path = Utils.Random(AttackPaths)
Greece.Build(toBuild, function(unit)
ArmorAttack[#ArmorAttack + 1] = unit[1]
if #ArmorAttack >= 6 then
SendUnits(ArmorAttack, Path)
ArmorAttack = { }
Trigger.AfterDelay(DateTime.Minutes(3), ProduceArmor)
else
Trigger.AfterDelay(delay, ProduceArmor)
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,141 @@
RunInitialActivities = function()
Harvester.FindResources()
Helper.Destroy()
IdlingUnits()
Trigger.AfterDelay(DateTime.Seconds(1), function()
BringPatrol1()
Trigger.AfterDelay(DateTime.Seconds(5), function()
BringPatrol2()
end)
BuildBase()
end)
Utils.Do(Map.NamedActors, function(actor)
if actor.Owner == Greece and actor.HasProperty("StartBuildingRepairs") then
Trigger.OnDamaged(actor, function(building)
if building.Owner == Greece and building.Health < 3/4 * building.MaxHealth then
building.StartBuildingRepairs()
end
end)
end
end)
Trigger.OnKilled(Powr, function(building)
BaseBuildings[1][4] = false
end)
Trigger.OnKilled(Barr, function(building)
BaseBuildings[2][4] = false
end)
Trigger.OnKilled(Proc, function(building)
BaseBuildings[3][4] = false
end)
Trigger.OnKilled(Weap, function(building)
BaseBuildings[4][4] = false
end)
Trigger.OnEnteredFootprint(VillageCamArea, function(actor, id)
if actor.Owner == player then
local camera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location })
Trigger.RemoveFootprintTrigger(id)
Trigger.OnAllKilled(Village, function()
camera.Destroy()
end)
end
end)
Trigger.OnAnyKilled(Civs, function()
Trigger.ClearAll(civ1)
Trigger.ClearAll(civ2)
Trigger.ClearAll(civ3)
Trigger.ClearAll(civ4)
local units = Reinforcements.Reinforce(Greece, Avengers, { NRoadPoint.Location }, 0)
Utils.Do(units, function(unit)
unit.Hunt()
end)
end)
Trigger.AfterDelay(DateTime.Minutes(1), ProduceInfantry)
Trigger.AfterDelay(DateTime.Minutes(2), ProduceArmor)
if Map.Difficulty == "Hard" or Map.Difficulty == "Medium" then
Trigger.AfterDelay(DateTime.Seconds(5), ReinfInf)
end
Trigger.AfterDelay(DateTime.Minutes(1), ReinfInf)
Trigger.AfterDelay(DateTime.Minutes(3), ReinfInf)
Trigger.AfterDelay(DateTime.Minutes(2), ReinfArmor)
end
Tick = function()
if Greece.HasNoRequiredUnits() then
player.MarkCompletedObjective(KillAll)
player.MarkCompletedObjective(KillRadar)
end
if player.HasNoRequiredUnits() then
Greece.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 RCheck then
RCheck = false
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Seconds(150), ReinfArmor)
elseif Map.Difficulty == "Medium" then
Trigger.AfterDelay(DateTime.Minutes(5), ReinfArmor)
else
Trigger.AfterDelay(DateTime.Minutes(8), ReinfArmor)
end
end
end
WorldLoaded = function()
player = Player.GetPlayer("USSR")
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")
end)
Trigger.OnObjectiveFailed(player, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
KillAll = player.AddPrimaryObjective("Defeat the Allied forces.")
BeatUSSR = Greece.AddPrimaryObjective("Defeat the Soviet forces.")
KillRadar = player.AddSecondaryObjective("Destroy Allied Radar Dome to stop enemy\nreinforcements.")
Trigger.OnPlayerLost(player, function()
Media.PlaySpeechNotification(player, "Lose")
end)
Trigger.OnPlayerWon(player, function()
Media.PlaySpeechNotification(player, "Win")
end)
Trigger.OnKilled(Radar, function()
player.MarkCompletedObjective(KillRadar)
Media.PlaySpeechNotification(player, "ObjectiveMet")
end)
Trigger.OnDamaged(Harvester, function()
Utils.Do(Guards, function(unit)
if not unit.IsDead and not Harvester.IsDead then
unit.AttackMove(Harvester.Location)
end
end)
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,788 @@
MapFormat: 7
RequiresMod: ra
Title: Soviet 04b: Behind the lines
Description: The Allied base in this region is proving to be problematic.\n\nYour mission is to take it out so that we can begin to move forces through this area.\n\nAs long as they have communications they will be able to call upon heavy reinforcements.\n\nCrush their communications, and they should be easier to remove.
Author: Westwood Studios
Tileset: SNOW
MapSize: 128,128
Bounds: 28,45,91,49
Visibility: MissionSelector
Type: Campaign
Videos:
Briefing: soviet4.vqa
GameStart: sovmcv.vqa
GameWon: radrraid.vqa
GameLost: allymorf.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
Faction: england
PlayerReference@Spain:
Name: Spain
Faction: england
Allies: Greece
Enemies: USSR
PlayerReference@Creeps:
Name: Creeps
NonCombatant: True
Faction: england
PlayerReference@Greece:
Name: Greece
Faction: allies
ColorRamp: 161,134,236
Allies: Spain
Enemies: USSR
PlayerReference@USSR:
Name: USSR
Playable: True
AllowBots: False
Required: True
LockFaction: True
Faction: soviet
LockColor: True
ColorRamp: 3,255,127
LockSpawn: True
LockTeam: True
Enemies: Greece, Spain
Actors:
Helper: proc
Owner: Greece
Location: 92,75
FreeActor: False
Actor0: sbag
Location: 85,50
Owner: Neutral
Actor1: sbag
Location: 86,50
Owner: Neutral
Actor2: sbag
Location: 103,50
Owner: Neutral
Actor3: sbag
Location: 104,50
Owner: Neutral
Actor4: sbag
Location: 105,50
Owner: Neutral
Actor5: sbag
Location: 106,50
Owner: Neutral
Actor6: sbag
Location: 109,50
Owner: Neutral
Actor7: sbag
Location: 110,50
Owner: Neutral
Actor8: sbag
Location: 113,50
Owner: Neutral
Actor9: sbag
Location: 114,50
Owner: Neutral
Actor10: sbag
Location: 85,51
Owner: Neutral
Actor11: sbag
Location: 106,51
Owner: Neutral
Actor12: sbag
Location: 109,51
Owner: Neutral
Actor13: sbag
Location: 114,51
Owner: Neutral
Actor14: sbag
Location: 85,52
Owner: Neutral
Actor15: sbag
Location: 106,52
Owner: Neutral
Actor16: sbag
Location: 109,52
Owner: Neutral
Actor17: sbag
Location: 114,52
Owner: Neutral
Actor18: sbag
Location: 85,53
Owner: Neutral
Actor19: sbag
Location: 106,53
Owner: Neutral
Actor20: sbag
Location: 109,53
Owner: Neutral
Actor21: sbag
Location: 110,53
Owner: Neutral
Actor22: sbag
Location: 113,53
Owner: Neutral
Actor23: sbag
Location: 114,53
Owner: Neutral
Actor24: sbag
Location: 85,54
Owner: Neutral
Actor25: sbag
Location: 106,54
Owner: Neutral
Actor26: sbag
Location: 106,55
Owner: Neutral
Actor27: sbag
Location: 106,56
Owner: Neutral
Actor28: sbag
Location: 106,57
Owner: Neutral
Actor29: sbag
Location: 106,58
Owner: Neutral
Actor30: sbag
Location: 85,59
Owner: Neutral
Actor31: sbag
Location: 106,59
Owner: Neutral
Actor32: sbag
Location: 85,60
Owner: Neutral
Actor33: sbag
Location: 106,60
Owner: Neutral
Actor34: sbag
Location: 85,61
Owner: Neutral
Actor35: sbag
Location: 106,61
Owner: Neutral
Actor36: sbag
Location: 85,62
Owner: Neutral
Actor37: sbag
Location: 101,62
Owner: Neutral
Actor38: sbag
Location: 102,62
Owner: Neutral
Actor39: sbag
Location: 103,62
Owner: Neutral
Actor40: sbag
Location: 104,62
Owner: Neutral
Actor41: sbag
Location: 105,62
Owner: Neutral
Actor42: sbag
Location: 106,62
Owner: Neutral
Actor43: sbag
Location: 85,63
Owner: Neutral
Actor44: sbag
Location: 100,63
Owner: Neutral
Actor45: sbag
Location: 101,63
Owner: Neutral
Actor46: sbag
Location: 85,64
Owner: Neutral
Actor47: sbag
Location: 86,64
Owner: Neutral
Actor48: sbag
Location: 87,64
Owner: Neutral
Actor49: sbag
Location: 88,64
Owner: Neutral
Actor50: sbag
Location: 89,64
Owner: Neutral
Actor51: sbag
Location: 90,64
Owner: Neutral
Actor52: sbag
Location: 97,64
Owner: Neutral
Actor53: sbag
Location: 98,64
Owner: Neutral
Actor54: sbag
Location: 99,64
Owner: Neutral
Actor55: sbag
Location: 100,64
Owner: Neutral
Actor56: t01
Location: 112,62
Owner: Neutral
Actor57: tc01
Location: 109,61
Owner: Neutral
Actor58: tc04
Location: 110,45
Owner: Neutral
Actor59: tc03
Location: 114,45
Owner: Neutral
Actor60: tc05
Location: 99,45
Owner: Neutral
Actor61: tc01
Location: 117,79
Owner: Neutral
Actor62: tc02
Location: 109,79
Owner: Neutral
Actor63: tc01
Location: 113,48
Owner: Neutral
Actor64: tc04
Location: 116,51
Owner: Neutral
Actor65: tc05
Location: 113,53
Owner: Neutral
Actor66: tc02
Location: 109,54
Owner: Neutral
Actor67: tc05
Location: 73,60
Owner: Neutral
Actor68: tc04
Location: 82,63
Owner: Neutral
Actor69: tc01
Location: 77,62
Owner: Neutral
Actor70: tc02
Location: 78,60
Owner: Neutral
Actor71: tc05
Location: 95,66
Owner: Neutral
Actor72: tc03
Location: 86,62
Owner: Neutral
Actor73: tc02
Location: 95,69
Owner: Neutral
Actor74: tc01
Location: 102,62
Owner: Neutral
Actor75: t11
Location: 107,61
Owner: Neutral
Actor76: tc04
Location: 82,49
Owner: Neutral
Actor77: tc04
Location: 50,69
Owner: Neutral
Actor78: tc01
Location: 58,70
Owner: Neutral
Actor79: tc01
Location: 84,89
Owner: Neutral
Actor80: tc04
Location: 94,80
Owner: Neutral
Actor81: tc05
Location: 93,85
Owner: Neutral
Actor82: tc05
Location: 29,55
Owner: Neutral
Actor83: tc03
Location: 39,48
Owner: Neutral
Actor84: tc02
Location: 29,51
Owner: Neutral
Actor85: tc01
Location: 36,56
Owner: Neutral
Actor86: tc04
Location: 42,48
Owner: Neutral
Actor87: t15
Location: 36,50
Owner: Neutral
Actor88: tc05
Location: 48,49
Owner: Neutral
Actor89: tc04
Location: 67,49
Owner: Neutral
Actor90: t17
Location: 71,71
Owner: Neutral
Actor91: tc04
Location: 50,78
Owner: Neutral
Actor92: tc04
Location: 34,65
Owner: Neutral
Actor93: tc04
Location: 57,91
Owner: Neutral
Actor94: tc05
Location: 60,91
Owner: Neutral
Actor95: tc02
Location: 72,90
Owner: Neutral
Actor114: pbox
Location: 89,65
Owner: Greece
Actor115: pbox
Location: 97,65
Owner: Greece
Actor116: pbox
Location: 84,60
Owner: Greece
Actor117: pbox
Location: 84,53
Owner: Greece
Actor118: pbox
Location: 51,71
Owner: Greece
Actor119: pbox
Location: 57,71
Owner: Greece
Actor125: gun
Location: 84,61
Owner: Greece
Facing: 192
Actor126: gun
Location: 97,63
Owner: Greece
Facing: 128
Actor129: 1tnk
Location: 56,71
Owner: Greece
Facing: 96
Actor130: 1tnk
Location: 53,71
Owner: Greece
Facing: 96
Actor135: mcv
Location: 33,90
Owner: USSR
Actor136: 1tnk
Location: 117,62
Owner: Greece
Facing: 96
Actor137: 1tnk
Location: 114,62
Owner: Greece
Facing: 96
Actor138: 2tnk
Location: 111,53
Owner: Greece
Facing: 128
Actor139: 2tnk
Location: 112,53
Owner: Greece
Facing: 128
Actor142: jeep
Location: 74,91
Owner: Greece
Actor143: jeep
Location: 48,49
Owner: Greece
Facing: 160
Actor144: 1tnk
Location: 86,90
Owner: Greece
Facing: 32
Actor145: 1tnk
Location: 96,86
Owner: Greece
Facing: 96
Actor146: 2tnk
Location: 96,47
Owner: Greece
Facing: 160
Actor148: e1
Location: 76,57
Owner: Greece
SubCell: 0
Actor149: e1
Location: 77,58
Owner: Greece
SubCell: 2
Actor150: e1
Location: 76,58
Owner: Greece
SubCell: 0
Actor151: e3
Location: 73,58
Owner: Greece
SubCell: 0
Actor152: e3
Location: 72,57
Owner: Greece
SubCell: 4
Actor153: e3
Location: 72,58
Owner: Greece
SubCell: 2
Actor154: e3
Location: 95,80
Owner: Greece
SubCell: 3
Actor155: e3
Location: 96,80
Owner: Greece
SubCell: 0
Actor160: dog
Location: 33,86
Owner: USSR
SubCell: 1
Actor161: dog
Location: 34,86
Owner: USSR
SubCell: 1
Actor162: dog
Location: 33,85
Owner: USSR
SubCell: 1
Actor163: dog
Location: 34,85
Owner: USSR
SubCell: 1
Actor164: e3
Location: 102,53
Owner: Greece
SubCell: 1
Actor165: e3
Location: 95,52
Owner: Greece
SubCell: 0
Actor166: e3
Location: 102,57
Owner: Greece
SubCell: 0
Actor167: mine
Location: 37,55
Owner: Neutral
Actor168: mine
Location: 52,88
Owner: Neutral
Actor169: mine
Location: 91,87
Owner: Neutral
Radar: dome
Location: 111,50
Owner: Greece
Pbox1: pbox
Location: 111,80
Owner: Greece
Pbox2: pbox
Location: 116,80
Owner: Greece
NavyYard: syrd
Location: 78,65
Owner: Greece
CYard: fact
Location: 103,51
Owner: Greece
Proc: proc
Location: 99,54
Owner: Greece
FreeActor: False
Silo1: silo
Location: 104,55
Owner: Greece
Silo2: silo
Location: 104,56
Owner: Greece
Silo3: silo
Location: 105,56
Owner: Greece
Silo4: silo
Location: 105,55
Owner: Greece
Powr: powr
Location: 100,50
Owner: Greece
Powr2: powr
Location: 88,61
Owner: Greece
Powr3: powr
Location: 96,50
Owner: Greece
Powr4: powr
Location: 86,52
Owner: Greece
Powr5: powr
Location: 89,51
Owner: Greece
Powr6: powr
Location: 98,50
Owner: Greece
Barr: tent
Location: 96,54
Owner: Greece
Gap1: gap
Location: 86,50
Owner: Greece
Gap2: gap
Location: 90,62
Owner: Greece
Weap: weap
Location: 92,50
Owner: Greece
village1: v01
Location: 37,48
Owner: Spain
village2: v03
Location: 42,47
Owner: Spain
village3: v05
Location: 44,50
Owner: Spain
village4: v06
Location: 40,50
Owner: Spain
village5: v07
Location: 36,52
Owner: Spain
Harvester: harv
Location: 93,78
Owner: Greece
Facing: 128
Tank1: 3tnk
Location: 32,87
Owner: USSR
Tank2: 3tnk
Location: 34,87
Owner: USSR
Tank3: v2rl
Location: 32,88
Owner: USSR
Tank4: v2rl
Location: 34,88
Owner: USSR
civ1: c1
Location: 41,53
Owner: Spain
Facing: 160
SubCell: 0
civ2: c2
Location: 47,49
Owner: Spain
Facing: 224
SubCell: 1
civ3: c3
Location: 39,51
Owner: Spain
SubCell: 2
civ4: c4
Location: 46,52
Owner: Spain
Facing: 96
SubCell: 4
Guard1: 1tnk
Location: 105,59
Owner: Greece
Facing: 64
Guard2: 1tnk
Location: 105,60
Owner: Greece
Facing: 64
Guard3: 2tnk
Location: 105,61
Owner: Greece
Facing: 64
NRoadPoint: waypoint
Location: 75,45
Owner: Neutral
CrossroadsPoint: waypoint
Location: 74,57
Owner: Neutral
VillagePoint: waypoint
Location: 40,58
Owner: Neutral
ToVillageRoadPoint: waypoint
Location: 52,57
Owner: Neutral
InBasePoint: waypoint
Location: 94,57
Owner: Neutral
OrefieldSouthPoint: waypoint
Location: 91,84
Owner: Neutral
ToBridgePoint: waypoint
Location: 66,66
Owner: Neutral
ToRadarBridgePoint: waypoint
Location: 107,88
Owner: Neutral
IslandPoint: waypoint
Location: 113,75
Owner: Neutral
EntranceSouthPoint: waypoint
Location: 93,67
Owner: Neutral
GreeceCYard: waypoint
Location: 104,52
Owner: Neutral
VillageCamPoint: waypoint
Location: 43,52
Owner: Neutral
StartCamPoint: waypoint
Location: 33,88
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:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^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
^CivBuilding:
Tooltip:
ShowOwnerRow: false
^TechBuilding:
Tooltip:
ShowOwnerRow: false
AFLD:
ParatroopersPower@paratroopers:
DropItems: E1,E1,E1,E2,E2
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
AGUN:
Buildable:
Prerequisites: ~disabled
Sequences:
VoxelSequences:
Weapons:
Voices:
Notifications:
Translations:

View File

@@ -0,0 +1,80 @@
Civs = { civ1, civ2, civ3, civ4 }
Village = { civ1, civ3, civ4, village1, village3 }
Guards = { Guard1, Guard2, Guard3 }
SovietMCV = { "mcv" }
InfantryReinfGreece = { "e1", "e1", "e1", "e1", "e1" }
Avengers = { "jeep", "1tnk", "2tnk", "2tnk", "1tnk" }
Patrol1Group = { "jeep", "jeep", "2tnk", "2tnk" }
Patrol2Group = { "jeep", "1tnk", "1tnk", "1tnk" }
AlliedInfantryTypes = { "e1", "e3" }
AlliedArmorTypes = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
InfAttack = { }
ArmorAttack = { }
InfReinfPath = { NRoadPoint.Location, CrossroadsPoint.Location, ToVillageRoadPoint.Location, VillagePoint.Location }
Patrol1Path = { ToVillageRoadPoint.Location, ToBridgePoint.Location, InBasePoint.Location }
Patrol2Path = { EntranceSouthPoint.Location, ToRadarBridgePoint.Location, IslandPoint.Location, ToRadarBridgePoint.Location }
VillageCamArea = { CPos.New(37, 58),CPos.New(37, 59),CPos.New(37, 60),CPos.New(38, 60),CPos.New(39, 60), CPos.New(40, 60), CPos.New(41, 60), CPos.New(35, 57), CPos.New(34, 57), CPos.New(33, 57), CPos.New(32, 57) }
if Map.Difficulty == "Easy" then
ArmorReinfGreece = { "jeep", "1tnk", "1tnk" }
else
ArmorReinfGreece = { "jeep", "jeep", "1tnk", "1tnk", "1tnk" }
end
AttackPaths =
{
{ CrossroadsPoint, ToVillageRoadPoint, VillagePoint },
{ EntranceSouthPoint, OrefieldSouthPoint },
{ CrossroadsPoint, ToBridgePoint }
}
ReinfInf = function()
Reinforcements.Reinforce(Greece, InfantryReinfGreece, InfReinfPath, 0, function(soldier)
soldier.Hunt()
end)
end
ReinfArmor = function()
if not Radar.IsDead and Radar.Owner == Greece then
RCheck = true
Reinforcements.Reinforce(Greece, ArmorReinfGreece, InfReinfPath, 0, function(soldier)
soldier.Hunt()
end)
end
end
BringPatrol1 = function()
local units = Reinforcements.Reinforce(Greece, Patrol1Group, { NRoadPoint.Location }, 0)
Utils.Do(units, function(patrols)
patrols.Patrol(Patrol1Path, true, 250)
end)
if not Radar.IsDead and Radar.Owner == Greece then
Trigger.OnAllKilled(units, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(4), BringPatrol1)
else
Trigger.AfterDelay(DateTime.Minutes(7), BringPatrol1)
end
end)
end
end
BringPatrol2 = function()
local units = Reinforcements.Reinforce(Greece, Patrol2Group, { NRoadPoint.Location }, 0)
Utils.Do(units, function(patrols)
patrols.Patrol(Patrol2Path, true, 250)
end)
if not Radar.IsDead and Radar.Owner == Greece then
Trigger.OnAllKilled(units, function()
if Map.Difficulty == "Hard" then
Trigger.AfterDelay(DateTime.Minutes(4), BringPatrol2)
else
Trigger.AfterDelay(DateTime.Minutes(7), BringPatrol2)
end
end)
end
end

View File

@@ -652,14 +652,9 @@ Rules:
ShowOwnerRow: false
Demolishable:
^Building:
Capturable:
CaptureThreshold: 0.25
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^TechBuilding:
Capturable:
Type: ~disabled
^Wall:
Tooltip:
ShowOwnerRow: false
@@ -679,6 +674,9 @@ Rules:
^Crate:
Tooltip:
ShowOwnerRow: false
AFLD:
ParatroopersPower@paratroopers:
DropItems: E1,E1,E1,E2,E2
TSLA:
Buildable:
Prerequisites: ~disabled
@@ -731,6 +729,9 @@ Rules:
powerproxy.paratroopers:
ParatroopersPower:
DropItems: E1,E1,E1,E1,E1
AGUN:
Buildable:
Prerequisites: ~disabled
Sequences:

View File

@@ -7,4 +7,6 @@ Allied Campaign:
Soviet Campaign:
./mods/ra/maps/soviet-01
./mods/ra/maps/soviet-02a
./mods/ra/maps/soviet-04a
./mods/ra/maps/soviet-04b
./mods/ra/maps/soviet-05