diff --git a/code/datums/disease.dm b/code/datums/disease.dm index 12956dc8ca..55422070fc 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -150,7 +150,7 @@ to null does not delete the object itself. Thank you. var/saved_type = "[type]"//copy the value, not create the reference to it, so when the object is deleted, the value remains. affected_mob.resistances += text2path(saved_type) if((affected_mob) && (istype(src, /datum/disease/alien_embryo)))//Get rid of the flag. - affected_mob.alien_egg_flag = 0 + affected_mob.status_flags &= ~(XENO_HOST) // world << "Removing [src]" spawn(0) affected_mob.viruses -= src //I am a silly person for trying affected_mob.viruses.Find(src_type) instead of what it's like now and getting LOL WHAT IS THIS PROC diff --git a/code/defines/atom.dm b/code/defines/atom.dm index f04d83c77f..b58a510170 100644 --- a/code/defines/atom.dm +++ b/code/defines/atom.dm @@ -2,7 +2,6 @@ layer = 2 var/level = 2 var/flags = FPRINT - var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. var/list/fingerprints var/list/fingerprintshidden var/fingerprintslast = null diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 3feb18c89f..0be102cfa5 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -317,7 +317,7 @@ var/obj/item/master = null //Since any item can now be a piece of clothing, this has to be put here so all items share it. - var/see_face = 1.0 + var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. var/color = null var/body_parts_covered = 0 //see setup.dm for appropriate bit flags var/protective_temperature = 0 diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 98ae0d01ce..576a9f11f0 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -31,7 +31,7 @@ name = "cult hood" icon_state = "culthood" desc = "A hood worn by the followers of Nar-Sie." - see_face = 0 + flags_inv = HIDEFACE flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0) @@ -60,7 +60,7 @@ icon_state = "magus" item_state = "magus" desc = "A helm worn by the followers of Nar-Sie." - see_face = 0 + flags_inv = HIDEFACE flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0) diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index 5e3f3392cf..65ea2120a9 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -91,7 +91,7 @@ C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]") if(patient.stat == 2) C.images += image(tempHud,patient,"huddead") - else if(patient.alien_egg_flag) + else if(patient.status_flags & XENO_HOST) C.images += image(tempHud,patient,"hudxeno") else if(foundVirus) C.images += image(tempHud,patient,"hudill") diff --git a/code/game/objects/alien/facehugger.dm b/code/game/objects/alien/facehugger.dm index 9cfebd2ede..17213ecbb8 100644 --- a/code/game/objects/alien/facehugger.dm +++ b/code/game/objects/alien/facehugger.dm @@ -153,7 +153,8 @@ var/const/MAX_ACTIVE_TIME = 600 if(!sterile) target.contract_disease(new /datum/disease/alien_embryo(0)) //so infection chance is same as virus infection chance for(var/datum/disease/alien_embryo/A in target.viruses) - target.alien_egg_flag = max(1,target.alien_egg_flag) + target.status_flags |= XENO_HOST + break for(var/mob/O in viewers(target,null)) O.show_message("\red \b [src] falls limp after violating [target]'s face!", 1) diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index f6fd830ebf..6e97188ccf 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -3,7 +3,7 @@ /mob/living/carbon/human/verb/suicide() set hidden = 1 - if (stat == 2) + if (stat == DEAD) src << "You're already dead!" return @@ -17,11 +17,10 @@ var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - if(alien_egg_flag) - src << "The alien inside you forces you to breathe, preventing you from suiciding." - return - if(confirm == "Yes") + if(!canmove || restrained()) //just while I finish up the new 'fun' suiciding verb. This is to prevent metagaming via suicide + src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))" + return suiciding = 1 //instead of killing them instantly, just put them at -175 health and let 'em gasp for a while viewers(src) << "\red [src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide." @@ -69,11 +68,10 @@ var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") - if(alien_egg_flag) - src << "The alien inside you forces you to breathe, preventing you from suiciding." - return - if(confirm == "Yes") + if(!canmove || restrained()) + src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))" + return suiciding = 1 //instead of killing them instantly, just put them at -175 health and let 'em gasp for a while viewers(src) << "\red [src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide." diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 292a387149..5aec8547bf 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -464,7 +464,8 @@ holder.state = 1 update_admins(rank) if(istype(mob, /mob/dead/observer)) - mob:reenter_corpse() + var/mob/dead/observer/ghost = mob + ghost.reenter_corpse() src << "\blue You are now playing" feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index e4042500c0..4124a70614 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -1,9 +1,7 @@ //////////// //SECURITY// //////////// -#define TOPIC_SPAM_DELAY 4 //4 tick delay is about half a second - // REDUCED because holy fucking balls the delay was too damn high - +#define TOPIC_SPAM_DELAY 4 //4 ticks is about 3/10ths of a second #define UPLOAD_LIMIT 1048576 //Restricts client uploads to the server to 1MB //Could probably do with being lower. /* When somebody clicks a link in game, this Topic is called first. @@ -21,9 +19,11 @@ If you have any questions about this stuff feel free to ask. ~Carn */ /client/Topic(href, href_list, hsrc) + if(!usr || usr != mob) //stops us calling Topic for somebody else's client. Also helps prevent usr=null + return + //Reduces spamming of links by dropping calls that happen during the delay period if(next_allowed_topic_time > world.time) -// src << "\red DEBUG: Error: SPAM" return next_allowed_topic_time = world.time + TOPIC_SPAM_DELAY @@ -91,7 +91,7 @@ del(src) return - if (((world.address == address || !(address)) && !(host))) + if ( (world.address == address || !address) && !host ) host = key world.update_status() diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 0704b3f7e6..293f481bee 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -57,7 +57,7 @@ C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]") if(patient.stat == 2) C.images += image(tempHud,patient,"huddead") - else if(patient.alien_egg_flag) + else if(patient.status_flags & XENO_HOST) C.images += image(tempHud,patient,"hudxeno") else if(foundVirus) C.images += image(tempHud,patient,"hudill") diff --git a/code/modules/clothing/head/miscellaneous.dm b/code/modules/clothing/head/miscellaneous.dm index 8061c3cd44..ab8f20be2e 100644 --- a/code/modules/clothing/head/miscellaneous.dm +++ b/code/modules/clothing/head/miscellaneous.dm @@ -90,9 +90,8 @@ icon_state = "syndicate" item_state = "syndicate" desc = "A plastic replica of a syndicate agent's space helmet, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" - see_face = 0.0 flags = FPRINT | TABLEPASS | BLOCKHAIR - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE /obj/item/clothing/head/cueball @@ -125,5 +124,4 @@ icon_state = "cardborg_h" item_state = "cardborg_h" flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH - see_face = 0.0 - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE diff --git a/code/modules/clothing/head/pumpkin.dm b/code/modules/clothing/head/pumpkin.dm index 11a278a5ee..798632b460 100644 --- a/code/modules/clothing/head/pumpkin.dm +++ b/code/modules/clothing/head/pumpkin.dm @@ -5,8 +5,7 @@ item_state = "hardhat0_pumpkin" color = "pumpkin" flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR - see_face = 0.0 - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE var/brightness_on = 2 //luminosity when on var/on = 0 diff --git a/code/modules/clothing/head/welding.dm b/code/modules/clothing/head/welding.dm index 60c5ee6cfb..6cf8a1e922 100644 --- a/code/modules/clothing/head/welding.dm +++ b/code/modules/clothing/head/welding.dm @@ -3,14 +3,13 @@ desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye." icon_state = "welding" flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH - see_face = 0.0 item_state = "welding" protective_temperature = 1300 m_amt = 3000 g_amt = 1000 var/up = 0 armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE attack_self() @@ -25,16 +24,14 @@ if(usr.canmove && !usr.stat && !usr.restrained()) if(src.up) src.up = !src.up - src.see_face = !src.see_face src.flags |= HEADCOVERSEYES - flags_inv |= HIDEMASK|HIDEEARS|HIDEEYES + flags_inv |= HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE icon_state = "welding" usr << "You flip the mask down to protect your eyes." else src.up = !src.up - src.see_face = !src.see_face src.flags &= ~HEADCOVERSEYES - flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES) + flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) icon_state = "weldingup" usr << "You push the mask up out of your face." usr.update_inv_head() //so our mob-overlays update \ No newline at end of file diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index a00f4d1f77..900228b655 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -3,8 +3,8 @@ desc = "LOADSAMONEY" icon_state = "balaclava" item_state = "balaclava" - see_face = 0.0 flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR + flags_inv = HIDEFACE w_class = 2 /obj/item/clothing/mask/luchador @@ -13,7 +13,7 @@ icon_state = "luchag" item_state = "luchag" flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR - see_face = 0.0 + flags_inv = HIDEFACE w_class = 2 /obj/item/clothing/mask/luchador/tecnicos diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 7b738e7942..af00d7494d 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -3,9 +3,8 @@ desc = "A face-covering mask that can be connected to an air supply." icon_state = "gas_alt" flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES - flags_inv = HIDEEARS|HIDEEYES + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE w_class = 3.0 - see_face = 0.0 item_state = "gas_alt" protective_temperature = 500 heat_transfer_coefficient = 0.01 diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index a318956e32..bbeef946bc 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -23,7 +23,7 @@ desc = "Warning: moustache is fake." icon_state = "fake-moustache" flags = FPRINT|TABLEPASS - see_face = 0.0 //Well, it's a disguise, of course. + flags_inv = HIDEFACE /obj/item/clothing/mask/owl_mask name = "owl mask" diff --git a/code/modules/clothing/spacesuit.dm b/code/modules/clothing/spacesuit.dm index b2236db28a..3feec00d30 100644 --- a/code/modules/clothing/spacesuit.dm +++ b/code/modules/clothing/spacesuit.dm @@ -9,11 +9,10 @@ Space suit parts icon_state = "space" desc = "A special helmet designed for work in a hazardous, low-pressure environment." flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR - see_face = 0.0 item_state = "space" permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE /obj/item/clothing/suit/space diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm index 05a236e477..aaf7f5ba80 100644 --- a/code/modules/clothing/spacesuits/ninja.dm +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -16,7 +16,6 @@ name = "ninja hood" icon_state = "s-ninja" item_state = "s-ninja_mask" - see_face = 1 allowed = list(/obj/item/weapon/cell) armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25) diff --git a/code/modules/clothing/spacesuits/void.dm b/code/modules/clothing/spacesuits/void.dm index 261af899eb..51c20c7d17 100644 --- a/code/modules/clothing/spacesuits/void.dm +++ b/code/modules/clothing/spacesuits/void.dm @@ -3,7 +3,6 @@ desc = "A high tech, NASA Centcom branch designed, dark red space suit helmet. Used for AI satellite maintenance." icon_state = "void" item_state = "void" - see_face = 1 /obj/item/clothing/suit/space/nasavoid diff --git a/code/modules/clothing/uniforms/captain.dm b/code/modules/clothing/uniforms/captain.dm index c47da5e020..abb9931f44 100644 --- a/code/modules/clothing/uniforms/captain.dm +++ b/code/modules/clothing/uniforms/captain.dm @@ -14,7 +14,7 @@ item_state = "capspacehelmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads." flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR - see_face = 0.0 + flags_inv = HIDEFACE permeability_coefficient = 0.01 armor = list(melee = 65, bullet = 50, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 50) diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index 06595dab0f..5a47dfbd1a 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -22,15 +22,20 @@ user << "You find putting an evidence bag in another evidence bag to be slightly absurd." return - if(O in user && (user.l_hand != O && user.r_hand != O)) //If it is in their inventory, but not in their hands, don't grab it off of them. - user << "You are wearing that." - return - if(contents.len) user << "The [src] already has something inside it." return ..() - if(istype(O.loc,/obj/item/weapon/storage)) + if(O in user) //If it is in their inventory, but not in their hands, don't grab it off of them. + if(user.l_hand == O) + user.drop_l_hand() + else if(user.r_hand == O) + user.drop_r_hand() + else + user << "You are wearing that." + return + + else if(istype(O.loc,/obj/item/weapon/storage)) var/obj/item/weapon/storage/U = O.loc user.client.screen -= O U.contents.Remove(O) @@ -38,7 +43,8 @@ user.visible_message("\The [user] puts \a [O] into \a [src]", "You put \the [O] inside \the [src].",\ "You hear a rustle as someone puts something into a plastic bag.") icon_state = "evidence" - overlays += O + var/image/I = image("icon"=O, "layer"=FLOAT_LAYER) //take a snapshot. (necessary to stop the underlays appearing under our inventory-HUD slots ~Carn + underlays += I desc = "An evidence bag containing \a [O]. [O.desc]" O.loc = src w_class = O.w_class @@ -50,7 +56,7 @@ var/obj/item/I = contents[1] user.visible_message("\The [user] takes \a [I] out of \a [src]", "You take \the [I] out of \the [src].",\ "You hear someone rustle around in a plastic bag, and remove something.") - overlays -= I + underlays = null //remove the underlays user.put_in_hands(I) w_class = 1 icon_state = "evidenceobj" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index ccf6540413..be94de0303 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -7,21 +7,18 @@ stat = DEAD if(body) - var/turf/location = get_turf(body)//Where is the mob located? - if(location)//Found turf. - loc = location - else//Safety, in case a turf cannot be found. - loc = pick(latejoin) - if(!istype(body,/mob)) return//This needs to be recoded sometime so it has loc as its first arg - real_name = body.name - original_name = body.original_name //Original name is only used in ghost chat! It is not to be edited by anything! - name = body.original_name - if(!name) + var/turf/T = get_turf(body) //Where is the body located? + if(!T) T = pick(latejoin) //Safety in case we cannot find the body's position + loc = T + if(ismob(body)) + real_name = body.real_name + original_name = body.original_name //Original name is only used in ghost chat! It is not to be edited by anything! + name = body.original_name + if(!safety) + corpse = body + if(!name) //To prevent nameless ghosts name = capitalize(pick(first_names_male) + " " + capitalize(pick(last_names))) real_name = name - if(!safety) - corpse = body - verbs += /mob/dead/observer/proc/reenter_corpse return /mob/dead/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) @@ -33,46 +30,38 @@ Works together with spawning an observer, noted above. /mob/proc/ghostize(var/transfer_mind = 0) if(key) + var/mob/dead/observer/ghost = new(src,transfer_mind) //Transfer safety to observer spawning proc. if(client) - client.screen.len = null//Clear the hud, just to be sure. - var/mob/dead/observer/ghost = new(src,transfer_mind)//Transfer safety to observer spawning proc. - if(transfer_mind)//When a body is destroyed. - if(mind) - mind.transfer_to(ghost) - else//They may not have a mind and be gibbed/destroyed. - ghost.key = key - else//Else just modify their key and connect them. + client.images.len = null //remove the images such as AIs being unable to see runes + client.screen.len = null //remove hud items just in case + ghost.attack_log = attack_log //preserve our attack logs by copying them to our ghost + if(transfer_mind && mind) //When a body is destroyed attempt to transfer their mind + mind.transfer_to(ghost) + else //Else just modify their key and connect them. ghost.key = key - verbs -= /mob/proc/ghost - if (ghost.client) - ghost.client.eye = ghost - - else if(transfer_mind)//Body getting destroyed but the person is not present inside. + else if(transfer_mind) //Body getting destroyed but the person is not present inside. for(var/mob/dead/observer/O in world) - if(O.corpse == src&&O.key)//If they have the same corpse and are keyed. + if(O.corpse == src && O.key) //If they have the same corpse and are keyed. if(mind) - O.mind = mind//Transfer their mind if they have one. + O.mind = mind //Transfer their mind if they have one. break return /* This is the proc mobs get to turn into a ghost. Forked from ghostize due to compatibility issues. */ -/mob/proc/ghost() - set category = "Ghost" +/mob/living/verb/ghost() + set category = "OOC" set name = "Ghost" - set desc = "You cannot be revived as a ghost." + set desc = "Relinquish your life and enter the land of the dead." - /*if(stat != 2) //this check causes nothing but troubles. Commented out for Nar-Sie's sake. --rastaf0 - src << "Only dead people and admins get to ghost, and admins don't use this verb to ghost while alive." - return*/ - if(key) - var/mob/dead/observer/ghost = new(src) - ghost.key = key - verbs -= /mob/proc/ghost - if (ghost.client) - ghost.client.eye = ghost + if(stat == DEAD) + ghostize(0) + else + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you may not play again this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + if(response != "Ghost") return //didn't want to ghost after-all + ghostize(1) //safety is on so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 return /mob/proc/adminghostize() @@ -124,18 +113,20 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if (timeleft) stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]") -/mob/dead/observer/proc/reenter_corpse() +/mob/dead/observer/verb/reenter_corpse() set category = "Ghost" set name = "Re-enter Corpse" + if(!client) return if(!corpse) - alert("You don't have a corpse!") + src << "Sorry, you don't have a corpse to re-enter." return - if(client && client.holder && client.holder.state == 2) + if(client.holder && client.holder.state == 2) var/rank = client.holder.rank client.clear_admin_verbs() client.holder.state = 1 client.update_admins(rank) - if(iscultist(corpse) && corpse.ajourn==1 && corpse.stat!=2) //checks if it's an astral-journeying cultistm if it is and he's not on an astral journey rune, re-entering won't work + + if(iscultist(corpse) && corpse.ajourn==1 && corpse.stat != DEAD) //checks if it's an astral-journeying cultistm if it is and he's not on an astral journey rune, re-entering won't work var/S=0 for(var/obj/effect/rune/R in world) if(corpse.loc==R.loc && R.word1 == wordhell && R.word2 == wordtravel && R.word3 == wordself) @@ -146,23 +137,22 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(corpse.ajourn) corpse.ajourn=0 client.mob = corpse - if (corpse.stat==2) - verbs += /mob/proc/ghost del(src) /mob/dead/observer/proc/dead_tele() set category = "Ghost" set name = "Teleport" set desc= "Teleport to a location" - if((usr.stat != 2) || !istype(usr, /mob/dead/observer)) + if(!istype(usr, /mob/dead/observer)) usr << "Not when you're not dead!" return usr.verbs -= /mob/dead/observer/proc/dead_tele spawn(30) usr.verbs += /mob/dead/observer/proc/dead_tele var/A - A = input("Area to jump to", "BOOYEA", A) in ghostteleportlocs + A = input("Area to jump to", "BOOYEA", A) as null|anything in ghostteleportlocs var/area/thearea = ghostteleportlocs[A] + if(!thearea) return var/list/L = list() for(var/turf/T in get_area_turfs(thearea.type)) diff --git a/code/modules/mob/living/carbon/alien/humanoid/death.dm b/code/modules/mob/living/carbon/alien/humanoid/death.dm index 3a48378c4c..81f50f19f9 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/death.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/death.dm @@ -1,34 +1,16 @@ /mob/living/carbon/alien/humanoid/death(gibbed) - if(src.stat == 2) - return - if(src.healths) - src.healths.icon_state = "health6" - src.stat = 2 + if(stat == DEAD) return + if(healths) healths.icon_state = "health6" + stat = DEAD - if (!gibbed) -// emote("deathgasp") // Dead -- Skie // Doesn't work due to stat == 2 -- Urist - playsound(src.loc, 'hiss6.ogg', 80, 1, 1) + if(!gibbed) + playsound(loc, 'hiss6.ogg', 80, 1, 1) for(var/mob/O in viewers(src, null)) O.show_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...", 1) - - src.canmove = 0 - if(src.client) - src.blind.layer = 0 - src.lying = 1 - var/h = src.hand - src.hand = 0 - drop_item() - src.hand = 1 - drop_item() - src.hand = h - - if (src.key) - spawn(10) - if(src.key && src.stat == 2) - src.verbs += /mob/proc/ghost + update_canmove() + if(client) blind.layer = 0 tod = worldtime2text() //weasellos time of death patch - if (mind) mind.store_memory("Time of death: [tod]", 0) - else src << "We seem to have misplaced your mind datum, so we can't add this to your memory, but you died at [tod]" + if(mind) mind.store_memory("Time of death: [tod]", 0) return ..(gibbed) diff --git a/code/modules/mob/living/carbon/alien/humanoid/login.dm b/code/modules/mob/living/carbon/alien/humanoid/login.dm index 686f36c08d..607a03fef0 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/login.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/login.dm @@ -1,106 +1,7 @@ /mob/living/carbon/alien/humanoid/Login() ..() - update_hud() - - if (!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == DEAD) - src.verbs += /mob/proc/ghost - + if(!isturf(loc)) + client.eye = loc + client.perspective = EYE_PERSPECTIVE return - /* - src.throw_icon = new /obj/screen(null) - src.oxygen = new /obj/screen( null ) - src.i_select = new /obj/screen( null ) - src.m_select = new /obj/screen( null ) - src.toxin = new /obj/screen( null ) - src.internals = new /obj/screen( null ) - src.mach = new /obj/screen( null ) - src.fire = new /obj/screen( null ) - src.bodytemp = new /obj/screen( null ) - src.healths = new /obj/screen( null ) - src.pullin = new /obj/screen( null ) - src.blind = new /obj/screen( null ) - src.flash = new /obj/screen( null ) - src.hands = new /obj/screen( null ) - src.sleep = new /obj/screen( null ) - src.rest = new /obj/screen( null ) - src.zone_sel = new /obj/screen/zone_sel( null ) - - regenerate_icons() - - src.mach.dir = NORTH - - src.throw_icon.icon_state = "act_throw_off" - src.oxygen.icon_state = "oxy0" - src.i_select.icon_state = "selector" - src.m_select.icon_state = "selector" - src.toxin.icon_state = "toxin0" - src.bodytemp.icon_state = "temp1" - src.internals.icon_state = "internal0" - src.mach.icon_state = null - src.fire.icon_state = "fire0" - src.healths.icon_state = "health0" - src.pullin.icon_state = "pull0" - src.blind.icon_state = "black" - src.hands.icon_state = "hand" - src.flash.icon_state = "blank" - src.sleep.icon_state = "sleep0" - src.rest.icon_state = "rest0" - - src.hands.dir = NORTH - - src.throw_icon.name = "throw" - src.oxygen.name = "oxygen" - src.i_select.name = "intent" - src.m_select.name = "moving" - src.toxin.name = "toxin" - src.bodytemp.name = "body temperature" - src.internals.name = "internal" - src.mach.name = "Reset Machine" - src.fire.name = "fire" - src.healths.name = "health" - src.pullin.name = "pull" - src.blind.name = " " - src.hands.name = "hand" - src.flash.name = "flash" - src.sleep.name = "sleep" - src.rest.name = "rest" - - src.throw_icon.screen_loc = "9,1" - src.oxygen.screen_loc = "15,12" - src.i_select.screen_loc = "14:-11,15" - src.m_select.screen_loc = "14:-11,14" - src.toxin.screen_loc = "15,10" - src.internals.screen_loc = "15,14" - src.mach.screen_loc = "14,1" - src.fire.screen_loc = "15,8" - src.bodytemp.screen_loc = "15,6" - src.healths.screen_loc = "15,5" - src.sleep.screen_loc = "15,3" - src.rest.screen_loc = "15,2" - src.pullin.screen_loc = "15,1" - src.hands.screen_loc = "1,3" - src.blind.screen_loc = "1,1 to 15,15" - src.flash.screen_loc = "1,1 to 15,15" - - src.blind.layer = 0 - src.flash.layer = 17 - - src.client.screen.len = null - src.client.screen -= list( src.throw_icon, src.zone_sel, src.oxygen, src.i_select, src.m_select, src.toxin, src.bodytemp, 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.throw_icon, src.zone_sel, src.oxygen, src.i_select, src.m_select, src.toxin, src.bodytemp, src.internals, src.fire, src.hands, src.healths, src.pullin, src.blind, src.flash, src.rest, src.sleep, src.mach ) - src.client.screen -= src.hud_used.adding - src.client.screen += src.hud_used.adding - - if (!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == 2) - src.verbs += /mob/proc/ghost - - return - -*/ \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/larva/death.dm b/code/modules/mob/living/carbon/alien/larva/death.dm index 8e2fe18549..9965292233 100644 --- a/code/modules/mob/living/carbon/alien/larva/death.dm +++ b/code/modules/mob/living/carbon/alien/larva/death.dm @@ -1,32 +1,14 @@ /mob/living/carbon/alien/larva/death(gibbed) - if(src.stat == 2) - return - if(src.healths) - src.healths.icon_state = "health6" + if(stat == DEAD) return + if(healths) healths.icon_state = "health6" + stat = DEAD + icon_state = "larva_l" - src.icon_state = "larva_l" - src.stat = 2 + if(!gibbed) + update_canmove() + if(client) blind.layer = 0 - if (!gibbed) - - src.canmove = 0 - if(src.client) - src.blind.layer = 0 - src.lying = 1 - var/h = src.hand - src.hand = 0 - drop_item() - src.hand = 1 - drop_item() - src.hand = h - - if (src.client) - spawn(10) - if(src.client && src.stat == 2) - src.verbs += /mob/proc/ghost - - if(mind) // Skie - Added check that there's someone controlling the alien - tod = worldtime2text() //weasellos time of death patch - mind.store_memory("Time of death: [tod]", 0) + tod = worldtime2text() //weasellos time of death patch + if(mind) mind.store_memory("Time of death: [tod]", 0) return ..(gibbed) diff --git a/code/modules/mob/living/carbon/alien/larva/login.dm b/code/modules/mob/living/carbon/alien/larva/login.dm index eeff902cce..5c2d6817cf 100644 --- a/code/modules/mob/living/carbon/alien/larva/login.dm +++ b/code/modules/mob/living/carbon/alien/larva/login.dm @@ -1,10 +1,6 @@ /mob/living/carbon/alien/larva/Login() ..() - - if (!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == 2) - src.verbs += /mob/proc/ghost - + if(!isturf(loc)) + client.eye = loc + client.perspective = EYE_PERSPECTIVE return diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 9b30ff5d76..1d486f4a26 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -33,17 +33,6 @@ return ..() -/mob/living/carbon/brain/Login() - ..() - - if (!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (!container || !istype(container, /obj/item/device/mmi)) - src.verbs += /mob/proc/ghost - - return - /mob/living/carbon/brain/update_canmove() if(in_contents_of(/obj/mecha)) canmove = 1 else canmove = 0 diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm index 30967cf43c..5c57f16d10 100644 --- a/code/modules/mob/living/carbon/brain/death.dm +++ b/code/modules/mob/living/carbon/brain/death.dm @@ -1,24 +1,17 @@ /mob/living/carbon/brain/death(gibbed) + if(stat == DEAD) return if(!gibbed && container && istype(container, /obj/item/device/mmi))//If not gibbed but in a container. for(var/mob/O in viewers(container, null)) O.show_message(text("\red []'s MMI flatlines!", src), 1, "\red You hear something flatline.", 2) container.icon_state = "mmi_dead" - stat = 2 - - if(blind) - blind.layer = 0 - sight |= SEE_TURFS - sight |= SEE_MOBS - sight |= SEE_OBJS + stat = DEAD + if(blind) blind.layer = 0 + sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS see_in_dark = 8 see_invisible = 2 tod = worldtime2text() //weasellos time of death patch - store_memory("Time of death: [tod]", 0) + if(mind) mind.store_memory("Time of death: [tod]", 0) //mind. ? - if (key) - spawn(50) - if(key && stat == 2) - src.verbs += /mob/proc/ghost return ..(gibbed) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/brain/login.dm b/code/modules/mob/living/carbon/brain/login.dm new file mode 100644 index 0000000000..4b1749add2 --- /dev/null +++ b/code/modules/mob/living/carbon/brain/login.dm @@ -0,0 +1,6 @@ +/mob/living/carbon/brain/Login() + ..() + if (!isturf(loc)) + client.eye = loc + client.perspective = EYE_PERSPECTIVE + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index dc5b90887c..432915361c 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -1,4 +1,3 @@ /mob/living/carbon var/silent = null //Can't talk. Value goes down every life proc. - var/alien_egg_flag = 0 //Have you been infected with an alien egg? Used by Human and Monkey. diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 945266c4c3..ec65fe36dd 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -40,74 +40,44 @@ /mob/living/carbon/human/death(gibbed) - - if(halloss > 0 && (!gibbed)) + if(halloss > 0 && !gibbed) halloss = 0 return - - if(src.stat == 2) - return - - if(src.healths) - src.healths.icon_state = "health5" - - src.stat = 2 - src.dizziness = 0 - src.jitteriness = 0 + if(stat == DEAD) return + if(healths) healths.icon_state = "health5" + stat = DEAD + dizziness = 0 + jitteriness = 0 tension_master.death(src) - if (!gibbed) + if(!gibbed) emote("deathgasp") //let the world KNOW WE ARE DEAD //For ninjas exploding when they die./N - if (istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)&&wear_suit:s_initialized) + if( istype(wear_suit, /obj/item/clothing/suit/space/space_ninja) && wear_suit:s_initialized ) src << browse(null, "window=spideros")//Just in case. var/location = loc explosion(location, 1, 2, 3, 4) - canmove = 0 - if(src.client) - src.blind.layer = 0 - lying = 1 - var/h = src.hand - hand = 0 - drop_item() - hand = 1 - drop_item() - hand = h - //This is where the suicide assemblies checks would go + update_canmove() + if(client) blind.layer = 0 - if (client) - spawn(10) - if(client && src.stat == 2) - verbs += /mob/proc/ghost - - tod = worldtime2text() //weasellos time of death patch - if(mind) - mind.store_memory("Time of death: [tod]", 0) + tod = worldtime2text() //weasellos time of death patch + if(mind) mind.store_memory("Time of death: [tod]", 0) sql_report_death(src) - - //Calls the rounds wincheck, mainly for wizard, malf, and changeling now - ticker.mode.check_win() - //Traitor's dead! Oh no! - /* --Admins do not need to know when people die. This was a relic of the singletraitor times where a traitor dying meant there were no antagonists left ~Erro - if (ticker.mode.name == "traitor" && src.mind && src.mind.special_role == "traitor") - message_admins("\red Traitor [key_name_admin(src)] has died.") - log_game("Traitor [key_name(src)] has died.") - */ + ticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now return ..(gibbed) /mob/living/carbon/human/proc/ChangeToHusk() - if(HUSK in src.mutations) - return + if(HUSK in mutations) return mutations.Add(HUSK) - real_name = "Unknown" + status_flags |= DISFIGURED //makes them unknown without fucking up other stuff like admintools update_body(0) update_mutantrace() return /mob/living/carbon/human/proc/Drain() ChangeToHusk() - mutations.Add(NOCLONE) + mutations |= NOCLONE return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 07fb2c21b9..529b51c70e 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -2,7 +2,7 @@ set src in view() if(!usr || !src) return - if( (usr.sdisabilities & BLIND || usr.blinded || usr.stat) && !istype(usr,/mob/dead/observer) ) + if( usr.sdisabilities & BLIND || usr.blinded || usr.stat==UNCONSCIOUS ) usr << "Something is there but you can't see it." return @@ -13,18 +13,23 @@ var/skipmask = 0 var/skipears = 0 var/skipeyes = 0 + var/skipface = 0 //exosuits and helmets obscure our view and stuff. - if (src.wear_suit) - skipgloves = src.wear_suit.flags_inv & HIDEGLOVES - skipsuitstorage = src.wear_suit.flags_inv & HIDESUITSTORAGE - skipjumpsuit = src.wear_suit.flags_inv & HIDEJUMPSUIT - skipshoes = src.wear_suit.flags_inv & HIDESHOES + if(wear_suit) + skipgloves = wear_suit.flags_inv & HIDEGLOVES + skipsuitstorage = wear_suit.flags_inv & HIDESUITSTORAGE + skipjumpsuit = wear_suit.flags_inv & HIDEJUMPSUIT + skipshoes = wear_suit.flags_inv & HIDESHOES - if (src.head) - skipmask = src.head.flags_inv & HIDEMASK - skipeyes = src.head.flags_inv & HIDEEYES - skipears = src.head.flags_inv & HIDEEARS + if(head) + skipmask = head.flags_inv & HIDEMASK + skipeyes = head.flags_inv & HIDEEYES + skipears = head.flags_inv & HIDEEARS + skipface = head.flags_inv & HIDEFACE + + if(wear_mask) + skipface |= wear_mask & HIDEFACE // crappy hacks because you can't do \his[src] etc. I'm sorry this proc is so unreadable, blame the text macros :< var/t_He = "It" //capitalised for use at the start of each line. @@ -35,16 +40,16 @@ var/msg = "*---------*\nThis is " - if( skipjumpsuit && (wear_mask || skipmask) ) //big suits/masks make it hard to tell their gender + if( skipjumpsuit && skipface ) //big suits/masks/helmets make it hard to tell their gender t_He = "They" t_his = "their" t_him = "them" t_has = "have" t_is = "are" else - if(src.icon) - msg += "\icon[src.icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated - switch(src.gender) + if(icon) + msg += "\icon[icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated + switch(gender) if(MALE) t_He = "He" t_his = "his" @@ -54,137 +59,137 @@ t_his = "her" t_him = "her" - msg += "\a [src]!\n" + msg += "[src.name]!\n" //uniform - if (src.w_uniform && !skipjumpsuit) - if (src.w_uniform.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[src.w_uniform] [src.w_uniform.gender==PLURAL?"some":"a"] blood-stained [src.w_uniform.name]!\n" + if(w_uniform && !skipjumpsuit) + if(w_uniform.blood_DNA) + msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] blood-stained [w_uniform.name]!\n" else - msg += "[t_He] [t_is] wearing \icon[src.w_uniform] \a [src.w_uniform].\n" + msg += "[t_He] [t_is] wearing \icon[w_uniform] \a [w_uniform].\n" //head - if (src.head) - if (src.head.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[src.head] [src.head.gender==PLURAL?"some":"a"] blood-stained [src.head.name] on [t_his] head!\n" + if(head) + if(head.blood_DNA) + msg += "[t_He] [t_is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] blood-stained [head.name] on [t_his] head!\n" else - msg += "[t_He] [t_is] wearing \icon[src.head] \a [src.head] on [t_his] head.\n" + msg += "[t_He] [t_is] wearing \icon[head] \a [head] on [t_his] head.\n" //suit/armour - if (src.wear_suit) - if (src.wear_suit.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[src.wear_suit] [src.wear_suit.gender==PLURAL?"some":"a"] blood-stained [src.wear_suit.name]!\n" + if(wear_suit) + if(wear_suit.blood_DNA) + msg += "[t_He] [t_is] wearing \icon[wear_suit] [wear_suit.gender==PLURAL?"some":"a"] blood-stained [wear_suit.name]!\n" else - msg += "[t_He] [t_is] wearing \icon[src.wear_suit] \a [src.wear_suit].\n" + msg += "[t_He] [t_is] wearing \icon[wear_suit] \a [wear_suit].\n" //suit/armour storage - if(src.s_store && !skipsuitstorage) - if(src.s_store.blood_DNA) - msg += "[t_He] [t_is] carrying \icon[src.s_store] [src.s_store.gender==PLURAL?"some":"a"] blood-stained [src.s_store.name] on [t_his] [src.wear_suit.name]!\n" + if(s_store && !skipsuitstorage) + if(s_store.blood_DNA) + msg += "[t_He] [t_is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] blood-stained [s_store.name] on [t_his] [wear_suit.name]!\n" else - msg += "[t_He] [t_is] carrying \icon[src.s_store] \a [src.s_store] on [t_his] [src.wear_suit.name].\n" + msg += "[t_He] [t_is] carrying \icon[s_store] \a [s_store] on [t_his] [wear_suit.name].\n" //back - if (src.back) - if (src.back.blood_DNA) - msg += "[t_He] [t_has] \icon[src.back] [src.back.gender==PLURAL?"some":"a"] blood-stained [src.back] on [t_his] back.\n" + if(back) + if(back.blood_DNA) + msg += "[t_He] [t_has] \icon[back] [back.gender==PLURAL?"some":"a"] blood-stained [back] on [t_his] back.\n" else - msg += "[t_He] [t_has] \icon[src.back] \a [src.back] on [t_his] back.\n" + msg += "[t_He] [t_has] \icon[back] \a [back] on [t_his] back.\n" //left hand - if (src.l_hand) - if (src.l_hand.blood_DNA) - msg += "[t_He] [t_is] holding \icon[src.l_hand] [src.l_hand.gender==PLURAL?"some":"a"] blood-stained [src.l_hand.name] in [t_his] left hand!\n" + if(l_hand) + if(l_hand.blood_DNA) + msg += "[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in [t_his] left hand!\n" else - msg += "[t_He] [t_is] holding \icon[src.l_hand] \a [src.l_hand] in [t_his] left hand.\n" + msg += "[t_He] [t_is] holding \icon[l_hand] \a [l_hand] in [t_his] left hand.\n" //right hand - if (src.r_hand) - if (src.r_hand.blood_DNA) - msg += "[t_He] [t_is] holding \icon[src.r_hand] [src.r_hand.gender==PLURAL?"some":"a"] blood-stained [src.r_hand.name] in [t_his] right hand!\n" + if(r_hand) + if(r_hand.blood_DNA) + msg += "[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in [t_his] right hand!\n" else - msg += "[t_He] [t_is] holding \icon[src.r_hand] \a [src.r_hand] in [t_his] right hand.\n" + msg += "[t_He] [t_is] holding \icon[r_hand] \a [r_hand] in [t_his] right hand.\n" //gloves - if (src.gloves && !skipgloves) - if (src.gloves.blood_DNA) - msg += "[t_He] [t_has] \icon[src.gloves] [src.gloves.gender==PLURAL?"some":"a"] blood-stained [src.gloves.name] on [t_his] hands!\n" + if(gloves && !skipgloves) + if(gloves.blood_DNA) + msg += "[t_He] [t_has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] blood-stained [gloves.name] on [t_his] hands!\n" else - msg += "[t_He] [t_has] \icon[src.gloves] \a [src.gloves] on [t_his] hands.\n" - else if (src.blood_DNA) + msg += "[t_He] [t_has] \icon[gloves] \a [gloves] on [t_his] hands.\n" + else if(blood_DNA) msg += "[t_He] [t_has] blood-stained hands!\n" //handcuffed? //handcuffed? - if (src.handcuffed) - if(istype(src.handcuffed, /obj/item/weapon/handcuffs/cable)) - msg += "[t_He] [t_is] \icon[src.handcuffed] restrained with cable!\n" + if(handcuffed) + if(istype(handcuffed, /obj/item/weapon/handcuffs/cable)) + msg += "[t_He] [t_is] \icon[handcuffed] restrained with cable!\n" else - msg += "[t_He] [t_is] \icon[src.handcuffed] handcuffed!\n" + msg += "[t_He] [t_is] \icon[handcuffed] handcuffed!\n" //belt - if (src.belt) - if (src.belt.blood_DNA) - msg += "[t_He] [t_has] \icon[src.belt] [src.belt.gender==PLURAL?"some":"a"] blood-stained [src.belt.name] about [t_his] waist!\n" + if(belt) + if(belt.blood_DNA) + msg += "[t_He] [t_has] \icon[belt] [belt.gender==PLURAL?"some":"a"] blood-stained [belt.name] about [t_his] waist!\n" else - msg += "[t_He] [t_has] \icon[src.belt] \a [src.belt] about [t_his] waist.\n" + msg += "[t_He] [t_has] \icon[belt] \a [belt] about [t_his] waist.\n" //shoes - if (src.shoes && !skipshoes) - if(src.shoes.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[src.shoes] [src.shoes.gender==PLURAL?"some":"a"] blood-stained [src.shoes.name] on [t_his] feet!\n" + if(shoes && !skipshoes) + if(shoes.blood_DNA) + msg += "[t_He] [t_is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] blood-stained [shoes.name] on [t_his] feet!\n" else - msg += "[t_He] [t_is] wearing \icon[src.shoes] \a [src.shoes] on [t_his] feet.\n" + msg += "[t_He] [t_is] wearing \icon[shoes] \a [shoes] on [t_his] feet.\n" //mask - if (src.wear_mask && !skipmask) - if (src.wear_mask.blood_DNA) - msg += "[t_He] [t_has] \icon[src.wear_mask] [src.wear_mask.gender==PLURAL?"some":"a"] blood-stained [src.wear_mask.name] on [t_his] face!\n" + if(wear_mask && !skipmask) + if(wear_mask.blood_DNA) + msg += "[t_He] [t_has] \icon[wear_mask] [wear_mask.gender==PLURAL?"some":"a"] blood-stained [wear_mask.name] on [t_his] face!\n" else - msg += "[t_He] [t_has] \icon[src.wear_mask] \a [src.wear_mask] on [t_his] face.\n" + msg += "[t_He] [t_has] \icon[wear_mask] \a [wear_mask] on [t_his] face.\n" //eyes - if (src.glasses && !skipeyes) - if (src.glasses.blood_DNA) - msg += "[t_He] [t_has] \icon[src.glasses] [src.glasses.gender==PLURAL?"some":"a"] blood-stained [src.glasses] covering [t_his] eyes!\n" + if(glasses && !skipeyes) + if(glasses.blood_DNA) + msg += "[t_He] [t_has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] blood-stained [glasses] covering [t_his] eyes!\n" else - msg += "[t_He] [t_has] \icon[src.glasses] \a [src.glasses] covering [t_his] eyes.\n" + msg += "[t_He] [t_has] \icon[glasses] \a [glasses] covering [t_his] eyes.\n" //ears - if (src.ears && !skipears) - msg += "[t_He] [t_has] \icon[src.ears] \a [src.ears] on [t_his] ears.\n" + if(ears && !skipears) + msg += "[t_He] [t_has] \icon[ears] \a [ears] on [t_his] ears.\n" //ID - if (src.wear_id) + if(wear_id) var/id - if(istype(src.wear_id, /obj/item/device/pda)) - var/obj/item/device/pda/pda = src.wear_id + if(istype(wear_id, /obj/item/device/pda)) + var/obj/item/device/pda/pda = wear_id id = pda.owner - else if(istype(src.wear_id, /obj/item/weapon/card/id)) //just in case something other than a PDA/ID card somehow gets in the ID slot :[ - var/obj/item/weapon/card/id/idcard = src.wear_id + else if(istype(wear_id, /obj/item/weapon/card/id)) //just in case something other than a PDA/ID card somehow gets in the ID slot :[ + var/obj/item/weapon/card/id/idcard = wear_id id = idcard.registered_name - if (id && (id != src.real_name) && (get_dist(src, usr) <= 1) && prob(10)) - msg += "[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id] yet something doesn't seem right...\n" + if(id && (id != real_name) && (get_dist(src, usr) <= 1) && prob(10)) + msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...\n" else - msg += "[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id].\n" + msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id].\n" //Jitters - if (src.is_jittery) - if(src.jitteriness >= 300) + if(is_jittery) + if(jitteriness >= 300) msg += "[t_He] [t_is] convulsing violently!\n" - else if(src.jitteriness >= 200) + else if(jitteriness >= 200) msg += "[t_He] [t_is] extremely jittery.\n" - else if(src.jitteriness >= 100) + else if(jitteriness >= 100) msg += "[t_He] [t_is] twitching ever so slightly.\n" - if (src.suiciding) + if(suiciding) msg += "[t_He] [t_has] bitten off [t_his] own tongue and [t_has] suffered major bloodloss!\n" - if (src.stat == DEAD || (changeling && (changeling.changeling_fakedeath == 1))) + if(stat == DEAD || (changeling && (changeling.changeling_fakedeath == 1))) msg += "[t_He] [t_is] limp and unresponsive; there are no signs of life" - if(!src.client) + if(!client) var/foundghost = 0 for(var/mob/dead/observer/G in world) if(G.client) @@ -196,48 +201,51 @@ msg += "...\n" else + msg += "" - var/temp = src.getBruteLoss() //no need to calculate each of these twice + var/temp = getBruteLoss() //no need to calculate each of these twice if(temp) - if (temp < 30) + if(temp < 30) msg += "[t_He] [t_has] minor bruising.\n" else msg += "[t_He] [t_has] severe bruising!\n" - temp = src.getFireLoss() - if (temp) - if (temp < 30) + temp = getFireLoss() + if(temp) + if(temp < 30) msg += "[t_He] [t_has] minor burns.\n" else msg += "[t_He] [t_has] severe burns!\n" - temp = src.getCloneLoss() - if (temp) - if (temp < 30) + temp = getCloneLoss() + if(temp) + if(temp < 30) msg += "[t_He] [t_has] minor genetic deformities.\n" else msg += "[t_He] [t_has] severe genetic deformities.\n" - if (src.nutrition < 100) + if(nutrition < 100) msg += "[t_He] [t_is] severely malnourished.\n" - else if (src.nutrition >= 500) - if (usr.nutrition < 100) + else if(nutrition >= 500) + if(usr.nutrition < 100) msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n" else msg += "[t_He] [t_is] quite chubby.\n" msg += "" - if (src.stat == UNCONSCIOUS) + if(stat == UNCONSCIOUS) msg += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.\n" - else if (src.getBrainLoss() >= 60) + else if(getBrainLoss() >= 60) msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n" - if (!src.client) + if(!key) + msg += "[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely\n" + else if(!client) msg += "[t_He] [t_has] a vacant, braindead stare...\n" - if (src.digitalcamo) + if(digitalcamo) msg += "[t_He] [t_is] repulsively uncanny!\n" @@ -257,12 +265,12 @@ var/obj/item/device/pda/tempPda = wear_id perpname = tempPda.owner else - perpname = src.name + perpname = name for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) + if(E.fields["name"] == perpname) for (var/datum/data/record/R in data_core.security) - if (R.fields["id"] == E.fields["id"]) + if(R.fields["id"] == E.fields["id"]) criminal = R.fields["criminal"] diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 867b623c62..a75d436422 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -522,9 +522,10 @@ //repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere /mob/living/carbon/human/proc/get_visible_name() - if( wear_mask && !wear_mask.see_face ) //Wearing a mask which covers our face, use id-name if possible + if( wear_mask && (wear_mask.flags_inv&HIDEFACE) ) //Wearing a mask which hides our face, use id-name if possible return get_id_name("Unknown") - + if( head && (head.flags_inv&HIDEFACE) ) + return get_id_name("Unknown") //Likewise for hats var/face_name = get_face_name() var/id_name = get_id_name("") if(id_name && (id_name != face_name)) diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm index 07c7801158..eb027d309c 100644 --- a/code/modules/mob/living/carbon/human/login.dm +++ b/code/modules/mob/living/carbon/human/login.dm @@ -1,12 +1,7 @@ /mob/living/carbon/human/Login() ..() - update_hud() - - if (!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == DEAD) - src.verbs += /mob/proc/ghost - + if(!isturf(loc)) + client.eye = loc + client.perspective = EYE_PERSPECTIVE return diff --git a/code/modules/mob/living/carbon/metroid/death.dm b/code/modules/mob/living/carbon/metroid/death.dm index 2356f42550..e1e74840bc 100644 --- a/code/modules/mob/living/carbon/metroid/death.dm +++ b/code/modules/mob/living/carbon/metroid/death.dm @@ -1,42 +1,20 @@ /mob/living/carbon/metroid/death(gibbed) - if(src.stat == 2) - return + if(stat == DEAD) return + stat = DEAD + icon_state = "baby metroid dead" if(!gibbed) if(istype(src, /mob/living/carbon/metroid/adult)) - - if(client) - var/mob/dead/observer/ghost = new(src) - ghost.key = key - if (ghost.client) - ghost.client.eye = ghost - - explosion(src.loc, -1,-1,3,12) - sleep(2) - del(src) + ghostize(1) + explosion(loc, -1,-1,3,12) + if(src) del(src) else for(var/mob/O in viewers(src, null)) - O.show_message("The [src.name] seizes up and falls limp...", 1) //ded -- Urist + O.show_message("The [name] seizes up and falls limp...", 1) //ded -- Urist - src.stat = 2 - src.canmove = 0 - if (src.blind) - src.blind.layer = 0 - src.lying = 1 - src.icon_state = "baby metroid dead" - - var/h = src.hand - src.hand = 0 - drop_item() - src.hand = 1 - drop_item() - src.hand = h + update_canmove() + if(blind) blind.layer = 0 ticker.mode.check_win() - if (src.key) - spawn(50) - if(src.key && src.stat == 2) - src.verbs += /mob/proc/ghost - return ..(gibbed) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm index f06272a73b..1c92ed45d2 100644 --- a/code/modules/mob/living/carbon/metroid/life.dm +++ b/code/modules/mob/living/carbon/metroid/life.dm @@ -505,7 +505,7 @@ var/number = pick(2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4) for(var/i=1,i<=number,i++) // reproduce (has a small chance of producing 3 or 4 offspring) var/mob/living/carbon/metroid/M = new/mob/living/carbon/metroid(loc) - M.nutrition = round(nutrition * 0.9) +// M.nutrition = round(nutrition * 0.9) M.powerlevel = round(powerlevel/number) M.Friends = Friends M.tame = tame @@ -519,7 +519,7 @@ if(!client) var/mob/living/carbon/metroid/adult/A = new/mob/living/carbon/metroid/adult(src.loc) A.nutrition = nutrition - A.nutrition += 100 +// A.nutrition += 100 A.powerlevel = max(0, powerlevel-1) A.Friends = Friends A.tame = tame diff --git a/code/modules/mob/living/carbon/metroid/login.dm b/code/modules/mob/living/carbon/metroid/login.dm index 831c6e1004..fc88bb4e08 100644 --- a/code/modules/mob/living/carbon/metroid/login.dm +++ b/code/modules/mob/living/carbon/metroid/login.dm @@ -1,12 +1,7 @@ /mob/living/carbon/metroid/Login() ..() - update_hud() - - if (!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == DEAD) - src.verbs += /mob/proc/ghost - + if(!isturf(loc)) + client.eye = loc + client.perspective = EYE_PERSPECTIVE return diff --git a/code/modules/mob/living/carbon/monkey/death.dm b/code/modules/mob/living/carbon/monkey/death.dm index a150d7c2bf..884ec840df 100644 --- a/code/modules/mob/living/carbon/monkey/death.dm +++ b/code/modules/mob/living/carbon/monkey/death.dm @@ -40,33 +40,17 @@ /mob/living/carbon/monkey/death(gibbed) - if(src.stat == DEAD) - return + if(stat == DEAD) return + if(healths) healths.icon_state = "health5" + stat = DEAD - if (src.healths) - src.healths.icon_state = "health5" if(!gibbed) for(var/mob/O in viewers(src, null)) - O.show_message("The [src.name] lets out a faint chimper as it collapses and stops moving...", 1) //ded -- Urist + O.show_message("The [name] lets out a faint chimper as it collapses and stops moving...", 1) //ded -- Urist - src.stat = 2 - src.canmove = 0 - if (src.blind) - src.blind.layer = 0 - src.lying = 1 - - var/h = src.hand - src.hand = 0 - drop_item() - src.hand = 1 - drop_item() - src.hand = h + update_canmove() + if(blind) blind.layer = 0 ticker.mode.check_win() - if (src.key) - spawn(50) - if(src.key && src.stat == 2) - src.verbs += /mob/proc/ghost - return ..(gibbed) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/login.dm b/code/modules/mob/living/carbon/monkey/login.dm index 0a0c216129..8c5e05c439 100644 --- a/code/modules/mob/living/carbon/monkey/login.dm +++ b/code/modules/mob/living/carbon/monkey/login.dm @@ -1,11 +1,7 @@ /mob/living/carbon/monkey/Login() ..() - update_hud() - - if (!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == DEAD) - src.verbs += /mob/proc/ghost + if(!isturf(loc)) + client.eye = loc + client.perspective = EYE_PERSPECTIVE return diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index 636d27a6ac..de8ac18962 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -1,14 +1,13 @@ /mob/living/silicon/ai/death(gibbed) - stat = 2 - canmove = 0 - if(blind) - blind.layer = 0 - sight |= SEE_TURFS - sight |= SEE_MOBS - sight |= SEE_OBJS + if(stat == DEAD) return + stat = DEAD + icon_state = "ai-crash" + + update_canmove() + if(blind) blind.layer = 0 + sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS see_in_dark = 8 see_invisible = 2 - icon_state = "ai-crash" var/callshuttle = 0 @@ -56,8 +55,4 @@ tod = worldtime2text() //weasellos time of death patch if(mind) mind.store_memory("Time of death: [tod]", 0) - if (key) - spawn(50) - if(key && stat == 2) - client.verbs += /mob/proc/ghost return ..(gibbed) diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm index 8e1c1c1f08..0a176cf1a2 100644 --- a/code/modules/mob/living/silicon/ai/login.dm +++ b/code/modules/mob/living/silicon/ai/login.dm @@ -1,32 +1,29 @@ -/mob/living/silicon/ai/Login() +/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up ¬_¬ ~Carn + client.screen.len = 0 + client.images.len = 0 for(var/obj/effect/rune/rune in world) var/image/blood = image(loc = rune) blood.override = 1 client.images += blood ..() regenerate_icons() - for(var/S in src.client.screen) - del(S) - src.flash = new /obj/screen( null ) - src.flash.icon_state = "blank" - src.flash.name = "flash" - src.flash.screen_loc = "1,1 to 15,15" - src.flash.layer = 17 - src.blind = new /obj/screen( null ) - src.blind.icon_state = "black" - src.blind.name = " " - src.blind.screen_loc = "1,1 to 15,15" - src.blind.layer = 0 - src.client.screen += list( src.blind, src.flash ) - if(!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == 2) - src.verbs += /mob/proc/ghost - else + flash = new /obj/screen( null ) + flash.icon_state = "blank" + flash.name = "flash" + flash.screen_loc = "1,1 to 15,15" + flash.layer = 17 + blind = new /obj/screen( null ) + blind.icon_state = "black" + blind.name = " " + blind.screen_loc = "1,1 to 15,15" + blind.layer = 0 + client.screen += list( blind, flash ) + if(!isturf(loc)) + client.eye = loc + client.perspective = EYE_PERSPECTIVE + if(stat != DEAD) for(var/obj/machinery/ai_status_display/O in world) //change status - spawn(0) - if(O) - O.mode = 1 - O.emotion = "Neutral" + if(O) + O.mode = 1 + O.emotion = "Neutral" return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/logout.dm b/code/modules/mob/living/silicon/ai/logout.dm index cf32ea51da..568362d402 100644 --- a/code/modules/mob/living/silicon/ai/logout.dm +++ b/code/modules/mob/living/silicon/ai/logout.dm @@ -1,12 +1,9 @@ /mob/living/silicon/ai/Logout() ..() for(var/obj/machinery/ai_status_display/O in world) //change status - spawn( 0 ) O.mode = 0 - if(!isturf(src.loc)) - if (src.client) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == 2) - src.verbs += /mob/proc/ghost + if(!isturf(loc)) + if (client) + client.eye = loc + client.perspective = EYE_PERSPECTIVE return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/decoy/death.dm b/code/modules/mob/living/silicon/decoy/death.dm index e6af3a4042..d3996e2fa7 100644 --- a/code/modules/mob/living/silicon/decoy/death.dm +++ b/code/modules/mob/living/silicon/decoy/death.dm @@ -1,10 +1,10 @@ /mob/living/silicon/decoy/death(gibbed) - src.stat = 2 - src.icon_state = "ai-crash" + if(stat == DEAD) return + stat = DEAD + icon_state = "ai-crash" spawn(10) - explosion(src.loc, 3, 6, 12, 15) + explosion(loc, 3, 6, 12, 15) for(var/obj/machinery/ai_status_display/O in world) //change status - spawn( 0 ) - O.mode = 2 + O.mode = 2 return ..(gibbed) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm index 7fa3aabbb6..60a7657466 100644 --- a/code/modules/mob/living/silicon/pai/death.dm +++ b/code/modules/mob/living/silicon/pai/death.dm @@ -1,23 +1,17 @@ /mob/living/silicon/pai/death(gibbed) - src.stat = 2 - src.canmove = 0 - if(src.blind) - src.blind.layer = 0 - src.sight |= SEE_TURFS - src.sight |= SEE_MOBS - src.sight |= SEE_OBJS - src.see_in_dark = 8 - src.see_invisible = 2 + if(stat == DEAD) return + stat = DEAD + canmove = 0 + if(blind) blind.layer = 0 + sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS + see_in_dark = 8 + see_invisible = 2 //var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch //mind.store_memory("Time of death: [tod]", 0) - //New pAI's get a brand new mind to prevent meta stuff from their previous life. This new mind causes problems down the line if it's not deleted here. //Read as: I have no idea what I'm doing but asking for help got me nowhere so this is what you get. - Nodrak - del(src.mind) - - if(key) - spawn(50) - src.ghostize(0) + del(mind) + if(key) ghostize(0) del(src) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm index 974c041116..5d88687335 100644 --- a/code/modules/mob/living/silicon/pai/hud.dm +++ b/code/modules/mob/living/silicon/pai/hud.dm @@ -43,7 +43,7 @@ client.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]") if(patient.stat == 2) client.images += image(tempHud,patient,"huddead") - else if(patient.alien_egg_flag) + else if(patient.status_flags & XENO_HOST) client.images += image(tempHud,patient,"hudxeno") else if(foundVirus) client.images += image(tempHud,patient,"hudill") diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 397a403a2b..709fa2f7bc 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -41,36 +41,29 @@ /mob/living/silicon/robot/death(gibbed) - if (!gibbed) - src.emote("deathgasp") - src.stat = 2 - src.canmove = 0 + if(stat == DEAD) return + if(!gibbed) + emote("deathgasp") + stat = DEAD + update_canmove() tension_master.death(src) - src.camera.status = 0.0 + camera.status = 0 - if(src.in_contents_of(/obj/machinery/recharge_station))//exit the recharge station - var/obj/machinery/recharge_station/RC = src.loc + if(in_contents_of(/obj/machinery/recharge_station))//exit the recharge station + var/obj/machinery/recharge_station/RC = loc RC.go_out() - if(src.blind) - src.blind.layer = 0 - src.sight |= SEE_TURFS - src.sight |= SEE_MOBS - src.sight |= SEE_OBJS - - src.see_in_dark = 8 - src.see_invisible = 2 - src.updateicon() + if(blind) blind.layer = 0 + sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS + see_in_dark = 8 + see_invisible = 2 + updateicon() tod = worldtime2text() //weasellos time of death patch - store_memory("Time of death: [tod]", 0) + if(mind) mind.store_memory("Time of death: [tod]", 0) sql_report_cyborg_death(src) - if (src.key) - spawn(50) - if(src.key && src.stat == 2) - src.verbs += /mob/proc/ghost return ..(gibbed) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm index 898c15e4b1..23a019099b 100644 --- a/code/modules/mob/living/silicon/robot/login.dm +++ b/code/modules/mob/living/silicon/robot/login.dm @@ -1,21 +1,18 @@ /mob/living/silicon/robot/Login(var/syndie = 0) ..() - regenerate_icons() - if (!isturf(src.loc)) - src.client.eye = src.loc - src.client.perspective = EYE_PERSPECTIVE - if (src.stat == 2) - src.verbs += /mob/proc/ghost - if(src.real_name == "Cyborg") - src.ident = rand(1, 999) - src.real_name += " " - src.real_name += "-[ident]" - src.name = src.real_name - /*if(!src.connected_ai) + if(!isturf(loc)) + client.eye = loc + client.perspective = EYE_PERSPECTIVE + if(real_name == "Cyborg") + ident = rand(1, 999) + real_name += " " + real_name += "-[ident]" + name = real_name + /*if(!connected_ai) for(var/mob/living/silicon/ai/A in world) - src.connected_ai = A + connected_ai = A A.connected_robots += src break */ @@ -54,8 +51,8 @@ var/obj/item/weapon/cell/C = new(src) C.charge = 1500 cell = C - if(src.mind) - ticker.mode.remove_revolutionary(src.mind) + if(mind) + ticker.mode.remove_revolutionary(mind) started = 1 return \ No newline at end of file diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 76d8eae96f..f601170427 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -10,7 +10,6 @@ layer = 4 pressure_resistance = 1 slot_flags = SLOT_HEAD - see_face = 1 body_parts_covered = HEAD protective_temperature = 0 diff --git a/code/setup.dm b/code/setup.dm index e2b5de7587..ee98e1b3dd 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -168,9 +168,10 @@ var/MAX_EXPLOSION_RANGE = 14 #define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!! #define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!! #define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!! -#define HIDEMASK 1 //APPLIES ONLY TO HELMETS!! -#define HIDEEARS 2 //APPLIES ONLY TO HELMETS!! -#define HIDEEYES 4 //APPLIES ONLY TO HELMETS!! +#define HIDEMASK 1 //APPLIES ONLY TO HELMETS/MASKS!! +#define HIDEEARS 2 //APPLIES ONLY TO HELMETS/MASKS!! +#define HIDEEYES 4 //APPLIES ONLY TO HELMETS/MASKS!! +#define HIDEFACE 8 //APPLIES ONLY TO HELMETS/MASKS!! Dictates whether we appear as unknown. //Cant seem to find a mob bitflags area other than the powers one @@ -342,10 +343,11 @@ var/list/global_mutations = list() // list of hidden mutation things #define EYE_BLUR "eye_blur" #define DROWSY "drowsy" -//Bitflags defining which status effects can be inflicted on a mob +//Bitflags defining which status effects could be or are inflicted on a mob #define CANSTUN 1 #define CANWEAKEN 2 #define CANPARALYSE 4 +#define XENO_HOST 32768 //Tracks whether we're gonna be a baby alien's mummy. #define DISFIGURED 65536 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system var/static/list/scarySounds = list('thudswoosh.ogg','Taser.ogg','armbomb.ogg','hiss1.ogg','hiss2.ogg','hiss3.ogg','hiss4.ogg','hiss5.ogg','hiss6.ogg','Glassbr1.ogg','Glassbr2.ogg','Glassbr3.ogg','Welder.ogg','Welder2.ogg','airlock.ogg','clownstep1.ogg','clownstep2.ogg') diff --git a/html/changelog.html b/html/changelog.html index 63078c1846..b31f43e21e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -46,6 +46,18 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> + +
+

14 July 2012

+

Carn updated:

+ +
+ +

Saturday July 14th 2012

Giacom updated:

diff --git a/tgstation.dme b/tgstation.dme index aefda6d5da..1f0fbaa15a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -967,6 +967,7 @@ #include "code\modules\mob\living\carbon\brain\death.dm" #include "code\modules\mob\living\carbon\brain\hud.dm" #include "code\modules\mob\living\carbon\brain\life.dm" +#include "code\modules\mob\living\carbon\brain\login.dm" #include "code\modules\mob\living\carbon\brain\MMI.dm" #include "code\modules\mob\living\carbon\brain\say.dm" #include "code\modules\mob\living\carbon\human\death.dm"