Add ant mission 1
This commit is contained in:
185
mods/ra/maps/ant-01/ant-01.lua
Normal file
185
mods/ra/maps/ant-01/ant-01.lua
Normal file
@@ -0,0 +1,185 @@
|
||||
--[[
|
||||
Copyright 2007-2018 The OpenRA Developers (see AUTHORS)
|
||||
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.
|
||||
]]
|
||||
|
||||
--Boolean Vars
|
||||
baseDiscovered = false
|
||||
AtEndGame = false
|
||||
|
||||
--Basic Vars
|
||||
DifficultySetting = Map.LobbyOption("difficulty")
|
||||
TimerColor = Player.GetPlayer("Spain").Color
|
||||
InsertionHelicopterType = "tran.insertion"
|
||||
TimerTicks = DateTime.Minutes(18) -- 18 minutes is roughly 30 mins in the original game
|
||||
ticks = TimerTicks
|
||||
|
||||
--Table Vars
|
||||
TankPath = { waypoint12.Location, waypoint13.Location }
|
||||
InsertionPath = { waypoint12.Location, waypoint0.Location }
|
||||
AlliedBase = { WarFactory, PillBox1, PillBox2, Refinery, PowerPlant1, PowerPlant2, RepairPad, OreSilo, Barracks, RadarDome }
|
||||
AlliedForces = { "2tnk" , "2tnk", "mcv" }
|
||||
ChopperTeam = { "e1r1", "e1r1", "e2", "e2", "e1r1" }
|
||||
|
||||
SendTanks = function()
|
||||
Media.PlaySpeechNotification(allies, "ReinforcementsArrived")
|
||||
Reinforcements.Reinforce(allies, AlliedForces, TankPath, DateTime.Seconds(1))
|
||||
end
|
||||
|
||||
SendInsertionHelicopter = function()
|
||||
Media.PlaySpeechNotification(allies, "AlliedReinforcementsSouth")
|
||||
Reinforcements.ReinforceWithTransport(allies, InsertionHelicopterType, ChopperTeam, InsertionPath, { waypoint4.Location })
|
||||
end
|
||||
|
||||
FinishTimer = function()
|
||||
for i = 0, 9, 1 do
|
||||
local c = TimerColor
|
||||
if i % 2 == 0 then
|
||||
c = HSLColor.White
|
||||
end
|
||||
Trigger.AfterDelay(DateTime.Seconds(i), function() UserInterface.SetMissionText("Allied forces have arrived!", c) end)
|
||||
end
|
||||
Trigger.AfterDelay(DateTime.Seconds(10), function() UserInterface.SetMissionText("") end)
|
||||
end
|
||||
|
||||
TimerExpired = function()
|
||||
allies.MarkCompletedObjective(SurviveObjective)
|
||||
end
|
||||
|
||||
DiscoveredAlliedBase = function(actor, discoverer)
|
||||
if (not baseDiscovered and discoverer.Owner == allies) then
|
||||
baseDiscovered = true
|
||||
Media.PlaySpeechNotification(allies, "ObjectiveReached")
|
||||
Utils.Do(AlliedBase, function(building)
|
||||
building.Owner = allies
|
||||
end)
|
||||
|
||||
--Need to delay this so we don't fail mission before obj added
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
SurviveObjective = allies.AddPrimaryObjective("Defend outpost until reinforcements arrive.")
|
||||
SetupTimeNotifications()
|
||||
Trigger.OnAllRemovedFromWorld(AlliedBase, function()
|
||||
allies.MarkFailedObjective(SurviveObjective)
|
||||
end)
|
||||
Media.PlaySpeechNotification(allies, "TimerStarted")
|
||||
Trigger.AfterDelay(DateTime.Seconds(2), function() allies.MarkCompletedObjective(DiscoverObjective) end)
|
||||
creeps.GetActorsByType("harv")[1].FindResources()
|
||||
creeps.GetActorsByType("harv")[1].Owner = allies
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
SetupTimeNotifications = function()
|
||||
Trigger.AfterDelay(DateTime.Minutes(8), function()
|
||||
Media.PlaySpeechNotification(allies, "TenMinutesRemaining")
|
||||
end)
|
||||
Trigger.AfterDelay(DateTime.Minutes(13), function()
|
||||
Media.PlaySpeechNotification(allies, "WarningFiveMinutesRemaining")
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Minutes(14), function()
|
||||
Media.PlaySpeechNotification(allies, "WarningFourMinutesRemaining")
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Minutes(15), function()
|
||||
Media.PlaySpeechNotification(allies, "WarningThreeMinutesRemaining")
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Minutes(16), function()
|
||||
Media.PlaySpeechNotification(allies, "WarningTwoMinutesRemaining")
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Minutes(17), function()
|
||||
Media.PlaySpeechNotification(allies, "WarningOneMinuteRemaining")
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Minutes(17) + DateTime.Seconds(40), function()
|
||||
Media.PlaySpeechNotification(allies, "AlliedForcesApproaching")
|
||||
end)
|
||||
end
|
||||
|
||||
GetTicks = function()
|
||||
return ticks
|
||||
end
|
||||
|
||||
Tick = function()
|
||||
if SurviveObjective ~= nil then
|
||||
if ticks > 0 then
|
||||
if ticks == DateTime.Minutes(17) then
|
||||
StartAntAttack()
|
||||
elseif ticks == DateTime.Minutes(15) then
|
||||
if DifficultySetting ~= "hard" then
|
||||
SendInsertionHelicopter()
|
||||
end
|
||||
elseif ticks == DateTime.Minutes(12) then
|
||||
StartAntAttack()
|
||||
elseif ticks == DateTime.Minutes(6) then
|
||||
StartAntAttack()
|
||||
elseif ticks == DateTime.Minutes(1) then
|
||||
EndAntAttack()
|
||||
end
|
||||
|
||||
ticks = ticks - 1;
|
||||
UserInterface.SetMissionText("Reinforcements arrive in " .. Utils.FormatTime(ticks), TimerColor)
|
||||
else
|
||||
if not AtEndGame then
|
||||
Media.PlaySpeechNotification(allies, "SecondObjectiveMet")
|
||||
AtEndGame = true
|
||||
FinishTimer()
|
||||
Camera.Position = waypoint13.CenterPosition
|
||||
SendTanks()
|
||||
Trigger.AfterDelay(DateTime.Seconds(2), function() TimerExpired() end)
|
||||
end
|
||||
ticks = ticks - 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
InitObjectives = function()
|
||||
Trigger.OnObjectiveAdded(allies, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
|
||||
end)
|
||||
|
||||
DiscoverObjective = allies.AddPrimaryObjective("Find the outpost.")
|
||||
|
||||
Utils.Do(AlliedBase, function(actor)
|
||||
Trigger.OnEnteredProximityTrigger(actor.CenterPosition, WDist.FromCells(8), function(discoverer, id)
|
||||
DiscoveredAlliedBase(actor, discoverer)
|
||||
end)
|
||||
end)
|
||||
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function()
|
||||
creeps.GetActorsByType("harv")[1].Stop()
|
||||
end)
|
||||
|
||||
Trigger.OnObjectiveCompleted(allies, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
|
||||
end)
|
||||
Trigger.OnObjectiveFailed(allies, function(p, id)
|
||||
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
|
||||
end)
|
||||
|
||||
Trigger.OnPlayerLost(allies, function()
|
||||
Media.PlaySpeechNotification(allies, "MissionFailed")
|
||||
end)
|
||||
|
||||
Trigger.OnPlayerWon(allies, function()
|
||||
Trigger.AfterDelay(DateTime.Seconds(1), function() Media.PlaySpeechNotification(allies, "MissionAccomplished") end)
|
||||
end)
|
||||
|
||||
Camera.Position = Ranger.CenterPosition
|
||||
end
|
||||
|
||||
WorldLoaded = function()
|
||||
allies = Player.GetPlayer("Spain")
|
||||
creeps = Player.GetPlayer("Creeps")
|
||||
InitObjectives()
|
||||
InitEnemyPlayers()
|
||||
Trigger.OnKilled(MoneyDerrick, function()
|
||||
Actor.Create("moneycrate", true, { Owner = allies, Location = MoneyDerrick.Location + CVec.New(1,0) })
|
||||
end)
|
||||
end
|
||||
89
mods/ra/maps/ant-01/ant-attack.lua
Normal file
89
mods/ra/maps/ant-01/ant-attack.lua
Normal file
@@ -0,0 +1,89 @@
|
||||
DifficultySetting = Map.LobbyOption("difficulty")
|
||||
timeTracker = 0
|
||||
amount = 1
|
||||
SendAnts = true
|
||||
|
||||
AttackAngles = {
|
||||
{ waypoint4.Location, waypoint18.Location, waypoint5.Location, waypoint15.Location },
|
||||
{ waypoint20.Location, waypoint10.Location, waypoint2.Location },
|
||||
{ waypoint17.Location, waypoint1.Location },
|
||||
{ waypoint8.Location, waypoint9.Location, waypoint19.Location }
|
||||
}
|
||||
|
||||
AttackInterval = {
|
||||
easy = DateTime.Seconds(40),
|
||||
normal = DateTime.Seconds(30),
|
||||
hard = DateTime.Seconds(20)
|
||||
}
|
||||
|
||||
AntTypes = {
|
||||
"scoutant",
|
||||
"fireant"
|
||||
}
|
||||
|
||||
MaxAnts = {
|
||||
easy = 3,
|
||||
normal = 5,
|
||||
hard = 7
|
||||
}
|
||||
|
||||
MaxFireAnts = {
|
||||
easy = 2,
|
||||
normal = 3,
|
||||
hard = 4
|
||||
}
|
||||
|
||||
StartAntAttack = function()
|
||||
local path = Utils.Random(AttackAngles)
|
||||
local antType = "scoutant"
|
||||
local index = 0
|
||||
local amount = 1
|
||||
local timeTracker = GetTicks()
|
||||
|
||||
if timeTracker > DateTime.Minutes(6) then
|
||||
antType = Utils.Random(AntTypes)
|
||||
end
|
||||
|
||||
if antType == "warriorant" and DifficultySetting == "easy" then
|
||||
antType = "scoutant"
|
||||
end
|
||||
|
||||
if DifficultySetting == "normal" and timeTracker < DateTime.Minutes(6) and antType == "scoutant" then
|
||||
antType = "warriorant"
|
||||
elseif DifficultySetting == "hard" and timeTracker < DateTime.Minutes(12) and antType == "scoutant" then
|
||||
antType = "warriorant"
|
||||
end
|
||||
|
||||
local max = MaxAnts[DifficultySetting] - math.ceil(timeTracker / DateTime.Minutes(6))
|
||||
if timeTracker > DateTime.Minutes(3) and antType == "fireant" then
|
||||
amount = Utils.RandomInteger(1, MaxFireAnts[DifficultySetting])
|
||||
elseif timeTracker > 15 and antType == "fireant" then
|
||||
antType = "scoutant"
|
||||
else
|
||||
amount = Utils.RandomInteger(1, max)
|
||||
end
|
||||
|
||||
for i = 0,amount,1 do
|
||||
Reinforcements.Reinforce(AntMan, { antType }, path, DateTime.Seconds(5), function(actor)
|
||||
actor.AttackMove(CPos.New(65, 65))
|
||||
Trigger.OnIdle(actor, function()
|
||||
actor.Hunt()
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
-- Setup next wave
|
||||
if SendAnts then
|
||||
Trigger.AfterDelay(AttackInterval[DifficultySetting], function()
|
||||
StartAntAttack()
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
EndAntAttack = function()
|
||||
SendAnts = false
|
||||
end
|
||||
|
||||
InitEnemyPlayers = function()
|
||||
AntMan = Player.GetPlayer("AntMan")
|
||||
end
|
||||
BIN
mods/ra/maps/ant-01/map.bin
Normal file
BIN
mods/ra/maps/ant-01/map.bin
Normal file
Binary file not shown.
BIN
mods/ra/maps/ant-01/map.png
Normal file
BIN
mods/ra/maps/ant-01/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 146 KiB |
597
mods/ra/maps/ant-01/map.yaml
Normal file
597
mods/ra/maps/ant-01/map.yaml
Normal file
@@ -0,0 +1,597 @@
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
Title: 01: Discovery
|
||||
|
||||
Author: Westwood Studios
|
||||
|
||||
Tileset: TEMPERAT
|
||||
|
||||
MapSize: 128,128
|
||||
|
||||
Bounds: 40,40,50,50
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
Name: Neutral
|
||||
OwnsWorld: True
|
||||
NonCombatant: True
|
||||
Faction: allies
|
||||
PlayerReference@Creeps:
|
||||
Name: Creeps
|
||||
NonCombatant: True
|
||||
Faction: england
|
||||
Enemies: AntMan
|
||||
Allies: Neutral
|
||||
PlayerReference@Spain:
|
||||
Name: Spain
|
||||
Playable: True
|
||||
AllowBots: False
|
||||
Required: True
|
||||
LockFaction: True
|
||||
Faction: allies
|
||||
LockColor: True
|
||||
LockSpawn: True
|
||||
LockTeam: True
|
||||
Enemies: AntMan
|
||||
Color: F6D679
|
||||
PlayerReference@AntMan:
|
||||
Name: AntMan
|
||||
Faciton: soviet
|
||||
Enemies: Spain, Creeps
|
||||
|
||||
Actors:
|
||||
Actor0: brik
|
||||
Location: 57,58
|
||||
Owner: Neutral
|
||||
Actor1: brik
|
||||
Location: 58,58
|
||||
Owner: Neutral
|
||||
Actor2: brik
|
||||
Location: 59,58
|
||||
Owner: Neutral
|
||||
Actor3: brik
|
||||
Location: 60,58
|
||||
Owner: Neutral
|
||||
Actor4: brik
|
||||
Location: 61,58
|
||||
Owner: Neutral
|
||||
Actor5: brik
|
||||
Location: 62,58
|
||||
Owner: Neutral
|
||||
Actor6: brik
|
||||
Location: 63,58
|
||||
Owner: Neutral
|
||||
Actor7: brik
|
||||
Location: 67,58
|
||||
Owner: Neutral
|
||||
Actor8: brik
|
||||
Location: 68,58
|
||||
Owner: Neutral
|
||||
Actor9: brik
|
||||
Location: 69,58
|
||||
Owner: Neutral
|
||||
Actor10: brik
|
||||
Location: 70,58
|
||||
Owner: Neutral
|
||||
Actor11: brik
|
||||
Location: 71,58
|
||||
Owner: Neutral
|
||||
Actor12: brik
|
||||
Location: 72,58
|
||||
Owner: Neutral
|
||||
Actor13: brik
|
||||
Location: 57,59
|
||||
Owner: Neutral
|
||||
Actor14: brik
|
||||
Location: 62,59
|
||||
Owner: Neutral
|
||||
Actor15: brik
|
||||
Location: 63,59
|
||||
Owner: Neutral
|
||||
Actor16: brik
|
||||
Location: 67,59
|
||||
Owner: Neutral
|
||||
Actor17: brik
|
||||
Location: 68,59
|
||||
Owner: Neutral
|
||||
Actor18: brik
|
||||
Location: 57,60
|
||||
Owner: Neutral
|
||||
Actor19: brik
|
||||
Location: 57,61
|
||||
Owner: Neutral
|
||||
Actor20: brik
|
||||
Location: 74,61
|
||||
Owner: Neutral
|
||||
Actor21: brik
|
||||
Location: 57,62
|
||||
Owner: Neutral
|
||||
Actor22: brik
|
||||
Location: 58,62
|
||||
Owner: Neutral
|
||||
Actor23: brik
|
||||
Location: 73,62
|
||||
Owner: Neutral
|
||||
Actor24: brik
|
||||
Location: 74,62
|
||||
Owner: Neutral
|
||||
Actor25: brik
|
||||
Location: 57,63
|
||||
Owner: Neutral
|
||||
Actor26: brik
|
||||
Location: 58,63
|
||||
Owner: Neutral
|
||||
Actor27: brik
|
||||
Location: 73,63
|
||||
Owner: Neutral
|
||||
Actor28: brik
|
||||
Location: 74,63
|
||||
Owner: Neutral
|
||||
Actor29: brik
|
||||
Location: 57,67
|
||||
Owner: Neutral
|
||||
Actor30: brik
|
||||
Location: 58,67
|
||||
Owner: Neutral
|
||||
Actor31: brik
|
||||
Location: 73,67
|
||||
Owner: Neutral
|
||||
Actor32: brik
|
||||
Location: 74,67
|
||||
Owner: Neutral
|
||||
Actor33: brik
|
||||
Location: 57,68
|
||||
Owner: Neutral
|
||||
Actor34: brik
|
||||
Location: 58,68
|
||||
Owner: Neutral
|
||||
Actor35: brik
|
||||
Location: 73,68
|
||||
Owner: Neutral
|
||||
Actor36: brik
|
||||
Location: 74,68
|
||||
Owner: Neutral
|
||||
Actor37: brik
|
||||
Location: 57,69
|
||||
Owner: Neutral
|
||||
Actor38: brik
|
||||
Location: 74,69
|
||||
Owner: Neutral
|
||||
Actor39: brik
|
||||
Location: 57,70
|
||||
Owner: Neutral
|
||||
Actor40: brik
|
||||
Location: 74,70
|
||||
Owner: Neutral
|
||||
Actor41: brik
|
||||
Location: 57,71
|
||||
Owner: Neutral
|
||||
Actor42: brik
|
||||
Location: 62,71
|
||||
Owner: Neutral
|
||||
Actor43: brik
|
||||
Location: 63,71
|
||||
Owner: Neutral
|
||||
Actor44: brik
|
||||
Location: 67,71
|
||||
Owner: Neutral
|
||||
Actor45: brik
|
||||
Location: 68,71
|
||||
Owner: Neutral
|
||||
Actor46: brik
|
||||
Location: 74,71
|
||||
Owner: Neutral
|
||||
Actor47: brik
|
||||
Location: 57,72
|
||||
Owner: Neutral
|
||||
Actor48: brik
|
||||
Location: 58,72
|
||||
Owner: Neutral
|
||||
Actor49: brik
|
||||
Location: 59,72
|
||||
Owner: Neutral
|
||||
Actor50: brik
|
||||
Location: 60,72
|
||||
Owner: Neutral
|
||||
Actor51: brik
|
||||
Location: 61,72
|
||||
Owner: Neutral
|
||||
Actor52: brik
|
||||
Location: 62,72
|
||||
Owner: Neutral
|
||||
Actor53: brik
|
||||
Location: 63,72
|
||||
Owner: Neutral
|
||||
Actor54: brik
|
||||
Location: 67,72
|
||||
Owner: Neutral
|
||||
Actor55: brik
|
||||
Location: 68,72
|
||||
Owner: Neutral
|
||||
Actor56: brik
|
||||
Location: 69,72
|
||||
Owner: Neutral
|
||||
Actor57: brik
|
||||
Location: 74,72
|
||||
Owner: Neutral
|
||||
Actor58: v15
|
||||
Location: 57,78
|
||||
Owner: Neutral
|
||||
Actor59: v16
|
||||
Location: 58,79
|
||||
Owner: Neutral
|
||||
Actor60: tc01
|
||||
Location: 70,58
|
||||
Owner: Neutral
|
||||
Actor61: tc02
|
||||
Location: 77,70
|
||||
Owner: Neutral
|
||||
Actor62: tc02
|
||||
Location: 47,88
|
||||
Owner: Neutral
|
||||
Actor63: tc03
|
||||
Location: 53,69
|
||||
Owner: Neutral
|
||||
Actor64: t15
|
||||
Location: 54,74
|
||||
Owner: Neutral
|
||||
Actor65: t14
|
||||
Location: 81,75
|
||||
Owner: Neutral
|
||||
Actor66: t01
|
||||
Location: 78,77
|
||||
Owner: Neutral
|
||||
Actor67: tc04
|
||||
Location: 52,88
|
||||
Owner: Neutral
|
||||
Actor68: tc01
|
||||
Location: 64,88
|
||||
Owner: Neutral
|
||||
Actor69: tc03
|
||||
Location: 44,61
|
||||
Owner: Neutral
|
||||
Actor70: tc02
|
||||
Location: 43,64
|
||||
Owner: Neutral
|
||||
Actor71: tc01
|
||||
Location: 54,54
|
||||
Owner: Neutral
|
||||
Actor72: tc02
|
||||
Location: 86,86
|
||||
Owner: Neutral
|
||||
Actor73: tc02
|
||||
Location: 57,49
|
||||
Owner: Neutral
|
||||
Actor74: tc04
|
||||
Location: 61,72
|
||||
Owner: Neutral
|
||||
Actor75: t11
|
||||
Location: 50,51
|
||||
Owner: Neutral
|
||||
Actor76: t07
|
||||
Location: 54,48
|
||||
Owner: Neutral
|
||||
Actor77: tc05
|
||||
Location: 55,39
|
||||
Owner: Neutral
|
||||
Actor78: tc04
|
||||
Location: 53,40
|
||||
Owner: Neutral
|
||||
Actor79: tc01
|
||||
Location: 61,47
|
||||
Owner: Neutral
|
||||
Actor80: t07
|
||||
Location: 40,80
|
||||
Owner: Neutral
|
||||
Actor81: tc04
|
||||
Location: 69,88
|
||||
Owner: Neutral
|
||||
Actor82: t10
|
||||
Location: 75,55
|
||||
Owner: Neutral
|
||||
Actor83: t08
|
||||
Location: 63,78
|
||||
Owner: Neutral
|
||||
Actor84: tc04
|
||||
Location: 82,46
|
||||
Owner: Neutral
|
||||
Actor85: tc05
|
||||
Location: 81,48
|
||||
Owner: Neutral
|
||||
Actor86: tc03
|
||||
Location: 89,49
|
||||
Owner: Neutral
|
||||
Actor87: tc03
|
||||
Location: 83,45
|
||||
Owner: Neutral
|
||||
Actor88: tc04
|
||||
Location: 64,41
|
||||
Owner: Neutral
|
||||
Actor89: tc03
|
||||
Location: 65,40
|
||||
Owner: Neutral
|
||||
Actor90: tc01
|
||||
Location: 50,55
|
||||
Owner: Neutral
|
||||
Actor91: tc03
|
||||
Location: 76,45
|
||||
Owner: Neutral
|
||||
Actor92: tc02
|
||||
Location: 71,43
|
||||
Owner: Neutral
|
||||
Actor93: tc03
|
||||
Location: 87,67
|
||||
Owner: Neutral
|
||||
Actor94: tc01
|
||||
Location: 82,39
|
||||
Owner: Neutral
|
||||
Actor95: t01
|
||||
Location: 89,53
|
||||
Owner: Neutral
|
||||
Actor96: tc05
|
||||
Location: 77,56
|
||||
Owner: Neutral
|
||||
Actor97: t06
|
||||
Location: 78,60
|
||||
Owner: Neutral
|
||||
Actor98: t12
|
||||
Location: 87,62
|
||||
Owner: Neutral
|
||||
WarFactory: weap
|
||||
Location: 62,62
|
||||
Owner: Creeps
|
||||
Health: 39
|
||||
PillBox1: hbox
|
||||
Location: 65,60
|
||||
Owner: Creeps
|
||||
Health: 35
|
||||
PillBox2: hbox
|
||||
Location: 72,65
|
||||
Owner: Creeps
|
||||
Health: 37
|
||||
Refinery: proc
|
||||
Location: 59,67
|
||||
Owner: Creeps
|
||||
Health: 43
|
||||
PowerPlant1: powr
|
||||
Location: 58,59
|
||||
Owner: Creeps
|
||||
Health: 12
|
||||
PowerPlant2: powr
|
||||
Location: 68,67
|
||||
Owner: Creeps
|
||||
Health: 37
|
||||
RepairPad: fix
|
||||
Location: 71,69
|
||||
Owner: Creeps
|
||||
Health: 14
|
||||
OreSilo: silo
|
||||
Location: 61,60
|
||||
Owner: Creeps
|
||||
Health: 12
|
||||
Barracks: tent
|
||||
Location: 68,61
|
||||
Owner: Creeps
|
||||
Health: 31
|
||||
Actor108: v01
|
||||
Location: 55,79
|
||||
Owner: Neutral
|
||||
Health: 12
|
||||
Actor109: v02
|
||||
Location: 51,81
|
||||
Owner: Neutral
|
||||
Health: 22
|
||||
Actor110: v03
|
||||
Location: 58,82
|
||||
Owner: Neutral
|
||||
Health: 28
|
||||
Actor111: v06
|
||||
Location: 53,86
|
||||
Owner: Neutral
|
||||
Health: 20
|
||||
Actor112: v08
|
||||
Location: 48,77
|
||||
Owner: Neutral
|
||||
Health: 12
|
||||
Actor113: v09
|
||||
Location: 47,70
|
||||
Owner: Neutral
|
||||
Health: 14
|
||||
Actor114: v10
|
||||
Location: 62,86
|
||||
Owner: Neutral
|
||||
Health: 14
|
||||
Actor115: v11
|
||||
Location: 53,78
|
||||
Owner: Neutral
|
||||
Health: 12
|
||||
Actor116: v11
|
||||
Location: 43,78
|
||||
Owner: Neutral
|
||||
Health: 25
|
||||
Actor117: v19
|
||||
Location: 55,49
|
||||
Owner: Neutral
|
||||
Actor118: v19
|
||||
Location: 54,51
|
||||
Owner: Neutral
|
||||
Actor119: brl3
|
||||
Location: 56,49
|
||||
Owner: AntMan
|
||||
Actor120: barl
|
||||
Location: 56,50
|
||||
Owner: AntMan
|
||||
Actor121: brl3
|
||||
Location: 55,50
|
||||
Owner: AntMan
|
||||
Actor122: barl
|
||||
Location: 55,51
|
||||
Owner: AntMan
|
||||
Actor123: brl3
|
||||
Location: 55,52
|
||||
Owner: AntMan
|
||||
Actor124: barl
|
||||
Location: 53,52
|
||||
Owner: AntMan
|
||||
Actor125: brl3
|
||||
Location: 53,51
|
||||
Owner: AntMan
|
||||
Actor126: barl
|
||||
Location: 54,50
|
||||
Owner: AntMan
|
||||
Actor127: v10
|
||||
Location: 50,74
|
||||
Owner: Neutral
|
||||
Health: 12
|
||||
Actor128: v02
|
||||
Location: 46,66
|
||||
Owner: Neutral
|
||||
Health: 22
|
||||
RadarDome: dome
|
||||
Location: 71,60
|
||||
Owner: Creeps
|
||||
Health: 12
|
||||
Actor130: v19
|
||||
Location: 77,47
|
||||
Owner: Neutral
|
||||
Actor131: v19
|
||||
Location: 73,52
|
||||
Owner: Neutral
|
||||
Actor132: brl3
|
||||
Location: 74,52
|
||||
Owner: AntMan
|
||||
Actor133: barl
|
||||
Location: 73,53
|
||||
Owner: AntMan
|
||||
Actor134: brl3
|
||||
Location: 76,48
|
||||
Owner: AntMan
|
||||
Actor135: barl
|
||||
Location: 76,47
|
||||
Owner: AntMan
|
||||
Actor136: barl
|
||||
Location: 75,51
|
||||
Owner: AntMan
|
||||
Actor137: barl
|
||||
Location: 75,48
|
||||
Owner: AntMan
|
||||
MoneyDerrick: v19
|
||||
Location: 63,76
|
||||
Owner: Neutral
|
||||
Actor139: brl3
|
||||
Location: 63,75
|
||||
Owner: AntMan
|
||||
Actor140: barl
|
||||
Location: 62,74
|
||||
Owner: AntMan
|
||||
Actor141: brl3
|
||||
Location: 64,76
|
||||
Owner: AntMan
|
||||
Actor142: barl
|
||||
Location: 65,76
|
||||
Owner: AntMan
|
||||
Ranger: jeep
|
||||
Location: 43,87
|
||||
Owner: Spain
|
||||
Facing: 223
|
||||
Steve: e1
|
||||
Location: 43,86
|
||||
Owner: Spain
|
||||
SubCell: 0
|
||||
Daniel: e1
|
||||
Location: 44,87
|
||||
Owner: Spain
|
||||
SubCell: 2
|
||||
Phillip: e1
|
||||
Location: 42,87
|
||||
Owner: Spain
|
||||
SubCell: 2
|
||||
Johnathan: e1
|
||||
Location: 43,88
|
||||
Owner: Spain
|
||||
SubCell: 2
|
||||
waypoint0: waypoint
|
||||
Location: 65,65
|
||||
Owner: Neutral
|
||||
waypoint1: waypoint
|
||||
Location: 50,64
|
||||
Owner: Neutral
|
||||
waypoint2: waypoint
|
||||
Location: 82,65
|
||||
Owner: Neutral
|
||||
waypoint3: waypoint
|
||||
Location: 86,54
|
||||
Owner: Neutral
|
||||
waypoint4: waypoint
|
||||
Location: 89,40
|
||||
Owner: Neutral
|
||||
waypoint5: waypoint
|
||||
Location: 69,46
|
||||
Owner: Neutral
|
||||
waypoint6: waypoint
|
||||
Location: 55,44
|
||||
Owner: Neutral
|
||||
waypoint7: waypoint
|
||||
Location: 48,40
|
||||
Owner: Neutral
|
||||
waypoint8: waypoint
|
||||
Location: 77,89
|
||||
Owner: Neutral
|
||||
waypoint9: waypoint
|
||||
Location: 75,80
|
||||
Owner: Neutral
|
||||
waypoint10: waypoint
|
||||
Location: 84,79
|
||||
Owner: Neutral
|
||||
waypoint11: waypoint
|
||||
Location: 45,84
|
||||
Owner: Neutral
|
||||
waypoint12: waypoint
|
||||
Location: 41,89
|
||||
Owner: Neutral
|
||||
waypoint13: waypoint
|
||||
Location: 45,75
|
||||
Owner: Neutral
|
||||
waypoint14: waypoint
|
||||
Location: 65,84
|
||||
Owner: Neutral
|
||||
waypoint15: waypoint
|
||||
Location: 66,51
|
||||
Owner: Neutral
|
||||
waypoint16: waypoint
|
||||
Location: 46,55
|
||||
Owner: Neutral
|
||||
waypoint17: waypoint
|
||||
Location: 48,45
|
||||
Owner: Neutral
|
||||
waypoint18: waypoint
|
||||
Location: 85,43
|
||||
Owner: Neutral
|
||||
waypoint19: waypoint
|
||||
Location: 65,75
|
||||
Owner: Neutral
|
||||
waypoint20: waypoint
|
||||
Location: 89,75
|
||||
Owner: Neutral
|
||||
waypoint21: waypoint
|
||||
Location: 89,80
|
||||
Owner: Neutral
|
||||
waypoint26: waypoint
|
||||
Location: 76,56
|
||||
Owner: Neutral
|
||||
waypoint27: waypoint
|
||||
Location: 54,80
|
||||
Owner: Neutral
|
||||
DefaultCameraPosition: waypoint
|
||||
Location: 43,87
|
||||
Owner: Neutral
|
||||
|
||||
Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, rules.yaml, ra|rules/campaign-palettes.yaml
|
||||
134
mods/ra/maps/ant-01/rules.yaml
Normal file
134
mods/ra/maps/ant-01/rules.yaml
Normal file
@@ -0,0 +1,134 @@
|
||||
Player:
|
||||
PlayerResources:
|
||||
DefaultCash: 1500
|
||||
World:
|
||||
ScriptLobbyDropdown@difficulty:
|
||||
ID: difficulty
|
||||
Label: Difficulty
|
||||
Values:
|
||||
easy: Easy
|
||||
normal: Normal
|
||||
hard: Hard
|
||||
Default: easy
|
||||
LuaScript:
|
||||
Scripts: ant-01.lua, ant-attack.lua
|
||||
MissionData:
|
||||
BackgroundVideo: antintro.vqa
|
||||
Briefing: We've lost contact with one of our outposts. Before it went off-line, we recieved a brief communique about giant ants. We're unsure what to make of this report, so we want you to investigate. \n\nScout the area, bring the outpost back on-line, and report your findings. If there is a threat, reinforcements will be sent in to help you. \n\nKeep the base functional and radio contact open -- we don't want to lose the outpost again.
|
||||
|
||||
^Palettes:
|
||||
IndexedPlayerPalette@scoutant:
|
||||
BaseName: scoutant
|
||||
BasePalette: player
|
||||
RemapIndex: 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95
|
||||
PlayerIndex:
|
||||
AntMan: 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 123, 123, 123, 123
|
||||
AllowModifiers: True
|
||||
IndexedPlayerPalette@warriorant:
|
||||
BaseName: warriorant
|
||||
BasePalette: player
|
||||
RemapIndex: 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95
|
||||
PlayerIndex:
|
||||
AntMan: 229, 230, 231, 232, 233, 234, 235, 8, 236, 237, 238, 239, 221, 222, 223, 223
|
||||
AllowModifiers: True
|
||||
IndexedPlayerPalette@fireant:
|
||||
BaseName: fireant
|
||||
BasePalette: player
|
||||
RemapIndex: 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95
|
||||
PlayerIndex:
|
||||
AntMan: 158, 158, 159, 159, 229, 229, 216, 216, 217, 217, 218, 218, 221, 222, 223, 223
|
||||
AllowModifiers: True
|
||||
|
||||
WarriorAnt:
|
||||
RenderSprites:
|
||||
PlayerPalette: warriorant
|
||||
|
||||
ScoutAnt:
|
||||
RenderSprites:
|
||||
PlayerPalette: scoutant
|
||||
|
||||
FireAnt:
|
||||
RenderSprites:
|
||||
PlayerPalette: fireant
|
||||
|
||||
SPY:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
SPY.England:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MECH:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MRJ:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
APC:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
STNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
TRUK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
SPY:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
SNIPER:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MGG:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
1TNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
2TNK:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
E3:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
E2:
|
||||
Buildable:
|
||||
Prerequisites: ~tent
|
||||
|
||||
E7:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
ARTY:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
MCV:
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
TRAN.Insertion:
|
||||
Inherits: TRAN
|
||||
WithFacingSpriteBody:
|
||||
RenderSprites:
|
||||
Image: tran
|
||||
Interactable:
|
||||
-Selectable:
|
||||
|
||||
MONEYCRATE:
|
||||
GiveCashCrateAction:
|
||||
Amount: 2000
|
||||
SelectionShares: 1
|
||||
UseCashTick: true
|
||||
@@ -33,3 +33,5 @@ OpenRA Originals:
|
||||
./mods/ra/maps/intervention
|
||||
./mods/ra/maps/survival01
|
||||
./mods/ra/maps/survival02
|
||||
Ant Missions:
|
||||
./mods/ra/maps/ant-01
|
||||
|
||||
@@ -752,3 +752,52 @@ Ant:
|
||||
HitShape:
|
||||
Type: Circle
|
||||
Radius: 469
|
||||
|
||||
FireAnt:
|
||||
Inherits: Ant
|
||||
Tooltip:
|
||||
Name: Fire Ant
|
||||
GenericVisibility: none
|
||||
Mobile:
|
||||
Speed: 80
|
||||
Armament:
|
||||
Weapon: AntFireball
|
||||
Health:
|
||||
HP: 7500
|
||||
Armor:
|
||||
Type: Heavy
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
ScoutAnt:
|
||||
Inherits: Ant
|
||||
Tooltip:
|
||||
Name: Scout Ant
|
||||
GenericVisibility: none
|
||||
Health:
|
||||
HP: 8500
|
||||
Armor:
|
||||
Type: Light
|
||||
AutoTarget:
|
||||
ScanRadius: 7
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
|
||||
WarriorAnt:
|
||||
Inherits: Ant
|
||||
Tooltip:
|
||||
Name: Warrior Ant
|
||||
GenericVisibility: none
|
||||
Mobile:
|
||||
Speed: 65
|
||||
Health:
|
||||
HP: 12500
|
||||
Armor:
|
||||
Type: Heavy
|
||||
Armament:
|
||||
Weapon: MandibleHeavy
|
||||
Buildable:
|
||||
Prerequisites: ~disabled
|
||||
RenderSprites:
|
||||
Image: Ant
|
||||
|
||||
|
||||
@@ -1321,3 +1321,53 @@ ant:
|
||||
Tick: 400
|
||||
ZOffset: -511
|
||||
icon: anticon
|
||||
|
||||
fireant:
|
||||
stand: ant2
|
||||
Facings: 8
|
||||
stand2: ant2
|
||||
Start: 8
|
||||
Length: 8
|
||||
run: ant2
|
||||
Start: 8
|
||||
Length: 8
|
||||
Facings: 8
|
||||
bite: ant2
|
||||
Start: 72
|
||||
Length: 4
|
||||
Facings: 8
|
||||
die: ant2
|
||||
Start: 104
|
||||
Length: 8
|
||||
Tick: 300
|
||||
die-crushed: ant2
|
||||
Start: 104
|
||||
Length: 8
|
||||
Tick: 400
|
||||
ZOffset: -511
|
||||
icon: anticon
|
||||
|
||||
scoutant:
|
||||
stand: ant3
|
||||
Facings: 8
|
||||
stand2: ant3
|
||||
Start: 8
|
||||
Length: 8
|
||||
run: ant3
|
||||
Start: 8
|
||||
Length: 8
|
||||
Facings: 8
|
||||
bite: ant3
|
||||
Start: 72
|
||||
Length: 4
|
||||
Facings: 8
|
||||
die: ant3
|
||||
Start: 104
|
||||
Length: 8
|
||||
Tick: 300
|
||||
die-crushed: ant3
|
||||
Start: 104
|
||||
Length: 8
|
||||
Tick: 400
|
||||
ZOffset: -511
|
||||
icon: anticon
|
||||
|
||||
@@ -165,12 +165,49 @@ Claw:
|
||||
Mandible:
|
||||
Inherits: Claw
|
||||
ReloadDelay: 10
|
||||
Burst: 2
|
||||
BurstDelays: 14
|
||||
StartBurstReport: antbite.aud
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Damage: 6000
|
||||
Versus:
|
||||
None: 90
|
||||
DamageTypes: Prone50Percent, TriggerProne, BulletDeath
|
||||
|
||||
MandibleHeavy:
|
||||
Inherits: Claw
|
||||
ReloadDelay: 15
|
||||
Burst: 2
|
||||
BurstDelays: 20
|
||||
StartBurstReport: antbite.aud
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Damage: 10000
|
||||
Versus:
|
||||
None: 100
|
||||
Light: 90
|
||||
Heavy: 35
|
||||
Concrete: 20
|
||||
DamageTypes: Prone50Percent, TriggerProne, BulletDeath
|
||||
|
||||
AntFireball:
|
||||
Inherits: FireballLauncher
|
||||
Report: antbite.aud
|
||||
ReloadDelay: 50
|
||||
Burst: 2
|
||||
BurstDelays: 20
|
||||
Range: 4c0
|
||||
Projectile: Bullet
|
||||
Speed: 200
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 213
|
||||
Damage: 4000
|
||||
Versus:
|
||||
None: 80
|
||||
Wood: 85
|
||||
Light: 45
|
||||
Heavy: 20
|
||||
Concrete: 15
|
||||
|
||||
MADTankThump:
|
||||
InvalidTargets: MADTank, Infantry
|
||||
Warhead@1Dam: HealthPercentageDamage
|
||||
|
||||
Reference in New Issue
Block a user