77 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| lang = lephisto.lang()
 | |
| if lang == "es" then
 | |
|   -- Not translated.
 | |
| else -- Default English.
 | |
|   misn_desc     = "%s needs a delivery of %d tons of %s."
 | |
|   misn_reward   = "%d Scred."
 | |
|   title         = {}
 | |
|   title[1]      = "Cargo delivery to %s"
 | |
|   title[2]      = "Freight delivery to %s"
 | |
|   title[3]      = "Transport to %s"
 | |
|   title[4]      = "Delivery to %s"
 | |
|   full_title    = "Ship is full"
 | |
|   full_msg      = "Your ship is too full. You need to make room for %d tons if you want to be able to accept the mission."
 | |
|   accept_title  = "Mission Accepted"
 | |
|   accept_msg    = "The 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 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 agains inf loop.
 | |
|   if i > 10 then
 | |
|     misn.finish()
 | |
|   end
 | |
| 
 | |
|   -- Missions generic.
 | |
|   misn_type = "Cargo"
 | |
|   i = rnd.int(3)
 | |
|   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, planet, carg_mass, carg_type))
 | |
|   reward = carg_mass * (750 + rnd.int(250)) + rnd.int(5000)
 | |
|   misn.setReward(string.format(misn_reward, reward))
 | |
| end
 | |
| 
 | |
| 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, hooks BREAK after accepting.
 | |
|       carg_id = player.addCargo(carg_type, carg_mass)
 | |
|       tk.msg(accept_title, string.format(accept_msg, carg_mass, carg_type))
 | |
|       hook.land("land"); -- Only hook after accepting.
 | |
|     else
 | |
|       tk.msg(toomany_title, toomany_msg)
 | |
|     end
 | |
| end
 | |
| 
 | |
| 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()
 | |
|     else
 | |
|       tk.msg(miss_title, string.format(miss_msg, carg_mass, carg_type))
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | 
