mirror of
https://github.com/goonstation/goonstation-2016.git
synced 2026-08-30 01:16:12 +01:00
Initial Commit
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
/turf/simulated/bowling
|
||||
name = "floor"
|
||||
icon = 'bowling.dmi'
|
||||
icon_state = "bowling_floor"
|
||||
|
||||
wet = 2
|
||||
|
||||
Entered(atom/movable/entered as mob|obj)
|
||||
if (ismob(entered))
|
||||
var/mob/M = entered
|
||||
if (M.weakened<4 && !M.lying)
|
||||
M.pulling = null
|
||||
random_brute_damage(M, 5)
|
||||
M.weakened = max(8, M.weakened)
|
||||
|
||||
if (M.client)
|
||||
M.show_message("<span style=\"color:blue\">You slipped on the floor!</span>")
|
||||
|
||||
playsound(src.loc, "sound/misc/slip.ogg", 50, 1, -3)
|
||||
|
||||
spawn(0.1)
|
||||
step(M, M.dir)
|
||||
|
||||
else
|
||||
var/obj/O = entered
|
||||
spawn(0.1)
|
||||
step(O, O.dir)
|
||||
|
||||
/obj/machinery/gutter
|
||||
density = 1
|
||||
flags = NOSPLASH
|
||||
anchored = 1
|
||||
|
||||
name = "gutter"
|
||||
icon = 'bowling.dmi'
|
||||
icon_state = "bowling_gutter"
|
||||
|
||||
var/datum/gas_mixture/air_contents
|
||||
var/obj/disposalpipe/trunk/trunk = null
|
||||
|
||||
var/mode = 1
|
||||
|
||||
New()
|
||||
..()
|
||||
spawn(0)
|
||||
src.link_gutter()
|
||||
|
||||
proc/link_gutter()
|
||||
trunk = locate() in src.loc
|
||||
if(!trunk)
|
||||
mode = 0
|
||||
//icon_state = "" //broken, no trunk
|
||||
else
|
||||
trunk.linked = src // link the pipe trunk to self
|
||||
//icon_state = "bowling_gutter"
|
||||
|
||||
if(!air_contents)
|
||||
air_contents = unpool(/datum/gas_mixture)
|
||||
|
||||
disposing()
|
||||
if(air_contents)
|
||||
pool(air_contents)
|
||||
air_contents = null
|
||||
..()
|
||||
|
||||
Bumped(atom/movable/bumper as mob|obj)
|
||||
if (mode)
|
||||
if (ismob(bumper))
|
||||
var/mob/living/M = bumper
|
||||
M.set_loc(src)
|
||||
boutput(M, "You fall into the [src]!")
|
||||
for(var/mob/V in viewers(src))
|
||||
if (V.client)
|
||||
V.show_message("[M] falls into the [src]!", 3)
|
||||
|
||||
else
|
||||
var/obj/O = bumper
|
||||
O.set_loc(src)
|
||||
|
||||
flush()
|
||||
|
||||
relaymove(atom/movable/mover as mob|obj)
|
||||
return
|
||||
|
||||
proc/flush()
|
||||
var/obj/disposalholder/H = new() // virtual holder object which actually
|
||||
// travels through the pipes.
|
||||
|
||||
H.init(src) // copy the contents of disposer to holder
|
||||
H.start(src)
|
||||
|
||||
proc/expel(var/obj/disposalholder/H)
|
||||
|
||||
var/turf/target
|
||||
for(var/atom/movable/AM in H)
|
||||
target = get_offset_target_turf(src.loc, rand(5)-rand(5), rand(5)-rand(5))
|
||||
|
||||
AM.set_loc(src.loc)
|
||||
AM.pipe_eject(0)
|
||||
spawn(1)
|
||||
if(AM)
|
||||
AM.throw_at(target, 5, 1)
|
||||
|
||||
H.vent_gas(loc)
|
||||
qdel(H)
|
||||
|
||||
alter_health()
|
||||
return get_turf(src)
|
||||
|
||||
/turf/simulated/floor/pin
|
||||
name = "pin"
|
||||
icon = 'bowling.dmi'
|
||||
icon_state = "pin"
|
||||
|
||||
Enter(atom/movable/mover as mob|obj)
|
||||
if (ismob(mover))
|
||||
var/mob/M = mover
|
||||
if (M.client)
|
||||
M.show_message("You hit [src]!", 3) //You get stuck here, turf is solid for some reason. Had a headache and didn't want to try to figure it out.
|
||||
..(mover)
|
||||
Reference in New Issue
Block a user