Added CnC: gdi05b

This commit is contained in:
Moshe Schmidt
2015-04-13 22:31:51 +02:00
parent 70c9bca847
commit 7d6f367d84
8 changed files with 1004 additions and 0 deletions

View File

@@ -59,6 +59,12 @@ namespace OpenRA.Mods.Common.Scripting
return true; return true;
} }
[Desc("Returns the first n values from a collection.")]
public LuaValue[] Take(int n, LuaValue[] source)
{
return source.Take(n).ToArray();
}
[Desc("Skips over the first numElements members of a table and return the rest.")] [Desc("Skips over the first numElements members of a table and return the rest.")]
public LuaTable Skip(LuaTable table, int numElements) public LuaTable Skip(LuaTable table, int numElements)
{ {

View File

@@ -9,6 +9,7 @@
#endregion #endregion
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using Eluant; using Eluant;
using OpenRA.Mods.Common.Traits; using OpenRA.Mods.Common.Traits;
@@ -32,5 +33,20 @@ namespace OpenRA.Mods.Common.Scripting
.Where(a => a.Owner == Player && !a.IsDead && a.IsInWorld && a.HasTrait<Mobile>()) .Where(a => a.Owner == Player && !a.IsDead && a.IsInWorld && a.HasTrait<Mobile>())
.ToArray(); .ToArray();
} }
[Desc("Returns all living actors of the specified type of this player")]
public Actor[] GetActorsByType(string type)
{
var result = new List<Actor>();
ActorInfo ai;
if (!Context.World.Map.Rules.Actors.TryGetValue(type, out ai))
throw new LuaException("Unknown actor type '{0}'".F(type));
result.AddRange(Player.World.ActorMap.ActorsInWorld()
.Where(actor => actor.Owner == Player && !actor.IsDead && actor.IsInWorld && actor.Info.Name == ai.Name));
return result.ToArray();
}
} }
} }

View File

@@ -30,6 +30,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts",
mods\cnc\maps\gdi04b\gdi04b.lua = mods\cnc\maps\gdi04b\gdi04b.lua mods\cnc\maps\gdi04b\gdi04b.lua = mods\cnc\maps\gdi04b\gdi04b.lua
mods\cnc\maps\gdi04c\gdi04c.lua = mods\cnc\maps\gdi04c\gdi04c.lua mods\cnc\maps\gdi04c\gdi04c.lua = mods\cnc\maps\gdi04c\gdi04c.lua
mods\cnc\maps\gdi05a\gdi05a.lua = mods\cnc\maps\gdi05a\gdi05a.lua mods\cnc\maps\gdi05a\gdi05a.lua = mods\cnc\maps\gdi05a\gdi05a.lua
mods\cnc\maps\gdi05b\gdi05b.lua = mods\cnc\maps\gdi05b\gdi05b.lua
mods\cnc\maps\nod01\nod01.lua = mods\cnc\maps\nod01\nod01.lua mods\cnc\maps\nod01\nod01.lua = mods\cnc\maps\nod01\nod01.lua
mods\cnc\maps\nod02a\nod02a.lua = mods\cnc\maps\nod02a\nod02a.lua mods\cnc\maps\nod02a\nod02a.lua = mods\cnc\maps\nod02a\nod02a.lua
mods\cnc\maps\nod02b\nod02b.lua = mods\cnc\maps\nod02b\nod02b.lua mods\cnc\maps\nod02b\nod02b.lua = mods\cnc\maps\nod02b\nod02b.lua

View File

@@ -0,0 +1,194 @@
AllToHuntTrigger =
{
Silo1, Proc1, Silo2, Silo3, Silo4, Afld1, Hand1, Nuke1, Nuke2, Nuke3, Fact1
}
AtkRoute1 = { waypoint4.Location, waypoint5.Location, waypoint6.Location, waypoint7.Location, waypoint8.Location }
AtkRoute2 = { waypoint0.Location, waypoint1.Location, waypoint2.Location, waypoint3.Location }
AutoCreateTeams =
{
{ { ['e1'] = 1, ['e3'] = 3 }, AtkRoute2 },
{ { ['e1'] = 3, ['e3'] = 1 }, AtkRoute2 },
{ { ['e3'] = 4 } , AtkRoute1 },
{ { ['e1'] = 4 } , AtkRoute1 },
{ { ['bggy'] = 1 } , AtkRoute1 },
{ { ['bggy'] = 1 } , AtkRoute2 },
{ { ['ltnk'] = 1 } , AtkRoute1 },
{ { ['ltnk'] = 1 } , AtkRoute2 }
}
RepairThreshold = 0.6
Atk1Delay = DateTime.Seconds(40)
Atk2Delay = DateTime.Seconds(60)
Atk3Delay = DateTime.Seconds(70)
Atk4Delay = DateTime.Seconds(90)
AutoAtkStartDelay = DateTime.Seconds(115)
AutoAtkMinDelay = DateTime.Seconds(45)
AutoAtkMaxDelay = DateTime.Seconds(90)
Atk5CellTriggers =
{
CPos.New(17,55), CPos.New(16,55), CPos.New(15,55), CPos.New(50,54), CPos.New(49,54),
CPos.New(48,54), CPos.New(16,54), CPos.New(15,54), CPos.New(14,54), CPos.New(50,53),
CPos.New(49,53), CPos.New(48,53), CPos.New(50,52), CPos.New(49,52)
}
GdiBase = { GdiNuke1, GdiProc1, GdiWeap1, GdiNuke2, GdiPyle1, GdiSilo1, GdiSilo2, GdiHarv }
GdiUnits = { "e2", "e2", "e2", "e2", "e1", "e1", "e1", "e1", "mtnk", "mtnk", "jeep", "jeep", "apc" }
NodSams = { Sam1, Sam2, Sam3, Sam4 }
AllToHunt = function()
local list = nod.GetGroundAttackers()
Utils.Do(list, function(unit)
unit.Hunt()
end)
end
MoveThenHunt = function(actors, path)
Utils.Do(actors, function(actor)
actor.Patrol(path, false)
IdleHunt(actor)
end)
end
AutoCreateTeam = function()
local team = Utils.Random(AutoCreateTeams)
for type, count in pairs(team[1]) do
MoveThenHunt(Utils.Take(count, nod.GetActorsByType(type)), team[2])
end
Trigger.AfterDelay(Utils.RandomInteger(AutoAtkMinDelay, AutoAtkMaxDelay), AutoCreateTeam)
end
DiscoverGdiBase = function(actor, discoverer)
if baseDiscovered or not discoverer == gdi then
return
end
Utils.Do(GdiBase, function(actor)
actor.Owner = gdi
end)
GdiHarv.FindResources()
baseDiscovered = true
gdiObjective3 = gdi.AddPrimaryObjective("Eliminate all Nod forces in the area")
gdi.MarkCompletedObjective(gdiObjective1)
end
Atk1TriggerFunction = function()
MoveThenHunt(Utils.Take(2, nod.GetActorsByType('e1')), AtkRoute1)
MoveThenHunt(Utils.Take(3, nod.GetActorsByType('e3')), AtkRoute1)
end
Atk2TriggerFunction = function()
MoveThenHunt(Utils.Take(3, nod.GetActorsByType('e1')), AtkRoute2)
MoveThenHunt(Utils.Take(3, nod.GetActorsByType('e3')), AtkRoute2)
end
Atk3TriggerFunction = function()
MoveThenHunt(Utils.Take(1, nod.GetActorsByType('bggy')), AtkRoute1)
end
Atk4TriggerFunction = function()
MoveThenHunt(Utils.Take(1, nod.GetActorsByType('bggy')), AtkRoute2)
end
Atk5TriggerFunction = function()
MoveThenHunt(Utils.Take(1, nod.GetActorsByType('ltnk')), AtkRoute2)
end
StartProduction = function(type)
if Hand1.IsInWorld then
Hand1.Build(type)
Trigger.AfterDelay(DateTime.Seconds(30), function() StartProduction(type) end)
end
end
InsertGdiUnits = function()
Reinforcements.Reinforce(gdi, GdiUnits, { UnitsEntry.Location, UnitsRally.Location }, 15)
end
IdleHunt = function(unit)
if not unit.IsDead then
Trigger.OnIdle(unit, unit.Hunt)
end
end
WorldLoaded = function()
gdi = Player.GetPlayer("GDI")
gdiBase = Player.GetPlayer("AbandonedBase")
nod = Player.GetPlayer("Nod")
Trigger.OnObjectiveAdded(gdi, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
end)
Trigger.OnObjectiveCompleted(gdi, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
end)
Trigger.OnObjectiveFailed(gdi, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
Trigger.OnPlayerWon(gdi, function()
Media.PlaySpeechNotification(nod, "Win")
end)
Trigger.OnPlayerLost(gdi, function()
Media.PlaySpeechNotification(nod, "Lose")
end)
Utils.Do(Map.NamedActors, function(actor)
if actor.Owner == nod and actor.HasProperty("StartBuildingRepairs") then
Trigger.OnDamaged(actor, function(building)
if building.Owner == nod and building.Health < RepairThreshold * building.MaxHealth then
building.StartBuildingRepairs()
end
end)
end
end)
gdiObjective1 = gdi.AddPrimaryObjective("Find the GDI base")
gdiObjective2 = gdi.AddSecondaryObjective("Destroy all SAM sites to receive air support")
nodObjective = nod.AddPrimaryObjective("Destroy all GDI troops")
Trigger.AfterDelay(Atk1Delay, Atk1TriggerFunction)
Trigger.AfterDelay(Atk2Delay, Atk2TriggerFunction)
Trigger.AfterDelay(Atk3Delay, Atk3TriggerFunction)
Trigger.AfterDelay(Atk4Delay, Atk4TriggerFunction)
Trigger.OnEnteredFootprint(Atk5CellTriggers, function(a, id)
if a.Owner == gdi then
Atk5TriggerFunction()
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.AfterDelay(AutoAtkStartDelay, AutoCreateTeam)
Trigger.OnAllRemovedFromWorld(AllToHuntTrigger, AllToHunt)
Trigger.AfterDelay(DateTime.Seconds(40), function() StartProduction({ "e1" }) end)
Trigger.OnPlayerDiscovered(gdiBase, DiscoverGdiBase)
Trigger.OnAllKilled(NodSams, function()
gdi.MarkCompletedObjective(gdiObjective2)
Actor.Create("airstrike.proxy", true, { Owner = gdi })
end)
Camera.Position = UnitsRally.CenterPosition
InsertGdiUnits()
end
Tick = function()
if gdi.HasNoRequiredUnits() then
if DateTime.GameTime > 2 then
nod.MarkCompletedObjective(nodObjective)
end
end
if baseDiscovered and nod.HasNoRequiredUnits() then
gdi.MarkCompletedObjective(gdiObjective3)
end
end

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -0,0 +1,786 @@
MapFormat: 7
RequiresMod: cnc
Title: Repair the GDI base (b)
Description: A GDI field base is under attack. They have fended off one attack but will not survive another.\n\nMove to the base, repair the structures and then launch a strike force to destroy the Nod base in the area.\n\nDestroy all Nod units and structures.
Author: Westwood Studios
Tileset: TEMPERAT
MapSize: 64,64
Bounds: 8,13,51,47
Visibility: MissionSelector
Type: Campaign
Videos:
BackgroundInfo: podium.vqa
Briefing: gdi5.vqa
GameStart: seige.vqa
GameWon: nodlose.vqa
GameLost: gdilose.vqa
Options:
Crates: False
Creeps: False
Fog: True
Shroud: True
AllyBuildRadius: False
FragileAlliances: False
StartingCash: 4000
ConfigurableStartingUnits: False
ShortGame: False
Players:
PlayerReference@Nod:
Name: Nod
Race: nod
ColorRamp: 3,255,127
Enemies: GDI, Neutral, AbandonedBase
PlayerReference@GDI:
Name: GDI
Playable: True
AllowBots: False
Required: True
LockRace: True
Race: gdi
LockColor: True
ColorRamp: 31,222,183
LockSpawn: True
LockTeam: True
Enemies: Nod
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Race: gdi
ColorRamp: 31,222,183
Enemies: Nod
PlayerReference@AbandonedBase:
Name: AbandonedBase
OwnsWorld: True
NonCombatant: True
Race: gdi
ColorRamp: 31,222,183
Enemies: Nod
Actors:
Actor0: sbag
Location: 38,59
Owner: Neutral
Actor1: sbag
Location: 37,59
Owner: Neutral
Actor2: sbag
Location: 36,59
Owner: Neutral
Actor3: sbag
Location: 35,59
Owner: Neutral
Actor4: sbag
Location: 34,59
Owner: Neutral
Actor5: sbag
Location: 33,59
Owner: Neutral
Actor6: sbag
Location: 32,59
Owner: Neutral
Actor7: sbag
Location: 31,59
Owner: Neutral
Actor8: sbag
Location: 30,59
Owner: Neutral
Actor9: sbag
Location: 29,59
Owner: Neutral
Actor10: sbag
Location: 28,59
Owner: Neutral
Actor11: sbag
Location: 27,59
Owner: Neutral
Actor12: sbag
Location: 26,59
Owner: Neutral
Actor13: sbag
Location: 25,59
Owner: Neutral
Actor14: sbag
Location: 25,58
Owner: Neutral
Actor15: sbag
Location: 25,57
Owner: Neutral
Actor16: sbag
Location: 24,57
Owner: Neutral
Actor17: sbag
Location: 38,54
Owner: Neutral
Actor18: sbag
Location: 25,54
Owner: Neutral
Actor19: sbag
Location: 24,54
Owner: Neutral
Actor20: sbag
Location: 38,53
Owner: Neutral
Actor21: sbag
Location: 25,53
Owner: Neutral
Actor22: sbag
Location: 25,51
Owner: Neutral
Actor23: sbag
Location: 38,50
Owner: Neutral
Actor24: sbag
Location: 37,50
Owner: Neutral
Actor25: sbag
Location: 36,50
Owner: Neutral
Actor26: sbag
Location: 35,50
Owner: Neutral
Actor27: sbag
Location: 34,50
Owner: Neutral
Actor28: sbag
Location: 33,50
Owner: Neutral
Actor29: sbag
Location: 32,50
Owner: Neutral
Actor30: sbag
Location: 31,50
Owner: Neutral
Actor31: sbag
Location: 30,50
Owner: Neutral
Actor32: sbag
Location: 29,50
Owner: Neutral
Actor33: sbag
Location: 27,50
Owner: Neutral
Actor34: sbag
Location: 26,50
Owner: Neutral
Actor35: sbag
Location: 25,50
Owner: Neutral
Actor36: sbag
Location: 54,26
Owner: Neutral
Actor37: sbag
Location: 53,26
Owner: Neutral
Actor38: sbag
Location: 52,26
Owner: Neutral
Actor39: sbag
Location: 51,26
Owner: Neutral
Actor40: sbag
Location: 50,26
Owner: Neutral
Actor41: sbag
Location: 45,26
Owner: Neutral
Actor42: sbag
Location: 44,26
Owner: Neutral
Actor43: sbag
Location: 43,26
Owner: Neutral
Actor44: sbag
Location: 42,26
Owner: Neutral
Actor45: sbag
Location: 41,26
Owner: Neutral
Actor46: sbag
Location: 40,26
Owner: Neutral
Actor47: sbag
Location: 39,26
Owner: Neutral
Actor48: sbag
Location: 38,26
Owner: Neutral
Actor49: sbag
Location: 37,26
Owner: Neutral
Actor50: sbag
Location: 54,25
Owner: Neutral
Actor51: sbag
Location: 51,25
Owner: Neutral
Actor52: sbag
Location: 50,25
Owner: Neutral
Actor53: sbag
Location: 45,25
Owner: Neutral
Actor54: sbag
Location: 44,25
Owner: Neutral
Actor55: sbag
Location: 37,25
Owner: Neutral
Actor56: sbag
Location: 37,24
Owner: Neutral
Actor57: sbag
Location: 37,23
Owner: Neutral
Actor58: t01
Location: 22,51
Owner: Neutral
Actor59: t01
Location: 24,50
Owner: Neutral
Actor60: t01
Location: 28,49
Owner: Neutral
Actor61: t05
Location: 30,15
Owner: Neutral
Actor62: t03
Location: 13,34
Owner: Neutral
Actor63: t03
Location: 26,42
Owner: Neutral
Actor64: tc04
Location: 26,37
Owner: Neutral
Actor65: tc02
Location: 22,50
Owner: Neutral
Actor66: t01
Location: 24,30
Owner: Neutral
Actor67: tc01
Location: 8,23
Owner: Neutral
Actor68: tc02
Location: 21,22
Owner: Neutral
Actor69: tc04
Location: 39,26
Owner: Neutral
Actor70: tc02
Location: 10,25
Owner: Neutral
Actor71: t07
Location: 46,42
Owner: Neutral
Actor72: t12
Location: 46,39
Owner: Neutral
Actor73: tc04
Location: 48,41
Owner: Neutral
Actor74: tc01
Location: 12,32
Owner: Neutral
Actor75: tc04
Location: 20,23
Owner: Neutral
Actor76: t01
Location: 20,40
Owner: Neutral
Actor77: t05
Location: 8,48
Owner: Neutral
Actor78: t06
Location: 18,45
Owner: Neutral
Actor79: tc01
Location: 8,58
Owner: Neutral
Actor80: tc04
Location: 20,52
Owner: Neutral
Actor81: tc04
Location: 17,32
Owner: Neutral
Actor82: t01
Location: 31,41
Owner: Neutral
Actor83: t01
Location: 31,44
Owner: Neutral
Actor84: t01
Location: 22,40
Owner: Neutral
Actor85: t02
Location: 27,42
Owner: Neutral
Actor86: t02
Location: 17,41
Owner: Neutral
Actor87: t05
Location: 19,42
Owner: Neutral
Actor88: tc01
Location: 27,15
Owner: Neutral
Actor89: tc04
Location: 17,17
Owner: Neutral
Actor90: t07
Location: 44,26
Owner: Neutral
Actor91: t07
Location: 23,29
Owner: Neutral
Actor92: t07
Location: 50,30
Owner: Neutral
Actor93: t16
Location: 38,47
Owner: Neutral
Actor94: tc02
Location: 38,48
Owner: Neutral
Actor95: tc02
Location: 44,43
Owner: Neutral
Actor96: tc01
Location: 14,22
Owner: Neutral
Actor97: tc04
Location: 16,21
Owner: Neutral
Actor98: t01
Location: 22,35
Owner: Neutral
Actor99: t06
Location: 34,44
Owner: Neutral
Actor100: tc01
Location: 55,25
Owner: Neutral
Actor101: tc02
Location: 40,30
Owner: Neutral
Actor102: t03
Location: 36,24
Owner: Neutral
Actor121: gun
Location: 50,27
Owner: Nod
Facing: 128
Actor122: gun
Location: 45,27
Owner: Nod
Facing: 128
Actor127: gun
Location: 36,24
Owner: Nod
Facing: 192
Actor128: bggy
Location: 39,19
Owner: Nod
Facing: 128
Actor129: bggy
Location: 38,23
Owner: Nod
Facing: 192
Actor130: ltnk
Location: 38,24
Owner: Nod
Facing: 192
Actor131: ltnk
Location: 45,21
Owner: Nod
Facing: 128
Actor132: ltnk
Location: 44,21
Owner: Nod
Facing: 128
Actor133: bggy
Location: 23,32
Owner: Nod
Facing: 224
Actor134: ltnk
Location: 13,32
Owner: Nod
Facing: 224
Actor135: ltnk
Location: 48,41
Owner: Nod
Facing: 96
Actor142: bggy
Location: 53,27
Owner: Nod
Facing: 160
Actor143: bggy
Location: 42,27
Owner: Nod
Facing: 96
Actor144: e3
Location: 23,29
Owner: Nod
Facing: 96
SubCell: 4
Actor145: e3
Location: 40,30
Owner: Nod
SubCell: 0
Actor146: e3
Location: 35,31
Owner: Nod
SubCell: 2
Actor147: e3
Location: 43,27
Owner: Nod
Facing: 128
SubCell: 0
Actor148: e3
Location: 11,39
Owner: Nod
SubCell: 1
Actor149: e1
Location: 18,25
Owner: Nod
SubCell: 1
Actor150: e1
Location: 18,40
Owner: Nod
Facing: 96
SubCell: 4
Actor151: e3
Location: 12,38
Owner: Nod
Facing: 224
SubCell: 4
Actor152: e3
Location: 12,40
Owner: Nod
Facing: 224
SubCell: 1
Actor153: e3
Location: 44,43
Owner: Nod
Facing: 64
SubCell: 1
Actor154: e1
Location: 17,27
Owner: Nod
Facing: 160
SubCell: 1
Actor163: e1
Location: 17,25
Owner: Nod
Facing: 128
SubCell: 3
Actor164: e3
Location: 21,22
Owner: Nod
Facing: 96
SubCell: 2
Actor165: e3
Location: 18,41
Owner: Nod
SubCell: 3
Actor166: e3
Location: 17,41
Owner: Nod
Facing: 160
SubCell: 4
waypoint27: waypoint
Location: 32,41
Owner: Neutral
waypoint26: waypoint
Location: 8,13
Owner: Neutral
waypoint11: waypoint
Location: 34,20
Owner: Neutral
waypoint10: waypoint
Location: 34,29
Owner: Neutral
waypoint9: waypoint
Location: 56,29
Owner: Neutral
waypoint8: waypoint
Location: 20,57
Owner: Neutral
waypoint7: waypoint
Location: 11,51
Owner: Neutral
waypoint6: waypoint
Location: 12,30
Owner: Neutral
waypoint5: waypoint
Location: 12,21
Owner: Neutral
waypoint4: waypoint
Location: 35,22
Owner: Neutral
waypoint3: waypoint
Location: 42,54
Owner: Neutral
waypoint2: waypoint
Location: 53,53
Owner: Neutral
waypoint1: waypoint
Location: 53,42
Owner: Neutral
waypoint0: waypoint
Location: 47,27
Owner: Neutral
UnitsEntry: waypoint
Location: 11,13
Owner: Neutral
UnitsRally: waypoint
Location: 12,17
Owner: Neutral
Silo1: silo
Location: 51,20
Owner: Nod
Nuke1: nuke
Location: 45,18
Owner: Nod
Proc1: proc
Location: 46,21
Owner: Nod
Silo2: silo
Location: 49,22
Owner: Nod
Silo3: silo
Location: 49,20
Owner: Nod
Silo4: silo
Location: 51,22
Owner: Nod
Afld1: afld
Location: 40,18
Owner: Nod
Hand1: hand
Location: 41,21
Owner: Nod
Nuke2: nuke
Location: 47,18
Owner: Nod
Nuke3: nuke
Location: 49,17
Owner: Nod
Fact1: fact
Location: 51,17
Owner: Nod
GdiNuke1: nuke
Location: 33,51
Owner: AbandonedBase
Health: 0.4570313
GdiProc1: proc
Location: 27,52
Owner: AbandonedBase
Health: 0.4765625
FreeActor: False
GdiHarv: harv
Location: 27,55
Owner: AbandonedBase
Facing: 64
GdiWeap1: weap
Location: 35,51
Owner: AbandonedBase
Health: 0.4140625
GdiNuke2: nuke
Location: 31,51
Owner: AbandonedBase
Health: 0.3945313
GdiPyle1: pyle
Location: 31,54
Owner: AbandonedBase
Health: 0.4570313
GdiSilo1: silo
Location: 26,51
Owner: AbandonedBase
Health: 0.40625
GdiSilo2: silo
Location: 29,51
Owner: AbandonedBase
Sam1: sam
Location: 52,25
Owner: Nod
Sam2: sam
Location: 38,25
Owner: Nod
Sam3: sam
Location: 40,17
Owner: Nod
Sam4: sam
Location: 26,37
Owner: Nod
Smudges:
sc3 15,56 0:
sc2 40,53 0:
sc2 24,53 0:
sc5 39,52 0:
sc1 24,52 0:
sc4 39,51 0:
Rules:
Player:
-ConquestVictoryConditions:
MissionObjectives:
EarlyGameOver: true
EnemyWatcher:
World:
-CrateSpawner:
-SpawnMPUnits:
-MPStartLocations:
ObjectivesPanel:
PanelName: MISSION_OBJECTIVES
LuaScript:
Scripts: gdi05b.lua
^Vehicle:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Tank:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Helicopter:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Infantry:
SpawnViceroid:
Probability: 0
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Plane:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Ship:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Building:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
AnnounceOnSeen:
^Wall:
Tooltip:
ShowOwnerRow: false
^Husk:
Tooltip:
GenericVisibility: Enemy, Ally, Neutral
GenericStancePrefix: false
ShowOwnerRow: false
SBAG:
Buildable:
Prerequisites: ~disabled
GTWR:
Buildable:
Prerequisites: ~disabled
ATWR:
Buildable:
Prerequisites: ~disabled
WEAP:
Buildable:
Prerequisites: ~disabled
CYCL:
Buildable:
Prerequisites: ~disabled
NUK2:
Buildable:
Prerequisites: ~disabled
FIX:
Buildable:
Prerequisites: ~disabled
HPAD:
Buildable:
Prerequisites: ~disabled
BRIK:
Buildable:
Prerequisites: ~disabled
EYE:
Buildable:
Prerequisites: ~disabled
GUN:
Buildable:
Prerequisites: ~disabled
OBLI:
Buildable:
Prerequisites: ~disabled
TMPL:
Buildable:
Prerequisites: ~disabled
E2:
Buildable:
Prerequisites: ~pyle
E3:
Buildable:
Prerequisites: ~disabled
HARV:
Buildable:
Prerequisites: ~disabled
MTNK:
Buildable:
Prerequisites: ~disabled
HTNK:
Buildable:
Prerequisites: ~disabled
RMBO:
Buildable:
Prerequisites: ~disabled
MSAM:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
FTNK:
Buildable:
Prerequisites: ~disabled
airstrike.proxy:
AirstrikePower:
Icon: airstrike
StartFullyCharged: True
ChargeTime: 120
SquadSize: 1
QuantizedFacings: 8
Description: Air Strike
LongDesc: Deploy an aerial napalm strike.\nBurns buildings and infantry along a line.
EndChargeSound: airredy1.aud
SelectTargetSound: select1.aud
InsufficientPowerSound: nopower1.aud
IncomingSound: enemya.aud
UnitType: a10
DisplayBeacon: True
BeaconPoster: airstrike
DisplayRadarPing: True
CameraActor: camera
Sequences:
VoxelSequences:
Weapons:
Voices:
Notifications:
Translations:

View File

@@ -6,6 +6,7 @@ GDI Campaign:
./mods/cnc/maps/gdi04b ./mods/cnc/maps/gdi04b
./mods/cnc/maps/gdi04c ./mods/cnc/maps/gdi04c
./mods/cnc/maps/gdi05a ./mods/cnc/maps/gdi05a
./mods/cnc/maps/gdi05b
Nod Campaign: Nod Campaign:
./mods/cnc/maps/nod01 ./mods/cnc/maps/nod01