Add ant mission 1

This commit is contained in:
Dylan Manitta
2018-07-27 09:49:05 -04:00
committed by reaperrr
parent 0ff4e466ee
commit f5d12bfde1
10 changed files with 1143 additions and 0 deletions

View 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

View 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

Binary file not shown.

BIN
mods/ra/maps/ant-01/map.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

View 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

View 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

View File

@@ -33,3 +33,5 @@ OpenRA Originals:
./mods/ra/maps/intervention ./mods/ra/maps/intervention
./mods/ra/maps/survival01 ./mods/ra/maps/survival01
./mods/ra/maps/survival02 ./mods/ra/maps/survival02
Ant Missions:
./mods/ra/maps/ant-01

View File

@@ -752,3 +752,52 @@ Ant:
HitShape: HitShape:
Type: Circle Type: Circle
Radius: 469 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

View File

@@ -1321,3 +1321,53 @@ ant:
Tick: 400 Tick: 400
ZOffset: -511 ZOffset: -511
icon: anticon 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

View File

@@ -165,12 +165,49 @@ Claw:
Mandible: Mandible:
Inherits: Claw Inherits: Claw
ReloadDelay: 10 ReloadDelay: 10
Burst: 2
BurstDelays: 14
StartBurstReport: antbite.aud
Warhead@1Dam: SpreadDamage Warhead@1Dam: SpreadDamage
Damage: 6000 Damage: 6000
Versus: Versus:
None: 90 None: 90
DamageTypes: Prone50Percent, TriggerProne, BulletDeath 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: MADTankThump:
InvalidTargets: MADTank, Infantry InvalidTargets: MADTank, Infantry
Warhead@1Dam: HealthPercentageDamage Warhead@1Dam: HealthPercentageDamage