mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-23 12:06:22 +01:00
Merge branch 'master' of https://github.com/Shadowfire117/CHOMPstation
This commit is contained in:
@@ -74,6 +74,8 @@ var/global/list/image/splatter_cache=list()
|
||||
return
|
||||
if(amount < 1)
|
||||
return
|
||||
if(perp.flying) //Flap flap. Chomp edit. Thanks KasparoVy
|
||||
return
|
||||
|
||||
var/obj/item/organ/external/l_foot = perp.get_organ("l_foot")
|
||||
var/obj/item/organ/external/r_foot = perp.get_organ("r_foot")
|
||||
|
||||
@@ -47,8 +47,7 @@
|
||||
/obj/item/clothing/accessory/permit/gun,
|
||||
/obj/item/device/perfect_tele,
|
||||
/obj/item/device/sleevemate,
|
||||
// Chompstation Edit: Removing NIFs temporarily - Jon
|
||||
// /obj/item/weapon/disk/nifsoft/compliance,
|
||||
/obj/item/weapon/disk/nifsoft/compliance,
|
||||
/obj/item/seeds/ambrosiadeusseed,
|
||||
/obj/item/seeds/ambrosiavulgarisseed,
|
||||
/obj/item/seeds/libertymycelium,
|
||||
|
||||
@@ -221,6 +221,9 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
|
||||
if(video_source)
|
||||
watch_video(user)
|
||||
|
||||
/obj/item/device/communicator/AltClick(mob/user) //Chomp edit.
|
||||
attack_self(user) //wow big skill
|
||||
|
||||
// Proc: MouseDrop()
|
||||
//Same thing PDAs do
|
||||
/obj/item/device/communicator/MouseDrop(obj/over_object as obj)
|
||||
|
||||
@@ -211,14 +211,13 @@
|
||||
var/list/mobs_to_relay
|
||||
|
||||
// Chompstation Edit: Removing NIFs temporarily - Jon
|
||||
/*
|
||||
|
||||
if(istype(comm,/obj/item/device/communicator/commlink))
|
||||
var/obj/item/device/communicator/commlink/CL = comm
|
||||
mobs_to_relay = list(CL.nif.human)
|
||||
else
|
||||
*/
|
||||
var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
|
||||
mobs_to_relay = in_range["mobs"]
|
||||
var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
|
||||
mobs_to_relay = in_range["mobs"]
|
||||
//VOREStation Edit End
|
||||
|
||||
for(var/mob/mob in mobs_to_relay) //We can't use visible_message(), or else we will get an infinite loop if two communicators hear each other.
|
||||
@@ -242,14 +241,13 @@
|
||||
//VOREStation Edit Start for commlinks
|
||||
var/list/mobs_to_relay
|
||||
|
||||
// Chompstation Edit: Removing NIFs temporarily - Jon
|
||||
/* if(istype(comm,/obj/item/device/communicator/commlink))
|
||||
|
||||
if(istype(comm,/obj/item/device/communicator/commlink))
|
||||
var/obj/item/device/communicator/commlink/CL = comm
|
||||
mobs_to_relay = list(CL.nif.human)
|
||||
else
|
||||
*/
|
||||
var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
|
||||
mobs_to_relay = in_range["mobs"]
|
||||
var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
|
||||
mobs_to_relay = in_range["mobs"]
|
||||
//VOREStation Edit End
|
||||
|
||||
for(var/mob/mob in mobs_to_relay)
|
||||
|
||||
@@ -77,8 +77,6 @@
|
||||
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
|
||||
var/flashfail = 0
|
||||
|
||||
//Chompstation Edit: Removing NIFs - Jon
|
||||
/*
|
||||
//VOREStation Add - NIF
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -86,7 +84,7 @@
|
||||
flashfail = 1
|
||||
H.nif.notify("High intensity light detected, and blocked!",TRUE)
|
||||
//VOREStation Add End
|
||||
*/
|
||||
|
||||
if(iscarbon(M) && !flashfail) //VOREStation Add - NIF
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.stat != DEAD)
|
||||
|
||||
@@ -116,6 +116,9 @@
|
||||
user.update_action_buttons()
|
||||
return 1
|
||||
|
||||
/obj/item/device/flashlight/AltClick(mob/user)//chomp edit
|
||||
attack_self(user)
|
||||
|
||||
/obj/item/device/flashlight/emp_act(severity)
|
||||
for(var/obj/O in contents)
|
||||
O.emp_act(severity)
|
||||
|
||||
@@ -58,6 +58,9 @@
|
||||
update_icon()
|
||||
to_chat(user, "<span class='notice'>\icon[src] You switch [scanning ? "on" : "off"] \the [src].</span>")
|
||||
|
||||
/obj/item/device/geiger/AltClick(mob/user)//chomp edit
|
||||
attack_self(user)
|
||||
|
||||
/obj/item/device/geiger/update_icon()
|
||||
if(!scanning)
|
||||
icon_state = "geiger_off"
|
||||
|
||||
@@ -239,7 +239,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
|
||||
return
|
||||
var/mob/M = usr
|
||||
if(!istype(M, /mob/living/carbon))
|
||||
usr << "<font color=blue>You don't have any DNA, or your DNA is incompatible with this device.</font>"
|
||||
usr << "<font color=#6F6FE2>You don't have any DNA, or your DNA is incompatible with this device.</font>"
|
||||
else
|
||||
var/datum/dna/dna = usr.dna
|
||||
pai.master = M.real_name
|
||||
|
||||
@@ -97,14 +97,11 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
else
|
||||
output += "<span class='warning'>Unable</span><br>"
|
||||
|
||||
//Chompstation Edit: Removing NIFs - Jon
|
||||
/*
|
||||
//Soulcatcher transfer
|
||||
if(stored_mind && H.nif)
|
||||
var/datum/nifsoft/soulcatcher/SC = H.nif.imp_check(NIF_SOULCATCHER)
|
||||
if(SC)
|
||||
output += "<b>Store in Soulcatcher: </b>\[<a href='?src=\ref[src];target=\ref[H];mindput=1'>Perform</a>\]<br>"
|
||||
*/
|
||||
to_chat(user,output)
|
||||
|
||||
/obj/item/device/sleevemate/Topic(href, href_list)
|
||||
@@ -131,17 +128,15 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
to_chat(usr,"<span class='warning'>Target seems totally braindead.</span>")
|
||||
return
|
||||
|
||||
//Chompstation Edit: Removing NIFs - Jon
|
||||
/* var/nif
|
||||
var/nif
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
nif = H.nif
|
||||
persist_nif_data(H)*/
|
||||
persist_nif_data(H)
|
||||
|
||||
usr.visible_message("[usr] begins scanning [target]'s mind.","<span class='notice'>You begin scanning [target]'s mind.</span>")
|
||||
if(do_after(usr,8 SECONDS,target))
|
||||
// SStranscore.m_backup(target.mind,nif,one_time = TRUE) //Chompstation Edit: Removing NIFs - Jon
|
||||
SStranscore.m_backup(target.mind,null,one_time = TRUE)
|
||||
SStranscore.m_backup(target.mind,nif,one_time = TRUE)
|
||||
to_chat(usr,"<span class='notice'>Mind backed up!</span>")
|
||||
else
|
||||
to_chat(usr,"<span class='warning'>You must remain close to your target!</span>")
|
||||
@@ -184,8 +179,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
|
||||
return
|
||||
|
||||
//Chompstation Edit: Removing NIFs - Jon
|
||||
/*
|
||||
|
||||
if(href_list["mindput"])
|
||||
if(!stored_mind)
|
||||
to_chat(usr,"<span class='warning'>\The [src] no longer has a stored mind.</span>")
|
||||
@@ -212,7 +206,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
stored_mind = null
|
||||
to_chat(usr,"<span class='notice'>Mind transferred into Soulcatcher!</span>")
|
||||
update_icon()
|
||||
*/
|
||||
|
||||
|
||||
/obj/item/device/sleevemate/update_icon()
|
||||
if(stored_mind)
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
/obj/item/device/t_scanner/attack_self(mob/user)
|
||||
set_active(!on)
|
||||
|
||||
/obj/item/device/t_scanner/AltClick(mob/user)//chomp edit
|
||||
attack_self(user)
|
||||
|
||||
/obj/item/device/t_scanner/proc/set_active(var/active)
|
||||
on = active
|
||||
if(on)
|
||||
|
||||
@@ -879,6 +879,11 @@
|
||||
icon_state = "beepskyplushie"
|
||||
phrase = "Ping!"
|
||||
|
||||
/obj/structure/plushie/silly_teshari
|
||||
name = "teshari plushie"
|
||||
desc = "It has a tag on the foot that says 'WHY'"
|
||||
icon_state = "taaa_plush"
|
||||
|
||||
//Small plushies.
|
||||
/obj/item/toy/plushie
|
||||
name = "generic small plush"
|
||||
@@ -986,11 +991,6 @@
|
||||
desc = "Shiny!"
|
||||
icon_state = "teshplush_rainbow"
|
||||
|
||||
/obj/item/toy/plushie/silly_teshari
|
||||
name = "teshari plushie"
|
||||
desc = "It has a tag on the foot that says 'WHY'"
|
||||
icon_state = "taaa_plush"
|
||||
|
||||
//foxes are basically the best
|
||||
|
||||
/obj/item/toy/plushie/red_fox
|
||||
|
||||
@@ -173,6 +173,11 @@
|
||||
build_path = /obj/machinery/computer/shuttle_control/research
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/medical_shuttle
|
||||
name = T_BOARD("medical shuttle console")
|
||||
build_path = /obj/machinery/computer/shuttle_control/medical
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/aifixer
|
||||
name = T_BOARD("AI integrity restorer")
|
||||
build_path = /obj/machinery/computer/aifixer
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
for (var/O in item_quants)
|
||||
if(item_quants[O] > 0)
|
||||
var/N = item_quants[O]
|
||||
dat += "<FONT color = 'blue'><B>[capitalize(O)]</B>:"
|
||||
dat += "<FONT color = '#6F6FE2'><B>[capitalize(O)]</B>:"
|
||||
dat += " [N] </font>"
|
||||
dat += "<a href='byond://?src=\ref[src];vend=[O]'>Vend</A>"
|
||||
dat += "<br>"
|
||||
|
||||
@@ -69,6 +69,9 @@
|
||||
if(M.buckled) //wheelchairs, office chairs, rollerbeds
|
||||
return
|
||||
|
||||
if(M.flying) //Flap flap. Chomp edit. Thanks KasparoVy This is before the sound so you can fly stealthly. Plus why would there be a noise if you didn't touch.
|
||||
return
|
||||
|
||||
playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) // not sure how to handle metal shards with sounds
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
@@ -597,7 +597,7 @@
|
||||
var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
|
||||
if(!E)
|
||||
return
|
||||
// if(H.nif && H.nif.flag_check(NIF_V_UVFILTER,NIF_FLAGS_VISION)) return //VOREStation Add - NIF //Chompstation Edit: Removing NIFs - Jon
|
||||
if(H.nif && H.nif.flag_check(NIF_V_UVFILTER,NIF_FLAGS_VISION)) return //VOREStation Add - NIF
|
||||
switch(safety)
|
||||
if(1)
|
||||
to_chat(usr, "<span class='warning'>Your eyes sting a little.</span>")
|
||||
|
||||
@@ -20,3 +20,17 @@
|
||||
/mob/living/simple_animal/hostile/goose = 60,
|
||||
/mob/living/simple_animal/retaliate/bee = 50,
|
||||
)
|
||||
|
||||
/obj/structure/mob_spawner/scanner/mining_animals/do_spawn(var/mob_path)
|
||||
if(!ispath(mob_path))
|
||||
return 0
|
||||
var/mob/living/L = new mob_path(get_turf(src))
|
||||
L/simple_animal.vore_escape_time = 15 SECONDS
|
||||
L.source_spawner = src
|
||||
spawned_mobs.Add(L)
|
||||
last_spawn = world.time
|
||||
if(total_spawns > 0)
|
||||
total_spawns--
|
||||
if(mob_faction)
|
||||
L.faction = mob_faction
|
||||
return L
|
||||
@@ -118,3 +118,13 @@
|
||||
name = "Wolfgirl Crate"
|
||||
desc = "A sketchy looking crate with airholes that shakes and thuds every now and then. Someone seems to be demanding they be let out."
|
||||
starts_with = list(/mob/living/simple_animal/retaliate/awoo)
|
||||
|
||||
/obj/structure/largecrate/animal/fennec
|
||||
name = "Fennec Crate"
|
||||
desc = "Bounces around a lot. Looks messily packaged, were they in a hurry?"
|
||||
starts_with = list(/mob/living/simple_animal/fennec)
|
||||
|
||||
/obj/structure/largecrate/animal/fennec/initialize()
|
||||
starts_with = list(pick(/mob/living/simple_animal/fennec,
|
||||
/mob/living/simple_animal/retaliate/fennix;0.5))
|
||||
return ..()
|
||||
|
||||
@@ -199,19 +199,151 @@
|
||||
|
||||
// Sif trees
|
||||
|
||||
/obj/structure/flora/tree/sif
|
||||
/obj/structure/flora/tree/sif //CHOMP edit. The tree gives you tap.
|
||||
name = "glowing tree"
|
||||
desc = "It's a tree, except this one seems quite alien. It glows a deep blue."
|
||||
icon = 'icons/obj/flora/deadtrees.dmi'
|
||||
icon_state = "tree_sif"
|
||||
base_state = "tree_sif"
|
||||
product = /obj/item/stack/material/log/sif
|
||||
var/obj/item/weapon/t_t = null
|
||||
var/tap = 0 //Variable used to start production or stop it.
|
||||
var/sap = 1 //The actual liquid. Trees aren't reagents containers so i hacked this quickly.
|
||||
var/sap_amount = 0 //Placeholder. Actually important.
|
||||
var/sap_type = 1//this is a sort of variable used for appearance and reagent selection.
|
||||
|
||||
/obj/structure/flora/tree/sif/attackby(var/obj/item/weapon/I, var/mob/user)
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/))
|
||||
if(!tap)
|
||||
user << "<span class='notice'>There is no tap in \the [src].</span>"
|
||||
return
|
||||
if(!sap && tap)
|
||||
user << "<span class='notice'>There is no sap in \the [src].</span>"
|
||||
return
|
||||
if(sap && tap)
|
||||
if(sap_type == 1)
|
||||
var/obj/item/weapon/reagent_containers/G = I
|
||||
var/transferred = min(G.reagents.maximum_volume - G.reagents.total_volume, sap)
|
||||
sap -= transferred
|
||||
G.reagents.add_reagent("phoron", transferred)//badly done yeah. Ideally, you would have a list of reagents to pull from then to add.
|
||||
G.reagents.add_reagent("bluesap", transferred)
|
||||
sap_amount = transferred * 2
|
||||
user.visible_message("<span class='notice'>[user] collects [sap_amount] from \the [src] into \the [G].</span>", "<span class='notice'>You collect [sap_amount] units of sap from \the [src] into \the [G].</span>")
|
||||
return 1
|
||||
if(sap_type == 2)
|
||||
var/obj/item/weapon/reagent_containers/G = I
|
||||
var/transferred = min(G.reagents.maximum_volume - G.reagents.total_volume, sap)
|
||||
sap -= transferred
|
||||
G.reagents.add_reagent("phoron", transferred)
|
||||
G.reagents.add_reagent("purplesap", transferred)
|
||||
sap_amount = transferred * 2
|
||||
user.visible_message("<span class='notice'>[user] collects [sap_amount] from \the [src] into \the [G].</span>", "<span class='notice'>You collect [sap_amount] units of sap from \the [src] into \the [G].</span>")
|
||||
return 1
|
||||
if(sap_type == 3)
|
||||
var/obj/item/weapon/reagent_containers/G = I
|
||||
var/transferred = min(G.reagents.maximum_volume - G.reagents.total_volume, sap)
|
||||
sap -= transferred
|
||||
G.reagents.add_reagent("phoron", transferred)
|
||||
G.reagents.add_reagent("orangesap", transferred)
|
||||
sap_amount = transferred * 2
|
||||
user.visible_message("<span class='notice'>[user] collects [sap_amount] from \the [src] into \the [G].</span>", "<span class='notice'>You collect [sap_amount] units of sap from \the [src] into \the [G].</span>")
|
||||
return 1
|
||||
|
||||
if(istype(I, /obj/item/weapon/tree_tap))
|
||||
if(!tap)
|
||||
user.drop_item()
|
||||
I.loc = src
|
||||
t_t = I
|
||||
user << "<span class='notice'>You install a tap in [src].</span>"
|
||||
tap = 1
|
||||
produce_sap()
|
||||
else
|
||||
user << "<span class='notice'>[src] already has a tap.</span>"
|
||||
return 1
|
||||
|
||||
visible_message("<span class='danger'>\The [user] hits \the [src] with \the [I]!</span>")
|
||||
|
||||
var/damage_to_do = I.force
|
||||
if(!I.sharp && !I.edge)
|
||||
damage_to_do = round(damage_to_do / 4)
|
||||
if(damage_to_do > 0)
|
||||
if(I.sharp && I.edge)
|
||||
playsound(get_turf(src), 'sound/effects/woodcutting.ogg', 50, 1)
|
||||
else
|
||||
playsound(get_turf(src), I.hitsound, 50, 1)
|
||||
if(damage_to_do > 5)
|
||||
adjust_health(-damage_to_do)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>\The [I] is ineffective at harming \the [src].</span>")
|
||||
|
||||
hit_animation()
|
||||
user.setClickCooldown(user.get_attack_speed(I))
|
||||
user.do_attack_animation(src)
|
||||
|
||||
/obj/structure/flora/tree/sif/attack_hand(mob/user as mob)
|
||||
if(tap == 1)
|
||||
user.put_in_hands(t_t)
|
||||
t_t = null
|
||||
user << "<span class='notice'>You remove the tap from [src].</span>"
|
||||
tap = 0
|
||||
return
|
||||
|
||||
/obj/structure/flora/tree/sif/proc/produce_sap()
|
||||
if(tap)
|
||||
sap = (sap + 0.01)
|
||||
return
|
||||
|
||||
/obj/structure/flora/tree/sif/process()
|
||||
produce_sap()
|
||||
|
||||
/obj/structure/flora/tree/sif/examine(mob/user)
|
||||
if(!..(user, 1))
|
||||
return
|
||||
if(tap)
|
||||
user <<"<span class='notice'>[src] has a tap wedged in.</span>"
|
||||
if(!tap)
|
||||
user <<"<span class='notice'>[src] looks health and normal.</span>"
|
||||
|
||||
/* if(sap_type == 1)//Debug stuff. Don't turn on.
|
||||
user <<"<span class='notice'>[src] 1</span>"
|
||||
if(sap_type == 2)
|
||||
user <<"<span class='notice'>[src] 2</span>"
|
||||
if(sap_type == 3)
|
||||
user <<"<span class='notice'>[src] 3</span>"
|
||||
*/
|
||||
|
||||
/obj/structure/flora/tree/sif/New()
|
||||
sap_type = rand(1,3)
|
||||
// ..()
|
||||
// processing_objects |= src
|
||||
if(sap_type == 1)//first sap
|
||||
icon_state = "tree_sif1"
|
||||
desc = "It's a tree, except this one seems quite alien. It glows a deep blue."
|
||||
if(sap_type == 2)//second sap
|
||||
icon_state = "tree_sif2"
|
||||
desc = "It's a tree, except this one seems quite alien. It glows a deep violet."
|
||||
if(sap_type == 3)//third sap
|
||||
icon_state = "tree_sif3"
|
||||
desc = "It's a tree, except this one seems quite alien. It glows a low brownish orange."
|
||||
// else
|
||||
// icon_state = "tree_sif"
|
||||
update_icon()
|
||||
processing_objects |= src
|
||||
|
||||
/obj/structure/flora/tree/sif/update_icon()
|
||||
set_light(5, 1, "#33ccff")
|
||||
if(sap_type == 1)
|
||||
set_light(5, 1, "#33ccff")//first sap
|
||||
if(sap_type == 2)
|
||||
set_light(5, 1, "#7a48a0")//second sap
|
||||
if(sap_type == 3)
|
||||
set_light(5, 1, "#e9955c")//third sap
|
||||
var/image/glow = image(icon = 'icons/obj/flora/deadtrees.dmi', icon_state = "[icon_state]_glow")
|
||||
glow.plane = PLANE_LIGHTING_ABOVE
|
||||
//debug_glow = glow
|
||||
overlays = list(glow)
|
||||
|
||||
/obj/item/weapon/tree_tap//I put it here because where else?
|
||||
name = "Tree Tap"
|
||||
desc = "A small metal tap with a crude faucet. Sturdy enough to be rammed in a tree."
|
||||
icon = 'icons/obj/flora/deadtrees.dmi'
|
||||
icon_state = "treetap0"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
force = 3
|
||||
@@ -230,13 +230,13 @@
|
||||
prob(2);/obj/item/weapon/storage/box/syndie_kit/spy,
|
||||
prob(2);/obj/item/weapon/grenade/anti_photon,
|
||||
prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc,
|
||||
// prob(1);/obj/item/device/nif/bad, //Chompstation Edit: Removing NIFs - Jon
|
||||
prob(1);/obj/item/device/nif/bad,
|
||||
prob(1);/obj/item/device/radio_jammer,
|
||||
prob(1);/obj/item/device/sleevemate,
|
||||
prob(1);/obj/item/device/bodysnatcher,
|
||||
prob(1);/obj/item/weapon/beartrap,
|
||||
prob(1);/obj/item/weapon/cell/hyper/empty,
|
||||
// prob(1);/obj/item/weapon/disk/nifsoft/compliance, //Chompstation Edit: Removing NIFs - Jon
|
||||
prob(1);/obj/item/weapon/disk/nifsoft/compliance,
|
||||
prob(1);/obj/item/weapon/material/knife/tacknife,
|
||||
prob(1);/obj/item/weapon/reagent_containers/syringe/steroid)
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
M.stop_flying()
|
||||
|
||||
/obj/structure/table/stumble_into(mob/living/M)
|
||||
if(M.flying && !(M.confused || M.is_blind())) //If you're not flying, or you're flying confused/blind, take the tumble.
|
||||
return
|
||||
var/obj/occupied = turf_is_crowded()
|
||||
if(occupied)
|
||||
return ..()
|
||||
@@ -45,6 +47,7 @@
|
||||
M.Weaken(5)
|
||||
M.stop_flying()
|
||||
|
||||
//Morgue thing.
|
||||
/obj/structure/m_tray/stumble_into(mob/living/M)
|
||||
playsound(get_turf(src), 'sound/weapons/tablehit1.ogg', 25, 1, -1)
|
||||
visible_message("<span class='warning'>[M] flopped onto \the [src]!</span>")
|
||||
@@ -69,6 +72,8 @@
|
||||
M.stop_flying()
|
||||
|
||||
/obj/structure/railing/stumble_into(mob/living/M)
|
||||
if(M.flying && !(M.confused || M.is_blind())) //If you're not flying, or you're flying confused/blind, take the tumble.
|
||||
return
|
||||
var/obj/occupied = turf_is_crowded()
|
||||
if(occupied)
|
||||
return ..()
|
||||
|
||||
Reference in New Issue
Block a user