From f3dd3dfe9f593089cddd62bbaf838962b26679f2 Mon Sep 17 00:00:00 2001 From: cib Date: Tue, 29 May 2012 15:45:00 +0200 Subject: [PATCH] The change projectile code is a lovely copypaste again. --- code/modules/projectiles/projectile/change.dm | 155 +++++++++++++++++- 1 file changed, 146 insertions(+), 9 deletions(-) diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 26a5ca1f42d..676aaac977b 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -29,25 +29,162 @@ if("monkey") if (M.monkeyizing) return - if(istype(M,/mob/living/carbon/human)) - M:monkeyize() + M.update_clothing() + M.monkeyizing = 1 + M.canmove = 0 + M.icon = null + M.invisibility = 101 + var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( M.loc ) + O.name = "monkey" + if (M.client) + M.client.mob = O + if(M.mind) + M.mind.transfer_to(O) + O.a_intent = "hurt" + O.universal_speak = 1 + O << "You are now a monkey." + del(M) + return O if("robot") if (M.monkeyizing) return - if(istype(M,/mob/living/carbon/human)) - M:Robotize() + M.update_clothing() + M.monkeyizing = 1 + M.canmove = 0 + M.icon = null + M.invisibility = 101 + if(M.client) + M.client.screen -= M.hud_used.contents + M.client.screen -= M.hud_used.adding + M.client.screen -= M.hud_used.mon_blo + M.client.screen -= list( M.oxygen, M.throw_icon, M.i_select, M.m_select, M.toxin, M.internals, M.fire, M.hands, M.healths, M.pullin, M.blind, M.flash, M.rest, M.sleep, M.mach ) + M.client.screen -= list( M.zone_sel, M.oxygen, M.throw_icon, M.i_select, M.m_select, M.toxin, M.internals, M.fire, M.hands, M.healths, M.pullin, M.blind, M.flash, M.rest, M.sleep, M.mach ) + + var/mob/living/silicon/robot/O = new /mob/living/silicon/robot( M.loc ) + O.cell = new(O) + O.cell.maxcharge = 7500 + O.cell.charge = 7500 + O.gender = M.gender + O.invisibility = 0 + O.name = "Cyborg" + O.real_name = "Cyborg" + if (M.mind) + M.mind.transfer_to(O) + if (M.mind.assigned_role == "Cyborg") + M.mind.original = O + else if (M.mind.special_role) O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") + else + M.mind = new /datum/mind( ) + M.mind.key = M.key + M.mind.current = O + M.mind.original = O + M.mind.transfer_to(O) + + if(!(O.mind in ticker.minds)) + ticker.minds += O.mind//Adds them to regular mind list. + + O.loc = loc + O << "You are playing a Robot. A Robot can interact with most electronic objects in its view point." + O << "You must follow the laws that the AI has. You are the AI's assistant to the station basically." + O << "To use something, simply double-click it." + O << {"Use say ":s to speak to fellow cyborgs and the AI through binary."} + + O.job = "Cyborg" + + O.mmi = new /obj/item/device/mmi(O) + O.mmi.transfer_identity(M)//Does not transfer key/client. + del(M) + return O if("metroid") if (M.monkeyizing) return - if(istype(M,/mob/living/carbon/human)) - M:Metroidize() + M.update_clothing() + M.monkeyizing = 1 + M.canmove = 0 + M.icon = null + M.invisibility = 101 + if(prob(50)) + var/mob/living/carbon/metroid/adult/new_metroid = new /mob/living/carbon/metroid/adult (M.loc) + if (M.client) + M.client.mob = new_metroid + if(M.mind) + M.mind.transfer_to(new_metroid) + + new_metroid.a_intent = "hurt" + new_metroid << "You are now an adult Metroid." + new_metroid.universal_speak = 1 + del(M) + return new_metroid + else + var/mob/living/carbon/metroid/new_metroid = new /mob/living/carbon/metroid (M.loc) + if (M.client) + M.client.mob = new_metroid + if(M.mind) + M.mind.transfer_to(new_metroid) + new_metroid.a_intent = "hurt" + new_metroid.universal_speak = 1 + new_metroid << "You are now a baby Metroid." + del(M) + return new_metroid if("alien") if (M.monkeyizing) return - if(istype(M,/mob/living/carbon/human)) - M:Alienize() + M.update_clothing() + M.monkeyizing = 1 + M.canmove = 0 + M.icon = null + M.invisibility = 101 + var/alien_caste = pick("Hunter","Sentinel","Drone") + var/mob/living/carbon/alien/humanoid/new_xeno + switch(alien_caste) + if("Hunter") + new_xeno = new /mob/living/carbon/alien/humanoid/hunter (M.loc) + if("Sentinel") + new_xeno = new /mob/living/carbon/alien/humanoid/sentinel (M.loc) + if("Drone") + new_xeno = new /mob/living/carbon/alien/humanoid/drone (M.loc) + if (M.client) + M.client.mob = new_xeno + if(M.mind) + M.mind.transfer_to(new_xeno) + new_xeno.a_intent = "hurt" + new_xeno.universal_speak = 1 + new_xeno << "You are now an alien." + del(M) + return new_xeno if("human") if (M.monkeyizing) - return + return + M.update_clothing() + M.monkeyizing = 1 + M.canmove = 0 + M.icon = null + M.invisibility = 101 + var/mob/living/carbon/human/O = new /mob/living/carbon/human( M.loc ) + + var/first = pick(first_names_male) + var/last = pick(last_names) + O.name = "[first] [last]" + O.real_name = "[first] [last]" + var/race = pick("lizard","golem","metroid","plant","normal") + switch(race) + if("lizard") + O.mutantrace = "lizard" + if("golem") + O.mutantrace = "golem" + if("metroid") + O.mutantrace = "metroid" + if("plant") + O.mutantrace = "plant" + if("normal") + O.mutantrace = "" + if (M.client) + M.client.mob = O + if(M.mind) + M.mind.transfer_to(O) + O.a_intent = "hurt" + O << "You are now a human." + del(M) + return O return