Merge pull request #6837 from obrakmann/mission-polish
Another mission polish PR
This commit is contained in:
@@ -20,8 +20,9 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
class CrateInfo : ITraitInfo, IOccupySpaceInfo, Requires<RenderSpritesInfo>
|
class CrateInfo : ITraitInfo, IOccupySpaceInfo, Requires<RenderSpritesInfo>
|
||||||
{
|
{
|
||||||
[Desc("Seconds")]
|
[Desc("Length of time (in seconds) until the crate gets removed automatically. " +
|
||||||
public readonly int Lifetime = 5;
|
"A value of zero disables auto-removal.")]
|
||||||
|
public readonly int Lifetime = 0;
|
||||||
|
|
||||||
[Desc("Allowed to land on.")]
|
[Desc("Allowed to land on.")]
|
||||||
public readonly string[] TerrainTypes = { };
|
public readonly string[] TerrainTypes = { };
|
||||||
@@ -57,24 +58,27 @@ namespace OpenRA.Mods.RA
|
|||||||
if (collected)
|
if (collected)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var shares = self.TraitsImplementing<CrateAction>()
|
var crateActions = self.TraitsImplementing<CrateAction>();
|
||||||
.Select(a => Pair.New(a, a.GetSelectionSharesOuter(crusher)));
|
|
||||||
|
|
||||||
var totalShares = shares.Sum(a => a.Second);
|
|
||||||
var n = self.World.SharedRandom.Next(totalShares);
|
|
||||||
|
|
||||||
self.Destroy();
|
self.Destroy();
|
||||||
collected = true;
|
collected = true;
|
||||||
|
|
||||||
foreach (var s in shares)
|
if (crateActions.Any())
|
||||||
{
|
{
|
||||||
if (n < s.Second)
|
var shares = crateActions.Select(a => Pair.New(a, a.GetSelectionSharesOuter(crusher)));
|
||||||
|
|
||||||
|
var totalShares = shares.Sum(a => a.Second);
|
||||||
|
var n = self.World.SharedRandom.Next(totalShares);
|
||||||
|
|
||||||
|
foreach (var s in shares)
|
||||||
{
|
{
|
||||||
s.First.Activate(crusher);
|
if (n < s.Second)
|
||||||
return;
|
{
|
||||||
|
s.First.Activate(crusher);
|
||||||
|
return;
|
||||||
|
} else
|
||||||
|
n -= s.Second;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
n -= s.Second;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,7 +111,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public void Tick(Actor self)
|
public void Tick(Actor self)
|
||||||
{
|
{
|
||||||
if (++ticks >= info.Lifetime * 25)
|
if (info.Lifetime != 0 && ++ticks >= info.Lifetime * 25)
|
||||||
self.Destroy();
|
self.Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -202,7 +202,8 @@ namespace OpenRA.Mods.RA.Scripting
|
|||||||
"The function will return true if production could be started, false otherwise. " +
|
"The function will return true if production could be started, false otherwise. " +
|
||||||
"If an actionFunc is given, it will be called as actionFunc(Actor[] actors) once " +
|
"If an actionFunc is given, it will be called as actionFunc(Actor[] actors) once " +
|
||||||
"production of all actors has been completed. The actors array is guaranteed to " +
|
"production of all actors has been completed. The actors array is guaranteed to " +
|
||||||
"only contain alive actors.")]
|
"only contain alive actors. Note: This function will fail to work when called " +
|
||||||
|
"during the first tick")]
|
||||||
public bool Build(string[] actorTypes, LuaFunction actionFunc = null)
|
public bool Build(string[] actorTypes, LuaFunction actionFunc = null)
|
||||||
{
|
{
|
||||||
var typeToQueueMap = new Dictionary<string, string>();
|
var typeToQueueMap = new Dictionary<string, string>();
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Type: Campaign
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
Crates: False
|
Crates: False
|
||||||
Fog: False
|
Fog: True
|
||||||
Shroud: True
|
Shroud: True
|
||||||
AllyBuildRadius: False
|
AllyBuildRadius: False
|
||||||
FragileAlliances: False
|
FragileAlliances: False
|
||||||
@@ -483,6 +483,8 @@ Rules:
|
|||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Infantry:
|
^Infantry:
|
||||||
|
SpawnViceroid:
|
||||||
|
Probability: 0
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Type: Campaign
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
Crates: False
|
Crates: False
|
||||||
Fog: False
|
Fog: True
|
||||||
Shroud: True
|
Shroud: True
|
||||||
AllyBuildRadius: False
|
AllyBuildRadius: False
|
||||||
FragileAlliances: False
|
FragileAlliances: False
|
||||||
@@ -765,6 +765,8 @@ Rules:
|
|||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Infantry:
|
^Infantry:
|
||||||
|
SpawnViceroid:
|
||||||
|
Probability: 0
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
|
|||||||
@@ -133,9 +133,14 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
gdiObjective = gdi.AddPrimaryObjective("Retrieve the crate with the stolen rods.")
|
|
||||||
reinforcementsObjective = gdi.AddSecondaryObjective("Eliminate " .. KillsUntilReinforcements .. " Nod units for reinforcements.")
|
Media.PlayMovieFullscreen("bkground.vqa", function()
|
||||||
nod.AddPrimaryObjective("Defend against the GDI forces.")
|
Media.PlayMovieFullscreen("nitejump.vqa", function()
|
||||||
|
gdiObjective = gdi.AddPrimaryObjective("Retrieve the crate with the stolen rods.")
|
||||||
|
reinforcementsObjective = gdi.AddSecondaryObjective("Eliminate " .. KillsUntilReinforcements .. " Nod units for reinforcements.")
|
||||||
|
nod.AddPrimaryObjective("Defend against the GDI forces.")
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
BuildNod1()
|
BuildNod1()
|
||||||
Utils.Do(NodHelis, function(heli)
|
Utils.Do(NodHelis, function(heli)
|
||||||
@@ -161,6 +166,4 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Camera.Position = Actor56.CenterPosition
|
Camera.Position = Actor56.CenterPosition
|
||||||
|
|
||||||
Media.PlayMovieFullscreen("bkground.vqa", function() Media.PlayMovieFullscreen("nitejump.vqa") end)
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Type: Campaign
|
|||||||
Options:
|
Options:
|
||||||
Cheats: False
|
Cheats: False
|
||||||
Crates: False
|
Crates: False
|
||||||
Fog: False
|
Fog: True
|
||||||
Shroud: True
|
Shroud: True
|
||||||
AllyBuildRadius: False
|
AllyBuildRadius: False
|
||||||
FragileAlliances: False
|
FragileAlliances: False
|
||||||
@@ -545,7 +545,7 @@ Actors:
|
|||||||
GDIHeliLZ: waypoint
|
GDIHeliLZ: waypoint
|
||||||
Location: 27,58
|
Location: 27,58
|
||||||
Owner: Neutral
|
Owner: Neutral
|
||||||
crate: CRATE
|
crate: CRATE.plain
|
||||||
Location: 25,58
|
Location: 25,58
|
||||||
Owner: Neutral
|
Owner: Neutral
|
||||||
|
|
||||||
@@ -575,11 +575,12 @@ Rules:
|
|||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Helicopter:
|
^Helicopter:
|
||||||
MustBeDestroyed:
|
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Infantry:
|
^Infantry:
|
||||||
|
SpawnViceroid:
|
||||||
|
Probability: 0
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
@@ -604,17 +605,6 @@ Rules:
|
|||||||
GenericVisibility: Enemy, Ally, Neutral
|
GenericVisibility: Enemy, Ally, Neutral
|
||||||
GenericStancePrefix: false
|
GenericStancePrefix: false
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
CRATE:
|
|
||||||
Crate:
|
|
||||||
Lifetime: 9999
|
|
||||||
HealUnitsCrateAction:
|
|
||||||
-RevealMapCrateAction:
|
|
||||||
-GiveMcvCrateAction:
|
|
||||||
-GiveCashCrateAction:
|
|
||||||
-ExplodeCrateAction@fire:
|
|
||||||
-GrantUpgradeCrateAction@cloak:
|
|
||||||
-DuplicateUnitCrateAction:
|
|
||||||
ScriptTriggers:
|
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
|
|
||||||
|
|||||||
@@ -138,9 +138,13 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
gdiObjective = gdi.AddPrimaryObjective("Retrieve the crate with the stolen rods.")
|
Media.PlayMovieFullscreen("bkground.vqa", function()
|
||||||
reinforcementsObjective = gdi.AddSecondaryObjective("Eliminate " .. KillsUntilReinforcements .. " Nod units for reinforcements.")
|
Media.PlayMovieFullscreen("nitejump.vqa", function()
|
||||||
nod.AddPrimaryObjective("Defend against the GDI forces.")
|
gdiObjective = gdi.AddPrimaryObjective("Retrieve the crate with the stolen rods.")
|
||||||
|
reinforcementsObjective = gdi.AddSecondaryObjective("Eliminate " .. KillsUntilReinforcements .. " Nod units for reinforcements.")
|
||||||
|
nod.AddPrimaryObjective("Defend against the GDI forces.")
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
SetupWorld()
|
SetupWorld()
|
||||||
|
|
||||||
@@ -193,6 +197,4 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Camera.Position = GDIReinforcementsWP1.CenterPosition
|
Camera.Position = GDIReinforcementsWP1.CenterPosition
|
||||||
|
|
||||||
Media.PlayMovieFullscreen("bkground.vqa", function() Media.PlayMovieFullscreen("nitejump.vqa") end)
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Type: Campaign
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
Crates: False
|
Crates: False
|
||||||
Fog: False
|
Fog: True
|
||||||
Shroud: True
|
Shroud: True
|
||||||
AllyBuildRadius: False
|
AllyBuildRadius: False
|
||||||
FragileAlliances: False
|
FragileAlliances: False
|
||||||
@@ -594,7 +594,7 @@ Actors:
|
|||||||
GDIReinforcementsWP1: waypoint
|
GDIReinforcementsWP1: waypoint
|
||||||
Location: 50,45
|
Location: 50,45
|
||||||
Owner: Neutral
|
Owner: Neutral
|
||||||
crate: CRATE
|
crate: CRATE.plain
|
||||||
Location: 14,13
|
Location: 14,13
|
||||||
Owner: Neutral
|
Owner: Neutral
|
||||||
HeliEntry: waypoint
|
HeliEntry: waypoint
|
||||||
@@ -630,11 +630,12 @@ Rules:
|
|||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Helicopter:
|
^Helicopter:
|
||||||
MustBeDestroyed:
|
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Infantry:
|
^Infantry:
|
||||||
|
SpawnViceroid:
|
||||||
|
Probability: 0
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
@@ -662,17 +663,6 @@ Rules:
|
|||||||
E3:
|
E3:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
ScanRadius: 5
|
ScanRadius: 5
|
||||||
CRATE:
|
|
||||||
Crate:
|
|
||||||
Lifetime: 9999
|
|
||||||
HealUnitsCrateAction:
|
|
||||||
-RevealMapCrateAction:
|
|
||||||
-GiveMcvCrateAction:
|
|
||||||
-GiveCashCrateAction:
|
|
||||||
-ExplodeCrateAction@fire:
|
|
||||||
-GrantUpgradeCrateAction@cloak:
|
|
||||||
-DuplicateUnitCrateAction:
|
|
||||||
ScriptTriggers:
|
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
|
|
||||||
|
|||||||
@@ -93,9 +93,13 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
nodObjective = nod.AddPrimaryObjective("Destroy all GDI troops")
|
Media.PlayMovieFullscreen("bkground.vqa", function()
|
||||||
gdiObjective1 = player.AddPrimaryObjective("Defend the town of Bialystok")
|
Media.PlayMovieFullscreen("nodsweep.vqa", function()
|
||||||
gdiObjective2 = player.AddPrimaryObjective("Eliminate all Nod forces in the area")
|
nodObjective = nod.AddPrimaryObjective("Destroy all GDI troops")
|
||||||
|
gdiObjective1 = player.AddPrimaryObjective("Defend the town of Bialystok")
|
||||||
|
gdiObjective2 = player.AddPrimaryObjective("Eliminate all Nod forces in the area")
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
townAttackTrigger = false
|
townAttackTrigger = false
|
||||||
Trigger.OnExitedFootprint(TownAttackTrigger, function(a, id)
|
Trigger.OnExitedFootprint(TownAttackTrigger, function(a, id)
|
||||||
@@ -125,8 +129,6 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Camera.Position = Actor141.CenterPosition
|
Camera.Position = Actor141.CenterPosition
|
||||||
|
|
||||||
Media.PlayMovieFullscreen("bkground.vqa", function() Media.PlayMovieFullscreen("nodsweep.vqa") end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
Tick = function()
|
Tick = function()
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Type: Campaign
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
Crates: False
|
Crates: False
|
||||||
Fog: False
|
Fog: True
|
||||||
Shroud: True
|
Shroud: True
|
||||||
AllyBuildRadius: False
|
AllyBuildRadius: False
|
||||||
FragileAlliances: False
|
FragileAlliances: False
|
||||||
@@ -899,6 +899,8 @@ Rules:
|
|||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Infantry:
|
^Infantry:
|
||||||
|
SpawnViceroid:
|
||||||
|
Probability: 0
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Type: Campaign
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
Crates: False
|
Crates: False
|
||||||
Fog: False
|
Fog: True
|
||||||
Shroud: True
|
Shroud: True
|
||||||
AllyBuildRadius: False
|
AllyBuildRadius: False
|
||||||
FragileAlliances: False
|
FragileAlliances: False
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Type: Campaign
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
Crates: False
|
Crates: False
|
||||||
Fog: False
|
Fog: True
|
||||||
Shroud: True
|
Shroud: True
|
||||||
AllyBuildRadius: False
|
AllyBuildRadius: False
|
||||||
FragileAlliances: False
|
FragileAlliances: False
|
||||||
@@ -555,6 +555,8 @@ Rules:
|
|||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Infantry:
|
^Infantry:
|
||||||
|
SpawnViceroid:
|
||||||
|
Probability: 0
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
|
|||||||
@@ -43,9 +43,11 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
gdiObjective = enemy.AddPrimaryObjective("Eliminate all Nod forces in the area")
|
Media.PlayMovieFullscreen("dessweep.vqa", function()
|
||||||
nodObjective1 = player.AddPrimaryObjective("Capture the prison")
|
gdiObjective = enemy.AddPrimaryObjective("Eliminate all Nod forces in the area")
|
||||||
nodObjective2 = player.AddSecondaryObjective("Destroy all GDI forces")
|
nodObjective1 = player.AddPrimaryObjective("Capture the prison")
|
||||||
|
nodObjective2 = player.AddSecondaryObjective("Destroy all GDI forces")
|
||||||
|
end)
|
||||||
|
|
||||||
Trigger.OnCapture(TechCenter, function()
|
Trigger.OnCapture(TechCenter, function()
|
||||||
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
Trigger.AfterDelay(DateTime.Seconds(2), function()
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Type: Campaign
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
Crates: False
|
Crates: False
|
||||||
Fog: False
|
Fog: True
|
||||||
Shroud: True
|
Shroud: True
|
||||||
AllyBuildRadius: False
|
AllyBuildRadius: False
|
||||||
FragileAlliances: False
|
FragileAlliances: False
|
||||||
@@ -595,6 +595,8 @@ Rules:
|
|||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
ShowOwnerRow: false
|
ShowOwnerRow: false
|
||||||
^Helicopter:
|
^Helicopter:
|
||||||
|
SpawnViceroid:
|
||||||
|
Probability: 0
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericVisibility: Enemy
|
GenericVisibility: Enemy
|
||||||
|
|||||||
@@ -59,9 +59,11 @@ WorldLoaded = function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
gdiObjective = enemy.AddPrimaryObjective("Eliminate all Nod forces in the area")
|
Media.PlayMovieFullscreen("dessweep.vqa", function()
|
||||||
nodObjective1 = player.AddPrimaryObjective("Capture the prison")
|
gdiObjective = enemy.AddPrimaryObjective("Eliminate all Nod forces in the area")
|
||||||
nodObjective2 = player.AddSecondaryObjective("Destroy all GDI forces")
|
nodObjective1 = player.AddPrimaryObjective("Capture the prison")
|
||||||
|
nodObjective2 = player.AddSecondaryObjective("Destroy all GDI forces")
|
||||||
|
end)
|
||||||
|
|
||||||
Trigger.OnKilled(TechCenter, function() player.MarkFailedObjective(nodObjective1) end)
|
Trigger.OnKilled(TechCenter, function() player.MarkFailedObjective(nodObjective1) end)
|
||||||
Trigger.OnCapture(TechCenter, function()
|
Trigger.OnCapture(TechCenter, function()
|
||||||
@@ -74,7 +76,6 @@ WorldLoaded = function()
|
|||||||
Trigger.AfterDelay(DateTime.Seconds(40), function() SendAttackWave(FirstAttackWaveUnits, FirstAttackWave) end)
|
Trigger.AfterDelay(DateTime.Seconds(40), function() SendAttackWave(FirstAttackWaveUnits, FirstAttackWave) end)
|
||||||
Trigger.AfterDelay(DateTime.Seconds(80), function() SendAttackWave(SecondAttackWaveUnits, SecondAttackWave) end)
|
Trigger.AfterDelay(DateTime.Seconds(80), function() SendAttackWave(SecondAttackWaveUnits, SecondAttackWave) end)
|
||||||
Trigger.AfterDelay(DateTime.Seconds(140), function() SendAttackWave(ThirdAttackWaveUnits, FirstAttackWave) end)
|
Trigger.AfterDelay(DateTime.Seconds(140), function() SendAttackWave(ThirdAttackWaveUnits, FirstAttackWave) end)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
Tick = function()
|
Tick = function()
|
||||||
|
|||||||
@@ -646,4 +646,18 @@
|
|||||||
DestroyedSound: xplobig4.aud
|
DestroyedSound: xplobig4.aud
|
||||||
BodyOrientation:
|
BodyOrientation:
|
||||||
ScriptTriggers:
|
ScriptTriggers:
|
||||||
|
^Crate:
|
||||||
|
Tooltip:
|
||||||
|
Name: Crate
|
||||||
|
GenericName: Crate
|
||||||
|
Crate:
|
||||||
|
TerrainTypes: Clear, Rough, Road, Tiberium, BlueTiberium, Beach
|
||||||
|
RenderSprites:
|
||||||
|
Palette: effect
|
||||||
|
WithCrateBody:
|
||||||
|
XmasImages: xcratea, xcrateb, xcratec, xcrated
|
||||||
|
Selectable:
|
||||||
|
Selectable: false
|
||||||
|
Bounds: 15,15,-1,-1
|
||||||
|
BodyOrientation:
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
CRATE.plain:
|
||||||
|
Inherits: ^Crate
|
||||||
|
ScriptTriggers:
|
||||||
|
|
||||||
CRATE:
|
CRATE:
|
||||||
Tooltip:
|
Inherits: ^Crate
|
||||||
Name: Crate
|
|
||||||
Crate:
|
Crate:
|
||||||
Lifetime: 240
|
Lifetime: 240
|
||||||
TerrainTypes: Clear, Rough, Road, Tiberium, BlueTiberium, Beach
|
|
||||||
GiveCashCrateAction:
|
GiveCashCrateAction:
|
||||||
Amount: 1000
|
Amount: 1000
|
||||||
SelectionShares: 20
|
SelectionShares: 20
|
||||||
@@ -27,14 +29,6 @@ CRATE:
|
|||||||
SelectionShares: 0
|
SelectionShares: 0
|
||||||
NoBaseSelectionShares: 120
|
NoBaseSelectionShares: 120
|
||||||
Units: mcv
|
Units: mcv
|
||||||
RenderSprites:
|
|
||||||
Palette: effect
|
|
||||||
WithCrateBody:
|
|
||||||
XmasImages: xcratea, xcrateb, xcratec, xcrated
|
|
||||||
Selectable:
|
|
||||||
Selectable: false
|
|
||||||
Bounds: 15,15,-1,-1
|
|
||||||
BodyOrientation:
|
|
||||||
|
|
||||||
mpspawn:
|
mpspawn:
|
||||||
Immobile:
|
Immobile:
|
||||||
|
|||||||
@@ -175,11 +175,15 @@ WorldLoaded = function()
|
|||||||
Trigger.OnPlayerLost(player, MissionFailed)
|
Trigger.OnPlayerLost(player, MissionFailed)
|
||||||
Trigger.OnPlayerWon(player, MissionAccomplished)
|
Trigger.OnPlayerWon(player, MissionAccomplished)
|
||||||
|
|
||||||
FindEinsteinObjective = player.AddPrimaryObjective("Find Einstein.")
|
Media.PlayMovieFullscreen("landing.vqa", function()
|
||||||
SurviveObjective = player.AddPrimaryObjective("Tanya and Einstein must survive.")
|
FindEinsteinObjective = player.AddPrimaryObjective("Find Einstein.")
|
||||||
england.AddPrimaryObjective("Destroy the soviet base after a successful rescue.")
|
SurviveObjective = player.AddPrimaryObjective("Tanya and Einstein must survive.")
|
||||||
CivilProtectionObjective = player.AddSecondaryObjective("Protect all civilians.")
|
england.AddPrimaryObjective("Destroy the soviet base after a successful rescue.")
|
||||||
DefendObjective = ussr.AddPrimaryObjective("Kill Tanya and keep Einstein hostage.")
|
CivilProtectionObjective = player.AddSecondaryObjective("Protect all civilians.")
|
||||||
|
DefendObjective = ussr.AddPrimaryObjective("Kill Tanya and keep Einstein hostage.")
|
||||||
|
|
||||||
|
RunInitialActivities()
|
||||||
|
end)
|
||||||
|
|
||||||
Trigger.OnKilled(Lab, LabDestroyed)
|
Trigger.OnKilled(Lab, LabDestroyed)
|
||||||
Trigger.OnKilled(OilPump, OilPumpDestroyed)
|
Trigger.OnKilled(OilPump, OilPumpDestroyed)
|
||||||
@@ -193,13 +197,9 @@ WorldLoaded = function()
|
|||||||
civilianTeam = { Civilian1, Civilian2 }
|
civilianTeam = { Civilian1, Civilian2 }
|
||||||
Trigger.OnAnyKilled(civilianTeam, CiviliansKilled)
|
Trigger.OnAnyKilled(civilianTeam, CiviliansKilled)
|
||||||
|
|
||||||
RunInitialActivities()
|
|
||||||
|
|
||||||
SetUnitStances()
|
SetUnitStances()
|
||||||
|
|
||||||
Trigger.AfterDelay(DateTime.Seconds(5), function() Actor.Create("camera", true, { Owner = player, Location = BaseCameraPoint.Location }) end)
|
Trigger.AfterDelay(DateTime.Seconds(5), function() Actor.Create("camera", true, { Owner = player, Location = BaseCameraPoint.Location }) end)
|
||||||
|
|
||||||
Camera.Position = InsertionLZ.CenterPosition
|
Camera.Position = InsertionLZ.CenterPosition
|
||||||
|
|
||||||
Media.PlayMovieFullscreen("landing.vqa")
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -109,9 +109,11 @@ WorldLoaded = function()
|
|||||||
Trigger.OnPlayerLost(player, MissionFailed)
|
Trigger.OnPlayerLost(player, MissionFailed)
|
||||||
Trigger.OnPlayerWon(player, MissionAccomplished)
|
Trigger.OnPlayerWon(player, MissionAccomplished)
|
||||||
|
|
||||||
ConquestObjective = player.AddPrimaryObjective("Secure the area.")
|
Media.PlayMovieFullscreen("mcv.vqa", function()
|
||||||
ussr.AddPrimaryObjective("Defend your base.")
|
ConquestObjective = player.AddPrimaryObjective("Secure the area.")
|
||||||
ukraine.AddPrimaryObjective("Destroy the convoy.")
|
ussr.AddPrimaryObjective("Defend your base.")
|
||||||
|
ukraine.AddPrimaryObjective("Destroy the convoy.")
|
||||||
|
end)
|
||||||
|
|
||||||
RunInitialActivities()
|
RunInitialActivities()
|
||||||
|
|
||||||
@@ -123,8 +125,6 @@ WorldLoaded = function()
|
|||||||
|
|
||||||
Camera.Position = ReinforcementsEntryPoint.CenterPosition
|
Camera.Position = ReinforcementsEntryPoint.CenterPosition
|
||||||
|
|
||||||
Media.PlayMovieFullscreen("mcv.vqa")
|
|
||||||
|
|
||||||
ConvoyTimer(DateTime.Seconds(3), "TenMinutesRemaining")
|
ConvoyTimer(DateTime.Seconds(3), "TenMinutesRemaining")
|
||||||
ConvoyTimer(DateTime.Minutes(5), "WarningFiveMinutesRemaining")
|
ConvoyTimer(DateTime.Minutes(5), "WarningFiveMinutesRemaining")
|
||||||
ConvoyTimer(DateTime.Minutes(6), "WarningFourMinutesRemaining")
|
ConvoyTimer(DateTime.Minutes(6), "WarningFourMinutesRemaining")
|
||||||
|
|||||||
@@ -100,8 +100,6 @@ InitPlayers = function()
|
|||||||
ussr = Player.GetPlayer("USSR")
|
ussr = Player.GetPlayer("USSR")
|
||||||
|
|
||||||
ussr.Cash = 10000
|
ussr.Cash = 10000
|
||||||
|
|
||||||
Media.PlayMovieFullscreen("brdgtilt.vqa")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
InitObjectives = function()
|
InitObjectives = function()
|
||||||
@@ -263,8 +261,10 @@ end
|
|||||||
WorldLoaded = function()
|
WorldLoaded = function()
|
||||||
|
|
||||||
InitPlayers()
|
InitPlayers()
|
||||||
InitObjectives()
|
|
||||||
InitTriggers()
|
|
||||||
|
|
||||||
SendAlliedUnits()
|
Media.PlayMovieFullscreen("brdgtilt.vqa", function()
|
||||||
|
InitObjectives()
|
||||||
|
InitTriggers()
|
||||||
|
SendAlliedUnits()
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user