From 7e99d67587172d95b8e7ee04b411f138f81fd8a9 Mon Sep 17 00:00:00 2001 From: DZD Date: Thu, 30 Apr 2015 20:11:12 -0400 Subject: [PATCH] Fixes runtimes YES YES! --- code/datums/mind.dm | 4 ++-- .../special_shadowling_abilities.dm | 4 +++- .../mob/living/carbon/brain/brain_item.dm | 4 ++-- .../mob/living/carbon/brain/posibrain.dm | 22 +++++++++---------- code/modules/mob/mob.dm | 2 +- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 829551b9fcc..5db7e620325 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -966,12 +966,12 @@ datum/mind switch(href_list["shadowling"]) if("clear") ticker.mode.update_shadow_icons_removed(src) - current.spell_list = null + current.spell_list.Cut() if(src in ticker.mode.shadows) ticker.mode.shadows -= src special_role = null current << "Your powers have been quenched! You are no longer a shadowling!" - current.spell_list = null + current.spell_list.Cut() message_admins("[key_name_admin(usr)] has de-shadowling'ed [current].") log_admin("[key_name(usr)] has de-shadowling'ed [current].") current.verbs -= /mob/living/carbon/human/proc/shadowling_hatch diff --git a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm index dba7f327eb6..4dd5ff26b68 100644 --- a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm @@ -19,6 +19,8 @@ for(var/obj/item/I in usr) //drops all items usr.unEquip(I) + if(istype(I, /obj/item/organ) && (I in src.internal_organs)) //Shadowlings only have a brain, the other organs would drop otherwise. + qdel(I) sleep(50) var/turf/simulated/floor/F @@ -31,7 +33,7 @@ usr.visible_message("A chrysalis forms around [usr], sealing them inside.", \ "You create your chrysalis and begin to contort within.") - + usr.Weaken(30) sleep(100) usr.visible_message("The skin on [usr]'s back begins to split apart. Black spines slowly emerge from the divide.", \ "Spines pierce your back. Your claws break apart your fingers. You feel excruciating pain as your true form begins its exit.") diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index cf6b4b9bae1..5ad58df488f 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -23,8 +23,8 @@ /obj/item/organ/brain/New() ..() spawn(5) - if(brainmob && brainmob.client) //This is runtiming too. What the fuck? "runtime error: undefined variable /obj/item/organ/brain/var/client" BUT YOU'RE SUPPOSED TO BE CHECKING THE BRAINMOB. - brainmob.client.screen.len = null //clear the hud + for(var/mob/living/carbon/brain/bmob in src) //I'm going to hell for this, but there's no other way to stop these runtimes. + bmob.client.screen.len = null //clear the hud /obj/item/organ/brain/proc/transfer_identity(var/mob/living/carbon/H) name = "\the [H]'s [initial(src.name)]" diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 76f15657886..8540507d057 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -169,17 +169,17 @@ ..() /obj/item/device/mmi/posibrain/New() - - src.brainmob = new(src) - src.brainmob.name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" - src.brainmob.real_name = src.brainmob.name //WHY THE FUCK IS THIS RUNTIMING? "Undefined variable /obj/item/device/mmi/posibrain/var/real_name" WHY ARE YOU CHECKING THE POSIBRAIN AND NOT THE BRAINMOB?! - src.brainmob.loc = src - src.brainmob.container = src - src.brainmob.robot_talk_understand = 1 - src.brainmob.stat = 0 - src.brainmob.silent = 0 - src.brainmob.brain_op_stage = 4.0 - dead_mob_list -= src.brainmob + for(var/mob/living/carbon/brain/bmob in src) //Also going to hell for this, but this should fix the runtimes. + bmob = new /mob/living/carbon/brain(src) + bmob.name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" + bmob.real_name = src.brainmob.name + bmob.loc = src + bmob.container = src + bmob.robot_talk_understand = 1 + bmob.stat = 0 + bmob.silent = 0 + bmob.brain_op_stage = 4.0 + dead_mob_list -= bmob ..() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index bace5337085..ac726058103 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -988,7 +988,7 @@ var/list/slot_equipment_priority = list( \ if(mind && mind.changeling) add_stings_to_statpanel(mind.changeling.purchasedpowers) - if(spell_list && spell_list.len) //YAY RUNTIMES "runtime error: undefined variable /obj/effect/proc_holder/spell/wizard/targeted/enthrall/var/len" BYOND is fucking up references for some reason. This one breaks admin-made shadowlings. + if(spell_list && spell_list.len) for(var/obj/effect/proc_holder/spell/wizard/S in spell_list) switch(S.charge_type) if("recharge")