Merge pull request #9034 from Biofreak1987/soviet07

Add Soviet07
This commit is contained in:
Matthias Mailänder
2015-08-22 14:12:56 +02:00
5 changed files with 1249 additions and 0 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,946 @@
MapFormat: 7
RequiresMod: ra
Title: Soviet 07: Core of the matter
Description: The Allies have infiltrated one of our nuclear reactors! They have tampered with the core so that a meltdown is imminent within 30 minutes. They must not succeed!\n\nEnter the base and find any remaining technicians. Guide them to the 4 coolant stations so they can activate them, then activate the main computer. The security systems have been armed so beware.\n\nKill any Allies you find.
Author: Westwood Studios
Tileset: INTERIOR
MapSize: 128,128
Bounds: 40,43,70,45
Visibility: MissionSelector
Type: Campaign
Videos:
Briefing: soviet7.vqa
GameStart: countdwn.vqa
GameWon: averted.vqa
GameLost: nukestok.vqa
Options:
Crates: False
Fog: True
Shroud: True
AllyBuildRadius: False
FragileAlliances: False
StartingCash: 0
ConfigurableStartingUnits: False
Difficulties: Easy, Normal, Hard
ShortGame: False
Players:
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Faction: england
PlayerReference@Creeps:
Name: Creeps
NonCombatant: True
Faction: england
PlayerReference@Greece:
Name: Greece
Faction: allies
ColorRamp: 161,134,236
Allies: Soviet
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
Allies: Soviet
Enemies: Greece, Creeps
PlayerReference@Soviet:
Name: Soviet
Faction: soviet
ColorRamp: 3,255,127
Allies: USSR, Greece
PlayerReference@Spain:
Name: Spain
Faction: allies
ColorRamp: 100,222,100
Actors:
Actor0: boxes01
Location: 49,46
Owner: Neutral
Actor1: boxes02
Location: 42,46
Owner: Neutral
Actor2: boxes03
Location: 49,48
Owner: Neutral
Actor3: boxes04
Location: 42,48
Owner: Neutral
Actor4: boxes06
Location: 48,46
Owner: Neutral
Actor5: boxes07
Location: 49,47
Owner: Neutral
Actor6: boxes01
Location: 67,74
Owner: Neutral
Actor7: boxes01
Location: 47,68
Owner: Neutral
Actor8: boxes02
Location: 42,67
Owner: Neutral
Actor9: boxes01
Location: 43,67
Owner: Neutral
Actor10: boxes01
Location: 44,67
Owner: Neutral
Actor11: boxes03
Location: 48,60
Owner: Neutral
Actor12: boxes03
Location: 44,68
Owner: Neutral
Actor13: boxes04
Location: 46,66
Owner: Neutral
Actor14: boxes04
Location: 47,69
Owner: Neutral
Actor15: boxes03
Location: 44,69
Owner: Neutral
Actor16: boxes02
Location: 44,62
Owner: Neutral
Actor17: boxes02
Location: 49,68
Owner: Neutral
Actor18: boxes01
Location: 48,66
Owner: Neutral
Actor19: boxes01
Location: 43,65
Owner: Neutral
Actor20: boxes02
Location: 46,65
Owner: Neutral
Actor21: boxes03
Location: 44,65
Owner: Neutral
Actor22: boxes01
Location: 43,62
Owner: Neutral
Actor23: boxes04
Location: 43,63
Owner: Neutral
Actor24: boxes05
Location: 43,64
Owner: Neutral
Actor25: boxes05
Location: 41,67
Owner: Neutral
Actor26: boxes05
Location: 47,66
Owner: Neutral
Actor27: boxes05
Location: 46,62
Owner: Neutral
Actor28: boxes06
Location: 48,62
Owner: Neutral
Actor29: boxes04
Location: 49,62
Owner: Neutral
Actor30: boxes03
Location: 49,63
Owner: Neutral
Actor31: boxes03
Location: 46,64
Owner: Neutral
Actor32: boxes03
Location: 48,68
Owner: Neutral
Actor33: boxes02
Location: 46,61
Owner: Neutral
Actor34: boxes01
Location: 46,60
Owner: Neutral
Actor35: boxes04
Location: 43,59
Owner: Neutral
Actor36: boxes04
Location: 43,60
Owner: Neutral
Actor37: boxes05
Location: 42,57
Owner: Neutral
Actor38: boxes06
Location: 43,58
Owner: Neutral
Actor39: boxes07
Location: 45,62
Owner: Neutral
Actor40: boxes08
Location: 45,56
Owner: Neutral
Actor41: boxes05
Location: 46,57
Owner: Neutral
Actor42: boxes03
Location: 48,57
Owner: Neutral
Actor43: boxes03
Location: 44,55
Owner: Neutral
Actor44: boxes09
Location: 46,54
Owner: Neutral
Actor45: boxes08
Location: 45,55
Owner: Neutral
Actor46: boxes07
Location: 45,54
Owner: Neutral
Actor47: boxes05
Location: 45,53
Owner: Neutral
Actor48: boxes04
Location: 47,55
Owner: Neutral
Actor49: boxes03
Location: 47,54
Owner: Neutral
Actor50: boxes03
Location: 47,60
Owner: Neutral
Actor51: boxes02
Location: 46,59
Owner: Neutral
Actor52: boxes01
Location: 49,57
Owner: Neutral
Actor53: boxes05
Location: 46,63
Owner: Neutral
Actor54: boxes01
Location: 41,57
Owner: Neutral
Actor55: boxes01
Location: 45,57
Owner: Neutral
Actor56: boxes02
Location: 45,58
Owner: Neutral
Actor57: boxes03
Location: 45,59
Owner: Neutral
Actor58: boxes01
Location: 46,56
Owner: Neutral
Actor59: boxes01
Location: 43,57
Owner: Neutral
Actor60: boxes01
Location: 46,55
Owner: Neutral
Actor61: boxes06
Location: 86,69
Owner: Neutral
Actor65: barl
Location: 98,45
Owner: Creeps
Actor66: barl
Location: 98,49
Owner: Creeps
Actor67: brl3
Location: 98,46
Owner: Creeps
Actor68: brl3
Location: 100,44
Owner: Creeps
Actor69: barl
Location: 105,48
Owner: Creeps
Actor70: barl
Location: 106,49
Owner: Creeps
Actor71: barl
Location: 105,50
Owner: Creeps
Actor72: brl3
Location: 105,51
Owner: Creeps
Actor73: barl
Location: 106,52
Owner: Creeps
Actor75: barl
Location: 105,54
Owner: Creeps
Actor76: barl
Location: 105,55
Owner: Creeps
Actor77: brl3
Location: 105,56
Owner: Creeps
Actor78: brl3
Location: 106,57
Owner: Creeps
Actor79: barl
Location: 105,58
Owner: Creeps
Actor80: barl
Location: 105,59
Owner: Creeps
Actor81: barl
Location: 106,60
Owner: Creeps
Actor82: barl
Location: 105,61
Owner: Creeps
Actor83: brl3
Location: 106,62
Owner: Creeps
Actor84: barl
Location: 104,63
Owner: Creeps
Actor86: barl
Location: 98,47
Owner: Creeps
Actor87: brl3
Location: 98,48
Owner: Creeps
Actor88: brl3
Location: 105,63
Owner: Creeps
Actor89: barl
Location: 101,44
Owner: Creeps
Actor90: brl3
Location: 69,74
Owner: Creeps
Actor93: brl3
Location: 64,73
Owner: Creeps
Actor94: barl
Location: 62,73
Owner: Creeps
Actor95: barl
Location: 65,73
Owner: Creeps
Actor97: barl
Location: 70,74
Owner: Creeps
Actor98: brl3
Location: 70,72
Owner: Creeps
Actor99: barl
Location: 69,72
Owner: Creeps
Actor100: brl3
Location: 43,46
Owner: Creeps
Actor101: barl
Location: 45,45
Owner: Creeps
Actor102: brl3
Location: 47,46
Owner: Creeps
Actor103: barl
Location: 44,45
Owner: Creeps
Actor104: brl3
Location: 46,45
Owner: Creeps
Actor105: brl3
Location: 63,73
Owner: Creeps
Actor106: brl3
Location: 49,71
Owner: Creeps
Actor107: barl
Location: 48,71
Owner: Creeps
Actor108: brl3
Location: 47,72
Owner: Creeps
Actor110: barl
Location: 45,72
Owner: Creeps
Actor111: brl3
Location: 45,71
Owner: Creeps
Actor112: brl3
Location: 44,70
Owner: Creeps
Actor113: barl
Location: 43,71
Owner: Creeps
Actor114: brl3
Location: 44,72
Owner: Creeps
Actor115: brl3
Location: 42,72
Owner: Creeps
Actor116: barl
Location: 42,70
Owner: Creeps
Actor117: brl3
Location: 43,69
Owner: Creeps
Actor118: barl
Location: 42,73
Owner: Creeps
Actor119: barl
Location: 42,74
Owner: Creeps
Actor120: barl
Location: 83,67
Owner: Creeps
Actor121: barl
Location: 83,68
Owner: Creeps
Actor122: barl
Location: 83,69
Owner: Creeps
Actor124: barl
Location: 81,79
Owner: Creeps
Actor125: barl
Location: 81,80
Owner: Creeps
Actor126: brl3
Location: 82,80
Owner: Creeps
Actor127: bio
Location: 65,46
Owner: Greece
Actor128: bio
Location: 87,46
Owner: Greece
Actor130: barl
Location: 80,79
Owner: Creeps
Actor133: barl
Location: 99,44
Owner: Creeps
Actor134: brl3
Location: 98,44
Owner: Creeps
Actor135: brl3
Location: 99,45
Owner: Creeps
Actor136: barl
Location: 102,44
Owner: Creeps
Actor138: barl
Location: 78,80
Owner: Creeps
Actor139: brl3
Location: 79,80
Owner: Creeps
Actor150: e1
Location: 84,67
Owner: Greece
Facing: 192
SubCell: 4
Actor172: e1
Location: 77,80
Owner: Greece
Facing: 224
SubCell: 2
Actor227: flare
Owner: Spain
Location: 75,49
Actor226: flare
Owner: Spain
Location: 76,49
Actor228: flare
Owner: Spain
Location: 75,48
Actor229: flare
Owner: Spain
Location: 76,48
Actor223: brl3
Owner: Creeps
Location: 105,53
BarlCC: barl
Location: 83,70
Owner: Creeps
CameraCC: camera
Owner: Neutral
Location: 87,69
CameraFTurBottom: camera
Owner: Neutral
Location: 62,80
CameraFTurLeft: camera
Owner: Neutral
Location: 59,65
CameraFTurRight: camera
Owner: Neutral
Location: 93,65
CameraGoalCenter1: camera
Owner: Neutral
Location: 75,51
CameraGoalCenter2: camera
Owner: Neutral
Location: 75,55
CameraGoalCenter3: camera
Owner: Neutral
Location: 75,61
CameraGoalLeft1: camera
Owner: Neutral
Location: 68,58
CameraGoalLeft2: camera
Owner: Neutral
Location: 68,63
CameraGoalRight1: camera
Owner: Neutral
Location: 84,58
CameraGoalRight2: camera
Owner: Neutral
Location: 84,63
CameraRSoldier: camera
Owner: Neutral
Location: 62,72
CameraStart1: camera
Owner: Neutral
Location: 102,48
CameraStart2: camera
Owner: Neutral
Location: 102,54
CameraSoldierTrap2: camera
Owner: Neutral
Location: 47,71
CCGuard1: e1
Location: 87,67
Owner: Greece
Facing: 192
SubCell: 3
CCGuard2: e1
Location: 88,67
Owner: Greece
Facing: 192
SubCell: 4
CCGuard3: e1
Location: 88,68
Owner: Greece
Facing: 192
SubCell: 1
CCGuard4: e1
Location: 87,68
Owner: Greece
Facing: 192
SubCell: 3
Dog1: dog
Location: 84,84
Owner: Soviet
Facing: 224
SubCell: 1
Dog2: dog
Owner: Soviet
Location: 84,83
SubCell: 3
Facing: 92
Dog3: dog
Location: 82,83
Owner: Soviet
SubCell: 4
Dog4: dog
Location: 80,83
Owner: Soviet
Facing: 64
SubCell: 2
Dog5: dog
Location: 85,82
Owner: Soviet
Facing: 224
SubCell: 1
Dog6: dog
Location: 85,79
Owner: Soviet
Facing: 192
SubCell: 4
Dog7: dog
Location: 85,81
Owner: Soviet
Facing: 192
SubCell: 4
Dog8: dog
Location: 86,83
Owner: Soviet
Facing: 224
SubCell: 1
Dog9: dog
Location: 86,84
Owner: Soviet
SubCell: 0
Dog10: dog
Location: 86,82
Owner: Soviet
Facing: 192
SubCell: 0
Dog11: dog
Location: 82,84
Owner: Soviet
Facing: 32
SubCell: 1
Dog12: dog
Location: 83,84
Owner: Soviet
SubCell: 1
Dog13: dog
Location: 86,81
Owner: Soviet
Facing: 32
SubCell: 1
Dog14: dog
Location: 85,83
Owner: Soviet
SubCell: 3
Dog15: dog
Location: 81,83
Owner: Soviet
SubCell: 4
Dog16: dog
Location: 86,80
Owner: Soviet
SubCell: 4
Dog17: dog
Location: 85,84
Owner: Soviet
SubCell: 0
Dog18: dog
Location: 81,84
Owner: Soviet
SubCell: 1
Dog19: dog
Location: 86,79
Owner: Soviet
Facing: 224
SubCell: 0
EntranceGuard1: e1
Location: 100,57
Owner: Greece
SubCell: 1
EntranceGuard2: e1
Location: 99,55
Owner: Greece
SubCell: 1
EntranceGuard3: e1
Location: 100,56
Owner: Greece
SubCell: 2
EntranceGuard4: e1
Location: 98,56
Owner: Greece
SubCell: 2
EntranceGuard5: e1
Location: 98,57
Owner: Greece
SubCell: 1
EntranceGuard6: e1
Location: 99,56
Owner: Greece
SubCell: 2
EntranceGuard7: e1
Location: 97,56
Owner: Greece
SubCell: 2
EntranceGuard8: e1
Location: 99,56
Owner: Greece
SubCell: 3
GoalGuard5: e7
Location: 75,54
Owner: Greece
Facing: 128
SubCell: 2
GoalGuard1: e1
Location: 74,54
Owner: Greece
Facing: 128
SubCell: 2
GoalGuard2: e1
Location: 73,54
Owner: Greece
Facing: 128
SubCell: 2
GoalGuard3: e1
Location: 76,54
Owner: Greece
Facing: 128
SubCell: 2
GoalGuard4: e1
Location: 77,54
Owner: Greece
Facing: 128
SubCell: 2
FTurBottom: ftur
Location: 62,79
Owner: Greece
FTur1Goal: waypoint
Owner: Neutral
Location: 77,53
FTur2Goal: waypoint
Owner: Neutral
Location: 74,53
FTurLeft: ftur
Location: 45,50
Owner: Greece
FTurPrisoners: ftur
Location: 59,64
Owner: Greece
FTurRight: ftur
Location: 93,64
Owner: Greece
PBox: pbox
Location: 83,81
Owner: Greece
PBoxBrl: brl3
Location: 80,80
Owner: Creeps
Prisoner1: e6
Location: 44,46
Owner: Soviet
Facing: 160
SubCell: 4
Prisoner2: e6
Location: 44,47
Owner: Soviet
Facing: 128
SubCell: 4
Prisoner3: e6
Location: 46,47
Owner: Soviet
Facing: 96
SubCell: 0
Prisoner4: e6
Location: 45,47
Owner: Soviet
Facing: 96
SubCell: 1
Prisoner5: e6
Location: 46,46
Owner: Soviet
Facing: 128
SubCell: 3
Prisoner6: e1
Location: 46,46
Owner: Soviet
Health: 51
SubCell: 4
PrisonEntranceGuard: e1
Location: 46,69
Owner: Greece
Facing: 128
SubCell: 1
PrisonerGuard1: e1
Location: 45,48
Owner: Greece
SubCell: 0
PrisonerGuard2: e1
Location: 46,49
Owner: Greece
Facing: 128
SubCell: 0
PrisonerGuard3: e1
Location: 44,49
Owner: Greece
Facing: 128
SubCell: 0
RSoldier1: e3
Owner: Greece
Location: 65,72
SubCell: 3
Facing: 92
TurretFacing: 92
RSoldier2: e3
Location: 65,74
Owner: Greece
Facing: 92
SubCell: 2
TurretFacing: 92
RSoldierTrap1: brl3
Owner: Creeps
Location: 68,72
RSoldierTrap2: barl
Owner: Creeps
Location: 68,74
StartingUnitsSpawn: waypoint
Location: 102,43
Owner: Neutral
SoldierTrap1: brl3
Owner: Creeps
Location: 98,50
SoldierTrap2: barl
Owner: Creeps
Location: 46,71
SoldierTrap1Waypoint1: waypoint
Location: 102,46
Owner: Neutral
SoldierTrap1Waypoint2: waypoint
Owner: Neutral
Location: 104,53
SoldierTrap1Waypoint3: waypoint
Owner: Neutral
Location: 93,72
SoldierTrap2Waypoint: waypoint
Owner: Neutral
Location: 45,52
Smudges:
Rules:
Player:
-ConquestVictoryConditions:
MissionObjectives:
EarlyGameOver: true
-EnemyWatcher:
World:
-CrateSpawner:
-SpawnMPUnits:
-MPStartLocations:
LuaScript:
Scripts: soviet07.lua
ObjectivesPanel:
PanelName: MISSION_OBJECTIVES
^Infantry:
-GivesBounty:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Building:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Wall:
Tooltip:
ShowOwnerRow: false
^Husk:
Tooltip:
GenericVisibility: Enemy, Ally, Neutral
GenericStancePrefix: false
ShowOwnerRow: false
^Crate:
Tooltip:
ShowOwnerRow: false
BARL:
Health:
HP: 1
Explodes:
Weapon: MissionBarrelExplodeInterior
BRL3:
Health:
HP: 1
Explodes:
Weapon: MissionBarrelExplodeInterior
CAMERA:
RevealsShroud:
Range: 6c0
E1:
Armament@PRIMARY:
Weapon: M1CarbineInterior
FTUR:
Armament:
Weapon: FireballLauncherInterior
LocalOffset: 512,0,0
Valued:
Cost: 0
Power:
Amount: 0
-Sellable:
PBOX:
-AutoTarget:
Sequences:
VoxelSequences:
Weapons:
M1CarbineInterior:
ReloadDelay: 20
Range: 3c0
Report: GUN11.AUD
Projectile: Bullet
Speed: 1c682
Warhead@1Dam: SpreadDamage
Spread: 128
Damage: 15
Versus:
Wood: 25
Light: 30
Heavy: 10
Concrete: 10
DamageTypes: Prone50Percent, TriggerProne, BulletDeath
Warhead@2Eff: CreateEffect
Explosion: piffs
InvalidImpactTypes: Water
Warhead@3EffWater: CreateEffect
Explosion: water_piffs
ValidImpactTypes: Water
FireballLauncherInterior:
ReloadDelay: 65
Range: 3c0
Burst: 2
BurstDelay: 20
Projectile: Bullet
Speed: 204
Trail: fb2
Image: FB1
Warhead@1Dam: SpreadDamage
Spread: 213
Damage: 150
Versus:
None: 90
Wood: 50
Light: 60
Heavy: 25
Concrete: 50
DamageTypes: Prone50Percent, TriggerProne, FireDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: Scorch
Warhead@3Eff: CreateEffect
Explosion: napalm
ImpactSound: firebl3.aud
MissionBarrelExplodeInterior:
Warhead@1Dam: SpreadDamage
Spread: 350
Damage: 250
Falloff: 1000, 368, 135, 50, 18, 7, 0
Delay: 5
Versus:
None: 120
Wood: 200
Light: 50
Heavy: 25
Concrete: 10
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: Scorch
Size: 2,1
Delay: 5
Warhead@3Eff: CreateEffect
Explosion: napalm
ImpactSound: firebl3.aud
Delay: 5
Voices:
Notifications:
Translations:

View File

@@ -0,0 +1,302 @@
if Map.Difficulty == "Easy" then
remainingTime = DateTime.Minutes(7)
elseif Map.Difficulty == "Normal" then
remainingTime = DateTime.Minutes(6)
elseif Map.Difficulty == "Hard" then
remainingTime = DateTime.Minutes(5)
end
Dogs = { Dog1, Dog2, Dog3, Dog4, Dog5, Dog6, Dog7, Dog8, Dog9, Dog10, Dog11, Dog12, Dog13, Dog14, Dog15, Dog16, Dog17, Dog18, Dog19 }
Engineers = { Prisoner1, Prisoner2, Prisoner3, Prisoner4, Prisoner5 }
PrisonerGuards = { PrisonerGuard1, PrisonerGuard2, PrisonerGuard3 }
EntranceGuards = { EntranceGuard1, EntranceGuard2, EntranceGuard3, EntranceGuard4, EntranceGuard5, EntranceGuard6, EntranceGuard7, EntranceGuard8, EntranceGuard9, EntranceGuard10 }
GoalGuards = { GoalGuard1, GoalGuard2, GoalGuard3, GoalGuard4, GoalGuard5 }
CCGuards = { CCGuard1, CCGuard2, CCGuard3, CCGuard4 }
StartingUnitsReinforcements = { "e1", "e1", "e1", "e1" }
CameraCCTrigger = { CPos.New(83, 71), CPos.New(84,71) }
CameraGoalCenterTrigger = { CPos.New(74, 66), CPos.New(75, 66), CPos.New(76, 66), CPos.New(77, 66) }
CameraGoalLeftTrigger = { CPos.New(62, 59), CPos.New(62, 60), CPos.New(62, 62), CPos.New(62, 63) }
CameraGoalRightTrigger = { CPos.New(90, 59), CPos.New(90, 60), CPos.New(90, 62), CPos.New(90, 63) }
ControlCenterTrigger = { CPos.New(87, 67), CPos.New(88, 67) }
ControlCenterEngineerTrigger = { CPos.New(87, 67), CPos.New(88, 67) }
FTurBottomTrigger = { CPos.New(67, 82), CPos.New(67, 83) }
FTurLeftTrigger = { CPos.New(57, 70), CPos.New(58, 70), CPos.New(59, 70), CPos.New(60, 70) }
FTurRightTrigger = { CPos.New(97, 68), CPos.New(97, 69), CPos.New(97, 70) }
GoalCenterTrigger = { CPos.New(73, 52), CPos.New(74, 52), CPos.New(75, 52), CPos.New(76, 52), CPos.New(77, 52), CPos.New(78, 52) }
GoalLeft1Trigger = { CPos.New(65, 58), CPos.New(66, 58), CPos.New(67, 58), CPos.New(65, 59), CPos.New(66, 59), CPos.New(67, 59) }
GoalLeft2Trigger = { CPos.New(65, 64), CPos.New(66, 64), CPos.New(67, 64), CPos.New(65, 65), CPos.New(66, 65), CPos.New(67, 65) }
GoalRight1Trigger = { CPos.New(86, 57), CPos.New(87, 57), CPos.New(88, 57), CPos.New(86, 58), CPos.New(87, 58), CPos.New(88, 58) }
GoalRight2Trigger = { CPos.New(86, 64), CPos.New(87, 64), CPos.New(88, 64), CPos.New(86, 65), CPos.New(87, 65), CPos.New(88, 65) }
RSoldierTrapTrigger = { CPos.New(72, 72), CPos.New(72,73), CPos.New(72,74) }
SoldierTrap2Trigger = { CPos.New(51, 73), CPos.New(51, 74) }
Trigger.OnEnteredFootprint(CameraCCTrigger, function(a, id)
if not cameraCCTrigger and a.Owner == player then
cameraCCTrigger = true
Actor.Create("camera", true, { Owner = player, Location = CameraCC.Location })
end
end)
Trigger.OnEnteredFootprint(CameraGoalCenterTrigger, function(a, id)
if not cameraGoalCenterTrigger and a.Owner == player then
cameraGoalCenterTrigger = true
if not controlCenterEngineerTrigger then
Actor.Create("camera", true, { Owner = player, Location = CameraGoalCenter1.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraGoalCenter2.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraGoalCenter3.Location })
end
end
end)
Trigger.OnEnteredFootprint(CameraGoalLeftTrigger, function(a, id)
if not cameraGoalLeftTrigger and a.Owner == player then
cameraGoalLeftTrigger = true
Actor.Create("camera", true, { Owner = player, Location = CameraGoalLeft1.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraGoalLeft2.Location })
end
end)
Trigger.OnEnteredFootprint(CameraGoalRightTrigger, function(a, id)
if not cameraGoalRightTrigger and a.Owner == player then
cameraGoalRightTrigger = true
Actor.Create("camera", true, { Owner = player, Location = CameraGoalRight1.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraGoalRight2.Location })
end
end)
Trigger.OnEnteredFootprint(ControlCenterTrigger, function(a, id)
if not controlCenterTrigger and a.Owner == player and a.Type == "e1" then
controlCenterTrigger = true
FTurPrisoners.Kill()
FTurLeft.Kill()
FTurRight.Kill()
FTurBottom.Kill()
player.MarkCompletedObjective(sovietObjective1)
end
end)
Trigger.OnEnteredFootprint(ControlCenterEngineerTrigger, function(a, id)
if not controlCenterEngineerTrigger and a.Owner == player and a.Type == "e6" then
controlCenterEngineerTrigger = true
Actor.Create("ftur", true, { Owner = player, Location = FTur1Goal.Location})
Actor.Create("ftur", true, { Owner = player, Location = FTur2Goal.Location})
Camera.Position = CameraGoalCenter1.CenterPosition
if not cameraGoalRightTrigger then
Actor.Create("camera", true, { Owner = player, Location = CameraGoalCenter1.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraGoalCenter2.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraGoalCenter3.Location })
end
Utils.Do(GoalGuards, function(actor)
if not actor.IsDead then
actor.AttackMove(FTur1Goal.Location)
end
end)
player.MarkCompletedObjective(sovietObjective4)
end
end)
Trigger.OnEnteredFootprint(FTurBottomTrigger, function(a, id)
if not fTurBottomTrigger and a.Owner == player then
fTurBottomTrigger = true
if not rSoldierTrapTrigger then
Actor.Create("camera", true, { Owner = player, Location = CameraRSoldier.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraFTurBottom.Location })
end
end
end)
Trigger.OnEnteredFootprint(FTurLeftTrigger, function(a, id)
if not fTurLeftTrigger and a.Owner == player then
fTurLeftTrigger = true
Actor.Create("camera", true, { Owner = player, Location = CameraFTurLeft.Location })
end
end)
Trigger.OnEnteredFootprint(FTurRightTrigger, function(a, id)
if not fTurRightTrigger and a.Owner == player then
fTurRightTrigger = true
Actor.Create("camera", true, { Owner = player, Location = CameraFTurRight.Location })
end
end)
Trigger.OnEnteredFootprint(GoalCenterTrigger, function(a, id)
if not goalCenterTrigger and a.Owner == player and a.Type == "e6" then
goalCenterTrigger = true
player.MarkCompletedObjective(sovietObjective5)
end
end)
Trigger.OnEnteredFootprint(GoalLeft1Trigger, function(a, id)
if not goalLeft1Trigger and a.Owner == player and a.Type == "e6" then
goalLeft1Trigger = true
Media.PlaySpeechNotification(player, "ControlCenterDeactivated")
end
end)
Trigger.OnEnteredFootprint(GoalLeft2Trigger, function(a, id)
if not goalLeft2Trigger and a.Owner == player and a.Type == "e6" then
goalLeft2Trigger = true
Media.PlaySpeechNotification(player, "ControlCenterDeactivated")
end
end)
Trigger.OnEnteredFootprint(GoalRight1Trigger, function(a, id)
if not goalRight1Trigger and a.Owner == player and a.Type == "e6" then
goalRight1Trigger = true
Media.PlaySpeechNotification(player, "ControlCenterDeactivated")
end
end)
Trigger.OnEnteredFootprint(GoalRight2Trigger, function(a, id)
if not goalRight2Trigger and a.Owner == player and a.Type == "e6" then
goalRight2Trigger = true
Media.PlaySpeechNotification(player, "ControlCenterDeactivated")
end
end)
Trigger.OnEnteredFootprint(RSoldierTrapTrigger, function(a, id)
if not rSoldierTrapTrigger and a.Owner == player then
rSoldierTrapTrigger = true
if not fTurBottomTrigger then
Actor.Create("camera", true, { Owner = player, Location = CameraRSoldier.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraFTurBottom.Location })
end
if not RSoldier1.IsDead and not RSoldierTrap1.IsDead then
RSoldier1.Attack(RSoldierTrap1)
end
if not RSoldier2.IsDead and not RSoldierTrap2.IsDead then
RSoldier2.Attack(RSoldierTrap2)
end
end
end)
Trigger.OnEnteredFootprint(SoldierTrap2Trigger, function(a, id)
if not soldierTrap2Trigger and a.Owner == player then
soldierTrap2Trigger = true
Actor.Create("camera", true, { Owner = player, Location = CameraSoldierTrap2.Location })
if not SoldierTrap2.IsDead then
PrisonEntranceGuard.Attack(SoldierTrap2)
end
PrisonEntranceGuard.Move(SoldierTrap2Waypoint.Location)
end
end)
Trigger.OnAllKilled(Engineers, function()
enemy.MarkCompletedObjective(alliedObjective)
end)
Trigger.OnAllKilled(PrisonerGuards, function()
Utils.Do(Engineers, function(actor)
actor.Owner = player
end)
Prisoner6.Owner = player
player.MarkCompletedObjective(sovietObjective2)
end)
Trigger.OnKilled(BarlCC, function()
if not cameraCCTrigger then
Actor.Create("camera", true, { Owner = player, Location = CameraCC.Location })
cameraCCTrigger = true
end
Utils.Do(CCGuards, function(actor)
if not actor.IsDead then
actor.Hunt()
end
end)
end)
Trigger.OnKilled(PBoxBrl, function()
PBox.Kill()
Utils.Do(Dogs, function(actor)
actor.Owner = player
end)
player.MarkCompletedObjective(sovietObjective6)
end)
Trigger.OnKilled(PrisonEntranceGuard, function()
if controlCenterTrigger then
Utils.Do(PrisonerGuards, function(actor)
if not actor.IsDead then
actor.Hunt()
end
end)
end
end)
IntroSequence = function()
StartingUnits = Reinforcements.Reinforce(player, StartingUnitsReinforcements, { StartingUnitsSpawn.Location, SoldierTrap1Waypoint1.Location }, 0)
Trigger.AfterDelay(DateTime.Seconds(3), function()
Utils.Do(EntranceGuards, function(actor)
if not SoldierTrap1.IsDead then
actor.Attack(SoldierTrap1)
end
actor.AttackMove(SoldierTrap1Waypoint1.Location)
actor.AttackMove(SoldierTrap1Waypoint2.Location)
actor.AttackMove(SoldierTrap1Waypoint3.Location)
end)
Media.PlaySpeechNotification(player, "TimerStarted")
timerStarted = true
end)
Trigger.OnAllKilled(StartingUnits, function()
enemy.MarkCompletedObjective(alliedObjective)
end)
end
WorldLoaded = function()
player = Player.GetPlayer("USSR")
enemy = Player.GetPlayer("Greece")
Camera.Position = SoldierTrap1Waypoint1.CenterPosition
Actor.Create("camera", true, { Owner = player, Location = CameraStart1.Location })
Actor.Create("camera", true, { Owner = player, Location = CameraStart2.Location })
IntroSequence()
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.")
sovietObjective1 = player.AddPrimaryObjective("Deactivate the security system.")
sovietObjective2 = player.AddPrimaryObjective("Rescue the engineers.")
sovietObjective3 = player.AddPrimaryObjective("Get the engineers to the coolant stations.")
sovietObjective4 = player.AddPrimaryObjective("Use an Engineer to reprogram the security system.")
sovietObjective5 = player.AddPrimaryObjective("Get an Engineer to the reactor core.")
sovietObjective6 = player.AddSecondaryObjective("Free the dogs.")
end
Tick = function()
if player.HasNoRequiredUnits() and timerStarted then
enemy.MarkCompletedObjective(alliedObjective)
end
if remainingTime == DateTime.Minutes(5) and Map.Difficulty ~= "Hard" then
Media.PlaySpeechNotification(player, "WarningFiveMinutesRemaining")
elseif remainingTime == DateTime.Minutes(4) then
Media.PlaySpeechNotification(player, "WarningFourMinutesRemaining")
elseif remainingTime == DateTime.Minutes(3) then
Media.PlaySpeechNotification(player, "WarningThreeMinutesRemaining")
elseif remainingTime == DateTime.Minutes(2) then
Media.PlaySpeechNotification(player, "WarningTwoMinutesRemaining")
elseif remainingTime == DateTime.Minutes(1) then
Media.PlaySpeechNotification(player, "WarningOneMinuteRemaining")
end
if goalLeft1Trigger and goalLeft2Trigger and goalRight1Trigger and goalRight2Trigger then
player.MarkCompletedObjective(sovietObjective3)
end
if remainingTime > 0 and timerStarted then
UserInterface.SetMissionText("Time until Meltdown: " .. Utils.FormatTime(remainingTime), player.Color)
remainingTime = remainingTime - 1
elseif remainingTime == 0 then
UserInterface.SetMissionText("")
enemy.MarkCompletedObjective(alliedObjective)
end
end

View File

@@ -10,3 +10,4 @@ Soviet Campaign:
./mods/ra/maps/soviet-04a
./mods/ra/maps/soviet-04b
./mods/ra/maps/soviet-05
./mods/ra/maps/soviet-07