250 lines
8.0 KiB
Lua
250 lines
8.0 KiB
Lua
--[[
|
|
|
|
Operation Cold Metal
|
|
|
|
Seventh and final mission in the Collective Campaign
|
|
|
|
Mission Objectives:
|
|
-- Assault C-43
|
|
-- Final Assault on C-28
|
|
-- Kill the Starfire
|
|
-- Kill the Trinity (if it got away in Operation Black Metal)
|
|
|
|
Stages:
|
|
0) Just started..
|
|
1) Entered C-43.
|
|
2) Cleared C-43.
|
|
3) Entered C-28.
|
|
4) Cleared C-28.
|
|
5) Ran away.
|
|
|
|
]]--
|
|
|
|
lang = lephisto.lang()
|
|
if lang == "es" then
|
|
-- not translated atm
|
|
else -- default english
|
|
misn_title = "Operation Cold Metal"
|
|
misn_reward = "Fame and Glory"
|
|
misn_desc = {}
|
|
misn_desc[1] = "Neutralize enemy forces in %s."
|
|
misn_desc[2] = "Destroy the Starfire and hostiles in %s."
|
|
misn_desc[3] = "Return to %s in the %s system."
|
|
title = {}
|
|
title[1] = "Bar"
|
|
title[2] = "Operation Cold Metal"
|
|
title[3] = "Mission Success"
|
|
title[4] = "Cowardly Behaviour"
|
|
text = {}
|
|
text[1] = [[You see Commodore Keer at a table with a couple other pilots. She motions you over to sit down.
|
|
She begins, "We're going to finally attack the Collective. We've gotten the Emperor himself to bless the mission and send some of his better pilots. Would you be interested in joining the destruction of the Collective?"]]
|
|
text[2] = [["The Operation has been dubbed 'Cold Metal'. Our goal is to head to C-00, we'll take the route of %s, %s then C-00. Should we encounter the Starfire at any stage our goal will be to destroy it and head back. We'll also clear each system completely of Collective presence before continuing to the next system. See you in combat pilots."]]
|
|
text[3] = [[As you do your approach to land on %s you notice big banners placed on the exterior of the station. They seem to be in celebration of the final defeat of the Collective. When you do land you are saluted by the welcoming committee in charge of saluting all the returning pilots.
|
|
You notice Commodore Keer. Upon greeting her she says, "You did a good job out there. No need to worry about the Collective anymore. Without Welsh the Collective won't stand a chance, since they aren't truly autonomous. Right now we have some ships cleaning up the last of the Collective, shouldn't take too long to be back to normal."]]
|
|
text[4] = [[She continues, "As a symbol of appreciation you should find a deposit of 500 thousand credits has been made to your account. There will be a celebration later today in the officer's room if you want to join in."
|
|
|
|
And so ends the Collective threat...]]
|
|
text[5] = [[You recieve a message signed by Commodore Keeras soon as you enter Empire space:
|
|
There is no room for cowards in the Empires' fleet."
|
|
The signature does seem valid.]]
|
|
-- Conversation between pilots
|
|
talk = {}
|
|
talk[1] = "System Cleared: Procede to %s."
|
|
talk[2] = "Mission Success: Return to %s."
|
|
talk[3] = "Mission Failure: Return to %s."
|
|
end
|
|
|
|
|
|
-- Creates the mission
|
|
function create()
|
|
-- Intro text
|
|
if tk.yesno( title[1], text[1] )
|
|
then
|
|
misn.accept()
|
|
|
|
-- Mission data.
|
|
misn_stage = 0
|
|
misn_base, misn_base_sys = space.getPlanet("Omega Station")
|
|
misn_target_sys = space.getSystem("C-43")
|
|
misn_final_sys = space.getSystem("C-28")
|
|
misn.setMarker(misn_target_sys)
|
|
|
|
-- Mission details.
|
|
misn.setTitle(misn_title)
|
|
misn.setReward( misn_reward )
|
|
misn.setDesc( string.format(misn_desc[1], misn_target_sys:name() ))
|
|
|
|
tk.msg( title[2], string.format( text[2],
|
|
misn_target_sys:name(), misn_final_sys:name() ) )
|
|
|
|
hook.enter("jump")
|
|
hook.land("land")
|
|
end
|
|
end
|
|
|
|
|
|
-- Handles jumping to target system.
|
|
function jump()
|
|
sys = space.getSystem()
|
|
|
|
if misn_stage == 0 then
|
|
offset = 500
|
|
|
|
-- Entering target system?
|
|
if sys == misn_target_sys then
|
|
-- Create big battle.
|
|
enter_vect = player.pos()
|
|
pilot.clear()
|
|
pilot.toggleSpawn(false)
|
|
-- Empire.
|
|
emp_fleets = {}
|
|
emp_fleets[1] = "Empire Sml Attack"
|
|
emp_fleets[2] = "Empire Sml Attack"
|
|
emp_fleets[3] = "Dvaered Goddard" -- They help empire.
|
|
-- Get position
|
|
x, y = enter_vect:get()
|
|
-- Add pilots.
|
|
for k,v in ipairs(emp_fleets) do
|
|
spawn_vect:add(rnd.int(-offset, offset), rnd.int(-offset, offset))
|
|
pilot.add(v, "def", spawn_vect)
|
|
end
|
|
-- Collective.
|
|
col_fleets = {}
|
|
col_fleets[1] = "Collective Sml Swarm"
|
|
col_fleets[2] = "Collective Sml Swarm"
|
|
col_fleets[3] = "Collective Sml Swarm"
|
|
-- Set up position.
|
|
x,y = enter_vect:get()
|
|
spawn_vect = enter_vect.new(-x, -y)
|
|
-- Count amount created
|
|
col_alive = 0
|
|
for k,v in ipairs(col_fleets) do
|
|
spawn_vect:add(rnd.int(-offset, offset), rnd.int(-offset, offset))
|
|
pilots = pilot.add(v, "def", spawn_vect)
|
|
col_alive = col_alive + #pilots
|
|
for k,v in ipairs(pilots) do
|
|
hook.pilot( v, "disable", "col_dead" )
|
|
end
|
|
end
|
|
|
|
misn_stage = 1
|
|
end
|
|
elseif misn_stage == 2 then
|
|
-- Entering target system?
|
|
if sys == misn_final_sys then
|
|
|
|
-- Create bigger battle
|
|
enter_vect = player.pos()
|
|
pilot.clear()
|
|
pilot.toggleSpawn(false)
|
|
-- Empire
|
|
emp_fleets = {}
|
|
emp_fleets[1] = "Empire Lge Attack"
|
|
emp_fleets[2] = "Empire Med Attack"
|
|
emp_fleets[3] = "Dvaered Goddard" -- They help empire.
|
|
-- Get position.
|
|
x, y = enter_vect:get()
|
|
spawn_vect = enter_vect.new(x, y)
|
|
-- Add pilots.
|
|
for k,v in ipairs(emp_fleets) do
|
|
spawn_vect:add(rnd.int(-offset,offset), rnd.int(-offset, offset))
|
|
pilot.add(v, "def", spawn_vect)
|
|
end
|
|
-- Collective.
|
|
col_fleets = {}
|
|
col_fleets[1] = "Starfire"
|
|
col_fleets[2] = "Collective Lge Swarm"
|
|
col_fleets[3] = "Collective Lge Swarm"
|
|
if var.peek("trinity") == true then
|
|
col_fleets[4] = "Trinity"
|
|
end
|
|
-- Set up position.
|
|
x,y = enter_vect:get()
|
|
spawn_vect = enter_vect.new(-x, -y)
|
|
-- Add pilots.
|
|
col_alive = 0
|
|
for k,v in ipairs(col_fleets) do
|
|
spawn_vect:add(rnd.int(-offset, offset), rnd.int(-offset, offset))
|
|
pilots = pilot.add(v, "def", spawn_vect)
|
|
|
|
-- Handle special ships.
|
|
if v == "Starfire" then
|
|
starfire = pilots[1]
|
|
elseif v == "Trinity" then
|
|
trinity = pilots[1]
|
|
end
|
|
|
|
-- Count amount created.
|
|
col_alive = col_alive + #pilots
|
|
for k,v in ipairs(pilots) do
|
|
hook.pilot( v, "disable", "col_dead" )
|
|
end
|
|
end
|
|
misn_stage = 3
|
|
end
|
|
|
|
|
|
elseif misn_stage == 1 or misn_stage == 3 then
|
|
-- Fled from battle - disgraceful.
|
|
misn_stage = 5
|
|
player.msg( string.format( talk[3], misn_base_sys:name() ))
|
|
|
|
elseif misn_stage == 5 then
|
|
-- Lower faction by a lot, without making hostile.
|
|
f = player.getFaction("Empire")
|
|
if f > 0 then
|
|
if f > 20 then player.modFactionRaw("Empire", -20)
|
|
else player.modFactionRaw("Empire", -f)
|
|
end
|
|
end
|
|
|
|
-- Display message.
|
|
tk.msg(title[4], text[5])
|
|
|
|
-- Mission failed.
|
|
var.push("collective_fail", true)
|
|
misn.finish(false)
|
|
end
|
|
end
|
|
|
|
|
|
-- Handles collective death.
|
|
function col_dead()
|
|
col_alive = col_alive - 1 -- Another one bites the dust.
|
|
|
|
-- All dead -> area clear.
|
|
if col_alive == 0 then
|
|
if misn_stage == 1 then
|
|
misn.setDesc( string.format(misn_desc[2], misn_final_sys:name() ))
|
|
player.msg( string.format( talk[1], misn_final_sys:name() ))
|
|
misn.setMarker(misn_final_sys)
|
|
misn_stage = 2
|
|
elseif misn_stage == 3 then
|
|
misn.setDesc( string.format(misn_desc[3], misn_base:name(), misn_base_sys:name() ))
|
|
player.msg( string.format( talk[2], misn_base_sys:name() ))
|
|
misn.setMarker(misn_base_sys)
|
|
misn_stage = 4
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
-- Handles arrival back to base.
|
|
function land()
|
|
planet = space.getPlanet()
|
|
|
|
-- Final landing stage
|
|
if misn_stage == 4 and planet == misn_base then
|
|
tk.msg( title[3], string.format(text[3], misn_base:name()))
|
|
|
|
-- Rewards
|
|
player.modFaction("Empire",5)
|
|
misn.finish(true)
|
|
diff.apply("collective_dead")
|
|
player.pay( 500000 ) -- 500k
|
|
|
|
tk.msg( title[3], text[4] )
|
|
end
|
|
end
|
|
|