diff --git a/code/game/vehicles/spacepods/equipment.dm b/code/game/vehicles/spacepods/equipment.dm
index 80a24e72727..e151e75d99e 100644
--- a/code/game/vehicles/spacepods/equipment.dm
+++ b/code/game/vehicles/spacepods/equipment.dm
@@ -15,14 +15,12 @@
switch(my_atom.dir)
if(NORTH)
firstloc = get_step(my_atom, NORTH)
- firstloc = get_step(firstloc, NORTH)
secondloc = get_step(firstloc,EAST)
if(SOUTH)
firstloc = get_step(my_atom, SOUTH)
secondloc = get_step(firstloc,EAST)
if(EAST)
firstloc = get_step(my_atom, EAST)
- firstloc = get_step(firstloc, EAST)
secondloc = get_step(firstloc,NORTH)
if(WEST)
firstloc = get_step(my_atom, WEST)
@@ -72,34 +70,33 @@
var/shot_cost = 0
var/shots_per = 1
var/fire_sound
- var/fire_delay = 20
+ var/fire_delay = 15
/obj/item/device/spacepod_equipment/weaponry/taser
- name = "\improper taser system"
- desc = "A weak taser system for space pods, fires electrodes that shock upon impact."
+ name = "disabler system"
+ desc = "A weak taser system for space pods, fires disabler beams."
icon_state = "pod_taser"
projectile_type = "/obj/item/projectile/beam/disabler"
- shot_cost = 250
+ shot_cost = 400
fire_sound = "sound/weapons/Taser.ogg"
/obj/item/device/spacepod_equipment/weaponry/burst_taser
- name = "\improper burst taser system"
+ name = "burst taser system"
desc = "A weak taser system for space pods, this one fires 3 at a time."
icon_state = "pod_b_taser"
projectile_type = "/obj/item/projectile/beam/disabler"
- shot_cost = 350
+ shot_cost = 1200
shots_per = 3
fire_sound = "sound/weapons/Taser.ogg"
- fire_delay = 40
+ fire_delay = 30
/obj/item/device/spacepod_equipment/weaponry/laser
- name = "\improper laser system"
+ name = "laser system"
desc = "A weak laser system for space pods, fires concentrated bursts of energy"
icon_state = "pod_w_laser"
projectile_type = "/obj/item/projectile/beam"
- shot_cost = 300
+ shot_cost = 600
fire_sound = 'sound/weapons/Laser.ogg'
- fire_delay = 30
//base item for spacepod misc equipment (tracker)
/obj/item/device/spacepod_equipment/misc
diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm
index af322b3f60f..caf7c8b16be 100644
--- a/code/game/vehicles/spacepods/spacepod.dm
+++ b/code/game/vehicles/spacepods/spacepod.dm
@@ -49,6 +49,9 @@
var/allow2enter = 1
+ var/move_delay = 2
+ var/next_move = 0
+
/obj/spacepod/New()
. = ..()
if(!pod_overlays)
@@ -723,43 +726,45 @@
/datum/global_iterator/pod_tank_give_air
delay = 15
- process(var/obj/spacepod/spacepod)
- if(spacepod && spacepod.internal_tank)
- var/datum/gas_mixture/tank_air = spacepod.internal_tank.return_air()
- var/datum/gas_mixture/cabin_air = spacepod.cabin_air
+/datum/global_iterator/pod_tank_give_air/process(var/obj/spacepod/spacepod)
+ if(spacepod && spacepod.internal_tank)
+ var/datum/gas_mixture/tank_air = spacepod.internal_tank.return_air()
+ var/datum/gas_mixture/cabin_air = spacepod.cabin_air
- var/release_pressure = ONE_ATMOSPHERE
- var/cabin_pressure = cabin_air.return_pressure()
- var/pressure_delta = min(release_pressure - cabin_pressure, (tank_air.return_pressure() - cabin_pressure)/2)
- var/transfer_moles = 0
- if(pressure_delta > 0) //cabin pressure lower than release pressure
- if(tank_air.return_temperature() > 0)
- transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION)
- var/datum/gas_mixture/removed = tank_air.remove(transfer_moles)
- cabin_air.merge(removed)
- else if(pressure_delta < 0) //cabin pressure higher than release pressure
- var/datum/gas_mixture/t_air = spacepod.get_turf_air()
- pressure_delta = cabin_pressure - release_pressure
+ var/release_pressure = ONE_ATMOSPHERE
+ var/cabin_pressure = cabin_air.return_pressure()
+ var/pressure_delta = min(release_pressure - cabin_pressure, (tank_air.return_pressure() - cabin_pressure)/2)
+ var/transfer_moles = 0
+ if(pressure_delta > 0) //cabin pressure lower than release pressure
+ if(tank_air.return_temperature() > 0)
+ transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION)
+ var/datum/gas_mixture/removed = tank_air.remove(transfer_moles)
+ cabin_air.merge(removed)
+ else if(pressure_delta < 0) //cabin pressure higher than release pressure
+ var/datum/gas_mixture/t_air = spacepod.get_turf_air()
+ pressure_delta = cabin_pressure - release_pressure
+ if(t_air)
+ pressure_delta = min(cabin_pressure - t_air.return_pressure(), pressure_delta)
+ if(pressure_delta > 0) //if location pressure is lower than cabin pressure
+ transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION)
+ var/datum/gas_mixture/removed = cabin_air.remove(transfer_moles)
if(t_air)
- pressure_delta = min(cabin_pressure - t_air.return_pressure(), pressure_delta)
- if(pressure_delta > 0) //if location pressure is lower than cabin pressure
- transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION)
- var/datum/gas_mixture/removed = cabin_air.remove(transfer_moles)
- if(t_air)
- t_air.merge(removed)
- else //just delete the cabin gas, we're in space or some shit
- qdel(removed)
- else
- return stop()
- return
+ t_air.merge(removed)
+ else //just delete the cabin gas, we're in space or some shit
+ qdel(removed)
+ else
+ return stop()
+ return
/obj/spacepod/relaymove(mob/user, direction)
if(!CheckIfOccupant2(user))
handlerelaymove(user, direction)
/obj/spacepod/proc/handlerelaymove(mob/user, direction)
+ if(world.time < next_move)
+ return 0
var/moveship = 1
- if(battery && battery.charge >= 3 && health && empcounter == 0)
+ if(battery && battery.charge >= 1 && health && empcounter == 0)
src.dir = direction
switch(direction)
if(NORTH)
@@ -783,16 +788,17 @@
else
if(!battery)
user << "No energy cell detected."
- else if(battery.charge < 3)
+ else if(battery.charge < 1)
user << "Not enough charge left."
else if(!health)
user << "She's dead, Jim"
else if(empcounter != 0)
user << "The pod control interface isn't responding. The console indicates [empcounter] seconds before reboot."
else
- user << "Unknown error has occurred, yell at pomf."
+ user << "Unknown error has occurred, yell at the coders."
return 0
- battery.charge = max(0, battery.charge - 3)
+ battery.charge = max(0, battery.charge - 1)
+ next_move = world.time + move_delay
/obj/spacepod/proc/CheckIfOccupant2(mob/user)
if(!src.occupant2)