-Made firesuits effective again by changing the proc which damages the humans due to the flames to fire_act(). The flames themselves will hurt people, who are directly on top of it, but if they're wearing a firesuit the damage is much less.

-Added some procs for getting IDs and getting access. Helps clean it up so we don't have "istype(A, IDCARD) OR istype(A, PDA)" everywhere.

-Made wallets equip able in the ID slot and be able to be used as an ID.

-Added a PACMAN generator in Engineering to jump start the Singularity if they run out of power.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5450 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
giacomand@gmail.com
2013-01-02 11:26:30 +00:00
parent 411b4ece9c
commit f2854db4b0
19 changed files with 226 additions and 192 deletions
+86 -82
View File
@@ -62,101 +62,105 @@
var/bypassing = 0
proc/perform_exposure()
var/turf/simulated/floor/location = loc
if(!istype(location)) return 0
/obj/effect/hotspot/proc/perform_exposure()
var/turf/simulated/floor/location = loc
if(!istype(location)) return 0
if(volume > CELL_VOLUME*0.95) bypassing = 1
else bypassing = 0
if(volume > CELL_VOLUME*0.95) bypassing = 1
else bypassing = 0
if(bypassing)
if(!just_spawned)
volume = location.air.fuel_burnt*FIRE_GROWTH_RATE
temperature = location.air.temperature
else
var/datum/gas_mixture/affected = location.air.remove_ratio(volume/location.air.volume)
affected.temperature = temperature
affected.react()
temperature = affected.temperature
volume = affected.fuel_burnt*FIRE_GROWTH_RATE
location.assume_air(affected)
if(bypassing)
if(!just_spawned)
volume = location.air.fuel_burnt*FIRE_GROWTH_RATE
temperature = location.air.temperature
else
var/datum/gas_mixture/affected = location.air.remove_ratio(volume/location.air.volume)
affected.temperature = temperature
affected.react()
temperature = affected.temperature
volume = affected.fuel_burnt*FIRE_GROWTH_RATE
location.assume_air(affected)
for(var/atom/item in loc)
item.temperature_expose(null, temperature, volume)
for(var/atom/item in loc)
if(!bypassing)
item.temperature_expose(null, temperature, volume)
if(item) // It's possible that the item is deleted in temperature_expose
item.fire_act(null, temperature, volume)
return 0
/obj/effect/hotspot/process(turf/simulated/list/possible_spread)
if(just_spawned)
just_spawned = 0
return 0
var/turf/simulated/floor/location = loc
if(!istype(location))
del(src)
process(turf/simulated/list/possible_spread)
if(just_spawned)
just_spawned = 0
return 0
if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1))
del(src)
var/turf/simulated/floor/location = loc
if(!istype(location))
del(src)
if(location.air.toxins < 0.5 || location.air.oxygen < 0.5)
del(src)
if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1))
del(src)
perform_exposure()
if(location.air.toxins < 0.5 || location.air.oxygen < 0.5)
del(src)
if(location.wet) location.wet = 0
perform_exposure()
if(bypassing)
icon_state = "3"
location.burn_tile()
if(location.wet) location.wet = 0
//Possible spread due to radiated heat
if(location.air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD)
var/radiated_temperature = location.air.temperature*FIRE_SPREAD_RADIOSITY_SCALE
if(bypassing)
icon_state = "3"
location.burn_tile()
//Possible spread due to radiated heat
if(location.air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD)
var/radiated_temperature = location.air.temperature*FIRE_SPREAD_RADIOSITY_SCALE
for(var/turf/simulated/possible_target in possible_spread)
if(!possible_target.active_hotspot)
possible_target.hotspot_expose(radiated_temperature, CELL_VOLUME/4)
for(var/turf/simulated/possible_target in possible_spread)
if(!possible_target.active_hotspot)
possible_target.hotspot_expose(radiated_temperature, CELL_VOLUME/4)
else
if(volume > CELL_VOLUME*0.4)
icon_state = "2"
else
if(volume > CELL_VOLUME*0.4)
icon_state = "2"
icon_state = "1"
if(temperature > location.max_fire_temperature_sustained)
location.max_fire_temperature_sustained = temperature
if(temperature > location.heat_capacity)
location.to_be_destroyed = 1
/*if(prob(25))
location.ReplaceWithSpace()
return 0*/
return 1
/obj/effect/hotspot/New()
..()
dir = pick(cardinal)
return
/obj/effect/hotspot/Del()
if (istype(loc, /turf/simulated))
var/turf/simulated/T = loc
loc:active_hotspot = null
if(T.to_be_destroyed)
var/chance_of_deletion
if (T.heat_capacity) //beware of division by zero
chance_of_deletion = T.max_fire_temperature_sustained / T.heat_capacity * 8 //there is no problem with prob(23456), min() was redundant --rastaf0
else
icon_state = "1"
chance_of_deletion = 100
if(prob(chance_of_deletion))
T.ChangeTurf(/turf/space)
else
T.to_be_destroyed = 0
T.max_fire_temperature_sustained = 0
if(temperature > location.max_fire_temperature_sustained)
location.max_fire_temperature_sustained = temperature
if(temperature > location.heat_capacity)
location.to_be_destroyed = 1
/*if(prob(25))
location.ReplaceWithSpace()
return 0*/
return 1
New()
..()
dir = pick(cardinal)
return
Del()
if (istype(loc, /turf/simulated))
var/turf/simulated/T = loc
loc:active_hotspot = null
if(T.to_be_destroyed)
var/chance_of_deletion
if (T.heat_capacity) //beware of division by zero
chance_of_deletion = T.max_fire_temperature_sustained / T.heat_capacity * 8 //there is no problem with prob(23456), min() was redundant --rastaf0
else
chance_of_deletion = 100
if(prob(chance_of_deletion))
T.ChangeTurf(/turf/space)
else
T.to_be_destroyed = 0
T.max_fire_temperature_sustained = 0
loc = null
..()
return
loc = null
..()
return