Add soviet-06b
This commit is contained in:
@@ -70,6 +70,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Re
|
||||
mods\ra\maps\soviet-05\soviet05-reinforcements_teams.lua = mods\ra\maps\soviet-05\soviet05-reinforcements_teams.lua
|
||||
mods\ra\maps\soviet-06a\soviet06a.lua = mods\ra\maps\soviet-06a\soviet06a.lua
|
||||
mods\ra\maps\soviet-06a\soviet06a-AI.lua = mods\ra\maps\soviet-06a\soviet06a-AI.lua
|
||||
mods\ra\maps\soviet-06b\soviet06b.lua = mods\ra\maps\soviet-06b\soviet06b.lua
|
||||
mods\ra\maps\soviet-06b\soviet06b-AI.lua = mods\ra\maps\soviet-06b\soviet06b-AI.lua
|
||||
mods\ra\maps\soviet-07\soviet07.lua = mods\ra\maps\soviet-07\soviet07.lua
|
||||
mods\ra\maps\survival01\survival01.lua = mods\ra\maps\survival01\survival01.lua
|
||||
mods\ra\maps\survival02\survival02.lua = mods\ra\maps\survival02\survival02.lua
|
||||
|
||||
@@ -43,7 +43,7 @@ BuildBuilding = function(building)
|
||||
enemy.Cash = enemy.Cash - building[3]
|
||||
|
||||
building[4] = true
|
||||
Trigger.OnKilled(actor, function() building[4] = true end)
|
||||
Trigger.OnKilled(actor, function() building[4] = false end)
|
||||
Trigger.OnDamaged(actor, function(building)
|
||||
if building.Owner == enemy and building.Health < building.MaxHealth * 3/4 then
|
||||
building.StartBuildingRepairs()
|
||||
|
||||
BIN
mods/ra/maps/soviet-06b/map.bin
Normal file
BIN
mods/ra/maps/soviet-06b/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/soviet-06b/map.png
Normal file
BIN
mods/ra/maps/soviet-06b/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
660
mods/ra/maps/soviet-06b/map.yaml
Normal file
660
mods/ra/maps/soviet-06b/map.yaml
Normal file
@@ -0,0 +1,660 @@
|
||||
MapFormat: 7
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
Title: Soviet 06b: Bridge over the River VizchGoi
|
||||
|
||||
Description: There is a special cargo that needs to be transported to a nearby Soviet base in the northeast.\n\nMake sure the trucks reach their destination intact. Along the way, there is a bridge which the Allies may have destroyed.\n\nIf so, use the Naval options at your disposal. Our attack subs will make short work of any Allied boats you discover.
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: TEMPERAT
|
||||
|
||||
MapSize: 128,128
|
||||
|
||||
Bounds: 18,10,81,58
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
|
||||
Videos:
|
||||
Briefing: soviet6.vqa
|
||||
GameStart: onthprwl.vqa
|
||||
GameWon: sitduck.vqa
|
||||
GameLost: dpthchrg.vqa
|
||||
|
||||
Options:
|
||||
Crates: False
|
||||
Fog: True
|
||||
Shroud: True
|
||||
AllyBuildRadius: False
|
||||
FragileAlliances: False
|
||||
StartingCash: 11500
|
||||
ConfigurableStartingUnits: False
|
||||
ShortGame: False
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
Faction: allies
|
||||
PlayerReference@Creeps:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
PlayerReference@Greece:
|
||||
Name: Greece
|
||||
Faction: allies
|
||||
ColorRamp: 161,134,236
|
||||
Enemies: USSR
|
||||
PlayerReference@USSR:
|
||||
Name: USSR
|
||||
AllowBots: False
|
||||
Playable: True
|
||||
Required: True
|
||||
LockFaction: True
|
||||
Faction: soviet
|
||||
LockColor: True
|
||||
ColorRamp: 3,255,127
|
||||
LockSpawn: True
|
||||
LockTeam: True
|
||||
Enemies: Greece, Creeps
|
||||
|
||||
Actors:
|
||||
Actor0: cycl
|
||||
Location: 17,14
|
||||
Owner: Neutral
|
||||
Actor1: cycl
|
||||
Location: 17,15
|
||||
Owner: Neutral
|
||||
Actor2: cycl
|
||||
Location: 17,16
|
||||
Owner: Neutral
|
||||
Actor3: cycl
|
||||
Location: 17,17
|
||||
Owner: Neutral
|
||||
Actor4: cycl
|
||||
Location: 17,18
|
||||
Owner: Neutral
|
||||
Actor5: sbag
|
||||
Location: 62,37
|
||||
Owner: Greece
|
||||
Actor6: sbag
|
||||
Location: 63,37
|
||||
Owner: Greece
|
||||
Actor7: sbag
|
||||
Location: 64,37
|
||||
Owner: Greece
|
||||
Actor8: sbag
|
||||
Location: 65,37
|
||||
Owner: Greece
|
||||
Actor9: sbag
|
||||
Location: 65,38
|
||||
Owner: Greece
|
||||
Actor10: sbag
|
||||
Location: 66,38
|
||||
Owner: Greece
|
||||
Actor11: sbag
|
||||
Location: 71,38
|
||||
Owner: Greece
|
||||
Actor12: sbag
|
||||
Location: 72,38
|
||||
Owner: Greece
|
||||
Actor13: sbag
|
||||
Location: 73,38
|
||||
Owner: Greece
|
||||
Actor14: sbag
|
||||
Location: 74,38
|
||||
Owner: Greece
|
||||
Actor15: sbag
|
||||
Location: 82,38
|
||||
Owner: Greece
|
||||
Actor16: sbag
|
||||
Location: 83,38
|
||||
Owner: Greece
|
||||
Actor17: sbag
|
||||
Location: 70,39
|
||||
Owner: Greece
|
||||
Actor18: sbag
|
||||
Location: 71,39
|
||||
Owner: Greece
|
||||
Actor19: sbag
|
||||
Location: 83,39
|
||||
Owner: Greece
|
||||
Actor20: sbag
|
||||
Location: 83,40
|
||||
Owner: Greece
|
||||
Actor21: sbag
|
||||
Location: 57,43
|
||||
Owner: Greece
|
||||
Actor22: sbag
|
||||
Location: 58,43
|
||||
Owner: Greece
|
||||
Actor23: sbag
|
||||
Location: 57,44
|
||||
Owner: Greece
|
||||
Actor24: sbag
|
||||
Location: 80,46
|
||||
Owner: Greece
|
||||
Actor25: sbag
|
||||
Location: 80,47
|
||||
Owner: Greece
|
||||
Actor26: sbag
|
||||
Location: 63,48
|
||||
Owner: Greece
|
||||
Actor27: sbag
|
||||
Location: 64,48
|
||||
Owner: Greece
|
||||
Actor28: sbag
|
||||
Location: 79,48
|
||||
Owner: Greece
|
||||
Actor29: sbag
|
||||
Location: 80,48
|
||||
Owner: Greece
|
||||
Actor30: sbag
|
||||
Location: 64,49
|
||||
Owner: Greece
|
||||
Actor31: sbag
|
||||
Location: 64,50
|
||||
Owner: Greece
|
||||
Actor32: sbag
|
||||
Location: 65,50
|
||||
Owner: Greece
|
||||
Actor33: t17
|
||||
Location: 66,28
|
||||
Owner: Neutral
|
||||
Actor34: t08
|
||||
Location: 83,35
|
||||
Owner: Neutral
|
||||
Actor35: t16
|
||||
Location: 82,34
|
||||
Owner: Neutral
|
||||
Actor36: tc04
|
||||
Location: 63,26
|
||||
Owner: Neutral
|
||||
Actor37: tc05
|
||||
Location: 67,30
|
||||
Owner: Neutral
|
||||
Actor38: tc01
|
||||
Location: 79,32
|
||||
Owner: Neutral
|
||||
Actor39: tc04
|
||||
Location: 34,20
|
||||
Owner: Neutral
|
||||
Actor40: tc05
|
||||
Location: 82,15
|
||||
Owner: Neutral
|
||||
Actor41: tc04
|
||||
Location: 90,17
|
||||
Owner: Neutral
|
||||
Actor42: tc01
|
||||
Location: 92,18
|
||||
Owner: Neutral
|
||||
Actor43: tc03
|
||||
Location: 82,14
|
||||
Owner: Neutral
|
||||
Actor44: tc01
|
||||
Location: 95,15
|
||||
Owner: Neutral
|
||||
Actor45: tc02
|
||||
Location: 83,12
|
||||
Owner: Neutral
|
||||
Actor46: t17
|
||||
Location: 85,12
|
||||
Owner: Neutral
|
||||
Actor47: t16
|
||||
Location: 86,13
|
||||
Owner: Neutral
|
||||
Actor48: t16
|
||||
Location: 92,24
|
||||
Owner: Neutral
|
||||
Actor49: t14
|
||||
Location: 93,24
|
||||
Owner: Neutral
|
||||
Actor50: t11
|
||||
Location: 93,21
|
||||
Owner: Neutral
|
||||
Actor51: tc05
|
||||
Location: 54,23
|
||||
Owner: Neutral
|
||||
Actor52: tc05
|
||||
Location: 74,46
|
||||
Owner: Neutral
|
||||
Actor53: tc04
|
||||
Location: 80,43
|
||||
Owner: Neutral
|
||||
Actor54: tc02
|
||||
Location: 81,42
|
||||
Owner: Neutral
|
||||
Actor55: tc01
|
||||
Location: 73,40
|
||||
Owner: Neutral
|
||||
Actor56: t17
|
||||
Location: 71,40
|
||||
Owner: Neutral
|
||||
Actor57: t15
|
||||
Location: 80,36
|
||||
Owner: Neutral
|
||||
Actor58: t12
|
||||
Location: 31,57
|
||||
Owner: Neutral
|
||||
Actor59: tc04
|
||||
Location: 54,26
|
||||
Owner: Neutral
|
||||
Actor60: t14
|
||||
Location: 50,31
|
||||
Owner: Neutral
|
||||
Actor62: t05
|
||||
Location: 48,39
|
||||
Owner: Neutral
|
||||
Actor63: t06
|
||||
Location: 47,39
|
||||
Owner: Neutral
|
||||
Actor66: t08
|
||||
Location: 49,38
|
||||
Owner: Neutral
|
||||
Actor68: t08
|
||||
Location: 50,39
|
||||
Owner: Neutral
|
||||
Actor69: tc05
|
||||
Location: 35,58
|
||||
Owner: Neutral
|
||||
Actor70: tc04
|
||||
Location: 44,55
|
||||
Owner: Neutral
|
||||
Actor71: tc02
|
||||
Location: 34,66
|
||||
Owner: Neutral
|
||||
Actor72: tc04
|
||||
Location: 56,65
|
||||
Owner: Neutral
|
||||
Actor73: t17
|
||||
Location: 49,66
|
||||
Owner: Neutral
|
||||
Actor74: t16
|
||||
Location: 50,65
|
||||
Owner: Neutral
|
||||
Actor75: tc02
|
||||
Location: 54,66
|
||||
Owner: Neutral
|
||||
Actor76: tc01
|
||||
Location: 52,66
|
||||
Owner: Neutral
|
||||
Actor77: tc02
|
||||
Location: 58,58
|
||||
Owner: Neutral
|
||||
Actor78: t15
|
||||
Location: 59,60
|
||||
Owner: Neutral
|
||||
Actor79: t14
|
||||
Location: 48,38
|
||||
Owner: Neutral
|
||||
Actor81: tc03
|
||||
Location: 49,20
|
||||
Owner: Neutral
|
||||
Actor82: tc02
|
||||
Location: 36,19
|
||||
Owner: Neutral
|
||||
Actor83: t15
|
||||
Location: 39,25
|
||||
Owner: Neutral
|
||||
Actor84: t08
|
||||
Location: 38,27
|
||||
Owner: Neutral
|
||||
Actor85: t08
|
||||
Location: 40,25
|
||||
Owner: Neutral
|
||||
Actor86: t13
|
||||
Location: 49,40
|
||||
Owner: Neutral
|
||||
Actor88: t02
|
||||
Location: 50,37
|
||||
Owner: Neutral
|
||||
Actor90: hbox
|
||||
Location: 58,46
|
||||
Owner: Greece
|
||||
Actor91: hbox
|
||||
Location: 62,47
|
||||
Owner: Greece
|
||||
Actor92: gun
|
||||
Location: 57,46
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor93: gun
|
||||
Location: 61,48
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor95: dome
|
||||
Location: 67,49
|
||||
Owner: Greece
|
||||
Actor103: 2tnk
|
||||
Location: 76,30
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor104: 2tnk
|
||||
Location: 76,29
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor106: arty
|
||||
Location: 63,47
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor107: arty
|
||||
Location: 58,44
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor110: 3tnk
|
||||
Location: 43,63
|
||||
Owner: USSR
|
||||
Health: 99
|
||||
Facing: 32
|
||||
Actor111: 3tnk
|
||||
Location: 44,62
|
||||
Owner: USSR
|
||||
Health: 99
|
||||
Facing: 32
|
||||
Actor112: v2rl
|
||||
Location: 41,64
|
||||
Owner: USSR
|
||||
Facing: 32
|
||||
Actor113: v2rl
|
||||
Location: 43,64
|
||||
Owner: USSR
|
||||
Facing: 32
|
||||
Actor115: 2tnk
|
||||
Location: 75,30
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor116: 2tnk
|
||||
Location: 75,31
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor117: 2tnk
|
||||
Location: 83,20
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor118: 2tnk
|
||||
Location: 88,21
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor119: 2tnk
|
||||
Location: 62,44
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor120: 1tnk
|
||||
Location: 59,44
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor121: 1tnk
|
||||
Location: 63,46
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor123: ca
|
||||
Location: 87,29
|
||||
Owner: Greece
|
||||
Facing: 224
|
||||
Actor124: ca
|
||||
Location: 87,31
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Actor125: ca
|
||||
Location: 75,25
|
||||
Owner: Greece
|
||||
Facing: 224
|
||||
Actor126: pt
|
||||
Location: 71,16
|
||||
Owner: Greece
|
||||
Facing: 224
|
||||
Actor127: pt
|
||||
Location: 65,20
|
||||
Owner: Greece
|
||||
Facing: 224
|
||||
Actor128: dd
|
||||
Location: 70,20
|
||||
Owner: Greece
|
||||
Facing: 224
|
||||
Actor129: waypoint
|
||||
Location: 46,60
|
||||
Owner: Neutral
|
||||
Actor144: silo
|
||||
Owner: Greece
|
||||
Location: 73,46
|
||||
Actor145: silo
|
||||
Owner: Greece
|
||||
Location: 73,47
|
||||
Actor146: silo
|
||||
Owner: Greece
|
||||
Location: 73,48
|
||||
Actor147: silo
|
||||
Owner: Greece
|
||||
Location: 73,49
|
||||
waypoint69: waypoint
|
||||
Location: 21,28
|
||||
Owner: Neutral
|
||||
waypoint78: waypoint
|
||||
Location: 83,23
|
||||
Owner: Neutral
|
||||
waypoint79: waypoint
|
||||
Location: 87,19
|
||||
Owner: Neutral
|
||||
waypoint80: waypoint
|
||||
Location: 84,22
|
||||
Owner: Neutral
|
||||
waypoint81: waypoint
|
||||
Location: 76,22
|
||||
Owner: Neutral
|
||||
waypoint82: waypoint
|
||||
Location: 87,29
|
||||
Owner: Neutral
|
||||
waypoint94: waypoint
|
||||
Location: 49,16
|
||||
Owner: Neutral
|
||||
APCWaypoint1: waypoint
|
||||
Location: 39,62
|
||||
Owner: Neutral
|
||||
APCWaypoint2: waypoint
|
||||
Location: 46,66
|
||||
Owner: Neutral
|
||||
Apwr: apwr
|
||||
Location: 76,40
|
||||
Owner: Greece
|
||||
Apwr2: apwr
|
||||
Location: 77,44
|
||||
Owner: Greece
|
||||
AttackWaypoint1: waypoint
|
||||
Owner: Neutral
|
||||
Location: 26,55
|
||||
AttackWaypoint2: waypoint
|
||||
Owner: Neutral
|
||||
Location: 41,55
|
||||
Barr: tent
|
||||
Location: 67,45
|
||||
Owner: Greece
|
||||
CameraStart: camera
|
||||
Location: 46,61
|
||||
Owner: Neutral
|
||||
CYard: fact
|
||||
Location: 70,46
|
||||
Owner: Greece
|
||||
CYardLocation: waypoint
|
||||
Owner: Neutral
|
||||
Location: 71,49
|
||||
Harvester: harv
|
||||
Location: 77,39
|
||||
Owner: Greece
|
||||
IntroEnemy1: 1tnk
|
||||
Location: 55,49
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
IntroEnemy2: 2tnk
|
||||
Location: 56,50
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
IntroEnemy3: 1tnk
|
||||
Location: 58,50
|
||||
Owner: Greece
|
||||
Facing: 160
|
||||
Mcv: mcv
|
||||
Location: 51,55
|
||||
Owner: USSR
|
||||
Health: 82
|
||||
Facing: 160
|
||||
McvWaypoint: waypoint
|
||||
Location: 39,67
|
||||
Owner: Neutral
|
||||
Proc: proc
|
||||
Location: 71,41
|
||||
Owner: Greece
|
||||
FreeActor: False
|
||||
Truck1: truk
|
||||
Location: 42,66
|
||||
Owner: USSR
|
||||
Facing: 32
|
||||
Truck2: truk
|
||||
Location: 39,65
|
||||
Owner: USSR
|
||||
Facing: 32
|
||||
Weap: weap
|
||||
Location: 67,41
|
||||
Owner: Greece
|
||||
|
||||
Smudges:
|
||||
|
||||
Rules:
|
||||
Player:
|
||||
-ConquestVictoryConditions:
|
||||
MissionObjectives:
|
||||
EarlyGameOver: true
|
||||
-EnemyWatcher:
|
||||
World:
|
||||
-CrateSpawner:
|
||||
-SpawnMPUnits:
|
||||
-MPStartLocations:
|
||||
LuaScript:
|
||||
Scripts: soviet06b.lua, soviet06b-AI.lua
|
||||
ObjectivesPanel:
|
||||
PanelName: MISSION_OBJECTIVES
|
||||
^Building:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Infantry:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Vehicle:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Ship:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Plane:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy
|
||||
ShowOwnerRow: false
|
||||
^Wall:
|
||||
Tooltip:
|
||||
ShowOwnerRow: false
|
||||
^TechBuilding:
|
||||
Tooltip:
|
||||
ShowOwnerRow: false
|
||||
^Crate:
|
||||
Tooltip:
|
||||
ShowOwnerRow: false
|
||||
^Husk:
|
||||
Tooltip:
|
||||
GenericVisibility: Enemy, Ally, Neutral
|
||||
GenericStancePrefix: false
|
||||
ShowOwnerRow: false
|
||||
APWR:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
ARTY:
|
||||
Buildable:
|
||||
Prerequisites: ~vehicles.allies, ~techlevel.low
|
||||
BRIK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
TSLA:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
SAM:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
IRON:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
MSLO:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
E3:
|
||||
Buildable:
|
||||
Prerequisites: ~tent
|
||||
SHOK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
SNIPER:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
HIJACKER:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
MIG:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
FTRK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
2TNK:
|
||||
Buildable:
|
||||
Prerequisites: ~vehicles.allies, ~techlevel.low
|
||||
4TNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
APC:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
TRUK:
|
||||
-SpawnActorOnDeath:
|
||||
-SupplyTruck:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
QTNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
MCV:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
MSUB:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
STEK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
DOG:
|
||||
Health:
|
||||
HP: 25
|
||||
AutoTarget:
|
||||
ScanRadius: 5
|
||||
HARV:
|
||||
Harvester:
|
||||
SearchFromProcRadius: 50
|
||||
SearchFromOrderRadius: 50
|
||||
AFLD:
|
||||
ParatroopersPower@paratroopers:
|
||||
DropItems: E1,E1,E1,E1,E1
|
||||
|
||||
Sequences:
|
||||
|
||||
VoxelSequences:
|
||||
|
||||
Weapons:
|
||||
|
||||
Voices:
|
||||
|
||||
Notifications:
|
||||
|
||||
Translations:
|
||||
112
mods/ra/maps/soviet-06b/soviet06b-AI.lua
Normal file
112
mods/ra/maps/soviet-06b/soviet06b-AI.lua
Normal file
@@ -0,0 +1,112 @@
|
||||
IdleHunt = function(unit) if not unit.IsDead then Trigger.OnIdle(unit, unit.Hunt) end end
|
||||
|
||||
IdlingUnits = function()
|
||||
local lazyUnits = enemy.GetGroundAttackers()
|
||||
|
||||
Utils.Do(lazyUnits, function(unit)
|
||||
Trigger.OnDamaged(unit, function()
|
||||
Trigger.ClearAll(unit)
|
||||
Trigger.AfterDelay(0, function() IdleHunt(unit) end)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
BaseBuildings =
|
||||
{
|
||||
{ "apwr", CVec.New(5, -9), 500, true },
|
||||
{ "tent", CVec.New(-4, -4), 400, true },
|
||||
{ "proc", CVec.New(0, -8), 1400, true },
|
||||
{ "weap", CVec.New(-4, -8), 2000, true },
|
||||
{ "apwr", CVec.New(6, -5), 500, true }
|
||||
}
|
||||
|
||||
BuildBase = function()
|
||||
if CYard.IsDead or CYard.Owner ~= enemy then
|
||||
return
|
||||
elseif Harvester.IsDead and enemy.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 = enemy, Location = CYardLocation.Location + building[2] })
|
||||
enemy.Cash = enemy.Cash - building[3]
|
||||
|
||||
building[4] = true
|
||||
Trigger.OnKilled(actor, function() building[4] = false end)
|
||||
Trigger.OnDamaged(actor, function(building)
|
||||
if building.Owner == enemy 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 enemy.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)
|
||||
enemy.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 enemy.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)
|
||||
enemy.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)
|
||||
IdleHunt(unit)
|
||||
end
|
||||
end)
|
||||
end
|
||||
107
mods/ra/maps/soviet-06b/soviet06b.lua
Normal file
107
mods/ra/maps/soviet-06b/soviet06b.lua
Normal file
@@ -0,0 +1,107 @@
|
||||
IntroAttackers = { IntroEnemy1, IntroEnemy2, IntroEnemy3 }
|
||||
Trucks = { Truck1, Truck2 }
|
||||
InfAttack = { }
|
||||
ArmorAttack = { }
|
||||
AttackPaths = { { AttackWaypoint1 }, { AttackWaypoint2 } }
|
||||
|
||||
AlliedInfantryTypes = { "e1", "e1", "e3" }
|
||||
AlliedArmorTypes = { "jeep", "jeep", "1tnk", "1tnk", "2tnk", "2tnk", "arty" }
|
||||
|
||||
SovietReinforcements1 = { "e6", "e6", "e6", "e6", "e6" }
|
||||
SovietReinforcements2 = { "e4", "e4", "e2", "e2", "e2" }
|
||||
SovietReinforcements1Waypoints = { McvWaypoint.Location, APCWaypoint1.Location }
|
||||
SovietReinforcements2Waypoints = { McvWaypoint.Location, APCWaypoint2.Location }
|
||||
|
||||
TruckGoalTrigger = { CPos.New(85, 10), CPos.New(85, 11), CPos.New(85, 12), CPos.New(86, 13), CPos.New(87, 13), CPos.New(88, 13), CPos.New(88, 14), CPos.New(89, 14), CPos.New(90, 14), CPos.New(90, 15), CPos.New(91, 15), CPos.New(91, 16), CPos.New(91, 17), CPos.New(92, 17), CPos.New(93, 17), CPos.New(94, 17), CPos.New(94, 18), CPos.New(95, 18), CPos.New(96, 18), CPos.New(96, 19), CPos.New(97, 19), CPos.New(98, 19)}
|
||||
|
||||
Trigger.OnEnteredFootprint(TruckGoalTrigger, function(a, id)
|
||||
if not truckGoalTrigger and a.Owner == player and a.Type == "truk" then
|
||||
truckGoalTrigger = true
|
||||
player.MarkCompletedObjective(sovietObjective)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnAllKilled(Trucks, function()
|
||||
if not controlCenterTrigger then
|
||||
enemy.MarkCompletedObjective(alliedObjective)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnKilled(Apwr, 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.OnKilled(Apwr2, function(building)
|
||||
BaseBuildings[5][4] = false
|
||||
end)
|
||||
|
||||
Trigger.OnRemovedFromWorld(Mcv, function()
|
||||
if not mcvDeployed then
|
||||
mcvDeployed = true
|
||||
BuildBase()
|
||||
Trigger.AfterDelay(DateTime.Minutes(1), ProduceInfantry)
|
||||
Trigger.AfterDelay(DateTime.Minutes(2), ProduceArmor)
|
||||
end
|
||||
end)
|
||||
|
||||
WorldLoaded = function()
|
||||
player = Player.GetPlayer("USSR")
|
||||
enemy = Player.GetPlayer("Greece")
|
||||
Camera.Position = CameraStart.CenterPosition
|
||||
Mcv.Move(McvWaypoint.Location)
|
||||
Harvester.FindResources()
|
||||
Utils.Do(IntroAttackers, function(actor)
|
||||
IdleHunt(actor)
|
||||
end)
|
||||
Reinforcements.ReinforceWithTransport(player, "apc", SovietReinforcements1, SovietReinforcements1Waypoints)
|
||||
Reinforcements.ReinforceWithTransport(player, "apc", SovietReinforcements2, SovietReinforcements2Waypoints)
|
||||
Utils.Do(Map.NamedActors, function(actor)
|
||||
if actor.Owner == enemy and actor.HasProperty("StartBuildingRepairs") then
|
||||
Trigger.OnDamaged(actor, function(building)
|
||||
if building.Owner == enemy and building.Health < 3/4 * building.MaxHealth then
|
||||
building.StartBuildingRepairs()
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
Trigger.OnObjectiveAdded(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
|
||||
end)
|
||||
Trigger.OnObjectiveCompleted(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
|
||||
end)
|
||||
Trigger.OnObjectiveFailed(player, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
|
||||
end)
|
||||
Trigger.OnPlayerWon(player, function()
|
||||
Media.PlaySpeechNotification(player, "Win")
|
||||
end)
|
||||
Trigger.OnPlayerLost(player, function()
|
||||
Media.PlaySpeechNotification(player, "Lose")
|
||||
end)
|
||||
alliedObjective = enemy.AddPrimaryObjective("Destroy all Soviet troops.")
|
||||
sovietObjective = player.AddPrimaryObjective("Escort the Convoy.")
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if player.HasNoRequiredUnits() then
|
||||
enemy.MarkCompletedObjective(alliedObjective)
|
||||
end
|
||||
|
||||
if enemy.Resources >= enemy.ResourceCapacity * 0.75 then
|
||||
enemy.Cash = enemy.Cash + enemy.Resources - enemy.ResourceCapacity * 0.25
|
||||
enemy.Resources = enemy.ResourceCapacity * 0.25
|
||||
end
|
||||
end
|
||||
@@ -13,4 +13,5 @@ Soviet Campaign:
|
||||
./mods/ra/maps/soviet-04b
|
||||
./mods/ra/maps/soviet-05
|
||||
./mods/ra/maps/soviet-06a
|
||||
./mods/ra/maps/soviet-06b
|
||||
./mods/ra/maps/soviet-07
|
||||
|
||||
Reference in New Issue
Block a user