Analyzer Scan Refactor

This commit is contained in:
Fox-McCloud
2015-07-02 02:01:13 -04:00
parent 7df2c7e71d
commit 389eab6e32
8 changed files with 52 additions and 128 deletions
+15 -18
View File
@@ -296,9 +296,9 @@ REAGENT SCANNER
w_class = 2.0
flags = CONDUCT
slot_flags = SLOT_BELT
throwforce = 5
throw_speed = 4
throw_range = 20
throwforce = 0
throw_speed = 3
throw_range = 7
m_amt = 30
g_amt = 20
origin_tech = "magnets=1;engineering=1"
@@ -307,9 +307,6 @@ REAGENT SCANNER
if (user.stat)
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
usr << "\red You don't have the dexterity to do this!"
return
var/turf/location = user.loc
if (!( istype(location, /turf) ))
@@ -320,11 +317,11 @@ REAGENT SCANNER
var/pressure = environment.return_pressure()
var/total_moles = environment.total_moles()
user.show_message("\blue <B>Results:</B>", 1)
user.show_message("<span class='info'><B>Results:</B></span>", 1)
if(abs(pressure - ONE_ATMOSPHERE) < 10)
user.show_message("\blue Pressure: [round(pressure,0.1)] kPa", 1)
user.show_message("<span class='info'>Pressure: [round(pressure,0.1)] kPa</span>", 1)
else
user.show_message("\red Pressure: [round(pressure,0.1)] kPa", 1)
user.show_message("<span class='alert'>Pressure: [round(pressure,0.1)] kPa</span>", 1)
if(total_moles)
var/o2_concentration = environment.oxygen/total_moles
var/n2_concentration = environment.nitrogen/total_moles
@@ -333,27 +330,27 @@ REAGENT SCANNER
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
if(abs(n2_concentration - N2STANDARD) < 20)
user.show_message("\blue Nitrogen: [round(n2_concentration*100)]%", 1)
user.show_message("<span class='info'>Nitrogen: [round(n2_concentration*100)] %</span>", 1)
else
user.show_message("\red Nitrogen: [round(n2_concentration*100)]%", 1)
user.show_message("<span class='alert'>Nitrogen: [round(n2_concentration*100)] %</span>", 1)
if(abs(o2_concentration - O2STANDARD) < 2)
user.show_message("\blue Oxygen: [round(o2_concentration*100)]%", 1)
user.show_message("<span class='info'>Oxygen: [round(o2_concentration*100)] %</span>", 1)
else
user.show_message("\red Oxygen: [round(o2_concentration*100)]%", 1)
user.show_message("<span class='alert'>Oxygen: [round(o2_concentration*100)] %</span>", 1)
if(co2_concentration > 0.01)
user.show_message("\red CO2: [round(co2_concentration*100)]%", 1)
user.show_message("<span class='alert'>CO2: [round(co2_concentration*100)] %</span>", 1)
else
user.show_message("\blue CO2: [round(co2_concentration*100)]%", 1)
user.show_message("<span class='info'>CO2: [round(co2_concentration*100)] %</span>", 1)
if(plasma_concentration > 0.01)
user.show_message("\red Plasma: [round(plasma_concentration*100)]%", 1)
user.show_message("<span class='info'>Plasma: [round(plasma_concentration*100)] %</span>", 1)
if(unknown_concentration > 0.01)
user.show_message("\red Unknown: [round(unknown_concentration*100)]%", 1)
user.show_message("<span class='alert'>Unknown: [round(unknown_concentration*100)] %</span>", 1)
user.show_message("\blue Temperature: [round(environment.temperature-T0C)]&deg;C", 1)
user.show_message("<span class='info'>Temperature: [round(environment.temperature-T0C)] &deg;C</span>", 1)
src.add_fingerprint(user)
return
@@ -112,31 +112,7 @@
return
if(istype(W, /obj/item/device/analyzer) && ptank)
var/obj/item/weapon/icon = src
user.visible_message("<span class='notice'>[user] has used the analyzer on \icon[icon]</span>")
var/pressure = ptank.air_contents.return_pressure()
var/total_moles = ptank.air_contents.total_moles()
user << "\blue Results of analysis of \icon[icon]"
if(total_moles>0)
var/o2_concentration = ptank.air_contents.oxygen/total_moles
var/n2_concentration = ptank.air_contents.nitrogen/total_moles
var/co2_concentration = ptank.air_contents.carbon_dioxide/total_moles
var/plasma_concentration = ptank.air_contents.toxins/total_moles
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
user << "\blue Pressure: [round(pressure,0.1)] kPa"
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
user << "\blue Oxygen: [round(o2_concentration*100)]%"
user << "\blue CO2: [round(co2_concentration*100)]%"
user << "\blue Plasma: [round(plasma_concentration*100)]%"
if(unknown_concentration>0.01)
user << "\red Unknown: [round(unknown_concentration*100)]%"
user << "\blue Temperature: [round(ptank.air_contents.temperature-T0C)]&deg;C"
else
user << "\blue Tank is empty!"
return
atmosanalyzer_scan(ptank.air_contents, user)
..()
return
+2 -28
View File
@@ -80,43 +80,17 @@
/obj/item/weapon/tank/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
var/obj/icon = src
src.add_fingerprint(user)
if (istype(src.loc, /obj/item/assembly))
icon = src.loc
if ((istype(W, /obj/item/device/analyzer)) && get_dist(user, src) <= 1)
for (var/mob/O in viewers(user, null))
O << "\red [user] has used [W] on \icon[icon] [src]"
atmosanalyzer_scan(air_contents, user)
var/pressure = air_contents.return_pressure()
var/total_moles = air_contents.total_moles()
user << "\blue Results of analysis of \icon[icon]"
if (total_moles>0)
var/o2_concentration = air_contents.oxygen/total_moles
var/n2_concentration = air_contents.nitrogen/total_moles
var/co2_concentration = air_contents.carbon_dioxide/total_moles
var/plasma_concentration = air_contents.toxins/total_moles
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
user << "\blue Pressure: [round(pressure,0.1)] kPa"
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
user << "\blue Oxygen: [round(o2_concentration*100)]%"
user << "\blue CO2: [round(co2_concentration*100)]%"
user << "\blue Plasma: [round(plasma_concentration*100)]%"
if(unknown_concentration>0.01)
user << "\red Unknown: [round(unknown_concentration*100)]%"
user << "\blue Temperature: [round(air_contents.temperature-T0C)]&deg;C"
else
user << "\blue Tank is empty!"
src.add_fingerprint(user)
else if (istype(W,/obj/item/latexballon))
var/obj/item/latexballon/LB = W
LB.blow(src)
src.add_fingerprint(user)
if(istype(W, /obj/item/device/assembly_holder))
bomb_assemble(W,user)