diff --git a/dat/mission.xml b/dat/mission.xml
index e8f9f73..8b8bbd7 100644
--- a/dat/mission.xml
+++ b/dat/mission.xml
@@ -8,7 +8,7 @@
None
-
+
cargo
750
@@ -29,5 +29,17 @@
Neutral
+
+ es_cargo
+
+ req_esd
+
+
+ 350
+ Computer
+ Empire United
+ Neutral
+
+
diff --git a/dat/missions/es_cargo.lua b/dat/missions/es_cargo.lua
new file mode 100644
index 0000000..3e8bb57
--- /dev/null
+++ b/dat/missions/es_cargo.lua
@@ -0,0 +1,78 @@
+lang = lephisto.lang()
+if lang == "es" then
+ -- Not translated yet.
+else -- Default English.
+ misn_desc = "The Empire needs to ship %d tons of %s to %s in the %s system."
+ misn_reward = "%d Scred"
+ title = {}
+ title[1] = "ES: Ship to %s"
+ title[2] = "ES: Delivery to %s"
+ full_title = "Ship is full"
+ full_msg = "Your ship is too full. You need to make room for %d more tons if you want to be able to accept the mission."
+ accept_title = "Mission Accepted"
+ accept_msg = "The Empire workers load %d tons of %s onto your ship."
+ toomany_title = "Too many missions"
+ toomany_msg = "You have too many active missions."
+ finish_title = "Succesful Delivery"
+ finish_msg = "The Empire workers unload the %s at the docks."
+ miss_title = "Cargo Missing"
+ miss_msg = "You are missing the %d tons of %s!"
+end
+
+-- Create the mission.
+function create()
+ -- Target destination.
+ local i = 0
+ repeat
+ planet = space.getPlanet(misn.factions())
+ i = i + 1
+ until planet ~= space.landName() or i > 10
+
+ -- Protect against inf loop.
+ if i > 10 then
+ misn.finish(false)
+ end
+ system = space.getSystem(planet)
+
+ -- Mission generics.
+ misn_type = "Cargo"
+ i = rnd.int(1)
+ misn.setTitle(string.format(title[i+1], planet))
+
+ -- More mission specifics.
+ carg_mass = rnd.int(10, 30)
+ i = rnd.int(1)
+ if i == 0 then carg_type = "Food"
+ elseif i == 1 then carg_type = "Ore"
+ end
+
+ misn.setDesc(string.format(misn_desc, carg_mass, carg_type, planet, system))
+ reward = carg_mass * (1250+rnd.int(250)) + rnd.int(7500)
+ misn.setReward(string.format(misn_reward, reward))
+end
+
+-- Mission is accepted.
+function accept()
+ if player.freeCargo() < carg_mass then
+ tk.msg(full_title, string.format(full_msg, carg_mass-player.freeCargo()))
+ elseif misn.accept() then -- Able to accept the mission, hoos BREAK after accepting.
+ tk.msg(accept_title, string.format(accept_msg, carg_mass, carg_type))
+ hook.lnad("land") -- Only hook after accepting.
+ else
+ tk.msg(toomany_title, toomany_msg)
+ end
+end
+
+-- Land hook.
+function land()
+ if space.landName() == planet then
+ if player.rmCargo(carg_id) then
+ player.pay(reward)
+ tk.msg(finish_title, string.format(finish_msg, carg_type))
+ misn.finish(true)
+ else
+ tk.msg(miss_title, string.format(miss_msg, carg_mass, carg_type))
+ end
+ end
+end
+