Bleeding edgy refresh (#303)

* not code stuff

* other things

* global vars, defines, helpers

* onclick hud stuff, orphans, world.dm

* controllers and datums

* game folder

* everything not client/mobs in modules

* client folder

* stage 1 mob stuff

* simple animal things

* silicons

* carbon things

* ayylmaos and monkeys

* hyoomahn

* icons n shit

* sprite fixes

* compile fixes

* some fixes I cherrypicked.

* qdel fixes

* forgot brain refractors
This commit is contained in:
Poojawa
2017-03-21 11:44:10 -05:00
committed by GitHub
parent 099a6c8764
commit f67e9f6d87
1476 changed files with 344416 additions and 40694 deletions
+9
View File
@@ -0,0 +1,9 @@
//used to optimize map expansion
/turf/basic/New()
/turf/basic/ChangeTurf(var/T)
new T(src)
var/static/warned
if(!warned)
warned = TRUE
CRASH("Basic ChangeTurf")
+4 -6
View File
@@ -29,15 +29,13 @@
/turf/closed/indestructible/splashscreen
name = "Space Station 13"
icon = 'icons/misc/fullscreen.dmi'
icon_state = "title1"
icon = 'config/title_screens/images/blank.png'
icon_state = ""
layer = FLY_LAYER
var/titlescreen = TITLESCREEN
/turf/closed/indestructible/splashscreen/Initialize()
/turf/closed/indestructible/splashscreen/New()
SStitle.title_screen = src
..()
if(titlescreen)
icon_state = pick("title1","title2","title3","title4","title5")
/turf/closed/indestructible/riveted
icon = 'icons/turf/walls/riveted.dmi'
+4 -4
View File
@@ -111,7 +111,7 @@
/turf/open/freon_gas_act()
for(var/obj/I in contents)
if(!I.is_frozen) //let it go
if(!HAS_SECONDARY_FLAG(I, FROZEN)) //let it go
I.make_frozen_visual()
for(var/mob/living/L in contents)
if(L.bodytemperature >= 10)
@@ -153,8 +153,8 @@
if(C.m_intent == MOVE_INTENT_WALK && (lube&NO_SLIP_WHEN_WALKING))
return 0
if(!(lube&SLIDE_ICE))
C << "<span class='notice'>You slipped[ O ? " on the [O.name]" : ""]!</span>"
C.attack_log += "\[[time_stamp()]\] <font color='orange'>Slipped[O ? " on the [O.name]" : ""][(lube&SLIDE)? " (LUBE)" : ""]!</font>"
to_chat(C, "<span class='notice'>You slipped[ O ? " on the [O.name]" : ""]!</span>")
C.log_message("<font color='orange'>Slipped[O ? " on the [O.name]" : ""][(lube&SLIDE)? " (LUBE)" : ""]!</font>", INDIVIDUAL_ATTACK_LOG)
if(!(lube&SLIDE_ICE))
playsound(C.loc, 'sound/misc/slip.ogg', 50, 1, -3)
@@ -225,7 +225,7 @@
wet_time = MAXIMUM_WET_TIME
if(wet == TURF_WET_ICE && air.temperature > T0C)
for(var/obj/O in contents)
if(O.is_frozen)
if(HAS_SECONDARY_FLAG(O, FROZEN))
O.make_unfrozen()
MakeDry(TURF_WET_ICE)
MakeSlippery(TURF_WET_WATER)
+31 -2
View File
@@ -5,9 +5,10 @@
name = "chasm"
desc = "Watch your step."
baseturf = /turf/open/chasm
smooth = SMOOTH_TRUE | SMOOTH_BORDER
smooth = SMOOTH_TRUE | SMOOTH_BORDER | SMOOTH_MORE
icon = 'icons/turf/floors/Chasms.dmi'
icon_state = "smooth"
canSmoothWith = list(/turf/open/floor/fakepit, /turf/open/chasm)
var/drop_x = 1
var/drop_y = 1
var/drop_z = 1
@@ -20,6 +21,34 @@
if(!drop_stuff())
STOP_PROCESSING(SSobj, src)
/turf/open/chasm/attackby(obj/item/C, mob/user, params, area/area_restriction)
..()
if(istype(C, /obj/item/stack/rods))
var/obj/item/stack/rods/R = C
var/obj/structure/lattice/L = locate(/obj/structure/lattice, src)
if(!L)
if(R.use(1))
to_chat(user, "<span class='notice'>You construct a lattice.</span>")
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
ReplaceWithLattice()
else
to_chat(user, "<span class='warning'>You need one rod to build a lattice.</span>")
return
if(istype(C, /obj/item/stack/tile/plasteel))
var/obj/structure/lattice/L = locate(/obj/structure/lattice, src)
if(L)
var/obj/item/stack/tile/plasteel/S = C
if(S.use(1))
qdel(L)
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
to_chat(user, "<span class='notice'>You build a floor.</span>")
ChangeTurf(/turf/open/floor/plating)
else
to_chat(user, "<span class='warning'>You need one floor tile to build a floor!</span>")
else
to_chat(user, "<span class='warning'>The plating is going to need some support! Place metal rods first.</span>")
/turf/open/chasm/proc/drop_stuff(AM)
. = 0
var/thing_to_check = src
@@ -112,4 +141,4 @@
qdel(AM)
/turf/open/chasm/straight_down/lava_land_surface/normal_air
initial_gas_mix = "o2=22;n2=82;TEMP=293.15"
initial_gas_mix = "o2=22;n2=82;TEMP=293.15"
+80 -13
View File
@@ -137,22 +137,38 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
if(..())
return 1
if(intact && istype(C, /obj/item/weapon/crowbar))
if(broken || burnt)
broken = 0
burnt = 0
user << "<span class='danger'>You remove the broken plating.</span>"
else
if(istype(src, /turf/open/floor/wood))
user << "<span class='danger'>You forcefully pry off the planks, destroying them in the process.</span>"
else
user << "<span class='danger'>You remove the floor tile.</span>"
if(floor_tile)
new floor_tile(src)
make_plating()
playsound(src, C.usesound, 80, 1)
pry_tile(C, user)
return 1
if(intact && istype(C, /obj/item/stack/tile))
var/obj/item/stack/tile/T = C
if(T.turf_type == type)
return
var/obj/item/weapon/crowbar/CB = user.is_holding_item_of_type(/obj/item/weapon/crowbar)
if(!CB)
return
var/turf/open/floor/plating/P = pry_tile(CB, user, TRUE)
if(!istype(P))
return
P.attackby(T, user, params)
return 0
/turf/open/floor/proc/pry_tile(obj/item/C, mob/user, silent = FALSE)
playsound(src, C.usesound, 80, 1)
return remove_tile(user, silent)
/turf/open/floor/proc/remove_tile(mob/user, silent = FALSE, make_tile = TRUE)
if(broken || burnt)
broken = 0
burnt = 0
if(user && !silent)
to_chat(user, "<span class='danger'>You remove the broken plating.</span>")
else
if(user && !silent)
to_chat(user, "<span class='danger'>You remove the floor tile.</span>")
if(floor_tile && make_tile)
new floor_tile(src)
return make_plating()
/turf/open/floor/singularity_pull(S, current_size)
if(current_size == STAGE_THREE)
if(prob(30))
@@ -183,3 +199,54 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
/turf/open/floor/acid_melt()
ChangeTurf(baseturf)
/turf/open/floor/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd)
switch(the_rcd.mode)
if(RCD_FLOORWALL)
return list("mode" = RCD_FLOORWALL, "delay" = 20, "cost" = 16)
if(RCD_AIRLOCK)
return list("mode" = RCD_AIRLOCK, "delay" = 50, "cost" = 16)
if(RCD_DECONSTRUCT)
return list("mode" = RCD_DECONSTRUCT, "delay" = 50, "cost" = 33)
if(RCD_WINDOWGRILLE)
return list("mode" = RCD_WINDOWGRILLE, "delay" = 40, "cost" = 4)
return FALSE
/turf/open/floor/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode)
switch(passed_mode)
if(RCD_FLOORWALL)
to_chat(user, "<span class='notice'>You build a wall.</span>")
ChangeTurf(/turf/closed/wall)
return TRUE
if(RCD_AIRLOCK)
if(locate(/obj/machinery/door/airlock) in src)
return FALSE
to_chat(user, "<span class='notice'>You build an airlock.</span>")
var/obj/machinery/door/airlock/A = new the_rcd.airlock_type(src)
A.electronics = new/obj/item/weapon/electronics/airlock(src)
if(the_rcd.conf_access)
A.electronics.accesses = the_rcd.conf_access.Copy()
A.electronics.one_access = the_rcd.use_one_access
if(A.electronics.one_access)
A.req_one_access = A.electronics.accesses
else
A.req_access = A.electronics.accesses
A.autoclose = TRUE
return TRUE
if(RCD_DECONSTRUCT)
if(istype(src, baseturf))
return FALSE
to_chat(user, "<span class='notice'>You deconstruct [src].</span>")
ChangeTurf(baseturf)
return TRUE
if(RCD_WINDOWGRILLE)
if(locate(/obj/structure/grille) in src)
return FALSE
to_chat(user, "<span class='notice'>You construct the grille.</span>")
var/obj/structure/grille/G = new(src)
G.anchored = TRUE
return TRUE
return FALSE
+36 -12
View File
@@ -2,6 +2,8 @@
* Wood floor
* Grass floor
* Carpet floor
* Fake pits
* Fake space
*/
/turf/open/floor/wood
@@ -13,14 +15,31 @@
if(..())
return
if(istype(C, /obj/item/weapon/screwdriver))
if(broken || burnt)
return
user << "<span class='danger'>You unscrew the planks.</span>"
new floor_tile(src)
make_plating()
playsound(src, C.usesound, 80, 1)
pry_tile(C, user)
return
/turf/open/floor/wood/pry_tile(obj/item/C, mob/user, silent = FALSE)
var/is_screwdriver = istype(C, /obj/item/weapon/screwdriver)
playsound(src, C.usesound, 80, 1)
return remove_tile(user, silent, make_tile = is_screwdriver)
/turf/open/floor/wood/remove_tile(mob/user, silent = FALSE, make_tile = TRUE)
if(broken || burnt)
broken = 0
burnt = 0
if(user && !silent)
to_chat(user, "<span class='danger'>You remove the broken planks.</span>")
else
if(make_tile)
if(user && !silent)
to_chat(user, "<span class='danger'>You unscrew the planks.</span>")
if(floor_tile)
new floor_tile(src)
else
if(user && !silent)
to_chat(user, "<span class='danger'>You forcefully pry off the planks, destroying them in the process.</span>")
return make_plating()
/turf/open/floor/wood/cold
temperature = 255.37
@@ -79,10 +98,7 @@
..()
if(prob(15))
icon_state = "basalt[rand(0, 12)]"
switch(icon_state)
if("basalt1", "basalt2", "basalt3")
SetLuminosity(1, 1)
set_basalt_light(src)
/turf/open/floor/carpet
name = "carpet"
@@ -92,7 +108,7 @@
floor_tile = /obj/item/stack/tile/carpet
broken_states = list("damaged")
smooth = SMOOTH_TRUE
canSmoothWith = null
canSmoothWith = list(/turf/open/floor/carpet, /turf/open/chasm)
flags = NONE
/turf/open/floor/carpet/Initialize()
@@ -122,6 +138,14 @@
update_icon()
turf/open/floor/fakepit
desc = "A clever illusion designed to look like a bottomless pit."
smooth = SMOOTH_TRUE | SMOOTH_BORDER | SMOOTH_MORE
canSmoothWith = list(/turf/open/floor/fakepit, /turf/open/chasm)
icon = 'icons/turf/floors/Chasms.dmi'
icon_state = "smooth"
/turf/open/floor/fakespace
icon = 'icons/turf/space.dmi'
icon_state = "0"
@@ -131,4 +155,4 @@
/turf/open/floor/fakespace/Initialize()
..()
icon_state = "[rand(0,25)]"
icon_state = "[rand(0,25)]"
@@ -1,7 +1,7 @@
/turf/open/floor/light
name = "light floor"
desc = "A wired glass tile embedded into the floor."
luminosity = 5
light_range = 5
icon_state = "light_on"
floor_tile = /obj/item/stack/tile/light
broken_states = list("light_broken")
@@ -22,24 +22,24 @@
switch(state)
if(0)
icon_state = "light_on-[coloredlights[currentcolor]]"
SetLuminosity(1)
set_light(1)
if(1)
var/num = pick("1","2","3","4")
icon_state = "light_on_flicker[num]"
SetLuminosity(1)
set_light(1)
if(2)
icon_state = "light_on_broken"
SetLuminosity(1)
set_light(1)
if(3)
icon_state = "light_off"
SetLuminosity(0)
set_light(0)
else
SetLuminosity(0)
set_light(0)
icon_state = "light_off"
/turf/open/floor/light/ChangeTurf(turf/T)
SetLuminosity(0)
set_light(0)
return ..()
/turf/open/floor/light/attack_hand(mob/user)
@@ -67,9 +67,9 @@
qdel(C)
state = 0 //fixing it by bashing it with a light bulb, fun eh?
update_icon()
user << "<span class='notice'>You replace the light bulb.</span>"
to_chat(user, "<span class='notice'>You replace the light bulb.</span>")
else
user << "<span class='notice'>The lightbulb seems fine, no need to replace it.</span>"
to_chat(user, "<span class='notice'>The lightbulb seems fine, no need to replace it.</span>")
//Cycles through all of the colours
+72 -9
View File
@@ -8,24 +8,88 @@
icon_state = "rockvault"
floor_tile = /obj/item/stack/tile/plasteel
/turf/open/floor/bluegrid
//Circuit flooring, glows a little
/turf/open/floor/circuit
icon = 'icons/turf/floors.dmi'
icon_state = "bcircuit"
floor_tile = /obj/item/stack/tile/plasteel
var/icon_normal = "bcircuit"
light_color = LIGHT_COLOR_CYAN
floor_tile = /obj/item/stack/tile/circuit
var/on = TRUE
/turf/open/floor/bluegrid/Initialize()
/turf/open/floor/circuit/Initialize()
SSmapping.nuke_tiles += src
update_icon()
..()
/turf/open/floor/bluegrid/Destroy()
/turf/open/floor/circuit/Destroy()
SSmapping.nuke_tiles -= src
return ..()
/turf/open/floor/greengrid
icon = 'icons/turf/floors.dmi'
icon_state = "gcircuit"
floor_tile = /obj/item/stack/tile/plasteel
/turf/open/floor/circuit/update_icon()
if(on)
if(LAZYLEN(SSmapping.nuke_threats))
icon_state = "rcircuitanim"
light_color = LIGHT_COLOR_FLARE
else
icon_state = icon_normal
light_color = initial(light_color)
set_light(1.4, 0.5)
else
icon_state = "[icon_normal]off"
set_light(0)
/turf/open/floor/circuit/off
icon_state = "bcircuitoff"
on = FALSE
/turf/open/floor/circuit/airless
initial_gas_mix = "TEMP=2.7"
/turf/open/floor/circuit/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/circuit/green
icon_state = "gcircuit"
icon_normal = "gcircuit"
light_color = LIGHT_COLOR_GREEN
floor_tile = /obj/item/stack/tile/circuit/green
/turf/open/floor/circuit/green/off
icon_state = "gcircuitoff"
on = FALSE
/turf/open/floor/circuit/green/anim
icon_state = "gcircuitanim"
icon_normal = "gcircuitanim"
floor_tile = /obj/item/stack/tile/circuit/green/anim
/turf/open/floor/circuit/green/airless
initial_gas_mix = "TEMP=2.7"
/turf/open/floor/circuit/green/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/circuit/red
icon_state = "rcircuit"
icon_normal = "rcircuit"
light_color = LIGHT_COLOR_FLARE
floor_tile = /obj/item/stack/tile/circuit/red
/turf/open/floor/circuit/red/off
icon_state = "rcircuitoff"
on = FALSE
/turf/open/floor/circuit/red/anim
icon_state = "rcircuitanim"
icon_normal = "rcircuitanim"
floor_tile = /obj/item/stack/tile/circuit/red/anim
/turf/open/floor/circuit/red/airless
initial_gas_mix = "TEMP=2.7"
/turf/open/floor/circuit/red/telecomms
initial_gas_mix = "n2=100;TEMP=80"
/turf/open/floor/pod
name = "pod floor"
@@ -201,4 +265,3 @@
for(var/obj/structure/spacevine/SV in src)
if(!QDESTROYING(SV))//Helps avoid recursive loops
qdel(SV)
UpdateAffectingLights()
@@ -256,30 +256,6 @@
icon_state = "podhatchcorner"
/turf/open/floor/plasteel/circuit
icon_state = "bcircuit"
/turf/open/floor/plasteel/airless/circuit
icon_state = "bcircuit"
/turf/open/floor/plasteel/circuit/off
icon_state = "bcircuitoff"
/turf/open/floor/plasteel/circuit/gcircuit
icon_state = "gcircuit"
/turf/open/floor/plasteel/airless/circuit/gcircuit
icon_state = "gcircuit"
/turf/open/floor/plasteel/circuit/gcircuit/off
icon_state = "gcircuitoff"
/turf/open/floor/plasteel/circuit/gcircuit/animated
icon_state = "gcircuitanim"
/turf/open/floor/plasteel/circuit/rcircuit
icon_state = "rcircuit"
/turf/open/floor/plasteel/circuit/rcircuit/animated
icon_state = "rcircuitanim"
/turf/open/floor/plasteel/loadingarea
icon_state = "loadingarea"
/turf/open/floor/plasteel/loadingarea/dirty
+6 -6
View File
@@ -32,20 +32,20 @@
return
if(istype(C, /obj/item/stack/rods))
if(broken || burnt)
user << "<span class='warning'>Repair the plating first!</span>"
to_chat(user, "<span class='warning'>Repair the plating first!</span>")
return
var/obj/item/stack/rods/R = C
if (R.get_amount() < 2)
user << "<span class='warning'>You need two rods to make a reinforced floor!</span>"
to_chat(user, "<span class='warning'>You need two rods to make a reinforced floor!</span>")
return
else
user << "<span class='notice'>You begin reinforcing the floor...</span>"
to_chat(user, "<span class='notice'>You begin reinforcing the floor...</span>")
if(do_after(user, 30, target = src))
if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine))
ChangeTurf(/turf/open/floor/engine)
playsound(src, 'sound/items/Deconstruct.ogg', 80, 1)
R.use(2)
user << "<span class='notice'>You reinforce the floor.</span>"
to_chat(user, "<span class='notice'>You reinforce the floor.</span>")
return
else if(istype(C, /obj/item/stack/tile))
if(!broken && !burnt)
@@ -59,12 +59,12 @@
F.state = L.state
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
else
user << "<span class='warning'>This section is too damaged to support a tile! Use a welder to fix the damage.</span>"
to_chat(user, "<span class='warning'>This section is too damaged to support a tile! Use a welder to fix the damage.</span>")
else if(istype(C, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/welder = C
if( welder.isOn() && (broken || burnt) )
if(welder.remove_fuel(0,user))
user << "<span class='danger'>You fix some dents on the broken plating.</span>"
to_chat(user, "<span class='danger'>You fix some dents on the broken plating.</span>")
playsound(src, welder.usesound, 80, 1)
icon_state = icon_plating
burnt = 0
@@ -53,15 +53,15 @@
return
if (dug)
user << "<span class='warning'>This area has already been dug!</span>"
to_chat(user, "<span class='warning'>This area has already been dug!</span>")
return
user << "<span class='notice'>You start digging...</span>"
to_chat(user, "<span class='notice'>You start digging...</span>")
playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1)
if(do_after(user, digging_speed, target = src))
if(istype(src, /turf/open/floor/plating/asteroid))
user << "<span class='notice'>You dig a hole.</span>"
to_chat(user, "<span class='notice'>You dig a hole.</span>")
gets_dug()
feedback_add_details("pick_used_mining","[W.type]")
@@ -119,13 +119,18 @@
/turf/open/floor/plating/asteroid/basalt/Initialize()
..()
switch(icon_state)
if("basalt1", "basalt2", "basalt3") //5 and 9 are too dark to glow and make the amount of glows in tunnels too high
SetLuminosity(1, 1) //this is basically a 3.75% chance that a basalt floor glows
set_basalt_light(src)
/proc/set_basalt_light(turf/open/floor/B)
switch(B.icon_state)
if("basalt1", "basalt2", "basalt3")
B.set_light(2, 0.6, LIGHT_COLOR_LAVA) //more light
if("basalt5", "basalt9")
B.set_light(1.4, 0.6, LIGHT_COLOR_LAVA) //barely anything!
/turf/open/floor/plating/asteroid/basalt/gets_dug()
if(!dug)
SetLuminosity(0)
set_light(0)
..()
@@ -323,6 +328,3 @@
/turf/open/floor/plating/asteroid/snow/atmosphere
initial_gas_mix = "o2=22;n2=82;TEMP=180"
@@ -6,7 +6,10 @@
gender = PLURAL //"That's some lava."
baseturf = /turf/open/floor/plating/lava //lava all the way down
slowdown = 2
luminosity = 1
light_range = 2
light_power = 0.75
light_color = LIGHT_COLOR_LAVA
/turf/open/floor/plating/lava/ex_act()
return
@@ -24,7 +24,7 @@
if(!C || !user)
return
if(istype(C, /obj/item/weapon/wrench))
user << "<span class='notice'>You begin removing rods...</span>"
to_chat(user, "<span class='notice'>You begin removing rods...</span>")
playsound(src, C.usesound, 80, 1)
if(do_after(user, 30*C.toolspeed, target = src))
if(!istype(src, /turf/open/floor/engine))
+11 -11
View File
@@ -46,7 +46,7 @@
/turf/closed/mineral/attackby(obj/item/weapon/pickaxe/P, mob/user, params)
if (!user.IsAdvancedToolUser())
usr << "<span class='warning'>You don't have the dexterity to do this!</span>"
to_chat(usr, "<span class='warning'>You don't have the dexterity to do this!</span>")
return
if (istype(P, /obj/item/weapon/pickaxe))
@@ -57,12 +57,12 @@
if(last_act+P.digspeed > world.time)//prevents message spam
return
last_act = world.time
user << "<span class='notice'>You start picking...</span>"
to_chat(user, "<span class='notice'>You start picking...</span>")
P.playDigSound()
if(do_after(user,P.digspeed, target = src))
if(ismineralturf(src))
user << "<span class='notice'>You finish cutting into the rock.</span>"
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>")
gets_drilled(user)
feedback_add_details("pick_used_mining","[P.type]")
else
@@ -86,10 +86,10 @@
..()
/turf/closed/mineral/attack_alien(mob/living/carbon/alien/M)
M << "<span class='notice'>You start digging into the rock...</span>"
to_chat(M, "<span class='notice'>You start digging into the rock...</span>")
playsound(src, 'sound/effects/break_stone.ogg', 50, 1)
if(do_after(M,40, target = src))
M << "<span class='notice'>You tunnel into the rock.</span>"
to_chat(M, "<span class='notice'>You tunnel into the rock.</span>")
gets_drilled(M)
/turf/closed/mineral/Bumped(AM as mob|obj)
@@ -206,9 +206,9 @@
/turf/closed/mineral/random/labormineral
mineralSpawnChanceList = list(
/turf/closed/mineral/uranium = 2, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 3, /turf/closed/mineral/titanium = 4,
/turf/closed/mineral/silver = 6, /turf/closed/mineral/plasma = 15, /turf/closed/mineral/iron = 80,
/turf/closed/mineral/gibtonite = 3)
/turf/closed/mineral/uranium = 3, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 8, /turf/closed/mineral/titanium = 8,
/turf/closed/mineral/silver = 20, /turf/closed/mineral/plasma = 30, /turf/closed/mineral/iron = 95,
/turf/closed/mineral/gibtonite = 2)
icon_state = "rock_labor"
@@ -219,9 +219,9 @@
initial_gas_mix = "o2=14;n2=23;TEMP=300"
defer_change = 1
mineralSpawnChanceList = list(
/turf/closed/mineral/uranium/volcanic = 2, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 3, /turf/closed/mineral/titanium/volcanic = 4,
/turf/closed/mineral/silver/volcanic = 6, /turf/closed/mineral/plasma/volcanic = 15, /turf/closed/mineral/iron/volcanic = 80,
/turf/closed/mineral/gibtonite/volcanic = 3)
/turf/closed/mineral/uranium/volcanic = 3, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 8, /turf/closed/mineral/titanium/volcanic = 8,
/turf/closed/mineral/silver/volcanic = 20, /turf/closed/mineral/plasma/volcanic = 30, /turf/closed/mineral/bscrystal/volcanic = 1, /turf/closed/mineral/gibtonite/volcanic = 2,
/turf/closed/mineral/iron/volcanic = 95)
@@ -174,7 +174,7 @@
icon_state = "map-shuttle"
sheet_type = /obj/item/stack/sheet/mineral/titanium
smooth = SMOOTH_MORE|SMOOTH_DIAGONAL
canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock/, /turf/closed/wall/shuttle, /obj/structure/window/shuttle, /obj/structure/shuttle/engine, /obj/structure/shuttle/engine/heater, )
canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock/, /turf/closed/wall/shuttle, /obj/structure/window/shuttle, /obj/structure/shuttle/engine/heater)
/turf/closed/wall/mineral/titanium/nodiagonal
smooth = SMOOTH_MORE
+1 -1
View File
@@ -61,7 +61,7 @@
/turf/closed/wall/clockwork/examine(mob/user)
..()
if((is_servant_of_ratvar(user) || isobserver(user)) && linkedcache)
user << "<span class='brass'>It is linked to a Tinkerer's Cache, generating components!</span>"
to_chat(user, "<span class='brass'>It is linked to a Tinkerer's Cache, generating components!</span>")
/turf/closed/wall/clockwork/Destroy()
if(linkedcache)
+43 -37
View File
@@ -17,19 +17,19 @@
..()
switch(d_state)
if(INTACT)
user << "<span class='notice'>The outer <b>grille</b> is fully intact.</span>"
to_chat(user, "<span class='notice'>The outer <b>grille</b> is fully intact.</span>")
if(SUPPORT_LINES)
user << "<span class='notice'>The outer <i>grille</i> has been cut, and the support lines are <b>screwed</b> securely to the outer cover.</span>"
to_chat(user, "<span class='notice'>The outer <i>grille</i> has been cut, and the support lines are <b>screwed</b> securely to the outer cover.</span>")
if(COVER)
user << "<span class='notice'>The support lines have been <i>unscrewed</i>, and the metal cover is <b>welded</b> firmly in place.</span>"
to_chat(user, "<span class='notice'>The support lines have been <i>unscrewed</i>, and the metal cover is <b>welded</b> firmly in place.</span>")
if(CUT_COVER)
user << "<span class='notice'>The metal cover has been <i>sliced through</i>, and is <b>connected loosely</b> to the girder.</span>"
to_chat(user, "<span class='notice'>The metal cover has been <i>sliced through</i>, and is <b>connected loosely</b> to the girder.</span>")
if(BOLTS)
user << "<span class='notice'>The outer cover has been <i>pried away</i>, and the bolts anchoring the support rods are <b>wrenched</b> in place.</span>"
to_chat(user, "<span class='notice'>The outer cover has been <i>pried away</i>, and the bolts anchoring the support rods are <b>wrenched</b> in place.</span>")
if(SUPPORT_RODS)
user << "<span class='notice'>The bolts anchoring the support rods have been <i>loosened</i>, but are still <b>welded</b> firmly to the girder.</span>"
to_chat(user, "<span class='notice'>The bolts anchoring the support rods have been <i>loosened</i>, but are still <b>welded</b> firmly to the girder.</span>")
if(SHEATH)
user << "<span class='notice'>The support rods have been <i>sliced through</i>, and the outer sheath is <b>connected loosely</b> to the girder.</span>"
to_chat(user, "<span class='notice'>The support rods have been <i>sliced through</i>, and the outer sheath is <b>connected loosely</b> to the girder.</span>")
/turf/closed/wall/r_wall/devastate_wall()
new sheet_type(src, sheet_amount)
@@ -43,12 +43,12 @@
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
else
playsound(src, 'sound/effects/bang.ogg', 50, 1)
M << "<span class='warning'>This wall is far too strong for you to destroy.</span>"
to_chat(M, "<span class='warning'>This wall is far too strong for you to destroy.</span>")
/turf/closed/wall/r_wall/try_destroy(obj/item/weapon/W, mob/user, turf/T)
if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
user << "<span class='notice'>You begin to smash though the [name]...</span>"
to_chat(user, "<span class='notice'>You begin to smash though the [name]...</span>")
if(do_after(user, 50, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W)
return 1
@@ -66,170 +66,170 @@
playsound(src, W.usesound, 100, 1)
d_state = SUPPORT_LINES
update_icon()
user << "<span class='notice'>You cut the outer grille.</span>"
to_chat(user, "<span class='notice'>You cut the outer grille.</span>")
return 1
if(SUPPORT_LINES)
if(istype(W, /obj/item/weapon/screwdriver))
user << "<span class='notice'>You begin unsecuring the support lines...</span>"
to_chat(user, "<span class='notice'>You begin unsecuring the support lines...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 40*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != SUPPORT_LINES)
return 1
d_state = COVER
update_icon()
user << "<span class='notice'>You unsecure the support lines.</span>"
to_chat(user, "<span class='notice'>You unsecure the support lines.</span>")
return 1
else if(istype(W, /obj/item/weapon/wirecutters))
playsound(src, W.usesound, 100, 1)
d_state = INTACT
update_icon()
user << "<span class='notice'>You repair the outer grille.</span>"
to_chat(user, "<span class='notice'>You repair the outer grille.</span>")
return 1
if(COVER)
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
user << "<span class='notice'>You begin slicing through the metal cover...</span>"
to_chat(user, "<span class='notice'>You begin slicing through the metal cover...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 60*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !WT || !WT.isOn() || d_state != COVER)
return 1
d_state = CUT_COVER
update_icon()
user << "<span class='notice'>You press firmly on the cover, dislodging it.</span>"
to_chat(user, "<span class='notice'>You press firmly on the cover, dislodging it.</span>")
return 1
if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
user << "<span class='notice'>You begin slicing through the metal cover...</span>"
to_chat(user, "<span class='notice'>You begin slicing through the metal cover...</span>")
playsound(src, 'sound/items/Welder.ogg', 100, 1)
if(do_after(user, 60*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != COVER)
return 1
d_state = CUT_COVER
update_icon()
user << "<span class='notice'>You press firmly on the cover, dislodging it.</span>"
to_chat(user, "<span class='notice'>You press firmly on the cover, dislodging it.</span>")
return 1
if(istype(W, /obj/item/weapon/screwdriver))
user << "<span class='notice'>You begin securing the support lines...</span>"
to_chat(user, "<span class='notice'>You begin securing the support lines...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 40*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != COVER)
return 1
d_state = SUPPORT_LINES
update_icon()
user << "<span class='notice'>The support lines have been secured.</span>"
to_chat(user, "<span class='notice'>The support lines have been secured.</span>")
return 1
if(CUT_COVER)
if(istype(W, /obj/item/weapon/crowbar))
user << "<span class='notice'>You struggle to pry off the cover...</span>"
to_chat(user, "<span class='notice'>You struggle to pry off the cover...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 100*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != CUT_COVER)
return 1
d_state = BOLTS
update_icon()
user << "<span class='notice'>You pry off the cover.</span>"
to_chat(user, "<span class='notice'>You pry off the cover.</span>")
return 1
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
user << "<span class='notice'>You begin welding the metal cover back to the frame...</span>"
to_chat(user, "<span class='notice'>You begin welding the metal cover back to the frame...</span>")
playsound(src, WT.usesound, 100, 1)
if(do_after(user, 60*WT.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !WT || !WT.isOn() || d_state != CUT_COVER)
return 1
d_state = COVER
update_icon()
user << "<span class='notice'>The metal cover has been welded securely to the frame.</span>"
to_chat(user, "<span class='notice'>The metal cover has been welded securely to the frame.</span>")
return 1
if(BOLTS)
if(istype(W, /obj/item/weapon/wrench))
user << "<span class='notice'>You start loosening the anchoring bolts which secure the support rods to their frame...</span>"
to_chat(user, "<span class='notice'>You start loosening the anchoring bolts which secure the support rods to their frame...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 40*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != BOLTS)
return 1
d_state = SUPPORT_RODS
update_icon()
user << "<span class='notice'>You remove the bolts anchoring the support rods.</span>"
to_chat(user, "<span class='notice'>You remove the bolts anchoring the support rods.</span>")
return 1
if(istype(W, /obj/item/weapon/crowbar))
user << "<span class='notice'>You start to pry the cover back into place...</span>"
to_chat(user, "<span class='notice'>You start to pry the cover back into place...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 20*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != BOLTS)
return 1
d_state = CUT_COVER
update_icon()
user << "<span class='notice'>The metal cover has been pried back into place.</span>"
to_chat(user, "<span class='notice'>The metal cover has been pried back into place.</span>")
return 1
if(SUPPORT_RODS)
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
user << "<span class='notice'>You begin slicing through the support rods...</span>"
to_chat(user, "<span class='notice'>You begin slicing through the support rods...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 100*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !WT || !WT.isOn() || d_state != SUPPORT_RODS)
return 1
d_state = SHEATH
update_icon()
user << "<span class='notice'>You slice through the support rods.</span>"
to_chat(user, "<span class='notice'>You slice through the support rods.</span>")
return 1
if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
user << "<span class='notice'>You begin slicing through the support rods...</span>"
to_chat(user, "<span class='notice'>You begin slicing through the support rods...</span>")
playsound(src, 'sound/items/Welder.ogg', 100, 1)
if(do_after(user, 100*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != SUPPORT_RODS)
return 1
d_state = SHEATH
update_icon()
user << "<span class='notice'>You slice through the support rods.</span>"
to_chat(user, "<span class='notice'>You slice through the support rods.</span>")
return 1
if(istype(W, /obj/item/weapon/wrench))
user << "<span class='notice'>You start tightening the bolts which secure the support rods to their frame...</span>"
to_chat(user, "<span class='notice'>You start tightening the bolts which secure the support rods to their frame...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 40*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != SUPPORT_RODS)
return 1
d_state = BOLTS
update_icon()
user << "<span class='notice'>You tighten the bolts anchoring the support rods.</span>"
to_chat(user, "<span class='notice'>You tighten the bolts anchoring the support rods.</span>")
return 1
if(SHEATH)
if(istype(W, /obj/item/weapon/crowbar))
user << "<span class='notice'>You struggle to pry off the outer sheath...</span>"
to_chat(user, "<span class='notice'>You struggle to pry off the outer sheath...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, 100*W.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != SHEATH)
return 1
user << "<span class='notice'>You pry off the outer sheath.</span>"
to_chat(user, "<span class='notice'>You pry off the outer sheath.</span>")
dismantle_wall()
return 1
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
user << "<span class='notice'>You begin welding the support rods back together...</span>"
to_chat(user, "<span class='notice'>You begin welding the support rods back together...</span>")
playsound(src, WT.usesound, 100, 1)
if(do_after(user, 100*WT.toolspeed, target = src))
if(!istype(src, /turf/closed/wall/r_wall) || !WT || !WT.isOn() || d_state != SHEATH)
return 1
d_state = SUPPORT_RODS
update_icon()
user << "<span class='notice'>You weld the support rods back together.</span>"
to_chat(user, "<span class='notice'>You weld the support rods back together.</span>")
return 1
return 0
@@ -248,3 +248,9 @@
if(current_size >= STAGE_FIVE)
if(prob(30))
dismantle_wall()
/turf/closed/wall/r_vall/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd)
return FALSE
/turf/closed/wall/r_vall/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode)
return FALSE
+23 -9
View File
@@ -114,12 +114,12 @@
dismantle_wall(1)
else
playsound(src, 'sound/effects/bang.ogg', 50, 1)
user << text("<span class='notice'>You punch the wall.</span>")
to_chat(user, text("<span class='notice'>You punch the wall.</span>"))
return 1
/turf/closed/wall/attack_hand(mob/user)
user.changeNext_move(CLICK_CD_MELEE)
user << "<span class='notice'>You push the wall but nothing happens!</span>"
to_chat(user, "<span class='notice'>You push the wall but nothing happens!</span>")
playsound(src, 'sound/weapons/Genhit.ogg', 25, 1)
src.add_fingerprint(user)
..()
@@ -128,7 +128,7 @@
/turf/closed/wall/attackby(obj/item/weapon/W, mob/user, params)
user.changeNext_move(CLICK_CD_MELEE)
if (!user.IsAdvancedToolUser())
user << "<span class='warning'>You don't have the dexterity to do this!</span>"
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
return
//get the user's location
@@ -154,8 +154,8 @@
//check for wall mounted frames
if(istype(W,/obj/item/wallframe))
var/obj/item/wallframe/F = W
if(F.try_build(src))
F.attach(src)
if(F.try_build(src, user))
F.attach(src, user)
return 1
//Poster stuff
else if(istype(W,/obj/item/weapon/poster))
@@ -169,23 +169,23 @@
if( istype(W, /obj/item/weapon/weldingtool) )
var/obj/item/weapon/weldingtool/WT = W
if( WT.remove_fuel(0,user) )
user << "<span class='notice'>You begin slicing through the outer plating...</span>"
to_chat(user, "<span class='notice'>You begin slicing through the outer plating...</span>")
playsound(src, W.usesound, 100, 1)
if(do_after(user, slicing_duration*W.toolspeed, target = src))
if(!iswallturf(src) || !user || !WT || !WT.isOn() || !T)
return 1
if( user.loc == T && user.get_active_held_item() == WT )
user << "<span class='notice'>You remove the outer plating.</span>"
to_chat(user, "<span class='notice'>You remove the outer plating.</span>")
dismantle_wall()
return 1
else if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) )
user << "<span class='notice'>You begin slicing through the outer plating...</span>"
to_chat(user, "<span class='notice'>You begin slicing through the outer plating...</span>")
playsound(src, 'sound/items/Welder.ogg', 100, 1)
if(do_after(user, slicing_duration*W.toolspeed, target = src))
if(!iswallturf(src) || !user || !W || !T)
return 1
if( user.loc == T && user.get_active_held_item() == W )
user << "<span class='notice'>You remove the outer plating.</span>"
to_chat(user, "<span class='notice'>You remove the outer plating.</span>")
dismantle_wall()
visible_message("The wall was sliced apart by [user]!", "<span class='italics'>You hear metal being sliced apart.</span>")
return 1
@@ -257,3 +257,17 @@
/turf/closed/wall/acid_melt()
dismantle_wall(1)
/turf/closed/wall/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd)
switch(the_rcd.mode)
if(RCD_DECONSTRUCT)
return list("mode" = RCD_DECONSTRUCT, "delay" = 40, "cost" = 26)
return FALSE
/turf/closed/wall/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode)
switch(passed_mode)
if(RCD_DECONSTRUCT)
to_chat(user, "<span class='notice'>You deconstruct the wall.</span>")
ChangeTurf(/turf/open/floor/plating)
return TRUE
return FALSE
+38 -12
View File
@@ -14,6 +14,8 @@
var/global/datum/gas_mixture/space/space_gas = new
plane = PLANE_SPACE
light_power = 0.25
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
/turf/open/space/Initialize()
icon_state = SPACE_ICON_STATE
@@ -23,9 +25,19 @@
stack_trace("Warning: [src]([type]) initialized multiple times!")
initialized = TRUE
var/area/A = loc
if(!IS_DYNAMIC_LIGHTING(src) && IS_DYNAMIC_LIGHTING(A))
add_overlay(/obj/effect/fullbright)
if(requires_activation)
SSair.add_to_active(src)
if (light_power && light_range)
update_light()
if (opacity)
has_opaque_atom = TRUE
/turf/open/space/attack_ghost(mob/dead/observer/user)
if(destination_z)
var/turf/T = locate(destination_x, destination_y, destination_z)
@@ -52,15 +64,14 @@
if(isspaceturf(t))
//let's NOT update this that much pls
continue
SetLuminosity(4,5)
light.mode = LIGHTING_STARLIGHT
set_light(2)
return
SetLuminosity(0)
set_light(0)
/turf/open/space/attack_paw(mob/user)
return src.attack_hand(user)
/turf/open/space/attackby(obj/item/C, mob/user, area/area_restriction)
/turf/open/space/attackby(obj/item/C, mob/user, params, area/area_restriction)
..()
if(istype(C, /obj/item/stack/rods))
if(istype(area_restriction) && !istype(get_area(src), area_restriction))
@@ -69,22 +80,22 @@
var/obj/structure/lattice/L = locate(/obj/structure/lattice, src)
var/obj/structure/lattice/catwalk/W = locate(/obj/structure/lattice/catwalk, src)
if(W)
user << "<span class='warning'>There is already a catwalk here!</span>"
to_chat(user, "<span class='warning'>There is already a catwalk here!</span>")
return
if(L)
if(R.use(1))
user << "<span class='notice'>You construct a catwalk.</span>"
to_chat(user, "<span class='notice'>You construct a catwalk.</span>")
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
new/obj/structure/lattice/catwalk(src)
else
user << "<span class='warning'>You need two rods to build a catwalk!</span>"
to_chat(user, "<span class='warning'>You need two rods to build a catwalk!</span>")
return
if(R.use(1))
user << "<span class='notice'>You construct a lattice.</span>"
to_chat(user, "<span class='notice'>You construct a lattice.</span>")
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
ReplaceWithLattice()
else
user << "<span class='warning'>You need one rod to build a lattice.</span>"
to_chat(user, "<span class='warning'>You need one rod to build a lattice.</span>")
return
if(istype(C, /obj/item/stack/tile/plasteel))
var/obj/structure/lattice/L = locate(/obj/structure/lattice, src)
@@ -93,12 +104,12 @@
if(S.use(1))
qdel(L)
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
user << "<span class='notice'>You build a floor.</span>"
to_chat(user, "<span class='notice'>You build a floor.</span>")
ChangeTurf(/turf/open/floor/plating)
else
user << "<span class='warning'>You need one floor tile to build a floor!</span>"
to_chat(user, "<span class='warning'>You need one floor tile to build a floor!</span>")
else
user << "<span class='warning'>The plating is going to need some support! Place metal rods first.</span>"
to_chat(user, "<span class='warning'>The plating is going to need some support! Place metal rods first.</span>")
/turf/open/space/Entered(atom/movable/A)
..()
@@ -175,3 +186,18 @@
/turf/open/space/acid_act(acidpwr, acid_volume)
return 0
/turf/open/space/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd)
switch(the_rcd.mode)
if(RCD_FLOORWALL)
return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 2)
return FALSE
/turf/open/space/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode)
switch(passed_mode)
if(RCD_FLOORWALL)
to_chat(user, "<span class='notice'>You build a floor.</span>")
ChangeTurf(/turf/open/floor/plating)
return TRUE
return FALSE
+5 -8
View File
@@ -30,8 +30,9 @@
var/list/possible_transtitons = list()
var/k = 1
for(var/a in map_transition_config)
if(map_transition_config[a] == CROSSLINKED) // Only pick z-levels connected to station space
var/list/config_list = SSmapping.config.transition_config
for(var/a in config_list)
if(config_list[a] == CROSSLINKED) // Only pick z-levels connected to station space
possible_transtitons += k
k++
var/_z = pick(possible_transtitons)
@@ -58,8 +59,8 @@
AM.newtonian_move(dir)
//Overwrite because we dont want people building rods
/turf/open/space/transit/attackby(obj/item/C, mob/user)
..(C, user, /area/shuttle)
/turf/open/space/transit/attackby(obj/item/C, mob/user, params)
..(C, user, params, /area/shuttle)
/turf/open/space/transit/Initialize()
..()
@@ -80,8 +81,6 @@
if(EAST)
angle = 90
state = ((x+p*y) % 15) + 1
if(state < 1)
state += 15
if(WEST)
angle = -90
state = ((x-p*y) % 15) + 1
@@ -89,8 +88,6 @@
state += 15
else
state = ((p*x+y) % 15) + 1
if(state < 1)
state += 15
icon_state = "speedspace_ns_[state]"
transform = turn(matrix(), angle)
+35 -10
View File
@@ -26,8 +26,9 @@
var/requires_activation //add to air processing after initialize?
var/changing_turf = FALSE
/turf/SDQL_update(const/var_name, new_value)
if(var_name == "x" || var_name == "y" || var_name == "z")
/turf/vv_edit_var(var_name, new_value)
var/static/list/banned_edits = list("x", "y", "z")
if(var_name in banned_edits)
return FALSE
. = ..()
@@ -44,23 +45,42 @@
for(var/atom/movable/AM in src)
Entered(AM)
var/area/A = loc
if(!IS_DYNAMIC_LIGHTING(src) && IS_DYNAMIC_LIGHTING(A))
add_overlay(/obj/effect/fullbright)
if(requires_activation)
CalculateAdjacentTurfs()
SSair.add_to_active(src)
if (light_power && light_range)
update_light()
if (opacity)
has_opaque_atom = TRUE
/turf/proc/Initalize_Atmos(times_fired)
CalculateAdjacentTurfs()
/turf/Destroy(force)
. = QDEL_HINT_IWILLGC
if(!changing_turf)
stack_trace("Incorrect turf deletion")
changing_turf = FALSE
if(force)
..()
//this will completely wipe turf state
var/turf/basic/B = new /turf/basic(src)
for(var/A in B.contents)
qdel(A)
for(var/I in B.vars)
B.vars[I] = null
return
SSair.remove_from_active(src)
visibilityChanged()
initialized = FALSE
requires_activation = FALSE
..()
return QDEL_HINT_IWILLGC
/turf/attack_hand(mob/user)
user.Move_Pulled(src)
@@ -110,7 +130,7 @@
var/list/large_dense = list()
//Next, check objects to block entry that are on the border
for(var/atom/movable/border_obstacle in src)
if(border_obstacle.flags&ON_BORDER)
if(border_obstacle.flags & ON_BORDER)
if(!border_obstacle.CanPass(mover, mover.loc, 1) && (forget != border_obstacle))
mover.Bump(border_obstacle, 1)
return 0
@@ -123,10 +143,16 @@
return 0
//Finally, check objects/mobs to block entry that are not on the border
var/atom/movable/tompost_bump
var/top_layer = 0
for(var/atom/movable/obstacle in large_dense)
if(!obstacle.CanPass(mover, mover.loc, 1) && (forget != obstacle))
mover.Bump(obstacle, 1)
return 0
if(obstacle.layer > top_layer)
tompost_bump = obstacle
top_layer = obstacle.layer
if(tompost_bump)
mover.Bump(tompost_bump,1)
return 0
return 1 //Nothing found to block so return success!
/turf/Entered(atom/movable/AM)
@@ -160,7 +186,7 @@
//melting
if(isobj(AM) && air && air.temperature > T0C)
var/obj/O = AM
if(O.is_frozen)
if(HAS_SECONDARY_FLAG(O, FROZEN))
O.make_unfrozen()
/turf/proc/is_plasteel_floor()
@@ -276,7 +302,7 @@
/turf/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user)
if(src_object.contents.len)
usr << "<span class='notice'>You start dumping out the contents...</span>"
to_chat(usr, "<span class='notice'>You start dumping out the contents...</span>")
if(!do_after(usr,20,target=src_object))
return 0
@@ -392,7 +418,6 @@
T0.ChangeTurf(turf_type)
T0.redraw_lighting()
SSair.remove_from_active(T0)
T0.CalculateAdjacentTurfs()
SSair.add_to_active(T0,1)
@@ -462,4 +487,4 @@
/turf/proc/remove_decal(group)
LAZYINITLIST(decals)
cut_overlay(decals[group])
decals[group] = null
decals[group] = null