Added soviet02a

Thanks to the basic work from @Computerfreaked
This commit is contained in:
abcdefg30
2015-05-29 00:25:52 +02:00
parent 6527d7751b
commit 79191ae280
6 changed files with 846 additions and 1 deletions

View File

@@ -61,6 +61,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Re
mods\ra\maps\soviet-01\soviet01.lua = mods\ra\maps\soviet-01\soviet01.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
mods\ra\maps\soviet-02a\soviet02a.lua = mods\ra\maps\soviet-02a\soviet02a.lua
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dune 2000 Lua scripts", "Dune 2000 Lua scripts", "{06B1AE07-DDB0-4287-8700-A8CD9A0E652E}"

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,707 @@
MapFormat: 7
RequiresMod: ra
Title: Soviet 02a: The thin red line
Description: Tomorrow, the attack on Germany begins, but today, we must protect our facility from Allied attacks.\n\nKeep the Command Center intact at all costs, and destroy any Allied fortification you might find.
Author: Westwood Studios
Tileset: TEMPERAT
MapSize: 128,128
Bounds: 36,38,50,40
Visibility: MissionSelector
Type: Campaign
Videos:
Briefing: soviet2.vqa
GameStart: spotter.vqa
GameWon: sovtstar.vqa
GameLost: sovcemet.vqa
Options:
Crates: False
Fog: True
Shroud: True
AllyBuildRadius: False
FragileAlliances: False
StartingCash: 5000
ConfigurableStartingUnits: False
ShortGame: False
Players:
PlayerReference@USSR:
Name: USSR
Playable: True
AllowBots: False
Required: True
LockRace: True
Race: soviet
LockColor: True
ColorRamp: 3,255,127
LockSpawn: True
LockTeam: True
Enemies: Germany
PlayerReference@Germany:
Name: Germany
Race: allies
ColorRamp: 161,134,236
Enemies: USSR
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Race: allies
Actors:
Actor0: t02
Location: 37,45
Owner: Neutral
Actor1: t06
Location: 50,63
Owner: Neutral
Actor2: t06
Location: 59,71
Owner: Neutral
Actor3: tc01
Location: 52,76
Owner: Neutral
Actor4: tc01
Location: 37,66
Owner: Neutral
Actor5: tc03
Location: 37,65
Owner: Neutral
Actor6: t16
Location: 37,63
Owner: Neutral
Actor7: t12
Location: 37,70
Owner: Neutral
Actor8: t08
Location: 36,70
Owner: Neutral
Actor9: t07
Location: 36,68
Owner: Neutral
Actor10: tc04
Location: 40,74
Owner: Neutral
Actor11: tc05
Location: 42,69
Owner: Neutral
Actor12: t10
Location: 50,50
Owner: Neutral
Actor13: t17
Location: 68,47
Owner: Neutral
Actor14: t13
Location: 39,69
Owner: Neutral
Actor15: t01
Location: 69,60
Owner: Neutral
Actor16: t01
Location: 77,39
Owner: Neutral
Actor17: tc01
Location: 72,42
Owner: Neutral
Actor18: t15
Location: 76,64
Owner: Neutral
Actor19: t01
Location: 56,44
Owner: Neutral
Actor20: t03
Location: 61,41
Owner: Neutral
Actor21: t01
Location: 66,73
Owner: Neutral
Actor22: t02
Location: 66,71
Owner: Neutral
Actor23: t01
Location: 67,57
Owner: Neutral
Actor24: t05
Location: 69,51
Owner: Neutral
Actor25: tc03
Location: 47,48
Owner: Neutral
Actor26: t05
Location: 70,66
Owner: Neutral
Actor27: t01
Location: 59,51
Owner: Neutral
Actor28: t06
Location: 62,57
Owner: Neutral
Actor29: tc05
Location: 73,37
Owner: Neutral
Actor30: tc04
Location: 70,37
Owner: Neutral
Actor31: tc04
Location: 83,37
Owner: Neutral
Actor32: tc03
Location: 84,40
Owner: Neutral
Actor33: t17
Location: 82,39
Owner: Neutral
Actor34: fact
Location: 72,52
Owner: USSR
Health: 99
Actor35: weap
Location: 41,50
Owner: Germany
Health: 98
Actor37: fact
Location: 39,54
Owner: Germany
Actor39: powr
Location: 36,55
Owner: Germany
Actor40: powr
Location: 36,52
Owner: Germany
Health: 99
Actor41: tent
Location: 41,58
Owner: Germany
Actor42: gun
Location: 39,61
Owner: Germany
Facing: 96
Actor44: powr
Location: 36,49
Owner: Germany
Actor45: gun
Location: 50,55
Owner: Germany
Facing: 96
Actor46: gun
Location: 50,59
Owner: Germany
Facing: 32
Actor47: brl3
Location: 38,48
Owner: Germany
Actor48: v19
Location: 39,48
Owner: Germany
Actor49: v19
Location: 40,46
Owner: Germany
Actor50: brl3
Location: 40,47
Owner: Germany
Actor51: barl
Location: 39,49
Owner: Germany
Actor52: brl3
Location: 40,48
Owner: Germany
Actor53: barl
Location: 38,49
Owner: Germany
Actor54: brl3
Location: 39,50
Owner: Germany
Actor55: barl
Location: 38,51
Owner: Germany
Actor56: barl
Location: 38,52
Owner: Germany
Actor57: brl3
Location: 39,53
Owner: Germany
Actor58: barl
Location: 38,54
Owner: Germany
Actor59: brl3
Location: 38,53
Owner: Germany
Actor60: brl3
Location: 41,45
Owner: Germany
Actor61: barl
Location: 41,46
Owner: Germany
Actor62: brl3
Location: 58,54
Owner: Germany
Actor63: v19
Location: 59,53
Owner: Germany
Actor64: barl
Location: 58,52
Owner: Germany
Actor66: barl
Location: 60,53
Owner: Germany
Actor67: brl3
Location: 58,53
Owner: Germany
Actor68: barl
Location: 59,51
Owner: Germany
Actor70: barl
Location: 60,59
Owner: Germany
Actor71: v19
Location: 61,59
Owner: Germany
Actor73: barl
Location: 60,61
Owner: Germany
Actor74: powr
Location: 79,52
Owner: USSR
Actor75: powr
Location: 82,52
Owner: USSR
Actor76: powr
Location: 83,56
Owner: USSR
Actor77: afld
Location: 79,56
Owner: USSR
Actor78: afld
Location: 75,56
Owner: USSR
Actor80: jeep
Location: 57,43
Owner: Germany
Facing: 96
Actor81: jeep
Location: 46,70
Owner: Germany
Facing: 96
Actor82: jeep
Location: 42,48
Owner: Germany
Facing: 32
Actor83: e1
Location: 70,52
Owner: USSR
Facing: 160
SubCell: 4
Actor84: e1
Location: 70,55
Owner: USSR
Facing: 192
SubCell: 3
Actor86: e1
Location: 44,67
Owner: Germany
Facing: 64
SubCell: 0
Actor87: e1
Location: 68,53
Owner: USSR
Facing: 192
SubCell: 2
Actor88: e1
Location: 69,54
Owner: USSR
Facing: 160
SubCell: 0
Actor89: e1
Location: 70,56
Owner: USSR
Facing: 160
SubCell: 4
Actor90: e1
Location: 69,57
Owner: USSR
Facing: 192
SubCell: 2
Actor91: e1
Location: 69,55
Owner: USSR
Facing: 160
SubCell: 3
Actor92: dog
Location: 77,58
Owner: USSR
Facing: 192
SubCell: 3
Actor93: dog
Location: 82,50
Owner: USSR
Facing: 192
SubCell: 0
Actor96: dog
Location: 73,50
Owner: USSR
Facing: 32
SubCell: 3
Actor97: dog
Location: 73,58
Owner: USSR
Facing: 160
SubCell: 1
Actor98: e3
Location: 47,44
Owner: Germany
Facing: 96
SubCell: 0
Actor99: e3
Location: 49,57
Owner: Germany
Facing: 64
SubCell: 1
Actor100: e3
Location: 44,49
Owner: Germany
Facing: 96
SubCell: 0
Actor101: e3
Location: 39,51
Owner: Germany
Facing: 96
SubCell: 4
Actor102: e3
Location: 43,60
Owner: Germany
Facing: 64
SubCell: 0
Actor103: e3
Location: 42,56
Owner: Germany
Facing: 64
SubCell: 3
Actor104: e1
Location: 48,43
Owner: Germany
Facing: 96
SubCell: 1
Actor113: e1
Location: 71,50
Owner: USSR
SubCell: 2
Actor114: e1
Location: 74,50
Owner: USSR
SubCell: 3
waypoint8: waypoint
Location: 62,38
Owner: Neutral
waypoint9: waypoint
Location: 52,72
Owner: Neutral
waypoint10: waypoint
Location: 83,77
Owner: Neutral
waypoint11: waypoint
Location: 64,62
Owner: Neutral
waypoint23: waypoint
Location: 66,53
Owner: Neutral
waypoint25: waypoint
Location: 75,59
Owner: Neutral
waypoint26: waypoint
Location: 79,67
Owner: Neutral
waypoint27: waypoint
Location: 85,63
Owner: Neutral
waypoint28: waypoint
Location: 85,53
Owner: Neutral
waypoint42: waypoint
Location: 42,53
Owner: Neutral
waypoint49: waypoint
Location: 42,59
Owner: Neutral
waypoint52: waypoint
Location: 60,60
Owner: Neutral
waypoint53: waypoint
Location: 61,59
Owner: Neutral
waypoint94: waypoint
Location: 77,53
Owner: Neutral
waypoint95: waypoint
Location: 59,44
Owner: Neutral
waypoint1: waypoint
Location: 47,57
Owner: Neutral
waypoint4: waypoint
Location: 57,59
Owner: Neutral
waypoint5: waypoint
Location: 63,52
Owner: Neutral
waypoint6: waypoint
Location: 68,39
Owner: Neutral
Actor121: fenc
Location: 68,59
Owner: USSR
Actor122: fenc
Location: 68,58
Owner: USSR
Actor123: fenc
Location: 68,57
Owner: USSR
Actor124: fenc
Location: 68,56
Owner: USSR
Actor125: fenc
Location: 68,52
Owner: USSR
Actor126: fenc
Location: 68,51
Owner: USSR
Actor127: fenc
Location: 70,51
Owner: USSR
Actor128: fenc
Location: 75,51
Owner: USSR
Actor129: fenc
Location: 76,51
Owner: USSR
Actor130: fenc
Location: 77,51
Owner: USSR
Actor131: fenc
Location: 78,51
Owner: USSR
Actor132: fenc
Location: 79,51
Owner: USSR
Actor133: fenc
Location: 69,51
Owner: USSR
CameraWaypoint: waypoint
Location: 68,54
Owner: Neutral
ParadropLZ: waypoint
Location: 45,43
Owner: Neutral
AttackWaypoint1: waypoint
Location: 73,49
Owner: Neutral
AttackWaypoint2: waypoint
Location: 73,76
Owner: Neutral
CommandCenter: fcom
Location: 76,52
Owner: USSR
Health: 99
AlliedDome: dome
Location: 45,50
Owner: Germany
Health: 98
AlliedProc: proc
Location: 43,53
Owner: Germany
Health: 99
Barrel: brl3
Location: 60,60
Owner: Germany
BridgeBarrel1: brl3
Location: 61,58
Owner: Germany
BridgeBarrel2: brl3
Location: 59,54
Owner: Germany
Follower: e1
Location: 69,53
Owner: USSR
Facing: 160
SubCell: 2
Fleeing1: e1
Location: 62,52
Owner: Germany
Facing: 64
SubCell: 4
Fleeing2: e1
Location: 63,53
Owner: Germany
Facing: 64
SubCell: 4
Attacker1: e1
Location: 59,44
Owner: Germany
Facing: 96
SubCell: 4
Attacker2: e1
Location: 60,44
Owner: Germany
Facing: 64
SubCell: 1
Attacker3: e1
Location: 59,43
Owner: Germany
Facing: 64
SubCell: 4
Attacker4: e1
Location: 59,44
Owner: Germany
Facing: 64
SubCell: 1
Hunter1: e3
Location: 74,67
Owner: Germany
SubCell: 3
Hunter2: e1
Location: 73,68
Owner: Germany
SubCell: 3
Hunter3: e1
Location: 72,67
Owner: Germany
SubCell: 4
Hunter4: e1
Location: 54,74
Owner: Germany
SubCell: 2
Smudges:
Rules:
Player:
-ConquestVictoryConditions:
MissionObjectives:
EarlyGameOver: true
-EnemyWatcher:
World:
-CrateSpawner:
-SpawnMPUnits:
-MPStartLocations:
LuaScript:
Scripts: soviet02a.lua
ObjectivesPanel:
PanelName: MISSION_OBJECTIVES
^Building:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Infantry:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Vehicle:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Plane:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Wall:
Tooltip:
ShowOwnerRow: false
^Husk:
Tooltip:
GenericVisibility: Enemy, Ally, Neutral
GenericStancePrefix: false
ShowOwnerRow: false
SPEN:
Buildable:
Prerequisites: ~disabled
DOME:
Buildable:
Prerequisites: ~disabled
WEAP:
Buildable:
Prerequisites: ~disabled
FIX:
Buildable:
Prerequisites: ~disabled
APWR:
Buildable:
Prerequisites: ~disabled
STEK:
Buildable:
Prerequisites: ~disabled
BRIK:
Buildable:
Prerequisites: ~disabled
TSLA:
Buildable:
Prerequisites: ~disabled
SAM:
Buildable:
Prerequisites: ~disabled
IRON:
Buildable:
Prerequisites: ~disabled
MSLO:
Buildable:
Prerequisites: ~disabled
E3:
Buildable:
Prerequisites: ~disabled
E4:
Buildable:
Prerequisites: ~disabled
E6:
Buildable:
Prerequisites: ~disabled
SHOK:
Buildable:
Prerequisites: ~disabled
SNIPER:
Buildable:
Prerequisites: ~disabled
HIJACKER:
Buildable:
Prerequisites: ~disabled
MIG:
Buildable:
Prerequisites: ~disabled
AFLD:
Buildable:
Prerequisites: ~disabled
AirstrikePower@spyplane:
Prerequisites: ~disabled
ParatroopersPower@paratroopers:
Prerequisites: ~disabled
DOG:
Health:
HP: 25
AutoTarget:
ScanRadius: 5
powerproxy.paratroopers:
ParatroopersPower:
DropItems: E2,E2,E2,E2,E2
HARV:
Harvester:
SearchFromProcRadius: 50
SearchFromOrderRadius: 50
Sequences:
VoxelSequences:
Weapons:
Voices:
Notifications:
Translations:

View File

@@ -0,0 +1,137 @@
CameraTriggerArea = { CPos.New(42, 45), CPos.New(43, 45), CPos.New(44, 45), CPos.New(45, 45), CPos.New(46, 45), CPos.New(47, 45), CPos.New(48, 45), CPos.New(48, 56), CPos.New(48, 57), CPos.New(48, 58), CPos.New(48, 59), CPos.New(40, 63), CPos.New(41, 63), CPos.New(42, 63), CPos.New(43, 63), CPos.New(44, 63), CPos.New(45, 63), CPos.New(46, 63), CPos.New(47, 63) }
PassingBridgeLocation = { CPos.New(59, 56), CPos.New(60, 56) }
CmdAtk = { Attacker1, Attacker2, Attacker3, Attacker4 }
FleeingUnits = { Fleeing1, Fleeing2 }
HuntingUnits = { Hunter1, Hunter2, Hunter3, Hunter4 }
WorldLoaded = function()
player = Player.GetPlayer("USSR")
germany = Player.GetPlayer("Germany")
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)
CommandCenterIntact = player.AddPrimaryObjective("Protect the Command Center.")
DestroyAllAllied = player.AddPrimaryObjective("Destroy all Allied units and structures.")
Trigger.OnPlayerWon(player, function()
Media.PlaySpeechNotification(player, "MissionAccomplished")
end)
Trigger.OnPlayerLost(player, function()
Media.PlaySpeechNotification(player, "MissionFailed")
end)
Camera.Position = CameraWaypoint.CenterPosition
Trigger.OnKilled(CommandCenter, function()
player.MarkFailedObjective(CommandCenterIntact)
end)
Trigger.AfterDelay(0, function()
local buildings = Map.ActorsInBox(Map.TopLeft, Map.BottomRight, function(self) return self.Owner == germany and self.HasProperty("StartBuildingRepairs") end)
Utils.Do(buildings, function(actor)
Trigger.OnDamaged(actor, function(building, attacker)
if building.Owner == germany and building.Health < building.MaxHealth * 0.8 then
building.StartBuildingRepairs()
if attacker.Type ~= "yak" and not AlreadyHunting then
AlreadyHunting = true
Utils.Do(germany.GetGroundAttackers(), function(unit)
Trigger.OnIdle(unit, unit.Hunt)
end)
end
end
end)
end)
-- Find the bridge actors
bridgepart1 = Map.ActorsInBox(waypoint23.CenterPosition, waypoint49.CenterPosition, function(self) return self.Type == "br1" end)[1]
bridgepart2 = Map.ActorsInBox(waypoint23.CenterPosition, waypoint49.CenterPosition, function(self) return self.Type == "br2" end)[1]
end)
-- Discover the area around the bridge exposing the two german soldiers
-- When the two infantry near the bridge are discovered move them accross the bridge to waypoint4
-- in the meanwhile one USSR soldier hunts them down
Trigger.AfterDelay(DateTime.Seconds(1), function()
Actor.Create("camera", true, { Owner = player, Location = waypoint23.Location })
Utils.Do(FleeingUnits, function(unit)
unit.Move(waypoint4.Location)
end)
Follower.AttackMove(waypoint4.Location)
end)
-- To make it look more smooth we will blow up the bridge when the barrel closest to it blows up
Trigger.OnAnyKilled({ BridgeBarrel1, BridgeBarrel2 }, function()
-- Destroy the bridge
if not bridgepart1.IsDead then
bridgepart1.Kill()
end
if not bridgepart2.IsDead then
bridgepart2.Kill()
end
end)
-- If player passes over the bridge, blow up the barrel and destroy the bridge
Trigger.OnEnteredFootprint(PassingBridgeLocation, function(unit, id)
if unit.Owner == player then
Trigger.RemoveFootprintTrigger(id)
-- Also don't if the bridge is already dead
if bridgepart1.IsDead and bridgepart2.IsDead then
return
end
-- Don't "shoot" at the barrels if there is noone to shoot
if not FleeingUnits[1].IsDead then
FleeingUnits[1].Attack(Barrel)
elseif not FleeingUnits[2].IsDead then
FleeingUnits[2].Attack(Barrel)
end
end
end)
-- Four infantry from the small island move towards the USSR command center and attack it after 24 Seconds
Trigger.AfterDelay(DateTime.Seconds(24), function()
Utils.Do(CmdAtk, function(unit)
unit.AttackMove(AttackWaypoint1.Location)
Trigger.OnIdle(unit, unit.Hunt)
end)
end)
-- Start hunting
Hunter4.AttackMove(AttackWaypoint2.Location) -- Move the unit in the correct direction first
Utils.Do(HuntingUnits, function(unit)
Trigger.OnIdle(unit, unit.Hunt)
end)
-- When destroying the allied radar dome or the refinery drop 2 badgers with 5 grenadiers each
Trigger.OnAnyKilled({ AlliedDome, AlliedProc }, function()
local powerproxy = Actor.Create("powerproxy.paratroopers", true, { Owner = player })
powerproxy.SendParatroopers(ParadropLZ.CenterPosition, false, Facing.South)
powerproxy.SendParatroopers(ParadropLZ.CenterPosition, false, Facing.SouthEast)
powerproxy.Destroy()
end)
end
Tick = function()
if germany.HasNoRequiredUnits() then
player.MarkCompletedObjective(CommandCenterIntact)
player.MarkCompletedObjective(DestroyAllAllied)
end
if player.HasNoRequiredUnits() then
player.MarkFailedObjective(DestroyAllAllied)
end
if germany.Resources > germany.ResourceCapacity / 2 then
germany.Resources = germany.ResourceCapacity / 2
end
end

View File

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