mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Part 2 of the WIP chemistry stuff
Map update with secure doors!
This commit is contained in:
@@ -144,10 +144,7 @@
|
|||||||
#define FILE_DIR "code/unused/spacecraft"
|
#define FILE_DIR "code/unused/spacecraft"
|
||||||
#define FILE_DIR "code/WorkInProgress"
|
#define FILE_DIR "code/WorkInProgress"
|
||||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
|
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
|
||||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jumper"
|
|
||||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
|
|
||||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Tajara"
|
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Tajara"
|
||||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/tajara_sprites"
|
|
||||||
#define FILE_DIR "code/WorkInProgress/mapload"
|
#define FILE_DIR "code/WorkInProgress/mapload"
|
||||||
#define FILE_DIR "code/WorkInProgress/Mini"
|
#define FILE_DIR "code/WorkInProgress/Mini"
|
||||||
#define FILE_DIR "code/WorkInProgress/organs"
|
#define FILE_DIR "code/WorkInProgress/organs"
|
||||||
@@ -179,7 +176,6 @@
|
|||||||
#define FILE_DIR "icons/vending_icons"
|
#define FILE_DIR "icons/vending_icons"
|
||||||
#define FILE_DIR "interface"
|
#define FILE_DIR "interface"
|
||||||
#define FILE_DIR "maps"
|
#define FILE_DIR "maps"
|
||||||
#define FILE_DIR "maps/backup"
|
|
||||||
#define FILE_DIR "sound"
|
#define FILE_DIR "sound"
|
||||||
#define FILE_DIR "sound/ambience"
|
#define FILE_DIR "sound/ambience"
|
||||||
#define FILE_DIR "sound/announcer"
|
#define FILE_DIR "sound/announcer"
|
||||||
@@ -615,7 +611,6 @@
|
|||||||
#include "code\game\objects\alien\resin.dm"
|
#include "code\game\objects\alien\resin.dm"
|
||||||
#include "code\game\objects\alien\weeds.dm"
|
#include "code\game\objects\alien\weeds.dm"
|
||||||
#include "code\game\objects\closets\bombsuit.dm"
|
#include "code\game\objects\closets\bombsuit.dm"
|
||||||
#include "code\game\objects\closets\detective.dm"
|
|
||||||
#include "code\game\objects\closets\emergency.dm"
|
#include "code\game\objects\closets\emergency.dm"
|
||||||
#include "code\game\objects\closets\firecloset.dm"
|
#include "code\game\objects\closets\firecloset.dm"
|
||||||
#include "code\game\objects\closets\gimmick.dm"
|
#include "code\game\objects\closets\gimmick.dm"
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
/obj/structure/closet/detective
|
|
||||||
@@ -390,6 +390,7 @@ steam.start() -- spawns the effect
|
|||||||
anchored = 0.0
|
anchored = 0.0
|
||||||
mouse_opacity = 0
|
mouse_opacity = 0
|
||||||
var/amount = 6.0
|
var/amount = 6.0
|
||||||
|
var/divisor = 1
|
||||||
|
|
||||||
icon = 'chemsmoke.dmi'
|
icon = 'chemsmoke.dmi'
|
||||||
pixel_x = -32
|
pixel_x = -32
|
||||||
@@ -407,14 +408,22 @@ steam.start() -- spawns the effect
|
|||||||
|
|
||||||
/obj/effect/effect/chem_smoke/Move()
|
/obj/effect/effect/chem_smoke/Move()
|
||||||
..()
|
..()
|
||||||
|
var/obj/R = new /obj()
|
||||||
|
R.reagents = new/datum/reagents(500)
|
||||||
|
reagents.trans_to(R, reagents.total_volume/divisor)
|
||||||
for(var/atom/A in view(1, src))
|
for(var/atom/A in view(1, src))
|
||||||
reagents.reaction(A)
|
R.reagents.reaction(A)
|
||||||
|
del(R)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/effect/effect/chem_smoke/HasEntered(mob/living/carbon/M as mob )
|
/obj/effect/effect/chem_smoke/HasEntered(mob/living/carbon/M as mob )
|
||||||
..()
|
..()
|
||||||
reagents.reaction(M)
|
var/obj/R = new /obj()
|
||||||
|
R.reagents = new/datum/reagents(500)
|
||||||
|
reagents.trans_to(R, reagents.total_volume/divisor)
|
||||||
|
R.reagents.reaction(M)
|
||||||
|
del(R)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -475,7 +484,9 @@ steam.start() -- spawns the effect
|
|||||||
spawn(0)
|
spawn(0)
|
||||||
if(holder)
|
if(holder)
|
||||||
src.location = get_turf(holder)
|
src.location = get_turf(holder)
|
||||||
|
var/iterator = pick(0,1,1,1,2,2,2,3)
|
||||||
var/obj/effect/effect/chem_smoke/smoke = new /obj/effect/effect/chem_smoke(src.location)
|
var/obj/effect/effect/chem_smoke/smoke = new /obj/effect/effect/chem_smoke(src.location)
|
||||||
|
smoke.divisor = iterator + 1
|
||||||
src.total_smoke++
|
src.total_smoke++
|
||||||
var/direction = src.direction
|
var/direction = src.direction
|
||||||
if(!direction)
|
if(!direction)
|
||||||
@@ -485,7 +496,7 @@ steam.start() -- spawns the effect
|
|||||||
direction = pick(alldirs)
|
direction = pick(alldirs)
|
||||||
|
|
||||||
if(chemholder.reagents.total_volume != 1) // can't split 1 very well
|
if(chemholder.reagents.total_volume != 1) // can't split 1 very well
|
||||||
chemholder.reagents.copy_to(smoke, chemholder.reagents.total_volume / number) // copy reagents to each smoke, divide evenly
|
chemholder.reagents.copy_to(smoke, chemholder.reagents.total_volume*2 / number) // copy reagents to each smoke, divide evenly
|
||||||
|
|
||||||
if(finalcolor)
|
if(finalcolor)
|
||||||
smoke.icon += finalcolor // give the smoke color, if it has any to begin with
|
smoke.icon += finalcolor // give the smoke color, if it has any to begin with
|
||||||
@@ -494,7 +505,7 @@ steam.start() -- spawns the effect
|
|||||||
smoke.icon = '96x96.dmi'
|
smoke.icon = '96x96.dmi'
|
||||||
smoke.icon_state = "smoke"
|
smoke.icon_state = "smoke"
|
||||||
|
|
||||||
for(i=0, i<pick(0,1,1,1,2,2,2,3), i++)
|
for(i=0, i<iterator, i++)
|
||||||
sleep(10)
|
sleep(10)
|
||||||
step(smoke,direction)
|
step(smoke,direction)
|
||||||
spawn(150+rand(10,30))
|
spawn(150+rand(10,30))
|
||||||
|
|||||||
@@ -140,7 +140,6 @@
|
|||||||
|
|
||||||
|
|
||||||
process()
|
process()
|
||||||
processing_objects.Remove(src)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
w_amt = 100
|
w_amt = 100
|
||||||
origin_tech = "magnets=2"
|
origin_tech = "magnets=2"
|
||||||
|
|
||||||
secured = 0
|
secured = 1
|
||||||
small_icon_state_left = "infrared_left"
|
small_icon_state_left = "infrared_left"
|
||||||
small_icon_state_right = "infrared_right"
|
small_icon_state_right = "infrared_right"
|
||||||
|
|
||||||
@@ -45,6 +45,9 @@
|
|||||||
if(scanning)
|
if(scanning)
|
||||||
src.overlays += text("infrared_old2")
|
src.overlays += text("infrared_old2")
|
||||||
src.small_icon_state_overlays += text("infrared_on")
|
src.small_icon_state_overlays += text("infrared_on")
|
||||||
|
if(master && istype(master, /obj/item/weapon/chem_grenade))
|
||||||
|
var/obj/item/weapon/chem_grenade/M = master
|
||||||
|
M.c_state(1)
|
||||||
|
|
||||||
if(holder)
|
if(holder)
|
||||||
holder.update_icon()
|
holder.update_icon()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
w_amt = 50
|
w_amt = 50
|
||||||
origin_tech = "magnets=1"
|
origin_tech = "magnets=1"
|
||||||
|
|
||||||
secured = 0
|
secured = 1
|
||||||
small_icon_state_left = "prox_left"
|
small_icon_state_left = "prox_left"
|
||||||
small_icon_state_right = "prox_right"
|
small_icon_state_right = "prox_right"
|
||||||
|
|
||||||
@@ -87,11 +87,18 @@
|
|||||||
if(timing)
|
if(timing)
|
||||||
overlays += text("prox_timing")
|
overlays += text("prox_timing")
|
||||||
small_icon_state_overlays += text("prox_timing")
|
small_icon_state_overlays += text("prox_timing")
|
||||||
|
if(master && istype(master, /obj/item/weapon/chem_grenade))
|
||||||
|
var/obj/item/weapon/chem_grenade/M = master
|
||||||
|
M.c_state(1)
|
||||||
if(scanning)
|
if(scanning)
|
||||||
overlays += text("prox_scanning")
|
overlays += text("prox_scanning")
|
||||||
small_icon_state_overlays += text("prox_scanning")
|
small_icon_state_overlays += text("prox_scanning")
|
||||||
|
if(master && istype(master, /obj/item/weapon/chem_grenade))
|
||||||
|
var/obj/item/weapon/chem_grenade/M = master
|
||||||
|
M.c_state(1)
|
||||||
if(holder)
|
if(holder)
|
||||||
holder.update_icon()
|
holder.update_icon()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -125,6 +125,8 @@
|
|||||||
A.pulse(src.airlock_wire)
|
A.pulse(src.airlock_wire)
|
||||||
else if(holder)
|
else if(holder)
|
||||||
holder.process_activation(src, 1, 0)
|
holder.process_activation(src, 1, 0)
|
||||||
|
else
|
||||||
|
..()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
w_amt = 10
|
w_amt = 10
|
||||||
origin_tech = "magnets=1"
|
origin_tech = "magnets=1"
|
||||||
|
|
||||||
secured = 0
|
secured = 1
|
||||||
small_icon_state_left = "timer_left"
|
small_icon_state_left = "timer_left"
|
||||||
small_icon_state_right = "timer_right"
|
small_icon_state_right = "timer_right"
|
||||||
|
|
||||||
@@ -64,6 +64,9 @@
|
|||||||
if(timing)
|
if(timing)
|
||||||
overlays += text("timer_timing")
|
overlays += text("timer_timing")
|
||||||
small_icon_state_overlays += text("timer_timing")
|
small_icon_state_overlays += text("timer_timing")
|
||||||
|
if(master && istype(master, /obj/item/weapon/chem_grenade))
|
||||||
|
var/obj/item/weapon/chem_grenade/M = master
|
||||||
|
M.c_state(1)
|
||||||
if(holder)
|
if(holder)
|
||||||
holder.update_icon()
|
holder.update_icon()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -512,6 +512,21 @@ datum
|
|||||||
description = "A colorless, odorless gas."
|
description = "A colorless, odorless gas."
|
||||||
reagent_state = GAS
|
reagent_state = GAS
|
||||||
color = "#808080" // rgb: 128, 128, 128
|
color = "#808080" // rgb: 128, 128, 128
|
||||||
|
reaction_obj(var/obj/O, var/volume)
|
||||||
|
if((!O) || (!volume)) return 0
|
||||||
|
src = null
|
||||||
|
var/turf/the_turf = get_turf(O)
|
||||||
|
var/datum/gas_mixture/napalm = new
|
||||||
|
napalm.oxygen = volume*10
|
||||||
|
napalm.temperature = T0C
|
||||||
|
the_turf.assume_air(napalm)
|
||||||
|
reaction_turf(var/turf/T, var/volume)
|
||||||
|
src = null
|
||||||
|
var/datum/gas_mixture/napalm = new
|
||||||
|
napalm.oxygen = volume*10
|
||||||
|
napalm.temperature = T0C
|
||||||
|
T.assume_air(napalm)
|
||||||
|
return
|
||||||
|
|
||||||
copper
|
copper
|
||||||
name = "Copper"
|
name = "Copper"
|
||||||
@@ -974,13 +989,13 @@ datum
|
|||||||
if(!the_turf)
|
if(!the_turf)
|
||||||
return //No sense trying to start a fire if you don't have a turf to set on fire. --NEO
|
return //No sense trying to start a fire if you don't have a turf to set on fire. --NEO
|
||||||
var/datum/gas_mixture/napalm = new
|
var/datum/gas_mixture/napalm = new
|
||||||
napalm.toxins = volume
|
napalm.toxins = volume*10
|
||||||
napalm.temperature = T0C
|
napalm.temperature = T0C
|
||||||
the_turf.assume_air(napalm)
|
the_turf.assume_air(napalm)
|
||||||
reaction_turf(var/turf/T, var/volume)
|
reaction_turf(var/turf/T, var/volume)
|
||||||
src = null
|
src = null
|
||||||
var/datum/gas_mixture/napalm = new
|
var/datum/gas_mixture/napalm = new
|
||||||
napalm.toxins = volume
|
napalm.toxins = volume*10
|
||||||
napalm.temperature = T0C
|
napalm.temperature = T0C
|
||||||
T.assume_air(napalm)
|
T.assume_air(napalm)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ datum
|
|||||||
|
|
||||||
var/datum/gas_mixture/napalm = new
|
var/datum/gas_mixture/napalm = new
|
||||||
|
|
||||||
napalm.toxins = created_volume
|
napalm.toxins = created_volume*10
|
||||||
napalm.temperature = 400+T0C
|
napalm.temperature = 400+T0C
|
||||||
|
|
||||||
target_tile.assume_air(napalm)
|
target_tile.assume_air(napalm)
|
||||||
|
|||||||
@@ -257,36 +257,42 @@
|
|||||||
D.sense()
|
D.sense()
|
||||||
|
|
||||||
|
|
||||||
proc/explode()
|
proc
|
||||||
if(exploding) return
|
explode()
|
||||||
exploding = 1
|
if(exploding) return
|
||||||
|
exploding = 1
|
||||||
|
|
||||||
if(reliability)
|
if(reliability)
|
||||||
playsound(src.loc, 'bamf.ogg', 50, 1)
|
playsound(src.loc, 'bamf.ogg', 50, 1)
|
||||||
beaker_two.reagents.maximum_volume += beaker_one.reagents.maximum_volume // make sure everything can mix
|
beaker_two.reagents.maximum_volume += beaker_one.reagents.maximum_volume // make sure everything can mix
|
||||||
beaker_one.reagents.update_total()
|
beaker_one.reagents.update_total()
|
||||||
beaker_one.reagents.trans_to(beaker_two, beaker_one.reagents.total_volume)
|
beaker_one.reagents.trans_to(beaker_two, beaker_one.reagents.total_volume)
|
||||||
if(beaker_one.reagents.total_volume) //The possible reactions didnt use up all reagents.
|
if(beaker_one.reagents.total_volume) //The possible reactions didnt use up all reagents.
|
||||||
var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread()
|
var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread()
|
||||||
steam.set_up(10, 0, get_turf(src))
|
steam.set_up(10, 0, get_turf(src))
|
||||||
steam.attach(src)
|
steam.attach(src)
|
||||||
steam.start()
|
steam.start()
|
||||||
|
|
||||||
for(var/atom/A in view(affected_area, src.loc))
|
for(var/atom/A in view(affected_area, src.loc))
|
||||||
if( A == src ) continue
|
if( A == src ) continue
|
||||||
src.reagents.reaction(A, 1, 10)
|
src.reagents.reaction(A, 1, 10)
|
||||||
|
|
||||||
|
|
||||||
invisibility = 100 //Why am i doing this?
|
invisibility = 100 //Why am i doing this?
|
||||||
spawn(50) //To make sure all reagents can work
|
spawn(50) //To make sure all reagents can work
|
||||||
del(src) //correctly before deleting the grenade.
|
del(src) //correctly before deleting the grenade.
|
||||||
else
|
else
|
||||||
icon_state = initial(icon_state) + "_locked"
|
icon_state = initial(icon_state) + "_locked"
|
||||||
crit_fail = 1
|
crit_fail = 1
|
||||||
if(beaker_one)
|
if(beaker_one)
|
||||||
beaker_one.loc = get_turf(src.loc)
|
beaker_one.loc = get_turf(src.loc)
|
||||||
if(beaker_two)
|
if(beaker_two)
|
||||||
beaker_two.loc = get_turf(src.loc)
|
beaker_two.loc = get_turf(src.loc)
|
||||||
|
|
||||||
|
c_state(var/i = 0)
|
||||||
|
if(i)
|
||||||
|
icon_state = initial(icon_state) + "_armed"
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
large
|
large
|
||||||
|
|||||||
15498
maps/tgstation.2.0.8.dmm
15498
maps/tgstation.2.0.8.dmm
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user