mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-21 12:02:31 +01:00
Matt's Bugfix Galore (#9816)
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
/datum/admin_secret_item/admin_secret/prison_warp
|
||||
name = "Prison Warp"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/prison_warp/can_execute(var/mob/user)
|
||||
if(!ROUND_IS_STARTED) return 0
|
||||
return ..()
|
||||
|
||||
/datum/admin_secret_item/admin_secret/prison_warp/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
for(var/mob/living/carbon/human/H in mob_list)
|
||||
var/turf/T = get_turf(H)
|
||||
var/security = 0
|
||||
if((T && isAdminLevel(T.z)) || prisonwarped.Find(H))
|
||||
//don't warp them if they aren't ready or are already there
|
||||
continue
|
||||
H.Paralyse(5)
|
||||
if(H.wear_id)
|
||||
var/obj/item/card/id/id = H.get_idcard()
|
||||
for(var/A in id.access)
|
||||
if(A == access_security)
|
||||
security++
|
||||
if(!security)
|
||||
//strip their stuff before they teleport into a cell :downs:
|
||||
for(var/obj/item/W in H)
|
||||
if(istype(W, /obj/item/organ/external))
|
||||
continue
|
||||
//don't strip organs
|
||||
H.drop_from_inventory(W)
|
||||
//teleport person to cell
|
||||
H.forceMove(pick(prisonwarp))
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(H), slot_shoes)
|
||||
else
|
||||
//teleport security person
|
||||
H.forceMove(pick(prisonsecuritywarp))
|
||||
prisonwarped += H
|
||||
@@ -37,6 +37,9 @@
|
||||
if(mob_name_suffix)
|
||||
pick_message = "[pick_message] Auto Suffix: \"[mob_name_suffix]\" "
|
||||
mname = sanitizeSafe(input(user, pick_message, "Name for a [species] (without prefix/suffix)"))
|
||||
|
||||
if(!mname)
|
||||
mname = pick(last_names)
|
||||
|
||||
if(mob_name_prefix)
|
||||
mname = replacetext(mname,mob_name_prefix,"") //Remove the prefix if it exists in the string
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
/mob/living/heavy_vehicle/get_cell()
|
||||
RETURN_TYPE(/obj/item/cell)
|
||||
return body.cell
|
||||
return body?.cell
|
||||
|
||||
/mob/living/heavy_vehicle/proc/calc_power_draw()
|
||||
var/total_draw = 0
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
anchored = 1
|
||||
icon_state = "wreck"
|
||||
icon = 'icons/mecha/mech_part_items.dmi'
|
||||
var/prepared
|
||||
var/prepared = FALSE
|
||||
|
||||
/obj/structure/mech_wreckage/Initialize(var/newloc, var/mob/living/heavy_vehicle/exosuit, var/gibbed)
|
||||
if(exosuit)
|
||||
@@ -37,14 +37,14 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/mech_wreckage/attackby(var/obj/item/W, var/mob/user)
|
||||
|
||||
var/cutting
|
||||
if(iswelder(W))
|
||||
if(W.iswelder())
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.isOn())
|
||||
cutting = TRUE
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Turn the torch on, first.</span>")
|
||||
return
|
||||
else if(istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
cutting = TRUE
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
to_chat(user, "<span class='warning'>\The [src] has already been weakened.</span>")
|
||||
return 1
|
||||
|
||||
else if(iswrench(W))
|
||||
else if(W.iswrench())
|
||||
if(prepared)
|
||||
to_chat(user, "<span class='notice'>You finish dismantling \the [src].</span>")
|
||||
new /obj/item/stack/material/steel(get_turf(src),rand(5,10))
|
||||
@@ -78,4 +78,4 @@
|
||||
thing.forceMove(get_turf(src))
|
||||
else
|
||||
qdel(thing)
|
||||
..()
|
||||
return ..()
|
||||
@@ -400,7 +400,7 @@
|
||||
return
|
||||
|
||||
/material/diona/place_dismantled_girder(var/turf/target)
|
||||
spawn_diona_nymph(target)
|
||||
target.spawn_diona_nymph(target)
|
||||
|
||||
/material/steel/holographic
|
||||
name = "holo" + DEFAULT_WALL_MATERIAL
|
||||
|
||||
@@ -58,12 +58,8 @@
|
||||
if(!gibbed && deathmessage != "no message") // This is gross, but reliable. Only brains use it.
|
||||
src.visible_message("<b>\The [src.name]</b> [deathmessage]", range = messagerange)
|
||||
|
||||
// If we have a remotely controlled mob, we come back to our body to die properly
|
||||
if(vr_mob)
|
||||
vr_mob.body_return()
|
||||
// Alternatively, if we are the remotely controlled mob, just kick our controller out
|
||||
if(old_mob)
|
||||
body_return()
|
||||
exit_vr()
|
||||
|
||||
stat = DEAD
|
||||
|
||||
update_canmove()
|
||||
@@ -105,5 +101,12 @@
|
||||
if(SSticker.mode)
|
||||
SSticker.mode.check_win()
|
||||
|
||||
|
||||
return 1
|
||||
|
||||
/mob/proc/exit_vr()
|
||||
// If we have a remotely controlled mob, we come back to our body to die properly
|
||||
if(vr_mob)
|
||||
vr_mob.body_return()
|
||||
// Alternatively, if we are the remotely controlled mob, just kick our controller out
|
||||
if(old_mob)
|
||||
body_return()
|
||||
|
||||
@@ -27,7 +27,8 @@
|
||||
|
||||
//Revised. Brainmob is now contained directly within object of transfer. MMI in this case.
|
||||
|
||||
var/locked = 0
|
||||
var/locked = FALSE
|
||||
var/can_be_ipc = FALSE
|
||||
var/mob/living/carbon/brain/brainmob = null//The current occupant.
|
||||
var/obj/item/organ/internal/brain/brainobj = null //The current brain organ.
|
||||
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
icon_state = "posibrain"
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2, TECH_DATA = 4)
|
||||
var/searching = FALSE
|
||||
req_access = list(access_robotics)
|
||||
locked = FALSE
|
||||
can_be_ipc = TRUE
|
||||
var/searching = FALSE
|
||||
|
||||
/obj/item/device/mmi/digital/posibrain/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/mob/living/carbon/
|
||||
/mob/living/carbon
|
||||
gender = MALE
|
||||
accent = ACCENT_CETI
|
||||
var/datum/species/species //Contains icon generation and language information, set during New().
|
||||
//stomach contents redefined at mob/living level, removed from here
|
||||
|
||||
|
||||
@@ -1311,7 +1311,7 @@
|
||||
if(istype(M))
|
||||
if(!blood_DNA[M.dna.unique_enzymes])
|
||||
blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
|
||||
hand_blood_color = blood_color
|
||||
hand_blood_color = species.blood_color
|
||||
src.update_inv_gloves() //handles bloody hands overlays and updating
|
||||
verbs += /mob/living/carbon/human/proc/bloody_doodle
|
||||
return 1 //we applied blood to the item
|
||||
|
||||
@@ -472,7 +472,9 @@
|
||||
src.visible_message("<span class='danger'>[user] has [attack_message] [src]!</span>")
|
||||
user.do_attack_animation(src)
|
||||
|
||||
var/dam_zone = pick(organs_by_name)
|
||||
var/dam_zone = user.zone_sel?.selecting
|
||||
if(!dam_zone)
|
||||
dam_zone = pick(organs)
|
||||
var/obj/item/organ/external/affecting = get_organ(ran_zone(dam_zone))
|
||||
var/armor_block = run_armor_check(affecting, "melee")
|
||||
apply_damage(damage, BRUTE, affecting, armor_block)
|
||||
|
||||
@@ -47,6 +47,8 @@ emp_act
|
||||
var/armor = getarmor_organ(organ, "bullet")
|
||||
if(prob(20 + max(P.damage - armor, -10)))
|
||||
var/obj/item/SP = new P.shrapnel_type()
|
||||
SP.edge = TRUE
|
||||
SP.sharp = TRUE
|
||||
SP.name = (P.name != "shrapnel")? "[P.name] shrapnel" : "shrapnel"
|
||||
SP.desc = "[SP.desc] It looks like it was fired from [P.shot_from]."
|
||||
SP.forceMove(organ)
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
has_organ = list()
|
||||
siemens_coefficient = 0
|
||||
rarity_value = 10
|
||||
virus_immune = 1
|
||||
|
||||
breakcuffs = list(MALE,FEMALE,NEUTER)
|
||||
|
||||
|
||||
@@ -35,8 +35,6 @@
|
||||
|
||||
reagent_tag = IS_UNDEAD
|
||||
|
||||
virus_immune = TRUE
|
||||
|
||||
rarity_value = 10
|
||||
blurb = "Skeletons are undead brought back to life through dark wizardry, \
|
||||
they are empty shells fueled by sheer obscure power and blood-magic. \
|
||||
@@ -106,13 +104,11 @@
|
||||
icobase = 'icons/mob/human_races/r_manifested.dmi'
|
||||
deform = 'icons/mob/human_races/r_manifested.dmi'
|
||||
|
||||
default_language = "Ceti Basic"
|
||||
language = "Cult"
|
||||
name_language = "Cult"
|
||||
default_language = LANGUAGE_TCB
|
||||
language = LANGUAGE_CULT
|
||||
name_language = LANGUAGE_CULT
|
||||
has_organ = list()
|
||||
|
||||
virus_immune = 1
|
||||
|
||||
reagent_tag = IS_UNDEAD
|
||||
|
||||
rarity_value = 10
|
||||
@@ -186,8 +182,6 @@
|
||||
BP_STOMACH = /obj/item/organ/internal/stomach
|
||||
)
|
||||
|
||||
virus_immune = 1
|
||||
|
||||
vision_flags = DEFAULT_SIGHT | SEE_MOBS
|
||||
|
||||
reagent_tag = IS_UNDEAD
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
|
||||
eyes = "vox_eyes_s"
|
||||
gluttonous = 2
|
||||
virus_immune = 1
|
||||
|
||||
breath_type = GAS_NITROGEN
|
||||
poison_type = GAS_OXYGEN
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
var/icon/icon_template // Used for mob icon generation for non-32x32 species.
|
||||
var/mob_size = MOB_MEDIUM
|
||||
var/show_ssd = "fast asleep"
|
||||
var/virus_immune
|
||||
var/short_sighted
|
||||
var/bald = 0
|
||||
var/light_range
|
||||
|
||||
@@ -44,7 +44,6 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL,
|
||||
|
||||
brute_mod = 2
|
||||
burn_mod = 4
|
||||
virus_immune = 1
|
||||
grab_mod = 2
|
||||
resist_mod = 2
|
||||
|
||||
|
||||
@@ -76,7 +76,6 @@
|
||||
|
||||
blood_color = COLOR_IPC_BLOOD
|
||||
flesh_color = "#575757"
|
||||
virus_immune = 1
|
||||
reagent_tag = IS_MACHINE
|
||||
|
||||
has_organ = list(
|
||||
|
||||
@@ -233,7 +233,6 @@
|
||||
appearance_flags = HAS_HAIR_COLOR | HAS_UNDERWEAR | HAS_SOCKS
|
||||
vision_flags = DEFAULT_SIGHT | SEE_MOBS
|
||||
|
||||
virus_immune = 1
|
||||
reagent_tag = IS_MACHINE
|
||||
|
||||
inherent_verbs = list(
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
siemens_coefficient = 3 //conductive
|
||||
darksight = 3
|
||||
rarity_value = 5
|
||||
virus_immune = 1
|
||||
fall_mod = 0
|
||||
grab_mod = 1.5
|
||||
resist_mod = 0.25
|
||||
|
||||
@@ -161,30 +161,30 @@
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle19"
|
||||
|
||||
attack(mob/living/carbon/slime/M as mob, mob/user as mob)
|
||||
if(!istype(M, /mob/living/carbon/slime/))//If target is not a slime.
|
||||
to_chat(user, SPAN_WARNING("The potion only works on slimes!"))
|
||||
return ..()
|
||||
if(M.stat)
|
||||
to_chat(user, SPAN_WARNING("The slime is dead!"))
|
||||
return ..()
|
||||
if(M.mind)
|
||||
to_chat(user, SPAN_WARNING("The slime resists!"))
|
||||
return ..()
|
||||
var/mob/living/simple_animal/adultslime/pet = new /mob/living/simple_animal/adultslime(M.loc)
|
||||
pet.icon_state = "[M.colour] adult slime"
|
||||
pet.icon_living = "[M.colour] adult slime"
|
||||
pet.icon_dead = "[M.colour] baby slime dead"
|
||||
pet.colour = "[M.colour]"
|
||||
to_chat(user, "You feed the slime the potion, removing it's powers and calming it.")
|
||||
qdel(M)
|
||||
var/newname = sanitize(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text, MAX_NAME_LEN)
|
||||
/obj/item/slimepotion2/attack(mob/living/carbon/slime/M as mob, mob/user as mob)
|
||||
if(!istype(M, /mob/living/carbon/slime/))//If target is not a slime.
|
||||
to_chat(user, SPAN_WARNING("The potion only works on slimes!"))
|
||||
return ..()
|
||||
if(M.stat)
|
||||
to_chat(user, SPAN_WARNING("The slime is dead!"))
|
||||
return ..()
|
||||
if(M.mind)
|
||||
to_chat(user, SPAN_WARNING("The slime resists!"))
|
||||
return ..()
|
||||
var/mob/living/simple_animal/adultslime/pet = new /mob/living/simple_animal/adultslime(M.loc)
|
||||
pet.icon_state = "[M.colour] adult slime"
|
||||
pet.icon_living = "[M.colour] adult slime"
|
||||
pet.icon_dead = "[M.colour] baby slime dead"
|
||||
pet.colour = "[M.colour]"
|
||||
to_chat(user, "You feed the slime the potion, removing it's powers and calming it.")
|
||||
qdel(M)
|
||||
var/newname = sanitize(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text, MAX_NAME_LEN)
|
||||
|
||||
if(!newname)
|
||||
newname = "pet slime"
|
||||
pet.name = newname
|
||||
pet.real_name = newname
|
||||
qdel(src)
|
||||
if(!newname)
|
||||
newname = "pet slime"
|
||||
pet.name = newname
|
||||
pet.real_name = newname
|
||||
qdel(src)
|
||||
|
||||
/obj/item/slimesteroid
|
||||
name = "slime steroid"
|
||||
|
||||
@@ -740,11 +740,12 @@ var/list/ai_verbs_default = list(
|
||||
else if(W.iswrench())
|
||||
if(anchored)
|
||||
user.visible_message("<span class='notice'>\The [user] starts to unbolt \the [src] from the plating...</span>")
|
||||
if(!do_after(user,40/W.toolspeed))
|
||||
if(!do_after(user, 40/W.toolspeed))
|
||||
user.visible_message("<span class='notice'>\The [user] decides not to unbolt \the [src].</span>")
|
||||
return
|
||||
user.visible_message("<span class='notice'>\The [user] finishes unfastening \the [src]!</span>")
|
||||
anchored = 0
|
||||
anchored = FALSE
|
||||
exit_vr()
|
||||
return
|
||||
else
|
||||
user.visible_message("<span class='notice'>\The [user] starts to bolt \the [src] to the plating.</span>..")
|
||||
|
||||
@@ -232,6 +232,8 @@
|
||||
/obj/item/computer_hardware,
|
||||
/obj/item/slimesteroid,
|
||||
/obj/item/slimesteroid2,
|
||||
/obj/item/slimepotion,
|
||||
/obj/item/slimepotion2,
|
||||
/obj/item/remote_mecha
|
||||
)
|
||||
|
||||
|
||||
@@ -250,6 +250,10 @@
|
||||
to_chat(user, SPAN_WARNING("\The [W] does not seem to fit. (The player lacks the appropriate whitelist.)"))
|
||||
return
|
||||
|
||||
if(!M.can_be_ipc)
|
||||
to_chat(user, SPAN_WARNING("There's no way that would fit in an IPC chassis!"))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/new_shell = new(get_turf(src), chest.linked_frame)
|
||||
forceMove(new_shell) //so people won't mess around with the chassis until it is deleted
|
||||
M.brainmob.mind.transfer_to(new_shell)
|
||||
|
||||
@@ -25,15 +25,18 @@
|
||||
if(usr.stat || usr.restrained())
|
||||
return
|
||||
|
||||
src.flipped = !src.flipped
|
||||
if(src.flipped)
|
||||
src.item_state = "[item_state]_alt"
|
||||
flipped = !flipped
|
||||
if(flipped)
|
||||
overlay_state = "[item_state]_alt"
|
||||
item_state = "[item_state]_alt"
|
||||
else
|
||||
src.item_state = initial(item_state)
|
||||
to_chat(usr, "You change \the [src] to be on your [src.flipped ? "left" : "right"] hand.")
|
||||
if(ismob(src.loc))
|
||||
item_state = initial(item_state)
|
||||
overlay_state = initial(overlay_state)
|
||||
to_chat(usr, SPAN_NOTICE("You change \the [src] to be on your [src.flipped ? "left" : "right"] hand."))
|
||||
if(ismob(loc))
|
||||
var/mob/M = src.loc
|
||||
M.update_inv_gloves()
|
||||
M.update_inv_wear_id()
|
||||
|
||||
/obj/item/modular_computer/CouldUseTopic(var/mob/user)
|
||||
..()
|
||||
|
||||
@@ -1038,10 +1038,9 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(company)
|
||||
model = company
|
||||
var/datum/robolimb/R = all_robolimbs[company]
|
||||
/*if(species && !(species.name in R.species_can_use && species.get_bodytype() != BODYTYPE_IPC))
|
||||
R = basic_robolimb*/
|
||||
|
||||
if(R)
|
||||
if (!force_skintone)
|
||||
if(!force_skintone)
|
||||
force_icon = R.icon
|
||||
if(R.lifelike)
|
||||
status |= ORGAN_LIFELIKE
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
var/datum/robolimb/R = all_robolimbs[robotize_type]
|
||||
if(R.paintable)
|
||||
limb_exception = TRUE
|
||||
if(R.company == PROSTHETIC_SYNTHSKIN)
|
||||
limb_exception = TRUE
|
||||
if(status & ORGAN_ROBOT && !(isipc(human)) && !limb_exception)
|
||||
return
|
||||
if(species && human.species && species.name != human.species.name)
|
||||
@@ -142,8 +144,13 @@
|
||||
|
||||
if(force_icon)
|
||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
if(painted && skin_color)
|
||||
if((painted && skin_color) || robotize_type == PROSTHETIC_SYNTHSKIN)
|
||||
mob_icon.Blend(skin_color, ICON_ADD)
|
||||
if(!isnull(s_tone))
|
||||
if(s_tone >= 0)
|
||||
mob_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
|
||||
else
|
||||
mob_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
|
||||
apply_markings(restrict_to_robotic = TRUE)
|
||||
get_internal_organs_overlay()
|
||||
else
|
||||
|
||||
@@ -1,22 +1,19 @@
|
||||
/proc/spawn_diona_nymph(var/turf/target)
|
||||
if(!istype(target))
|
||||
return 0
|
||||
|
||||
/turf/proc/spawn_diona_nymph()
|
||||
//This is a terrible hack and I should be ashamed.
|
||||
var/datum/seed/diona = SSplants.seeds["diona"]
|
||||
if(!diona)
|
||||
return 0
|
||||
|
||||
spawn(1) // So it has time to be thrown about by the gib() proc.
|
||||
var/mob/living/carbon/alien/diona/D = new(target)
|
||||
var/datum/ghosttrap/plant/P = get_ghost_trap("living plant")
|
||||
P.request_player(D, "A diona nymph has split off from its gestalt. ")
|
||||
spawn(60)
|
||||
if(D)
|
||||
if(!D.ckey || !D.client)
|
||||
D.death()
|
||||
return 1
|
||||
INVOKE_ASYNC(src, .proc/create_diona_nymph)
|
||||
|
||||
/turf/proc/create_diona_nymph()
|
||||
var/mob/living/carbon/alien/diona/D = new(src)
|
||||
var/datum/ghosttrap/plant/P = get_ghost_trap("living plant")
|
||||
P.request_player(D, "A diona nymph has split off from its gestalt. ")
|
||||
sleep(120)
|
||||
if(D)
|
||||
if(!D.ckey || !D.client)
|
||||
D.death()
|
||||
|
||||
//Probable future TODO: Refactor diona organs to be /obj/item/organ/external/bodypart/diona
|
||||
//Having them not inherit from specific bodypart classes is a problem
|
||||
@@ -27,7 +24,8 @@
|
||||
|
||||
/obj/item/organ/external/diona/removed(var/mob/living/user)
|
||||
..()
|
||||
if(spawn_diona_nymph(get_turf(src)))
|
||||
var/turf/T = get_turf(src)
|
||||
if(T.spawn_diona_nymph())
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/external/chest/diona
|
||||
|
||||
@@ -99,7 +99,7 @@ obj/item/gun/energy/staff/animate/special_check(var/mob/living/user)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
obj/item/gun/energy/staff/focus
|
||||
/obj/item/gun/energy/staff/focus
|
||||
name = "mental focus"
|
||||
desc = "An artefact that channels the will of the user into destructive bolts of force. If you aren't careful with it, you might poke someone's brain out."
|
||||
icon = 'icons/obj/guns/mental_focus.dmi'
|
||||
@@ -114,7 +114,7 @@ obj/item/gun/energy/staff/focus/special_check(var/mob/living/user)
|
||||
to_chat(user, "<span class='danger'>In your rage you momentarily forget the operation of this stave!</span>")
|
||||
return 0
|
||||
if(!user.is_wizard())
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
if(ishuman(user))
|
||||
//Save the users active hand
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/organ/external/LA = H.get_organ(BP_L_ARM)
|
||||
|
||||
@@ -17,9 +17,6 @@
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/forcebolt/strong/on_hit(var/atom/target, var/blocked = 0)
|
||||
|
||||
// var/throwdir = null
|
||||
|
||||
for(var/mob/M in hearers(2, src))
|
||||
if(M.loc != src.loc)
|
||||
var/throwdir = get_dir(firer,target)
|
||||
|
||||
@@ -59,7 +59,9 @@
|
||||
user.visible_message("<span class='notice'>\ [user] slices through the skin of \the [src], revealing a confused diona nymph.</span>")
|
||||
else
|
||||
return
|
||||
spawn_diona_nymph(src.loc)
|
||||
if(isturf(loc))
|
||||
var/turf/T = loc
|
||||
T.spawn_diona_nymph()
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/diona/bulb/unpowered
|
||||
@@ -185,7 +187,7 @@
|
||||
if(ARTIFACT_CHAR)
|
||||
new /obj/structure/diona/bulb(T)
|
||||
if(MONSTER_CHAR)
|
||||
spawn_diona_nymph(T)
|
||||
T.spawn_diona_nymph()
|
||||
if(DOOR_CHAR)
|
||||
var/obj/structure/diona/vines/V = new(T)
|
||||
V.growth = 3
|
||||
|
||||
Reference in New Issue
Block a user