/mob/living/carbon/human/proc/monkeyize() if (src.monkeyizing) return for(var/obj/item/W in src) if (W==src.w_uniform) // will be teared continue drop_from_slot(W) src.update_clothing() src.monkeyizing = 1 src.canmove = 0 src.icon = null src.invisibility = 101 for(var/t in src.organs) //src.organs[text("[]", t)] = null del(src.organs[text("[]", t)]) var/atom/movable/overlay/animation = new /atom/movable/overlay( src.loc ) animation.icon_state = "blank" animation.icon = 'mob.dmi' animation.master = src flick("h2monkey", animation) sleep(48) //animation = null del(animation) var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( src.loc ) O.name = "monkey" O.dna = src.dna src.dna = null O.dna.uni_identity = "00600200A00E0110148FC01300B009" //O.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8" O.dna.struc_enzymes = "[copytext(O.dna.struc_enzymes,1,1+3*13)]BB8" O.loc = src.loc O.virus = src.virus src.virus = null if (O.virus) O.virus.affected_mob = O if (src.client) src.client.mob = O if(src.mind) src.mind.transfer_to(O) O.a_intent = "hurt" O << "You are now a monkey." var/prev_body = src src = null //prevent terminating proc due to folowing del() del(prev_body) return O /mob/new_player/AIize() src.spawning = 1 return ..() /mob/living/carbon/human/AIize() if (src.monkeyizing) return for(var/t in src.organs) del(src.organs[text("[]", t)]) return ..() /mob/living/carbon/AIize() if (src.monkeyizing) return for(var/obj/item/W in src) drop_from_slot(W) src.update_clothing() src.monkeyizing = 1 src.canmove = 0 src.icon = null src.invisibility = 101 return ..() /mob/proc/AIize() src.client.screen.len = null var/mob/living/silicon/ai/O = new /mob/living/silicon/ai( src.loc ) O.icon_state = "ai" O.invisibility = 0 O.canmove = 0 O.name = src.name O.real_name = src.real_name O.anchored = 1 O.aiRestorePowerRoutine = 0 O.lastKnownIP = src.client.address mind.transfer_to(O) O.mind.original = O var/obj/loc_landmark for(var/obj/landmark/start/sloc in world) if (sloc.name != "AI") continue if (locate(/mob) in sloc.loc) continue loc_landmark = sloc if (!loc_landmark) for(var/obj/landmark/tripai in world) if (tripai.name == "tripai") if(locate(/mob) in tripai.loc) continue loc_landmark = tripai if (!loc_landmark) O << "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone." for(var/obj/landmark/start/sloc in world) if (sloc.name == "AI") loc_landmark = sloc O.loc = loc_landmark.loc for (var/obj/item/device/radio/intercom/comm in O.loc) comm.ai += O O << "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras)." O << "To look at other parts of the station, double-click yourself to get a camera menu." O << "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc." O << "To use something, simply double-click it." O << "Currently right-click functions will not work for the AI (except examine), and will either be replaced with dialogs or won't be usable by the AI." O.laws_object = new /datum/ai_laws/asimov O.show_laws() O << "These laws may be changed by other players, or by you being the traitor." O.verbs += /mob/living/silicon/ai/proc/ai_call_shuttle O.verbs += /mob/living/silicon/ai/proc/show_laws_verb O.verbs += /mob/living/silicon/ai/proc/ai_camera_track O.verbs += /mob/living/silicon/ai/proc/ai_alerts O.verbs += /mob/living/silicon/ai/proc/ai_camera_list O.verbs += /mob/living/silicon/ai/proc/lockdown O.verbs += /mob/living/silicon/ai/proc/disablelockdown O.verbs += /mob/living/silicon/ai/proc/ai_statuschange O.verbs += /mob/living/silicon/ai/proc/ai_roster // O.verbs += /mob/living/silicon/ai/proc/ai_cancel_call O.job = "AI" spawn(0) ainame(O) /* var/randomname = pick(ai_names) var/newname = input(O,"You are the AI. Would you like to change your name to something else?", "Name change",randomname) if (length(newname) == 0) newname = randomname if (newname) if (length(newname) >= 26) newname = copytext(newname, 1, 26) newname = dd_replacetext(newname, ">", "'") O.real_name = newname O.name = newname */ world << text("[O.real_name] is the AI!") spawn(50) world << sound('newAI.ogg') del(src) return O //human -> robot /mob/living/carbon/human/proc/Robotize() if (src.monkeyizing) return for(var/obj/item/W in src) drop_from_slot(W) src.update_clothing() src.monkeyizing = 1 src.canmove = 0 src.icon = null src.invisibility = 101 for(var/t in src.organs) del(src.organs[text("[t]")]) //src.client.screen -= main_hud1.contents src.client.screen -= src.hud_used.contents src.client.screen -= src.hud_used.adding src.client.screen -= src.hud_used.mon_blo src.client.screen -= list( src.oxygen, src.throw_icon, src.i_select, src.m_select, src.toxin, src.internals, src.fire, src.hands, src.healths, src.pullin, src.blind, src.flash, src.rest, src.sleep, src.mach ) src.client.screen -= list( src.zone_sel, src.oxygen, src.throw_icon, src.i_select, src.m_select, src.toxin, src.internals, src.fire, src.hands, src.healths, src.pullin, src.blind, src.flash, src.rest, src.sleep, src.mach ) var/mob/living/silicon/robot/O = new /mob/living/silicon/robot( src.loc ) // cyborgs produced by Robotize get an automatic power cell O.cell = new(O) O.cell.maxcharge = 7500 O.cell.charge = 7500 O.gender = src.gender O.invisibility = 0 O.name = "Cyborg" O.real_name = "Cyborg" O.lastKnownIP = src.client.address if (src.mind) src.mind.transfer_to(O) if (src.mind.assigned_role == "Cyborg") src.mind.original = O else if (src.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 //welp src.mind = new /datum/mind( ) src.mind.key = src.key src.mind.current = O src.mind.original = O src.mind.transfer_to(O) ticker.minds += O.mind O.loc = src.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" del(src) return O //human -> alien /mob/living/carbon/human/proc/Alienize() if (src.monkeyizing) return for(var/obj/item/W in src) drop_from_slot(W) src.update_clothing() src.monkeyizing = 1 src.canmove = 0 src.icon = null src.invisibility = 101 for(var/t in src.organs) del(src.organs[t]) // var/atom/movable/overlay/animation = new /atom/movable/overlay( src.loc ) // animation.icon_state = "blank" // animation.icon = 'mob.dmi' // animation.master = src // flick("h2alien", animation) // sleep(48) // del(animation) var/CASTE = pick("Hunter","Sentinel","Drone") var/mob/O switch(CASTE) if("Hunter") O = new /mob/living/carbon/alien/humanoid/hunter (src.loc) if("Sentinel") O = new /mob/living/carbon/alien/humanoid/sentinel (src.loc) if("Drone") O = new /mob/living/carbon/alien/humanoid/drone (src.loc) O.dna = src.dna src.dna = null O.dna.uni_identity = "00600200A00E0110148FC01300B009" O.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8" O.mind = new//Mind initialize stuff. O.mind.current = O O.mind.assigned_role = "Alien" O.mind.special_role = CASTE O.mind.key = src.key if(src.client) src.client.mob = O O.loc = src.loc O << "You are now an alien." del(src) return