diff --git a/code/datums/disease.dm b/code/datums/disease.dm index 12956dc8ca5..55422070fcf 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 f04d83c77fc..b58a5101703 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 3feb18c89f3..0be102cfa58 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 98ae0d01ce0..576a9f11f06 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 5e3f3392cff..65ea2120a9d 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 9cfebd2ede5..17213ecbb8e 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 f6fd830ebfc..6e97188ccf5 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 292a3871499..5aec8547bf2 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 e4042500c0c..4124a706141 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 0704b3f7e60..293f481beea 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 8061c3cd44e..ab8f20be2e9 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 11a278a5eec..798632b4604 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 60c5ee6cfbb..6cf8a1e9220 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 a00f4d1f776..900228b6559 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 7b738e79422..af00d7494d5 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 a318956e32c..bbeef946bcd 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 b2236db28a0..3feec00d30a 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 05a236e477e..aaf7f5ba800 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 261af899ebe..51c20c7d176 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 c47da5e020c..abb9931f448 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 06595dab0f1..5a47dfbd1a2 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 ccf6540413f..be94de03038 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 3a48378c4c1..81f50f19f96 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 686f36c08dc..607a03fef0f 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 8e2fe185497..9965292233b 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 eeff902cce7..5c2d6817cfc 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 9b30ff5d76d..1d486f4a26c 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 30967cf43c5..5c57f16d106 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 00000000000..4b1749add26 --- /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 dc5b90887c9..432915361cd 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 945266c4c38..ec65fe36dd5 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 07fb2c21b93..529b51c70e1 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 867b623c622..a75d4364229 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 07c78011584..eb027d309c8 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 2356f425505..e1e74840bc4 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 f06272a73b9..1c92ed45d21 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 831c6e10044..fc88bb4e082 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 a150d7c2bf5..884ec840df3 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 0a0c216129c..8c5e05c439a 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 636d27a6ac3..de8ac189628 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 8e1c1c1f081..0a176cf1a2a 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 cf32ea51dae..568362d402f 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 e6af3a40428..d3996e2fa70 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 7fa3aabbb60..60a76574663 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 974c041116a..5d886873355 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 397a403a2b8..709fa2f7bcf 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 898c15e4b14..23a019099b3 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 76d8eae96fb..f601170427d 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 e2b5de75872..ee98e1b3dd5 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 63078c18463..b31f43e21ee 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 aefda6d5da3..1f0fbaa15a8 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"