mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-26 06:40:08 +01:00
Merge branch 'master' into upstream-merge-9974
This commit is contained in:
@@ -356,6 +356,10 @@
|
||||
playsound(src, pickup_sound, 20, preference = /datum/client_preference/pickup_sounds)
|
||||
return
|
||||
|
||||
// As above but for items being equipped to an active module on a robot.
|
||||
/obj/item/proc/equipped_robot(var/mob/user)
|
||||
return
|
||||
|
||||
//Defines which slots correspond to which slot flags
|
||||
var/list/global/slot_flags_enumeration = list(
|
||||
"[slot_wear_mask]" = SLOT_MASK,
|
||||
@@ -788,7 +792,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
drop_sound = 'sound/items/drop/device.ogg'
|
||||
|
||||
//Worn icon generation for on-mob sprites
|
||||
/obj/item/proc/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer,var/icon/clip_mask = null) //VOREStation edit - add 'clip mask' argument.
|
||||
/obj/item/proc/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer,var/icon/clip_mask = null)
|
||||
//Get the required information about the base icon
|
||||
var/icon/icon2use = get_worn_icon_file(body_type = body_type, slot_name = slot_name, default_icon = default_icon, inhands = inhands)
|
||||
var/state2use = get_worn_icon_state(slot_name = slot_name)
|
||||
@@ -818,6 +822,9 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
if(istype(clip_mask)) //VOREStation Edit - For taur bodies/tails clipping off parts of uniforms and suits.
|
||||
standing.filters += filter(type = "alpha", icon = clip_mask)
|
||||
|
||||
if(istype(clip_mask)) //For taur bodies/tails clipping off parts of uniforms and suits.
|
||||
standing.filters += filter(type = "alpha", icon = clip_mask)
|
||||
|
||||
//Apply any special features
|
||||
if(!inhands)
|
||||
apply_blood(standing) //Some items show blood when bloodied
|
||||
@@ -949,4 +956,4 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
|
||||
// Like the above, but used for RPED sorting of parts.
|
||||
/obj/item/proc/rped_rating()
|
||||
return get_rating()
|
||||
return get_rating()
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
var/list/feeds = list()
|
||||
for(var/datum/feed_channel/channel in news_network.network_channels)
|
||||
var/list/messages = list()
|
||||
if(!channel.censored)
|
||||
if(!channel.censored && channel.channel_name != "Vir News Network") //Do not load the 'IC news' channel as it is simply too long.
|
||||
var/index = 0
|
||||
for(var/datum/feed_message/FM in channel.messages)
|
||||
index++
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/device/floor_painter
|
||||
name = "floor painter"
|
||||
name = "paint sprayer"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "labeler1"
|
||||
|
||||
@@ -43,6 +43,10 @@
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
if(istype(A, /mob/living/silicon/robot/platform))
|
||||
var/mob/living/silicon/robot/platform/robit = A
|
||||
return robit.try_paint(src, user)
|
||||
|
||||
var/turf/simulated/floor/F = A
|
||||
if(!istype(F))
|
||||
to_chat(user, "<span class='warning'>\The [src] can only be used on station flooring.</span>")
|
||||
@@ -115,20 +119,20 @@
|
||||
|
||||
/obj/item/device/floor_painter/verb/choose_colour()
|
||||
set name = "Choose Colour"
|
||||
set desc = "Choose a floor painter colour."
|
||||
set desc = "Choose a paint colour."
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
var/new_colour = input(usr, "Choose a colour.", "Floor painter", paint_colour) as color|null
|
||||
var/new_colour = input(usr, "Choose a colour.", name, paint_colour) as color|null
|
||||
if(new_colour && new_colour != paint_colour)
|
||||
paint_colour = new_colour
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] to paint with <font color='[paint_colour]'>a new colour</font>.</span>")
|
||||
|
||||
/obj/item/device/floor_painter/verb/choose_decal()
|
||||
set name = "Choose Decal"
|
||||
set desc = "Choose a floor painter decal."
|
||||
set desc = "Choose a painting decal."
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
@@ -142,7 +146,7 @@
|
||||
|
||||
/obj/item/device/floor_painter/verb/choose_direction()
|
||||
set name = "Choose Direction"
|
||||
set desc = "Choose a floor painter direction."
|
||||
set desc = "Choose a painting direction."
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
|
||||
@@ -67,6 +67,10 @@ var/list/GPS_list = list()
|
||||
. = ..()
|
||||
update_holder()
|
||||
|
||||
/obj/item/device/gps/equipped_robot()
|
||||
. = ..()
|
||||
update_holder()
|
||||
|
||||
/obj/item/device/gps/equipped()
|
||||
. = ..()
|
||||
update_holder()
|
||||
@@ -107,6 +111,7 @@ var/list/GPS_list = list()
|
||||
|
||||
/obj/item/device/gps/proc/update_compass(var/update_compass_icon)
|
||||
compass.hide_waypoints(FALSE)
|
||||
var/turf/my_turf = get_turf(src)
|
||||
for(var/thing in tracking_devices)
|
||||
var/obj/item/device/gps/gps = locate(thing)
|
||||
if(!istype(gps) || QDELETED(gps))
|
||||
@@ -119,7 +124,7 @@ var/list/GPS_list = list()
|
||||
compass.set_waypoint("\ref[gps]", gps_tag, gps_turf.x, gps_turf.y, gps_turf.z, LAZYACCESS(tracking_devices, "\ref[gps]"))
|
||||
else
|
||||
compass.set_waypoint("\ref[gps]", gps_tag, 0, 0, 0, LAZYACCESS(tracking_devices, "\ref[gps]"))
|
||||
if(can_track(gps))
|
||||
if(can_track(gps) && gps_turf && my_turf && gps_turf.z == my_turf.z)
|
||||
compass.show_waypoint("\ref[gps]")
|
||||
compass.rebuild_overlay_lists(update_compass_icon)
|
||||
|
||||
@@ -183,11 +188,11 @@ var/list/GPS_list = list()
|
||||
var/turf/curr = get_turf(src)
|
||||
var/area/my_area = get_area(src)
|
||||
|
||||
dat["my_area_name"] = my_area.name
|
||||
dat["my_area_name"] = strip_improper(my_area.name)
|
||||
dat["curr_x"] = curr.x
|
||||
dat["curr_y"] = curr.y
|
||||
dat["curr_z"] = curr.z
|
||||
dat["curr_z_name"] = using_map.get_zlevel_name(curr.z)
|
||||
dat["curr_z_name"] = strip_improper(using_map.get_zlevel_name(curr.z))
|
||||
dat["gps_list"] = list()
|
||||
dat["z_level_detection"] = using_map.get_map_levels(curr.z, long_range)
|
||||
|
||||
@@ -201,10 +206,10 @@ var/list/GPS_list = list()
|
||||
gps_data["gps_tag"] = G.gps_tag
|
||||
|
||||
var/area/A = get_area(G)
|
||||
gps_data["area_name"] = A.get_name()
|
||||
gps_data["area_name"] = strip_improper(A.get_name())
|
||||
|
||||
var/turf/T = get_turf(G)
|
||||
gps_data["z_name"] = using_map.get_zlevel_name(T.z)
|
||||
gps_data["z_name"] = strip_improper(using_map.get_zlevel_name(T.z))
|
||||
gps_data["direction"] = get_adir(curr, T)
|
||||
gps_data["degrees"] = round(Get_Angle(curr,T))
|
||||
gps_data["distX"] = T.x - curr.x
|
||||
@@ -221,7 +226,7 @@ var/list/GPS_list = list()
|
||||
/obj/item/device/gps/proc/display(mob/user)
|
||||
|
||||
if(emped)
|
||||
to_chat(user, "It's busted!")
|
||||
to_chat(user, SPAN_WARNING("It's busted!"))
|
||||
return
|
||||
|
||||
var/list/dat = list()
|
||||
@@ -229,9 +234,9 @@ var/list/GPS_list = list()
|
||||
|
||||
dat += "<table width = '100%'>"
|
||||
if(!tracking)
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch On]\]</a></tr>"
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch On\]</a></tr>"
|
||||
else
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch Off]\]</a></tr>"
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch Off\]</a></tr>"
|
||||
dat += "<tr><td colspan = 2><b>Current location</b></td><td colspan = 2>[gps_data["my_area_name"]]</td><td colspan = 2><b>([gps_data["curr_x"]], [gps_data["curr_y"]], [gps_data["curr_z_name"]])</b></td></tr>"
|
||||
dat += "<tr><td colspan = 4>[hide_signal ? "Tagged" : "Broadcasting"] as '[gps_tag]'.</td>"
|
||||
dat += "<td><a href='?src=\ref[src];tag=1'>\[Change Tag\]</a><a href='?src=\ref[src];range=1'>\[Toggle Scan Range\]</a>[can_hide_signal ? "<a href='?src=\ref[src];hide=1'>\[Toggle Signal Visibility\]</a>":""]</td></tr>"
|
||||
@@ -244,13 +249,12 @@ var/list/GPS_list = list()
|
||||
dat += "<td>[gps["gps_tag"]]</td><td>[gps["area_name"]]</td>"
|
||||
|
||||
if(istype(gps_data["ref"], /obj/item/device/gps/internal/poi))
|
||||
dat += "<td>[gps["local"] ? "[gps["direction"]] Dist: [round(gps["distance"], 10)]m" : "in \the [gps["z_name"]]"]</td>"
|
||||
dat += "<td>[gps["local"] ? "[gps["direction"]] Dist: [round(gps["distance"], 10)]m" : "[gps["z_name"]]"]</td>"
|
||||
else
|
||||
dat += "<td>([gps["x"]], [gps["y"]], [gps["z_name"]])</td>"
|
||||
|
||||
if(gps["local"])
|
||||
dat += "<td>[gps["distance"]]m</td>"
|
||||
dat += "<td>[gps["degrees"]]° ([gps["direction"]])</td>"
|
||||
dat += "<td>[gps["distance"]]m</td><td>[gps["direction"]]</td>"
|
||||
else
|
||||
dat += "<td colspan = 2>Non-local signal.</td>"
|
||||
|
||||
@@ -471,9 +475,9 @@ var/list/GPS_list = list()
|
||||
|
||||
dat += "<table width = '100%'>"
|
||||
if(!tracking)
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch On]\]</a></tr>"
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch On\]</a></tr>"
|
||||
else
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch Off]\]</a></tr>"
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch Off\]</a></tr>"
|
||||
dat += "<tr><td colspan = 2><b>Current location</b></td><td colspan = 2>[gps_data["my_area_name"]]</td><td colspan = 2><b>([gps_data["curr_x"]], [gps_data["curr_y"]], [gps_data["curr_z_name"]])</b></td></tr>"
|
||||
dat += "<tr><td colspan = 4>[hide_signal ? "Tagged" : "Broadcasting"] as '[gps_tag]'.</td>"
|
||||
dat += "<td><a href='?src=\ref[src];tag=1'>\[Change Tag\]</a><a href='?src=\ref[src];range=1'>\[Toggle Scan Range\]</a>[can_hide_signal ? "<a href='?src=\ref[src];hide=1'>\[Toggle Signal Visibility\]</a>":""]</td></tr>"
|
||||
@@ -485,8 +489,7 @@ var/list/GPS_list = list()
|
||||
var/gps_ref = "\ref[gps["ref"]]"
|
||||
dat += "<td>[gps["gps_tag"]]</td><td>[gps["area_name"]] ([gps["x"]], [gps["y"]], [gps["z_name"]])</td>"
|
||||
if(gps["local"])
|
||||
dat += "<td>[gps["distance"]]m</td>"
|
||||
dat += "<td>[gps["degrees"]]° ([gps["direction"]])</td>"
|
||||
dat += "<td>[gps["distance"]]m</td><td>[gps["direction"]]</td>"
|
||||
else
|
||||
dat += "<td colspan = 2>Non-local signal.</td>"
|
||||
if(LAZYACCESS(tracking_devices, gps_ref))
|
||||
|
||||
@@ -484,34 +484,70 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/clothing/mask/smokable/cigarette/joint
|
||||
name = "joint"
|
||||
desc = "This probably shouldn't ever show up."
|
||||
desc = "A joint lovingly rolled and crafted with care. Blaze it."
|
||||
icon_state = "joint"
|
||||
max_smoketime = 400
|
||||
smoketime = 400
|
||||
chem_volume = 25
|
||||
|
||||
/obj/item/clothing/mask/smokable/cigarette/joint/blunt
|
||||
name = "blunt"
|
||||
desc = "A blunt lovingly rolled and crafted with care. Blaze it."
|
||||
icon_state = "cigar"
|
||||
max_smoketime = 500
|
||||
smoketime = 500
|
||||
nicotine_amt = 0
|
||||
nicotine_amt = 4
|
||||
chem_volume = 45
|
||||
|
||||
/obj/item/weapon/rollingpaper
|
||||
/obj/item/weapon/reagent_containers/rollingpaper
|
||||
name = "rolling paper"
|
||||
desc = "A small, thin piece of easily flammable paper, commonly used for rolling and smoking various dried plants."
|
||||
description_fluff = "The legalization of certain substances propelled the sale of rolling papers through the roof. Now almost every Trans-stellar produces a variety, often of questionable quality."
|
||||
icon = 'icons/obj/cigarettes.dmi'
|
||||
icon_state = "cig paper"
|
||||
volume = 25
|
||||
var/obj/item/clothing/mask/smokable/cigarette/crafted_type = /obj/item/clothing/mask/smokable/cigarette/joint
|
||||
|
||||
/obj/item/weapon/rollingpaper/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/rollingpaper/blunt
|
||||
name = "blunt wrap"
|
||||
desc = "A small piece of easily flammable paper similar to that which encases cigars. It's made out of tobacco, bigger than a standard rolling paper, and will last longer."
|
||||
icon_state = "blunt paper"
|
||||
volume = 45
|
||||
crafted_type = /obj/item/clothing/mask/smokable/cigarette/joint/blunt
|
||||
|
||||
/obj/item/weapon/reagent_containers/rollingpaper/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/reagent_containers/food/snacks))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/G = W
|
||||
if (!G.dry)
|
||||
to_chat(user, "<span class='notice'>[G] must be dried before you roll it into [src].</span>")
|
||||
if (!G.dry) //This prevents people from just stuffing cheeseburgers into their joint
|
||||
to_chat(user, "<span class='notice'>[G.name] must be dried before you add it to [src].</span>")
|
||||
return
|
||||
var/obj/item/clothing/mask/smokable/cigarette/joint/J = new /obj/item/clothing/mask/smokable/cigarette/joint(user.loc)
|
||||
to_chat(usr, "<span class='notice'>You roll the [G.name] into a joint!</span>")
|
||||
J.add_fingerprint(user)
|
||||
if (G.reagents.total_volume + src.reagents.total_volume > src.reagents.maximum_volume) //Check that we don't have too much already in the paper before adding things
|
||||
to_chat(user, "<span class='warning'>The [src] is too full to add [G.name].</span>")
|
||||
return
|
||||
if (src.reagents.total_volume == 0)
|
||||
if (istype(src, /obj/item/weapon/reagent_containers/rollingpaper/blunt)) //update the icon if this is the first thing we're adding to the paper
|
||||
src.icon_state = "blunt_full"
|
||||
else
|
||||
src.icon_state = "paper_full"
|
||||
to_chat(user, "<span class='notice'>You add the [G.name] to the [src.name].</span>")
|
||||
src.add_fingerprint(user)
|
||||
if(G.reagents)
|
||||
G.reagents.trans_to_obj(J, G.reagents.total_volume)
|
||||
J.name = "[G.name] joint"
|
||||
J.desc = "A joint lovingly rolled and filled with [G.name]. Blaze it."
|
||||
G.reagents.trans_to_obj(src, G.reagents.total_volume) //adds the reagents from the plant into the paper
|
||||
user.drop_from_inventory(G)
|
||||
qdel(G)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/rollingpaper/attack_self(mob/living/user)
|
||||
if(!src.reagents) //don't roll an empty joint
|
||||
to_chat(user, "<span class='warning'>There is nothing in [src]. Add something to it first.</span>")
|
||||
return
|
||||
var/obj/item/clothing/mask/smokable/cigarette/J = new crafted_type()
|
||||
to_chat(user,"<span class='notice'>You roll the [src] into a blunt!</span>")
|
||||
J.add_fingerprint(user)
|
||||
if(src.reagents)
|
||||
src.reagents.trans_to_obj(J, src.reagents.total_volume)
|
||||
user.drop_from_inventory(src)
|
||||
user.put_in_hands(J)
|
||||
qdel(src)
|
||||
|
||||
/////////
|
||||
//ZIPPO//
|
||||
|
||||
@@ -157,6 +157,18 @@
|
||||
. = ..()
|
||||
access = get_all_station_access().Copy() + access_synth
|
||||
|
||||
/obj/item/weapon/card/id/platform
|
||||
name = "\improper Support Platform ID"
|
||||
desc = "Access module for support platforms."
|
||||
icon_state = "id-robot"
|
||||
item_state = "tdgreen"
|
||||
assignment = "Synthetic"
|
||||
access = list(
|
||||
access_synth, access_mining, access_mining_station, access_mining_office, access_research,
|
||||
access_xenoarch, access_xenobiology, access_external_airlocks, access_robotics, access_tox,
|
||||
access_tox_storage, access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot
|
||||
)
|
||||
|
||||
/obj/item/weapon/card/id/centcom
|
||||
name = "\improper CentCom. ID"
|
||||
desc = "An ID straight from Central Command."
|
||||
|
||||
@@ -177,4 +177,15 @@
|
||||
default_material = "DEFAULT_WALL_MATERIAL"
|
||||
fragile = 0
|
||||
sharp = 1
|
||||
edge = 0
|
||||
edge = 0
|
||||
|
||||
/obj/item/weapon/material/twohanded/riding_crop
|
||||
name = "riding crop"
|
||||
desc = "A rod, a little over a foot long with a widened grip and a thick, leather patch at the end. Used since the dawn of the West to control animals."
|
||||
force_divisor = 0.05 //Required in order for the X attacks Y message to pop up.
|
||||
unwielded_force_divisor = 1 // One here, too.
|
||||
applies_material_colour = 1
|
||||
unbreakable = 1
|
||||
base_icon = "riding_crop"
|
||||
icon_state = "riding_crop0"
|
||||
attack_verb = list("cropped","spanked","swatted","smacked","peppered")
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
//1R1S: Malady Blanche
|
||||
/obj/item/weapon/material/twohanded/riding_crop/malady
|
||||
name = "Malady's riding crop"
|
||||
icon = 'icons/vore/custom_items_vr.dmi'
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/vore/custom_items_left_hand_vr.dmi',
|
||||
slot_r_hand_str = 'icons/vore/custom_items_right_hand_vr.dmi',
|
||||
)
|
||||
desc = "An infernum made riding crop with Malady Blanche engraved in the shaft. It's a little worn from how many butts it has spanked."
|
||||
@@ -354,8 +354,16 @@
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_BELT
|
||||
storage_slots = 14
|
||||
can_hold = list(/obj/item/weapon/rollingpaper)
|
||||
starts_with = list(/obj/item/weapon/rollingpaper = 14)
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/rollingpaper)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/rollingpaper = 14)
|
||||
|
||||
/obj/item/weapon/storage/rollingpapers/blunt
|
||||
name = "blunt wrap pack"
|
||||
desc = "A small cardboard pack containing several folded blunt wraps."
|
||||
icon_state = "bluntbox"
|
||||
storage_slots = 7
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/rollingpaper/blunt)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/rollingpaper/blunt = 7)
|
||||
|
||||
/*
|
||||
* Vial Box
|
||||
|
||||
@@ -165,9 +165,6 @@
|
||||
/obj/proc/show_message(msg, type, alt, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2)
|
||||
return
|
||||
|
||||
/obj/proc/get_cell()
|
||||
return
|
||||
|
||||
// Used to mark a turf as containing objects that are dangerous to step onto.
|
||||
/obj/proc/register_dangerous_to_step()
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
@@ -362,6 +362,7 @@
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/peppermintschnapps,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/peachschnapps,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/lemonadeschnapps,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/jager,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/small/cider,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/small/litebeer,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
starts_with = null
|
||||
|
||||
if(!opened) // if closed, any item at the crate's loc is put in the contents
|
||||
if(istype(loc, /mob/living)) return //VOREStation Edit - No collecting mob organs if spawned inside mob
|
||||
if(istype(loc, /mob/living)) return
|
||||
var/obj/item/I
|
||||
for(I in loc)
|
||||
if(I.density || I.anchored || I == src) continue
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
break
|
||||
|
||||
if(choice)
|
||||
finalized = alert(M, "Are you sure you want to play as [choice]?","Confirmation","No","Yes")
|
||||
finalized = alert(M, "Are you sure you want to play as [choice]? By clicking yes you should expect to be treated as vore predator and possibly killed. Do not attack other players. You will have minimal OOC pref protections.","Confirmation","No","Yes")
|
||||
|
||||
if(randomize)
|
||||
choice = pick(possible_mobs)
|
||||
@@ -99,4 +99,4 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/ghost_pod/ghost_activated/morphspawn/no_announce
|
||||
announce_prob = 0
|
||||
announce_prob = 0
|
||||
|
||||
Reference in New Issue
Block a user