mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into dev
This commit is contained in:
@@ -52,6 +52,7 @@
|
|||||||
#include "code\ATMOSPHERICS\datum_pipe_network.dm"
|
#include "code\ATMOSPHERICS\datum_pipe_network.dm"
|
||||||
#include "code\ATMOSPHERICS\datum_pipeline.dm"
|
#include "code\ATMOSPHERICS\datum_pipeline.dm"
|
||||||
#include "code\ATMOSPHERICS\he_pipes.dm"
|
#include "code\ATMOSPHERICS\he_pipes.dm"
|
||||||
|
#include "code\ATMOSPHERICS\mainspipe.dm"
|
||||||
#include "code\ATMOSPHERICS\pipes.dm"
|
#include "code\ATMOSPHERICS\pipes.dm"
|
||||||
#include "code\ATMOSPHERICS\components\portables_connector.dm"
|
#include "code\ATMOSPHERICS\components\portables_connector.dm"
|
||||||
#include "code\ATMOSPHERICS\components\tvalve.dm"
|
#include "code\ATMOSPHERICS\components\tvalve.dm"
|
||||||
@@ -320,6 +321,7 @@
|
|||||||
#include "code\game\machinery\bots\bots.dm"
|
#include "code\game\machinery\bots\bots.dm"
|
||||||
#include "code\game\machinery\bots\cleanbot.dm"
|
#include "code\game\machinery\bots\cleanbot.dm"
|
||||||
#include "code\game\machinery\bots\ed209bot.dm"
|
#include "code\game\machinery\bots\ed209bot.dm"
|
||||||
|
#include "code\game\machinery\bots\farmbot.dm"
|
||||||
#include "code\game\machinery\bots\floorbot.dm"
|
#include "code\game\machinery\bots\floorbot.dm"
|
||||||
#include "code\game\machinery\bots\medbot.dm"
|
#include "code\game\machinery\bots\medbot.dm"
|
||||||
#include "code\game\machinery\bots\mulebot.dm"
|
#include "code\game\machinery\bots\mulebot.dm"
|
||||||
@@ -559,7 +561,9 @@
|
|||||||
#include "code\game\objects\items\weapons\storage\briefcase.dm"
|
#include "code\game\objects\items\weapons\storage\briefcase.dm"
|
||||||
#include "code\game\objects\items\weapons\storage\fancy.dm"
|
#include "code\game\objects\items\weapons\storage\fancy.dm"
|
||||||
#include "code\game\objects\items\weapons\storage\firstaid.dm"
|
#include "code\game\objects\items\weapons\storage\firstaid.dm"
|
||||||
|
#include "code\game\objects\items\weapons\storage\internal.dm"
|
||||||
#include "code\game\objects\items\weapons\storage\lockbox.dm"
|
#include "code\game\objects\items\weapons\storage\lockbox.dm"
|
||||||
|
#include "code\game\objects\items\weapons\storage\misc.dm"
|
||||||
#include "code\game\objects\items\weapons\storage\secure.dm"
|
#include "code\game\objects\items\weapons\storage\secure.dm"
|
||||||
#include "code\game\objects\items\weapons\storage\storage.dm"
|
#include "code\game\objects\items\weapons\storage\storage.dm"
|
||||||
#include "code\game\objects\items\weapons\storage\toolbox.dm"
|
#include "code\game\objects\items\weapons\storage\toolbox.dm"
|
||||||
@@ -569,7 +573,6 @@
|
|||||||
#include "code\game\objects\items\weapons\tanks\tank_types.dm"
|
#include "code\game\objects\items\weapons\tanks\tank_types.dm"
|
||||||
#include "code\game\objects\items\weapons\tanks\tanks.dm"
|
#include "code\game\objects\items\weapons\tanks\tanks.dm"
|
||||||
#include "code\game\objects\random\random.dm"
|
#include "code\game\objects\random\random.dm"
|
||||||
#include "code\game\objects\storage\coat.dm"
|
|
||||||
#include "code\game\objects\structures\barsign.dm"
|
#include "code\game\objects\structures\barsign.dm"
|
||||||
#include "code\game\objects\structures\bedsheet_bin.dm"
|
#include "code\game\objects\structures\bedsheet_bin.dm"
|
||||||
#include "code\game\objects\structures\coathanger.dm"
|
#include "code\game\objects\structures\coathanger.dm"
|
||||||
@@ -759,6 +762,7 @@
|
|||||||
#include "code\modules\clothing\suits\jobs.dm"
|
#include "code\modules\clothing\suits\jobs.dm"
|
||||||
#include "code\modules\clothing\suits\labcoat.dm"
|
#include "code\modules\clothing\suits\labcoat.dm"
|
||||||
#include "code\modules\clothing\suits\miscellaneous.dm"
|
#include "code\modules\clothing\suits\miscellaneous.dm"
|
||||||
|
#include "code\modules\clothing\suits\storage.dm"
|
||||||
#include "code\modules\clothing\suits\utility.dm"
|
#include "code\modules\clothing\suits\utility.dm"
|
||||||
#include "code\modules\clothing\suits\wiz_robe.dm"
|
#include "code\modules\clothing\suits\wiz_robe.dm"
|
||||||
#include "code\modules\clothing\under\chameleon.dm"
|
#include "code\modules\clothing\under\chameleon.dm"
|
||||||
@@ -1342,7 +1346,7 @@
|
|||||||
#include "code\ZAS\Debug.dm"
|
#include "code\ZAS\Debug.dm"
|
||||||
#include "code\ZAS\Diagnostic.dm"
|
#include "code\ZAS\Diagnostic.dm"
|
||||||
#include "code\ZAS\Fire.dm"
|
#include "code\ZAS\Fire.dm"
|
||||||
#include "code\ZAS\Plasma.dm"
|
#include "code\ZAS\Phoron.dm"
|
||||||
#include "code\ZAS\Turf.dm"
|
#include "code\ZAS\Turf.dm"
|
||||||
#include "code\ZAS\Variable Settings.dm"
|
#include "code\ZAS\Variable Settings.dm"
|
||||||
#include "code\ZAS\Zone.dm"
|
#include "code\ZAS\Zone.dm"
|
||||||
|
|||||||
@@ -3,4 +3,4 @@
|
|||||||
MAP_ICON_TYPE: 0
|
MAP_ICON_TYPE: 0
|
||||||
AUTO_FILE_DIR: OFF
|
AUTO_FILE_DIR: OFF
|
||||||
*/
|
*/
|
||||||
// END_INTERNALS
|
// END_INTERNALS
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ obj/machinery/atmospherics/trinary/filter
|
|||||||
/*
|
/*
|
||||||
Filter types:
|
Filter types:
|
||||||
-1: Nothing
|
-1: Nothing
|
||||||
0: Carbon Molecules: Plasma Toxin, Oxygen Agent B
|
0: Phoron: Phoron, Oxygen Agent B
|
||||||
1: Oxygen: Oxygen ONLY
|
1: Oxygen: Oxygen ONLY
|
||||||
2: Nitrogen: Nitrogen ONLY
|
2: Nitrogen: Nitrogen ONLY
|
||||||
3: Carbon Dioxide: Carbon Dioxide ONLY
|
3: Carbon Dioxide: Carbon Dioxide ONLY
|
||||||
@@ -84,8 +84,8 @@ Filter types:
|
|||||||
|
|
||||||
switch(filter_type)
|
switch(filter_type)
|
||||||
if(0) //removing hydrocarbons
|
if(0) //removing hydrocarbons
|
||||||
filtered_out.toxins = removed.toxins
|
filtered_out.phoron = removed.phoron
|
||||||
removed.toxins = 0
|
removed.phoron = 0
|
||||||
|
|
||||||
if(removed.trace_gases.len>0)
|
if(removed.trace_gases.len>0)
|
||||||
for(var/datum/gas/trace_gas in removed.trace_gases)
|
for(var/datum/gas/trace_gas in removed.trace_gases)
|
||||||
@@ -170,7 +170,7 @@ obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE
|
|||||||
var/current_filter_type
|
var/current_filter_type
|
||||||
switch(filter_type)
|
switch(filter_type)
|
||||||
if(0)
|
if(0)
|
||||||
current_filter_type = "Carbon Molecules"
|
current_filter_type = "Phoron"
|
||||||
if(1)
|
if(1)
|
||||||
current_filter_type = "Oxygen"
|
current_filter_type = "Oxygen"
|
||||||
if(2)
|
if(2)
|
||||||
@@ -188,7 +188,7 @@ obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE
|
|||||||
<b>Power: </b><a href='?src=\ref[src];power=1'>[on?"On":"Off"]</a><br>
|
<b>Power: </b><a href='?src=\ref[src];power=1'>[on?"On":"Off"]</a><br>
|
||||||
<b>Filtering: </b>[current_filter_type]<br><HR>
|
<b>Filtering: </b>[current_filter_type]<br><HR>
|
||||||
<h4>Set Filter Type:</h4>
|
<h4>Set Filter Type:</h4>
|
||||||
<A href='?src=\ref[src];filterset=0'>Carbon Molecules</A><BR>
|
<A href='?src=\ref[src];filterset=0'>Phoron</A><BR>
|
||||||
<A href='?src=\ref[src];filterset=1'>Oxygen</A><BR>
|
<A href='?src=\ref[src];filterset=1'>Oxygen</A><BR>
|
||||||
<A href='?src=\ref[src];filterset=2'>Nitrogen</A><BR>
|
<A href='?src=\ref[src];filterset=2'>Nitrogen</A><BR>
|
||||||
<A href='?src=\ref[src];filterset=3'>Carbon Dioxide</A><BR>
|
<A href='?src=\ref[src];filterset=3'>Carbon Dioxide</A><BR>
|
||||||
@@ -234,4 +234,45 @@ obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE
|
|||||||
*/
|
*/
|
||||||
return
|
return
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/filter/m_filter
|
||||||
|
icon = 'icons/obj/atmospherics/m_filter.dmi'
|
||||||
|
icon_state = "intact_off"
|
||||||
|
|
||||||
|
dir = SOUTH
|
||||||
|
initialize_directions = SOUTH|NORTH|EAST
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/filter/m_filter/New()
|
||||||
|
..()
|
||||||
|
switch(dir)
|
||||||
|
if(NORTH)
|
||||||
|
initialize_directions = WEST|NORTH|SOUTH
|
||||||
|
if(SOUTH)
|
||||||
|
initialize_directions = SOUTH|EAST|NORTH
|
||||||
|
if(EAST)
|
||||||
|
initialize_directions = EAST|WEST|NORTH
|
||||||
|
if(WEST)
|
||||||
|
initialize_directions = WEST|SOUTH|EAST
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/filter/m_filter/initialize()
|
||||||
|
if(node1 && node2 && node3) return
|
||||||
|
|
||||||
|
var/node1_connect = turn(dir, -180)
|
||||||
|
var/node2_connect = turn(dir, 90)
|
||||||
|
var/node3_connect = dir
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node3_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node3 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
update_icon()
|
||||||
|
|||||||
@@ -160,3 +160,93 @@ obj/machinery/atmospherics/trinary/mixer
|
|||||||
src.update_icon()
|
src.update_icon()
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/mixer/t_mixer
|
||||||
|
icon = 'icons/obj/atmospherics/t_mixer.dmi'
|
||||||
|
icon_state = "intact_off"
|
||||||
|
|
||||||
|
dir = SOUTH
|
||||||
|
initialize_directions = SOUTH|EAST|WEST
|
||||||
|
|
||||||
|
//node 3 is the outlet, nodes 1 & 2 are intakes
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/mixer/t_mixer/New()
|
||||||
|
..()
|
||||||
|
switch(dir)
|
||||||
|
if(NORTH)
|
||||||
|
initialize_directions = EAST|NORTH|WEST
|
||||||
|
if(SOUTH)
|
||||||
|
initialize_directions = SOUTH|WEST|EAST
|
||||||
|
if(EAST)
|
||||||
|
initialize_directions = EAST|NORTH|SOUTH
|
||||||
|
if(WEST)
|
||||||
|
initialize_directions = WEST|NORTH|SOUTH
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/mixer/t_mixer/initialize()
|
||||||
|
if(node1 && node2 && node3) return
|
||||||
|
|
||||||
|
var/node1_connect = turn(dir, -90)
|
||||||
|
var/node2_connect = turn(dir, 90)
|
||||||
|
var/node3_connect = dir
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node3_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node3 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/mixer/m_mixer
|
||||||
|
icon = 'icons/obj/atmospherics/m_mixer.dmi'
|
||||||
|
icon_state = "intact_off"
|
||||||
|
|
||||||
|
dir = SOUTH
|
||||||
|
initialize_directions = SOUTH|NORTH|EAST
|
||||||
|
|
||||||
|
//node 3 is the outlet, nodes 1 & 2 are intakes
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/mixer/m_mixer/New()
|
||||||
|
..()
|
||||||
|
switch(dir)
|
||||||
|
if(NORTH)
|
||||||
|
initialize_directions = WEST|NORTH|SOUTH
|
||||||
|
if(SOUTH)
|
||||||
|
initialize_directions = SOUTH|EAST|NORTH
|
||||||
|
if(EAST)
|
||||||
|
initialize_directions = EAST|WEST|NORTH
|
||||||
|
if(WEST)
|
||||||
|
initialize_directions = WEST|SOUTH|EAST
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/trinary/mixer/m_mixer/initialize()
|
||||||
|
if(node1 && node2 && node3) return
|
||||||
|
|
||||||
|
var/node1_connect = turn(dir, -180)
|
||||||
|
var/node2_connect = turn(dir, 90)
|
||||||
|
var/node3_connect = dir
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(src,node3_connect))
|
||||||
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
|
node3 = target
|
||||||
|
break
|
||||||
|
|
||||||
|
update_icon()
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"scrubbing" = scrubbing,
|
"scrubbing" = scrubbing,
|
||||||
"panic" = panic,
|
"panic" = panic,
|
||||||
"filter_co2" = scrub_CO2,
|
"filter_co2" = scrub_CO2,
|
||||||
"filter_toxins" = scrub_Toxins,
|
"filter_phoron" = scrub_Toxins,
|
||||||
"filter_n2o" = scrub_N2O,
|
"filter_n2o" = scrub_N2O,
|
||||||
"sigtype" = "status"
|
"sigtype" = "status"
|
||||||
)
|
)
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
var/datum/gas_mixture/environment = loc.return_air()
|
var/datum/gas_mixture/environment = loc.return_air()
|
||||||
|
|
||||||
if(scrubbing)
|
if(scrubbing)
|
||||||
if((environment.toxins>0.001) || (environment.carbon_dioxide>0.001) || (environment.trace_gases.len>0))
|
if((environment.phoron>0.001) || (environment.carbon_dioxide>0.001) || (environment.trace_gases.len>0))
|
||||||
var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles()
|
var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles()
|
||||||
|
|
||||||
//Take a gas sample
|
//Take a gas sample
|
||||||
@@ -116,8 +116,8 @@
|
|||||||
var/datum/gas_mixture/filtered_out = new
|
var/datum/gas_mixture/filtered_out = new
|
||||||
filtered_out.temperature = removed.temperature
|
filtered_out.temperature = removed.temperature
|
||||||
if(scrub_Toxins)
|
if(scrub_Toxins)
|
||||||
filtered_out.toxins = removed.toxins
|
filtered_out.phoron = removed.phoron
|
||||||
removed.toxins = 0
|
removed.phoron = 0
|
||||||
if(scrub_CO2)
|
if(scrub_CO2)
|
||||||
filtered_out.carbon_dioxide = removed.carbon_dioxide
|
filtered_out.carbon_dioxide = removed.carbon_dioxide
|
||||||
removed.carbon_dioxide = 0
|
removed.carbon_dioxide = 0
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ datum/pipe_network
|
|||||||
|
|
||||||
air_transient.oxygen = 0
|
air_transient.oxygen = 0
|
||||||
air_transient.nitrogen = 0
|
air_transient.nitrogen = 0
|
||||||
air_transient.toxins = 0
|
air_transient.phoron = 0
|
||||||
air_transient.carbon_dioxide = 0
|
air_transient.carbon_dioxide = 0
|
||||||
|
|
||||||
|
|
||||||
@@ -94,7 +94,7 @@ datum/pipe_network
|
|||||||
|
|
||||||
air_transient.oxygen += gas.oxygen
|
air_transient.oxygen += gas.oxygen
|
||||||
air_transient.nitrogen += gas.nitrogen
|
air_transient.nitrogen += gas.nitrogen
|
||||||
air_transient.toxins += gas.toxins
|
air_transient.phoron += gas.phoron
|
||||||
air_transient.carbon_dioxide += gas.carbon_dioxide
|
air_transient.carbon_dioxide += gas.carbon_dioxide
|
||||||
|
|
||||||
if(gas.trace_gases.len)
|
if(gas.trace_gases.len)
|
||||||
@@ -122,7 +122,7 @@ datum/pipe_network
|
|||||||
for(var/datum/gas_mixture/gas in gases)
|
for(var/datum/gas_mixture/gas in gases)
|
||||||
gas.oxygen = air_transient.oxygen*gas.volume/air_transient.volume
|
gas.oxygen = air_transient.oxygen*gas.volume/air_transient.volume
|
||||||
gas.nitrogen = air_transient.nitrogen*gas.volume/air_transient.volume
|
gas.nitrogen = air_transient.nitrogen*gas.volume/air_transient.volume
|
||||||
gas.toxins = air_transient.toxins*gas.volume/air_transient.volume
|
gas.phoron = air_transient.phoron*gas.volume/air_transient.volume
|
||||||
gas.carbon_dioxide = air_transient.carbon_dioxide*gas.volume/air_transient.volume
|
gas.carbon_dioxide = air_transient.carbon_dioxide*gas.volume/air_transient.volume
|
||||||
|
|
||||||
gas.temperature = air_transient.temperature
|
gas.temperature = air_transient.temperature
|
||||||
@@ -149,7 +149,7 @@ proc/equalize_gases(datum/gas_mixture/list/gases)
|
|||||||
|
|
||||||
var/total_oxygen = 0
|
var/total_oxygen = 0
|
||||||
var/total_nitrogen = 0
|
var/total_nitrogen = 0
|
||||||
var/total_toxins = 0
|
var/total_phoron = 0
|
||||||
var/total_carbon_dioxide = 0
|
var/total_carbon_dioxide = 0
|
||||||
|
|
||||||
var/list/total_trace_gases = list()
|
var/list/total_trace_gases = list()
|
||||||
@@ -162,7 +162,7 @@ proc/equalize_gases(datum/gas_mixture/list/gases)
|
|||||||
|
|
||||||
total_oxygen += gas.oxygen
|
total_oxygen += gas.oxygen
|
||||||
total_nitrogen += gas.nitrogen
|
total_nitrogen += gas.nitrogen
|
||||||
total_toxins += gas.toxins
|
total_phoron += gas.phoron
|
||||||
total_carbon_dioxide += gas.carbon_dioxide
|
total_carbon_dioxide += gas.carbon_dioxide
|
||||||
|
|
||||||
if(gas.trace_gases.len)
|
if(gas.trace_gases.len)
|
||||||
@@ -186,7 +186,7 @@ proc/equalize_gases(datum/gas_mixture/list/gases)
|
|||||||
for(var/datum/gas_mixture/gas in gases)
|
for(var/datum/gas_mixture/gas in gases)
|
||||||
gas.oxygen = total_oxygen*gas.volume/total_volume
|
gas.oxygen = total_oxygen*gas.volume/total_volume
|
||||||
gas.nitrogen = total_nitrogen*gas.volume/total_volume
|
gas.nitrogen = total_nitrogen*gas.volume/total_volume
|
||||||
gas.toxins = total_toxins*gas.volume/total_volume
|
gas.phoron = total_phoron*gas.volume/total_volume
|
||||||
gas.carbon_dioxide = total_carbon_dioxide*gas.volume/total_volume
|
gas.carbon_dioxide = total_carbon_dioxide*gas.volume/total_volume
|
||||||
|
|
||||||
gas.temperature = temperature
|
gas.temperature = temperature
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ datum/pipeline
|
|||||||
|
|
||||||
member.air_temporary.oxygen = air.oxygen*member.volume/air.volume
|
member.air_temporary.oxygen = air.oxygen*member.volume/air.volume
|
||||||
member.air_temporary.nitrogen = air.nitrogen*member.volume/air.volume
|
member.air_temporary.nitrogen = air.nitrogen*member.volume/air.volume
|
||||||
member.air_temporary.toxins = air.toxins*member.volume/air.volume
|
member.air_temporary.phoron = air.phoron*member.volume/air.volume
|
||||||
member.air_temporary.carbon_dioxide = air.carbon_dioxide*member.volume/air.volume
|
member.air_temporary.carbon_dioxide = air.carbon_dioxide*member.volume/air.volume
|
||||||
|
|
||||||
member.air_temporary.temperature = air.temperature
|
member.air_temporary.temperature = air.temperature
|
||||||
|
|||||||
@@ -36,8 +36,9 @@ obj/machinery/atmospherics/mains_pipe
|
|||||||
icon = 'icons/obj/atmospherics/mainspipe.dmi'
|
icon = 'icons/obj/atmospherics/mainspipe.dmi'
|
||||||
layer = 2.4 //under wires with their 2.5
|
layer = 2.4 //under wires with their 2.5
|
||||||
|
|
||||||
|
force = 20
|
||||||
|
|
||||||
var/volume = 0
|
var/volume = 0
|
||||||
var/force = 20
|
|
||||||
|
|
||||||
var/alert_pressure = 80*ONE_ATMOSPHERE
|
var/alert_pressure = 80*ONE_ATMOSPHERE
|
||||||
|
|
||||||
@@ -535,6 +536,8 @@ obj/machinery/atmospherics/mains_pipe/cap
|
|||||||
level = 2
|
level = 2
|
||||||
icon_state = "cap"
|
icon_state = "cap"
|
||||||
|
|
||||||
|
//TODO: Get Mains valves working!
|
||||||
|
/*
|
||||||
obj/machinery/atmospherics/mains_pipe/valve
|
obj/machinery/atmospherics/mains_pipe/valve
|
||||||
icon_state = "mvalve0"
|
icon_state = "mvalve0"
|
||||||
|
|
||||||
@@ -700,4 +703,5 @@ obj/machinery/atmospherics/mains_pipe/valve
|
|||||||
if(open)
|
if(open)
|
||||||
close()
|
close()
|
||||||
else
|
else
|
||||||
open()
|
open()
|
||||||
|
*/
|
||||||
@@ -884,22 +884,22 @@ obj/machinery/atmospherics/pipe/tank/carbon_dioxide
|
|||||||
|
|
||||||
..()
|
..()
|
||||||
|
|
||||||
obj/machinery/atmospherics/pipe/tank/toxins
|
obj/machinery/atmospherics/pipe/tank/phoron
|
||||||
icon = 'icons/obj/atmospherics/orange_pipe_tank.dmi'
|
icon = 'icons/obj/atmospherics/orange_pipe_tank.dmi'
|
||||||
name = "Pressure Tank (Plasma)"
|
name = "Pressure Tank (Phoron)"
|
||||||
|
|
||||||
New()
|
New()
|
||||||
air_temporary = new
|
air_temporary = new
|
||||||
air_temporary.volume = volume
|
air_temporary.volume = volume
|
||||||
air_temporary.temperature = T20C
|
air_temporary.temperature = T20C
|
||||||
|
|
||||||
air_temporary.toxins = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature)
|
air_temporary.phoron = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature)
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|
||||||
obj/machinery/atmospherics/pipe/tank/oxygen_agent_b
|
obj/machinery/atmospherics/pipe/tank/oxygen_agent_b
|
||||||
icon = 'icons/obj/atmospherics/red_orange_pipe_tank.dmi'
|
icon = 'icons/obj/atmospherics/red_orange_pipe_tank.dmi'
|
||||||
name = "Pressure Tank (Oxygen + Plasma)"
|
name = "Pressure Tank (Oxygen + Phoron)"
|
||||||
|
|
||||||
New()
|
New()
|
||||||
air_temporary = new
|
air_temporary = new
|
||||||
@@ -1005,15 +1005,15 @@ obj/machinery/atmospherics/pipe/tank/attackby(var/obj/item/weapon/W as obj, var/
|
|||||||
var/o2_concentration = parent.air.oxygen/total_moles
|
var/o2_concentration = parent.air.oxygen/total_moles
|
||||||
var/n2_concentration = parent.air.nitrogen/total_moles
|
var/n2_concentration = parent.air.nitrogen/total_moles
|
||||||
var/co2_concentration = parent.air.carbon_dioxide/total_moles
|
var/co2_concentration = parent.air.carbon_dioxide/total_moles
|
||||||
var/plasma_concentration = parent.air.toxins/total_moles
|
var/phoron_concentration = parent.air.phoron/total_moles
|
||||||
|
|
||||||
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
|
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+phoron_concentration)
|
||||||
|
|
||||||
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
||||||
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
||||||
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
||||||
user << "\blue CO2: [round(co2_concentration*100)]%"
|
user << "\blue CO2: [round(co2_concentration*100)]%"
|
||||||
user << "\blue Plasma: [round(plasma_concentration*100)]%"
|
user << "\blue Phoron: [round(phoron_concentration*100)]%"
|
||||||
if(unknown_concentration>0.01)
|
if(unknown_concentration>0.01)
|
||||||
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
||||||
user << "\blue Temperature: [round(parent.air.temperature-T0C)]°C"
|
user << "\blue Temperature: [round(parent.air.temperature-T0C)]°C"
|
||||||
|
|||||||
@@ -7,11 +7,11 @@
|
|||||||
name = "wall"
|
name = "wall"
|
||||||
anchored = 1
|
anchored = 1
|
||||||
icon = 'icons/turf/walls.dmi'
|
icon = 'icons/turf/walls.dmi'
|
||||||
icon_state = "plasma0"
|
icon_state = "phoron0"
|
||||||
opacity = 1
|
opacity = 1
|
||||||
var/closed_wall_dir = 0
|
var/closed_wall_dir = 0
|
||||||
var/opening = 0
|
var/opening = 0
|
||||||
var/mineral = "plasma"
|
var/mineral = "phoron"
|
||||||
var/is_metal = 0
|
var/is_metal = 0
|
||||||
|
|
||||||
/obj/structure/temple_falsewall/New()
|
/obj/structure/temple_falsewall/New()
|
||||||
|
|||||||
@@ -60,9 +60,9 @@
|
|||||||
my_ladder.id = rand(999)
|
my_ladder.id = rand(999)
|
||||||
my_ladder.height = -1
|
my_ladder.height = -1
|
||||||
|
|
||||||
//loop over the walls in the temple and make them a random pre-chosen mineral (null is a stand in for plasma, which the walls already are)
|
//loop over the walls in the temple and make them a random pre-chosen mineral (null is a stand in for phoron, which the walls already are)
|
||||||
//treat plasma slightly differently because it's the default wall type
|
//treat phoron slightly differently because it's the default wall type
|
||||||
var/mineral = pick("uranium","sandstone","gold","iron","silver","diamond","clown","plasma")
|
var/mineral = pick("uranium","sandstone","gold","iron","silver","diamond","clown","phoron")
|
||||||
//world << "init [mineral]"
|
//world << "init [mineral]"
|
||||||
var/area/my_area = get_area(src)
|
var/area/my_area = get_area(src)
|
||||||
var/list/temple_turfs = get_area_turfs(my_area.type)
|
var/list/temple_turfs = get_area_turfs(my_area.type)
|
||||||
@@ -86,8 +86,8 @@
|
|||||||
del(D)
|
del(D)
|
||||||
|
|
||||||
for(var/turf/unsimulated/wall/T in temple_turfs)
|
for(var/turf/unsimulated/wall/T in temple_turfs)
|
||||||
if(mineral != "plasma")
|
if(mineral != "phoron")
|
||||||
T.icon_state = replacetext(T.icon_state, "plasma", mineral)
|
T.icon_state = replacetext(T.icon_state, "phoron", mineral)
|
||||||
|
|
||||||
/*for(var/obj/effect/landmark/falsewall_spawner/F in T.contents)
|
/*for(var/obj/effect/landmark/falsewall_spawner/F in T.contents)
|
||||||
//world << "falsewall_spawner found in wall"
|
//world << "falsewall_spawner found in wall"
|
||||||
|
|||||||
@@ -289,8 +289,8 @@
|
|||||||
var/trap_type
|
var/trap_type
|
||||||
|
|
||||||
New()
|
New()
|
||||||
trap_type = pick(50;"thrower","sawburst","poison_dart","flame_burst",10;"plasma_gas",5;"n2_gas")
|
trap_type = pick(50;"thrower","sawburst","poison_dart","flame_burst",10;"phoron_gas",5;"n2_gas")
|
||||||
if( (trap_type == "plasma_gas" || trap_type == "n2_gas") && prob(10))
|
if( (trap_type == "phoron_gas" || trap_type == "n2_gas") && prob(10))
|
||||||
new /obj/effect/glowshroom(src.loc)
|
new /obj/effect/glowshroom(src.loc)
|
||||||
|
|
||||||
//hint that this tile is dangerous
|
//hint that this tile is dangerous
|
||||||
@@ -337,8 +337,8 @@
|
|||||||
myloc.overlays -= flicker
|
myloc.overlays -= flicker
|
||||||
del flicker
|
del flicker
|
||||||
//flick("flameburst",src)
|
//flick("flameburst",src)
|
||||||
if("plasma_gas")
|
if("phoron_gas")
|
||||||
//spawn a bunch of plasma
|
//spawn a bunch of phoron
|
||||||
if("n2_gas")
|
if("n2_gas")
|
||||||
//spawn a bunch of sleeping gas
|
//spawn a bunch of sleeping gas
|
||||||
if("thrower")
|
if("thrower")
|
||||||
|
|||||||
@@ -174,5 +174,5 @@
|
|||||||
desc = ""
|
desc = ""
|
||||||
density = 1
|
density = 1
|
||||||
icon = 'icons/turf/walls.dmi'
|
icon = 'icons/turf/walls.dmi'
|
||||||
icon_state = "plasma0"
|
icon_state = "phoron0"
|
||||||
var/mineral = "plasma"
|
var/mineral = "phoron"
|
||||||
|
|||||||
@@ -56,15 +56,15 @@ datum/design/rust_fuel_port
|
|||||||
/obj/item/weapon/module/rust_fuel_compressor
|
/obj/item/weapon/module/rust_fuel_compressor
|
||||||
name = "Internal circuitry (RUST fuel compressor)"
|
name = "Internal circuitry (RUST fuel compressor)"
|
||||||
icon_state = "card_mod"
|
icon_state = "card_mod"
|
||||||
origin_tech = "materials=6;plasmatech=4"
|
origin_tech = "materials=6;phorontech=4"
|
||||||
|
|
||||||
datum/design/rust_fuel_compressor
|
datum/design/rust_fuel_compressor
|
||||||
name = "Circuit Design (RUST fuel compressor)"
|
name = "Circuit Design (RUST fuel compressor)"
|
||||||
desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine."
|
desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine."
|
||||||
id = "rust_fuel_compressor"
|
id = "rust_fuel_compressor"
|
||||||
req_tech = list("materials" = 6, "plasmatech" = 4)
|
req_tech = list("materials" = 6, "phorontech" = 4)
|
||||||
build_type = IMPRINTER
|
build_type = IMPRINTER
|
||||||
materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 1000)
|
materials = list("$glass" = 2000, "sacid" = 20, "$phoron" = 3000, "$diamond" = 1000)
|
||||||
build_path = "/obj/item/weapon/module/rust_fuel_compressor"
|
build_path = "/obj/item/weapon/module/rust_fuel_compressor"
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
@@ -74,7 +74,7 @@ datum/design/rust_fuel_compressor
|
|||||||
name = "Internal circuitry (RUST tokamak core)"
|
name = "Internal circuitry (RUST tokamak core)"
|
||||||
build_path = "/obj/machinery/power/rust_core"
|
build_path = "/obj/machinery/power/rust_core"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = "bluespace=3;plasmatech=4;magnets=5;powerstorage=6"
|
origin_tech = "bluespace=3;phorontech=4;magnets=5;powerstorage=6"
|
||||||
frame_desc = "Requires 2 Pico Manipulators, 1 Ultra Micro-Laser, 5 Pieces of Cable, 1 Subspace Crystal and 1 Console Screen."
|
frame_desc = "Requires 2 Pico Manipulators, 1 Ultra Micro-Laser, 5 Pieces of Cable, 1 Subspace Crystal and 1 Console Screen."
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
||||||
@@ -87,10 +87,10 @@ datum/design/rust_core
|
|||||||
name = "Internal circuitry (RUST tokamak core)"
|
name = "Internal circuitry (RUST tokamak core)"
|
||||||
desc = "The circuit board that for a RUST-pattern tokamak fusion core."
|
desc = "The circuit board that for a RUST-pattern tokamak fusion core."
|
||||||
id = "pacman"
|
id = "pacman"
|
||||||
req_tech = list(bluespace = 3, plasmatech = 4, magnets = 5, powerstorage = 6)
|
req_tech = list(bluespace = 3, phorontech = 4, magnets = 5, powerstorage = 6)
|
||||||
build_type = IMPRINTER
|
build_type = IMPRINTER
|
||||||
reliability_base = 79
|
reliability_base = 79
|
||||||
materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 2000)
|
materials = list("$glass" = 2000, "sacid" = 20, "$phoron" = 3000, "$diamond" = 2000)
|
||||||
build_path = "/obj/item/weapon/circuitboard/rust_core"
|
build_path = "/obj/item/weapon/circuitboard/rust_core"
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
@@ -100,7 +100,7 @@ datum/design/rust_core
|
|||||||
name = "Internal circuitry (RUST fuel injector)"
|
name = "Internal circuitry (RUST fuel injector)"
|
||||||
build_path = "/obj/machinery/power/rust_fuel_injector"
|
build_path = "/obj/machinery/power/rust_fuel_injector"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = "powerstorage=3;engineering=4;plasmatech=4;materials=6"
|
origin_tech = "powerstorage=3;engineering=4;phorontech=4;materials=6"
|
||||||
frame_desc = "Requires 2 Pico Manipulators, 1 Phasic Scanning Module, 1 Super Matter Bin, 1 Console Screen and 5 Pieces of Cable."
|
frame_desc = "Requires 2 Pico Manipulators, 1 Phasic Scanning Module, 1 Super Matter Bin, 1 Console Screen and 5 Pieces of Cable."
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
||||||
@@ -113,8 +113,8 @@ datum/design/rust_injector
|
|||||||
name = "Internal circuitry (RUST tokamak core)"
|
name = "Internal circuitry (RUST tokamak core)"
|
||||||
desc = "The circuit board that for a RUST-pattern particle accelerator."
|
desc = "The circuit board that for a RUST-pattern particle accelerator."
|
||||||
id = "pacman"
|
id = "pacman"
|
||||||
req_tech = list(powerstorage = 3, engineering = 4, plasmatech = 4, materials = 6)
|
req_tech = list(powerstorage = 3, engineering = 4, phorontech = 4, materials = 6)
|
||||||
build_type = IMPRINTER
|
build_type = IMPRINTER
|
||||||
reliability_base = 79
|
reliability_base = 79
|
||||||
materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$uranium" = 2000)
|
materials = list("$glass" = 2000, "sacid" = 20, "$phoron" = 3000, "$uranium" = 2000)
|
||||||
build_path = "/obj/item/weapon/circuitboard/rust_core"
|
build_path = "/obj/item/weapon/circuitboard/rust_core"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Deuterium-deuterium fusion : 40 x 10^7 K
|
|||||||
Deuterium-tritium fusion: 4.5 x 10^7 K
|
Deuterium-tritium fusion: 4.5 x 10^7 K
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#DEFINE MAX_STORED_ENERGY (held_plasma.toxins * held_plasma.toxins * SPECIFIC_HEAT_TOXIN)
|
//#DEFINE MAX_STORED_ENERGY (held_phoron.phoron * held_phoron.phoron * SPECIFIC_HEAT_TOXIN)
|
||||||
|
|
||||||
/obj/effect/rust_em_field
|
/obj/effect/rust_em_field
|
||||||
name = "EM Field"
|
name = "EM Field"
|
||||||
@@ -29,7 +29,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
|
|||||||
var/field_strength = 0.01 //in teslas, max is 50T
|
var/field_strength = 0.01 //in teslas, max is 50T
|
||||||
|
|
||||||
var/obj/machinery/rust/rad_source/radiator
|
var/obj/machinery/rust/rad_source/radiator
|
||||||
var/datum/gas_mixture/held_plasma = new
|
var/datum/gas_mixture/held_phoron = new
|
||||||
var/particle_catchers[13]
|
var/particle_catchers[13]
|
||||||
|
|
||||||
var/emp_overload = 0
|
var/emp_overload = 0
|
||||||
@@ -128,34 +128,34 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
|
|||||||
radiation = 0
|
radiation = 0
|
||||||
|
|
||||||
//update values
|
//update values
|
||||||
var/transfer_ratio = field_strength / 50 //higher field strength will result in faster plasma aggregation
|
var/transfer_ratio = field_strength / 50 //higher field strength will result in faster phoron aggregation
|
||||||
major_radius = field_strength * 0.21875// max = 8.75m
|
major_radius = field_strength * 0.21875// max = 8.75m
|
||||||
minor_radius = field_strength * 0.2125// max = 8.625m
|
minor_radius = field_strength * 0.2125// max = 8.625m
|
||||||
volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 2.5 * 7 * 7 * transfer_ratio //one tile = 2.5m*2.5m*2.5m
|
volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 2.5 * 7 * 7 * transfer_ratio //one tile = 2.5m*2.5m*2.5m
|
||||||
|
|
||||||
//add plasma from the surrounding environment
|
//add phoron from the surrounding environment
|
||||||
var/datum/gas_mixture/environment = loc.return_air()
|
var/datum/gas_mixture/environment = loc.return_air()
|
||||||
|
|
||||||
//hack in some stuff to remove plasma from the air because SCIENCE
|
//hack in some stuff to remove phoron from the air because SCIENCE
|
||||||
//the amount of plasma pulled in each update is relative to the field strength, with 50T (max field strength) = 100% of area covered by the field
|
//the amount of phoron pulled in each update is relative to the field strength, with 50T (max field strength) = 100% of area covered by the field
|
||||||
//at minimum strength, 0.25% of the field volume is pulled in per update (?)
|
//at minimum strength, 0.25% of the field volume is pulled in per update (?)
|
||||||
//have a max of 1000 moles suspended
|
//have a max of 1000 moles suspended
|
||||||
if(held_plasma.toxins < transfer_ratio * 1000)
|
if(held_phoron.phoron < transfer_ratio * 1000)
|
||||||
var/moles_covered = environment.return_pressure()*volume_covered/(environment.temperature * R_IDEAL_GAS_EQUATION)
|
var/moles_covered = environment.return_pressure()*volume_covered/(environment.temperature * R_IDEAL_GAS_EQUATION)
|
||||||
//world << "\blue moles_covered: [moles_covered]"
|
//world << "\blue moles_covered: [moles_covered]"
|
||||||
//
|
//
|
||||||
var/datum/gas_mixture/gas_covered = environment.remove(moles_covered)
|
var/datum/gas_mixture/gas_covered = environment.remove(moles_covered)
|
||||||
var/datum/gas_mixture/plasma_captured = new /datum/gas_mixture()
|
var/datum/gas_mixture/phoron_captured = new /datum/gas_mixture()
|
||||||
//
|
//
|
||||||
plasma_captured.toxins = round(gas_covered.toxins * transfer_ratio)
|
phoron_captured.phoron = round(gas_covered.phoron * transfer_ratio)
|
||||||
//world << "\blue[plasma_captured.toxins] moles of plasma captured"
|
//world << "\blue[phoron_captured.phoron] moles of phoron captured"
|
||||||
plasma_captured.temperature = gas_covered.temperature
|
phoron_captured.temperature = gas_covered.temperature
|
||||||
plasma_captured.update_values()
|
phoron_captured.update_values()
|
||||||
//
|
//
|
||||||
gas_covered.toxins -= plasma_captured.toxins
|
gas_covered.phoron -= phoron_captured.phoron
|
||||||
gas_covered.update_values()
|
gas_covered.update_values()
|
||||||
//
|
//
|
||||||
held_plasma.merge(plasma_captured)
|
held_phoron.merge(phoron_captured)
|
||||||
//
|
//
|
||||||
environment.merge(gas_covered)
|
environment.merge(gas_covered)
|
||||||
|
|
||||||
@@ -169,35 +169,35 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
|
|||||||
mega_energy -= energy_lost
|
mega_energy -= energy_lost
|
||||||
radiation += energy_lost*/
|
radiation += energy_lost*/
|
||||||
|
|
||||||
//change held plasma temp according to energy levels
|
//change held phoron temp according to energy levels
|
||||||
//SPECIFIC_HEAT_TOXIN
|
//SPECIFIC_HEAT_TOXIN
|
||||||
if(mega_energy > 0 && held_plasma.toxins)
|
if(mega_energy > 0 && held_phoron.phoron)
|
||||||
var/heat_capacity = held_plasma.heat_capacity()//200 * number of plasma moles
|
var/heat_capacity = held_phoron.heat_capacity()//200 * number of phoron moles
|
||||||
if(heat_capacity > 0.0003) //formerly MINIMUM_HEAT_CAPACITY
|
if(heat_capacity > 0.0003) //formerly MINIMUM_HEAT_CAPACITY
|
||||||
held_plasma.temperature = (heat_capacity + mega_energy * 35000)/heat_capacity
|
held_phoron.temperature = (heat_capacity + mega_energy * 35000)/heat_capacity
|
||||||
|
|
||||||
//if there is too much plasma in the field, lose some
|
//if there is too much phoron in the field, lose some
|
||||||
/*if( held_plasma.toxins > (MOLES_CELLSTANDARD * 7) * (50 / field_strength) )
|
/*if( held_phoron.phoron > (MOLES_CELLSTANDARD * 7) * (50 / field_strength) )
|
||||||
LosePlasma()*/
|
LosePhoron()*/
|
||||||
if(held_plasma.toxins > 1)
|
if(held_phoron.phoron > 1)
|
||||||
//lose a random amount of plasma back into the air, increased by the field strength (want to switch this over to frequency eventually)
|
//lose a random amount of phoron back into the air, increased by the field strength (want to switch this over to frequency eventually)
|
||||||
var/loss_ratio = rand() * (0.05 + (0.05 * 50 / field_strength))
|
var/loss_ratio = rand() * (0.05 + (0.05 * 50 / field_strength))
|
||||||
//world << "lost [loss_ratio*100]% of held plasma"
|
//world << "lost [loss_ratio*100]% of held phoron"
|
||||||
//
|
//
|
||||||
var/datum/gas_mixture/plasma_lost = new
|
var/datum/gas_mixture/phoron_lost = new
|
||||||
plasma_lost.temperature = held_plasma.temperature
|
phoron_lost.temperature = held_phoron.temperature
|
||||||
//
|
//
|
||||||
plasma_lost.toxins = held_plasma.toxins * loss_ratio
|
phoron_lost.phoron = held_phoron.phoron * loss_ratio
|
||||||
//plasma_lost.update_values()
|
//phoron_lost.update_values()
|
||||||
held_plasma.toxins -= held_plasma.toxins * loss_ratio
|
held_phoron.phoron -= held_phoron.phoron * loss_ratio
|
||||||
//held_plasma.update_values()
|
//held_phoron.update_values()
|
||||||
//
|
//
|
||||||
environment.merge(plasma_lost)
|
environment.merge(phoron_lost)
|
||||||
radiation += loss_ratio * mega_energy * 0.1
|
radiation += loss_ratio * mega_energy * 0.1
|
||||||
mega_energy -= loss_ratio * mega_energy * 0.1
|
mega_energy -= loss_ratio * mega_energy * 0.1
|
||||||
else
|
else
|
||||||
held_plasma.toxins = 0
|
held_phoron.phoron = 0
|
||||||
//held_plasma.update_values()
|
//held_phoron.update_values()
|
||||||
|
|
||||||
//handle some reactants formatting
|
//handle some reactants formatting
|
||||||
for(var/reactant in dormant_reactant_quantities)
|
for(var/reactant in dormant_reactant_quantities)
|
||||||
@@ -256,9 +256,9 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
|
|||||||
radiation += mega_energy
|
radiation += mega_energy
|
||||||
mega_energy = 0
|
mega_energy = 0
|
||||||
|
|
||||||
//lose all held plasma back into the air
|
//lose all held phoron back into the air
|
||||||
var/datum/gas_mixture/environment = loc.return_air()
|
var/datum/gas_mixture/environment = loc.return_air()
|
||||||
environment.merge(held_plasma)
|
environment.merge(held_phoron)
|
||||||
|
|
||||||
/obj/effect/rust_em_field/proc/change_size(var/newsize = 1)
|
/obj/effect/rust_em_field/proc/change_size(var/newsize = 1)
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
when the core is turned on, it generates [creates] an electromagnetic field
|
when the core is turned on, it generates [creates] an electromagnetic field
|
||||||
the em field attracts plasma, and suspends it in a controlled torus (doughnut) shape, oscillating around the core
|
the em field attracts phoron, and suspends it in a controlled torus (doughnut) shape, oscillating around the core
|
||||||
|
|
||||||
the field strength is directly controllable by the user
|
the field strength is directly controllable by the user
|
||||||
field strength = sqrt(energy used by the field generator)
|
field strength = sqrt(energy used by the field generator)
|
||||||
@@ -16,27 +16,27 @@ the size of the EM field = field strength / k
|
|||||||
7 tilewidth = between 20T and 50T
|
7 tilewidth = between 20T and 50T
|
||||||
(can't go higher than 40T)
|
(can't go higher than 40T)
|
||||||
|
|
||||||
energy is added by a gyrotron, and lost when plasma escapes
|
energy is added by a gyrotron, and lost when phoron escapes
|
||||||
energy transferred from the gyrotron beams is reduced by how different the frequencies are (closer frequencies = more energy transferred)
|
energy transferred from the gyrotron beams is reduced by how different the frequencies are (closer frequencies = more energy transferred)
|
||||||
|
|
||||||
frequency = field strength * (stored energy / stored moles of plasma) * x
|
frequency = field strength * (stored energy / stored moles of phoron) * x
|
||||||
(where x is an arbitrary constant to make the frequency something realistic)
|
(where x is an arbitrary constant to make the frequency something realistic)
|
||||||
the gyrotron beams' frequency and energy are hardcapped low enough that they won't heat the plasma much
|
the gyrotron beams' frequency and energy are hardcapped low enough that they won't heat the phoron much
|
||||||
|
|
||||||
energy is generated in considerable amounts by fusion reactions from injected particles
|
energy is generated in considerable amounts by fusion reactions from injected particles
|
||||||
fusion reactions only occur when the existing energy is above a certain level, and it's near the max operating level of the gyrotron. higher energy reactions only occur at higher energy levels
|
fusion reactions only occur when the existing energy is above a certain level, and it's near the max operating level of the gyrotron. higher energy reactions only occur at higher energy levels
|
||||||
a small amount of energy constantly bleeds off in the form of radiation
|
a small amount of energy constantly bleeds off in the form of radiation
|
||||||
|
|
||||||
the field is constantly pulling in plasma from the surrounding [local] atmosphere
|
the field is constantly pulling in phoron from the surrounding [local] atmosphere
|
||||||
at random intervals, the field releases a random percentage of stored plasma in addition to a percentage of energy as intense radiation
|
at random intervals, the field releases a random percentage of stored phoron in addition to a percentage of energy as intense radiation
|
||||||
|
|
||||||
the amount of plasma is a percentage of the field strength, increased by frequency
|
the amount of phoron is a percentage of the field strength, increased by frequency
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
- VALUES -
|
- VALUES -
|
||||||
|
|
||||||
max volume of plasma storeable by the field = the total volume of a number of tiles equal to the (field tilewidth)^2
|
max volume of phoron storeable by the field = the total volume of a number of tiles equal to the (field tilewidth)^2
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
// External Shield Generator
|
// External Shield Generator
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/shield_gen_ex
|
/obj/item/weapon/circuitboard/shield_gen_ex
|
||||||
name = "Circuit board (Experimental hull shield generator)"
|
name = "Circuit board (Hull shield generator)"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
build_path = "/obj/machinery/shield_gen/external"
|
build_path = "/obj/machinery/shield_gen/external"
|
||||||
origin_tech = "bluespace=4;plasmatech=3"
|
origin_tech = "bluespace=4;phorontech=3"
|
||||||
frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Transmitter, 5 Pieces of cable, 1 Subspace Crystal, 1 Subspace Amplifier and 1 Console Screen."
|
frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Transmitter, 5 Pieces of cable, 1 Subspace Crystal, 1 Subspace Amplifier and 1 Console Screen."
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
||||||
@@ -20,19 +20,19 @@ datum/design/shield_gen_ex
|
|||||||
name = "Circuit Design (Experimental hull shield generator)"
|
name = "Circuit Design (Experimental hull shield generator)"
|
||||||
desc = "Allows for the construction of circuit boards used to build an experimental hull shield generator."
|
desc = "Allows for the construction of circuit boards used to build an experimental hull shield generator."
|
||||||
id = "shield_gen"
|
id = "shield_gen"
|
||||||
req_tech = list("bluespace" = 4, "plasmatech" = 3)
|
req_tech = list("bluespace" = 4, "phorontech" = 3)
|
||||||
build_type = IMPRINTER
|
build_type = IMPRINTER
|
||||||
materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$gold" = 10000)
|
materials = list("$glass" = 2000, "sacid" = 20, "$phoron" = 10000, "$diamond" = 5000, "$gold" = 10000)
|
||||||
build_path = "/obj/machinery/shield_gen/external"
|
build_path = "/obj/machinery/shield_gen/external"
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
// Shield Generator
|
// Shield Generator
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/shield_gen
|
/obj/item/weapon/circuitboard/shield_gen
|
||||||
name = "Circuit board (Experimental shield generator)"
|
name = "Circuit board (Bubble shield generator)"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
build_path = "/obj/machinery/shield_gen/external"
|
build_path = "/obj/machinery/shield_gen/external"
|
||||||
origin_tech = "bluespace=4;plasmatech=3"
|
origin_tech = "bluespace=4;phorontech=3"
|
||||||
frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Transmitter, 5 Pieces of cable, 1 Subspace Crystal, 1 Subspace Amplifier and 1 Console Screen."
|
frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Transmitter, 5 Pieces of cable, 1 Subspace Crystal, 1 Subspace Amplifier and 1 Console Screen."
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
||||||
@@ -43,19 +43,19 @@ datum/design/shield_gen_ex
|
|||||||
"/obj/item/weapon/cable_coil" = 5)
|
"/obj/item/weapon/cable_coil" = 5)
|
||||||
|
|
||||||
datum/design/shield_gen
|
datum/design/shield_gen
|
||||||
name = "Circuit Design (Experimental shield generator)"
|
name = "Circuit Design (Bubble shield generator)"
|
||||||
desc = "Allows for the construction of circuit boards used to build an experimental shield generator."
|
desc = "Allows for the construction of circuit boards used to build an experimental shield generator."
|
||||||
id = "shield_gen"
|
id = "shield_gen"
|
||||||
req_tech = list("bluespace" = 4, "plasmatech" = 3)
|
req_tech = list("bluespace" = 4, "phorontech" = 3)
|
||||||
build_type = IMPRINTER
|
build_type = IMPRINTER
|
||||||
materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$gold" = 10000)
|
materials = list("$glass" = 2000, "sacid" = 20, "$phoron" = 10000, "$diamond" = 5000, "$gold" = 10000)
|
||||||
build_path = "/obj/machinery/shield_gen/external"
|
build_path = "/obj/machinery/shield_gen/external"
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
// Shield Capacitor
|
// Shield Capacitor
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/shield_cap
|
/obj/item/weapon/circuitboard/shield_cap
|
||||||
name = "Circuit board (Experimental shield capacitor)"
|
name = "Circuit board (Shield capacitor)"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
build_path = "/obj/machinery/shield_capacitor"
|
build_path = "/obj/machinery/shield_capacitor"
|
||||||
origin_tech = "magnets=3;powerstorage=4"
|
origin_tech = "magnets=3;powerstorage=4"
|
||||||
@@ -69,10 +69,10 @@ datum/design/shield_gen
|
|||||||
"/obj/item/weapon/cable_coil" = 5)
|
"/obj/item/weapon/cable_coil" = 5)
|
||||||
|
|
||||||
datum/design/shield_cap
|
datum/design/shield_cap
|
||||||
name = "Circuit Design (Experimental shield capacitor)"
|
name = "Circuit Design (Shield capacitor)"
|
||||||
desc = "Allows for the construction of circuit boards used to build an experimental shielding capacitor."
|
desc = "Allows for the construction of circuit boards used to build an experimental shielding capacitor."
|
||||||
id = "shield_cap"
|
id = "shield_cap"
|
||||||
req_tech = list("magnets" = 3, "powerstorage" = 4)
|
req_tech = list("magnets" = 3, "powerstorage" = 4)
|
||||||
build_type = IMPRINTER
|
build_type = IMPRINTER
|
||||||
materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$silver" = 10000)
|
materials = list("$glass" = 2000, "sacid" = 20, "$phoron" = 10000, "$diamond" = 5000, "$silver" = 10000)
|
||||||
build_path = "/obj/machinery/shield_gen/external"
|
build_path = "/obj/machinery/shield_gen/external"
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
density = 0
|
density = 0
|
||||||
invisibility = 101
|
invisibility = 101
|
||||||
var/strength = 0
|
var/strength = 0
|
||||||
|
var/ticks_recovering = 10
|
||||||
|
|
||||||
/obj/effect/energy_field/ex_act(var/severity)
|
/obj/effect/energy_field/ex_act(var/severity)
|
||||||
Stress(0.5 + severity)
|
Stress(0.5 + severity)
|
||||||
@@ -27,9 +28,12 @@
|
|||||||
strength -= severity
|
strength -= severity
|
||||||
|
|
||||||
//if we take too much damage, drop out - the generator will bring us back up if we have enough power
|
//if we take too much damage, drop out - the generator will bring us back up if we have enough power
|
||||||
|
ticks_recovering = min(ticks_recovering + 2, 10)
|
||||||
if(strength < 1)
|
if(strength < 1)
|
||||||
invisibility = 101
|
invisibility = 101
|
||||||
density = 0
|
density = 0
|
||||||
|
ticks_recovering = 10
|
||||||
|
strength = 0
|
||||||
else if(strength >= 1)
|
else if(strength >= 1)
|
||||||
invisibility = 0
|
invisibility = 0
|
||||||
density = 1
|
density = 1
|
||||||
|
|||||||
@@ -9,12 +9,10 @@
|
|||||||
icon_state = "capacitor"
|
icon_state = "capacitor"
|
||||||
var/active = 1
|
var/active = 1
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 1
|
|
||||||
var/stored_charge = 0
|
var/stored_charge = 0
|
||||||
var/time_since_fail = 100
|
var/time_since_fail = 100
|
||||||
var/max_charge = 1000000
|
var/max_charge = 5e6
|
||||||
var/max_charge_rate = 100000
|
var/charge_limit = 200000
|
||||||
var/min_charge_rate = 0
|
|
||||||
var/locked = 0
|
var/locked = 0
|
||||||
//
|
//
|
||||||
use_power = 1 //0 use nothing
|
use_power = 1 //0 use nothing
|
||||||
@@ -23,6 +21,7 @@
|
|||||||
idle_power_usage = 10
|
idle_power_usage = 10
|
||||||
active_power_usage = 100
|
active_power_usage = 100
|
||||||
var/charge_rate = 100
|
var/charge_rate = 100
|
||||||
|
var/obj/machinery/shield_gen/owned_gen
|
||||||
|
|
||||||
/obj/machinery/shield_capacitor/New()
|
/obj/machinery/shield_capacitor/New()
|
||||||
spawn(10)
|
spawn(10)
|
||||||
@@ -55,17 +54,17 @@
|
|||||||
src.anchored = !src.anchored
|
src.anchored = !src.anchored
|
||||||
src.visible_message("\blue \icon[src] [src] has been [anchored ? "bolted to the floor" : "unbolted from the floor"] by [user].")
|
src.visible_message("\blue \icon[src] [src] has been [anchored ? "bolted to the floor" : "unbolted from the floor"] by [user].")
|
||||||
|
|
||||||
spawn(0)
|
if(anchored)
|
||||||
for(var/obj/machinery/shield_gen/gen in range(1, src))
|
spawn(0)
|
||||||
if(get_dir(src, gen) == src.dir)
|
for(var/obj/machinery/shield_gen/gen in range(1, src))
|
||||||
if(!src.anchored && gen.owned_capacitor == src)
|
if(get_dir(src, gen) == src.dir && !gen.owned_capacitor)
|
||||||
gen.owned_capacitor = null
|
owned_gen = gen
|
||||||
break
|
owned_gen.owned_capacitor = src
|
||||||
else if(src.anchored && !gen.owned_capacitor)
|
owned_gen.updateDialog()
|
||||||
gen.owned_capacitor = src
|
else
|
||||||
break
|
if(owned_gen && owned_gen.owned_capacitor == src)
|
||||||
gen.updateDialog()
|
owned_gen.owned_capacitor = null
|
||||||
updateDialog()
|
owned_gen = null
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -94,17 +93,19 @@
|
|||||||
t += "[time_since_fail > 2 ? "<font color=green>Charging stable.</font>" : "<font color=red>Warning, low charge!</font>"]<br>"
|
t += "[time_since_fail > 2 ? "<font color=green>Charging stable.</font>" : "<font color=red>Warning, low charge!</font>"]<br>"
|
||||||
t += "Charge: [stored_charge] Watts ([100 * stored_charge/max_charge]%)<br>"
|
t += "Charge: [stored_charge] Watts ([100 * stored_charge/max_charge]%)<br>"
|
||||||
t += "Charge rate: \
|
t += "Charge rate: \
|
||||||
<a href='?src=\ref[src];charge_rate=[-max_charge_rate]'>\[min\]</a> \
|
<a href='?src=\ref[src];charge_rate=-100000'>\[----\]</a> \
|
||||||
|
<a href='?src=\ref[src];charge_rate=-10000'>\[---\]</a> \
|
||||||
<a href='?src=\ref[src];charge_rate=-1000'>\[--\]</a> \
|
<a href='?src=\ref[src];charge_rate=-1000'>\[--\]</a> \
|
||||||
<a href='?src=\ref[src];charge_rate=-100'>\[-\]</a>[charge_rate] Watts/sec \
|
<a href='?src=\ref[src];charge_rate=-100'>\[-\]</a>[charge_rate] Watts/sec \
|
||||||
<a href='?src=\ref[src];charge_rate=100'>\[+\]</a> \
|
<a href='?src=\ref[src];charge_rate=100'>\[+\]</a> \
|
||||||
<a href='?src=\ref[src];charge_rate=1000'>\[++\]</a> \
|
<a href='?src=\ref[src];charge_rate=1000'>\[++\]</a> \
|
||||||
<a href='?src=\ref[src];charge_rate=[max_charge_rate]'>\[max\]</a><br>"
|
<a href='?src=\ref[src];charge_rate=10000'>\[+++\]</a> \
|
||||||
|
<a href='?src=\ref[src];charge_rate=100000'>\[+++\]</a><br>"
|
||||||
t += "<hr>"
|
t += "<hr>"
|
||||||
t += "<A href='?src=\ref[src]'>Refresh</A> "
|
t += "<A href='?src=\ref[src]'>Refresh</A> "
|
||||||
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||||
|
|
||||||
user << browse(t, "window=shield_capacitor;size=500x800")
|
user << browse(t, "window=shield_capacitor;size=500x400")
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
|
|
||||||
/obj/machinery/shield_capacitor/process()
|
/obj/machinery/shield_capacitor/process()
|
||||||
@@ -137,10 +138,10 @@
|
|||||||
use_power = 1
|
use_power = 1
|
||||||
if( href_list["charge_rate"] )
|
if( href_list["charge_rate"] )
|
||||||
charge_rate += text2num(href_list["charge_rate"])
|
charge_rate += text2num(href_list["charge_rate"])
|
||||||
if(charge_rate > max_charge_rate)
|
if(charge_rate > charge_limit)
|
||||||
charge_rate = max_charge_rate
|
charge_rate = charge_limit
|
||||||
else if(charge_rate < min_charge_rate)
|
else if(charge_rate < 0)
|
||||||
charge_rate = min_charge_rate
|
charge_rate = 0
|
||||||
//
|
//
|
||||||
updateDialog()
|
updateDialog()
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
var/field_radius = 3
|
var/field_radius = 3
|
||||||
var/list/field
|
var/list/field
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 1
|
|
||||||
var/locked = 0
|
var/locked = 0
|
||||||
var/average_field_strength = 0
|
var/average_field_strength = 0
|
||||||
var/strengthen_rate = 0.2
|
var/strengthen_rate = 0.2
|
||||||
@@ -22,7 +21,7 @@
|
|||||||
var/powered = 0
|
var/powered = 0
|
||||||
var/check_powered = 1
|
var/check_powered = 1
|
||||||
var/obj/machinery/shield_capacitor/owned_capacitor
|
var/obj/machinery/shield_capacitor/owned_capacitor
|
||||||
var/max_field_strength = 10
|
var/target_field_strength = 10
|
||||||
var/time_since_fail = 100
|
var/time_since_fail = 100
|
||||||
var/energy_conversion_rate = 0.01 //how many renwicks per watt?
|
var/energy_conversion_rate = 0.01 //how many renwicks per watt?
|
||||||
//
|
//
|
||||||
@@ -63,17 +62,22 @@
|
|||||||
src.anchored = !src.anchored
|
src.anchored = !src.anchored
|
||||||
src.visible_message("\blue \icon[src] [src] has been [anchored?"bolted to the floor":"unbolted from the floor"] by [user].")
|
src.visible_message("\blue \icon[src] [src] has been [anchored?"bolted to the floor":"unbolted from the floor"] by [user].")
|
||||||
|
|
||||||
spawn(0)
|
if(active)
|
||||||
for(var/obj/machinery/shield_gen/gen in range(1, src))
|
toggle()
|
||||||
if(get_dir(src, gen) == src.dir)
|
if(anchored)
|
||||||
if(!src.anchored && gen.owned_capacitor == src)
|
spawn(0)
|
||||||
gen.owned_capacitor = null
|
for(var/obj/machinery/shield_capacitor/cap in range(1, src))
|
||||||
|
if(cap.owned_gen)
|
||||||
|
continue
|
||||||
|
if(get_dir(cap, src) == cap.dir && src.anchored)
|
||||||
|
owned_capacitor = cap
|
||||||
|
owned_capacitor.owned_gen = src
|
||||||
|
updateDialog()
|
||||||
break
|
break
|
||||||
else if(src.anchored && !gen.owned_capacitor)
|
else
|
||||||
gen.owned_capacitor = src
|
if(owned_capacitor && owned_capacitor.owned_gen == src)
|
||||||
break
|
owned_capacitor.owned_gen = null
|
||||||
gen.updateDialog()
|
owned_capacitor = null
|
||||||
updateDialog()
|
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -102,67 +106,65 @@
|
|||||||
t += "This generator is: [active ? "<font color=green>Online</font>" : "<font color=red>Offline</font>" ] <a href='?src=\ref[src];toggle=1'>[active ? "\[Deactivate\]" : "\[Activate\]"]</a><br>"
|
t += "This generator is: [active ? "<font color=green>Online</font>" : "<font color=red>Offline</font>" ] <a href='?src=\ref[src];toggle=1'>[active ? "\[Deactivate\]" : "\[Activate\]"]</a><br>"
|
||||||
t += "[time_since_fail > 2 ? "<font color=green>Field is stable.</font>" : "<font color=red>Warning, field is unstable!</font>"]<br>"
|
t += "[time_since_fail > 2 ? "<font color=green>Field is stable.</font>" : "<font color=red>Warning, field is unstable!</font>"]<br>"
|
||||||
t += "Coverage radius (restart required): \
|
t += "Coverage radius (restart required): \
|
||||||
|
<a href='?src=\ref[src];change_radius=-50'>---</a> \
|
||||||
<a href='?src=\ref[src];change_radius=-5'>--</a> \
|
<a href='?src=\ref[src];change_radius=-5'>--</a> \
|
||||||
<a href='?src=\ref[src];change_radius=-1'>-</a> \
|
<a href='?src=\ref[src];change_radius=-1'>-</a> \
|
||||||
[field_radius * 2]m \
|
[field_radius * 2]m \
|
||||||
<a href='?src=\ref[src];change_radius=1'>+</a> \
|
<a href='?src=\ref[src];change_radius=1'>+</a> \
|
||||||
<a href='?src=\ref[src];change_radius=5'>++</a><br>"
|
<a href='?src=\ref[src];change_radius=5'>++</a> \
|
||||||
t += "Overall field strength: [average_field_strength] Renwicks ([max_field_strength ? 100 * average_field_strength / max_field_strength : "NA"]%)<br>"
|
<a href='?src=\ref[src];change_radius=50'>+++</a><br>"
|
||||||
t += "Charge rate: <a href='?src=\ref[src];strengthen_rate=-0.1'>--</a> \
|
t += "Overall field strength: [average_field_strength] Renwicks ([target_field_strength ? 100 * average_field_strength / target_field_strength : "NA"]%)<br>"
|
||||||
<a href='?src=\ref[src];strengthen_rate=-0.01'>-</a> \
|
|
||||||
[strengthen_rate] Renwicks/sec \
|
|
||||||
<a href='?src=\ref[src];strengthen_rate=0.01'>+</a> \
|
|
||||||
<a href='?src=\ref[src];strengthen_rate=0.1'>++</a><br>"
|
|
||||||
t += "Upkeep energy: [field.len * average_field_strength / energy_conversion_rate] Watts/sec<br>"
|
t += "Upkeep energy: [field.len * average_field_strength / energy_conversion_rate] Watts/sec<br>"
|
||||||
|
t += "Charge rate: <a href='?src=\ref[src];strengthen_rate=-0.1'>--</a> \
|
||||||
|
[strengthen_rate] Renwicks/sec \
|
||||||
|
<a href='?src=\ref[src];strengthen_rate=0.1'>++</a><br>"
|
||||||
t += "Additional energy required to charge: [field.len * strengthen_rate / energy_conversion_rate] Watts/sec<br>"
|
t += "Additional energy required to charge: [field.len * strengthen_rate / energy_conversion_rate] Watts/sec<br>"
|
||||||
t += "Maximum field strength: \
|
t += "Maximum field strength: \
|
||||||
<a href='?src=\ref[src];max_field_strength=-100'>\[min\]</a> \
|
<a href='?src=\ref[src];target_field_strength=-100'>\[min\]</a> \
|
||||||
<a href='?src=\ref[src];max_field_strength=-10'>--</a> \
|
<a href='?src=\ref[src];target_field_strength=-10'>--</a> \
|
||||||
<a href='?src=\ref[src];max_field_strength=-1'>-</a> \
|
<a href='?src=\ref[src];target_field_strength=-1'>-</a> \
|
||||||
[max_field_strength] Renwicks \
|
[target_field_strength] Renwicks \
|
||||||
<a href='?src=\ref[src];max_field_strength=1'>+</a> \
|
<a href='?src=\ref[src];target_field_strength=1'>+</a> \
|
||||||
<a href='?src=\ref[src];max_field_strength=10'>++</a> \
|
<a href='?src=\ref[src];target_field_strength=10'>++</a> \
|
||||||
<a href='?src=\ref[src];max_field_strength=100'>\[max\]</a><br>"
|
<a href='?src=\ref[src];target_field_strength=100'>\[max\]</a><br>"
|
||||||
t += "<hr>"
|
t += "<hr>"
|
||||||
t += "<A href='?src=\ref[src]'>Refresh</A> "
|
t += "<A href='?src=\ref[src]'>Refresh</A> "
|
||||||
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||||
user << browse(t, "window=shield_generator;size=500x800")
|
user << browse(t, "window=shield_generator;size=500x400")
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
|
|
||||||
/obj/machinery/shield_gen/process()
|
/obj/machinery/shield_gen/process()
|
||||||
|
|
||||||
if(active && field.len)
|
if(field.len)
|
||||||
|
time_since_fail++
|
||||||
var/stored_renwicks = 0
|
var/stored_renwicks = 0
|
||||||
var/target_field_strength = min(strengthen_rate + max(average_field_strength, 0), max_field_strength)
|
var/target_strength_this_update = min(strengthen_rate + max(average_field_strength, 0), target_field_strength)
|
||||||
if(owned_capacitor)
|
|
||||||
var/required_energy = field.len * target_field_strength / energy_conversion_rate
|
if(active && owned_capacitor)
|
||||||
|
var/required_energy = field.len * target_strength_this_update / energy_conversion_rate
|
||||||
var/assumed_charge = min(owned_capacitor.stored_charge, required_energy)
|
var/assumed_charge = min(owned_capacitor.stored_charge, required_energy)
|
||||||
stored_renwicks = assumed_charge * energy_conversion_rate
|
stored_renwicks = assumed_charge * energy_conversion_rate
|
||||||
owned_capacitor.stored_charge -= assumed_charge
|
owned_capacitor.stored_charge -= assumed_charge
|
||||||
|
|
||||||
time_since_fail++
|
|
||||||
|
|
||||||
average_field_strength = 0
|
average_field_strength = 0
|
||||||
target_field_strength = stored_renwicks / field.len
|
var/renwicks_per_field = 0
|
||||||
|
if(stored_renwicks != 0)
|
||||||
|
renwicks_per_field = stored_renwicks / field.len
|
||||||
|
|
||||||
for(var/obj/effect/energy_field/E in field)
|
for(var/obj/effect/energy_field/E in field)
|
||||||
if(stored_renwicks)
|
if(active && renwicks_per_field > 0)
|
||||||
var/strength_change = target_field_strength - E.strength
|
var/amount_to_strengthen = min(renwicks_per_field - E.strength, strengthen_rate)
|
||||||
if(strength_change > stored_renwicks)
|
if(E.ticks_recovering > 0 && amount_to_strengthen > 0)
|
||||||
strength_change = stored_renwicks
|
E.Strengthen( min(amount_to_strengthen / 10, 0.1) )
|
||||||
if(E.strength < 0)
|
E.ticks_recovering -= 1
|
||||||
E.strength = 0
|
|
||||||
else
|
else
|
||||||
E.Strengthen(strength_change)
|
E.Strengthen(amount_to_strengthen)
|
||||||
|
|
||||||
stored_renwicks -= strength_change
|
|
||||||
|
|
||||||
average_field_strength += E.strength
|
average_field_strength += E.strength
|
||||||
else
|
else
|
||||||
E.Strengthen(-E.strength)
|
E.Strengthen(-E.strength)
|
||||||
|
|
||||||
average_field_strength /= field.len
|
average_field_strength /= field.len
|
||||||
if(average_field_strength < 0)
|
if(average_field_strength < 1)
|
||||||
time_since_fail = 0
|
time_since_fail = 0
|
||||||
else
|
else
|
||||||
average_field_strength = 0
|
average_field_strength = 0
|
||||||
@@ -187,12 +189,12 @@
|
|||||||
strengthen_rate = 1
|
strengthen_rate = 1
|
||||||
else if(strengthen_rate < 0)
|
else if(strengthen_rate < 0)
|
||||||
strengthen_rate = 0
|
strengthen_rate = 0
|
||||||
else if( href_list["max_field_strength"] )
|
else if( href_list["target_field_strength"] )
|
||||||
max_field_strength += text2num(href_list["max_field_strength"])
|
target_field_strength += text2num(href_list["target_field_strength"])
|
||||||
if(max_field_strength > 1000)
|
if(target_field_strength > 1000)
|
||||||
max_field_strength = 1000
|
target_field_strength = 1000
|
||||||
else if(max_field_strength < 0)
|
else if(target_field_strength < 0)
|
||||||
max_field_strength = 0
|
target_field_strength = 0
|
||||||
//
|
//
|
||||||
updateDialog()
|
updateDialog()
|
||||||
|
|
||||||
@@ -252,6 +254,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/obj/machinery/shield_gen/proc/toggle()
|
/obj/machinery/shield_gen/proc/toggle()
|
||||||
|
set background = 1
|
||||||
active = !active
|
active = !active
|
||||||
power_change()
|
power_change()
|
||||||
if(active)
|
if(active)
|
||||||
@@ -269,7 +272,7 @@
|
|||||||
else
|
else
|
||||||
for(var/obj/effect/energy_field/D in field)
|
for(var/obj/effect/energy_field/D in field)
|
||||||
field.Remove(D)
|
field.Remove(D)
|
||||||
del D
|
D.loc = null
|
||||||
|
|
||||||
for(var/mob/M in view(5,src))
|
for(var/mob/M in view(5,src))
|
||||||
M << "\icon[src] You hear heavy droning fade out."
|
M << "\icon[src] You hear heavy droning fade out."
|
||||||
@@ -278,6 +281,8 @@
|
|||||||
/obj/machinery/shield_gen/proc/get_shielded_turfs()
|
/obj/machinery/shield_gen/proc/get_shielded_turfs()
|
||||||
var/list/out = list()
|
var/list/out = list()
|
||||||
for(var/turf/T in range(field_radius, src))
|
for(var/turf/T in range(field_radius, src))
|
||||||
|
world << "turf dist:[get_dist(src,T)]"
|
||||||
if(get_dist(src,T) == field_radius)
|
if(get_dist(src,T) == field_radius)
|
||||||
out.Add(T)
|
out.Add(T)
|
||||||
|
world << " added"
|
||||||
return out
|
return out
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
|
|
||||||
//---------- external shield generator
|
//---------- external shield generator
|
||||||
//generates an energy field that loops around any built up area in space (is useless inside) halts movement and airflow, is blocked by walls, windows, airlocks etc
|
//generates an energy field that loops around any built up area in space (is useless inside) halts movement and airflow, is blocked by walls, windows, airlocks etc
|
||||||
|
|
||||||
|
/obj/machinery/shield_gen/external
|
||||||
|
name = "hull shield generator"
|
||||||
|
|
||||||
/obj/machinery/shield_gen/external/New()
|
/obj/machinery/shield_gen/external/New()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie
|
var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie
|
||||||
|
|
||||||
var/oxygen_alert = 0
|
var/oxygen_alert = 0
|
||||||
var/toxins_alert = 0
|
var/phoron_alert = 0
|
||||||
var/fire_alert = 0
|
var/fire_alert = 0
|
||||||
|
|
||||||
var/temperature_alert = 0
|
var/temperature_alert = 0
|
||||||
@@ -455,7 +455,7 @@
|
|||||||
if(src.pullin) src.pullin.icon_state = "pull[src.pulling ? 1 : 0]"
|
if(src.pullin) src.pullin.icon_state = "pull[src.pulling ? 1 : 0]"
|
||||||
|
|
||||||
|
|
||||||
if (src.toxin) src.toxin.icon_state = "tox[src.toxins_alert ? 1 : 0]"
|
if (src.toxin) src.toxin.icon_state = "tox[src.phoron_alert ? 1 : 0]"
|
||||||
if (src.oxygen) src.oxygen.icon_state = "oxy[src.oxygen_alert ? 1 : 0]"
|
if (src.oxygen) src.oxygen.icon_state = "oxy[src.oxygen_alert ? 1 : 0]"
|
||||||
if (src.fire) src.fire.icon_state = "fire[src.fire_alert ? 1 : 0]"
|
if (src.fire) src.fire.icon_state = "fire[src.fire_alert ? 1 : 0]"
|
||||||
//NOTE: the alerts dont reset when youre out of danger. dont blame me,
|
//NOTE: the alerts dont reset when youre out of danger. dont blame me,
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ siphoning
|
|||||||
Carbon Dioxide
|
Carbon Dioxide
|
||||||
<A href='?src=\ref[src];alarm=\ref[current];id_tag=[id_tag];command=co2_scrub;val=[!data["filter_co2"]]'>[data["filter_co2"]?"on":"off"]</A>;
|
<A href='?src=\ref[src];alarm=\ref[current];id_tag=[id_tag];command=co2_scrub;val=[!data["filter_co2"]]'>[data["filter_co2"]?"on":"off"]</A>;
|
||||||
Toxins
|
Toxins
|
||||||
<A href='?src=\ref[src];alarm=\ref[current];id_tag=[id_tag];command=tox_scrub;val=[!data["filter_toxins"]]'>[data["filter_toxins"]?"on":"off"]</A>;
|
<A href='?src=\ref[src];alarm=\ref[current];id_tag=[id_tag];command=tox_scrub;val=[!data["filter_phoron"]]'>[data["filter_phoron"]?"on":"off"]</A>;
|
||||||
Nitrous Oxide
|
Nitrous Oxide
|
||||||
<A href='?src=\ref[src];alarm=\ref[current];id_tag=[id_tag];command=n2o_scrub;val=[!data["filter_n2o"]]'>[data["filter_n2o"]?"on":"off"]</A>
|
<A href='?src=\ref[src];alarm=\ref[current];id_tag=[id_tag];command=n2o_scrub;val=[!data["filter_n2o"]]'>[data["filter_n2o"]?"on":"off"]</A>
|
||||||
<BR>
|
<BR>
|
||||||
@@ -332,7 +332,7 @@ table tr:first-child th:first-child { border: none;}
|
|||||||
var/list/gases = list(
|
var/list/gases = list(
|
||||||
"oxygen" = "O<sub>2</sub>",
|
"oxygen" = "O<sub>2</sub>",
|
||||||
"carbon dioxide" = "CO<sub>2</sub>",
|
"carbon dioxide" = "CO<sub>2</sub>",
|
||||||
"plasma" = "Toxin",
|
"phoron" = "Toxin",
|
||||||
"other" = "Other",
|
"other" = "Other",
|
||||||
)
|
)
|
||||||
var/list/tlv
|
var/list/tlv
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
// radio
|
// radio
|
||||||
if (0)
|
if (0)
|
||||||
var/obj/item/assembly/r_i_ptank/R = new /obj/item/assembly/r_i_ptank(src.loc)
|
var/obj/item/assembly/r_i_ptank/R = new /obj/item/assembly/r_i_ptank(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/p3 = new /obj/item/weapon/tank/plasma(R)
|
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||||
var/obj/item/device/radio/signaler/p1 = new /obj/item/device/radio/signaler(R)
|
var/obj/item/device/radio/signaler/p1 = new /obj/item/device/radio/signaler(R)
|
||||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||||
R.part1 = p1
|
R.part1 = p1
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
// proximity
|
// proximity
|
||||||
if (1)
|
if (1)
|
||||||
var/obj/item/assembly/m_i_ptank/R = new /obj/item/assembly/m_i_ptank(src.loc)
|
var/obj/item/assembly/m_i_ptank/R = new /obj/item/assembly/m_i_ptank(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/p3 = new /obj/item/weapon/tank/plasma(R)
|
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||||
var/obj/item/device/prox_sensor/p1 = new /obj/item/device/prox_sensor(R)
|
var/obj/item/device/prox_sensor/p1 = new /obj/item/device/prox_sensor(R)
|
||||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||||
R.part1 = p1
|
R.part1 = p1
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
// timer
|
// timer
|
||||||
if (2)
|
if (2)
|
||||||
var/obj/item/assembly/t_i_ptank/R = new /obj/item/assembly/t_i_ptank(src.loc)
|
var/obj/item/assembly/t_i_ptank/R = new /obj/item/assembly/t_i_ptank(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/p3 = new /obj/item/weapon/tank/plasma(R)
|
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||||
var/obj/item/device/timer/p1 = new /obj/item/device/timer(R)
|
var/obj/item/device/timer/p1 = new /obj/item/device/timer(R)
|
||||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||||
R.part1 = p1
|
R.part1 = p1
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
//bombvest
|
//bombvest
|
||||||
if(3)
|
if(3)
|
||||||
var/obj/item/clothing/suit/armor/a_i_a_ptank/R = new /obj/item/clothing/suit/armor/a_i_a_ptank(src.loc)
|
var/obj/item/clothing/suit/armor/a_i_a_ptank/R = new /obj/item/clothing/suit/armor/a_i_a_ptank(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/p4 = new /obj/item/weapon/tank/plasma(R)
|
var/obj/item/weapon/tank/phoron/p4 = new /obj/item/weapon/tank/phoron(R)
|
||||||
var/obj/item/device/healthanalyzer/p1 = new /obj/item/device/healthanalyzer(R)
|
var/obj/item/device/healthanalyzer/p1 = new /obj/item/device/healthanalyzer(R)
|
||||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||||
var/obj/item/clothing/suit/armor/vest/p3 = new /obj/item/clothing/suit/armor/vest(R)
|
var/obj/item/clothing/suit/armor/vest/p3 = new /obj/item/clothing/suit/armor/vest(R)
|
||||||
@@ -140,7 +140,7 @@
|
|||||||
if (0)
|
if (0)
|
||||||
|
|
||||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/PT = new(V)
|
var/obj/item/weapon/tank/phoron/PT = new(V)
|
||||||
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
||||||
|
|
||||||
var/obj/item/device/radio/signaler/S = new(V)
|
var/obj/item/device/radio/signaler/S = new(V)
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
if (1)
|
if (1)
|
||||||
|
|
||||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/PT = new(V)
|
var/obj/item/weapon/tank/phoron/PT = new(V)
|
||||||
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
||||||
|
|
||||||
var/obj/item/device/prox_sensor/P = new(V)
|
var/obj/item/device/prox_sensor/P = new(V)
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
// timer
|
// timer
|
||||||
if (2)
|
if (2)
|
||||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/PT = new(V)
|
var/obj/item/weapon/tank/phoron/PT = new(V)
|
||||||
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
||||||
|
|
||||||
var/obj/item/device/timer/T = new(V)
|
var/obj/item/device/timer/T = new(V)
|
||||||
|
|||||||
@@ -193,12 +193,12 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/closet/wardrobe/toxins_white
|
/obj/structure/closet/wardrobe/science_white
|
||||||
name = "toxins wardrobe"
|
name = "science wardrobe"
|
||||||
icon_state = "white"
|
icon_state = "white"
|
||||||
icon_closed = "white"
|
icon_closed = "white"
|
||||||
|
|
||||||
/obj/structure/closet/wardrobe/toxins_white/New()
|
/obj/structure/closet/wardrobe/science_white/New()
|
||||||
new /obj/item/clothing/under/rank/scientist(src)
|
new /obj/item/clothing/under/rank/scientist(src)
|
||||||
new /obj/item/clothing/under/rank/scientist(src)
|
new /obj/item/clothing/under/rank/scientist(src)
|
||||||
new /obj/item/clothing/under/rank/scientist(src)
|
new /obj/item/clothing/under/rank/scientist(src)
|
||||||
|
|||||||
@@ -340,7 +340,7 @@
|
|||||||
var/obj/item/weapon/storage/backpack/BPK = new /obj/item/weapon/storage/backpack(src)
|
var/obj/item/weapon/storage/backpack/BPK = new /obj/item/weapon/storage/backpack(src)
|
||||||
new /obj/item/weapon/storage/box(BPK)
|
new /obj/item/weapon/storage/box(BPK)
|
||||||
new /obj/item/weapon/pen(src)
|
new /obj/item/weapon/pen(src)
|
||||||
new /obj/item/device/pda/toxins(src)
|
new /obj/item/device/pda/science(src)
|
||||||
new /obj/item/weapon/tank/oxygen(src)
|
new /obj/item/weapon/tank/oxygen(src)
|
||||||
new /obj/item/clothing/mask/gas(src)
|
new /obj/item/clothing/mask/gas(src)
|
||||||
new /obj/item/clothing/suit/storage/labcoat/science(src)
|
new /obj/item/clothing/suit/storage/labcoat/science(src)
|
||||||
@@ -360,7 +360,7 @@
|
|||||||
new /obj/item/device/radio/headset/headset_medsci(src)
|
new /obj/item/device/radio/headset/headset_medsci(src)
|
||||||
new /obj/item/clothing/under/rank/chemist(src)
|
new /obj/item/clothing/under/rank/chemist(src)
|
||||||
new /obj/item/clothing/shoes/white(src)
|
new /obj/item/clothing/shoes/white(src)
|
||||||
new /obj/item/device/pda/toxins(src)
|
new /obj/item/device/pda/science(src)
|
||||||
new /obj/item/clothing/suit/storage/labcoat/chemist(src)
|
new /obj/item/clothing/suit/storage/labcoat/chemist(src)
|
||||||
|
|
||||||
/obj/item/wardrobe/hos
|
/obj/item/wardrobe/hos
|
||||||
|
|||||||
@@ -243,11 +243,11 @@
|
|||||||
"Do you think that caused a trauma with you?",
|
"Do you think that caused a trauma with you?",
|
||||||
"Have you ever previously spoken to anybody about this?")),
|
"Have you ever previously spoken to anybody about this?")),
|
||||||
new/datum/text_parser/keyword(
|
new/datum/text_parser/keyword(
|
||||||
list("bomb", "explosive", "toxin", "plasma"),
|
list("bomb", "explosive", "toxin", "phoron"),
|
||||||
list(
|
list(
|
||||||
"Do you worry about bombs often?",
|
"Do you worry about bombs often?",
|
||||||
"Do you work in toxins?",
|
"Do you work in science?",
|
||||||
"Do you find it odd to worry about bombs on a toxins research vessel?")),
|
"Do you find it odd to worry about bombs on a science research vessel?")),
|
||||||
new/datum/text_parser/keyword(
|
new/datum/text_parser/keyword(
|
||||||
list("work", "job", "head", "staff", "transen"),
|
list("work", "job", "head", "staff", "transen"),
|
||||||
list(
|
list(
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ log transactions
|
|||||||
A.loc = src
|
A.loc = src
|
||||||
inserted += 50
|
inserted += 50
|
||||||
return
|
return
|
||||||
if(istype(A,/obj/item/weapon/coin/plasma))
|
if(istype(A,/obj/item/weapon/coin/phoron))
|
||||||
cashes += A
|
cashes += A
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
A.loc = src
|
A.loc = src
|
||||||
|
|||||||
@@ -107,7 +107,7 @@
|
|||||||
|
|
||||||
message = {"More on the Refuge food riots: The Refuge Council has condemned NanoTrasen's withdrawal from
|
message = {"More on the Refuge food riots: The Refuge Council has condemned NanoTrasen's withdrawal from
|
||||||
the colony, claiming \"there has been no increase in anti-NanoTrasen activity\", and \"\[the only] reason
|
the colony, claiming \"there has been no increase in anti-NanoTrasen activity\", and \"\[the only] reason
|
||||||
NanoTrasen withdrew was because the \[Tenebrae Lupus] system's Plasma deposits have been completely mined out.
|
NanoTrasen withdrew was because the \[Tenebrae Lupus] system's Phoron deposits have been completely mined out.
|
||||||
We have little to trade with them now\". NanoTrasen officials have denied these allegations, calling them
|
We have little to trade with them now\". NanoTrasen officials have denied these allegations, calling them
|
||||||
\"further proof\" of the colony's anti-NanoTrasen stance. Meanwhile, Refuge Security has been unable to quell
|
\"further proof\" of the colony's anti-NanoTrasen stance. Meanwhile, Refuge Security has been unable to quell
|
||||||
the riots. More on this at 6."}
|
the riots. More on this at 6."}
|
||||||
|
|||||||
@@ -239,21 +239,21 @@ proc/ShareRatio(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles)
|
|||||||
full_oxy = A.oxygen * size
|
full_oxy = A.oxygen * size
|
||||||
full_nitro = A.nitrogen * size
|
full_nitro = A.nitrogen * size
|
||||||
full_co2 = A.carbon_dioxide * size
|
full_co2 = A.carbon_dioxide * size
|
||||||
full_plasma = A.toxins * size
|
full_phoron = A.phoron * size
|
||||||
|
|
||||||
full_heat_capacity = A.heat_capacity() * size
|
full_heat_capacity = A.heat_capacity() * size
|
||||||
|
|
||||||
s_full_oxy = B.oxygen * share_size
|
s_full_oxy = B.oxygen * share_size
|
||||||
s_full_nitro = B.nitrogen * share_size
|
s_full_nitro = B.nitrogen * share_size
|
||||||
s_full_co2 = B.carbon_dioxide * share_size
|
s_full_co2 = B.carbon_dioxide * share_size
|
||||||
s_full_plasma = B.toxins * share_size
|
s_full_phoron = B.phoron * share_size
|
||||||
|
|
||||||
s_full_heat_capacity = B.heat_capacity() * share_size
|
s_full_heat_capacity = B.heat_capacity() * share_size
|
||||||
|
|
||||||
oxy_avg = (full_oxy + s_full_oxy) / (size + share_size)
|
oxy_avg = (full_oxy + s_full_oxy) / (size + share_size)
|
||||||
nit_avg = (full_nitro + s_full_nitro) / (size + share_size)
|
nit_avg = (full_nitro + s_full_nitro) / (size + share_size)
|
||||||
co2_avg = (full_co2 + s_full_co2) / (size + share_size)
|
co2_avg = (full_co2 + s_full_co2) / (size + share_size)
|
||||||
plasma_avg = (full_plasma + s_full_plasma) / (size + share_size)
|
phoron_avg = (full_phoron + s_full_phoron) / (size + share_size)
|
||||||
|
|
||||||
temp_avg = (A.temperature * full_heat_capacity + B.temperature * s_full_heat_capacity) / (full_heat_capacity + s_full_heat_capacity)
|
temp_avg = (A.temperature * full_heat_capacity + B.temperature * s_full_heat_capacity) / (full_heat_capacity + s_full_heat_capacity)
|
||||||
|
|
||||||
@@ -265,14 +265,14 @@ proc/ShareRatio(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles)
|
|||||||
A.oxygen = max(0, (A.oxygen - oxy_avg) * (1-ratio) + oxy_avg )
|
A.oxygen = max(0, (A.oxygen - oxy_avg) * (1-ratio) + oxy_avg )
|
||||||
A.nitrogen = max(0, (A.nitrogen - nit_avg) * (1-ratio) + nit_avg )
|
A.nitrogen = max(0, (A.nitrogen - nit_avg) * (1-ratio) + nit_avg )
|
||||||
A.carbon_dioxide = max(0, (A.carbon_dioxide - co2_avg) * (1-ratio) + co2_avg )
|
A.carbon_dioxide = max(0, (A.carbon_dioxide - co2_avg) * (1-ratio) + co2_avg )
|
||||||
A.toxins = max(0, (A.toxins - plasma_avg) * (1-ratio) + plasma_avg )
|
A.phoron = max(0, (A.phoron - phoron_avg) * (1-ratio) + phoron_avg )
|
||||||
|
|
||||||
A.temperature = max(0, (A.temperature - temp_avg) * (1-ratio) + temp_avg )
|
A.temperature = max(0, (A.temperature - temp_avg) * (1-ratio) + temp_avg )
|
||||||
|
|
||||||
B.oxygen = max(0, (B.oxygen - oxy_avg) * (1-ratio) + oxy_avg )
|
B.oxygen = max(0, (B.oxygen - oxy_avg) * (1-ratio) + oxy_avg )
|
||||||
B.nitrogen = max(0, (B.nitrogen - nit_avg) * (1-ratio) + nit_avg )
|
B.nitrogen = max(0, (B.nitrogen - nit_avg) * (1-ratio) + nit_avg )
|
||||||
B.carbon_dioxide = max(0, (B.carbon_dioxide - co2_avg) * (1-ratio) + co2_avg )
|
B.carbon_dioxide = max(0, (B.carbon_dioxide - co2_avg) * (1-ratio) + co2_avg )
|
||||||
B.toxins = max(0, (B.toxins - plasma_avg) * (1-ratio) + plasma_avg )
|
B.phoron = max(0, (B.phoron - phoron_avg) * (1-ratio) + phoron_avg )
|
||||||
|
|
||||||
B.temperature = max(0, (B.temperature - temp_avg) * (1-ratio) + temp_avg )
|
B.temperature = max(0, (B.temperature - temp_avg) * (1-ratio) + temp_avg )
|
||||||
|
|
||||||
@@ -314,7 +314,7 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output)
|
|||||||
unsim_oxygen = 0
|
unsim_oxygen = 0
|
||||||
unsim_nitrogen = 0
|
unsim_nitrogen = 0
|
||||||
unsim_co2 = 0
|
unsim_co2 = 0
|
||||||
unsim_plasma = 0
|
unsim_phoron = 0
|
||||||
unsim_heat_capacity = 0
|
unsim_heat_capacity = 0
|
||||||
unsim_temperature = 0
|
unsim_temperature = 0
|
||||||
|
|
||||||
@@ -328,7 +328,7 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output)
|
|||||||
unsim_oxygen = avg_unsim.oxygen
|
unsim_oxygen = avg_unsim.oxygen
|
||||||
unsim_co2 = avg_unsim.carbon_dioxide
|
unsim_co2 = avg_unsim.carbon_dioxide
|
||||||
unsim_nitrogen = avg_unsim.nitrogen
|
unsim_nitrogen = avg_unsim.nitrogen
|
||||||
unsim_plasma = avg_unsim.toxins
|
unsim_phoron = avg_unsim.phoron
|
||||||
unsim_temperature = avg_unsim.temperature
|
unsim_temperature = avg_unsim.temperature
|
||||||
share_size = max(1, max(size + 3, 1) + avg_unsim.group_multiplier)
|
share_size = max(1, max(size + 3, 1) + avg_unsim.group_multiplier)
|
||||||
tileslen = avg_unsim.group_multiplier
|
tileslen = avg_unsim.group_multiplier
|
||||||
@@ -352,20 +352,20 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output)
|
|||||||
unsim_oxygen += T.oxygen
|
unsim_oxygen += T.oxygen
|
||||||
unsim_co2 += T.carbon_dioxide
|
unsim_co2 += T.carbon_dioxide
|
||||||
unsim_nitrogen += T.nitrogen
|
unsim_nitrogen += T.nitrogen
|
||||||
unsim_plasma += T.toxins
|
unsim_phoron += T.phoron
|
||||||
unsim_temperature += T.temperature/unsimulated_tiles.len
|
unsim_temperature += T.temperature/unsimulated_tiles.len
|
||||||
|
|
||||||
//These values require adjustment in order to properly represent a room of the specified size.
|
//These values require adjustment in order to properly represent a room of the specified size.
|
||||||
unsim_oxygen *= correction_ratio
|
unsim_oxygen *= correction_ratio
|
||||||
unsim_co2 *= correction_ratio
|
unsim_co2 *= correction_ratio
|
||||||
unsim_nitrogen *= correction_ratio
|
unsim_nitrogen *= correction_ratio
|
||||||
unsim_plasma *= correction_ratio
|
unsim_phoron *= correction_ratio
|
||||||
tileslen = unsimulated_tiles.len
|
tileslen = unsimulated_tiles.len
|
||||||
|
|
||||||
else //invalid input type
|
else //invalid input type
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
unsim_heat_capacity = HEAT_CAPACITY_CALCULATION(unsim_oxygen, unsim_co2, unsim_nitrogen, unsim_plasma)
|
unsim_heat_capacity = HEAT_CAPACITY_CALCULATION(unsim_oxygen, unsim_co2, unsim_nitrogen, unsim_phoron)
|
||||||
|
|
||||||
var
|
var
|
||||||
ratio = sharing_lookup_table[6]
|
ratio = sharing_lookup_table[6]
|
||||||
@@ -375,14 +375,14 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output)
|
|||||||
full_oxy = A.oxygen * size
|
full_oxy = A.oxygen * size
|
||||||
full_nitro = A.nitrogen * size
|
full_nitro = A.nitrogen * size
|
||||||
full_co2 = A.carbon_dioxide * size
|
full_co2 = A.carbon_dioxide * size
|
||||||
full_plasma = A.toxins * size
|
full_phoron = A.phoron * size
|
||||||
|
|
||||||
full_heat_capacity = A.heat_capacity() * size
|
full_heat_capacity = A.heat_capacity() * size
|
||||||
|
|
||||||
oxy_avg = (full_oxy + unsim_oxygen*share_size) / (size + share_size)
|
oxy_avg = (full_oxy + unsim_oxygen*share_size) / (size + share_size)
|
||||||
nit_avg = (full_nitro + unsim_nitrogen*share_size) / (size + share_size)
|
nit_avg = (full_nitro + unsim_nitrogen*share_size) / (size + share_size)
|
||||||
co2_avg = (full_co2 + unsim_co2*share_size) / (size + share_size)
|
co2_avg = (full_co2 + unsim_co2*share_size) / (size + share_size)
|
||||||
plasma_avg = (full_plasma + unsim_plasma*share_size) / (size + share_size)
|
phoron_avg = (full_phoron + unsim_phoron*share_size) / (size + share_size)
|
||||||
|
|
||||||
temp_avg = 0
|
temp_avg = 0
|
||||||
|
|
||||||
@@ -399,7 +399,7 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output)
|
|||||||
A.oxygen = max(0, (A.oxygen - oxy_avg) * (1 - ratio) + oxy_avg )
|
A.oxygen = max(0, (A.oxygen - oxy_avg) * (1 - ratio) + oxy_avg )
|
||||||
A.nitrogen = max(0, (A.nitrogen - nit_avg) * (1 - ratio) + nit_avg )
|
A.nitrogen = max(0, (A.nitrogen - nit_avg) * (1 - ratio) + nit_avg )
|
||||||
A.carbon_dioxide = max(0, (A.carbon_dioxide - co2_avg) * (1 - ratio) + co2_avg )
|
A.carbon_dioxide = max(0, (A.carbon_dioxide - co2_avg) * (1 - ratio) + co2_avg )
|
||||||
A.toxins = max(0, (A.toxins - plasma_avg) * (1 - ratio) + plasma_avg )
|
A.phoron = max(0, (A.phoron - phoron_avg) * (1 - ratio) + phoron_avg )
|
||||||
|
|
||||||
A.temperature = max(TCMB, (A.temperature - temp_avg) * (1 - ratio) + temp_avg )
|
A.temperature = max(TCMB, (A.temperature - temp_avg) * (1 - ratio) + temp_avg )
|
||||||
|
|
||||||
|
|||||||
@@ -312,7 +312,7 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
|
|||||||
/datum/controller/air_system/proc/has_same_air(turf/A, turf/B)
|
/datum/controller/air_system/proc/has_same_air(turf/A, turf/B)
|
||||||
if(A.oxygen != B.oxygen) return 0
|
if(A.oxygen != B.oxygen) return 0
|
||||||
if(A.nitrogen != B.nitrogen) return 0
|
if(A.nitrogen != B.nitrogen) return 0
|
||||||
if(A.toxins != B.toxins) return 0
|
if(A.phoron != B.phoron) return 0
|
||||||
if(A.carbon_dioxide != B.carbon_dioxide) return 0
|
if(A.carbon_dioxide != B.carbon_dioxide) return 0
|
||||||
if(A.temperature != B.temperature) return 0
|
if(A.temperature != B.temperature) return 0
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ client/proc/Zone_Info(turf/T as null|turf)
|
|||||||
mob << "No zone here."
|
mob << "No zone here."
|
||||||
var/datum/gas_mixture/mix = T.return_air()
|
var/datum/gas_mixture/mix = T.return_air()
|
||||||
mob << "[mix.return_pressure()] kPa [mix.temperature]C"
|
mob << "[mix.return_pressure()] kPa [mix.temperature]C"
|
||||||
mob << "O2: [mix.oxygen] N2: [mix.nitrogen] CO2: [mix.carbon_dioxide] TX: [mix.toxins]"
|
mob << "O2: [mix.oxygen] N2: [mix.nitrogen] CO2: [mix.carbon_dioxide] TX: [mix.phoron]"
|
||||||
else
|
else
|
||||||
if(zone_debug_images)
|
if(zone_debug_images)
|
||||||
for(var/zone in zone_debug_images)
|
for(var/zone in zone_debug_images)
|
||||||
@@ -105,7 +105,7 @@ client/proc/Test_ZAS_Connection(var/turf/simulated/T as turf)
|
|||||||
client << "<u>Zone Air Contents</u>"
|
client << "<u>Zone Air Contents</u>"
|
||||||
client << "Oxygen: [air.oxygen]"
|
client << "Oxygen: [air.oxygen]"
|
||||||
client << "Nitrogen: [air.nitrogen]"
|
client << "Nitrogen: [air.nitrogen]"
|
||||||
client << "Plasma: [air.toxins]"
|
client << "Phoron: [air.phoron]"
|
||||||
client << "Carbon Dioxide: [air.carbon_dioxide]"
|
client << "Carbon Dioxide: [air.carbon_dioxide]"
|
||||||
client << "Temperature: [air.temperature] K"
|
client << "Temperature: [air.temperature] K"
|
||||||
client << "Heat Energy: [air.temperature * air.heat_capacity()] J"
|
client << "Heat Energy: [air.temperature * air.heat_capacity()] J"
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
Making Bombs with ZAS:
|
Making Bombs with ZAS:
|
||||||
Make burny fire with lots of burning
|
Make burny fire with lots of burning
|
||||||
Draw off 5000K gas from burny fire
|
Draw off 5000K gas from burny fire
|
||||||
Separate gas into oxygen and plasma components
|
Separate gas into oxygen and phoron components
|
||||||
Obtain plasma and oxygen tanks filled up about 50-75% with normal-temp gas
|
Obtain phoron and oxygen tanks filled up about 50-75% with normal-temp gas
|
||||||
Fill rest with super hot gas from separated canisters, they should be about 125C now.
|
Fill rest with super hot gas from separated canisters, they should be about 125C now.
|
||||||
Attach to transfer valve and open. BOOM.
|
Attach to transfer valve and open. BOOM.
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
|
|||||||
if(locate(/obj/fire) in src)
|
if(locate(/obj/fire) in src)
|
||||||
return 1
|
return 1
|
||||||
var/datum/gas_mixture/air_contents = return_air()
|
var/datum/gas_mixture/air_contents = return_air()
|
||||||
if(!air_contents || exposed_temperature < PLASMA_MINIMUM_BURN_TEMPERATURE)
|
if(!air_contents || exposed_temperature < PHORON_MINIMUM_BURN_TEMPERATURE)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
var/igniting = 0
|
var/igniting = 0
|
||||||
@@ -77,8 +77,8 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
|
|||||||
//the amount of moles might get to low for some functions to catch them and thus result in wonky behaviour
|
//the amount of moles might get to low for some functions to catch them and thus result in wonky behaviour
|
||||||
if(air_contents.oxygen < 0.1)
|
if(air_contents.oxygen < 0.1)
|
||||||
air_contents.oxygen = 0
|
air_contents.oxygen = 0
|
||||||
if(air_contents.toxins < 0.1)
|
if(air_contents.phoron < 0.1)
|
||||||
air_contents.toxins = 0
|
air_contents.phoron = 0
|
||||||
if(fuel)
|
if(fuel)
|
||||||
if(fuel.moles < 0.1)
|
if(fuel.moles < 0.1)
|
||||||
air_contents.trace_gases.Remove(fuel)
|
air_contents.trace_gases.Remove(fuel)
|
||||||
@@ -139,7 +139,7 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
|
|||||||
//Ensure flow temperature is higher than minimum fire temperatures.
|
//Ensure flow temperature is higher than minimum fire temperatures.
|
||||||
//this creates some energy ex nihilo but is necessary to get a fire started
|
//this creates some energy ex nihilo but is necessary to get a fire started
|
||||||
//lets just pretend this energy comes from the ignition source and dont mention this again
|
//lets just pretend this energy comes from the ignition source and dont mention this again
|
||||||
//flow.temperature = max(PLASMA_MINIMUM_BURN_TEMPERATURE+0.1,flow.temperature)
|
//flow.temperature = max(PHORON_MINIMUM_BURN_TEMPERATURE+0.1,flow.temperature)
|
||||||
|
|
||||||
//burn baby burn!
|
//burn baby burn!
|
||||||
|
|
||||||
@@ -188,11 +188,11 @@ turf/simulated/apply_fire_protection()
|
|||||||
datum/gas_mixture/proc/zburn(obj/effect/decal/cleanable/liquid_fuel/liquid, force_burn)
|
datum/gas_mixture/proc/zburn(obj/effect/decal/cleanable/liquid_fuel/liquid, force_burn)
|
||||||
var/value = 0
|
var/value = 0
|
||||||
|
|
||||||
if((temperature > PLASMA_MINIMUM_BURN_TEMPERATURE || force_burn) && check_recombustability(liquid))
|
if((temperature > PHORON_MINIMUM_BURN_TEMPERATURE || force_burn) && check_recombustability(liquid))
|
||||||
var/total_fuel = 0
|
var/total_fuel = 0
|
||||||
var/datum/gas/volatile_fuel/fuel = locate() in trace_gases
|
var/datum/gas/volatile_fuel/fuel = locate() in trace_gases
|
||||||
|
|
||||||
total_fuel += toxins
|
total_fuel += phoron
|
||||||
|
|
||||||
if(fuel)
|
if(fuel)
|
||||||
//Volatile Fuel
|
//Volatile Fuel
|
||||||
@@ -230,9 +230,9 @@ datum/gas_mixture/proc/zburn(obj/effect/decal/cleanable/liquid_fuel/liquid, forc
|
|||||||
//remove and add gasses as calculated
|
//remove and add gasses as calculated
|
||||||
oxygen -= min(oxygen, total_oxygen * used_reactants_ratio )
|
oxygen -= min(oxygen, total_oxygen * used_reactants_ratio )
|
||||||
|
|
||||||
toxins -= min(toxins, (toxins * used_fuel_ratio * used_reactants_ratio ) * 3)
|
phoron -= min(phoron, (phoron * used_fuel_ratio * used_reactants_ratio ) * 3)
|
||||||
if(toxins < 0)
|
if(phoron < 0)
|
||||||
toxins = 0
|
phoron = 0
|
||||||
|
|
||||||
carbon_dioxide += max(2 * total_fuel, 0)
|
carbon_dioxide += max(2 * total_fuel, 0)
|
||||||
|
|
||||||
@@ -257,10 +257,10 @@ datum/gas_mixture/proc/check_recombustability(obj/effect/decal/cleanable/liquid_
|
|||||||
|
|
||||||
var/datum/gas/volatile_fuel/fuel = locate() in trace_gases
|
var/datum/gas/volatile_fuel/fuel = locate() in trace_gases
|
||||||
|
|
||||||
if(oxygen && (toxins || fuel || liquid))
|
if(oxygen && (phoron || fuel || liquid))
|
||||||
if(liquid)
|
if(liquid)
|
||||||
return 1
|
return 1
|
||||||
if(toxins >= 0.1)
|
if(phoron >= 0.1)
|
||||||
return 1
|
return 1
|
||||||
if(fuel && fuel.moles >= 0.1)
|
if(fuel && fuel.moles >= 0.1)
|
||||||
return 1
|
return 1
|
||||||
@@ -272,10 +272,10 @@ datum/gas_mixture/proc/check_combustability(obj/effect/decal/cleanable/liquid_fu
|
|||||||
|
|
||||||
var/datum/gas/volatile_fuel/fuel = locate() in trace_gases
|
var/datum/gas/volatile_fuel/fuel = locate() in trace_gases
|
||||||
|
|
||||||
if(oxygen && (toxins || fuel || liquid))
|
if(oxygen && (phoron || fuel || liquid))
|
||||||
if(liquid)
|
if(liquid)
|
||||||
return 1
|
return 1
|
||||||
if (toxins >= 0.1)
|
if (phoron >= 0.1)
|
||||||
return 1
|
return 1
|
||||||
if(fuel && fuel.moles >= 0.1)
|
if(fuel && fuel.moles >= 0.1)
|
||||||
return 1
|
return 1
|
||||||
@@ -291,7 +291,7 @@ datum/gas_mixture/proc/calculate_firelevel(obj/effect/decal/cleanable/liquid_fue
|
|||||||
|
|
||||||
if(check_recombustability(liquid))
|
if(check_recombustability(liquid))
|
||||||
|
|
||||||
total_fuel += toxins
|
total_fuel += phoron
|
||||||
|
|
||||||
if(liquid)
|
if(liquid)
|
||||||
total_fuel += liquid.amount
|
total_fuel += liquid.amount
|
||||||
|
|||||||
@@ -1,37 +1,37 @@
|
|||||||
var/image/contamination_overlay = image('icons/effects/contamination.dmi')
|
var/image/contamination_overlay = image('icons/effects/contamination.dmi')
|
||||||
|
|
||||||
/pl_control
|
/pl_control
|
||||||
var/PLASMA_DMG = 3
|
var/PHORON_DMG = 3
|
||||||
var/PLASMA_DMG_NAME = "Plasma Damage Amount"
|
var/PHORON_DMG_NAME = "Phoron Damage Amount"
|
||||||
var/PLASMA_DMG_DESC = "Self Descriptive"
|
var/PHORON_DMG_DESC = "Self Descriptive"
|
||||||
|
|
||||||
var/CLOTH_CONTAMINATION = 1
|
var/CLOTH_CONTAMINATION = 1
|
||||||
var/CLOTH_CONTAMINATION_NAME = "Cloth Contamination"
|
var/CLOTH_CONTAMINATION_NAME = "Cloth Contamination"
|
||||||
var/CLOTH_CONTAMINATION_DESC = "If this is on, plasma does damage by getting into cloth."
|
var/CLOTH_CONTAMINATION_DESC = "If this is on, phoron does damage by getting into cloth."
|
||||||
|
|
||||||
var/PLASMAGUARD_ONLY = 0
|
var/PHORONGUARD_ONLY = 0
|
||||||
var/PLASMAGUARD_ONLY_NAME = "\"PlasmaGuard Only\""
|
var/PHORONGUARD_ONLY_NAME = "\"PhoronGuard Only\""
|
||||||
var/PLASMAGUARD_ONLY_DESC = "If this is on, only biosuits and spacesuits protect against contamination and ill effects."
|
var/PHORONGUARD_ONLY_DESC = "If this is on, only biosuits and spacesuits protect against contamination and ill effects."
|
||||||
|
|
||||||
var/GENETIC_CORRUPTION = 0
|
var/GENETIC_CORRUPTION = 0
|
||||||
var/GENETIC_CORRUPTION_NAME = "Genetic Corruption Chance"
|
var/GENETIC_CORRUPTION_NAME = "Genetic Corruption Chance"
|
||||||
var/GENETIC_CORRUPTION_DESC = "Chance of genetic corruption as well as toxic damage, X in 10,000."
|
var/GENETIC_CORRUPTION_DESC = "Chance of genetic corruption as well as toxic damage, X in 10,000."
|
||||||
|
|
||||||
var/SKIN_BURNS = 0
|
var/SKIN_BURNS = 0
|
||||||
var/SKIN_BURNS_DESC = "Plasma has an effect similar to mustard gas on the un-suited."
|
var/SKIN_BURNS_DESC = "Phoron has an effect similar to mustard gas on the un-suited."
|
||||||
var/SKIN_BURNS_NAME = "Skin Burns"
|
var/SKIN_BURNS_NAME = "Skin Burns"
|
||||||
|
|
||||||
var/EYE_BURNS = 1
|
var/EYE_BURNS = 1
|
||||||
var/EYE_BURNS_NAME = "Eye Burns"
|
var/EYE_BURNS_NAME = "Eye Burns"
|
||||||
var/EYE_BURNS_DESC = "Plasma burns the eyes of anyone not wearing eye protection."
|
var/EYE_BURNS_DESC = "Phoron burns the eyes of anyone not wearing eye protection."
|
||||||
|
|
||||||
var/CONTAMINATION_LOSS = 0.02
|
var/CONTAMINATION_LOSS = 0.02
|
||||||
var/CONTAMINATION_LOSS_NAME = "Contamination Loss"
|
var/CONTAMINATION_LOSS_NAME = "Contamination Loss"
|
||||||
var/CONTAMINATION_LOSS_DESC = "How much toxin damage is dealt from contaminated clothing" //Per tick? ASK ARYN
|
var/CONTAMINATION_LOSS_DESC = "How much toxin damage is dealt from contaminated clothing" //Per tick? ASK ARYN
|
||||||
|
|
||||||
var/PLASMA_HALLUCINATION = 0
|
var/PHORON_HALLUCINATION = 0
|
||||||
var/PLASMA_HALLUCINATION_NAME = "Plasma Hallucination"
|
var/PHORON_HALLUCINATION_NAME = "Phoron Hallucination"
|
||||||
var/PLASMA_HALLUCINATION_DESC = "Does being in plasma cause you to hallucinate?"
|
var/PHORON_HALLUCINATION_DESC = "Does being in phoron cause you to hallucinate?"
|
||||||
|
|
||||||
var/N2O_HALLUCINATION = 1
|
var/N2O_HALLUCINATION = 1
|
||||||
var/N2O_HALLUCINATION_NAME = "N2O Hallucination"
|
var/N2O_HALLUCINATION_NAME = "N2O Hallucination"
|
||||||
@@ -43,7 +43,7 @@ obj/var/contaminated = 0
|
|||||||
|
|
||||||
/obj/item/proc/can_contaminate()
|
/obj/item/proc/can_contaminate()
|
||||||
//Clothing and backpacks can be contaminated.
|
//Clothing and backpacks can be contaminated.
|
||||||
if(flags & PLASMAGUARD) return 0
|
if(flags & PHORONGUARD) return 0
|
||||||
else if(istype(src,/obj/item/weapon/storage/backpack)) return 0 //Cannot be washed :(
|
else if(istype(src,/obj/item/weapon/storage/backpack)) return 0 //Cannot be washed :(
|
||||||
else if(istype(src,/obj/item/clothing)) return 1
|
else if(istype(src,/obj/item/clothing)) return 1
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ obj/var/contaminated = 0
|
|||||||
suit_contamination()
|
suit_contamination()
|
||||||
|
|
||||||
if(!pl_head_protected())
|
if(!pl_head_protected())
|
||||||
if(prob(1)) suit_contamination() //Plasma can sometimes get through such an open suit.
|
if(prob(1)) suit_contamination() //Phoron can sometimes get through such an open suit.
|
||||||
|
|
||||||
//Cannot wash backpacks currently.
|
//Cannot wash backpacks currently.
|
||||||
// if(istype(back,/obj/item/weapon/storage/backpack))
|
// if(istype(back,/obj/item/weapon/storage/backpack))
|
||||||
@@ -75,7 +75,7 @@ obj/var/contaminated = 0
|
|||||||
/mob/proc/pl_effects()
|
/mob/proc/pl_effects()
|
||||||
|
|
||||||
/mob/living/carbon/human/pl_effects()
|
/mob/living/carbon/human/pl_effects()
|
||||||
//Handles all the bad things plasma can do.
|
//Handles all the bad things phoron can do.
|
||||||
|
|
||||||
//Contamination
|
//Contamination
|
||||||
if(vsc.plc.CLOTH_CONTAMINATION) contaminate()
|
if(vsc.plc.CLOTH_CONTAMINATION) contaminate()
|
||||||
@@ -111,7 +111,7 @@ obj/var/contaminated = 0
|
|||||||
if(vsc.plc.GENETIC_CORRUPTION)
|
if(vsc.plc.GENETIC_CORRUPTION)
|
||||||
if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION)
|
if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION)
|
||||||
randmutb(src)
|
randmutb(src)
|
||||||
src << "\red High levels of toxins cause you to spontaneously mutate."
|
src << "\red High levels of phoron cause you to spontaneously mutate."
|
||||||
domutcheck(src,null)
|
domutcheck(src,null)
|
||||||
|
|
||||||
|
|
||||||
@@ -128,8 +128,8 @@ obj/var/contaminated = 0
|
|||||||
/mob/living/carbon/human/proc/pl_head_protected()
|
/mob/living/carbon/human/proc/pl_head_protected()
|
||||||
//Checks if the head is adequately sealed.
|
//Checks if the head is adequately sealed.
|
||||||
if(head)
|
if(head)
|
||||||
if(vsc.plc.PLASMAGUARD_ONLY)
|
if(vsc.plc.PHORONGUARD_ONLY)
|
||||||
if(head.flags & PLASMAGUARD)
|
if(head.flags & PHORONGUARD)
|
||||||
return 1
|
return 1
|
||||||
else if(head.flags & HEADCOVERSEYES)
|
else if(head.flags & HEADCOVERSEYES)
|
||||||
return 1
|
return 1
|
||||||
@@ -138,10 +138,11 @@ obj/var/contaminated = 0
|
|||||||
/mob/living/carbon/human/proc/pl_suit_protected()
|
/mob/living/carbon/human/proc/pl_suit_protected()
|
||||||
//Checks if the suit is adequately sealed.
|
//Checks if the suit is adequately sealed.
|
||||||
if(wear_suit)
|
if(wear_suit)
|
||||||
if(vsc.plc.PLASMAGUARD_ONLY)
|
if(vsc.plc.PHORONGUARD_ONLY)
|
||||||
if(wear_suit.flags & PLASMAGUARD) return 1
|
if(wear_suit.flags & PHORONGUARD) return 1
|
||||||
else
|
else
|
||||||
if(wear_suit.flags_inv & HIDEJUMPSUIT) return 1
|
if(wear_suit.flags_inv & HIDEJUMPSUIT) return 1
|
||||||
|
//should check HIDETAIL as well, but for the moment tails are not a part that can be damaged separately
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/suit_contamination()
|
/mob/living/carbon/human/proc/suit_contamination()
|
||||||
@@ -153,11 +154,11 @@ obj/var/contaminated = 0
|
|||||||
|
|
||||||
turf/Entered(obj/item/I)
|
turf/Entered(obj/item/I)
|
||||||
. = ..()
|
. = ..()
|
||||||
//Items that are in plasma, but not on a mob, can still be contaminated.
|
//Items that are in phoron, but not on a mob, can still be contaminated.
|
||||||
if(istype(I) && vsc.plc.CLOTH_CONTAMINATION)
|
if(istype(I) && vsc.plc.CLOTH_CONTAMINATION)
|
||||||
var/datum/gas_mixture/env = return_air(1)
|
var/datum/gas_mixture/env = return_air(1)
|
||||||
if(!env)
|
if(!env)
|
||||||
return
|
return
|
||||||
if(env.toxins > MOLES_PLASMA_VISIBLE + 1)
|
if(env.phoron > MOLES_PHORON_VISIBLE + 1)
|
||||||
if(I.can_contaminate())
|
if(I.can_contaminate())
|
||||||
I.contaminate()
|
I.contaminate()
|
||||||
@@ -182,7 +182,7 @@
|
|||||||
GM.oxygen = oxygen
|
GM.oxygen = oxygen
|
||||||
GM.carbon_dioxide = carbon_dioxide
|
GM.carbon_dioxide = carbon_dioxide
|
||||||
GM.nitrogen = nitrogen
|
GM.nitrogen = nitrogen
|
||||||
GM.toxins = toxins
|
GM.phoron = phoron
|
||||||
|
|
||||||
GM.temperature = temperature
|
GM.temperature = temperature
|
||||||
GM.update_values()
|
GM.update_values()
|
||||||
@@ -192,12 +192,12 @@
|
|||||||
/turf/remove_air(amount as num)
|
/turf/remove_air(amount as num)
|
||||||
var/datum/gas_mixture/GM = new
|
var/datum/gas_mixture/GM = new
|
||||||
|
|
||||||
var/sum = oxygen + carbon_dioxide + nitrogen + toxins
|
var/sum = oxygen + carbon_dioxide + nitrogen + phoron
|
||||||
if(sum>0)
|
if(sum>0)
|
||||||
GM.oxygen = (oxygen/sum)*amount
|
GM.oxygen = (oxygen/sum)*amount
|
||||||
GM.carbon_dioxide = (carbon_dioxide/sum)*amount
|
GM.carbon_dioxide = (carbon_dioxide/sum)*amount
|
||||||
GM.nitrogen = (nitrogen/sum)*amount
|
GM.nitrogen = (nitrogen/sum)*amount
|
||||||
GM.toxins = (toxins/sum)*amount
|
GM.phoron = (phoron/sum)*amount
|
||||||
|
|
||||||
GM.temperature = temperature
|
GM.temperature = temperature
|
||||||
GM.update_values()
|
GM.update_values()
|
||||||
@@ -230,7 +230,7 @@
|
|||||||
/turf/proc/make_air()
|
/turf/proc/make_air()
|
||||||
air = new/datum/gas_mixture
|
air = new/datum/gas_mixture
|
||||||
air.temperature = temperature
|
air.temperature = temperature
|
||||||
air.adjust(oxygen, carbon_dioxide, nitrogen, toxins)
|
air.adjust(oxygen, carbon_dioxide, nitrogen, phoron)
|
||||||
air.group_multiplier = 1
|
air.group_multiplier = 1
|
||||||
air.volume = CELL_VOLUME
|
air.volume = CELL_VOLUME
|
||||||
|
|
||||||
|
|||||||
@@ -186,51 +186,51 @@ var/global/vs_control/vsc = new
|
|||||||
newvalue = vars[V]
|
newvalue = vars[V]
|
||||||
V = newvalue
|
V = newvalue
|
||||||
|
|
||||||
/vs_control/proc/ChangePlasma()
|
/vs_control/proc/ChangePhoron()
|
||||||
for(var/V in plc.settings)
|
for(var/V in plc.settings)
|
||||||
plc.Randomize(V)
|
plc.Randomize(V)
|
||||||
|
|
||||||
/vs_control/proc/SetDefault(var/mob/user)
|
/vs_control/proc/SetDefault(var/mob/user)
|
||||||
var/list/setting_choices = list("Plasma - Standard", "Plasma - Low Hazard", "Plasma - High Hazard", "Plasma - Oh Shit!",\
|
var/list/setting_choices = list("Phoron - Standard", "Phoron - Low Hazard", "Phoron - High Hazard", "Phoron - Oh Shit!",\
|
||||||
"ZAS - Normal", "ZAS - Forgiving", "ZAS - Dangerous", "ZAS - Hellish")
|
"ZAS - Normal", "ZAS - Forgiving", "ZAS - Dangerous", "ZAS - Hellish")
|
||||||
var/def = input(user, "Which of these presets should be used?") as null|anything in setting_choices
|
var/def = input(user, "Which of these presets should be used?") as null|anything in setting_choices
|
||||||
if(!def)
|
if(!def)
|
||||||
return
|
return
|
||||||
switch(def)
|
switch(def)
|
||||||
if("Plasma - Standard")
|
if("Phoron - Standard")
|
||||||
plc.CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 1 //If this is on, phoron does damage by getting into cloth.
|
||||||
plc.PLASMAGUARD_ONLY = 0
|
plc.PHORONGUARD_ONLY = 0
|
||||||
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
||||||
plc.SKIN_BURNS = 0 //Plasma has an effect similar to mustard gas on the un-suited.
|
plc.SKIN_BURNS = 0 //Phoron has an effect similar to mustard gas on the un-suited.
|
||||||
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
plc.EYE_BURNS = 1 //Phoron burns the eyes of anyone not wearing eye protection.
|
||||||
plc.PLASMA_HALLUCINATION = 0
|
plc.PHORON_HALLUCINATION = 0
|
||||||
plc.CONTAMINATION_LOSS = 0.02
|
plc.CONTAMINATION_LOSS = 0.02
|
||||||
|
|
||||||
if("Plasma - Low Hazard")
|
if("Phoron - Low Hazard")
|
||||||
plc.CLOTH_CONTAMINATION = 0 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 0 //If this is on, phoron does damage by getting into cloth.
|
||||||
plc.PLASMAGUARD_ONLY = 0
|
plc.PHORONGUARD_ONLY = 0
|
||||||
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000
|
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000
|
||||||
plc.SKIN_BURNS = 0 //Plasma has an effect similar to mustard gas on the un-suited.
|
plc.SKIN_BURNS = 0 //Phoron has an effect similar to mustard gas on the un-suited.
|
||||||
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
plc.EYE_BURNS = 1 //Phoron burns the eyes of anyone not wearing eye protection.
|
||||||
plc.PLASMA_HALLUCINATION = 0
|
plc.PHORON_HALLUCINATION = 0
|
||||||
plc.CONTAMINATION_LOSS = 0.01
|
plc.CONTAMINATION_LOSS = 0.01
|
||||||
|
|
||||||
if("Plasma - High Hazard")
|
if("Phoron - High Hazard")
|
||||||
plc.CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 1 //If this is on, phoron does damage by getting into cloth.
|
||||||
plc.PLASMAGUARD_ONLY = 0
|
plc.PHORONGUARD_ONLY = 0
|
||||||
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
plc.GENETIC_CORRUPTION = 0 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
||||||
plc.SKIN_BURNS = 1 //Plasma has an effect similar to mustard gas on the un-suited.
|
plc.SKIN_BURNS = 1 //Phoron has an effect similar to mustard gas on the un-suited.
|
||||||
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
plc.EYE_BURNS = 1 //Phoron burns the eyes of anyone not wearing eye protection.
|
||||||
plc.PLASMA_HALLUCINATION = 1
|
plc.PHORON_HALLUCINATION = 1
|
||||||
plc.CONTAMINATION_LOSS = 0.05
|
plc.CONTAMINATION_LOSS = 0.05
|
||||||
|
|
||||||
if("Plasma - Oh Shit!")
|
if("Phoron - Oh Shit!")
|
||||||
plc.CLOTH_CONTAMINATION = 1 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 1 //If this is on, phoron does damage by getting into cloth.
|
||||||
plc.PLASMAGUARD_ONLY = 1
|
plc.PHORONGUARD_ONLY = 1
|
||||||
plc.GENETIC_CORRUPTION = 5 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
plc.GENETIC_CORRUPTION = 5 //Chance of genetic corruption as well as toxic damage, X in 1000.
|
||||||
plc.SKIN_BURNS = 1 //Plasma has an effect similar to mustard gas on the un-suited.
|
plc.SKIN_BURNS = 1 //Phoron has an effect similar to mustard gas on the un-suited.
|
||||||
plc.EYE_BURNS = 1 //Plasma burns the eyes of anyone not wearing eye protection.
|
plc.EYE_BURNS = 1 //Phoron burns the eyes of anyone not wearing eye protection.
|
||||||
plc.PLASMA_HALLUCINATION = 1
|
plc.PHORON_HALLUCINATION = 1
|
||||||
plc.CONTAMINATION_LOSS = 0.075
|
plc.CONTAMINATION_LOSS = 0.075
|
||||||
|
|
||||||
if("ZAS - Normal")
|
if("ZAS - Normal")
|
||||||
@@ -291,7 +291,7 @@ var/global/vs_control/vsc = new
|
|||||||
connection_insulation = 0
|
connection_insulation = 0
|
||||||
|
|
||||||
|
|
||||||
world << "\blue <b>[key_name(user)] changed the global plasma/ZAS settings to \"[def]\"</b>"
|
world << "\blue <b>[key_name(user)] changed the global phoron/ZAS settings to \"[def]\"</b>"
|
||||||
|
|
||||||
/pl_control/var/list/settings = list()
|
/pl_control/var/list/settings = list()
|
||||||
|
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ Class Procs:
|
|||||||
|
|
||||||
/zone/proc/dbg_data(mob/M)
|
/zone/proc/dbg_data(mob/M)
|
||||||
M << name
|
M << name
|
||||||
M << "O2: [air.oxygen] N2: [air.nitrogen] CO2: [air.carbon_dioxide] P: [air.toxins]"
|
M << "O2: [air.oxygen] N2: [air.nitrogen] CO2: [air.carbon_dioxide] P: [air.phoron]"
|
||||||
M << "P: [air.return_pressure()] kPa V: [air.volume]L T: [air.temperature]<5D>K ([air.temperature - T0C]<5D>C)"
|
M << "P: [air.return_pressure()] kPa V: [air.volume]L T: [air.temperature]<5D>K ([air.temperature - T0C]<5D>C)"
|
||||||
M << "O2 per N2: [(air.nitrogen ? air.oxygen/air.nitrogen : "N/A")] Moles: [air.total_moles]"
|
M << "O2 per N2: [(air.nitrogen ? air.oxygen/air.nitrogen : "N/A")] Moles: [air.total_moles]"
|
||||||
M << "Simulated: [contents.len] ([air.group_multiplier])"
|
M << "Simulated: [contents.len] ([air.group_multiplier])"
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ What are the archived variables for?
|
|||||||
#define SPECIFIC_HEAT_TOXIN 200
|
#define SPECIFIC_HEAT_TOXIN 200
|
||||||
#define SPECIFIC_HEAT_AIR 20
|
#define SPECIFIC_HEAT_AIR 20
|
||||||
#define SPECIFIC_HEAT_CDO 30
|
#define SPECIFIC_HEAT_CDO 30
|
||||||
#define HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,toxins) \
|
#define HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,phoron) \
|
||||||
max(0, carbon_dioxide * SPECIFIC_HEAT_CDO + (oxygen + nitrogen) * SPECIFIC_HEAT_AIR + toxins * SPECIFIC_HEAT_TOXIN)
|
max(0, carbon_dioxide * SPECIFIC_HEAT_CDO + (oxygen + nitrogen) * SPECIFIC_HEAT_AIR + phoron * SPECIFIC_HEAT_TOXIN)
|
||||||
|
|
||||||
#define MINIMUM_HEAT_CAPACITY 0.0003
|
#define MINIMUM_HEAT_CAPACITY 0.0003
|
||||||
#define QUANTIZE(variable) (round(variable,0.0001))
|
#define QUANTIZE(variable) (round(variable,0.0001))
|
||||||
@@ -17,7 +17,7 @@ What are the archived variables for?
|
|||||||
/hook/startup/proc/createGasOverlays()
|
/hook/startup/proc/createGasOverlays()
|
||||||
plmaster = new /obj/effect/overlay()
|
plmaster = new /obj/effect/overlay()
|
||||||
plmaster.icon = 'icons/effects/tile_effects.dmi'
|
plmaster.icon = 'icons/effects/tile_effects.dmi'
|
||||||
plmaster.icon_state = "plasma"
|
plmaster.icon_state = "phoron"
|
||||||
plmaster.layer = FLY_LAYER
|
plmaster.layer = FLY_LAYER
|
||||||
plmaster.mouse_opacity = 0
|
plmaster.mouse_opacity = 0
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ What are the archived variables for?
|
|||||||
var/oxygen = 0 //Holds the "moles" of each of the four gases.
|
var/oxygen = 0 //Holds the "moles" of each of the four gases.
|
||||||
var/carbon_dioxide = 0
|
var/carbon_dioxide = 0
|
||||||
var/nitrogen = 0
|
var/nitrogen = 0
|
||||||
var/toxins = 0
|
var/phoron = 0
|
||||||
|
|
||||||
var/total_moles = 0 //Updated when a reaction occurs.
|
var/total_moles = 0 //Updated when a reaction occurs.
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ What are the archived variables for?
|
|||||||
var/tmp/oxygen_archived //These are variables for use with the archived data
|
var/tmp/oxygen_archived //These are variables for use with the archived data
|
||||||
var/tmp/carbon_dioxide_archived
|
var/tmp/carbon_dioxide_archived
|
||||||
var/tmp/nitrogen_archived
|
var/tmp/nitrogen_archived
|
||||||
var/tmp/toxins_archived
|
var/tmp/phoron_archived
|
||||||
|
|
||||||
var/tmp/temperature_archived
|
var/tmp/temperature_archived
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ What are the archived variables for?
|
|||||||
oxygen = max(0, oxygen + o2)
|
oxygen = max(0, oxygen + o2)
|
||||||
carbon_dioxide = max(0, carbon_dioxide + co2)
|
carbon_dioxide = max(0, carbon_dioxide + co2)
|
||||||
nitrogen = max(0, nitrogen + n2)
|
nitrogen = max(0, nitrogen + n2)
|
||||||
toxins = max(0, toxins + tx)
|
phoron = max(0, phoron + tx)
|
||||||
|
|
||||||
//handle trace gasses
|
//handle trace gasses
|
||||||
for(var/datum/gas/G in traces)
|
for(var/datum/gas/G in traces)
|
||||||
@@ -119,7 +119,7 @@ What are the archived variables for?
|
|||||||
//Inputs: None
|
//Inputs: None
|
||||||
//Outputs: Heat capacity
|
//Outputs: Heat capacity
|
||||||
|
|
||||||
var/heat_capacity = HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,toxins)
|
var/heat_capacity = HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,phoron)
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -133,7 +133,7 @@ What are the archived variables for?
|
|||||||
//Inputs: None
|
//Inputs: None
|
||||||
//Outputs: Archived heat capacity
|
//Outputs: Archived heat capacity
|
||||||
|
|
||||||
var/heat_capacity_archived = HEAT_CAPACITY_CALCULATION(oxygen_archived,carbon_dioxide_archived,nitrogen_archived,toxins_archived)
|
var/heat_capacity_archived = HEAT_CAPACITY_CALCULATION(oxygen_archived,carbon_dioxide_archived,nitrogen_archived,phoron_archived)
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -143,7 +143,7 @@ What are the archived variables for?
|
|||||||
|
|
||||||
/datum/gas_mixture/proc/total_moles()
|
/datum/gas_mixture/proc/total_moles()
|
||||||
return total_moles
|
return total_moles
|
||||||
/*var/moles = oxygen + carbon_dioxide + nitrogen + toxins
|
/*var/moles = oxygen + carbon_dioxide + nitrogen + phoron
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -187,7 +187,7 @@ What are the archived variables for?
|
|||||||
//Inputs: None
|
//Inputs: None
|
||||||
//Outputs: None
|
//Outputs: None
|
||||||
|
|
||||||
total_moles = oxygen + carbon_dioxide + nitrogen + toxins
|
total_moles = oxygen + carbon_dioxide + nitrogen + phoron
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -206,7 +206,7 @@ What are the archived variables for?
|
|||||||
//Outputs: 1 if graphic changed, 0 if unchanged
|
//Outputs: 1 if graphic changed, 0 if unchanged
|
||||||
|
|
||||||
graphic = 0
|
graphic = 0
|
||||||
if(toxins > MOLES_PLASMA_VISIBLE)
|
if(phoron > MOLES_PHORON_VISIBLE)
|
||||||
graphic = 1
|
graphic = 1
|
||||||
else if(length(trace_gases))
|
else if(length(trace_gases))
|
||||||
var/datum/gas/sleeping_agent = locate(/datum/gas/sleeping_agent) in trace_gases
|
var/datum/gas/sleeping_agent = locate(/datum/gas/sleeping_agent) in trace_gases
|
||||||
@@ -258,11 +258,11 @@ What are the archived variables for?
|
|||||||
carbon_dioxide += burned_fuel
|
carbon_dioxide += burned_fuel
|
||||||
fuel_burnt += burned_fuel
|
fuel_burnt += burned_fuel
|
||||||
|
|
||||||
//Handle plasma burning
|
//Handle phoron burning
|
||||||
if(toxins > MINIMUM_HEAT_CAPACITY)
|
if(toxins > MINIMUM_HEAT_CAPACITY)
|
||||||
var/plasma_burn_rate = 0
|
var/phoron_burn_rate = 0
|
||||||
var/oxygen_burn_rate = 0
|
var/oxygen_burn_rate = 0
|
||||||
//more plasma released at higher temperatures
|
//more phoron released at higher temperatures
|
||||||
var/temperature_scale
|
var/temperature_scale
|
||||||
if(temperature > PLASMA_UPPER_TEMPERATURE)
|
if(temperature > PLASMA_UPPER_TEMPERATURE)
|
||||||
temperature_scale = 1
|
temperature_scale = 1
|
||||||
@@ -271,17 +271,17 @@ What are the archived variables for?
|
|||||||
if(temperature_scale > 0)
|
if(temperature_scale > 0)
|
||||||
oxygen_burn_rate = 1.4 - temperature_scale
|
oxygen_burn_rate = 1.4 - temperature_scale
|
||||||
if(oxygen > toxins*PLASMA_OXYGEN_FULLBURN)
|
if(oxygen > toxins*PLASMA_OXYGEN_FULLBURN)
|
||||||
plasma_burn_rate = (toxins*temperature_scale)/4
|
phoron_burn_rate = (toxins*temperature_scale)/4
|
||||||
else
|
else
|
||||||
plasma_burn_rate = (temperature_scale*(oxygen/PLASMA_OXYGEN_FULLBURN))/4
|
phoron_burn_rate = (temperature_scale*(oxygen/PLASMA_OXYGEN_FULLBURN))/4
|
||||||
if(plasma_burn_rate > MINIMUM_HEAT_CAPACITY)
|
if(phoron_burn_rate > MINIMUM_HEAT_CAPACITY)
|
||||||
toxins -= plasma_burn_rate
|
toxins -= phoron_burn_rate
|
||||||
oxygen -= plasma_burn_rate*oxygen_burn_rate
|
oxygen -= phoron_burn_rate*oxygen_burn_rate
|
||||||
carbon_dioxide += plasma_burn_rate
|
carbon_dioxide += phoron_burn_rate
|
||||||
|
|
||||||
energy_released += FIRE_PLASMA_ENERGY_RELEASED * (plasma_burn_rate)
|
energy_released += FIRE_PLASMA_ENERGY_RELEASED * (phoron_burn_rate)
|
||||||
|
|
||||||
fuel_burnt += (plasma_burn_rate)*(1+oxygen_burn_rate)
|
fuel_burnt += (phoron_burn_rate)*(1+oxygen_burn_rate)
|
||||||
|
|
||||||
if(energy_released > 0)
|
if(energy_released > 0)
|
||||||
var/new_heat_capacity = heat_capacity()
|
var/new_heat_capacity = heat_capacity()
|
||||||
@@ -305,7 +305,7 @@ What are the archived variables for?
|
|||||||
oxygen_archived = oxygen
|
oxygen_archived = oxygen
|
||||||
carbon_dioxide_archived = carbon_dioxide
|
carbon_dioxide_archived = carbon_dioxide
|
||||||
nitrogen_archived = nitrogen
|
nitrogen_archived = nitrogen
|
||||||
toxins_archived = toxins
|
phoron_archived = phoron
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -329,7 +329,7 @@ What are the archived variables for?
|
|||||||
if(((giver.oxygen > MINIMUM_AIR_TO_SUSPEND) && (giver.oxygen >= oxygen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
if(((giver.oxygen > MINIMUM_AIR_TO_SUSPEND) && (giver.oxygen >= oxygen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((giver.carbon_dioxide > MINIMUM_AIR_TO_SUSPEND) && (giver.carbon_dioxide >= carbon_dioxide*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
|| ((giver.carbon_dioxide > MINIMUM_AIR_TO_SUSPEND) && (giver.carbon_dioxide >= carbon_dioxide*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((giver.nitrogen > MINIMUM_AIR_TO_SUSPEND) && (giver.nitrogen >= nitrogen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
|| ((giver.nitrogen > MINIMUM_AIR_TO_SUSPEND) && (giver.nitrogen >= nitrogen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((giver.toxins > MINIMUM_AIR_TO_SUSPEND) && (giver.toxins >= toxins*MINIMUM_AIR_RATIO_TO_SUSPEND)))
|
|| ((giver.phoron > MINIMUM_AIR_TO_SUSPEND) && (giver.phoron >= phoron*MINIMUM_AIR_RATIO_TO_SUSPEND)))
|
||||||
return 0
|
return 0
|
||||||
if(abs(giver.temperature - temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND)
|
if(abs(giver.temperature - temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND)
|
||||||
return 0
|
return 0
|
||||||
@@ -362,12 +362,12 @@ What are the archived variables for?
|
|||||||
oxygen += giver.oxygen*giver.group_multiplier/group_multiplier
|
oxygen += giver.oxygen*giver.group_multiplier/group_multiplier
|
||||||
carbon_dioxide += giver.carbon_dioxide*giver.group_multiplier/group_multiplier
|
carbon_dioxide += giver.carbon_dioxide*giver.group_multiplier/group_multiplier
|
||||||
nitrogen += giver.nitrogen*giver.group_multiplier/group_multiplier
|
nitrogen += giver.nitrogen*giver.group_multiplier/group_multiplier
|
||||||
toxins += giver.toxins*giver.group_multiplier/group_multiplier
|
phoron += giver.phoron*giver.group_multiplier/group_multiplier
|
||||||
else
|
else
|
||||||
oxygen += giver.oxygen
|
oxygen += giver.oxygen
|
||||||
carbon_dioxide += giver.carbon_dioxide
|
carbon_dioxide += giver.carbon_dioxide
|
||||||
nitrogen += giver.nitrogen
|
nitrogen += giver.nitrogen
|
||||||
toxins += giver.toxins
|
phoron += giver.phoron
|
||||||
|
|
||||||
if(giver.trace_gases.len)
|
if(giver.trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in giver.trace_gases)
|
for(var/datum/gas/trace_gas in giver.trace_gases)
|
||||||
@@ -399,12 +399,12 @@ What are the archived variables for?
|
|||||||
removed.oxygen = QUANTIZE((oxygen/sum)*amount)
|
removed.oxygen = QUANTIZE((oxygen/sum)*amount)
|
||||||
removed.nitrogen = QUANTIZE((nitrogen/sum)*amount)
|
removed.nitrogen = QUANTIZE((nitrogen/sum)*amount)
|
||||||
removed.carbon_dioxide = QUANTIZE((carbon_dioxide/sum)*amount)
|
removed.carbon_dioxide = QUANTIZE((carbon_dioxide/sum)*amount)
|
||||||
removed.toxins = QUANTIZE(((toxins/sum)*amount))
|
removed.phoron = QUANTIZE(((phoron/sum)*amount))
|
||||||
|
|
||||||
oxygen -= removed.oxygen/group_multiplier
|
oxygen -= removed.oxygen/group_multiplier
|
||||||
nitrogen -= removed.nitrogen/group_multiplier
|
nitrogen -= removed.nitrogen/group_multiplier
|
||||||
carbon_dioxide -= removed.carbon_dioxide/group_multiplier
|
carbon_dioxide -= removed.carbon_dioxide/group_multiplier
|
||||||
toxins -= removed.toxins/group_multiplier
|
phoron -= removed.phoron/group_multiplier
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -436,12 +436,12 @@ What are the archived variables for?
|
|||||||
removed.oxygen = QUANTIZE(oxygen*ratio)
|
removed.oxygen = QUANTIZE(oxygen*ratio)
|
||||||
removed.nitrogen = QUANTIZE(nitrogen*ratio)
|
removed.nitrogen = QUANTIZE(nitrogen*ratio)
|
||||||
removed.carbon_dioxide = QUANTIZE(carbon_dioxide*ratio)
|
removed.carbon_dioxide = QUANTIZE(carbon_dioxide*ratio)
|
||||||
removed.toxins = QUANTIZE(toxins*ratio)
|
removed.phoron = QUANTIZE(phoron*ratio)
|
||||||
|
|
||||||
oxygen -= removed.oxygen/group_multiplier
|
oxygen -= removed.oxygen/group_multiplier
|
||||||
nitrogen -= removed.nitrogen/group_multiplier
|
nitrogen -= removed.nitrogen/group_multiplier
|
||||||
carbon_dioxide -= removed.carbon_dioxide/group_multiplier
|
carbon_dioxide -= removed.carbon_dioxide/group_multiplier
|
||||||
toxins -= removed.toxins/group_multiplier
|
phoron -= removed.phoron/group_multiplier
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -480,7 +480,7 @@ What are the archived variables for?
|
|||||||
oxygen = sample.oxygen
|
oxygen = sample.oxygen
|
||||||
carbon_dioxide = sample.carbon_dioxide
|
carbon_dioxide = sample.carbon_dioxide
|
||||||
nitrogen = sample.nitrogen
|
nitrogen = sample.nitrogen
|
||||||
toxins = sample.toxins
|
phoron = sample.phoron
|
||||||
total_moles = sample.total_moles()
|
total_moles = sample.total_moles()
|
||||||
|
|
||||||
trace_gases.len=null
|
trace_gases.len=null
|
||||||
@@ -508,14 +508,14 @@ What are the archived variables for?
|
|||||||
var/delta_oxygen = QUANTIZE(oxygen_archived - sharer.oxygen_archived)/TRANSFER_FRACTION
|
var/delta_oxygen = QUANTIZE(oxygen_archived - sharer.oxygen_archived)/TRANSFER_FRACTION
|
||||||
var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - sharer.carbon_dioxide_archived)/TRANSFER_FRACTION
|
var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - sharer.carbon_dioxide_archived)/TRANSFER_FRACTION
|
||||||
var/delta_nitrogen = QUANTIZE(nitrogen_archived - sharer.nitrogen_archived)/TRANSFER_FRACTION
|
var/delta_nitrogen = QUANTIZE(nitrogen_archived - sharer.nitrogen_archived)/TRANSFER_FRACTION
|
||||||
var/delta_toxins = QUANTIZE(toxins_archived - sharer.toxins_archived)/TRANSFER_FRACTION
|
var/delta_phoron = QUANTIZE(phoron_archived - sharer.phoron_archived)/TRANSFER_FRACTION
|
||||||
|
|
||||||
var/delta_temperature = (temperature_archived - sharer.temperature_archived)
|
var/delta_temperature = (temperature_archived - sharer.temperature_archived)
|
||||||
|
|
||||||
if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
|| ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
|| ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)))
|
|| ((abs(delta_phoron) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_phoron) >= phoron_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND)
|
if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND)
|
||||||
@@ -540,7 +540,7 @@ What are the archived variables for?
|
|||||||
if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= sharer.oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= sharer.oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= sharer.carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
|| ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= sharer.carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= sharer.nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
|| ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= sharer.nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= sharer.toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)))
|
|| ((abs(delta_phoron) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_phoron) >= sharer.phoron_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)))
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
@@ -564,14 +564,14 @@ What are the archived variables for?
|
|||||||
var/delta_oxygen = (oxygen_archived - model.oxygen)/TRANSFER_FRACTION
|
var/delta_oxygen = (oxygen_archived - model.oxygen)/TRANSFER_FRACTION
|
||||||
var/delta_carbon_dioxide = (carbon_dioxide_archived - model.carbon_dioxide)/TRANSFER_FRACTION
|
var/delta_carbon_dioxide = (carbon_dioxide_archived - model.carbon_dioxide)/TRANSFER_FRACTION
|
||||||
var/delta_nitrogen = (nitrogen_archived - model.nitrogen)/TRANSFER_FRACTION
|
var/delta_nitrogen = (nitrogen_archived - model.nitrogen)/TRANSFER_FRACTION
|
||||||
var/delta_toxins = (toxins_archived - model.toxins)/TRANSFER_FRACTION
|
var/delta_phoron = (phoron_archived - model.phoron)/TRANSFER_FRACTION
|
||||||
|
|
||||||
var/delta_temperature = (temperature_archived - model.temperature)
|
var/delta_temperature = (temperature_archived - model.temperature)
|
||||||
|
|
||||||
if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
|| ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
|| ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \
|
||||||
|| ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)))
|
|| ((abs(delta_phoron) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_phoron) >= phoron_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)))
|
||||||
return 0
|
return 0
|
||||||
if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND)
|
if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND)
|
||||||
return 0
|
return 0
|
||||||
@@ -597,7 +597,7 @@ What are the archived variables for?
|
|||||||
var/delta_oxygen = QUANTIZE(oxygen_archived - sharer.oxygen_archived)/TRANSFER_FRACTION
|
var/delta_oxygen = QUANTIZE(oxygen_archived - sharer.oxygen_archived)/TRANSFER_FRACTION
|
||||||
var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - sharer.carbon_dioxide_archived)/TRANSFER_FRACTION
|
var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - sharer.carbon_dioxide_archived)/TRANSFER_FRACTION
|
||||||
var/delta_nitrogen = QUANTIZE(nitrogen_archived - sharer.nitrogen_archived)/TRANSFER_FRACTION
|
var/delta_nitrogen = QUANTIZE(nitrogen_archived - sharer.nitrogen_archived)/TRANSFER_FRACTION
|
||||||
var/delta_toxins = QUANTIZE(toxins_archived - sharer.toxins_archived)/TRANSFER_FRACTION
|
var/delta_phoron = QUANTIZE(phoron_archived - sharer.phoron_archived)/TRANSFER_FRACTION
|
||||||
|
|
||||||
var/delta_temperature = (temperature_archived - sharer.temperature_archived)
|
var/delta_temperature = (temperature_archived - sharer.temperature_archived)
|
||||||
|
|
||||||
@@ -630,14 +630,14 @@ What are the archived variables for?
|
|||||||
heat_sharer_to_self -= carbon_dioxide_heat_capacity*sharer.temperature_archived
|
heat_sharer_to_self -= carbon_dioxide_heat_capacity*sharer.temperature_archived
|
||||||
heat_capacity_sharer_to_self -= carbon_dioxide_heat_capacity
|
heat_capacity_sharer_to_self -= carbon_dioxide_heat_capacity
|
||||||
|
|
||||||
if(delta_toxins)
|
if(delta_phoron)
|
||||||
var/toxins_heat_capacity = SPECIFIC_HEAT_TOXIN*delta_toxins
|
var/phoron_heat_capacity = SPECIFIC_HEAT_TOXIN*delta_phoron
|
||||||
if(delta_toxins > 0)
|
if(delta_phoron > 0)
|
||||||
heat_self_to_sharer += toxins_heat_capacity*temperature_archived
|
heat_self_to_sharer += phoron_heat_capacity*temperature_archived
|
||||||
heat_capacity_self_to_sharer += toxins_heat_capacity
|
heat_capacity_self_to_sharer += phoron_heat_capacity
|
||||||
else
|
else
|
||||||
heat_sharer_to_self -= toxins_heat_capacity*sharer.temperature_archived
|
heat_sharer_to_self -= phoron_heat_capacity*sharer.temperature_archived
|
||||||
heat_capacity_sharer_to_self -= toxins_heat_capacity
|
heat_capacity_sharer_to_self -= phoron_heat_capacity
|
||||||
|
|
||||||
old_self_heat_capacity = heat_capacity()*group_multiplier
|
old_self_heat_capacity = heat_capacity()*group_multiplier
|
||||||
old_sharer_heat_capacity = sharer.heat_capacity()*sharer.group_multiplier
|
old_sharer_heat_capacity = sharer.heat_capacity()*sharer.group_multiplier
|
||||||
@@ -651,10 +651,10 @@ What are the archived variables for?
|
|||||||
nitrogen -= delta_nitrogen/group_multiplier
|
nitrogen -= delta_nitrogen/group_multiplier
|
||||||
sharer.nitrogen += delta_nitrogen/sharer.group_multiplier
|
sharer.nitrogen += delta_nitrogen/sharer.group_multiplier
|
||||||
|
|
||||||
toxins -= delta_toxins/group_multiplier
|
phoron -= delta_phoron/group_multiplier
|
||||||
sharer.toxins += delta_toxins/sharer.group_multiplier
|
sharer.phoron += delta_phoron/sharer.group_multiplier
|
||||||
|
|
||||||
var/moved_moles = (delta_oxygen + delta_carbon_dioxide + delta_nitrogen + delta_toxins)
|
var/moved_moles = (delta_oxygen + delta_carbon_dioxide + delta_nitrogen + delta_phoron)
|
||||||
|
|
||||||
var/list/trace_types_considered = list()
|
var/list/trace_types_considered = list()
|
||||||
|
|
||||||
@@ -743,7 +743,7 @@ What are the archived variables for?
|
|||||||
var/delta_oxygen = QUANTIZE(oxygen_archived - model.oxygen)/TRANSFER_FRACTION
|
var/delta_oxygen = QUANTIZE(oxygen_archived - model.oxygen)/TRANSFER_FRACTION
|
||||||
var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - model.carbon_dioxide)/TRANSFER_FRACTION
|
var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - model.carbon_dioxide)/TRANSFER_FRACTION
|
||||||
var/delta_nitrogen = QUANTIZE(nitrogen_archived - model.nitrogen)/TRANSFER_FRACTION
|
var/delta_nitrogen = QUANTIZE(nitrogen_archived - model.nitrogen)/TRANSFER_FRACTION
|
||||||
var/delta_toxins = QUANTIZE(toxins_archived - model.toxins)/TRANSFER_FRACTION
|
var/delta_phoron = QUANTIZE(phoron_archived - model.phoron)/TRANSFER_FRACTION
|
||||||
|
|
||||||
var/delta_temperature = (temperature_archived - model.temperature)
|
var/delta_temperature = (temperature_archived - model.temperature)
|
||||||
|
|
||||||
@@ -764,10 +764,10 @@ What are the archived variables for?
|
|||||||
heat_transferred -= carbon_dioxide_heat_capacity*model.temperature
|
heat_transferred -= carbon_dioxide_heat_capacity*model.temperature
|
||||||
heat_capacity_transferred -= carbon_dioxide_heat_capacity
|
heat_capacity_transferred -= carbon_dioxide_heat_capacity
|
||||||
|
|
||||||
if(delta_toxins)
|
if(delta_phoron)
|
||||||
var/toxins_heat_capacity = SPECIFIC_HEAT_TOXIN*delta_toxins
|
var/phoron_heat_capacity = SPECIFIC_HEAT_TOXIN*delta_phoron
|
||||||
heat_transferred -= toxins_heat_capacity*model.temperature
|
heat_transferred -= phoron_heat_capacity*model.temperature
|
||||||
heat_capacity_transferred -= toxins_heat_capacity
|
heat_capacity_transferred -= phoron_heat_capacity
|
||||||
|
|
||||||
old_self_heat_capacity = heat_capacity()*group_multiplier
|
old_self_heat_capacity = heat_capacity()*group_multiplier
|
||||||
|
|
||||||
@@ -775,14 +775,14 @@ What are the archived variables for?
|
|||||||
oxygen -= delta_oxygen*border_multiplier/group_multiplier
|
oxygen -= delta_oxygen*border_multiplier/group_multiplier
|
||||||
carbon_dioxide -= delta_carbon_dioxide*border_multiplier/group_multiplier
|
carbon_dioxide -= delta_carbon_dioxide*border_multiplier/group_multiplier
|
||||||
nitrogen -= delta_nitrogen*border_multiplier/group_multiplier
|
nitrogen -= delta_nitrogen*border_multiplier/group_multiplier
|
||||||
toxins -= delta_toxins*border_multiplier/group_multiplier
|
phoron -= delta_phoron*border_multiplier/group_multiplier
|
||||||
else
|
else
|
||||||
oxygen -= delta_oxygen/group_multiplier
|
oxygen -= delta_oxygen/group_multiplier
|
||||||
carbon_dioxide -= delta_carbon_dioxide/group_multiplier
|
carbon_dioxide -= delta_carbon_dioxide/group_multiplier
|
||||||
nitrogen -= delta_nitrogen/group_multiplier
|
nitrogen -= delta_nitrogen/group_multiplier
|
||||||
toxins -= delta_toxins/group_multiplier
|
phoron -= delta_phoron/group_multiplier
|
||||||
|
|
||||||
var/moved_moles = (delta_oxygen + delta_carbon_dioxide + delta_nitrogen + delta_toxins)
|
var/moved_moles = (delta_oxygen + delta_carbon_dioxide + delta_nitrogen + delta_phoron)
|
||||||
|
|
||||||
if(trace_gases.len)
|
if(trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -812,7 +812,7 @@ What are the archived variables for?
|
|||||||
temperature_mimic(model, model.thermal_conductivity, border_multiplier)
|
temperature_mimic(model, model.thermal_conductivity, border_multiplier)
|
||||||
|
|
||||||
if((delta_temperature > MINIMUM_TEMPERATURE_TO_MOVE) || abs(moved_moles) > MINIMUM_MOLES_DELTA_TO_MOVE)
|
if((delta_temperature > MINIMUM_TEMPERATURE_TO_MOVE) || abs(moved_moles) > MINIMUM_MOLES_DELTA_TO_MOVE)
|
||||||
var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - model.temperature*(model.oxygen+model.carbon_dioxide+model.nitrogen+model.toxins)
|
var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - model.temperature*(model.oxygen+model.carbon_dioxide+model.nitrogen+model.phoron)
|
||||||
return delta_pressure*R_IDEAL_GAS_EQUATION/volume
|
return delta_pressure*R_IDEAL_GAS_EQUATION/volume
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
@@ -989,8 +989,8 @@ What are the archived variables for?
|
|||||||
if((abs(carbon_dioxide-sample.carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && \
|
if((abs(carbon_dioxide-sample.carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && \
|
||||||
((carbon_dioxide < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.carbon_dioxide) || (carbon_dioxide > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.carbon_dioxide)))
|
((carbon_dioxide < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.carbon_dioxide) || (carbon_dioxide > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.carbon_dioxide)))
|
||||||
return 0
|
return 0
|
||||||
if((abs(toxins-sample.toxins) > MINIMUM_AIR_TO_SUSPEND) && \
|
if((abs(phoron-sample.phoron) > MINIMUM_AIR_TO_SUSPEND) && \
|
||||||
((toxins < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.toxins) || (toxins > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.toxins)))
|
((phoron < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.phoron) || (phoron > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.phoron)))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
@@ -1030,7 +1030,7 @@ What are the archived variables for?
|
|||||||
oxygen += right_side.oxygen
|
oxygen += right_side.oxygen
|
||||||
carbon_dioxide += right_side.carbon_dioxide
|
carbon_dioxide += right_side.carbon_dioxide
|
||||||
nitrogen += right_side.nitrogen
|
nitrogen += right_side.nitrogen
|
||||||
toxins += right_side.toxins
|
phoron += right_side.phoron
|
||||||
|
|
||||||
if(trace_gases.len || right_side.trace_gases.len)
|
if(trace_gases.len || right_side.trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in right_side.trace_gases)
|
for(var/datum/gas/trace_gas in right_side.trace_gases)
|
||||||
@@ -1052,7 +1052,7 @@ What are the archived variables for?
|
|||||||
oxygen = max(oxygen - right_side.oxygen)
|
oxygen = max(oxygen - right_side.oxygen)
|
||||||
carbon_dioxide = max(carbon_dioxide - right_side.carbon_dioxide)
|
carbon_dioxide = max(carbon_dioxide - right_side.carbon_dioxide)
|
||||||
nitrogen = max(nitrogen - right_side.nitrogen)
|
nitrogen = max(nitrogen - right_side.nitrogen)
|
||||||
toxins = max(toxins - right_side.toxins)
|
phoron = max(phoron - right_side.phoron)
|
||||||
|
|
||||||
if(trace_gases.len || right_side.trace_gases.len)
|
if(trace_gases.len || right_side.trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in right_side.trace_gases)
|
for(var/datum/gas/trace_gas in right_side.trace_gases)
|
||||||
@@ -1067,7 +1067,7 @@ What are the archived variables for?
|
|||||||
oxygen *= factor
|
oxygen *= factor
|
||||||
carbon_dioxide *= factor
|
carbon_dioxide *= factor
|
||||||
nitrogen *= factor
|
nitrogen *= factor
|
||||||
toxins *= factor
|
phoron *= factor
|
||||||
|
|
||||||
if(trace_gases && trace_gases.len)
|
if(trace_gases && trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
@@ -1080,7 +1080,7 @@ What are the archived variables for?
|
|||||||
oxygen /= factor
|
oxygen /= factor
|
||||||
carbon_dioxide /= factor
|
carbon_dioxide /= factor
|
||||||
nitrogen /= factor
|
nitrogen /= factor
|
||||||
toxins /= factor
|
phoron /= factor
|
||||||
|
|
||||||
if(trace_gases && trace_gases.len)
|
if(trace_gases && trace_gases.len)
|
||||||
for(var/datum/gas/trace_gas in trace_gases)
|
for(var/datum/gas/trace_gas in trace_gases)
|
||||||
|
|||||||
@@ -92,8 +92,9 @@
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
// operate two levels deep here (item in backpack in src; NOT item in box in backpack in src)
|
// operate two STORAGE levels deep here (item in backpack in src; NOT item in box in backpack in src)
|
||||||
if(A == loc || (A in loc) || (A in contents) || (A.loc in contents))
|
var/sdepth = A.storage_depth(src)
|
||||||
|
if(A == loc || (A in loc) || (sdepth != -1 && sdepth <= 1))
|
||||||
|
|
||||||
// faster access to objects already on you
|
// faster access to objects already on you
|
||||||
if(A in contents)
|
if(A in contents)
|
||||||
|
|||||||
@@ -36,9 +36,6 @@
|
|||||||
if(istype(master, /obj/item/weapon/storage))
|
if(istype(master, /obj/item/weapon/storage))
|
||||||
var/obj/item/weapon/storage/S = master
|
var/obj/item/weapon/storage/S = master
|
||||||
S.close(usr)
|
S.close(usr)
|
||||||
else if(istype(master,/obj/item/clothing/suit/storage))
|
|
||||||
var/obj/item/clothing/suit/storage/S = master
|
|
||||||
S.close(usr)
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|
||||||
@@ -308,14 +305,14 @@
|
|||||||
contents.Add(0)
|
contents.Add(0)
|
||||||
|
|
||||||
if ("oxygen")
|
if ("oxygen")
|
||||||
if(t.air_contents.oxygen && !t.air_contents.toxins)
|
if(t.air_contents.oxygen && !t.air_contents.phoron)
|
||||||
contents.Add(t.air_contents.oxygen)
|
contents.Add(t.air_contents.oxygen)
|
||||||
else
|
else
|
||||||
contents.Add(0)
|
contents.Add(0)
|
||||||
|
|
||||||
// No races breath this, but never know about downstream servers.
|
// No races breath this, but never know about downstream servers.
|
||||||
if ("carbon dioxide")
|
if ("carbon dioxide")
|
||||||
if(t.air_contents.carbon_dioxide && !t.air_contents.toxins)
|
if(t.air_contents.carbon_dioxide && !t.air_contents.phoron)
|
||||||
contents.Add(t.air_contents.carbon_dioxide)
|
contents.Add(t.air_contents.carbon_dioxide)
|
||||||
else
|
else
|
||||||
contents.Add(0)
|
contents.Add(0)
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard
|
var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard
|
||||||
var/traitor_scaling = 0 //if amount of traitors scales based on amount of players
|
var/traitor_scaling = 0 //if amount of traitors scales based on amount of players
|
||||||
var/objectives_disabled = 0 //if objectives are disabled or not
|
var/objectives_disabled = 0 //if objectives are disabled or not
|
||||||
var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other
|
var/protect_roles_from_antagonist = 0// If security and such can be traitor/cult/other
|
||||||
var/continous_rounds = 1 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke.
|
var/continous_rounds = 1 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke.
|
||||||
var/allow_Metadata = 0 // Metadata is supported.
|
var/allow_Metadata = 0 // Metadata is supported.
|
||||||
var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1.
|
var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1.
|
||||||
|
|||||||
@@ -154,6 +154,11 @@ proc/get_id_photo(var/mob/living/carbon/human/H)
|
|||||||
else
|
else
|
||||||
preview_icon.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT)
|
preview_icon.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT)
|
||||||
|
|
||||||
|
// Skin color
|
||||||
|
if(H.species.flags & HAS_SKIN_TONE)
|
||||||
|
if(!H.species || H.species.flags & HAS_SKIN_COLOR)
|
||||||
|
preview_icon.Blend(rgb(H.r_skin, H.g_skin, H.b_skin), ICON_ADD)
|
||||||
|
|
||||||
var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = H.species ? H.species.eyes : "eyes_s")
|
var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = H.species ? H.species.eyes : "eyes_s")
|
||||||
|
|
||||||
eyes_s.Blend(rgb(H.r_eyes, H.g_eyes, H.b_eyes), ICON_ADD)
|
eyes_s.Blend(rgb(H.r_eyes, H.g_eyes, H.b_eyes), ICON_ADD)
|
||||||
@@ -210,7 +215,7 @@ proc/get_id_photo(var/mob/living/carbon/human/H)
|
|||||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||||
if("Scientist")
|
if("Scientist")
|
||||||
clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s")
|
clothes_s = new /icon('icons/mob/uniform.dmi', "rndswhite_s")
|
||||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
|
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
|
||||||
if("Chemist")
|
if("Chemist")
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ var/list/advance_cures = list(
|
|||||||
"nutriment", "sugar", "orangejuice",
|
"nutriment", "sugar", "orangejuice",
|
||||||
"spaceacillin", "kelotane", "ethanol",
|
"spaceacillin", "kelotane", "ethanol",
|
||||||
"leporazine", "synaptizine", "lipozine",
|
"leporazine", "synaptizine", "lipozine",
|
||||||
"silver", "gold", "plasma"
|
"silver", "gold", "phoron"
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
spread = "On contact"
|
spread = "On contact"
|
||||||
spread_type = CONTACT_GENERAL
|
spread_type = CONTACT_GENERAL
|
||||||
cure = "Chick Chicky Boom!"
|
cure = "Chick Chicky Boom!"
|
||||||
cure_id = list("plasma")
|
cure_id = list("phoron")
|
||||||
agent = "Unknown"
|
agent = "Unknown"
|
||||||
affected_species = list("Human")
|
affected_species = list("Human")
|
||||||
permeability_mod = 1
|
permeability_mod = 1
|
||||||
|
|||||||
@@ -91,6 +91,6 @@ client/verb/showrevinfo()
|
|||||||
var/output = "Sorry, the revision info is unavailable."
|
var/output = "Sorry, the revision info is unavailable."
|
||||||
output = file2text("/home/bay12/live/data/gitcommit")
|
output = file2text("/home/bay12/live/data/gitcommit")
|
||||||
output += "Current Infomational Settings: <br>"
|
output += "Current Infomational Settings: <br>"
|
||||||
output += "Protect Authority Roles From Tratior: [config.protect_roles_from_antagonist]<br>"
|
output += "Protect Authority Roles From Traitor: [config.protect_roles_from_antagonist]<br>"
|
||||||
usr << browse(output,"window=revdata");
|
usr << browse(output,"window=revdata");
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1049,7 +1049,7 @@ datum/mind
|
|||||||
special_role = "malfunction"
|
special_role = "malfunction"
|
||||||
current.icon_state = "ai-malf"
|
current.icon_state = "ai-malf"
|
||||||
|
|
||||||
proc/make_Tratior()
|
proc/make_Traitor()
|
||||||
if(!(src in ticker.mode.traitors))
|
if(!(src in ticker.mode.traitors))
|
||||||
ticker.mode.traitors += src
|
ticker.mode.traitors += src
|
||||||
special_role = "traitor"
|
special_role = "traitor"
|
||||||
|
|||||||
@@ -600,11 +600,11 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
|
|||||||
access = access_robotics
|
access = access_robotics
|
||||||
group = "Engineering"
|
group = "Engineering"
|
||||||
|
|
||||||
/datum/supply_packs/plasma
|
/datum/supply_packs/phoron
|
||||||
name = "Plasma assembly crate"
|
name = "Phoron assembly crate"
|
||||||
contains = list(/obj/item/weapon/tank/plasma,
|
contains = list(/obj/item/weapon/tank/phoron,
|
||||||
/obj/item/weapon/tank/plasma,
|
/obj/item/weapon/tank/phoron,
|
||||||
/obj/item/weapon/tank/plasma,
|
/obj/item/weapon/tank/phoron,
|
||||||
/obj/item/device/assembly/igniter,
|
/obj/item/device/assembly/igniter,
|
||||||
/obj/item/device/assembly/igniter,
|
/obj/item/device/assembly/igniter,
|
||||||
/obj/item/device/assembly/igniter,
|
/obj/item/device/assembly/igniter,
|
||||||
@@ -615,8 +615,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
|
|||||||
/obj/item/device/assembly/timer,
|
/obj/item/device/assembly/timer,
|
||||||
/obj/item/device/assembly/timer)
|
/obj/item/device/assembly/timer)
|
||||||
cost = 10
|
cost = 10
|
||||||
containertype = /obj/structure/closet/crate/secure/plasma
|
containertype = /obj/structure/closet/crate/secure/phoron
|
||||||
containername = "Plasma assembly crate"
|
containername = "Phoron assembly crate"
|
||||||
access = access_tox_storage
|
access = access_tox_storage
|
||||||
group = "Medical / Science"
|
group = "Medical / Science"
|
||||||
|
|
||||||
@@ -639,9 +639,9 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
|
|||||||
/datum/supply_packs/eweapons
|
/datum/supply_packs/eweapons
|
||||||
name = "Experimental weapons crate"
|
name = "Experimental weapons crate"
|
||||||
contains = list(/obj/item/weapon/flamethrower/full,
|
contains = list(/obj/item/weapon/flamethrower/full,
|
||||||
/obj/item/weapon/tank/plasma,
|
/obj/item/weapon/tank/phoron,
|
||||||
/obj/item/weapon/tank/plasma,
|
/obj/item/weapon/tank/phoron,
|
||||||
/obj/item/weapon/tank/plasma,
|
/obj/item/weapon/tank/phoron,
|
||||||
/obj/item/weapon/grenade/chem_grenade/incendiary,
|
/obj/item/weapon/grenade/chem_grenade/incendiary,
|
||||||
/obj/item/weapon/grenade/chem_grenade/incendiary,
|
/obj/item/weapon/grenade/chem_grenade/incendiary,
|
||||||
/obj/item/weapon/grenade/chem_grenade/incendiary)
|
/obj/item/weapon/grenade/chem_grenade/incendiary)
|
||||||
@@ -776,14 +776,14 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
|
|||||||
group = "Security"
|
group = "Security"
|
||||||
|
|
||||||
/datum/supply_packs/securitybarriers
|
/datum/supply_packs/securitybarriers
|
||||||
name = "Shield Generators"
|
name = "Wall shield Generators"
|
||||||
contains = list(/obj/machinery/shieldwallgen,
|
contains = list(/obj/machinery/shieldwallgen,
|
||||||
/obj/machinery/shieldwallgen,
|
/obj/machinery/shieldwallgen,
|
||||||
/obj/machinery/shieldwallgen,
|
/obj/machinery/shieldwallgen,
|
||||||
/obj/machinery/shieldwallgen)
|
/obj/machinery/shieldwallgen)
|
||||||
cost = 20
|
cost = 20
|
||||||
containertype = /obj/structure/closet/crate/secure
|
containertype = /obj/structure/closet/crate/secure
|
||||||
containername = "Shield Generators crate"
|
containername = "wall shield generators crate"
|
||||||
access = access_teleporter
|
access = access_teleporter
|
||||||
group = "Security"
|
group = "Security"
|
||||||
|
|
||||||
@@ -1012,10 +1012,28 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
|
|||||||
|
|
||||||
/datum/supply_packs/shield_gen
|
/datum/supply_packs/shield_gen
|
||||||
contains = list(/obj/item/weapon/circuitboard/shield_gen)
|
contains = list(/obj/item/weapon/circuitboard/shield_gen)
|
||||||
name = "Experimental shield generator circuitry"
|
name = "Bubble shield generator circuitry"
|
||||||
cost = 50
|
cost = 50
|
||||||
containertype = /obj/structure/closet/crate/secure
|
containertype = /obj/structure/closet/crate/secure
|
||||||
containername = "Experimental shield generator"
|
containername = "bubble shield generator circuitry crate"
|
||||||
|
group = "Engineering"
|
||||||
|
access = access_ce
|
||||||
|
|
||||||
|
/datum/supply_packs/shield_gen_ex
|
||||||
|
contains = list(/obj/item/weapon/circuitboard/shield_gen_ex)
|
||||||
|
name = "Hull shield generator circuitry"
|
||||||
|
cost = 50
|
||||||
|
containertype = /obj/structure/closet/crate/secure
|
||||||
|
containername = "hull shield generator circuitry crate"
|
||||||
|
group = "Engineering"
|
||||||
|
access = access_ce
|
||||||
|
|
||||||
|
/datum/supply_packs/shield_cap
|
||||||
|
contains = list(/obj/item/weapon/circuitboard/shield_cap)
|
||||||
|
name = "Bubble shield capacitor circuitry"
|
||||||
|
cost = 50
|
||||||
|
containertype = /obj/structure/closet/crate/secure
|
||||||
|
containername = "shield capacitor circuitry crate"
|
||||||
group = "Engineering"
|
group = "Engineering"
|
||||||
access = access_ce
|
access = access_ce
|
||||||
|
|
||||||
@@ -1023,7 +1041,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
|
|||||||
name = "Supermatter Core"
|
name = "Supermatter Core"
|
||||||
contains = list(/obj/machinery/power/supermatter)
|
contains = list(/obj/machinery/power/supermatter)
|
||||||
cost = 50
|
cost = 50
|
||||||
containertype = /obj/structure/closet/crate/secure/plasma
|
containertype = /obj/structure/closet/crate/secure/phoron
|
||||||
containername = "Supermatter crate (CAUTION)"
|
containername = "Supermatter crate (CAUTION)"
|
||||||
group = "Engineering"
|
group = "Engineering"
|
||||||
access = access_ce
|
access = access_ce
|
||||||
@@ -1033,20 +1051,11 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
|
|||||||
name = "Supermatter Shard"
|
name = "Supermatter Shard"
|
||||||
contains = list(/obj/machinery/power/supermatter/shard)
|
contains = list(/obj/machinery/power/supermatter/shard)
|
||||||
cost = 25
|
cost = 25
|
||||||
containertype = /obj/structure/closet/crate/secure/plasma
|
containertype = /obj/structure/closet/crate/secure/phoron
|
||||||
containername = "Supermatter shard crate (CAUTION)"
|
containername = "Supermatter shard crate (CAUTION)"
|
||||||
access = access_ce
|
access = access_ce
|
||||||
group = "Engineering" */
|
group = "Engineering" */
|
||||||
|
|
||||||
/datum/supply_packs/shield_cap
|
|
||||||
contains = list(/obj/item/weapon/circuitboard/shield_cap)
|
|
||||||
name = "Experimental shield capacitor circuitry"
|
|
||||||
cost = 50
|
|
||||||
containertype = /obj/structure/closet/crate/secure
|
|
||||||
containername = "Experimental shield capacitor"
|
|
||||||
group = "Engineering"
|
|
||||||
access = access_ce
|
|
||||||
|
|
||||||
/datum/supply_packs/eftpos
|
/datum/supply_packs/eftpos
|
||||||
contains = list(/obj/item/device/eftpos)
|
contains = list(/obj/item/device/eftpos)
|
||||||
name = "EFTPOS scanner"
|
name = "EFTPOS scanner"
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
throw_range = 20
|
throw_range = 20
|
||||||
|
|
||||||
/obj/item/weapon/soap/nanotrasen
|
/obj/item/weapon/soap/nanotrasen
|
||||||
desc = "A Nanotrasen brand bar of soap. Smells of plasma."
|
desc = "A Nanotrasen brand bar of soap. Smells of phoron."
|
||||||
icon_state = "soapnt"
|
icon_state = "soapnt"
|
||||||
|
|
||||||
/obj/item/weapon/soap/deluxe
|
/obj/item/weapon/soap/deluxe
|
||||||
|
|||||||
@@ -1344,45 +1344,45 @@ var/list/ghostteleportlocs = list()
|
|||||||
name = "Hydroponics"
|
name = "Hydroponics"
|
||||||
icon_state = "hydro"
|
icon_state = "hydro"
|
||||||
|
|
||||||
//Toxins
|
//rnd (Research and Development
|
||||||
|
|
||||||
/area/toxins/lab
|
/area/rnd/lab
|
||||||
name = "\improper Research and Development"
|
name = "\improper Research and Development"
|
||||||
icon_state = "toxlab"
|
icon_state = "toxlab"
|
||||||
|
|
||||||
/area/toxins/hallway
|
/area/rnd/hallway
|
||||||
name = "\improper Research Lab"
|
name = "\improper Research Lab"
|
||||||
icon_state = "toxlab"
|
icon_state = "toxlab"
|
||||||
|
|
||||||
/area/toxins/rdoffice
|
/area/rnd/rdoffice
|
||||||
name = "\improper Research Director's Office"
|
name = "\improper Research Director's Office"
|
||||||
icon_state = "head_quarters"
|
icon_state = "head_quarters"
|
||||||
|
|
||||||
/area/toxins/supermatter
|
/area/rnd/supermatter
|
||||||
name = "\improper Supermatter Lab"
|
name = "\improper Supermatter Lab"
|
||||||
icon_state = "toxlab"
|
icon_state = "toxlab"
|
||||||
|
|
||||||
/area/toxins/xenobiology
|
/area/rnd/xenobiology
|
||||||
name = "\improper Xenobiology Lab"
|
name = "\improper Xenobiology Lab"
|
||||||
icon_state = "toxlab"
|
icon_state = "toxlab"
|
||||||
|
|
||||||
/area/toxins/storage
|
/area/rnd/storage
|
||||||
name = "\improper Toxins Storage"
|
name = "\improper Toxins Storage"
|
||||||
icon_state = "toxstorage"
|
icon_state = "toxstorage"
|
||||||
|
|
||||||
/area/toxins/test_area
|
/area/rnd/test_area
|
||||||
name = "\improper Toxins Test Area"
|
name = "\improper Toxins Test Area"
|
||||||
icon_state = "toxtest"
|
icon_state = "toxtest"
|
||||||
|
|
||||||
/area/toxins/mixing
|
/area/rnd/mixing
|
||||||
name = "\improper Toxins Mixing Room"
|
name = "\improper Toxins Mixing Room"
|
||||||
icon_state = "toxmix"
|
icon_state = "toxmix"
|
||||||
|
|
||||||
/area/toxins/misc_lab
|
/area/rnd/misc_lab
|
||||||
name = "\improper Miscellaneous Research"
|
name = "\improper Miscellaneous Research"
|
||||||
icon_state = "toxmisc"
|
icon_state = "toxmisc"
|
||||||
|
|
||||||
/area/toxins/server
|
/area/toxins/server
|
||||||
name = "\improper Server Room"
|
name = "\improper Server Room"
|
||||||
icon_state = "server"
|
icon_state = "server"
|
||||||
|
|
||||||
@@ -1894,7 +1894,7 @@ var/list/the_station_areas = list (
|
|||||||
/area/quartermaster,
|
/area/quartermaster,
|
||||||
/area/janitor,
|
/area/janitor,
|
||||||
/area/hydroponics,
|
/area/hydroponics,
|
||||||
/area/toxins,
|
/area/rnd,
|
||||||
/area/storage,
|
/area/storage,
|
||||||
/area/construction,
|
/area/construction,
|
||||||
/area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0
|
/area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0
|
||||||
|
|||||||
@@ -24,13 +24,16 @@
|
|||||||
#define DNA_UI_BEARD_G 5
|
#define DNA_UI_BEARD_G 5
|
||||||
#define DNA_UI_BEARD_B 6
|
#define DNA_UI_BEARD_B 6
|
||||||
#define DNA_UI_SKIN_TONE 7
|
#define DNA_UI_SKIN_TONE 7
|
||||||
#define DNA_UI_EYES_R 8
|
#define DNA_UI_SKIN_R 8
|
||||||
#define DNA_UI_EYES_G 9
|
#define DNA_UI_SKIN_G 9
|
||||||
#define DNA_UI_EYES_B 10
|
#define DNA_UI_SKIN_B 10
|
||||||
#define DNA_UI_GENDER 11
|
#define DNA_UI_EYES_R 11
|
||||||
#define DNA_UI_BEARD_STYLE 12
|
#define DNA_UI_EYES_G 12
|
||||||
#define DNA_UI_HAIR_STYLE 13
|
#define DNA_UI_EYES_B 13
|
||||||
#define DNA_UI_LENGTH 13 // Update this when you add something, or you WILL break shit.
|
#define DNA_UI_GENDER 14
|
||||||
|
#define DNA_UI_BEARD_STYLE 15
|
||||||
|
#define DNA_UI_HAIR_STYLE 16
|
||||||
|
#define DNA_UI_LENGTH 16 // Update this when you add something, or you WILL break shit.
|
||||||
|
|
||||||
#define DNA_SE_LENGTH 27
|
#define DNA_SE_LENGTH 27
|
||||||
// For later:
|
// For later:
|
||||||
@@ -140,6 +143,10 @@ var/global/list/datum/dna/gene/dna_genes[0]
|
|||||||
SetUIValueRange(DNA_UI_EYES_G, character.g_eyes, 255, 1)
|
SetUIValueRange(DNA_UI_EYES_G, character.g_eyes, 255, 1)
|
||||||
SetUIValueRange(DNA_UI_EYES_B, character.b_eyes, 255, 1)
|
SetUIValueRange(DNA_UI_EYES_B, character.b_eyes, 255, 1)
|
||||||
|
|
||||||
|
SetUIValueRange(DNA_UI_SKIN_R, character.r_skin, 255, 1)
|
||||||
|
SetUIValueRange(DNA_UI_SKIN_G, character.g_skin, 255, 1)
|
||||||
|
SetUIValueRange(DNA_UI_SKIN_B, character.b_skin, 255, 1)
|
||||||
|
|
||||||
SetUIValueRange(DNA_UI_SKIN_TONE, 35-character.s_tone, 220, 1) // Value can be negative.
|
SetUIValueRange(DNA_UI_SKIN_TONE, 35-character.s_tone, 220, 1) // Value can be negative.
|
||||||
|
|
||||||
SetUIState(DNA_UI_GENDER, character.gender!=MALE, 1)
|
SetUIState(DNA_UI_GENDER, character.gender!=MALE, 1)
|
||||||
|
|||||||
@@ -139,6 +139,10 @@
|
|||||||
H.g_facial = dna.GetUIValueRange(DNA_UI_BEARD_G, 255)
|
H.g_facial = dna.GetUIValueRange(DNA_UI_BEARD_G, 255)
|
||||||
H.b_facial = dna.GetUIValueRange(DNA_UI_BEARD_B, 255)
|
H.b_facial = dna.GetUIValueRange(DNA_UI_BEARD_B, 255)
|
||||||
|
|
||||||
|
H.r_skin = dna.GetUIValueRange(DNA_UI_SKIN_R, 255)
|
||||||
|
H.g_skin = dna.GetUIValueRange(DNA_UI_SKIN_G, 255)
|
||||||
|
H.b_skin = dna.GetUIValueRange(DNA_UI_SKIN_B, 255)
|
||||||
|
|
||||||
H.r_eyes = dna.GetUIValueRange(DNA_UI_EYES_R, 255)
|
H.r_eyes = dna.GetUIValueRange(DNA_UI_EYES_R, 255)
|
||||||
H.g_eyes = dna.GetUIValueRange(DNA_UI_EYES_G, 255)
|
H.g_eyes = dna.GetUIValueRange(DNA_UI_EYES_G, 255)
|
||||||
H.b_eyes = dna.GetUIValueRange(DNA_UI_EYES_B, 255)
|
H.b_eyes = dna.GetUIValueRange(DNA_UI_EYES_B, 255)
|
||||||
|
|||||||
@@ -110,9 +110,11 @@
|
|||||||
sleep(48)
|
sleep(48)
|
||||||
del(animation)
|
del(animation)
|
||||||
|
|
||||||
var/mob/living/carbon/human/O = new( src )
|
var/mob/living/carbon/human/O
|
||||||
if(Mo.greaterform)
|
if(Mo.greaterform)
|
||||||
O.set_species(Mo.greaterform)
|
O = new(src, Mo.greaterform)
|
||||||
|
else
|
||||||
|
O = new(src)
|
||||||
|
|
||||||
if (M.dna.GetUIState(DNA_UI_GENDER))
|
if (M.dna.GetUIState(DNA_UI_GENDER))
|
||||||
O.gender = FEMALE
|
O.gender = FEMALE
|
||||||
|
|||||||
@@ -323,13 +323,13 @@ ________________________________________________________________________________
|
|||||||
var/o2_level = environment.oxygen/total_moles
|
var/o2_level = environment.oxygen/total_moles
|
||||||
var/n2_level = environment.nitrogen/total_moles
|
var/n2_level = environment.nitrogen/total_moles
|
||||||
var/co2_level = environment.carbon_dioxide/total_moles
|
var/co2_level = environment.carbon_dioxide/total_moles
|
||||||
var/plasma_level = environment.toxins/total_moles
|
var/phoron_level = environment.phoron/total_moles
|
||||||
var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level)
|
var/unknown_level = 1-(o2_level+n2_level+co2_level+phoron_level)
|
||||||
dat += "<ul>"
|
dat += "<ul>"
|
||||||
dat += "<li>Nitrogen: [round(n2_level*100)]%</li>"
|
dat += "<li>Nitrogen: [round(n2_level*100)]%</li>"
|
||||||
dat += "<li>Oxygen: [round(o2_level*100)]%</li>"
|
dat += "<li>Oxygen: [round(o2_level*100)]%</li>"
|
||||||
dat += "<li>Carbon Dioxide: [round(co2_level*100)]%</li>"
|
dat += "<li>Carbon Dioxide: [round(co2_level*100)]%</li>"
|
||||||
dat += "<li>Plasma: [round(plasma_level*100)]%</li>"
|
dat += "<li>Phoron: [round(phoron_level*100)]%</li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
if(unknown_level > 0.01)
|
if(unknown_level > 0.01)
|
||||||
dat += "OTHER: [round(unknown_level)]%<br>"
|
dat += "OTHER: [round(unknown_level)]%<br>"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
var/explosion_in_progress = 0 //sit back and relax
|
var/explosion_in_progress = 0 //sit back and relax
|
||||||
var/list/datum/mind/modePlayer = new
|
var/list/datum/mind/modePlayer = new
|
||||||
var/list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist
|
var/list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist
|
||||||
var/list/protected_jobs = list() // Jobs that can't be tratiors because
|
var/list/protected_jobs = list() // Jobs that can't be traitors because
|
||||||
var/required_players = 0
|
var/required_players = 0
|
||||||
var/required_players_secret = 0 //Minimum number of players for that game mode to be chose in Secret
|
var/required_players_secret = 0 //Minimum number of players for that game mode to be chose in Secret
|
||||||
var/required_enemies = 0
|
var/required_enemies = 0
|
||||||
|
|||||||
@@ -604,7 +604,7 @@ datum
|
|||||||
var/list/all_items = owner.current.get_contents()
|
var/list/all_items = owner.current.get_contents()
|
||||||
for(var/obj/item/I in all_items)
|
for(var/obj/item/I in all_items)
|
||||||
if(!istype(I, steal_target)) continue//If it's not actually that item.
|
if(!istype(I, steal_target)) continue//If it's not actually that item.
|
||||||
if(I:air_contents:toxins) return 1 //If they got one with plasma
|
if(I:air_contents:phoron) return 1 //If they got one with plasma
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -358,7 +358,7 @@ datum/objective/escape
|
|||||||
if(!location)
|
if(!location)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(istype(location, /turf/simulated/shuttle/floor4)) // Fails tratiors if they are in the shuttle brig -- Polymorph
|
if(istype(location, /turf/simulated/shuttle/floor4)) // Fails traitors if they are in the shuttle brig -- Polymorph
|
||||||
if(istype(owner.current, /mob/living/carbon))
|
if(istype(owner.current, /mob/living/carbon))
|
||||||
var/mob/living/carbon/C = owner.current
|
var/mob/living/carbon/C = owner.current
|
||||||
if (!C.handcuffed)
|
if (!C.handcuffed)
|
||||||
@@ -489,7 +489,7 @@ datum/objective/steal
|
|||||||
"a pair of magboots" = /obj/item/clothing/shoes/magboots,
|
"a pair of magboots" = /obj/item/clothing/shoes/magboots,
|
||||||
"the station blueprints" = /obj/item/blueprints,
|
"the station blueprints" = /obj/item/blueprints,
|
||||||
"a nasa voidsuit" = /obj/item/clothing/suit/space/nasavoid,
|
"a nasa voidsuit" = /obj/item/clothing/suit/space/nasavoid,
|
||||||
"28 moles of plasma (full tank)" = /obj/item/weapon/tank,
|
"28 moles of phoron (full tank)" = /obj/item/weapon/tank,
|
||||||
"a sample of slime extract" = /obj/item/slime_extract,
|
"a sample of slime extract" = /obj/item/slime_extract,
|
||||||
"a piece of corgi meat" = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi,
|
"a piece of corgi meat" = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi,
|
||||||
"a research director's jumpsuit" = /obj/item/clothing/under/rank/research_director,
|
"a research director's jumpsuit" = /obj/item/clothing/under/rank/research_director,
|
||||||
@@ -551,13 +551,13 @@ datum/objective/steal
|
|||||||
if(!isliving(owner.current)) return 0
|
if(!isliving(owner.current)) return 0
|
||||||
var/list/all_items = owner.current.get_contents()
|
var/list/all_items = owner.current.get_contents()
|
||||||
switch (target_name)
|
switch (target_name)
|
||||||
if("28 moles of plasma (full tank)","10 diamonds","50 gold bars","25 refined uranium bars")
|
if("28 moles of phoron (full tank)","10 diamonds","50 gold bars","25 refined uranium bars")
|
||||||
var/target_amount = text2num(target_name)//Non-numbers are ignored.
|
var/target_amount = text2num(target_name)//Non-numbers are ignored.
|
||||||
var/found_amount = 0.0//Always starts as zero.
|
var/found_amount = 0.0//Always starts as zero.
|
||||||
|
|
||||||
for(var/obj/item/I in all_items) //Check for plasma tanks
|
for(var/obj/item/I in all_items) //Check for phoron tanks
|
||||||
if(istype(I, steal_target))
|
if(istype(I, steal_target))
|
||||||
found_amount += (target_name=="28 moles of plasma (full tank)" ? (I:air_contents:toxins) : (I:amount))
|
found_amount += (target_name=="28 moles of phoron (full tank)" ? (I:air_contents:phoron) : (I:amount))
|
||||||
return found_amount>=target_amount
|
return found_amount>=target_amount
|
||||||
|
|
||||||
if("50 coins (in bag)")
|
if("50 coins (in bag)")
|
||||||
@@ -867,7 +867,7 @@ datum/objective/heist/salvage
|
|||||||
target = "plasteel"
|
target = "plasteel"
|
||||||
target_amount = 100
|
target_amount = 100
|
||||||
if(4)
|
if(4)
|
||||||
target = "plasma"
|
target = "phoron"
|
||||||
target_amount = 100
|
target_amount = 100
|
||||||
if(5)
|
if(5)
|
||||||
target = "silver"
|
target = "silver"
|
||||||
|
|||||||
@@ -46,14 +46,14 @@
|
|||||||
selection_color = "#ffeeff"
|
selection_color = "#ffeeff"
|
||||||
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch)
|
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch)
|
||||||
minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch)
|
minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch)
|
||||||
alt_titles = list("Xenoarcheologist", "Anomalist", "Plasma Researcher")
|
alt_titles = list("Xenoarcheologist", "Anomalist", "Phoron Researcher")
|
||||||
|
|
||||||
equip(var/mob/living/carbon/human/H)
|
equip(var/mob/living/carbon/human/H)
|
||||||
if(!H) return 0
|
if(!H) return 0
|
||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/toxins(H), slot_belt)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit)
|
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit)
|
||||||
if(H.backbag == 1)
|
if(H.backbag == 1)
|
||||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
|
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/toxins(H), slot_belt)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit)
|
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit)
|
||||||
if(H.backbag == 1)
|
if(H.backbag == 1)
|
||||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
|
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
req_access = list(access_rd, access_atmospherics, access_engine_equip)
|
req_access = list(access_rd, access_atmospherics, access_engine_equip)
|
||||||
TLV["oxygen"] = list(-1.0, -1.0,-1.0,-1.0) // Partial pressure, kpa
|
TLV["oxygen"] = list(-1.0, -1.0,-1.0,-1.0) // Partial pressure, kpa
|
||||||
TLV["carbon dioxide"] = list(-1.0, -1.0, 5, 10) // Partial pressure, kpa
|
TLV["carbon dioxide"] = list(-1.0, -1.0, 5, 10) // Partial pressure, kpa
|
||||||
TLV["plasma"] = list(-1.0, -1.0, 0.2, 0.5) // Partial pressure, kpa
|
TLV["phoron"] = list(-1.0, -1.0, 0.2, 0.5) // Partial pressure, kpa
|
||||||
TLV["other"] = list(-1.0, -1.0, 0.5, 1.0) // Partial pressure, kpa
|
TLV["other"] = list(-1.0, -1.0, 0.5, 1.0) // Partial pressure, kpa
|
||||||
TLV["pressure"] = list(0,ONE_ATMOSPHERE*0.10,ONE_ATMOSPHERE*1.40,ONE_ATMOSPHERE*1.60) /* kpa */
|
TLV["pressure"] = list(0,ONE_ATMOSPHERE*0.10,ONE_ATMOSPHERE*1.40,ONE_ATMOSPHERE*1.60) /* kpa */
|
||||||
TLV["temperature"] = list(20, 40, 140, 160) // K
|
TLV["temperature"] = list(20, 40, 140, 160) // K
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
// breathable air according to human/Life()
|
// breathable air according to human/Life()
|
||||||
TLV["oxygen"] = list(16, 19, 135, 140) // Partial pressure, kpa
|
TLV["oxygen"] = list(16, 19, 135, 140) // Partial pressure, kpa
|
||||||
TLV["carbon dioxide"] = list(-1.0, -1.0, 5, 10) // Partial pressure, kpa
|
TLV["carbon dioxide"] = list(-1.0, -1.0, 5, 10) // Partial pressure, kpa
|
||||||
TLV["plasma"] = list(-1.0, -1.0, 0.2, 0.5) // Partial pressure, kpa
|
TLV["phoron"] = list(-1.0, -1.0, 0.2, 0.5) // Partial pressure, kpa
|
||||||
TLV["other"] = list(-1.0, -1.0, 0.5, 1.0) // Partial pressure, kpa
|
TLV["other"] = list(-1.0, -1.0, 0.5, 1.0) // Partial pressure, kpa
|
||||||
TLV["pressure"] = list(ONE_ATMOSPHERE*0.80,ONE_ATMOSPHERE*0.90,ONE_ATMOSPHERE*1.10,ONE_ATMOSPHERE*1.20) /* kpa */
|
TLV["pressure"] = list(ONE_ATMOSPHERE*0.80,ONE_ATMOSPHERE*0.90,ONE_ATMOSPHERE*1.10,ONE_ATMOSPHERE*1.20) /* kpa */
|
||||||
TLV["temperature"] = list(T0C-26, T0C, T0C+40, T0C+66) // K
|
TLV["temperature"] = list(T0C-26, T0C, T0C+40, T0C+66) // K
|
||||||
@@ -245,7 +245,7 @@
|
|||||||
var/pressure_dangerlevel = get_danger_level(environment_pressure, TLV["pressure"])
|
var/pressure_dangerlevel = get_danger_level(environment_pressure, TLV["pressure"])
|
||||||
var/oxygen_dangerlevel = get_danger_level(environment.oxygen*partial_pressure, TLV["oxygen"])
|
var/oxygen_dangerlevel = get_danger_level(environment.oxygen*partial_pressure, TLV["oxygen"])
|
||||||
var/co2_dangerlevel = get_danger_level(environment.carbon_dioxide*partial_pressure, TLV["carbon dioxide"])
|
var/co2_dangerlevel = get_danger_level(environment.carbon_dioxide*partial_pressure, TLV["carbon dioxide"])
|
||||||
var/plasma_dangerlevel = get_danger_level(environment.toxins*partial_pressure, TLV["plasma"])
|
var/phoron_dangerlevel = get_danger_level(environment.phoron*partial_pressure, TLV["phoron"])
|
||||||
var/temperature_dangerlevel = get_danger_level(environment.temperature, TLV["temperature"])
|
var/temperature_dangerlevel = get_danger_level(environment.temperature, TLV["temperature"])
|
||||||
var/other_dangerlevel = get_danger_level(other_moles*partial_pressure, TLV["other"])
|
var/other_dangerlevel = get_danger_level(other_moles*partial_pressure, TLV["other"])
|
||||||
|
|
||||||
@@ -253,7 +253,7 @@
|
|||||||
pressure_dangerlevel,
|
pressure_dangerlevel,
|
||||||
oxygen_dangerlevel,
|
oxygen_dangerlevel,
|
||||||
co2_dangerlevel,
|
co2_dangerlevel,
|
||||||
plasma_dangerlevel,
|
phoron_dangerlevel,
|
||||||
other_dangerlevel,
|
other_dangerlevel,
|
||||||
temperature_dangerlevel
|
temperature_dangerlevel
|
||||||
)
|
)
|
||||||
@@ -700,7 +700,7 @@
|
|||||||
/obj/machinery/alarm/proc/return_status()
|
/obj/machinery/alarm/proc/return_status()
|
||||||
var/turf/location = get_turf(src)
|
var/turf/location = get_turf(src)
|
||||||
var/datum/gas_mixture/environment = location.return_air()
|
var/datum/gas_mixture/environment = location.return_air()
|
||||||
var/total = environment.oxygen + environment.carbon_dioxide + environment.toxins + environment.nitrogen
|
var/total = environment.oxygen + environment.carbon_dioxide + environment.phoron + environment.nitrogen
|
||||||
var/output = "<b>Air Status:</b><br>"
|
var/output = "<b>Air Status:</b><br>"
|
||||||
|
|
||||||
if(total == 0)
|
if(total == 0)
|
||||||
@@ -729,9 +729,9 @@
|
|||||||
var/co2_dangerlevel = get_danger_level(environment.carbon_dioxide*partial_pressure, current_settings)
|
var/co2_dangerlevel = get_danger_level(environment.carbon_dioxide*partial_pressure, current_settings)
|
||||||
var/co2_percent = round(environment.carbon_dioxide / total * 100, 2)
|
var/co2_percent = round(environment.carbon_dioxide / total * 100, 2)
|
||||||
|
|
||||||
current_settings = TLV["plasma"]
|
current_settings = TLV["phoron"]
|
||||||
var/plasma_dangerlevel = get_danger_level(environment.toxins*partial_pressure, current_settings)
|
var/phoron_dangerlevel = get_danger_level(environment.phoron*partial_pressure, current_settings)
|
||||||
var/plasma_percent = round(environment.toxins / total * 100, 2)
|
var/phoron_percent = round(environment.phoron / total * 100, 2)
|
||||||
|
|
||||||
current_settings = TLV["other"]
|
current_settings = TLV["other"]
|
||||||
var/other_moles = 0.0
|
var/other_moles = 0.0
|
||||||
@@ -746,7 +746,7 @@
|
|||||||
Pressure: <span class='dl[pressure_dangerlevel]'>[environment_pressure]</span>kPa<br>
|
Pressure: <span class='dl[pressure_dangerlevel]'>[environment_pressure]</span>kPa<br>
|
||||||
Oxygen: <span class='dl[oxygen_dangerlevel]'>[oxygen_percent]</span>%<br>
|
Oxygen: <span class='dl[oxygen_dangerlevel]'>[oxygen_percent]</span>%<br>
|
||||||
Carbon dioxide: <span class='dl[co2_dangerlevel]'>[co2_percent]</span>%<br>
|
Carbon dioxide: <span class='dl[co2_dangerlevel]'>[co2_percent]</span>%<br>
|
||||||
Toxins: <span class='dl[plasma_dangerlevel]'>[plasma_percent]</span>%<br>
|
Toxins: <span class='dl[phoron_dangerlevel]'>[phoron_percent]</span>%<br>
|
||||||
"}
|
"}
|
||||||
if (other_dangerlevel==2)
|
if (other_dangerlevel==2)
|
||||||
output += "Notice: <span class='dl2'>High Concentration of Unknown Particles Detected</span><br>"
|
output += "Notice: <span class='dl2'>High Concentration of Unknown Particles Detected</span><br>"
|
||||||
@@ -757,7 +757,7 @@ Toxins: <span class='dl[plasma_dangerlevel]'>[plasma_percent]</span>%<br>
|
|||||||
|
|
||||||
//Overall status
|
//Overall status
|
||||||
output += "Local Status: "
|
output += "Local Status: "
|
||||||
switch(max(pressure_dangerlevel,oxygen_dangerlevel,co2_dangerlevel,plasma_dangerlevel,other_dangerlevel,temperature_dangerlevel))
|
switch(max(pressure_dangerlevel,oxygen_dangerlevel,co2_dangerlevel,phoron_dangerlevel,other_dangerlevel,temperature_dangerlevel))
|
||||||
if(2)
|
if(2)
|
||||||
output += "<span class='dl2'>DANGER: Internals Required</span>"
|
output += "<span class='dl2'>DANGER: Internals Required</span>"
|
||||||
if(1)
|
if(1)
|
||||||
@@ -881,7 +881,7 @@ siphoning
|
|||||||
Carbon Dioxide
|
Carbon Dioxide
|
||||||
<A href='?src=\ref[src];id_tag=[id_tag];command=co2_scrub;val=[!data["filter_co2"]]'>[data["filter_co2"]?"on":"off"]</A>;
|
<A href='?src=\ref[src];id_tag=[id_tag];command=co2_scrub;val=[!data["filter_co2"]]'>[data["filter_co2"]?"on":"off"]</A>;
|
||||||
Toxins
|
Toxins
|
||||||
<A href='?src=\ref[src];id_tag=[id_tag];command=tox_scrub;val=[!data["filter_toxins"]]'>[data["filter_toxins"]?"on":"off"]</A>;
|
<A href='?src=\ref[src];id_tag=[id_tag];command=tox_scrub;val=[!data["filter_phoron"]]'>[data["filter_phoron"]?"on":"off"]</A>;
|
||||||
Nitrous Oxide
|
Nitrous Oxide
|
||||||
<A href='?src=\ref[src];id_tag=[id_tag];command=n2o_scrub;val=[!data["filter_n2o"]]'>[data["filter_n2o"]?"on":"off"]</A>
|
<A href='?src=\ref[src];id_tag=[id_tag];command=n2o_scrub;val=[!data["filter_n2o"]]'>[data["filter_n2o"]?"on":"off"]</A>
|
||||||
<BR>
|
<BR>
|
||||||
@@ -930,7 +930,7 @@ table tr:first-child th:first-child { border: none;}
|
|||||||
var/list/gases = list(
|
var/list/gases = list(
|
||||||
"oxygen" = "O<sub>2</sub>",
|
"oxygen" = "O<sub>2</sub>",
|
||||||
"carbon dioxide" = "CO<sub>2</sub>",
|
"carbon dioxide" = "CO<sub>2</sub>",
|
||||||
"plasma" = "Toxin",
|
"phoron" = "Toxin",
|
||||||
"other" = "Other",)
|
"other" = "Other",)
|
||||||
|
|
||||||
var/list/selected
|
var/list/selected
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ obj/machinery/air_sensor
|
|||||||
// 2 for temperature
|
// 2 for temperature
|
||||||
// Output >= 4 includes gas composition
|
// Output >= 4 includes gas composition
|
||||||
// 4 for oxygen concentration
|
// 4 for oxygen concentration
|
||||||
// 8 for toxins concentration
|
// 8 for phoron concentration
|
||||||
// 16 for nitrogen concentration
|
// 16 for nitrogen concentration
|
||||||
// 32 for carbon dioxide concentration
|
// 32 for carbon dioxide concentration
|
||||||
|
|
||||||
@@ -45,14 +45,14 @@ obj/machinery/air_sensor
|
|||||||
if(output&4)
|
if(output&4)
|
||||||
signal.data["oxygen"] = round(100*air_sample.oxygen/total_moles,0.1)
|
signal.data["oxygen"] = round(100*air_sample.oxygen/total_moles,0.1)
|
||||||
if(output&8)
|
if(output&8)
|
||||||
signal.data["toxins"] = round(100*air_sample.toxins/total_moles,0.1)
|
signal.data["phoron"] = round(100*air_sample.phoron/total_moles,0.1)
|
||||||
if(output&16)
|
if(output&16)
|
||||||
signal.data["nitrogen"] = round(100*air_sample.nitrogen/total_moles,0.1)
|
signal.data["nitrogen"] = round(100*air_sample.nitrogen/total_moles,0.1)
|
||||||
if(output&32)
|
if(output&32)
|
||||||
signal.data["carbon_dioxide"] = round(100*air_sample.carbon_dioxide/total_moles,0.1)
|
signal.data["carbon_dioxide"] = round(100*air_sample.carbon_dioxide/total_moles,0.1)
|
||||||
else
|
else
|
||||||
signal.data["oxygen"] = 0
|
signal.data["oxygen"] = 0
|
||||||
signal.data["toxins"] = 0
|
signal.data["phoron"] = 0
|
||||||
signal.data["nitrogen"] = 0
|
signal.data["nitrogen"] = 0
|
||||||
signal.data["carbon_dioxide"] = 0
|
signal.data["carbon_dioxide"] = 0
|
||||||
signal.data["sigtype"]="status"
|
signal.data["sigtype"]="status"
|
||||||
@@ -151,7 +151,7 @@ obj/machinery/computer/general_air_control
|
|||||||
sensor_part += " <B>Pressure:</B> [data["pressure"]] kPa<BR>"
|
sensor_part += " <B>Pressure:</B> [data["pressure"]] kPa<BR>"
|
||||||
if(data["temperature"])
|
if(data["temperature"])
|
||||||
sensor_part += " <B>Temperature:</B> [data["temperature"]] K<BR>"
|
sensor_part += " <B>Temperature:</B> [data["temperature"]] K<BR>"
|
||||||
if(data["oxygen"]||data["toxins"]||data["nitrogen"]||data["carbon_dioxide"])
|
if(data["oxygen"]||data["phoron"]||data["nitrogen"]||data["carbon_dioxide"])
|
||||||
sensor_part += " <B>Gas Composition :</B>"
|
sensor_part += " <B>Gas Composition :</B>"
|
||||||
if(data["oxygen"])
|
if(data["oxygen"])
|
||||||
sensor_part += "[data["oxygen"]]% O2; "
|
sensor_part += "[data["oxygen"]]% O2; "
|
||||||
@@ -159,8 +159,8 @@ obj/machinery/computer/general_air_control
|
|||||||
sensor_part += "[data["nitrogen"]]% N; "
|
sensor_part += "[data["nitrogen"]]% N; "
|
||||||
if(data["carbon_dioxide"])
|
if(data["carbon_dioxide"])
|
||||||
sensor_part += "[data["carbon_dioxide"]]% CO2; "
|
sensor_part += "[data["carbon_dioxide"]]% CO2; "
|
||||||
if(data["toxins"])
|
if(data["phoron"])
|
||||||
sensor_part += "[data["toxins"]]% TX; "
|
sensor_part += "[data["phoron"]]% TX; "
|
||||||
sensor_part += "<HR>"
|
sensor_part += "<HR>"
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -34,8 +34,8 @@
|
|||||||
icon_state = "blue"
|
icon_state = "blue"
|
||||||
canister_color = "blue"
|
canister_color = "blue"
|
||||||
can_label = 0
|
can_label = 0
|
||||||
/obj/machinery/portable_atmospherics/canister/toxins
|
/obj/machinery/portable_atmospherics/canister/phoron
|
||||||
name = "Canister \[Toxin (Bio)\]"
|
name = "Canister \[Phoron\]"
|
||||||
icon_state = "orange"
|
icon_state = "orange"
|
||||||
canister_color = "orange"
|
canister_color = "orange"
|
||||||
can_label = 0
|
can_label = 0
|
||||||
@@ -171,7 +171,7 @@ update_flag
|
|||||||
else
|
else
|
||||||
can_label = 0
|
can_label = 0
|
||||||
|
|
||||||
if(air_contents.temperature > PLASMA_FLASHPOINT)
|
if(air_contents.temperature > PHORON_FLASHPOINT)
|
||||||
air_contents.zburn()
|
air_contents.zburn()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -328,11 +328,11 @@ update_flag
|
|||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/portable_atmospherics/canister/toxins/New()
|
/obj/machinery/portable_atmospherics/canister/phoron/New()
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|
||||||
src.air_contents.toxins = (src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature)
|
src.air_contents.phoron = (src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature)
|
||||||
air_contents.update_values()
|
air_contents.update_values()
|
||||||
|
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
|
|||||||
@@ -125,15 +125,15 @@
|
|||||||
var/o2_concentration = air_contents.oxygen/total_moles
|
var/o2_concentration = air_contents.oxygen/total_moles
|
||||||
var/n2_concentration = air_contents.nitrogen/total_moles
|
var/n2_concentration = air_contents.nitrogen/total_moles
|
||||||
var/co2_concentration = air_contents.carbon_dioxide/total_moles
|
var/co2_concentration = air_contents.carbon_dioxide/total_moles
|
||||||
var/plasma_concentration = air_contents.toxins/total_moles
|
var/phoron_concentration = air_contents.phoron/total_moles
|
||||||
|
|
||||||
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
|
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+phoron_concentration)
|
||||||
|
|
||||||
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
||||||
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
||||||
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
||||||
user << "\blue CO2: [round(co2_concentration*100)]%"
|
user << "\blue CO2: [round(co2_concentration*100)]%"
|
||||||
user << "\blue Plasma: [round(plasma_concentration*100)]%"
|
user << "\blue Phoron: [round(phoron_concentration*100)]%"
|
||||||
if(unknown_concentration>0.01)
|
if(unknown_concentration>0.01)
|
||||||
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
||||||
user << "\blue Temperature: [round(air_contents.temperature-T0C)]°C"
|
user << "\blue Temperature: [round(air_contents.temperature-T0C)]°C"
|
||||||
|
|||||||
@@ -114,8 +114,8 @@
|
|||||||
filtered_out.temperature = removed.temperature
|
filtered_out.temperature = removed.temperature
|
||||||
|
|
||||||
|
|
||||||
filtered_out.toxins = removed.toxins
|
filtered_out.phoron = removed.phoron
|
||||||
removed.toxins = 0
|
removed.phoron = 0
|
||||||
|
|
||||||
filtered_out.carbon_dioxide = removed.carbon_dioxide
|
filtered_out.carbon_dioxide = removed.carbon_dioxide
|
||||||
removed.carbon_dioxide = 0
|
removed.carbon_dioxide = 0
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
g_amt = 300
|
g_amt = 300
|
||||||
|
|
||||||
// Motion, EMP-Proof, X-Ray
|
// Motion, EMP-Proof, X-Ray
|
||||||
var/list/obj/item/possible_upgrades = list(/obj/item/device/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/weapon/reagent_containers/food/snacks/grown/carrot)
|
var/list/obj/item/possible_upgrades = list(/obj/item/device/assembly/prox_sensor, /obj/item/stack/sheet/mineral/phoron, /obj/item/weapon/reagent_containers/food/snacks/grown/carrot)
|
||||||
var/list/upgrades = list()
|
var/list/upgrades = list()
|
||||||
var/state = 0
|
var/state = 0
|
||||||
var/busy = 0
|
var/busy = 0
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
// CHECKS
|
// CHECKS
|
||||||
|
|
||||||
/obj/machinery/camera/proc/isEmpProof()
|
/obj/machinery/camera/proc/isEmpProof()
|
||||||
var/O = locate(/obj/item/stack/sheet/mineral/plasma) in assembly.upgrades
|
var/O = locate(/obj/item/stack/sheet/mineral/phoron) in assembly.upgrades
|
||||||
return O
|
return O
|
||||||
|
|
||||||
/obj/machinery/camera/proc/isXRay()
|
/obj/machinery/camera/proc/isXRay()
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
// UPGRADE PROCS
|
// UPGRADE PROCS
|
||||||
|
|
||||||
/obj/machinery/camera/proc/upgradeEmpProof()
|
/obj/machinery/camera/proc/upgradeEmpProof()
|
||||||
assembly.upgrades.Add(new /obj/item/stack/sheet/mineral/plasma(assembly))
|
assembly.upgrades.Add(new /obj/item/stack/sheet/mineral/phoron(assembly))
|
||||||
|
|
||||||
/obj/machinery/camera/proc/upgradeXRay()
|
/obj/machinery/camera/proc/upgradeXRay()
|
||||||
assembly.upgrades.Add(new /obj/item/weapon/reagent_containers/food/snacks/grown/carrot(assembly))
|
assembly.upgrades.Add(new /obj/item/weapon/reagent_containers/food/snacks/grown/carrot(assembly))
|
||||||
|
|||||||
@@ -162,7 +162,7 @@
|
|||||||
spawn(30)
|
spawn(30)
|
||||||
src.eject_wait = 0
|
src.eject_wait = 0
|
||||||
|
|
||||||
var/mob/living/carbon/human/H = new /mob/living/carbon/human(src)
|
var/mob/living/carbon/human/H = new /mob/living/carbon/human(src, R.dna.species)
|
||||||
occupant = H
|
occupant = H
|
||||||
|
|
||||||
if(!R.dna.real_name) //to prevent null names
|
if(!R.dna.real_name) //to prevent null names
|
||||||
@@ -212,8 +212,6 @@
|
|||||||
if(R.dna.species == "Human") //no more xenos losing ears/tentacles
|
if(R.dna.species == "Human") //no more xenos losing ears/tentacles
|
||||||
H.h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3")
|
H.h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3")
|
||||||
|
|
||||||
H.set_species(R.dna.species)
|
|
||||||
|
|
||||||
//for(var/datum/language/L in languages)
|
//for(var/datum/language/L in languages)
|
||||||
// H.add_language(L.name)
|
// H.add_language(L.name)
|
||||||
H.suiciding = 0
|
H.suiciding = 0
|
||||||
|
|||||||
@@ -359,7 +359,7 @@
|
|||||||
t1 += data_core.get_manifest(0) // make it monochrome
|
t1 += data_core.get_manifest(0) // make it monochrome
|
||||||
|
|
||||||
P.info = t1
|
P.info = t1
|
||||||
P.name = "paper- 'Crew Manifest'"
|
P.name = text("Crew Manifest ([])", worldtime2text())
|
||||||
printing = null
|
printing = null
|
||||||
if (modify)
|
if (modify)
|
||||||
modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])")
|
modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])")
|
||||||
|
|||||||
@@ -16,6 +16,14 @@
|
|||||||
var/temp = null
|
var/temp = null
|
||||||
var/printing = null
|
var/printing = null
|
||||||
|
|
||||||
|
/obj/machinery/computer/med_data/attackby(obj/item/O as obj, user as mob)
|
||||||
|
if(istype(O, /obj/item/weapon/card/id) && !scan)
|
||||||
|
usr.drop_item()
|
||||||
|
O.loc = src
|
||||||
|
scan = O
|
||||||
|
user << "You insert [O]."
|
||||||
|
..()
|
||||||
|
|
||||||
/obj/machinery/computer/med_data/attack_ai(user as mob)
|
/obj/machinery/computer/med_data/attack_ai(user as mob)
|
||||||
return src.attack_hand(user)
|
return src.attack_hand(user)
|
||||||
|
|
||||||
@@ -463,23 +471,30 @@
|
|||||||
if (href_list["print_p"])
|
if (href_list["print_p"])
|
||||||
if (!( src.printing ))
|
if (!( src.printing ))
|
||||||
src.printing = 1
|
src.printing = 1
|
||||||
|
var/datum/data/record/record1 = null
|
||||||
|
var/datum/data/record/record2 = null
|
||||||
|
if ((istype(src.active1, /datum/data/record) && data_core.general.Find(src.active1)))
|
||||||
|
record1 = active1
|
||||||
|
if ((istype(src.active2, /datum/data/record) && data_core.medical.Find(src.active2)))
|
||||||
|
record2 = active2
|
||||||
sleep(50)
|
sleep(50)
|
||||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc )
|
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc )
|
||||||
P.info = "<CENTER><B>Medical Record</B></CENTER><BR>"
|
P.info = "<CENTER><B>Medical Record</B></CENTER><BR>"
|
||||||
if ((istype(src.active1, /datum/data/record) && data_core.general.Find(src.active1)))
|
if (record1)
|
||||||
P.info += text("Name: [] ID: []<BR>\nSex: []<BR>\nAge: []<BR>\nFingerprint: []<BR>\nPhysical Status: []<BR>\nMental Status: []<BR>", src.active1.fields["name"], src.active1.fields["id"], src.active1.fields["sex"], src.active1.fields["age"], src.active1.fields["fingerprint"], src.active1.fields["p_stat"], src.active1.fields["m_stat"])
|
P.info += text("Name: [] ID: []<BR>\nSex: []<BR>\nAge: []<BR>\nFingerprint: []<BR>\nPhysical Status: []<BR>\nMental Status: []<BR>", record1.fields["name"], record1.fields["id"], record1.fields["sex"], record1.fields["age"], record1.fields["fingerprint"], record1.fields["p_stat"], record1.fields["m_stat"])
|
||||||
|
P.name = text("Medical Record ([])", record1.fields["name"])
|
||||||
else
|
else
|
||||||
P.info += "<B>General Record Lost!</B><BR>"
|
P.info += "<B>General Record Lost!</B><BR>"
|
||||||
if ((istype(src.active2, /datum/data/record) && data_core.medical.Find(src.active2)))
|
P.name = "Medical Record"
|
||||||
P.info += text("<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: []<BR>\nDNA: []<BR>\n<BR>\nMinor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nMajor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nAllergies: []<BR>\nDetails: []<BR>\n<BR>\nCurrent Diseases: [] (per disease info placed in log/comment section)<BR>\nDetails: []<BR>\n<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", src.active2.fields["b_type"], src.active2.fields["b_dna"], src.active2.fields["mi_dis"], src.active2.fields["mi_dis_d"], src.active2.fields["ma_dis"], src.active2.fields["ma_dis_d"], src.active2.fields["alg"], src.active2.fields["alg_d"], src.active2.fields["cdi"], src.active2.fields["cdi_d"], src.active2.fields["notes"])
|
if (record2)
|
||||||
|
P.info += text("<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: []<BR>\nDNA: []<BR>\n<BR>\nMinor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nMajor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nAllergies: []<BR>\nDetails: []<BR>\n<BR>\nCurrent Diseases: [] (per disease info placed in log/comment section)<BR>\nDetails: []<BR>\n<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", record2.fields["b_type"], record2.fields["b_dna"], record2.fields["mi_dis"], record2.fields["mi_dis_d"], record2.fields["ma_dis"], record2.fields["ma_dis_d"], record2.fields["alg"], record2.fields["alg_d"], record2.fields["cdi"], record2.fields["cdi_d"], record2.fields["notes"])
|
||||||
var/counter = 1
|
var/counter = 1
|
||||||
while(src.active2.fields[text("com_[]", counter)])
|
while(record2.fields[text("com_[]", counter)])
|
||||||
P.info += text("[]<BR>", src.active2.fields[text("com_[]", counter)])
|
P.info += text("[]<BR>", record2.fields[text("com_[]", counter)])
|
||||||
counter++
|
counter++
|
||||||
else
|
else
|
||||||
P.info += "<B>Medical Record Lost!</B><BR>"
|
P.info += "<B>Medical Record Lost!</B><BR>"
|
||||||
P.info += "</TT>"
|
P.info += "</TT>"
|
||||||
P.name = "paper- 'Medical Record'"
|
|
||||||
src.printing = null
|
src.printing = null
|
||||||
|
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
|
|||||||
@@ -329,23 +329,30 @@ What a mess.*/
|
|||||||
if ("Print Record")
|
if ("Print Record")
|
||||||
if (!( printing ))
|
if (!( printing ))
|
||||||
printing = 1
|
printing = 1
|
||||||
|
var/datum/data/record/record1 = null
|
||||||
|
var/datum/data/record/record2 = null
|
||||||
|
if ((istype(active1, /datum/data/record) && data_core.general.Find(active1)))
|
||||||
|
record1 = active1
|
||||||
|
if ((istype(active2, /datum/data/record) && data_core.security.Find(active2)))
|
||||||
|
record2 = active2
|
||||||
sleep(50)
|
sleep(50)
|
||||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc )
|
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc )
|
||||||
P.info = "<CENTER><B>Security Record</B></CENTER><BR>"
|
P.info = "<CENTER><B>Security Record</B></CENTER><BR>"
|
||||||
if ((istype(active1, /datum/data/record) && data_core.general.Find(active1)))
|
if (record1)
|
||||||
P.info += text("Name: [] ID: []<BR>\nSex: []<BR>\nAge: []<BR>\nFingerprint: []<BR>\nPhysical Status: []<BR>\nMental Status: []<BR>", active1.fields["name"], active1.fields["id"], active1.fields["sex"], active1.fields["age"], active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"])
|
P.info += text("Name: [] ID: []<BR>\nSex: []<BR>\nAge: []<BR>\nFingerprint: []<BR>\nPhysical Status: []<BR>\nMental Status: []<BR>", record1.fields["name"], record1.fields["id"], record1.fields["sex"], record1.fields["age"], record1.fields["fingerprint"], record1.fields["p_stat"], record1.fields["m_stat"])
|
||||||
|
P.name = text("Security Record ([])", record1.fields["name"])
|
||||||
else
|
else
|
||||||
P.info += "<B>General Record Lost!</B><BR>"
|
P.info += "<B>General Record Lost!</B><BR>"
|
||||||
if ((istype(active2, /datum/data/record) && data_core.security.Find(active2)))
|
P.name = "Security Record"
|
||||||
P.info += text("<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: []<BR>\n<BR>\nMinor Crimes: []<BR>\nDetails: []<BR>\n<BR>\nMajor Crimes: []<BR>\nDetails: []<BR>\n<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", active2.fields["criminal"], active2.fields["mi_crim"], active2.fields["mi_crim_d"], active2.fields["ma_crim"], active2.fields["ma_crim_d"], active2.fields["notes"])
|
if (record2)
|
||||||
|
P.info += text("<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: []<BR>\n<BR>\nMinor Crimes: []<BR>\nDetails: []<BR>\n<BR>\nMajor Crimes: []<BR>\nDetails: []<BR>\n<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", record2.fields["criminal"], record2.fields["mi_crim"], record2.fields["mi_crim_d"], record2.fields["ma_crim"], record2.fields["ma_crim_d"], record2.fields["notes"])
|
||||||
var/counter = 1
|
var/counter = 1
|
||||||
while(active2.fields[text("com_[]", counter)])
|
while(record2.fields[text("com_[]", counter)])
|
||||||
P.info += text("[]<BR>", active2.fields[text("com_[]", counter)])
|
P.info += text("[]<BR>", record2.fields[text("com_[]", counter)])
|
||||||
counter++
|
counter++
|
||||||
else
|
else
|
||||||
P.info += "<B>Security Record Lost!</B><BR>"
|
P.info += "<B>Security Record Lost!</B><BR>"
|
||||||
P.info += "</TT>"
|
P.info += "</TT>"
|
||||||
P.name = "paper - 'Security Record'"
|
|
||||||
printing = null
|
printing = null
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
//RECORD DELETE
|
//RECORD DELETE
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ to destroy them and players will be able to make replacements.
|
|||||||
name = "Circuit Board (PACMAN-type Generator)"
|
name = "Circuit Board (PACMAN-type Generator)"
|
||||||
build_path = "/obj/machinery/power/port_gen/pacman"
|
build_path = "/obj/machinery/power/port_gen/pacman"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = "programming=3:powerstorage=3;plasmatech=3;engineering=3"
|
origin_tech = "programming=3:powerstorage=3;phorontech=3;engineering=3"
|
||||||
frame_desc = "Requires 1 Matter Bin, 1 Micro-Laser, 2 Pieces of Cable, and 1 Capacitor."
|
frame_desc = "Requires 1 Matter Bin, 1 Micro-Laser, 2 Pieces of Cable, and 1 Capacitor."
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||||
|
|||||||
@@ -258,37 +258,37 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
|
|||||||
L.apply_effect(15,IRRADIATE,0)
|
L.apply_effect(15,IRRADIATE,0)
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/door/airlock/plasma
|
/obj/machinery/door/airlock/phoron
|
||||||
name = "Plasma Airlock"
|
name = "Phoron Airlock"
|
||||||
desc = "No way this can end badly."
|
desc = "No way this can end badly."
|
||||||
icon = 'icons/obj/doors/Doorplasma.dmi'
|
icon = 'icons/obj/doors/Doorphoron.dmi'
|
||||||
mineral = "plasma"
|
mineral = "phoron"
|
||||||
|
|
||||||
/obj/machinery/door/airlock/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
/obj/machinery/door/airlock/phoron/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||||
if(exposed_temperature > 300)
|
if(exposed_temperature > 300)
|
||||||
PlasmaBurn(exposed_temperature)
|
PhoronBurn(exposed_temperature)
|
||||||
|
|
||||||
/obj/machinery/door/airlock/plasma/proc/ignite(exposed_temperature)
|
/obj/machinery/door/airlock/phoron/proc/ignite(exposed_temperature)
|
||||||
if(exposed_temperature > 300)
|
if(exposed_temperature > 300)
|
||||||
PlasmaBurn(exposed_temperature)
|
PhoronBurn(exposed_temperature)
|
||||||
|
|
||||||
/obj/machinery/door/airlock/plasma/proc/PlasmaBurn(temperature)
|
/obj/machinery/door/airlock/phoron/proc/PhoronBurn(temperature)
|
||||||
for(var/turf/simulated/floor/target_tile in range(2,loc))
|
for(var/turf/simulated/floor/target_tile in range(2,loc))
|
||||||
// if(target_tile.parent && target_tile.parent.group_processing) // THESE PROBABLY DO SOMETHING IMPORTANT BUT I DON'T KNOW HOW TO FIX IT - Erthilo
|
// if(target_tile.parent && target_tile.parent.group_processing) // THESE PROBABLY DO SOMETHING IMPORTANT BUT I DON'T KNOW HOW TO FIX IT - Erthilo
|
||||||
// target_tile.parent.suspend_group_processing()
|
// target_tile.parent.suspend_group_processing()
|
||||||
var/datum/gas_mixture/napalm = new
|
var/datum/gas_mixture/napalm = new
|
||||||
var/toxinsToDeduce = 35
|
var/phoronToDeduce = 35
|
||||||
napalm.toxins = toxinsToDeduce
|
napalm.phoron = phoronToDeduce
|
||||||
napalm.temperature = 400+T0C
|
napalm.temperature = 400+T0C
|
||||||
target_tile.assume_air(napalm)
|
target_tile.assume_air(napalm)
|
||||||
spawn (0) target_tile.hotspot_expose(temperature, 400)
|
spawn (0) target_tile.hotspot_expose(temperature, 400)
|
||||||
for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve
|
for(var/obj/structure/falsewall/phoron/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve
|
||||||
var/turf/T = get_turf(F)
|
var/turf/T = get_turf(F)
|
||||||
T.ChangeTurf(/turf/simulated/wall/mineral/plasma/)
|
T.ChangeTurf(/turf/simulated/wall/mineral/phoron/)
|
||||||
del (F)
|
del (F)
|
||||||
for(var/turf/simulated/wall/mineral/plasma/W in range(3,src))
|
for(var/turf/simulated/wall/mineral/phoron/W in range(3,src))
|
||||||
W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame
|
W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame
|
||||||
for(var/obj/machinery/door/airlock/plasma/D in range(3,src))
|
for(var/obj/machinery/door/airlock/phoron/D in range(3,src))
|
||||||
D.ignite(temperature/4)
|
D.ignite(temperature/4)
|
||||||
new/obj/structure/door_assembly( src.loc )
|
new/obj/structure/door_assembly( src.loc )
|
||||||
del (src)
|
del (src)
|
||||||
@@ -1248,7 +1248,7 @@ About the new airlock wires panel:
|
|||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/door/airlock/plasma/attackby(C as obj, mob/user as mob)
|
/obj/machinery/door/airlock/phoron/attackby(C as obj, mob/user as mob)
|
||||||
if(C)
|
if(C)
|
||||||
ignite(is_hot(C))
|
ignite(is_hot(C))
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/obj/machinery/igniter
|
/obj/machinery/igniter
|
||||||
name = "igniter"
|
name = "igniter"
|
||||||
desc = "It's useful for igniting plasma."
|
desc = "It's useful for igniting flammable items."
|
||||||
icon = 'icons/obj/stationobjs.dmi'
|
icon = 'icons/obj/stationobjs.dmi'
|
||||||
icon_state = "igniter1"
|
icon_state = "igniter1"
|
||||||
var/id = null
|
var/id = null
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ Buildable meters
|
|||||||
#define PIPE_UP 21
|
#define PIPE_UP 21
|
||||||
#define PIPE_DOWN 22
|
#define PIPE_DOWN 22
|
||||||
///// Z-Level stuff
|
///// Z-Level stuff
|
||||||
|
#define PIPE_GAS_FILTER_M 23
|
||||||
|
#define PIPE_GAS_MIXER_T 24
|
||||||
|
#define PIPE_GAS_MIXER_M 25
|
||||||
|
|
||||||
/obj/item/pipe
|
/obj/item/pipe
|
||||||
name = "pipe"
|
name = "pipe"
|
||||||
@@ -71,6 +74,12 @@ Buildable meters
|
|||||||
src.pipe_type = PIPE_MVALVE
|
src.pipe_type = PIPE_MVALVE
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/binary/pump))
|
else if(istype(make_from, /obj/machinery/atmospherics/binary/pump))
|
||||||
src.pipe_type = PIPE_PUMP
|
src.pipe_type = PIPE_PUMP
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/trinary/filter/m_filter))
|
||||||
|
src.pipe_type = PIPE_GAS_FILTER_M
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/trinary/mixer/t_mixer))
|
||||||
|
src.pipe_type = PIPE_GAS_MIXER_T
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/trinary/mixer/m_mixer))
|
||||||
|
src.pipe_type = PIPE_GAS_MIXER_M
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/trinary/filter))
|
else if(istype(make_from, /obj/machinery/atmospherics/trinary/filter))
|
||||||
src.pipe_type = PIPE_GAS_FILTER
|
src.pipe_type = PIPE_GAS_FILTER
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/trinary/mixer))
|
else if(istype(make_from, /obj/machinery/atmospherics/trinary/mixer))
|
||||||
@@ -132,6 +141,9 @@ Buildable meters
|
|||||||
"pipe up", \
|
"pipe up", \
|
||||||
"pipe down", \
|
"pipe down", \
|
||||||
///// Z-Level stuff
|
///// Z-Level stuff
|
||||||
|
"gas filter m", \
|
||||||
|
"gas mixer t", \
|
||||||
|
"gas mixer m", \
|
||||||
)
|
)
|
||||||
name = nlist[pipe_type+1] + " fitting"
|
name = nlist[pipe_type+1] + " fitting"
|
||||||
var/list/islist = list( \
|
var/list/islist = list( \
|
||||||
@@ -160,6 +172,9 @@ Buildable meters
|
|||||||
"cap", \
|
"cap", \
|
||||||
"cap", \
|
"cap", \
|
||||||
///// Z-Level stuff
|
///// Z-Level stuff
|
||||||
|
"m_filter", \
|
||||||
|
"t_mixer", \
|
||||||
|
"m_mixer", \
|
||||||
)
|
)
|
||||||
icon_state = islist[pipe_type + 1]
|
icon_state = islist[pipe_type + 1]
|
||||||
|
|
||||||
@@ -230,6 +245,10 @@ Buildable meters
|
|||||||
return flip|cw|acw
|
return flip|cw|acw
|
||||||
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER,PIPE_MTVALVE)
|
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER,PIPE_MTVALVE)
|
||||||
return dir|flip|cw
|
return dir|flip|cw
|
||||||
|
if(PIPE_GAS_FILTER_M, PIPE_GAS_MIXER_M)
|
||||||
|
return dir|flip|acw
|
||||||
|
if(PIPE_GAS_MIXER_T)
|
||||||
|
return dir|cw|acw
|
||||||
if(PIPE_CAP)
|
if(PIPE_CAP)
|
||||||
return flip
|
return flip
|
||||||
///// Z-Level stuff
|
///// Z-Level stuff
|
||||||
@@ -490,7 +509,7 @@ Buildable meters
|
|||||||
P.node3.initialize()
|
P.node3.initialize()
|
||||||
P.node3.build_network()
|
P.node3.build_network()
|
||||||
|
|
||||||
if(PIPE_GAS_MIXER) //gas filter
|
if(PIPE_GAS_MIXER) //gas mixer
|
||||||
var/obj/machinery/atmospherics/trinary/mixer/P = new(src.loc)
|
var/obj/machinery/atmospherics/trinary/mixer/P = new(src.loc)
|
||||||
P.dir = dir
|
P.dir = dir
|
||||||
P.initialize_directions = pipe_dir
|
P.initialize_directions = pipe_dir
|
||||||
@@ -510,6 +529,66 @@ Buildable meters
|
|||||||
P.node3.initialize()
|
P.node3.initialize()
|
||||||
P.node3.build_network()
|
P.node3.build_network()
|
||||||
|
|
||||||
|
if(PIPE_GAS_FILTER_M) //gas filter mirrored
|
||||||
|
var/obj/machinery/atmospherics/trinary/filter/m_filter/P = new(src.loc)
|
||||||
|
P.dir = dir
|
||||||
|
P.initialize_directions = pipe_dir
|
||||||
|
if (pipename)
|
||||||
|
P.name = pipename
|
||||||
|
var/turf/T = P.loc
|
||||||
|
P.level = T.intact ? 2 : 1
|
||||||
|
P.initialize()
|
||||||
|
P.build_network()
|
||||||
|
if (P.node1)
|
||||||
|
P.node1.initialize()
|
||||||
|
P.node1.build_network()
|
||||||
|
if (P.node2)
|
||||||
|
P.node2.initialize()
|
||||||
|
P.node2.build_network()
|
||||||
|
if (P.node3)
|
||||||
|
P.node3.initialize()
|
||||||
|
P.node3.build_network()
|
||||||
|
|
||||||
|
if(PIPE_GAS_MIXER_T) //gas mixer-t
|
||||||
|
var/obj/machinery/atmospherics/trinary/mixer/t_mixer/P = new(src.loc)
|
||||||
|
P.dir = dir
|
||||||
|
P.initialize_directions = pipe_dir
|
||||||
|
if (pipename)
|
||||||
|
P.name = pipename
|
||||||
|
var/turf/T = P.loc
|
||||||
|
P.level = T.intact ? 2 : 1
|
||||||
|
P.initialize()
|
||||||
|
P.build_network()
|
||||||
|
if (P.node1)
|
||||||
|
P.node1.initialize()
|
||||||
|
P.node1.build_network()
|
||||||
|
if (P.node2)
|
||||||
|
P.node2.initialize()
|
||||||
|
P.node2.build_network()
|
||||||
|
if (P.node3)
|
||||||
|
P.node3.initialize()
|
||||||
|
P.node3.build_network()
|
||||||
|
|
||||||
|
if(PIPE_GAS_MIXER_M) //gas mixer mirrored
|
||||||
|
var/obj/machinery/atmospherics/trinary/mixer/m_mixer/P = new(src.loc)
|
||||||
|
P.dir = dir
|
||||||
|
P.initialize_directions = pipe_dir
|
||||||
|
if (pipename)
|
||||||
|
P.name = pipename
|
||||||
|
var/turf/T = P.loc
|
||||||
|
P.level = T.intact ? 2 : 1
|
||||||
|
P.initialize()
|
||||||
|
P.build_network()
|
||||||
|
if (P.node1)
|
||||||
|
P.node1.initialize()
|
||||||
|
P.node1.build_network()
|
||||||
|
if (P.node2)
|
||||||
|
P.node2.initialize()
|
||||||
|
P.node2.build_network()
|
||||||
|
if (P.node3)
|
||||||
|
P.node3.initialize()
|
||||||
|
P.node3.build_network()
|
||||||
|
|
||||||
if(PIPE_SCRUBBER) //scrubber
|
if(PIPE_SCRUBBER) //scrubber
|
||||||
var/obj/machinery/atmospherics/unary/vent_scrubber/S = new(src.loc)
|
var/obj/machinery/atmospherics/unary/vent_scrubber/S = new(src.loc)
|
||||||
S.dir = dir
|
S.dir = dir
|
||||||
@@ -709,4 +788,7 @@ Buildable meters
|
|||||||
#undef PIPE_VOLUME_PUMP
|
#undef PIPE_VOLUME_PUMP
|
||||||
#undef PIPE_OUTLET_INJECT
|
#undef PIPE_OUTLET_INJECT
|
||||||
#undef PIPE_MTVALVE
|
#undef PIPE_MTVALVE
|
||||||
|
#undef PIPE_GAS_FILTER_M
|
||||||
|
#undef PIPE_GAS_MIXER_T
|
||||||
|
#undef PIPE_GAS_MIXER_M
|
||||||
//#undef PIPE_MANIFOLD4W
|
//#undef PIPE_MANIFOLD4W
|
||||||
|
|||||||
@@ -34,7 +34,10 @@
|
|||||||
<A href='?src=\ref[src];make=10;dir=1'>Scrubber</A><BR>
|
<A href='?src=\ref[src];make=10;dir=1'>Scrubber</A><BR>
|
||||||
<A href='?src=\ref[src];makemeter=1'>Meter</A><BR>
|
<A href='?src=\ref[src];makemeter=1'>Meter</A><BR>
|
||||||
<A href='?src=\ref[src];make=13;dir=1'>Gas Filter</A><BR>
|
<A href='?src=\ref[src];make=13;dir=1'>Gas Filter</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=23;dir=1'>Gas Filter-Mirrored</A><BR>
|
||||||
<A href='?src=\ref[src];make=14;dir=1'>Gas Mixer</A><BR>
|
<A href='?src=\ref[src];make=14;dir=1'>Gas Mixer</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=25;dir=1'>Gas Mixer-Mirrored</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=24;dir=1'>Gas Mixer-T</A><BR>
|
||||||
<b>Heat exchange:</b><BR>
|
<b>Heat exchange:</b><BR>
|
||||||
<A href='?src=\ref[src];make=2;dir=1'>Pipe</A><BR>
|
<A href='?src=\ref[src];make=2;dir=1'>Pipe</A><BR>
|
||||||
<A href='?src=\ref[src];make=3;dir=5'>Bent Pipe</A><BR>
|
<A href='?src=\ref[src];make=3;dir=5'>Bent Pipe</A><BR>
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
if(1 to 50)
|
if(1 to 50)
|
||||||
objective = "Steal [pick("a hand teleporter", "the Captain's antique laser gun", "a jetpack", "the Captain's ID", "the Captain's jumpsuit")]."
|
objective = "Steal [pick("a hand teleporter", "the Captain's antique laser gun", "a jetpack", "the Captain's ID", "the Captain's jumpsuit")]."
|
||||||
if(51 to 60)
|
if(51 to 60)
|
||||||
objective = "Destroy 70% or more of the station's plasma tanks."
|
objective = "Destroy 70% or more of the station's phoron tanks."
|
||||||
if(61 to 70)
|
if(61 to 70)
|
||||||
objective = "Cut power to 80% or more of the station's tiles."
|
objective = "Cut power to 80% or more of the station's tiles."
|
||||||
if(71 to 80)
|
if(71 to 80)
|
||||||
|
|||||||
@@ -53,6 +53,8 @@
|
|||||||
var/const/WIRE_SHOOTINV = 4
|
var/const/WIRE_SHOOTINV = 4
|
||||||
|
|
||||||
var/check_accounts = 0 // 1 = requires PIN and checks accounts. 0 = You slide an ID, it vends, SPACE COMMUNISM!
|
var/check_accounts = 0 // 1 = requires PIN and checks accounts. 0 = You slide an ID, it vends, SPACE COMMUNISM!
|
||||||
|
var/obj/item/weapon/spacecash/ewallet/ewallet
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/vending/New()
|
/obj/machinery/vending/New()
|
||||||
..()
|
..()
|
||||||
@@ -150,6 +152,11 @@
|
|||||||
else if(istype(W, /obj/item/weapon/card) && currently_vending)
|
else if(istype(W, /obj/item/weapon/card) && currently_vending)
|
||||||
var/obj/item/weapon/card/I = W
|
var/obj/item/weapon/card/I = W
|
||||||
scan_card(I)
|
scan_card(I)
|
||||||
|
else if (istype(W, /obj/item/weapon/spacecash/ewallet))
|
||||||
|
user.drop_item()
|
||||||
|
W.loc = src
|
||||||
|
ewallet = W
|
||||||
|
user << "\blue You insert the [W] into the [src]"
|
||||||
|
|
||||||
else if(src.panel_open)
|
else if(src.panel_open)
|
||||||
|
|
||||||
@@ -243,7 +250,10 @@
|
|||||||
dat += "<b>Select an item: </b><br><br>" //the rest is just general spacing and bolding
|
dat += "<b>Select an item: </b><br><br>" //the rest is just general spacing and bolding
|
||||||
|
|
||||||
if (premium.len > 0)
|
if (premium.len > 0)
|
||||||
dat += "<b>Coin slot:</b> [coin ? coin : "No coin inserted"] (<a href='byond://?src=\ref[src];remove_coin=1'>Remove</A>)<br><br>"
|
dat += "<b>Coin slot:</b> [coin ? coin : "No coin inserted"] (<a href='byond://?src=\ref[src];remove_coin=1'>Remove</A>)<br>"
|
||||||
|
|
||||||
|
if (ewallet)
|
||||||
|
dat += "<b>Charge card's credits:</b> [ewallet ? ewallet.worth : "No charge card inserted"] (<a href='byond://?src=\ref[src];remove_ewallet=1'>Remove</A>)<br><br>"
|
||||||
|
|
||||||
if (src.product_records.len == 0)
|
if (src.product_records.len == 0)
|
||||||
dat += "<font color = 'red'>No product loaded!</font>"
|
dat += "<font color = 'red'>No product loaded!</font>"
|
||||||
@@ -317,6 +327,15 @@
|
|||||||
usr << "\blue You remove the [coin] from the [src]"
|
usr << "\blue You remove the [coin] from the [src]"
|
||||||
coin = null
|
coin = null
|
||||||
|
|
||||||
|
if(href_list["remove_ewallet"] && !istype(usr,/mob/living/silicon))
|
||||||
|
if (!ewallet)
|
||||||
|
usr << "There is no charge card in this machine."
|
||||||
|
return
|
||||||
|
ewallet.loc = src.loc
|
||||||
|
if(!usr.get_active_hand())
|
||||||
|
usr.put_in_hands(ewallet)
|
||||||
|
usr << "\blue You remove the [ewallet] from the [src]"
|
||||||
|
ewallet = null
|
||||||
|
|
||||||
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))))
|
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))))
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
@@ -344,9 +363,17 @@
|
|||||||
if(R.price == null)
|
if(R.price == null)
|
||||||
src.vend(R, usr)
|
src.vend(R, usr)
|
||||||
else
|
else
|
||||||
src.currently_vending = R
|
if (ewallet)
|
||||||
src.updateUsrDialog()
|
if (R.price <= ewallet.worth)
|
||||||
|
ewallet.worth -= R.price
|
||||||
|
src.vend(R, usr)
|
||||||
|
else
|
||||||
|
usr << "\red The ewallet doesn't have enough money to pay for that."
|
||||||
|
src.currently_vending = R
|
||||||
|
src.updateUsrDialog()
|
||||||
|
else
|
||||||
|
src.currently_vending = R
|
||||||
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
|
|
||||||
else if (href_list["cancel_buying"])
|
else if (href_list["cancel_buying"])
|
||||||
@@ -597,7 +624,7 @@
|
|||||||
desc = "A vendor with a wide variety of masks and gas tanks."
|
desc = "A vendor with a wide variety of masks and gas tanks."
|
||||||
icon = 'icons/obj/objects.dmi'
|
icon = 'icons/obj/objects.dmi'
|
||||||
icon_state = "dispenser"
|
icon_state = "dispenser"
|
||||||
product_paths = "/obj/item/weapon/tank/oxygen;/obj/item/weapon/tank/plasma;/obj/item/weapon/tank/emergency_oxygen;/obj/item/weapon/tank/emergency_oxygen/engi;/obj/item/clothing/mask/breath"
|
product_paths = "/obj/item/weapon/tank/oxygen;/obj/item/weapon/tank/phoron;/obj/item/weapon/tank/emergency_oxygen;/obj/item/weapon/tank/emergency_oxygen/engi;/obj/item/clothing/mask/breath"
|
||||||
product_amounts = "10;10;10;5;25"
|
product_amounts = "10;10;10;5;25"
|
||||||
vend_delay = 0
|
vend_delay = 0
|
||||||
*/
|
*/
|
||||||
@@ -686,7 +713,7 @@
|
|||||||
icon_state = "cart"
|
icon_state = "cart"
|
||||||
icon_deny = "cart-deny"
|
icon_deny = "cart-deny"
|
||||||
products = list(/obj/item/weapon/cartridge/medical = 10,/obj/item/weapon/cartridge/engineering = 10,/obj/item/weapon/cartridge/security = 10,
|
products = list(/obj/item/weapon/cartridge/medical = 10,/obj/item/weapon/cartridge/engineering = 10,/obj/item/weapon/cartridge/security = 10,
|
||||||
/obj/item/weapon/cartridge/janitor = 10,/obj/item/weapon/cartridge/signal/toxins = 10,/obj/item/device/pda/heads = 10,
|
/obj/item/weapon/cartridge/janitor = 10,/obj/item/weapon/cartridge/signal/science = 10,/obj/item/device/pda/heads = 10,
|
||||||
/obj/item/weapon/cartridge/captain = 3,/obj/item/weapon/cartridge/quartermaster = 10)
|
/obj/item/weapon/cartridge/captain = 3,/obj/item/weapon/cartridge/quartermaster = 10)
|
||||||
|
|
||||||
|
|
||||||
@@ -719,7 +746,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//This one's from bay12
|
//This one's from bay12
|
||||||
/obj/machinery/vending/plasmaresearch
|
/obj/machinery/vending/phoronresearch
|
||||||
name = "Toximate 3000"
|
name = "Toximate 3000"
|
||||||
desc = "All the fine parts you need in one vending machine!"
|
desc = "All the fine parts you need in one vending machine!"
|
||||||
products = list(/obj/item/clothing/under/rank/scientist = 6,/obj/item/clothing/suit/bio_suit = 6,/obj/item/clothing/head/bio_hood = 6,
|
products = list(/obj/item/clothing/under/rank/scientist = 6,/obj/item/clothing/suit/bio_suit = 6,/obj/item/clothing/head/bio_hood = 6,
|
||||||
|
|||||||
@@ -262,7 +262,7 @@
|
|||||||
energy_drain = 250
|
energy_drain = 250
|
||||||
range = MELEE|RANGED
|
range = MELEE|RANGED
|
||||||
construction_time = 1200
|
construction_time = 1200
|
||||||
construction_cost = list("metal"=30000,"plasma"=25000,"silver"=20000,"gold"=20000)
|
construction_cost = list("metal"=30000,"phoron"=25000,"silver"=20000,"gold"=20000)
|
||||||
var/mode = 0 //0 - deconstruct, 1 - wall or floor, 2 - airlock.
|
var/mode = 0 //0 - deconstruct, 1 - wall or floor, 2 - airlock.
|
||||||
var/disabled = 0 //malf
|
var/disabled = 0 //malf
|
||||||
|
|
||||||
@@ -830,10 +830,10 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/generator
|
/obj/item/mecha_parts/mecha_equipment/generator
|
||||||
name = "Plasma Converter"
|
name = "Phoron Generator"
|
||||||
desc = "Generates power using solid plasma as fuel. Pollutes the environment."
|
desc = "Generates power using solid phoron as fuel. Pollutes the environment."
|
||||||
icon_state = "tesla"
|
icon_state = "tesla"
|
||||||
origin_tech = "plasmatech=2;powerstorage=2;engineering=1"
|
origin_tech = "phorontech=2;powerstorage=2;engineering=1"
|
||||||
equip_cooldown = 10
|
equip_cooldown = 10
|
||||||
energy_drain = 0
|
energy_drain = 0
|
||||||
range = MELEE
|
range = MELEE
|
||||||
@@ -853,7 +853,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
proc/init()
|
proc/init()
|
||||||
fuel = new /obj/item/stack/sheet/mineral/plasma(src)
|
fuel = new /obj/item/stack/sheet/mineral/phoron(src)
|
||||||
fuel.amount = 0
|
fuel.amount = 0
|
||||||
pr_mech_generator = new /datum/global_iterator/mecha_generator(list(src),0)
|
pr_mech_generator = new /datum/global_iterator/mecha_generator(list(src),0)
|
||||||
pr_mech_generator.set_delay(equip_cooldown)
|
pr_mech_generator.set_delay(equip_cooldown)
|
||||||
@@ -926,14 +926,14 @@
|
|||||||
return
|
return
|
||||||
var/datum/gas_mixture/GM = new
|
var/datum/gas_mixture/GM = new
|
||||||
if(prob(10))
|
if(prob(10))
|
||||||
GM.toxins += 100
|
GM.phoron += 100
|
||||||
GM.temperature = 1500+T0C //should be enough to start a fire
|
GM.temperature = 1500+T0C //should be enough to start a fire
|
||||||
T.visible_message("The [src] suddenly disgorges a cloud of heated plasma.")
|
T.visible_message("The [src] suddenly disgorges a cloud of heated phoron.")
|
||||||
destroy()
|
destroy()
|
||||||
else
|
else
|
||||||
GM.toxins += 5
|
GM.phoron += 5
|
||||||
GM.temperature = istype(T) ? T.air.temperature : T20C
|
GM.temperature = istype(T) ? T.air.temperature : T20C
|
||||||
T.visible_message("The [src] suddenly disgorges a cloud of plasma.")
|
T.visible_message("The [src] suddenly disgorges a cloud of phoron.")
|
||||||
T.assume_air(GM)
|
T.assume_air(GM)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
"gold"=0,
|
"gold"=0,
|
||||||
"silver"=0,
|
"silver"=0,
|
||||||
"diamond"=0,
|
"diamond"=0,
|
||||||
"plasma"=0,
|
"phoron"=0,
|
||||||
"uranium"=0,
|
"uranium"=0,
|
||||||
//"bananium"=0 No need to state what it can no longer hold
|
//"bananium"=0 No need to state what it can no longer hold
|
||||||
)
|
)
|
||||||
@@ -684,8 +684,8 @@
|
|||||||
type = /obj/item/stack/sheet/mineral/silver
|
type = /obj/item/stack/sheet/mineral/silver
|
||||||
if("diamond")
|
if("diamond")
|
||||||
type = /obj/item/stack/sheet/mineral/diamond
|
type = /obj/item/stack/sheet/mineral/diamond
|
||||||
if("plasma")
|
if("phoron")
|
||||||
type = /obj/item/stack/sheet/mineral/plasma
|
type = /obj/item/stack/sheet/mineral/phoron
|
||||||
if("uranium")
|
if("uranium")
|
||||||
type = /obj/item/stack/sheet/mineral/uranium
|
type = /obj/item/stack/sheet/mineral/uranium
|
||||||
/*if("bananium")
|
/*if("bananium")
|
||||||
@@ -732,9 +732,9 @@
|
|||||||
if(src.resources["glass"] >= 3750)
|
if(src.resources["glass"] >= 3750)
|
||||||
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
|
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
|
||||||
G.amount = round(src.resources["glass"] / G.perunit)
|
G.amount = round(src.resources["glass"] / G.perunit)
|
||||||
if(src.resources["plasma"] >= 2000)
|
if(src.resources["phoron"] >= 2000)
|
||||||
var/obj/item/stack/sheet/mineral/plasma/G = new /obj/item/stack/sheet/mineral/plasma(src.loc)
|
var/obj/item/stack/sheet/mineral/phoron/G = new /obj/item/stack/sheet/mineral/phoron(src.loc)
|
||||||
G.amount = round(src.resources["plasma"] / G.perunit)
|
G.amount = round(src.resources["phoron"] / G.perunit)
|
||||||
if(src.resources["silver"] >= 2000)
|
if(src.resources["silver"] >= 2000)
|
||||||
var/obj/item/stack/sheet/mineral/silver/G = new /obj/item/stack/sheet/mineral/silver(src.loc)
|
var/obj/item/stack/sheet/mineral/silver/G = new /obj/item/stack/sheet/mineral/silver(src.loc)
|
||||||
G.amount = round(src.resources["silver"] / G.perunit)
|
G.amount = round(src.resources["silver"] / G.perunit)
|
||||||
@@ -767,8 +767,8 @@
|
|||||||
material = "silver"
|
material = "silver"
|
||||||
if(/obj/item/stack/sheet/mineral/diamond)
|
if(/obj/item/stack/sheet/mineral/diamond)
|
||||||
material = "diamond"
|
material = "diamond"
|
||||||
if(/obj/item/stack/sheet/mineral/plasma)
|
if(/obj/item/stack/sheet/mineral/phoron)
|
||||||
material = "plasma"
|
material = "phoron"
|
||||||
if(/obj/item/stack/sheet/metal)
|
if(/obj/item/stack/sheet/metal)
|
||||||
material = "metal"
|
material = "metal"
|
||||||
if(/obj/item/stack/sheet/glass)
|
if(/obj/item/stack/sheet/glass)
|
||||||
|
|||||||
@@ -292,42 +292,42 @@
|
|||||||
name="Phazon Torso"
|
name="Phazon Torso"
|
||||||
icon_state = "phazon_harness"
|
icon_state = "phazon_harness"
|
||||||
construction_time = 300
|
construction_time = 300
|
||||||
construction_cost = list("metal"=35000,"glass"=10000,"plasma"=20000)
|
construction_cost = list("metal"=35000,"glass"=10000,"phoron"=20000)
|
||||||
origin_tech = "programming=5;materials=7;bluespace=6;powerstorage=6"
|
origin_tech = "programming=5;materials=7;bluespace=6;powerstorage=6"
|
||||||
|
|
||||||
/obj/item/mecha_parts/part/phazon_head
|
/obj/item/mecha_parts/part/phazon_head
|
||||||
name="Phazon Head"
|
name="Phazon Head"
|
||||||
icon_state = "phazon_head"
|
icon_state = "phazon_head"
|
||||||
construction_time = 200
|
construction_time = 200
|
||||||
construction_cost = list("metal"=15000,"glass"=5000,"plasma"=10000)
|
construction_cost = list("metal"=15000,"glass"=5000,"phoron"=10000)
|
||||||
origin_tech = "programming=4;materials=5;magnets=6"
|
origin_tech = "programming=4;materials=5;magnets=6"
|
||||||
|
|
||||||
/obj/item/mecha_parts/part/phazon_left_arm
|
/obj/item/mecha_parts/part/phazon_left_arm
|
||||||
name="Phazon Left Arm"
|
name="Phazon Left Arm"
|
||||||
icon_state = "phazon_l_arm"
|
icon_state = "phazon_l_arm"
|
||||||
construction_time = 200
|
construction_time = 200
|
||||||
construction_cost = list("metal"=20000,"plasma"=10000)
|
construction_cost = list("metal"=20000,"phoron"=10000)
|
||||||
origin_tech = "materials=5;bluespace=2;magnets=2"
|
origin_tech = "materials=5;bluespace=2;magnets=2"
|
||||||
|
|
||||||
/obj/item/mecha_parts/part/phazon_right_arm
|
/obj/item/mecha_parts/part/phazon_right_arm
|
||||||
name="Phazon Right Arm"
|
name="Phazon Right Arm"
|
||||||
icon_state = "phazon_r_arm"
|
icon_state = "phazon_r_arm"
|
||||||
construction_time = 200
|
construction_time = 200
|
||||||
construction_cost = list("metal"=20000,"plasma"=10000)
|
construction_cost = list("metal"=20000,"phoron"=10000)
|
||||||
origin_tech = "materials=5;bluespace=2;magnets=2"
|
origin_tech = "materials=5;bluespace=2;magnets=2"
|
||||||
|
|
||||||
/obj/item/mecha_parts/part/phazon_left_leg
|
/obj/item/mecha_parts/part/phazon_left_leg
|
||||||
name="Phazon Left Leg"
|
name="Phazon Left Leg"
|
||||||
icon_state = "phazon_l_leg"
|
icon_state = "phazon_l_leg"
|
||||||
construction_time = 200
|
construction_time = 200
|
||||||
construction_cost = list("metal"=20000,"plasma"=10000)
|
construction_cost = list("metal"=20000,"phoron"=10000)
|
||||||
origin_tech = "materials=5;bluespace=3;magnets=3"
|
origin_tech = "materials=5;bluespace=3;magnets=3"
|
||||||
|
|
||||||
/obj/item/mecha_parts/part/phazon_right_leg
|
/obj/item/mecha_parts/part/phazon_right_leg
|
||||||
name="Phazon Right Leg"
|
name="Phazon Right Leg"
|
||||||
icon_state = "phazon_r_leg"
|
icon_state = "phazon_r_leg"
|
||||||
construction_time = 200
|
construction_time = 200
|
||||||
construction_cost = list("metal"=20000,"plasma"=10000)
|
construction_cost = list("metal"=20000,"phoron"=10000)
|
||||||
origin_tech = "materials=5;bluespace=3;magnets=3"
|
origin_tech = "materials=5;bluespace=3;magnets=3"
|
||||||
|
|
||||||
///////// Odysseus
|
///////// Odysseus
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
var/obj/item/weapon/storage/backpack/BPK = new /obj/item/weapon/storage/backpack(src)
|
var/obj/item/weapon/storage/backpack/BPK = new /obj/item/weapon/storage/backpack(src)
|
||||||
var/obj/item/weapon/storage/box/B = new(BPK)
|
var/obj/item/weapon/storage/box/B = new(BPK)
|
||||||
new /obj/item/weapon/pen(B)
|
new /obj/item/weapon/pen(B)
|
||||||
new /obj/item/device/pda/toxins(src)
|
new /obj/item/device/pda/science(src)
|
||||||
new /obj/item/weapon/tank/oxygen(src)
|
new /obj/item/weapon/tank/oxygen(src)
|
||||||
new /obj/item/clothing/mask/gas(src)
|
new /obj/item/clothing/mask/gas(src)
|
||||||
new /obj/item/device/radio/headset/headset_sci(src)
|
new /obj/item/device/radio/headset/headset_sci(src)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
obj/effect/decal/cleanable/liquid_fuel
|
obj/effect/decal/cleanable/liquid_fuel
|
||||||
//Liquid fuel is used for things that used to rely on volatile fuels or plasma being contained to a couple tiles.
|
//Liquid fuel is used for things that used to rely on volatile fuels or phoron being contained to a couple tiles.
|
||||||
icon = 'icons/effects/effects.dmi'
|
icon = 'icons/effects/effects.dmi'
|
||||||
icon_state = "fuel"
|
icon_state = "fuel"
|
||||||
layer = TURF_LAYER+0.2
|
layer = TURF_LAYER+0.2
|
||||||
@@ -21,7 +21,7 @@ obj/effect/decal/cleanable/liquid_fuel
|
|||||||
|
|
||||||
proc/Spread()
|
proc/Spread()
|
||||||
//Allows liquid fuels to sometimes flow into other tiles.
|
//Allows liquid fuels to sometimes flow into other tiles.
|
||||||
if(amount < 0.5) return
|
if(amount < 5.0) return
|
||||||
var/turf/simulated/S = loc
|
var/turf/simulated/S = loc
|
||||||
if(!istype(S)) return
|
if(!istype(S)) return
|
||||||
for(var/d in cardinal)
|
for(var/d in cardinal)
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
/datum/poster/bay_11
|
/datum/poster/bay_11
|
||||||
icon_state="bsposter11"
|
icon_state="bsposter11"
|
||||||
name = "Underwater Laboratory"
|
name = "Underwater Laboratory"
|
||||||
desc = "This particular one is of the fabled last crew of Nanotrasen's previous project before going big on plasma research."
|
desc = "This particular one is of the fabled last crew of Nanotrasen's previous project before going big on phoron research."
|
||||||
|
|
||||||
/datum/poster/bay_12
|
/datum/poster/bay_12
|
||||||
icon_state="bsposter12"
|
icon_state="bsposter12"
|
||||||
@@ -143,3 +143,104 @@
|
|||||||
icon_state="bsposter29"
|
icon_state="bsposter29"
|
||||||
name = "Winter Is Coming"
|
name = "Winter Is Coming"
|
||||||
desc = "On the poster is a frighteningly large wolf, he warns: \"Only YOU can keep the station from freezing during planetary occultation!\""
|
desc = "On the poster is a frighteningly large wolf, he warns: \"Only YOU can keep the station from freezing during planetary occultation!\""
|
||||||
|
|
||||||
|
/datum/poster/bay_30
|
||||||
|
icon_state="bsposter30"
|
||||||
|
name = "Ambrosia Vulgaris"
|
||||||
|
desc = "Just looking at this poster makes you feel a little bit dizzy."
|
||||||
|
|
||||||
|
/datum/poster/bay_31
|
||||||
|
icon_state="bsposter31"
|
||||||
|
name = "Donut Corp"
|
||||||
|
desc = "This is an advertisement for Donut Corp, the new innovation in donut technology!"
|
||||||
|
|
||||||
|
/datum/poster/bay_32
|
||||||
|
icon_state="bsposter32"
|
||||||
|
name = "Eat!"
|
||||||
|
desc = "A poster depicting a hamburger. The poster orders you to consume the hamburger."
|
||||||
|
|
||||||
|
/datum/poster/bay_33
|
||||||
|
icon_state="bsposter33"
|
||||||
|
name = "Tools, tools, tools"
|
||||||
|
desc = "You can never have enough tools, thats for sure!"
|
||||||
|
|
||||||
|
/datum/poster/bay_34
|
||||||
|
icon_state="bsposter34"
|
||||||
|
name = "Power Up!"
|
||||||
|
desc = "High reward, higher risk!"
|
||||||
|
|
||||||
|
/datum/poster/bay_35
|
||||||
|
icon_state="bsposter35"
|
||||||
|
name = "Lamarr"
|
||||||
|
desc = "This is a poster depicting the pet and mascot of the NSS Exodus science department."
|
||||||
|
|
||||||
|
/datum/poster/bay_36
|
||||||
|
icon_state="bsposter36"
|
||||||
|
name = "Fancy Borg"
|
||||||
|
desc = "A poster depicting a cyborg using the service module. 'Fancy Borg' is written on it."
|
||||||
|
|
||||||
|
/datum/poster/bay_37
|
||||||
|
icon_state="bsposter37"
|
||||||
|
name = "Fancier Borg"
|
||||||
|
desc = "A poster depicting a cyborg using the service module. 'Fancy Borg' is written on it. This is even fancier than the first poster."
|
||||||
|
|
||||||
|
/datum/poster/bay_38
|
||||||
|
icon_state="bsposter38"
|
||||||
|
name = "Toaster Love"
|
||||||
|
desc = "This is a poster of a toaster containing two slices of bread. The word LOVE is written in big pink letters underneath."
|
||||||
|
|
||||||
|
/datum/poster/bay_39
|
||||||
|
icon_state="bsposter39"
|
||||||
|
name = "Responsible medbay habits, No #91"
|
||||||
|
desc = "A safety poster with a chemist holding a vial. \"Always wear safety gear while handling dangerous chemicals, even if it concerns only small amounts.\""
|
||||||
|
|
||||||
|
/datum/poster/bay_40
|
||||||
|
icon_state="bsposter40"
|
||||||
|
name = "Agreeable work environment"
|
||||||
|
desc = "This poster depicts a young woman in a stylish dress. \"Try to aim for a pleasant atmosphere in the workspace. A friendly word can do more than forms in triplicate.\""
|
||||||
|
|
||||||
|
/datum/poster/bay_41
|
||||||
|
icon_state="bsposter41"
|
||||||
|
name = "Professional work environment"
|
||||||
|
desc = "A safety poster featuring a green haired woman in a shimmering blue dress. \"As an Internal Affairs Agent, your job is to create a fair and agreeable work environment for the crewmembers, as discreetly and professionally as possible.\""
|
||||||
|
|
||||||
|
/datum/poster/bay_42
|
||||||
|
icon_state="bsposter42"
|
||||||
|
name = "Engineering pinup"
|
||||||
|
desc = "This is pin-up poster. A half-naked girl with white hair, toned muscles and stunning blue eyes looks back at you from the poster. Her welding helmet, tattoos and grey jumpsuit hanging around her waist gives a bit of a rugged feel."
|
||||||
|
|
||||||
|
/datum/poster/bay_43
|
||||||
|
icon_state="bsposter43"
|
||||||
|
name = "Responsible medbay habits, No #3"
|
||||||
|
desc = "A safety poster with a purple-haired surgeon. She looks a bit cross. \"Let the surgeons do their work. NEVER replace or remove a surgery tool from where the surgeon put it.\""
|
||||||
|
|
||||||
|
/datum/poster/bay_44
|
||||||
|
icon_state="bsposter44"
|
||||||
|
name = "Time for a drink?"
|
||||||
|
desc = "This poster depicts a friendly-looking Tajara holding a tray of drinks."
|
||||||
|
|
||||||
|
/datum/poster/bay_45
|
||||||
|
icon_state="bsposter45"
|
||||||
|
name = "Responsible engineering habits, No #1"
|
||||||
|
desc = "A safety poster featuring a blue haired engineer. \"When repairing a machine or construction, always aim for long-term solutions.\""
|
||||||
|
|
||||||
|
/datum/poster/bay_46
|
||||||
|
icon_state="bsposter46"
|
||||||
|
name = "Inspirational lawyer"
|
||||||
|
desc = "An inspirational poster depicting a Skrellian lawyer. He seems to be shouting something, while pointing fiercely to the right."
|
||||||
|
|
||||||
|
/datum/poster/bay_47
|
||||||
|
icon_state="bsposter47"
|
||||||
|
name = "Security pinup"
|
||||||
|
desc = "This is a pin-up poster. A dark skinned white haired girl poses in the sunlight wearing a tank top with her stomach exposed. The text on the poster states \"M, Succubus of Security.\" and a lipstick mark stains the top right corner, as if kissed by the model herself."
|
||||||
|
|
||||||
|
/datum/poster/bay_48
|
||||||
|
icon_state="bsposter48"
|
||||||
|
name = "Borg pinup?"
|
||||||
|
desc = "This is a.. pin-up poster? It is a diagram on an old model of cyborg with a note scribbled in marker on the bottom, on the top there is a large XO written in red marker."
|
||||||
|
|
||||||
|
/datum/poster/bay_49
|
||||||
|
icon_state="bsposter49"
|
||||||
|
name = "Engineering recruitment"
|
||||||
|
desc = "This is a poster showing an engineer relaxing by a computer, the text states \"Living the life! Join Engineering today!\""
|
||||||
|
|
||||||
|
|||||||
@@ -63,13 +63,13 @@
|
|||||||
spawn(0)
|
spawn(0)
|
||||||
del(src)
|
del(src)
|
||||||
|
|
||||||
/obj/effect/mine/proc/triggerplasma(obj)
|
/obj/effect/mine/proc/triggerphoron(obj)
|
||||||
for (var/turf/simulated/floor/target in range(1,src))
|
for (var/turf/simulated/floor/target in range(1,src))
|
||||||
if(!target.blocks_air)
|
if(!target.blocks_air)
|
||||||
|
|
||||||
var/datum/gas_mixture/payload = new
|
var/datum/gas_mixture/payload = new
|
||||||
|
|
||||||
payload.toxins = 30
|
payload.phoron = 30
|
||||||
|
|
||||||
target.zone.air.merge(payload)
|
target.zone.air.merge(payload)
|
||||||
|
|
||||||
@@ -96,10 +96,10 @@
|
|||||||
icon_state = "uglymine"
|
icon_state = "uglymine"
|
||||||
triggerproc = "triggerrad"
|
triggerproc = "triggerrad"
|
||||||
|
|
||||||
/obj/effect/mine/plasma
|
/obj/effect/mine/phoron
|
||||||
name = "Plasma Mine"
|
name = "Phoron Mine"
|
||||||
icon_state = "uglymine"
|
icon_state = "uglymine"
|
||||||
triggerproc = "triggerplasma"
|
triggerproc = "triggerphoron"
|
||||||
|
|
||||||
/obj/effect/mine/kick
|
/obj/effect/mine/kick
|
||||||
name = "Kick Mine"
|
name = "Kick Mine"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
// radio
|
// radio
|
||||||
if (0)
|
if (0)
|
||||||
var/obj/item/assembly/r_i_ptank/R = new /obj/item/assembly/r_i_ptank(src.loc)
|
var/obj/item/assembly/r_i_ptank/R = new /obj/item/assembly/r_i_ptank(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/p3 = new /obj/item/weapon/tank/plasma(R)
|
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||||
var/obj/item/device/radio/signaler/p1 = new /obj/item/device/radio/signaler(R)
|
var/obj/item/device/radio/signaler/p1 = new /obj/item/device/radio/signaler(R)
|
||||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||||
R.part1 = p1
|
R.part1 = p1
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
// proximity
|
// proximity
|
||||||
if (1)
|
if (1)
|
||||||
var/obj/item/assembly/m_i_ptank/R = new /obj/item/assembly/m_i_ptank(src.loc)
|
var/obj/item/assembly/m_i_ptank/R = new /obj/item/assembly/m_i_ptank(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/p3 = new /obj/item/weapon/tank/plasma(R)
|
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||||
var/obj/item/device/prox_sensor/p1 = new /obj/item/device/prox_sensor(R)
|
var/obj/item/device/prox_sensor/p1 = new /obj/item/device/prox_sensor(R)
|
||||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||||
R.part1 = p1
|
R.part1 = p1
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
// timer
|
// timer
|
||||||
if (2)
|
if (2)
|
||||||
var/obj/item/assembly/t_i_ptank/R = new /obj/item/assembly/t_i_ptank(src.loc)
|
var/obj/item/assembly/t_i_ptank/R = new /obj/item/assembly/t_i_ptank(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/p3 = new /obj/item/weapon/tank/plasma(R)
|
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||||
var/obj/item/device/timer/p1 = new /obj/item/device/timer(R)
|
var/obj/item/device/timer/p1 = new /obj/item/device/timer(R)
|
||||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||||
R.part1 = p1
|
R.part1 = p1
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
//bombvest
|
//bombvest
|
||||||
if(3)
|
if(3)
|
||||||
var/obj/item/clothing/suit/armor/a_i_a_ptank/R = new /obj/item/clothing/suit/armor/a_i_a_ptank(src.loc)
|
var/obj/item/clothing/suit/armor/a_i_a_ptank/R = new /obj/item/clothing/suit/armor/a_i_a_ptank(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/p4 = new /obj/item/weapon/tank/plasma(R)
|
var/obj/item/weapon/tank/phoron/p4 = new /obj/item/weapon/tank/phoron(R)
|
||||||
var/obj/item/device/healthanalyzer/p1 = new /obj/item/device/healthanalyzer(R)
|
var/obj/item/device/healthanalyzer/p1 = new /obj/item/device/healthanalyzer(R)
|
||||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||||
var/obj/item/clothing/suit/armor/vest/p3 = new /obj/item/clothing/suit/armor/vest(R)
|
var/obj/item/clothing/suit/armor/vest/p3 = new /obj/item/clothing/suit/armor/vest(R)
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||||
var/obj/item/weapon/tank/plasma/PT = new(V)
|
var/obj/item/weapon/tank/phoron/PT = new(V)
|
||||||
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
||||||
|
|
||||||
V.tank_one = PT
|
V.tank_one = PT
|
||||||
@@ -136,12 +136,12 @@
|
|||||||
PT.master = V
|
PT.master = V
|
||||||
OT.master = V
|
OT.master = V
|
||||||
|
|
||||||
PT.air_contents.temperature = PLASMA_FLASHPOINT
|
PT.air_contents.temperature = PHORON_FLASHPOINT
|
||||||
PT.air_contents.toxins = 3
|
PT.air_contents.phoron = 3
|
||||||
PT.air_contents.carbon_dioxide = 17
|
PT.air_contents.carbon_dioxide = 17
|
||||||
PT.air_contents.update_values()
|
PT.air_contents.update_values()
|
||||||
|
|
||||||
OT.air_contents.temperature = PLASMA_FLASHPOINT
|
OT.air_contents.temperature = PHORON_FLASHPOINT
|
||||||
OT.air_contents.oxygen = 20
|
OT.air_contents.oxygen = 20
|
||||||
OT.air_contents.update_values()
|
OT.air_contents.update_values()
|
||||||
|
|
||||||
|
|||||||
@@ -238,18 +238,6 @@
|
|||||||
/obj/item/proc/equipped(var/mob/user, var/slot)
|
/obj/item/proc/equipped(var/mob/user, var/slot)
|
||||||
return
|
return
|
||||||
|
|
||||||
//returns 1 if the item is equipped by a mob, 0 otherwise.
|
|
||||||
//This might need some error trapping, not sure if get_equipped_items() is safe for non-human mobs.
|
|
||||||
/obj/item/proc/is_equipped()
|
|
||||||
if(!ismob(loc))
|
|
||||||
return 0
|
|
||||||
|
|
||||||
var/mob/M = loc
|
|
||||||
if(src in M.get_equipped_items())
|
|
||||||
return 1
|
|
||||||
else
|
|
||||||
return 0
|
|
||||||
|
|
||||||
//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't.
|
//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't.
|
||||||
//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen.
|
//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen.
|
||||||
//Set disable_warning to 1 if you wish it to not give you outputs.
|
//Set disable_warning to 1 if you wish it to not give you outputs.
|
||||||
|
|||||||
@@ -83,8 +83,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
icon_state = "pda-j"
|
icon_state = "pda-j"
|
||||||
ttone = "slip"
|
ttone = "slip"
|
||||||
|
|
||||||
/obj/item/device/pda/toxins
|
/obj/item/device/pda/science
|
||||||
default_cartridge = /obj/item/weapon/cartridge/signal/toxins
|
default_cartridge = /obj/item/weapon/cartridge/signal/science
|
||||||
icon_state = "pda-tox"
|
icon_state = "pda-tox"
|
||||||
ttone = "boom"
|
ttone = "boom"
|
||||||
|
|
||||||
@@ -446,14 +446,14 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
var/o2_level = environment.oxygen/total_moles
|
var/o2_level = environment.oxygen/total_moles
|
||||||
var/n2_level = environment.nitrogen/total_moles
|
var/n2_level = environment.nitrogen/total_moles
|
||||||
var/co2_level = environment.carbon_dioxide/total_moles
|
var/co2_level = environment.carbon_dioxide/total_moles
|
||||||
var/plasma_level = environment.toxins/total_moles
|
var/phoron_level = environment.phoron/total_moles
|
||||||
var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level)
|
var/unknown_level = 1-(o2_level+n2_level+co2_level+phoron_level)
|
||||||
data["aircontents"] = list(\
|
data["aircontents"] = list(\
|
||||||
"pressure" = "[round(pressure,0.1)]",\
|
"pressure" = "[round(pressure,0.1)]",\
|
||||||
"nitrogen" = "[round(n2_level*100,0.1)]",\
|
"nitrogen" = "[round(n2_level*100,0.1)]",\
|
||||||
"oxygen" = "[round(o2_level*100,0.1)]",\
|
"oxygen" = "[round(o2_level*100,0.1)]",\
|
||||||
"carbon_dioxide" = "[round(co2_level*100,0.1)]",\
|
"carbon_dioxide" = "[round(co2_level*100,0.1)]",\
|
||||||
"plasma" = "[round(plasma_level*100,0.01)]",\
|
"phoron" = "[round(phoron_level*100,0.01)]",\
|
||||||
"other" = "[round(unknown_level, 0.01)]",\
|
"other" = "[round(unknown_level, 0.01)]",\
|
||||||
"temp" = "[round(environment.temperature-T0C,0.1)]",\
|
"temp" = "[round(environment.temperature-T0C,0.1)]",\
|
||||||
"reading" = 1\
|
"reading" = 1\
|
||||||
@@ -556,7 +556,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
mode = 1
|
mode = 1
|
||||||
if("2")//Messenger
|
if("2")//Messenger
|
||||||
mode = 2
|
mode = 2
|
||||||
if("21")//Read messeges
|
if("21")//Read messages
|
||||||
mode = 21
|
mode = 21
|
||||||
if("3")//Atmos scan
|
if("3")//Atmos scan
|
||||||
mode = 3
|
mode = 3
|
||||||
@@ -818,7 +818,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
message += "You feel a searing heat! Your [P] is burning!"
|
message += "You feel a searing heat! Your [P] is burning!"
|
||||||
if(i>=20 && i<=25) //EMP
|
if(i>=20 && i<=25) //EMP
|
||||||
empulse(P.loc, 3, 6, 1)
|
empulse(P.loc, 3, 6, 1)
|
||||||
message += "Your [P] emits a wave of electomagnetic energy!"
|
message += "Your [P] emits a wave of electromagnetic energy!"
|
||||||
if(i>=25 && i<=40) //Smoke
|
if(i>=25 && i<=40) //Smoke
|
||||||
var/datum/effect/effect/system/smoke_spread/chem/S = new /datum/effect/effect/system/smoke_spread/chem
|
var/datum/effect/effect/system/smoke_spread/chem/S = new /datum/effect/effect/system/smoke_spread/chem
|
||||||
S.attach(P.loc)
|
S.attach(P.loc)
|
||||||
@@ -895,7 +895,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
var/obj/machinery/message_server/useMS = null
|
var/obj/machinery/message_server/useMS = null
|
||||||
if(message_servers)
|
if(message_servers)
|
||||||
for (var/obj/machinery/message_server/MS in message_servers)
|
for (var/obj/machinery/message_server/MS in message_servers)
|
||||||
//PDAs are now dependant on the Message Server.
|
//PDAs are now dependent on the Message Server.
|
||||||
if(MS.active)
|
if(MS.active)
|
||||||
useMS = MS
|
useMS = MS
|
||||||
break
|
break
|
||||||
@@ -914,7 +914,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
t = Gibberish(t, signal.data["compression"] + 50)
|
t = Gibberish(t, signal.data["compression"] + 50)
|
||||||
|
|
||||||
if(useMS && useTC) // only send the message if it's stable
|
if(useMS && useTC) // only send the message if it's stable
|
||||||
if(useTC != 2) // Does our recepient have a broadcaster on their level?
|
if(useTC != 2) // Does our recipient have a broadcaster on their level?
|
||||||
U << "ERROR: Cannot reach recipient."
|
U << "ERROR: Cannot reach recipient."
|
||||||
return
|
return
|
||||||
useMS.send_pda_message("[P.owner]","[owner]","[t]")
|
useMS.send_pda_message("[P.owner]","[owner]","[t]")
|
||||||
@@ -957,7 +957,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
|
|
||||||
if(L)
|
if(L)
|
||||||
L << "\icon[P] <b>Message from [src.owner] ([ownjob]), </b>\"[t]\" (<a href='byond://?src=\ref[P];choice=Message;skiprefresh=1;target=\ref[src]'>Reply</a>)"
|
L << "\icon[P] <b>Message from [src.owner] ([ownjob]), </b>\"[t]\" (<a href='byond://?src=\ref[P];choice=Message;skiprefresh=1;target=\ref[src]'>Reply</a>)"
|
||||||
nanomanager.update_user_uis(L, P) // Update the recieving user's PDA UI so that they can see the new message
|
nanomanager.update_user_uis(L, P) // Update the receiving user's PDA UI so that they can see the new message
|
||||||
|
|
||||||
nanomanager.update_user_uis(U, P) // Update the sending user's PDA UI so that they can see the new message
|
nanomanager.update_user_uis(U, P) // Update the sending user's PDA UI so that they can see the new message
|
||||||
|
|
||||||
@@ -1165,15 +1165,15 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
var/o2_concentration = A:air_contents.oxygen/total_moles
|
var/o2_concentration = A:air_contents.oxygen/total_moles
|
||||||
var/n2_concentration = A:air_contents.nitrogen/total_moles
|
var/n2_concentration = A:air_contents.nitrogen/total_moles
|
||||||
var/co2_concentration = A:air_contents.carbon_dioxide/total_moles
|
var/co2_concentration = A:air_contents.carbon_dioxide/total_moles
|
||||||
var/plasma_concentration = A:air_contents.toxins/total_moles
|
var/phoron_concentration = A:air_contents.phoron/total_moles
|
||||||
|
|
||||||
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
|
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+phoron_concentration)
|
||||||
|
|
||||||
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
||||||
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
||||||
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
||||||
user << "\blue CO2: [round(co2_concentration*100)]%"
|
user << "\blue CO2: [round(co2_concentration*100)]%"
|
||||||
user << "\blue Plasma: [round(plasma_concentration*100)]%"
|
user << "\blue Phoron: [round(phoron_concentration*100)]%"
|
||||||
if(unknown_concentration>0.01)
|
if(unknown_concentration>0.01)
|
||||||
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
||||||
user << "\blue Temperature: [round(A:air_contents.temperature-T0C)]°C"
|
user << "\blue Temperature: [round(A:air_contents.temperature-T0C)]°C"
|
||||||
@@ -1194,15 +1194,15 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
var/o2_concentration = T.parent.air.oxygen/total_moles
|
var/o2_concentration = T.parent.air.oxygen/total_moles
|
||||||
var/n2_concentration = T.parent.air.nitrogen/total_moles
|
var/n2_concentration = T.parent.air.nitrogen/total_moles
|
||||||
var/co2_concentration = T.parent.air.carbon_dioxide/total_moles
|
var/co2_concentration = T.parent.air.carbon_dioxide/total_moles
|
||||||
var/plasma_concentration = T.parent.air.toxins/total_moles
|
var/phoron_concentration = T.parent.air.phoron/total_moles
|
||||||
|
|
||||||
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
|
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+phoron_concentration)
|
||||||
|
|
||||||
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
||||||
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
||||||
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
||||||
user << "\blue CO2: [round(co2_concentration*100)]%"
|
user << "\blue CO2: [round(co2_concentration*100)]%"
|
||||||
user << "\blue Plasma: [round(plasma_concentration*100)]%"
|
user << "\blue Phoron: [round(phoron_concentration*100)]%"
|
||||||
if(unknown_concentration>0.01)
|
if(unknown_concentration>0.01)
|
||||||
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
||||||
user << "\blue Temperature: [round(T.parent.air.temperature-T0C)]°C"
|
user << "\blue Temperature: [round(T.parent.air.temperature-T0C)]°C"
|
||||||
@@ -1293,7 +1293,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
|||||||
var/newcart = pick( /obj/item/weapon/cartridge/engineering,
|
var/newcart = pick( /obj/item/weapon/cartridge/engineering,
|
||||||
/obj/item/weapon/cartridge/security,
|
/obj/item/weapon/cartridge/security,
|
||||||
/obj/item/weapon/cartridge/medical,
|
/obj/item/weapon/cartridge/medical,
|
||||||
/obj/item/weapon/cartridge/signal/toxins,
|
/obj/item/weapon/cartridge/signal/science,
|
||||||
/obj/item/weapon/cartridge/quartermaster)
|
/obj/item/weapon/cartridge/quartermaster)
|
||||||
new newcart(src)
|
new newcart(src)
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
name = "generic signaler cartridge"
|
name = "generic signaler cartridge"
|
||||||
desc = "A data cartridge with an integrated radio signaler module."
|
desc = "A data cartridge with an integrated radio signaler module."
|
||||||
|
|
||||||
/obj/item/weapon/cartridge/signal/toxins
|
/obj/item/weapon/cartridge/signal/science
|
||||||
name = "Signal Ace 2"
|
name = "Signal Ace 2"
|
||||||
desc = "Complete with integrated radio signaler!"
|
desc = "Complete with integrated radio signaler!"
|
||||||
icon_state = "cart-tox"
|
icon_state = "cart-tox"
|
||||||
|
|||||||
@@ -25,33 +25,200 @@
|
|||||||
if (!in_range(src, user))
|
if (!in_range(src, user))
|
||||||
return
|
return
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
var/dat = "<TT><B>Personal AI Device</B><BR>"
|
var/dat = {"
|
||||||
if(pai && (!pai.master_dna || !pai.master))
|
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
|
||||||
dat += "<a href='byond://?src=\ref[src];setdna=1'>Imprint Master DNA</a><br>"
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
margin-top:5px;
|
||||||
|
font-family:Verdana;
|
||||||
|
color:white;
|
||||||
|
font-size:13px;
|
||||||
|
background-image:url('uiBackground.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
background-color:#272727;
|
||||||
|
background-position:center top;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
font-size:13px;
|
||||||
|
margin-left:-2px;
|
||||||
|
}
|
||||||
|
table.request {
|
||||||
|
border-collapse:collapse;
|
||||||
|
}
|
||||||
|
table.desc {
|
||||||
|
border-collapse:collapse;
|
||||||
|
font-size:13px;
|
||||||
|
border: 1px solid #161616;
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
table.download {
|
||||||
|
border-collapse:collapse;
|
||||||
|
font-size:13px;
|
||||||
|
border: 1px solid #161616;
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
tr.d0 td, tr.d0 th {
|
||||||
|
background-color: #506070;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
tr.d1 td, tr.d1 th {
|
||||||
|
background-color: #708090;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
tr.d2 td {
|
||||||
|
background-color: #00FF00;
|
||||||
|
color: white;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
td.button {
|
||||||
|
border: 1px solid #161616;
|
||||||
|
background-color: #40628a;
|
||||||
|
}
|
||||||
|
td.button {
|
||||||
|
border: 1px solid #161616;
|
||||||
|
background-color: #40628a;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
td.button_red {
|
||||||
|
border: 1px solid #161616;
|
||||||
|
background-color: #B04040;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
td.download {
|
||||||
|
border: 1px solid #161616;
|
||||||
|
background-color: #40628a;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
text-align:left;
|
||||||
|
width:125px;
|
||||||
|
}
|
||||||
|
td.request {
|
||||||
|
width:140px;
|
||||||
|
vertical-align:top;
|
||||||
|
}
|
||||||
|
td.radio {
|
||||||
|
width:90px;
|
||||||
|
vertical-align:top;
|
||||||
|
}
|
||||||
|
td.request {
|
||||||
|
vertical-align:top;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color:#4477E0;
|
||||||
|
}
|
||||||
|
a.button {
|
||||||
|
color:white;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size:15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
"}
|
||||||
|
|
||||||
if(pai)
|
if(pai)
|
||||||
dat += "Installed Personality: [pai.name]<br>"
|
dat += {"
|
||||||
dat += "Prime directive: <br>[pai.pai_law0]<br>"
|
<b><font size='3px'>Personal AI Device</font></b><br><br>
|
||||||
dat += "Additional directives: <br>[pai.pai_laws]<br>"
|
<table class="request">
|
||||||
dat += "<a href='byond://?src=\ref[src];setlaws=1'>Configure Directives</a><br>"
|
<tr>
|
||||||
|
<td class="request">Installed Personality:</td>
|
||||||
|
<td>[pai.name]</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="request">Prime directive:</td>
|
||||||
|
<td>[pai.pai_law0]</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="request">Additional directives:</td>
|
||||||
|
<td>[pai.pai_laws]</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
"}
|
||||||
|
dat += {"
|
||||||
|
<table>
|
||||||
|
<td class="button">
|
||||||
|
<a href='byond://?src=\ref[src];setlaws=1' class='button'>Configure Directives</a>
|
||||||
|
</td>
|
||||||
|
</table>
|
||||||
|
"}
|
||||||
|
if(pai && (!pai.master_dna || !pai.master))
|
||||||
|
dat += {"
|
||||||
|
<table>
|
||||||
|
<td class="button">
|
||||||
|
<a href='byond://?src=\ref[src];setdna=1' class='button'>Imprint Master DNA</a>
|
||||||
|
</td>
|
||||||
|
</table>
|
||||||
|
"}
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
dat += "<h3>Device Settings</h3><br>"
|
|
||||||
if(radio)
|
if(radio)
|
||||||
dat += "<b>Radio Uplink</b><br>"
|
dat += "<b>Radio Uplink</b>"
|
||||||
dat += "Transmit: <A href='byond://?src=\ref[src];wires=4'>[(radio.wires & 4) ? "Enabled" : "Disabled"]</A><br>"
|
dat += {"
|
||||||
dat += "Receive: <A href='byond://?src=\ref[src];wires=2'>[(radio.wires & 2) ? "Enabled" : "Disabled"]</A><br>"
|
<table class="request">
|
||||||
dat += "Signal Pulser: <A href='byond://?src=\ref[src];wires=1'>[(radio.wires & 1) ? "Enabled" : "Disabled"]</A><br>"
|
<tr>
|
||||||
|
<td class="radio">Transmit:</td>
|
||||||
|
<td><a href='byond://?src=\ref[src];wires=4'>[(radio.wires & 4) ? "<font color=#55FF55>En" : "<font color=#FF5555>Dis" ]abled</font></a>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="radio">Receive:</td>
|
||||||
|
<td><a href='byond://?src=\ref[src];wires=2'>[(radio.wires & 2) ? "<font color=#55FF55>En" : "<font color=#FF5555>Dis" ]abled</font></a>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="radio">Signal Pulser:</td>
|
||||||
|
<td><a href='byond://?src=\ref[src];wires=1'>[(radio.wires & 1) ? "<font color=#55FF55>En" : "<font color=#FF5555>Dis" ]abled</font></a>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
"}
|
||||||
else
|
else
|
||||||
dat += "<b>Radio Uplink</b><br>"
|
dat += "<b>Radio Uplink</b><br>"
|
||||||
dat += "<font color=red><i>Radio firmware not loaded. Please install a pAI personality to load firmware.</i></font><br>"
|
dat += "<font color=red><i>Radio firmware not loaded. Please install a pAI personality to load firmware.</i></font><br>"
|
||||||
dat += "<A href='byond://?src=\ref[src];wipe=1'>\[Wipe current pAI personality\]</a><br>"
|
dat += {"
|
||||||
|
<table>
|
||||||
|
<td class="button_red"><a href='byond://?src=\ref[src];wipe=1' class='button'>Wipe current pAI personality</a>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</table>
|
||||||
|
"}
|
||||||
else
|
else
|
||||||
if(looking_for_personality)
|
if(looking_for_personality)
|
||||||
dat += "Searching for a personality..."
|
dat += {"
|
||||||
dat += "<A href='byond://?src=\ref[src];request=1'>\[View available personalities\]</a><br>"
|
<b><font size='3px'>pAI Request Module</font></b><br><br>
|
||||||
|
<p>Requesting AI personalities from central database... If there are no entries, or if a suitable entry is not listed, check again later as more personalities may be added.</p>
|
||||||
|
<img src='loading.gif' /> Searching for personalities<br><br>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="button">
|
||||||
|
<a href='byond://?src=\ref[src];request=1' class="button">Refresh available personalities</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table><br>
|
||||||
|
"}
|
||||||
else
|
else
|
||||||
dat += "No personality is installed.<br>"
|
dat += {"
|
||||||
dat += "<A href='byond://?src=\ref[src];request=1'>\[Request personal AI personality\]</a><br>"
|
<b><font size='3px'>pAI Request Module</font></b><br><br>
|
||||||
dat += "Each time this button is pressed, a request will be sent out to any available personalities. Check back often and alot time for personalities to respond. This process could take anywhere from 15 seconds to several minutes, depending on the available personalities' timeliness."
|
<p>No personality is installed.</p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="button"><a href='byond://?src=\ref[src];request=1' class="button">Request personality</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
<p>Each time this button is pressed, a request will be sent out to any available personalities. Check back often give plenty of time for personalities to respond. This process could take anywhere from 15 seconds to several minutes, depending on the available personalities' timeliness.</p>
|
||||||
|
"}
|
||||||
user << browse(dat, "window=paicard")
|
user << browse(dat, "window=paicard")
|
||||||
onclose(user, "paicard")
|
onclose(user, "paicard")
|
||||||
return
|
return
|
||||||
@@ -96,7 +263,7 @@
|
|||||||
if(newlaws)
|
if(newlaws)
|
||||||
pai.pai_laws = newlaws
|
pai.pai_laws = newlaws
|
||||||
pai << "Your supplemental directives have been updated. Your new directives are:"
|
pai << "Your supplemental directives have been updated. Your new directives are:"
|
||||||
pai << "Prime Directive : <br>[pai.pai_law0]"
|
pai << "Prime Directive: <br>[pai.pai_law0]"
|
||||||
pai << "Supplemental Directives: <br>[pai.pai_laws]"
|
pai << "Supplemental Directives: <br>[pai.pai_laws]"
|
||||||
attack_self(usr)
|
attack_self(usr)
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,15 @@
|
|||||||
var/mode = "grey"
|
var/mode = "grey"
|
||||||
|
|
||||||
/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob)
|
/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob)
|
||||||
if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/tank) || istype(A,/obj/machinery/atmospherics/pipe/vent) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated))
|
if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/tank) || istype(A,/obj/machinery/atmospherics/pipe/vent) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated) || !in_range(user, A))
|
||||||
return
|
return
|
||||||
var/obj/machinery/atmospherics/pipe/P = A
|
var/obj/machinery/atmospherics/pipe/P = A
|
||||||
|
|
||||||
|
var/turf/T = P.loc
|
||||||
|
if (P.level < 2 && T.level==1 && isturf(T) && T.intact)
|
||||||
|
user << "\red You must remove the plating first."
|
||||||
|
return
|
||||||
|
|
||||||
P.pipe_color = mode
|
P.pipe_color = mode
|
||||||
user.visible_message("<span class='notice'>[user] paints \the [P] [mode].</span>","<span class='notice'>You paint \the [P] [mode].</span>")
|
user.visible_message("<span class='notice'>[user] paints \the [P] [mode].</span>","<span class='notice'>You paint \the [P] [mode].</span>")
|
||||||
P.update_icon()
|
P.update_icon()
|
||||||
|
|||||||
@@ -238,9 +238,9 @@ REAGENT SCANNER
|
|||||||
var/o2_concentration = environment.oxygen/total_moles
|
var/o2_concentration = environment.oxygen/total_moles
|
||||||
var/n2_concentration = environment.nitrogen/total_moles
|
var/n2_concentration = environment.nitrogen/total_moles
|
||||||
var/co2_concentration = environment.carbon_dioxide/total_moles
|
var/co2_concentration = environment.carbon_dioxide/total_moles
|
||||||
var/plasma_concentration = environment.toxins/total_moles
|
var/phoron_concentration = environment.phoron/total_moles
|
||||||
|
|
||||||
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
|
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+phoron_concentration)
|
||||||
if(abs(n2_concentration - N2STANDARD) < 20)
|
if(abs(n2_concentration - N2STANDARD) < 20)
|
||||||
user.show_message("\blue Nitrogen: [round(n2_concentration*100)]%", 1)
|
user.show_message("\blue Nitrogen: [round(n2_concentration*100)]%", 1)
|
||||||
else
|
else
|
||||||
@@ -256,8 +256,8 @@ REAGENT SCANNER
|
|||||||
else
|
else
|
||||||
user.show_message("\blue CO2: [round(co2_concentration*100)]%", 1)
|
user.show_message("\blue CO2: [round(co2_concentration*100)]%", 1)
|
||||||
|
|
||||||
if(plasma_concentration > 0.01)
|
if(phoron_concentration > 0.01)
|
||||||
user.show_message("\red Plasma: [round(plasma_concentration*100)]%", 1)
|
user.show_message("\red Phoron: [round(phoron_concentration*100)]%", 1)
|
||||||
|
|
||||||
if(unknown_concentration > 0.01)
|
if(unknown_concentration > 0.01)
|
||||||
user.show_message("\red Unknown: [round(unknown_concentration*100)]%", 1)
|
user.show_message("\red Unknown: [round(unknown_concentration*100)]%", 1)
|
||||||
|
|||||||
@@ -213,7 +213,7 @@
|
|||||||
for(var/i=1,storedinfo.len >= i,i++)
|
for(var/i=1,storedinfo.len >= i,i++)
|
||||||
t1 += "[storedinfo[i]]<BR>"
|
t1 += "[storedinfo[i]]<BR>"
|
||||||
P.info = t1
|
P.info = t1
|
||||||
P.name = "paper- 'Transcript'"
|
P.name = "Transcript"
|
||||||
canprint = 0
|
canprint = 0
|
||||||
sleep(300)
|
sleep(300)
|
||||||
canprint = 1
|
canprint = 1
|
||||||
|
|||||||
@@ -133,7 +133,7 @@
|
|||||||
/obj/item/borg/upgrade/jetpack
|
/obj/item/borg/upgrade/jetpack
|
||||||
name = "mining robot jetpack"
|
name = "mining robot jetpack"
|
||||||
desc = "A carbon dioxide jetpack suitable for low-gravity mining operations."
|
desc = "A carbon dioxide jetpack suitable for low-gravity mining operations."
|
||||||
construction_cost = list("metal"=10000,"plasma"=15000,"uranium" = 20000)
|
construction_cost = list("metal"=10000,"phoron"=15000,"uranium" = 20000)
|
||||||
icon_state = "cyborg_upgrade3"
|
icon_state = "cyborg_upgrade3"
|
||||||
require_module = 1
|
require_module = 1
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
* Contains:
|
* Contains:
|
||||||
* Glass sheets
|
* Glass sheets
|
||||||
* Reinforced glass sheets
|
* Reinforced glass sheets
|
||||||
* Plasma Glass Sheets
|
* Phoron Glass Sheets
|
||||||
* Reinforced Plasma Glass Sheets (AKA Holy fuck strong windows)
|
* Reinforced Phoron Glass Sheets (AKA Holy fuck strong windows)
|
||||||
* Glass shards - TODO: Move this into code/game/object/item/weapons
|
* Glass shards - TODO: Move this into code/game/object/item/weapons
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -310,25 +310,25 @@
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Plasma Glass sheets
|
* Phoron Glass sheets
|
||||||
*/
|
*/
|
||||||
/obj/item/stack/sheet/glass/plasmaglass
|
/obj/item/stack/sheet/glass/phoronglass
|
||||||
name = "plasma glass"
|
name = "phoron glass"
|
||||||
desc = "A very strong and very resistant sheet of a plasma-glass alloy."
|
desc = "A very strong and very resistant sheet of a phoron-glass alloy."
|
||||||
singular_name = "plasma glass sheet"
|
singular_name = "phoron glass sheet"
|
||||||
icon_state = "sheet-plasmaglass"
|
icon_state = "sheet-phoronglass"
|
||||||
g_amt = 7500
|
g_amt = 7500
|
||||||
origin_tech = "materials=3;plasma=2"
|
origin_tech = "materials=3;phoron=2"
|
||||||
created_window = /obj/structure/window/plasmabasic
|
created_window = /obj/structure/window/phoronbasic
|
||||||
|
|
||||||
/obj/item/stack/sheet/glass/plasmaglass/attack_self(mob/user as mob)
|
/obj/item/stack/sheet/glass/phoronglass/attack_self(mob/user as mob)
|
||||||
construct_window(user)
|
construct_window(user)
|
||||||
|
|
||||||
/obj/item/stack/sheet/glass/plasmaglass/attackby(obj/item/W, mob/user)
|
/obj/item/stack/sheet/glass/phoronglass/attackby(obj/item/W, mob/user)
|
||||||
..()
|
..()
|
||||||
if( istype(W, /obj/item/stack/rods) )
|
if( istype(W, /obj/item/stack/rods) )
|
||||||
var/obj/item/stack/rods/V = W
|
var/obj/item/stack/rods/V = W
|
||||||
var/obj/item/stack/sheet/glass/plasmarglass/RG = new (user.loc)
|
var/obj/item/stack/sheet/glass/phoronrglass/RG = new (user.loc)
|
||||||
RG.add_fingerprint(user)
|
RG.add_fingerprint(user)
|
||||||
RG.add_to_stacks(user)
|
RG.add_to_stacks(user)
|
||||||
V.use(1)
|
V.use(1)
|
||||||
@@ -342,17 +342,17 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reinforced plasma glass sheets
|
* Reinforced phoron glass sheets
|
||||||
*/
|
*/
|
||||||
/obj/item/stack/sheet/glass/plasmarglass
|
/obj/item/stack/sheet/glass/phoronrglass
|
||||||
name = "reinforced plasma glass"
|
name = "reinforced phoron glass"
|
||||||
desc = "Plasma glass which seems to have rods or something stuck in them."
|
desc = "Phoron glass which seems to have rods or something stuck in them."
|
||||||
singular_name = "reinforced plasma glass sheet"
|
singular_name = "reinforced phoron glass sheet"
|
||||||
icon_state = "sheet-plasmarglass"
|
icon_state = "sheet-phoronrglass"
|
||||||
g_amt = 7500
|
g_amt = 7500
|
||||||
m_amt = 1875
|
m_amt = 1875
|
||||||
origin_tech = "materials=4;plasma=2"
|
origin_tech = "materials=4;phoron=2"
|
||||||
created_window = /obj/structure/window/plasmareinforced
|
created_window = /obj/structure/window/phoronreinforced
|
||||||
|
|
||||||
/obj/item/stack/sheet/glass/plasmarglass/attack_self(mob/user as mob)
|
/obj/item/stack/sheet/glass/phoronrglass/attack_self(mob/user as mob)
|
||||||
construct_window(user)
|
construct_window(user)
|
||||||
@@ -4,7 +4,7 @@ Mineral Sheets
|
|||||||
- Sandstone
|
- Sandstone
|
||||||
- Diamond
|
- Diamond
|
||||||
- Uranium
|
- Uranium
|
||||||
- Plasma
|
- Phoron
|
||||||
- Gold
|
- Gold
|
||||||
- Silver
|
- Silver
|
||||||
- Clown
|
- Clown
|
||||||
@@ -90,26 +90,26 @@ var/global/list/datum/stack_recipe/uranium_recipes = list ( \
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Plasma
|
* Phoron
|
||||||
*/
|
*/
|
||||||
/obj/item/stack/sheet/mineral/plasma
|
/obj/item/stack/sheet/mineral/phoron
|
||||||
name = "solid plasma"
|
name = "solid phoron"
|
||||||
icon_state = "sheet-plasma"
|
icon_state = "sheet-phoron"
|
||||||
force = 5.0
|
force = 5.0
|
||||||
throwforce = 5
|
throwforce = 5
|
||||||
w_class = 3.0
|
w_class = 3.0
|
||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = "plasmatech=2;materials=2"
|
origin_tech = "phorontech=2;materials=2"
|
||||||
perunit = 2000
|
perunit = 2000
|
||||||
sheettype = "plasma"
|
sheettype = "phoron"
|
||||||
|
|
||||||
var/global/list/datum/stack_recipe/plasma_recipes = list ( \
|
var/global/list/datum/stack_recipe/phoron_recipes = list ( \
|
||||||
new/datum/stack_recipe("plasma door", /obj/structure/mineral_door/transparent/plasma, 10, one_per_turf = 1, on_floor = 1), \
|
new/datum/stack_recipe("phoron door", /obj/structure/mineral_door/transparent/phoron, 10, one_per_turf = 1, on_floor = 1), \
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/plasma/New(var/loc, var/amount=null)
|
/obj/item/stack/sheet/mineral/phoron/New(var/loc, var/amount=null)
|
||||||
recipes = plasma_recipes
|
recipes = phoron_recipes
|
||||||
pixel_x = rand(0,4)-4
|
pixel_x = rand(0,4)-4
|
||||||
pixel_y = rand(0,4)-4
|
pixel_y = rand(0,4)-4
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
|
|||||||
/obj/item/stack/sheet/plasteel
|
/obj/item/stack/sheet/plasteel
|
||||||
name = "plasteel"
|
name = "plasteel"
|
||||||
singular_name = "plasteel sheet"
|
singular_name = "plasteel sheet"
|
||||||
desc = "This sheet is an alloy of iron and plasma."
|
desc = "This sheet is an alloy of iron and phoron."
|
||||||
icon_state = "sheet-plasteel"
|
icon_state = "sheet-plasteel"
|
||||||
item_state = "sheet-metal"
|
item_state = "sheet-metal"
|
||||||
m_amt = 7500
|
m_amt = 7500
|
||||||
|
|||||||
@@ -136,9 +136,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
if(!src.lit)
|
if(!src.lit)
|
||||||
src.lit = 1
|
src.lit = 1
|
||||||
damtype = "fire"
|
damtype = "fire"
|
||||||
if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
|
if(reagents.get_reagent_amount("phoron")) // the phoron explodes when exposed to fire
|
||||||
var/datum/effect/effect/system/reagents_explosion/e = new()
|
var/datum/effect/effect/system/reagents_explosion/e = new()
|
||||||
e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
|
e.set_up(round(reagents.get_reagent_amount("phoron") / 2.5, 1), get_turf(src), 0, 0)
|
||||||
e.start()
|
e.start()
|
||||||
del(src)
|
del(src)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
throw_range = 5
|
throw_range = 5
|
||||||
w_class = 3.0
|
w_class = 3.0
|
||||||
m_amt = 500
|
m_amt = 500
|
||||||
origin_tech = "combat=1;plasmatech=1"
|
origin_tech = "combat=1;phorontech=1"
|
||||||
var/status = 0
|
var/status = 0
|
||||||
var/throw_amount = 100
|
var/throw_amount = 100
|
||||||
var/lit = 0 //on or off
|
var/lit = 0 //on or off
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
var/turf/previousturf = null
|
var/turf/previousturf = null
|
||||||
var/obj/item/weapon/weldingtool/weldtool = null
|
var/obj/item/weapon/weldingtool/weldtool = null
|
||||||
var/obj/item/device/assembly/igniter/igniter = null
|
var/obj/item/device/assembly/igniter/igniter = null
|
||||||
var/obj/item/weapon/tank/plasma/ptank = null
|
var/obj/item/weapon/tank/phoron/ptank = null
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/flamethrower/Del()
|
/obj/item/weapon/flamethrower/Del()
|
||||||
@@ -102,9 +102,9 @@
|
|||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
if(istype(W,/obj/item/weapon/tank/plasma))
|
if(istype(W,/obj/item/weapon/tank/phoron))
|
||||||
if(ptank)
|
if(ptank)
|
||||||
user << "<span class='notice'>There appears to already be a plasma tank loaded in [src]!</span>"
|
user << "<span class='notice'>There appears to already be a phoron tank loaded in [src]!</span>"
|
||||||
return
|
return
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
ptank = W
|
ptank = W
|
||||||
@@ -123,15 +123,15 @@
|
|||||||
var/o2_concentration = ptank.air_contents.oxygen/total_moles
|
var/o2_concentration = ptank.air_contents.oxygen/total_moles
|
||||||
var/n2_concentration = ptank.air_contents.nitrogen/total_moles
|
var/n2_concentration = ptank.air_contents.nitrogen/total_moles
|
||||||
var/co2_concentration = ptank.air_contents.carbon_dioxide/total_moles
|
var/co2_concentration = ptank.air_contents.carbon_dioxide/total_moles
|
||||||
var/plasma_concentration = ptank.air_contents.toxins/total_moles
|
var/phoron_concentration = ptank.air_contents.phoron/total_moles
|
||||||
|
|
||||||
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
|
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+phoron_concentration)
|
||||||
|
|
||||||
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
user << "\blue Pressure: [round(pressure,0.1)] kPa"
|
||||||
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
user << "\blue Nitrogen: [round(n2_concentration*100)]%"
|
||||||
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
user << "\blue Oxygen: [round(o2_concentration*100)]%"
|
||||||
user << "\blue CO2: [round(co2_concentration*100)]%"
|
user << "\blue CO2: [round(co2_concentration*100)]%"
|
||||||
user << "\blue Plasma: [round(plasma_concentration*100)]%"
|
user << "\blue Phoron: [round(phoron_concentration*100)]%"
|
||||||
if(unknown_concentration>0.01)
|
if(unknown_concentration>0.01)
|
||||||
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
user << "\red Unknown: [round(unknown_concentration*100)]%"
|
||||||
user << "\blue Temperature: [round(ptank.air_contents.temperature-T0C)]°C"
|
user << "\blue Temperature: [round(ptank.air_contents.temperature-T0C)]°C"
|
||||||
@@ -146,9 +146,9 @@
|
|||||||
if(user.stat || user.restrained() || user.lying) return
|
if(user.stat || user.restrained() || user.lying) return
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
if(!ptank)
|
if(!ptank)
|
||||||
user << "<span class='notice'>Attach a plasma tank first!</span>"
|
user << "<span class='notice'>Attach a phoron tank first!</span>"
|
||||||
return
|
return
|
||||||
var/dat = text("<TT><B>Flamethrower (<A HREF='?src=\ref[src];light=1'>[lit ? "<font color='red'>Lit</font>" : "Unlit"]</a>)</B><BR>\n Tank Pressure: [ptank.air_contents.return_pressure()]<BR>\nAmount to throw: <A HREF='?src=\ref[src];amount=-100'>-</A> <A HREF='?src=\ref[src];amount=-10'>-</A> <A HREF='?src=\ref[src];amount=-1'>-</A> [throw_amount] <A HREF='?src=\ref[src];amount=1'>+</A> <A HREF='?src=\ref[src];amount=10'>+</A> <A HREF='?src=\ref[src];amount=100'>+</A><BR>\n<A HREF='?src=\ref[src];remove=1'>Remove plasmatank</A> - <A HREF='?src=\ref[src];close=1'>Close</A></TT>")
|
var/dat = text("<TT><B>Flamethrower (<A HREF='?src=\ref[src];light=1'>[lit ? "<font color='red'>Lit</font>" : "Unlit"]</a>)</B><BR>\n Tank Pressure: [ptank.air_contents.return_pressure()]<BR>\nAmount to throw: <A HREF='?src=\ref[src];amount=-100'>-</A> <A HREF='?src=\ref[src];amount=-10'>-</A> <A HREF='?src=\ref[src];amount=-1'>-</A> [throw_amount] <A HREF='?src=\ref[src];amount=1'>+</A> <A HREF='?src=\ref[src];amount=10'>+</A> <A HREF='?src=\ref[src];amount=100'>+</A><BR>\n<A HREF='?src=\ref[src];remove=1'>Remove phorontank</A> - <A HREF='?src=\ref[src];close=1'>Close</A></TT>")
|
||||||
user << browse(dat, "window=flamethrower;size=600x300")
|
user << browse(dat, "window=flamethrower;size=600x300")
|
||||||
onclose(user, "flamethrower")
|
onclose(user, "flamethrower")
|
||||||
return
|
return
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
if(href_list["light"])
|
if(href_list["light"])
|
||||||
if(!ptank) return
|
if(!ptank) return
|
||||||
if(ptank.air_contents.toxins < 1) return
|
if(ptank.air_contents.phoron < 1) return
|
||||||
if(!status) return
|
if(!status) return
|
||||||
lit = !lit
|
lit = !lit
|
||||||
if(lit)
|
if(lit)
|
||||||
@@ -212,8 +212,8 @@
|
|||||||
//Transfer 5% of current tank air contents to turf
|
//Transfer 5% of current tank air contents to turf
|
||||||
var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(0.02*(throw_amount/100))
|
var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(0.02*(throw_amount/100))
|
||||||
//air_transfer.toxins = air_transfer.toxins * 5 // This is me not comprehending the air system. I realize this is retarded and I could probably make it work without fucking it up like this, but there you have it. -- TLE
|
//air_transfer.toxins = air_transfer.toxins * 5 // This is me not comprehending the air system. I realize this is retarded and I could probably make it work without fucking it up like this, but there you have it. -- TLE
|
||||||
new/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(target,air_transfer.toxins,get_dir(loc,target))
|
new/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(target,air_transfer.phoron,get_dir(loc,target))
|
||||||
air_transfer.toxins = 0
|
air_transfer.phoron = 0
|
||||||
target.assume_air(air_transfer)
|
target.assume_air(air_transfer)
|
||||||
//Burn it based on transfered gas
|
//Burn it based on transfered gas
|
||||||
//target.hotspot_expose(part4.air_contents.temperature*2,300)
|
//target.hotspot_expose(part4.air_contents.temperature*2,300)
|
||||||
|
|||||||
@@ -213,7 +213,7 @@
|
|||||||
|
|
||||||
B1.reagents.add_reagent("aluminum", 15)
|
B1.reagents.add_reagent("aluminum", 15)
|
||||||
B1.reagents.add_reagent("fuel",20)
|
B1.reagents.add_reagent("fuel",20)
|
||||||
B2.reagents.add_reagent("plasma", 15)
|
B2.reagents.add_reagent("phoron", 15)
|
||||||
B2.reagents.add_reagent("sacid", 15)
|
B2.reagents.add_reagent("sacid", 15)
|
||||||
B1.reagents.add_reagent("fuel",20)
|
B1.reagents.add_reagent("fuel",20)
|
||||||
|
|
||||||
|
|||||||
@@ -512,7 +512,7 @@
|
|||||||
This machine, along with the Protolathe, is used to actually produce new devices. The Circuit Imprinter takes glass and various chemicals (depends on the design) to produce new circuit boards to build new machines or computers. It can even be used to print AI modules.
|
This machine, along with the Protolathe, is used to actually produce new devices. The Circuit Imprinter takes glass and various chemicals (depends on the design) to produce new circuit boards to build new machines or computers. It can even be used to print AI modules.
|
||||||
|
|
||||||
<h2>Protolathe</h2>
|
<h2>Protolathe</h2>
|
||||||
This machine is an advanced form of the Autolathe that produce non-circuit designs. Unlike the Autolathe, it can use processed metal, glass, solid plasma, silver, gold, and diamonds along with a variety of chemicals to produce devices.
|
This machine is an advanced form of the Autolathe that produce non-circuit designs. Unlike the Autolathe, it can use processed metal, glass, solid phoron, silver, gold, and diamonds along with a variety of chemicals to produce devices.
|
||||||
The downside is that, again, not all devices you make are 100% reliable when you first discover them.
|
The downside is that, again, not all devices you make are 100% reliable when you first discover them.
|
||||||
|
|
||||||
<h2>Reliability and You</h2>
|
<h2>Reliability and You</h2>
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/cell/slime
|
/obj/item/weapon/cell/slime
|
||||||
name = "charged slime core"
|
name = "charged slime core"
|
||||||
desc = "A yellow slime core infused with plasma, it crackles with power."
|
desc = "A yellow slime core infused with phoron, it crackles with power."
|
||||||
origin_tech = "powerstorage=2;biotech=4"
|
origin_tech = "powerstorage=2;biotech=4"
|
||||||
icon = 'icons/mob/slimes.dmi' //'icons/obj/harvest.dmi'
|
icon = 'icons/mob/slimes.dmi' //'icons/obj/harvest.dmi'
|
||||||
icon_state = "yellow slime extract" //"potato_battery"
|
icon_state = "yellow slime extract" //"potato_battery"
|
||||||
|
|||||||
@@ -15,9 +15,22 @@
|
|||||||
max_combined_w_class = 21
|
max_combined_w_class = 21
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
playsound(src.loc, "rustle", 50, 1, -5)
|
if (src.use_sound)
|
||||||
|
playsound(src.loc, src.use_sound, 50, 1, -5)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/backpack/equipped(var/mob/user, var/slot)
|
||||||
|
if (slot == slot_back && src.use_sound)
|
||||||
|
playsound(src.loc, src.use_sound, 50, 1, -5)
|
||||||
|
..(user, slot)
|
||||||
|
|
||||||
|
/*
|
||||||
|
/obj/item/weapon/storage/backpack/dropped(mob/user as mob)
|
||||||
|
if (loc == user && src.use_sound)
|
||||||
|
playsound(src.loc, src.use_sound, 50, 1, -5)
|
||||||
|
..(user)
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Backpack Types
|
* Backpack Types
|
||||||
*/
|
*/
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user