Initial commit: OpenRA game engine
Fork from OpenRA/OpenRA with one-click launch script (start-ra.cmd) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
BIN
mods/ra/maps/soviet-07/map.bin
Normal file
BIN
mods/ra/maps/soviet-07/map.bin
Normal file
Binary file not shown.
7
mods/ra/maps/soviet-07/map.ftl
Normal file
7
mods/ra/maps/soviet-07/map.ftl
Normal file
@@ -0,0 +1,7 @@
|
||||
## rules.yaml
|
||||
briefing =
|
||||
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!
|
||||
|
||||
Enter 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.
|
||||
|
||||
Kill any Allies you find.
|
||||
BIN
mods/ra/maps/soviet-07/map.png
Normal file
BIN
mods/ra/maps/soviet-07/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
798
mods/ra/maps/soviet-07/map.yaml
Normal file
798
mods/ra/maps/soviet-07/map.yaml
Normal file
@@ -0,0 +1,798 @@
|
||||
MapFormat: 12
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
Title: 07: Core of the Matter
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: INTERIOR
|
||||
|
||||
MapSize: 128,128
|
||||
|
||||
Bounds: 40,43,70,45
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
Faction: england
|
||||
PlayerReference@Creeps:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
Faction: england
|
||||
Enemies: Greece, USSR
|
||||
PlayerReference@Greece:
|
||||
Name: Greece
|
||||
Faction: allies
|
||||
Color: E2E6F5
|
||||
Allies: Soviet
|
||||
Enemies: USSR, Creeps
|
||||
Bot: campaign
|
||||
PlayerReference@USSR:
|
||||
Name: USSR
|
||||
AllowBots: False
|
||||
Playable: True
|
||||
Required: True
|
||||
LockFaction: True
|
||||
Faction: soviet
|
||||
LockColor: True
|
||||
Color: FE1100
|
||||
LockSpawn: True
|
||||
LockTeam: True
|
||||
Allies: Soviet
|
||||
Enemies: Greece, Creeps
|
||||
PlayerReference@Soviet:
|
||||
Name: Soviet
|
||||
Faction: soviet
|
||||
Color: FE1100
|
||||
Allies: USSR, Greece
|
||||
Bot: campaign
|
||||
PlayerReference@Spain:
|
||||
Name: Spain
|
||||
Faction: allies
|
||||
Color: 0CBB4A
|
||||
Bot: campaign
|
||||
|
||||
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: 768
|
||||
SubCell: 4
|
||||
Actor172: e1
|
||||
Location: 77,80
|
||||
Owner: Greece
|
||||
Facing: 896
|
||||
SubCell: 2
|
||||
Actor214: healcrate
|
||||
Owner: Neutral
|
||||
Location: 88,69
|
||||
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: 768
|
||||
SubCell: 3
|
||||
CCGuard2: e1
|
||||
Location: 88,67
|
||||
Owner: Greece
|
||||
Facing: 768
|
||||
SubCell: 4
|
||||
CCGuard3: e1
|
||||
Location: 88,68
|
||||
Owner: Greece
|
||||
Facing: 768
|
||||
SubCell: 1
|
||||
CCGuard4: e1
|
||||
Location: 87,68
|
||||
Owner: Greece
|
||||
Facing: 768
|
||||
SubCell: 3
|
||||
Dog1: dog
|
||||
Location: 84,84
|
||||
Owner: Soviet
|
||||
Facing: 896
|
||||
SubCell: 1
|
||||
Dog2: dog
|
||||
Owner: Soviet
|
||||
Location: 84,83
|
||||
SubCell: 3
|
||||
Facing: 368
|
||||
Dog3: dog
|
||||
Location: 82,83
|
||||
Owner: Soviet
|
||||
SubCell: 4
|
||||
Dog4: dog
|
||||
Location: 80,83
|
||||
Owner: Soviet
|
||||
Facing: 256
|
||||
SubCell: 2
|
||||
Dog5: dog
|
||||
Location: 85,82
|
||||
Owner: Soviet
|
||||
Facing: 896
|
||||
SubCell: 1
|
||||
Dog6: dog
|
||||
Location: 85,79
|
||||
Owner: Soviet
|
||||
Facing: 768
|
||||
SubCell: 4
|
||||
Dog7: dog
|
||||
Location: 85,81
|
||||
Owner: Soviet
|
||||
Facing: 768
|
||||
SubCell: 4
|
||||
Dog8: dog
|
||||
Location: 86,83
|
||||
Owner: Soviet
|
||||
Facing: 896
|
||||
SubCell: 1
|
||||
Dog9: dog
|
||||
Location: 86,84
|
||||
Owner: Soviet
|
||||
SubCell: 0
|
||||
Dog10: dog
|
||||
Location: 86,82
|
||||
Owner: Soviet
|
||||
Facing: 768
|
||||
SubCell: 0
|
||||
Dog11: dog
|
||||
Location: 82,84
|
||||
Owner: Soviet
|
||||
Facing: 128
|
||||
SubCell: 1
|
||||
Dog12: dog
|
||||
Location: 83,84
|
||||
Owner: Soviet
|
||||
SubCell: 1
|
||||
Dog13: dog
|
||||
Location: 86,81
|
||||
Owner: Soviet
|
||||
Facing: 128
|
||||
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: 896
|
||||
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
|
||||
Tanya: e7
|
||||
Location: 75,54
|
||||
Owner: Greece
|
||||
Facing: 512
|
||||
SubCell: 2
|
||||
GoalGuard1: e1
|
||||
Location: 74,54
|
||||
Owner: Greece
|
||||
Facing: 512
|
||||
SubCell: 2
|
||||
GoalGuard2: e1
|
||||
Location: 73,54
|
||||
Owner: Greece
|
||||
Facing: 512
|
||||
SubCell: 2
|
||||
GoalGuard3: e1
|
||||
Location: 76,54
|
||||
Owner: Greece
|
||||
Facing: 512
|
||||
SubCell: 2
|
||||
GoalGuard4: e1
|
||||
Location: 77,54
|
||||
Owner: Greece
|
||||
Facing: 512
|
||||
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: 640
|
||||
SubCell: 4
|
||||
Prisoner2: e6
|
||||
Location: 44,47
|
||||
Owner: Soviet
|
||||
Facing: 512
|
||||
SubCell: 4
|
||||
Prisoner3: e6
|
||||
Location: 46,47
|
||||
Owner: Soviet
|
||||
Facing: 384
|
||||
SubCell: 0
|
||||
Prisoner4: e6
|
||||
Location: 45,47
|
||||
Owner: Soviet
|
||||
Facing: 384
|
||||
SubCell: 1
|
||||
Prisoner5: e6
|
||||
Location: 46,46
|
||||
Owner: Soviet
|
||||
Facing: 512
|
||||
SubCell: 3
|
||||
Prisoner6: e1
|
||||
Location: 46,46
|
||||
Owner: Soviet
|
||||
Health: 51
|
||||
SubCell: 4
|
||||
PrisonEntranceGuard: e1
|
||||
Location: 46,69
|
||||
Owner: Greece
|
||||
Facing: 512
|
||||
SubCell: 1
|
||||
PrisonerGuard1: e1
|
||||
Location: 45,48
|
||||
Owner: Greece
|
||||
SubCell: 0
|
||||
PrisonerGuard2: e1
|
||||
Location: 46,49
|
||||
Owner: Greece
|
||||
Facing: 512
|
||||
SubCell: 0
|
||||
PrisonerGuard3: e1
|
||||
Location: 44,49
|
||||
Owner: Greece
|
||||
Facing: 512
|
||||
SubCell: 0
|
||||
RSoldier1: e3
|
||||
Owner: Greece
|
||||
Location: 65,72
|
||||
SubCell: 3
|
||||
Facing: 368
|
||||
RSoldier2: e3
|
||||
Location: 65,74
|
||||
Owner: Greece
|
||||
Facing: 368
|
||||
SubCell: 2
|
||||
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
|
||||
|
||||
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, ra|rules/campaign-palettes.yaml, rules.yaml
|
||||
|
||||
Weapons: weapons.yaml
|
||||
|
||||
FluentMessages: ra|fluent/lua.ftl, ra|fluent/campaign.ftl, map.ftl
|
||||
43
mods/ra/maps/soviet-07/rules.yaml
Normal file
43
mods/ra/maps/soviet-07/rules.yaml
Normal file
@@ -0,0 +1,43 @@
|
||||
World:
|
||||
LuaScript:
|
||||
Scripts: campaign.lua, utils.lua, soviet07.lua
|
||||
MissionData:
|
||||
Briefing: briefing
|
||||
BriefingVideo: soviet7.vqa
|
||||
StartVideo: countdwn.vqa
|
||||
WinVideo: averted.vqa
|
||||
LossVideo: nukestok.vqa
|
||||
ScriptLobbyDropdown@difficulty:
|
||||
ID: difficulty
|
||||
Label: dropdown-difficulty.label
|
||||
Description: dropdown-difficulty.description
|
||||
Values:
|
||||
easy: options-difficulty.easy
|
||||
normal: options-difficulty.normal
|
||||
hard: options-difficulty.hard
|
||||
Default: normal
|
||||
|
||||
Player:
|
||||
LobbyPrerequisiteCheckbox@GLOBALBOUNTY:
|
||||
Enabled: False
|
||||
Locked: True
|
||||
|
||||
CAMERA:
|
||||
RevealsShroud:
|
||||
Range: 6c0
|
||||
|
||||
FTUR:
|
||||
Valued:
|
||||
Cost: 0
|
||||
Power:
|
||||
Amount: 0
|
||||
CaptureManager:
|
||||
-BeingCapturedCondition:
|
||||
-Sellable:
|
||||
Demolishable:
|
||||
-Condition:
|
||||
|
||||
PBOX:
|
||||
-AutoTarget:
|
||||
-AutoTargetPriority@DEFAULT:
|
||||
-AutoTargetPriority@ATTACKANYTHING:
|
||||
321
mods/ra/maps/soviet-07/soviet07.lua
Normal file
321
mods/ra/maps/soviet-07/soviet07.lua
Normal file
@@ -0,0 +1,321 @@
|
||||
--[[
|
||||
Copyright (c) The OpenRA Developers and Contributors
|
||||
This file is part of OpenRA, which is free software. It is made
|
||||
available to you under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version. For more
|
||||
information, see COPYING.
|
||||
]]
|
||||
if Difficulty == "easy" then
|
||||
RemainingTime = DateTime.Minutes(7)
|
||||
elseif Difficulty == "normal" then
|
||||
RemainingTime = DateTime.Minutes(6)
|
||||
elseif 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 }
|
||||
GoalGuards = { GoalGuard1, GoalGuard2, GoalGuard3, GoalGuard4 }
|
||||
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 CameraCCTriggered and a.Owner == USSR then
|
||||
CameraCCTriggered = true
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraCC.Location })
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(CameraGoalCenterTrigger, function(a, id)
|
||||
if not CameraGoalCenterTriggered and a.Owner == USSR then
|
||||
CameraGoalCenterTriggered = true
|
||||
if not ControlCenterEngineerTriggered then
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalCenter1.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalCenter2.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalCenter3.Location })
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(CameraGoalLeftTrigger, function(a, id)
|
||||
if not CameraGoalLeftTriggered and a.Owner == USSR then
|
||||
CameraGoalLeftTriggered = true
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalLeft1.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalLeft2.Location })
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(CameraGoalRightTrigger, function(a, id)
|
||||
if not CameraGoalRightTriggered and a.Owner == USSR then
|
||||
CameraGoalRightTriggered = true
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalRight1.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalRight2.Location })
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(ControlCenterTrigger, function(a, id)
|
||||
if not ControlCenterTriggered and a.Owner == USSR and a.Type == "e1" then
|
||||
ControlCenterTriggered = true
|
||||
FTurPrisoners.Kill()
|
||||
FTurLeft.Kill()
|
||||
FTurRight.Kill()
|
||||
FTurBottom.Kill()
|
||||
USSR.MarkCompletedObjective(SovietObjective1)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(ControlCenterEngineerTrigger, function(a, id)
|
||||
if not ControlCenterEngineerTriggered and a.Owner == USSR and a.Type == "e6" then
|
||||
ControlCenterEngineerTriggered = true
|
||||
local fturA = Actor.Create("ftur", true, { Owner = USSR, Location = FTur1Goal.Location})
|
||||
local fturB = Actor.Create("ftur", true, { Owner = USSR, Location = FTur2Goal.Location})
|
||||
Camera.Position = CameraGoalCenter1.CenterPosition
|
||||
|
||||
if not CameraGoalRightTriggered then
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalCenter1.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalCenter2.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraGoalCenter3.Location })
|
||||
end
|
||||
|
||||
Utils.Do(GoalGuards, function(actor)
|
||||
if not actor.IsDead then
|
||||
actor.AttackMove(FTur1Goal.Location)
|
||||
end
|
||||
end)
|
||||
|
||||
if not Tanya.IsDead then
|
||||
Tanya.Demolish(fturA)
|
||||
Tanya.Demolish(fturB)
|
||||
end
|
||||
|
||||
USSR.MarkCompletedObjective(SovietObjective4)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(FTurBottomTrigger, function(a, id)
|
||||
if not FTurBottomTriggered and a.Owner == USSR then
|
||||
FTurBottomTriggered = true
|
||||
if not RSoldierTrapTriggered then
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraRSoldier.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraFTurBottom.Location })
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(FTurLeftTrigger, function(a, id)
|
||||
if not FTurLeftTriggered and a.Owner == USSR then
|
||||
FTurLeftTriggered = true
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraFTurLeft.Location })
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(FTurRightTrigger, function(a, id)
|
||||
if not FTurRightTriggered and a.Owner == USSR then
|
||||
FTurRightTriggered = true
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraFTurRight.Location })
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(GoalCenterTrigger, function(a, id)
|
||||
if not GoalCenterTriggered and a.Owner == USSR and a.Type == "e6" then
|
||||
GoalCenterTriggered = true
|
||||
USSR.MarkCompletedObjective(SovietObjective5)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(GoalLeft1Trigger, function(a, id)
|
||||
if not GoalLeft1Triggered and a.Owner == USSR and a.Type == "e6" then
|
||||
GoalLeft1Triggered = true
|
||||
Media.PlaySpeechNotification(USSR, "ControlCenterDeactivated")
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(GoalLeft2Trigger, function(a, id)
|
||||
if not GoalLeft2Triggered and a.Owner == USSR and a.Type == "e6" then
|
||||
GoalLeft2Triggered = true
|
||||
Media.PlaySpeechNotification(USSR, "ControlCenterDeactivated")
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(GoalRight1Trigger, function(a, id)
|
||||
if not GoalRight1Triggered and a.Owner == USSR and a.Type == "e6" then
|
||||
GoalRight1Triggered = true
|
||||
Media.PlaySpeechNotification(USSR, "ControlCenterDeactivated")
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(GoalRight2Trigger, function(a, id)
|
||||
if not GoalRight2Triggered and a.Owner == USSR and a.Type == "e6" then
|
||||
GoalRight2Triggered = true
|
||||
Media.PlaySpeechNotification(USSR, "ControlCenterDeactivated")
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnEnteredFootprint(RSoldierTrapTrigger, function(a, id)
|
||||
if not RSoldierTrapTriggered and a.Owner == USSR then
|
||||
RSoldierTrapTriggered = true
|
||||
if not FTurBottomTriggered then
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraRSoldier.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, 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 SoldierTrap2Triggered and a.Owner == USSR then
|
||||
SoldierTrap2Triggered = true
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraSoldierTrap2.Location })
|
||||
if not SoldierTrap2.IsDead then
|
||||
PrisonEntranceGuard.Attack(SoldierTrap2)
|
||||
end
|
||||
PrisonEntranceGuard.Move(SoldierTrap2Waypoint.Location)
|
||||
end
|
||||
end)
|
||||
|
||||
Trigger.OnAllKilled(Engineers, function()
|
||||
Greece.MarkCompletedObjective(AlliedObjective)
|
||||
end)
|
||||
|
||||
Trigger.OnAllKilled(PrisonerGuards, function()
|
||||
Utils.Do(Engineers, function(actor)
|
||||
actor.Owner = USSR
|
||||
end)
|
||||
|
||||
Prisoner6.Owner = USSR
|
||||
USSR.MarkCompletedObjective(SovietObjective2)
|
||||
end)
|
||||
|
||||
Trigger.OnKilled(BarlCC, function()
|
||||
if not CameraCCTriggered then
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraCC.Location })
|
||||
CameraCCTriggered = 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 = USSR
|
||||
end)
|
||||
USSR.MarkCompletedObjective(SovietObjective6)
|
||||
end)
|
||||
|
||||
Trigger.OnKilled(PrisonEntranceGuard, function()
|
||||
if ControlCenterTriggered then
|
||||
Utils.Do(PrisonerGuards, function(actor)
|
||||
if not actor.IsDead then
|
||||
actor.Hunt()
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
IntroSequence = function()
|
||||
StartingUnits = Reinforcements.Reinforce(USSR, 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(USSR, "TimerStarted")
|
||||
TimerStarted = true
|
||||
end)
|
||||
|
||||
-- Trigger a game over if the player lost all human units before the security system has been deactivated
|
||||
Trigger.OnAllKilled(StartingUnits, function()
|
||||
if not ControlCenterTriggered then
|
||||
Greece.MarkCompletedObjective(AlliedObjective)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
WorldLoaded = function()
|
||||
USSR = Player.GetPlayer("USSR")
|
||||
Greece = Player.GetPlayer("Greece")
|
||||
|
||||
Camera.Position = SoldierTrap1Waypoint1.CenterPosition
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraStart1.Location })
|
||||
Actor.Create("camera", true, { Owner = USSR, Location = CameraStart2.Location })
|
||||
|
||||
IntroSequence()
|
||||
|
||||
InitObjectives(USSR)
|
||||
AlliedObjective = AddPrimaryObjective(Greece, "")
|
||||
SovietObjective1 = AddPrimaryObjective(USSR, "deactivate-security-system")
|
||||
SovietObjective2 = AddPrimaryObjective(USSR, "rescue-engineers")
|
||||
SovietObjective3 = AddPrimaryObjective(USSR, "engineers-coolant-station")
|
||||
SovietObjective4 = AddPrimaryObjective(USSR, "engineer-reprogram-security")
|
||||
SovietObjective5 = AddPrimaryObjective(USSR, "engineer-reactor-core")
|
||||
SovietObjective6 = AddSecondaryObjective(USSR, "free-dogs")
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if USSR.HasNoRequiredUnits() and TimerStarted then
|
||||
Greece.MarkCompletedObjective(AlliedObjective)
|
||||
end
|
||||
|
||||
if RemainingTime == DateTime.Minutes(5) and Difficulty ~= "hard" then
|
||||
Media.PlaySpeechNotification(USSR, "WarningFiveMinutesRemaining")
|
||||
elseif RemainingTime == DateTime.Minutes(4) then
|
||||
Media.PlaySpeechNotification(USSR, "WarningFourMinutesRemaining")
|
||||
elseif RemainingTime == DateTime.Minutes(3) then
|
||||
Media.PlaySpeechNotification(USSR, "WarningThreeMinutesRemaining")
|
||||
elseif RemainingTime == DateTime.Minutes(2) then
|
||||
Media.PlaySpeechNotification(USSR, "WarningTwoMinutesRemaining")
|
||||
elseif RemainingTime == DateTime.Minutes(1) then
|
||||
Media.PlaySpeechNotification(USSR, "WarningOneMinuteRemaining")
|
||||
end
|
||||
|
||||
if GoalLeft1Triggered and GoalLeft2Triggered and GoalRight1Triggered and GoalRight2Triggered then
|
||||
USSR.MarkCompletedObjective(SovietObjective3)
|
||||
end
|
||||
|
||||
if RemainingTime > 0 and TimerStarted then
|
||||
if (RemainingTime % DateTime.Seconds(1)) == 0 then
|
||||
Timer = UserInterface.GetFluentMessage("time-until-meltdown", { ["time"] = Utils.FormatTime(RemainingTime) })
|
||||
UserInterface.SetMissionText(Timer, USSR.Color)
|
||||
end
|
||||
RemainingTime = RemainingTime - 1
|
||||
elseif RemainingTime == 0 then
|
||||
UserInterface.SetMissionText("")
|
||||
Greece.MarkCompletedObjective(AlliedObjective)
|
||||
end
|
||||
end
|
||||
5
mods/ra/maps/soviet-07/weapons.yaml
Normal file
5
mods/ra/maps/soviet-07/weapons.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
M1Carbine:
|
||||
Range: 3c0
|
||||
|
||||
FireballLauncher:
|
||||
Range: 3c128
|
||||
Reference in New Issue
Block a user