mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Fixed evidence bags so the items inside are now visible even when the bag is inhand (the problem was that overlays += obj uses the object's layer variable rather than the default FLOAT_LAYER. So the hud was appearing over the overlays. Fixed it by using image(obj) to take a snapshot). Changed the overlays to underlays to make them look better. Fixed issue 637 where putting objects in bags which were currently in your inventory did not remove the item from your inventory.
Replaced the obj variable var/see_face. It was used to determine whether something (namely masks/hats) hid your identity. Replaced with the HIDEFACE bitflag for var/flags_inv variable. Moved the var/flags_inv variable from atom/ to obj/item/ as only /obj/item/ can be in your inventory in the first place. Fixed get_visible_name() so it takes into account any item on the var/head when deciding if your face is obscured. (While I'm at it, just dump a comment here if there's anything that should hide your face which doesn't and I'll add the flag.) Removed the var/alien_egg_flag variable from mob/living/carbon/ and replaced it with the XENO_HOST bitflag for var/status_flags variable. You can now suicide whilst impregnated with a xeno (since you will chestburst even after death, that restriction is no longer necessary). Any mob/living descendent can ghost even when not dead. However, ghosting whilst not dead results in the ghost eing unable to return to it's body for the remainder of the round. (It has a warning popup) The suicide verb can only be used by humans when they can move and are not cuffed. These verbs will be totally replaced very soon with the 'fun' IC suicides I'm working on. Suicide is largely redundant given that anybody can ghost now, just didn't want to jump the gun in removing it. Known Issues: We've got var/flags_inv, var/slot_flags which could possibly be merged as they both deal with obj/items, although I'm not sure if we can fit oth into the 16-bit limit. Just something to look into. There are bitflags GLASSESCOVERSEYES, MASKCOVERSEYES, HEADCOVERSEYES, MASKCOVERSMOUTH, HEADCOVERSMOUTH in the var/flags variable which should really be merged with or moved alongside the very similar flags in var/flags_inv. Comments next to the defines suggest as much. You can borg dead/clientless brains but can't remove the brain fromt he borg once you realise it's a dud. >.< git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4072 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -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.
|
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)
|
affected_mob.resistances += text2path(saved_type)
|
||||||
if((affected_mob) && (istype(src, /datum/disease/alien_embryo)))//Get rid of the flag.
|
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]"
|
// world << "Removing [src]"
|
||||||
spawn(0)
|
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
|
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
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
layer = 2
|
layer = 2
|
||||||
var/level = 2
|
var/level = 2
|
||||||
var/flags = FPRINT
|
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/fingerprints
|
||||||
var/list/fingerprintshidden
|
var/list/fingerprintshidden
|
||||||
var/fingerprintslast = null
|
var/fingerprintslast = null
|
||||||
|
|||||||
@@ -317,7 +317,7 @@
|
|||||||
var/obj/item/master = null
|
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.
|
//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/color = null
|
||||||
var/body_parts_covered = 0 //see setup.dm for appropriate bit flags
|
var/body_parts_covered = 0 //see setup.dm for appropriate bit flags
|
||||||
var/protective_temperature = 0
|
var/protective_temperature = 0
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
name = "cult hood"
|
name = "cult hood"
|
||||||
icon_state = "culthood"
|
icon_state = "culthood"
|
||||||
desc = "A hood worn by the followers of Nar-Sie."
|
desc = "A hood worn by the followers of Nar-Sie."
|
||||||
see_face = 0
|
flags_inv = HIDEFACE
|
||||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES
|
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES
|
||||||
armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0)
|
armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0)
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
icon_state = "magus"
|
icon_state = "magus"
|
||||||
item_state = "magus"
|
item_state = "magus"
|
||||||
desc = "A helm worn by the followers of Nar-Sie."
|
desc = "A helm worn by the followers of Nar-Sie."
|
||||||
see_face = 0
|
flags_inv = HIDEFACE
|
||||||
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
|
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
|
||||||
armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0)
|
armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0)
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
|
C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
|
||||||
if(patient.stat == 2)
|
if(patient.stat == 2)
|
||||||
C.images += image(tempHud,patient,"huddead")
|
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")
|
C.images += image(tempHud,patient,"hudxeno")
|
||||||
else if(foundVirus)
|
else if(foundVirus)
|
||||||
C.images += image(tempHud,patient,"hudill")
|
C.images += image(tempHud,patient,"hudill")
|
||||||
|
|||||||
@@ -153,7 +153,8 @@ var/const/MAX_ACTIVE_TIME = 600
|
|||||||
if(!sterile)
|
if(!sterile)
|
||||||
target.contract_disease(new /datum/disease/alien_embryo(0)) //so infection chance is same as virus infection chance
|
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)
|
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))
|
for(var/mob/O in viewers(target,null))
|
||||||
O.show_message("\red \b [src] falls limp after violating [target]'s face!", 1)
|
O.show_message("\red \b [src] falls limp after violating [target]'s face!", 1)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
/mob/living/carbon/human/verb/suicide()
|
/mob/living/carbon/human/verb/suicide()
|
||||||
set hidden = 1
|
set hidden = 1
|
||||||
|
|
||||||
if (stat == 2)
|
if (stat == DEAD)
|
||||||
src << "You're already dead!"
|
src << "You're already dead!"
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -17,11 +17,10 @@
|
|||||||
|
|
||||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
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(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
|
suiciding = 1
|
||||||
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
|
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
|
||||||
viewers(src) << "\red <b>[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.</b>"
|
viewers(src) << "\red <b>[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.</b>"
|
||||||
@@ -69,11 +68,10 @@
|
|||||||
|
|
||||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
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(confirm == "Yes")
|
||||||
|
if(!canmove || restrained())
|
||||||
|
src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))"
|
||||||
|
return
|
||||||
suiciding = 1
|
suiciding = 1
|
||||||
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
|
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
|
||||||
viewers(src) << "\red <b>[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.</b>"
|
viewers(src) << "\red <b>[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.</b>"
|
||||||
|
|||||||
@@ -464,7 +464,8 @@
|
|||||||
holder.state = 1
|
holder.state = 1
|
||||||
update_admins(rank)
|
update_admins(rank)
|
||||||
if(istype(mob, /mob/dead/observer))
|
if(istype(mob, /mob/dead/observer))
|
||||||
mob:reenter_corpse()
|
var/mob/dead/observer/ghost = mob
|
||||||
|
ghost.reenter_corpse()
|
||||||
src << "\blue You are now playing"
|
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!
|
feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
////////////
|
////////////
|
||||||
//SECURITY//
|
//SECURITY//
|
||||||
////////////
|
////////////
|
||||||
#define TOPIC_SPAM_DELAY 4 //4 tick delay is about half a second
|
#define TOPIC_SPAM_DELAY 4 //4 ticks is about 3/10ths of a second
|
||||||
// REDUCED because holy fucking balls the delay was too damn high
|
|
||||||
|
|
||||||
#define UPLOAD_LIMIT 1048576 //Restricts client uploads to the server to 1MB //Could probably do with being lower.
|
#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.
|
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
|
If you have any questions about this stuff feel free to ask. ~Carn
|
||||||
*/
|
*/
|
||||||
/client/Topic(href, href_list, hsrc)
|
/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
|
//Reduces spamming of links by dropping calls that happen during the delay period
|
||||||
if(next_allowed_topic_time > world.time)
|
if(next_allowed_topic_time > world.time)
|
||||||
// src << "\red DEBUG: Error: SPAM"
|
|
||||||
return
|
return
|
||||||
next_allowed_topic_time = world.time + TOPIC_SPAM_DELAY
|
next_allowed_topic_time = world.time + TOPIC_SPAM_DELAY
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
del(src)
|
del(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
if (((world.address == address || !(address)) && !(host)))
|
if ( (world.address == address || !address) && !host )
|
||||||
host = key
|
host = key
|
||||||
world.update_status()
|
world.update_status()
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
|
C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
|
||||||
if(patient.stat == 2)
|
if(patient.stat == 2)
|
||||||
C.images += image(tempHud,patient,"huddead")
|
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")
|
C.images += image(tempHud,patient,"hudxeno")
|
||||||
else if(foundVirus)
|
else if(foundVirus)
|
||||||
C.images += image(tempHud,patient,"hudill")
|
C.images += image(tempHud,patient,"hudill")
|
||||||
|
|||||||
@@ -90,9 +90,8 @@
|
|||||||
icon_state = "syndicate"
|
icon_state = "syndicate"
|
||||||
item_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!"
|
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 = FPRINT | TABLEPASS | BLOCKHAIR
|
||||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||||
|
|
||||||
|
|
||||||
/obj/item/clothing/head/cueball
|
/obj/item/clothing/head/cueball
|
||||||
@@ -125,5 +124,4 @@
|
|||||||
icon_state = "cardborg_h"
|
icon_state = "cardborg_h"
|
||||||
item_state = "cardborg_h"
|
item_state = "cardborg_h"
|
||||||
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH
|
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||||
see_face = 0.0
|
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
|
||||||
|
|||||||
@@ -5,8 +5,7 @@
|
|||||||
item_state = "hardhat0_pumpkin"
|
item_state = "hardhat0_pumpkin"
|
||||||
color = "pumpkin"
|
color = "pumpkin"
|
||||||
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR
|
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR
|
||||||
see_face = 0.0
|
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
|
||||||
var/brightness_on = 2 //luminosity when on
|
var/brightness_on = 2 //luminosity when on
|
||||||
var/on = 0
|
var/on = 0
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,13 @@
|
|||||||
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
|
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
|
||||||
icon_state = "welding"
|
icon_state = "welding"
|
||||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH
|
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||||
see_face = 0.0
|
|
||||||
item_state = "welding"
|
item_state = "welding"
|
||||||
protective_temperature = 1300
|
protective_temperature = 1300
|
||||||
m_amt = 3000
|
m_amt = 3000
|
||||||
g_amt = 1000
|
g_amt = 1000
|
||||||
var/up = 0
|
var/up = 0
|
||||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 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()
|
attack_self()
|
||||||
@@ -25,16 +24,14 @@
|
|||||||
if(usr.canmove && !usr.stat && !usr.restrained())
|
if(usr.canmove && !usr.stat && !usr.restrained())
|
||||||
if(src.up)
|
if(src.up)
|
||||||
src.up = !src.up
|
src.up = !src.up
|
||||||
src.see_face = !src.see_face
|
|
||||||
src.flags |= HEADCOVERSEYES
|
src.flags |= HEADCOVERSEYES
|
||||||
flags_inv |= HIDEMASK|HIDEEARS|HIDEEYES
|
flags_inv |= HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||||
icon_state = "welding"
|
icon_state = "welding"
|
||||||
usr << "You flip the mask down to protect your eyes."
|
usr << "You flip the mask down to protect your eyes."
|
||||||
else
|
else
|
||||||
src.up = !src.up
|
src.up = !src.up
|
||||||
src.see_face = !src.see_face
|
|
||||||
src.flags &= ~HEADCOVERSEYES
|
src.flags &= ~HEADCOVERSEYES
|
||||||
flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES)
|
flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
|
||||||
icon_state = "weldingup"
|
icon_state = "weldingup"
|
||||||
usr << "You push the mask up out of your face."
|
usr << "You push the mask up out of your face."
|
||||||
usr.update_inv_head() //so our mob-overlays update
|
usr.update_inv_head() //so our mob-overlays update
|
||||||
@@ -3,8 +3,8 @@
|
|||||||
desc = "LOADSAMONEY"
|
desc = "LOADSAMONEY"
|
||||||
icon_state = "balaclava"
|
icon_state = "balaclava"
|
||||||
item_state = "balaclava"
|
item_state = "balaclava"
|
||||||
see_face = 0.0
|
|
||||||
flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR
|
flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR
|
||||||
|
flags_inv = HIDEFACE
|
||||||
w_class = 2
|
w_class = 2
|
||||||
|
|
||||||
/obj/item/clothing/mask/luchador
|
/obj/item/clothing/mask/luchador
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
icon_state = "luchag"
|
icon_state = "luchag"
|
||||||
item_state = "luchag"
|
item_state = "luchag"
|
||||||
flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR
|
flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR
|
||||||
see_face = 0.0
|
flags_inv = HIDEFACE
|
||||||
w_class = 2
|
w_class = 2
|
||||||
|
|
||||||
/obj/item/clothing/mask/luchador/tecnicos
|
/obj/item/clothing/mask/luchador/tecnicos
|
||||||
|
|||||||
@@ -3,9 +3,8 @@
|
|||||||
desc = "A face-covering mask that can be connected to an air supply."
|
desc = "A face-covering mask that can be connected to an air supply."
|
||||||
icon_state = "gas_alt"
|
icon_state = "gas_alt"
|
||||||
flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES
|
flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES
|
||||||
flags_inv = HIDEEARS|HIDEEYES
|
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
|
||||||
w_class = 3.0
|
w_class = 3.0
|
||||||
see_face = 0.0
|
|
||||||
item_state = "gas_alt"
|
item_state = "gas_alt"
|
||||||
protective_temperature = 500
|
protective_temperature = 500
|
||||||
heat_transfer_coefficient = 0.01
|
heat_transfer_coefficient = 0.01
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
desc = "Warning: moustache is fake."
|
desc = "Warning: moustache is fake."
|
||||||
icon_state = "fake-moustache"
|
icon_state = "fake-moustache"
|
||||||
flags = FPRINT|TABLEPASS
|
flags = FPRINT|TABLEPASS
|
||||||
see_face = 0.0 //Well, it's a disguise, of course.
|
flags_inv = HIDEFACE
|
||||||
|
|
||||||
/obj/item/clothing/mask/owl_mask
|
/obj/item/clothing/mask/owl_mask
|
||||||
name = "owl mask"
|
name = "owl mask"
|
||||||
|
|||||||
@@ -9,11 +9,10 @@ Space suit parts
|
|||||||
icon_state = "space"
|
icon_state = "space"
|
||||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
|
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
|
||||||
flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR
|
flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR
|
||||||
see_face = 0.0
|
|
||||||
item_state = "space"
|
item_state = "space"
|
||||||
permeability_coefficient = 0.01
|
permeability_coefficient = 0.01
|
||||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
|
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
|
/obj/item/clothing/suit/space
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
name = "ninja hood"
|
name = "ninja hood"
|
||||||
icon_state = "s-ninja"
|
icon_state = "s-ninja"
|
||||||
item_state = "s-ninja_mask"
|
item_state = "s-ninja_mask"
|
||||||
see_face = 1
|
|
||||||
allowed = list(/obj/item/weapon/cell)
|
allowed = list(/obj/item/weapon/cell)
|
||||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25)
|
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25)
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
desc = "A high tech, NASA Centcom branch designed, dark red space suit helmet. Used for AI satellite maintenance."
|
desc = "A high tech, NASA Centcom branch designed, dark red space suit helmet. Used for AI satellite maintenance."
|
||||||
icon_state = "void"
|
icon_state = "void"
|
||||||
item_state = "void"
|
item_state = "void"
|
||||||
see_face = 1
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/space/nasavoid
|
/obj/item/clothing/suit/space/nasavoid
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
item_state = "capspacehelmet"
|
item_state = "capspacehelmet"
|
||||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads."
|
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
|
flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR
|
||||||
see_face = 0.0
|
flags_inv = HIDEFACE
|
||||||
permeability_coefficient = 0.01
|
permeability_coefficient = 0.01
|
||||||
armor = list(melee = 65, bullet = 50, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 50)
|
armor = list(melee = 65, bullet = 50, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 50)
|
||||||
|
|
||||||
|
|||||||
@@ -22,15 +22,20 @@
|
|||||||
user << "You find putting an evidence bag in another evidence bag to be slightly absurd."
|
user << "You find putting an evidence bag in another evidence bag to be slightly absurd."
|
||||||
return
|
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)
|
if(contents.len)
|
||||||
user << "The [src] already has something inside it."
|
user << "The [src] already has something inside it."
|
||||||
return ..()
|
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
|
var/obj/item/weapon/storage/U = O.loc
|
||||||
user.client.screen -= O
|
user.client.screen -= O
|
||||||
U.contents.Remove(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].",\
|
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.")
|
"You hear a rustle as someone puts something into a plastic bag.")
|
||||||
icon_state = "evidence"
|
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]"
|
desc = "An evidence bag containing \a [O]. [O.desc]"
|
||||||
O.loc = src
|
O.loc = src
|
||||||
w_class = O.w_class
|
w_class = O.w_class
|
||||||
@@ -50,7 +56,7 @@
|
|||||||
var/obj/item/I = contents[1]
|
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].",\
|
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.")
|
"You hear someone rustle around in a plastic bag, and remove something.")
|
||||||
overlays -= I
|
underlays = null //remove the underlays
|
||||||
user.put_in_hands(I)
|
user.put_in_hands(I)
|
||||||
w_class = 1
|
w_class = 1
|
||||||
icon_state = "evidenceobj"
|
icon_state = "evidenceobj"
|
||||||
|
|||||||
@@ -7,21 +7,18 @@
|
|||||||
stat = DEAD
|
stat = DEAD
|
||||||
|
|
||||||
if(body)
|
if(body)
|
||||||
var/turf/location = get_turf(body)//Where is the mob located?
|
var/turf/T = get_turf(body) //Where is the body located?
|
||||||
if(location)//Found turf.
|
if(!T) T = pick(latejoin) //Safety in case we cannot find the body's position
|
||||||
loc = location
|
loc = T
|
||||||
else//Safety, in case a turf cannot be found.
|
if(ismob(body))
|
||||||
loc = pick(latejoin)
|
real_name = body.real_name
|
||||||
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!
|
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
|
name = body.original_name
|
||||||
if(!name)
|
|
||||||
name = capitalize(pick(first_names_male) + " " + capitalize(pick(last_names)))
|
|
||||||
real_name = name
|
|
||||||
if(!safety)
|
if(!safety)
|
||||||
corpse = body
|
corpse = body
|
||||||
verbs += /mob/dead/observer/proc/reenter_corpse
|
if(!name) //To prevent nameless ghosts
|
||||||
|
name = capitalize(pick(first_names_male) + " " + capitalize(pick(last_names)))
|
||||||
|
real_name = name
|
||||||
return
|
return
|
||||||
|
|
||||||
/mob/dead/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
|
/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)
|
/mob/proc/ghostize(var/transfer_mind = 0)
|
||||||
if(key)
|
if(key)
|
||||||
|
var/mob/dead/observer/ghost = new(src,transfer_mind) //Transfer safety to observer spawning proc.
|
||||||
if(client)
|
if(client)
|
||||||
client.screen.len = null//Clear the hud, just to be sure.
|
client.images.len = null //remove the images such as AIs being unable to see runes
|
||||||
var/mob/dead/observer/ghost = new(src,transfer_mind)//Transfer safety to observer spawning proc.
|
client.screen.len = null //remove hud items just in case
|
||||||
if(transfer_mind)//When a body is destroyed.
|
ghost.attack_log = attack_log //preserve our attack logs by copying them to our ghost
|
||||||
if(mind)
|
if(transfer_mind && mind) //When a body is destroyed attempt to transfer their mind
|
||||||
mind.transfer_to(ghost)
|
mind.transfer_to(ghost)
|
||||||
else//They may not have a mind and be gibbed/destroyed.
|
else //Else just modify their key and connect them.
|
||||||
ghost.key = key
|
|
||||||
else//Else just modify their key and connect them.
|
|
||||||
ghost.key = key
|
ghost.key = key
|
||||||
|
|
||||||
verbs -= /mob/proc/ghost
|
else if(transfer_mind) //Body getting destroyed but the person is not present inside.
|
||||||
if (ghost.client)
|
|
||||||
ghost.client.eye = ghost
|
|
||||||
|
|
||||||
else if(transfer_mind)//Body getting destroyed but the person is not present inside.
|
|
||||||
for(var/mob/dead/observer/O in world)
|
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)
|
if(mind)
|
||||||
O.mind = mind//Transfer their mind if they have one.
|
O.mind = mind //Transfer their mind if they have one.
|
||||||
break
|
break
|
||||||
return
|
return
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This is the proc mobs get to turn into a ghost. Forked from ghostize due to compatibility issues.
|
This is the proc mobs get to turn into a ghost. Forked from ghostize due to compatibility issues.
|
||||||
*/
|
*/
|
||||||
/mob/proc/ghost()
|
/mob/living/verb/ghost()
|
||||||
set category = "Ghost"
|
set category = "OOC"
|
||||||
set name = "Ghost"
|
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
|
if(stat == DEAD)
|
||||||
src << "Only dead people and admins get to ghost, and admins don't use this verb to ghost while alive."
|
ghostize(0)
|
||||||
return*/
|
else
|
||||||
if(key)
|
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")
|
||||||
var/mob/dead/observer/ghost = new(src)
|
if(response != "Ghost") return //didn't want to ghost after-all
|
||||||
ghost.key = key
|
ghostize(1) //safety is on so we can never re-enter our body, "Charlie, you can never come baaaack~" :3
|
||||||
verbs -= /mob/proc/ghost
|
|
||||||
if (ghost.client)
|
|
||||||
ghost.client.eye = ghost
|
|
||||||
return
|
return
|
||||||
|
|
||||||
/mob/proc/adminghostize()
|
/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)
|
if (timeleft)
|
||||||
stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]")
|
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 category = "Ghost"
|
||||||
set name = "Re-enter Corpse"
|
set name = "Re-enter Corpse"
|
||||||
|
if(!client) return
|
||||||
if(!corpse)
|
if(!corpse)
|
||||||
alert("You don't have a corpse!")
|
src << "<span class='warning'>Sorry, you don't have a corpse to re-enter.</span>"
|
||||||
return
|
return
|
||||||
if(client && client.holder && client.holder.state == 2)
|
if(client.holder && client.holder.state == 2)
|
||||||
var/rank = client.holder.rank
|
var/rank = client.holder.rank
|
||||||
client.clear_admin_verbs()
|
client.clear_admin_verbs()
|
||||||
client.holder.state = 1
|
client.holder.state = 1
|
||||||
client.update_admins(rank)
|
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
|
var/S=0
|
||||||
for(var/obj/effect/rune/R in world)
|
for(var/obj/effect/rune/R in world)
|
||||||
if(corpse.loc==R.loc && R.word1 == wordhell && R.word2 == wordtravel && R.word3 == wordself)
|
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)
|
if(corpse.ajourn)
|
||||||
corpse.ajourn=0
|
corpse.ajourn=0
|
||||||
client.mob = corpse
|
client.mob = corpse
|
||||||
if (corpse.stat==2)
|
|
||||||
verbs += /mob/proc/ghost
|
|
||||||
del(src)
|
del(src)
|
||||||
|
|
||||||
/mob/dead/observer/proc/dead_tele()
|
/mob/dead/observer/proc/dead_tele()
|
||||||
set category = "Ghost"
|
set category = "Ghost"
|
||||||
set name = "Teleport"
|
set name = "Teleport"
|
||||||
set desc= "Teleport to a location"
|
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!"
|
usr << "Not when you're not dead!"
|
||||||
return
|
return
|
||||||
usr.verbs -= /mob/dead/observer/proc/dead_tele
|
usr.verbs -= /mob/dead/observer/proc/dead_tele
|
||||||
spawn(30)
|
spawn(30)
|
||||||
usr.verbs += /mob/dead/observer/proc/dead_tele
|
usr.verbs += /mob/dead/observer/proc/dead_tele
|
||||||
var/A
|
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]
|
var/area/thearea = ghostteleportlocs[A]
|
||||||
|
if(!thearea) return
|
||||||
|
|
||||||
var/list/L = list()
|
var/list/L = list()
|
||||||
for(var/turf/T in get_area_turfs(thearea.type))
|
for(var/turf/T in get_area_turfs(thearea.type))
|
||||||
|
|||||||
@@ -1,34 +1,16 @@
|
|||||||
/mob/living/carbon/alien/humanoid/death(gibbed)
|
/mob/living/carbon/alien/humanoid/death(gibbed)
|
||||||
if(src.stat == 2)
|
if(stat == DEAD) return
|
||||||
return
|
if(healths) healths.icon_state = "health6"
|
||||||
if(src.healths)
|
stat = DEAD
|
||||||
src.healths.icon_state = "health6"
|
|
||||||
src.stat = 2
|
|
||||||
|
|
||||||
if (!gibbed)
|
if(!gibbed)
|
||||||
// emote("deathgasp") // Dead -- Skie // Doesn't work due to stat == 2 -- Urist
|
playsound(loc, 'hiss6.ogg', 80, 1, 1)
|
||||||
playsound(src.loc, 'hiss6.ogg', 80, 1, 1)
|
|
||||||
for(var/mob/O in viewers(src, null))
|
for(var/mob/O in viewers(src, null))
|
||||||
O.show_message("<B>[src]</B> lets out a waning guttural screech, green blood bubbling from its maw...", 1)
|
O.show_message("<B>[src]</B> lets out a waning guttural screech, green blood bubbling from its maw...", 1)
|
||||||
|
update_canmove()
|
||||||
src.canmove = 0
|
if(client) blind.layer = 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
|
|
||||||
|
|
||||||
tod = worldtime2text() //weasellos time of death patch
|
tod = worldtime2text() //weasellos time of death patch
|
||||||
if (mind) mind.store_memory("Time of death: [tod]", 0)
|
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]"
|
|
||||||
|
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
|
|||||||
@@ -1,106 +1,7 @@
|
|||||||
/mob/living/carbon/alien/humanoid/Login()
|
/mob/living/carbon/alien/humanoid/Login()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
update_hud()
|
update_hud()
|
||||||
|
if(!isturf(loc))
|
||||||
if (!isturf(src.loc))
|
client.eye = loc
|
||||||
src.client.eye = src.loc
|
client.perspective = EYE_PERSPECTIVE
|
||||||
src.client.perspective = EYE_PERSPECTIVE
|
|
||||||
if (src.stat == DEAD)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
|
|
||||||
return
|
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
|
|
||||||
|
|
||||||
*/
|
|
||||||
@@ -1,32 +1,14 @@
|
|||||||
/mob/living/carbon/alien/larva/death(gibbed)
|
/mob/living/carbon/alien/larva/death(gibbed)
|
||||||
if(src.stat == 2)
|
if(stat == DEAD) return
|
||||||
return
|
if(healths) healths.icon_state = "health6"
|
||||||
if(src.healths)
|
stat = DEAD
|
||||||
src.healths.icon_state = "health6"
|
icon_state = "larva_l"
|
||||||
|
|
||||||
src.icon_state = "larva_l"
|
if(!gibbed)
|
||||||
src.stat = 2
|
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
|
tod = worldtime2text() //weasellos time of death patch
|
||||||
mind.store_memory("Time of death: [tod]", 0)
|
if(mind) mind.store_memory("Time of death: [tod]", 0)
|
||||||
|
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
/mob/living/carbon/alien/larva/Login()
|
/mob/living/carbon/alien/larva/Login()
|
||||||
..()
|
..()
|
||||||
|
if(!isturf(loc))
|
||||||
if (!isturf(src.loc))
|
client.eye = loc
|
||||||
src.client.eye = src.loc
|
client.perspective = EYE_PERSPECTIVE
|
||||||
src.client.perspective = EYE_PERSPECTIVE
|
|
||||||
if (src.stat == 2)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -33,17 +33,6 @@
|
|||||||
return ..()
|
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()
|
/mob/living/carbon/brain/update_canmove()
|
||||||
if(in_contents_of(/obj/mecha)) canmove = 1
|
if(in_contents_of(/obj/mecha)) canmove = 1
|
||||||
else canmove = 0
|
else canmove = 0
|
||||||
|
|||||||
@@ -1,24 +1,17 @@
|
|||||||
/mob/living/carbon/brain/death(gibbed)
|
/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.
|
if(!gibbed && container && istype(container, /obj/item/device/mmi))//If not gibbed but in a container.
|
||||||
for(var/mob/O in viewers(container, null))
|
for(var/mob/O in viewers(container, null))
|
||||||
O.show_message(text("\red <B>[]'s MMI flatlines!</B>", src), 1, "\red You hear something flatline.", 2)
|
O.show_message(text("\red <B>[]'s MMI flatlines!</B>", src), 1, "\red You hear something flatline.", 2)
|
||||||
container.icon_state = "mmi_dead"
|
container.icon_state = "mmi_dead"
|
||||||
stat = 2
|
stat = DEAD
|
||||||
|
|
||||||
if(blind)
|
|
||||||
blind.layer = 0
|
|
||||||
sight |= SEE_TURFS
|
|
||||||
sight |= SEE_MOBS
|
|
||||||
sight |= SEE_OBJS
|
|
||||||
|
|
||||||
|
if(blind) blind.layer = 0
|
||||||
|
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||||
see_in_dark = 8
|
see_in_dark = 8
|
||||||
see_invisible = 2
|
see_invisible = 2
|
||||||
|
|
||||||
tod = worldtime2text() //weasellos time of death patch
|
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)
|
return ..(gibbed)
|
||||||
6
code/modules/mob/living/carbon/brain/login.dm
Normal file
6
code/modules/mob/living/carbon/brain/login.dm
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
/mob/living/carbon/brain/Login()
|
||||||
|
..()
|
||||||
|
if (!isturf(loc))
|
||||||
|
client.eye = loc
|
||||||
|
client.perspective = EYE_PERSPECTIVE
|
||||||
|
return
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
/mob/living/carbon
|
/mob/living/carbon
|
||||||
|
|
||||||
var/silent = null //Can't talk. Value goes down every life proc.
|
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.
|
|
||||||
|
|||||||
@@ -40,74 +40,44 @@
|
|||||||
|
|
||||||
|
|
||||||
/mob/living/carbon/human/death(gibbed)
|
/mob/living/carbon/human/death(gibbed)
|
||||||
|
if(halloss > 0 && !gibbed)
|
||||||
if(halloss > 0 && (!gibbed))
|
|
||||||
halloss = 0
|
halloss = 0
|
||||||
return
|
return
|
||||||
|
if(stat == DEAD) return
|
||||||
if(src.stat == 2)
|
if(healths) healths.icon_state = "health5"
|
||||||
return
|
stat = DEAD
|
||||||
|
dizziness = 0
|
||||||
if(src.healths)
|
jitteriness = 0
|
||||||
src.healths.icon_state = "health5"
|
|
||||||
|
|
||||||
src.stat = 2
|
|
||||||
src.dizziness = 0
|
|
||||||
src.jitteriness = 0
|
|
||||||
|
|
||||||
tension_master.death(src)
|
tension_master.death(src)
|
||||||
|
|
||||||
if (!gibbed)
|
if(!gibbed)
|
||||||
emote("deathgasp") //let the world KNOW WE ARE DEAD
|
emote("deathgasp") //let the world KNOW WE ARE DEAD
|
||||||
|
|
||||||
//For ninjas exploding when they die./N
|
//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.
|
src << browse(null, "window=spideros")//Just in case.
|
||||||
var/location = loc
|
var/location = loc
|
||||||
explosion(location, 1, 2, 3, 4)
|
explosion(location, 1, 2, 3, 4)
|
||||||
|
|
||||||
canmove = 0
|
update_canmove()
|
||||||
if(src.client)
|
if(client) blind.layer = 0
|
||||||
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
|
|
||||||
|
|
||||||
if (client)
|
|
||||||
spawn(10)
|
|
||||||
if(client && src.stat == 2)
|
|
||||||
verbs += /mob/proc/ghost
|
|
||||||
|
|
||||||
tod = worldtime2text() //weasellos time of death patch
|
tod = worldtime2text() //weasellos time of death patch
|
||||||
if(mind)
|
if(mind) mind.store_memory("Time of death: [tod]", 0)
|
||||||
mind.store_memory("Time of death: [tod]", 0)
|
|
||||||
sql_report_death(src)
|
sql_report_death(src)
|
||||||
|
ticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now
|
||||||
//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.")
|
|
||||||
*/
|
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/ChangeToHusk()
|
/mob/living/carbon/human/proc/ChangeToHusk()
|
||||||
if(HUSK in src.mutations)
|
if(HUSK in mutations) return
|
||||||
return
|
|
||||||
mutations.Add(HUSK)
|
mutations.Add(HUSK)
|
||||||
real_name = "Unknown"
|
status_flags |= DISFIGURED //makes them unknown without fucking up other stuff like admintools
|
||||||
update_body(0)
|
update_body(0)
|
||||||
update_mutantrace()
|
update_mutantrace()
|
||||||
return
|
return
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/Drain()
|
/mob/living/carbon/human/proc/Drain()
|
||||||
ChangeToHusk()
|
ChangeToHusk()
|
||||||
mutations.Add(NOCLONE)
|
mutations |= NOCLONE
|
||||||
return
|
return
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
set src in view()
|
set src in view()
|
||||||
|
|
||||||
if(!usr || !src) return
|
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 << "<span class='notice'>Something is there but you can't see it.</span>"
|
usr << "<span class='notice'>Something is there but you can't see it.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -13,18 +13,23 @@
|
|||||||
var/skipmask = 0
|
var/skipmask = 0
|
||||||
var/skipears = 0
|
var/skipears = 0
|
||||||
var/skipeyes = 0
|
var/skipeyes = 0
|
||||||
|
var/skipface = 0
|
||||||
|
|
||||||
//exosuits and helmets obscure our view and stuff.
|
//exosuits and helmets obscure our view and stuff.
|
||||||
if (src.wear_suit)
|
if(wear_suit)
|
||||||
skipgloves = src.wear_suit.flags_inv & HIDEGLOVES
|
skipgloves = wear_suit.flags_inv & HIDEGLOVES
|
||||||
skipsuitstorage = src.wear_suit.flags_inv & HIDESUITSTORAGE
|
skipsuitstorage = wear_suit.flags_inv & HIDESUITSTORAGE
|
||||||
skipjumpsuit = src.wear_suit.flags_inv & HIDEJUMPSUIT
|
skipjumpsuit = wear_suit.flags_inv & HIDEJUMPSUIT
|
||||||
skipshoes = src.wear_suit.flags_inv & HIDESHOES
|
skipshoes = wear_suit.flags_inv & HIDESHOES
|
||||||
|
|
||||||
if (src.head)
|
if(head)
|
||||||
skipmask = src.head.flags_inv & HIDEMASK
|
skipmask = head.flags_inv & HIDEMASK
|
||||||
skipeyes = src.head.flags_inv & HIDEEYES
|
skipeyes = head.flags_inv & HIDEEYES
|
||||||
skipears = src.head.flags_inv & HIDEEARS
|
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 :<
|
// 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.
|
var/t_He = "It" //capitalised for use at the start of each line.
|
||||||
@@ -35,16 +40,16 @@
|
|||||||
|
|
||||||
var/msg = "<span class='info'>*---------*\nThis is "
|
var/msg = "<span class='info'>*---------*\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_He = "They"
|
||||||
t_his = "their"
|
t_his = "their"
|
||||||
t_him = "them"
|
t_him = "them"
|
||||||
t_has = "have"
|
t_has = "have"
|
||||||
t_is = "are"
|
t_is = "are"
|
||||||
else
|
else
|
||||||
if(src.icon)
|
if(icon)
|
||||||
msg += "\icon[src.icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated
|
msg += "\icon[icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated
|
||||||
switch(src.gender)
|
switch(gender)
|
||||||
if(MALE)
|
if(MALE)
|
||||||
t_He = "He"
|
t_He = "He"
|
||||||
t_his = "his"
|
t_his = "his"
|
||||||
@@ -54,137 +59,137 @@
|
|||||||
t_his = "her"
|
t_his = "her"
|
||||||
t_him = "her"
|
t_him = "her"
|
||||||
|
|
||||||
msg += "<EM>\a [src]</EM>!\n"
|
msg += "<EM>[src.name]</EM>!\n"
|
||||||
|
|
||||||
//uniform
|
//uniform
|
||||||
if (src.w_uniform && !skipjumpsuit)
|
if(w_uniform && !skipjumpsuit)
|
||||||
if (src.w_uniform.blood_DNA)
|
if(w_uniform.blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.w_uniform] [src.w_uniform.gender==PLURAL?"some":"a"] blood-stained [src.w_uniform.name]!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] blood-stained [w_uniform.name]!</span>\n"
|
||||||
else
|
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
|
//head
|
||||||
if (src.head)
|
if(head)
|
||||||
if (src.head.blood_DNA)
|
if(head.blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.head] [src.head.gender==PLURAL?"some":"a"] blood-stained [src.head.name] on [t_his] head!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] blood-stained [head.name] on [t_his] head!</span>\n"
|
||||||
else
|
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
|
//suit/armour
|
||||||
if (src.wear_suit)
|
if(wear_suit)
|
||||||
if (src.wear_suit.blood_DNA)
|
if(wear_suit.blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.wear_suit] [src.wear_suit.gender==PLURAL?"some":"a"] blood-stained [src.wear_suit.name]!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[wear_suit] [wear_suit.gender==PLURAL?"some":"a"] blood-stained [wear_suit.name]!</span>\n"
|
||||||
else
|
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
|
//suit/armour storage
|
||||||
if(src.s_store && !skipsuitstorage)
|
if(s_store && !skipsuitstorage)
|
||||||
if(src.s_store.blood_DNA)
|
if(s_store.blood_DNA)
|
||||||
msg += "<span class='warning'>[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]!</span>\n"
|
msg += "<span class='warning'>[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]!</span>\n"
|
||||||
else
|
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
|
//back
|
||||||
if (src.back)
|
if(back)
|
||||||
if (src.back.blood_DNA)
|
if(back.blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_has] \icon[src.back] [src.back.gender==PLURAL?"some":"a"] blood-stained [src.back] on [t_his] back.</span>\n"
|
msg += "<span class='warning'>[t_He] [t_has] \icon[back] [back.gender==PLURAL?"some":"a"] blood-stained [back] on [t_his] back.</span>\n"
|
||||||
else
|
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
|
//left hand
|
||||||
if (src.l_hand)
|
if(l_hand)
|
||||||
if (src.l_hand.blood_DNA)
|
if(l_hand.blood_DNA)
|
||||||
msg += "<span class='warning'>[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!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in [t_his] left hand!</span>\n"
|
||||||
else
|
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
|
//right hand
|
||||||
if (src.r_hand)
|
if(r_hand)
|
||||||
if (src.r_hand.blood_DNA)
|
if(r_hand.blood_DNA)
|
||||||
msg += "<span class='warning'>[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!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in [t_his] right hand!</span>\n"
|
||||||
else
|
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
|
//gloves
|
||||||
if (src.gloves && !skipgloves)
|
if(gloves && !skipgloves)
|
||||||
if (src.gloves.blood_DNA)
|
if(gloves.blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_has] \icon[src.gloves] [src.gloves.gender==PLURAL?"some":"a"] blood-stained [src.gloves.name] on [t_his] hands!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] blood-stained [gloves.name] on [t_his] hands!</span>\n"
|
||||||
else
|
else
|
||||||
msg += "[t_He] [t_has] \icon[src.gloves] \a [src.gloves] on [t_his] hands.\n"
|
msg += "[t_He] [t_has] \icon[gloves] \a [gloves] on [t_his] hands.\n"
|
||||||
else if (src.blood_DNA)
|
else if(blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_has] blood-stained hands!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_has] blood-stained hands!</span>\n"
|
||||||
|
|
||||||
//handcuffed?
|
//handcuffed?
|
||||||
|
|
||||||
//handcuffed?
|
//handcuffed?
|
||||||
if (src.handcuffed)
|
if(handcuffed)
|
||||||
if(istype(src.handcuffed, /obj/item/weapon/handcuffs/cable))
|
if(istype(handcuffed, /obj/item/weapon/handcuffs/cable))
|
||||||
msg += "<span class='warning'>[t_He] [t_is] \icon[src.handcuffed] restrained with cable!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] \icon[handcuffed] restrained with cable!</span>\n"
|
||||||
else
|
else
|
||||||
msg += "<span class='warning'>[t_He] [t_is] \icon[src.handcuffed] handcuffed!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] \icon[handcuffed] handcuffed!</span>\n"
|
||||||
|
|
||||||
//belt
|
//belt
|
||||||
if (src.belt)
|
if(belt)
|
||||||
if (src.belt.blood_DNA)
|
if(belt.blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_has] \icon[src.belt] [src.belt.gender==PLURAL?"some":"a"] blood-stained [src.belt.name] about [t_his] waist!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_has] \icon[belt] [belt.gender==PLURAL?"some":"a"] blood-stained [belt.name] about [t_his] waist!</span>\n"
|
||||||
else
|
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
|
//shoes
|
||||||
if (src.shoes && !skipshoes)
|
if(shoes && !skipshoes)
|
||||||
if(src.shoes.blood_DNA)
|
if(shoes.blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.shoes] [src.shoes.gender==PLURAL?"some":"a"] blood-stained [src.shoes.name] on [t_his] feet!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] blood-stained [shoes.name] on [t_his] feet!</span>\n"
|
||||||
else
|
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
|
//mask
|
||||||
if (src.wear_mask && !skipmask)
|
if(wear_mask && !skipmask)
|
||||||
if (src.wear_mask.blood_DNA)
|
if(wear_mask.blood_DNA)
|
||||||
msg += "<span class='warning'>[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!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_has] \icon[wear_mask] [wear_mask.gender==PLURAL?"some":"a"] blood-stained [wear_mask.name] on [t_his] face!</span>\n"
|
||||||
else
|
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
|
//eyes
|
||||||
if (src.glasses && !skipeyes)
|
if(glasses && !skipeyes)
|
||||||
if (src.glasses.blood_DNA)
|
if(glasses.blood_DNA)
|
||||||
msg += "<span class='warning'>[t_He] [t_has] \icon[src.glasses] [src.glasses.gender==PLURAL?"some":"a"] blood-stained [src.glasses] covering [t_his] eyes!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] blood-stained [glasses] covering [t_his] eyes!</span>\n"
|
||||||
else
|
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
|
//ears
|
||||||
if (src.ears && !skipears)
|
if(ears && !skipears)
|
||||||
msg += "[t_He] [t_has] \icon[src.ears] \a [src.ears] on [t_his] ears.\n"
|
msg += "[t_He] [t_has] \icon[ears] \a [ears] on [t_his] ears.\n"
|
||||||
|
|
||||||
//ID
|
//ID
|
||||||
if (src.wear_id)
|
if(wear_id)
|
||||||
var/id
|
var/id
|
||||||
if(istype(src.wear_id, /obj/item/device/pda))
|
if(istype(wear_id, /obj/item/device/pda))
|
||||||
var/obj/item/device/pda/pda = src.wear_id
|
var/obj/item/device/pda/pda = wear_id
|
||||||
id = pda.owner
|
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 :[
|
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 = src.wear_id
|
var/obj/item/weapon/card/id/idcard = wear_id
|
||||||
id = idcard.registered_name
|
id = idcard.registered_name
|
||||||
if (id && (id != src.real_name) && (get_dist(src, usr) <= 1) && prob(10))
|
if(id && (id != real_name) && (get_dist(src, usr) <= 1) && prob(10))
|
||||||
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id] yet something doesn't seem right...</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...</span>\n"
|
||||||
else
|
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
|
//Jitters
|
||||||
if (src.is_jittery)
|
if(is_jittery)
|
||||||
if(src.jitteriness >= 300)
|
if(jitteriness >= 300)
|
||||||
msg += "<span class='warning'><B>[t_He] [t_is] convulsing violently!</B></span>\n"
|
msg += "<span class='warning'><B>[t_He] [t_is] convulsing violently!</B></span>\n"
|
||||||
else if(src.jitteriness >= 200)
|
else if(jitteriness >= 200)
|
||||||
msg += "<span class='warning'>[t_He] [t_is] extremely jittery.</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] extremely jittery.</span>\n"
|
||||||
else if(src.jitteriness >= 100)
|
else if(jitteriness >= 100)
|
||||||
msg += "<span class='warning'>[t_He] [t_is] twitching ever so slightly.</span>\n"
|
msg += "<span class='warning'>[t_He] [t_is] twitching ever so slightly.</span>\n"
|
||||||
|
|
||||||
if (src.suiciding)
|
if(suiciding)
|
||||||
msg += "<span class='warning'>[t_He] [t_has] bitten off [t_his] own tongue and [t_has] suffered major bloodloss!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_has] bitten off [t_his] own tongue and [t_has] suffered major bloodloss!</span>\n"
|
||||||
|
|
||||||
if (src.stat == DEAD || (changeling && (changeling.changeling_fakedeath == 1)))
|
if(stat == DEAD || (changeling && (changeling.changeling_fakedeath == 1)))
|
||||||
msg += "<span class='deadsay'>[t_He] [t_is] limp and unresponsive; there are no signs of life"
|
msg += "<span class='deadsay'>[t_He] [t_is] limp and unresponsive; there are no signs of life"
|
||||||
|
|
||||||
if(!src.client)
|
if(!client)
|
||||||
var/foundghost = 0
|
var/foundghost = 0
|
||||||
for(var/mob/dead/observer/G in world)
|
for(var/mob/dead/observer/G in world)
|
||||||
if(G.client)
|
if(G.client)
|
||||||
@@ -196,48 +201,51 @@
|
|||||||
msg += "...</span>\n"
|
msg += "...</span>\n"
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
msg += "<span class='warning'>"
|
msg += "<span class='warning'>"
|
||||||
|
|
||||||
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)
|
||||||
if (temp < 30)
|
if(temp < 30)
|
||||||
msg += "[t_He] [t_has] minor bruising.\n"
|
msg += "[t_He] [t_has] minor bruising.\n"
|
||||||
else
|
else
|
||||||
msg += "<B>[t_He] [t_has] severe bruising!</B>\n"
|
msg += "<B>[t_He] [t_has] severe bruising!</B>\n"
|
||||||
|
|
||||||
temp = src.getFireLoss()
|
temp = getFireLoss()
|
||||||
if (temp)
|
if(temp)
|
||||||
if (temp < 30)
|
if(temp < 30)
|
||||||
msg += "[t_He] [t_has] minor burns.\n"
|
msg += "[t_He] [t_has] minor burns.\n"
|
||||||
else
|
else
|
||||||
msg += "<B>[t_He] [t_has] severe burns!</B>\n"
|
msg += "<B>[t_He] [t_has] severe burns!</B>\n"
|
||||||
|
|
||||||
temp = src.getCloneLoss()
|
temp = getCloneLoss()
|
||||||
if (temp)
|
if(temp)
|
||||||
if (temp < 30)
|
if(temp < 30)
|
||||||
msg += "[t_He] [t_has] minor genetic deformities.\n"
|
msg += "[t_He] [t_has] minor genetic deformities.\n"
|
||||||
else
|
else
|
||||||
msg += "<B>[t_He] [t_has] severe genetic deformities.</B>\n"
|
msg += "<B>[t_He] [t_has] severe genetic deformities.</B>\n"
|
||||||
|
|
||||||
if (src.nutrition < 100)
|
if(nutrition < 100)
|
||||||
msg += "[t_He] [t_is] severely malnourished.\n"
|
msg += "[t_He] [t_is] severely malnourished.\n"
|
||||||
else if (src.nutrition >= 500)
|
else if(nutrition >= 500)
|
||||||
if (usr.nutrition < 100)
|
if(usr.nutrition < 100)
|
||||||
msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n"
|
msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n"
|
||||||
else
|
else
|
||||||
msg += "[t_He] [t_is] quite chubby.\n"
|
msg += "[t_He] [t_is] quite chubby.\n"
|
||||||
|
|
||||||
msg += "</span>"
|
msg += "</span>"
|
||||||
|
|
||||||
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"
|
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"
|
msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n"
|
||||||
|
|
||||||
if (!src.client)
|
if(!key)
|
||||||
|
msg += "<span class='deadsay'>[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</span>\n"
|
||||||
|
else if(!client)
|
||||||
msg += "[t_He] [t_has] a vacant, braindead stare...\n"
|
msg += "[t_He] [t_has] a vacant, braindead stare...\n"
|
||||||
|
|
||||||
if (src.digitalcamo)
|
if(digitalcamo)
|
||||||
msg += "[t_He] [t_is] repulsively uncanny!\n"
|
msg += "[t_He] [t_is] repulsively uncanny!\n"
|
||||||
|
|
||||||
|
|
||||||
@@ -257,12 +265,12 @@
|
|||||||
var/obj/item/device/pda/tempPda = wear_id
|
var/obj/item/device/pda/tempPda = wear_id
|
||||||
perpname = tempPda.owner
|
perpname = tempPda.owner
|
||||||
else
|
else
|
||||||
perpname = src.name
|
perpname = name
|
||||||
|
|
||||||
for (var/datum/data/record/E in data_core.general)
|
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)
|
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"]
|
criminal = R.fields["criminal"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
//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()
|
/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")
|
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/face_name = get_face_name()
|
||||||
var/id_name = get_id_name("")
|
var/id_name = get_id_name("")
|
||||||
if(id_name && (id_name != face_name))
|
if(id_name && (id_name != face_name))
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
/mob/living/carbon/human/Login()
|
/mob/living/carbon/human/Login()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
update_hud()
|
update_hud()
|
||||||
|
if(!isturf(loc))
|
||||||
if (!isturf(src.loc))
|
client.eye = loc
|
||||||
src.client.eye = src.loc
|
client.perspective = EYE_PERSPECTIVE
|
||||||
src.client.perspective = EYE_PERSPECTIVE
|
|
||||||
if (src.stat == DEAD)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1,42 +1,20 @@
|
|||||||
/mob/living/carbon/metroid/death(gibbed)
|
/mob/living/carbon/metroid/death(gibbed)
|
||||||
if(src.stat == 2)
|
if(stat == DEAD) return
|
||||||
return
|
stat = DEAD
|
||||||
|
icon_state = "baby metroid dead"
|
||||||
|
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
if(istype(src, /mob/living/carbon/metroid/adult))
|
if(istype(src, /mob/living/carbon/metroid/adult))
|
||||||
|
ghostize(1)
|
||||||
if(client)
|
explosion(loc, -1,-1,3,12)
|
||||||
var/mob/dead/observer/ghost = new(src)
|
if(src) del(src)
|
||||||
ghost.key = key
|
|
||||||
if (ghost.client)
|
|
||||||
ghost.client.eye = ghost
|
|
||||||
|
|
||||||
explosion(src.loc, -1,-1,3,12)
|
|
||||||
sleep(2)
|
|
||||||
del(src)
|
|
||||||
else
|
else
|
||||||
for(var/mob/O in viewers(src, null))
|
for(var/mob/O in viewers(src, null))
|
||||||
O.show_message("<b>The [src.name]</b> seizes up and falls limp...", 1) //ded -- Urist
|
O.show_message("<b>The [name]</b> seizes up and falls limp...", 1) //ded -- Urist
|
||||||
|
|
||||||
src.stat = 2
|
update_canmove()
|
||||||
src.canmove = 0
|
if(blind) blind.layer = 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
|
|
||||||
|
|
||||||
ticker.mode.check_win()
|
ticker.mode.check_win()
|
||||||
|
|
||||||
if (src.key)
|
|
||||||
spawn(50)
|
|
||||||
if(src.key && src.stat == 2)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
|
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
@@ -505,7 +505,7 @@
|
|||||||
var/number = pick(2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4)
|
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)
|
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)
|
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.powerlevel = round(powerlevel/number)
|
||||||
M.Friends = Friends
|
M.Friends = Friends
|
||||||
M.tame = tame
|
M.tame = tame
|
||||||
@@ -519,7 +519,7 @@
|
|||||||
if(!client)
|
if(!client)
|
||||||
var/mob/living/carbon/metroid/adult/A = new/mob/living/carbon/metroid/adult(src.loc)
|
var/mob/living/carbon/metroid/adult/A = new/mob/living/carbon/metroid/adult(src.loc)
|
||||||
A.nutrition = nutrition
|
A.nutrition = nutrition
|
||||||
A.nutrition += 100
|
// A.nutrition += 100
|
||||||
A.powerlevel = max(0, powerlevel-1)
|
A.powerlevel = max(0, powerlevel-1)
|
||||||
A.Friends = Friends
|
A.Friends = Friends
|
||||||
A.tame = tame
|
A.tame = tame
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
/mob/living/carbon/metroid/Login()
|
/mob/living/carbon/metroid/Login()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
update_hud()
|
update_hud()
|
||||||
|
if(!isturf(loc))
|
||||||
if (!isturf(src.loc))
|
client.eye = loc
|
||||||
src.client.eye = src.loc
|
client.perspective = EYE_PERSPECTIVE
|
||||||
src.client.perspective = EYE_PERSPECTIVE
|
|
||||||
if (src.stat == DEAD)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -40,33 +40,17 @@
|
|||||||
|
|
||||||
|
|
||||||
/mob/living/carbon/monkey/death(gibbed)
|
/mob/living/carbon/monkey/death(gibbed)
|
||||||
if(src.stat == DEAD)
|
if(stat == DEAD) return
|
||||||
return
|
if(healths) healths.icon_state = "health5"
|
||||||
|
stat = DEAD
|
||||||
|
|
||||||
if (src.healths)
|
|
||||||
src.healths.icon_state = "health5"
|
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
for(var/mob/O in viewers(src, null))
|
for(var/mob/O in viewers(src, null))
|
||||||
O.show_message("<b>The [src.name]</b> lets out a faint chimper as it collapses and stops moving...", 1) //ded -- Urist
|
O.show_message("<b>The [name]</b> lets out a faint chimper as it collapses and stops moving...", 1) //ded -- Urist
|
||||||
|
|
||||||
src.stat = 2
|
update_canmove()
|
||||||
src.canmove = 0
|
if(blind) blind.layer = 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
|
|
||||||
|
|
||||||
ticker.mode.check_win()
|
ticker.mode.check_win()
|
||||||
|
|
||||||
if (src.key)
|
|
||||||
spawn(50)
|
|
||||||
if(src.key && src.stat == 2)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
|
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
@@ -1,11 +1,7 @@
|
|||||||
/mob/living/carbon/monkey/Login()
|
/mob/living/carbon/monkey/Login()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
update_hud()
|
update_hud()
|
||||||
|
if(!isturf(loc))
|
||||||
if (!isturf(src.loc))
|
client.eye = loc
|
||||||
src.client.eye = src.loc
|
client.perspective = EYE_PERSPECTIVE
|
||||||
src.client.perspective = EYE_PERSPECTIVE
|
|
||||||
if (src.stat == DEAD)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
/mob/living/silicon/ai/death(gibbed)
|
/mob/living/silicon/ai/death(gibbed)
|
||||||
stat = 2
|
if(stat == DEAD) return
|
||||||
canmove = 0
|
stat = DEAD
|
||||||
if(blind)
|
icon_state = "ai-crash"
|
||||||
blind.layer = 0
|
|
||||||
sight |= SEE_TURFS
|
update_canmove()
|
||||||
sight |= SEE_MOBS
|
if(blind) blind.layer = 0
|
||||||
sight |= SEE_OBJS
|
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||||
see_in_dark = 8
|
see_in_dark = 8
|
||||||
see_invisible = 2
|
see_invisible = 2
|
||||||
icon_state = "ai-crash"
|
|
||||||
|
|
||||||
var/callshuttle = 0
|
var/callshuttle = 0
|
||||||
|
|
||||||
@@ -56,8 +55,4 @@
|
|||||||
tod = worldtime2text() //weasellos time of death patch
|
tod = worldtime2text() //weasellos time of death patch
|
||||||
if(mind) mind.store_memory("Time of death: [tod]", 0)
|
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)
|
return ..(gibbed)
|
||||||
|
|||||||
@@ -1,31 +1,28 @@
|
|||||||
/mob/living/silicon/ai/Login()
|
/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up <20>_<EFBFBD> ~Carn
|
||||||
|
client.screen.len = 0
|
||||||
|
client.images.len = 0
|
||||||
for(var/obj/effect/rune/rune in world)
|
for(var/obj/effect/rune/rune in world)
|
||||||
var/image/blood = image(loc = rune)
|
var/image/blood = image(loc = rune)
|
||||||
blood.override = 1
|
blood.override = 1
|
||||||
client.images += blood
|
client.images += blood
|
||||||
..()
|
..()
|
||||||
regenerate_icons()
|
regenerate_icons()
|
||||||
for(var/S in src.client.screen)
|
flash = new /obj/screen( null )
|
||||||
del(S)
|
flash.icon_state = "blank"
|
||||||
src.flash = new /obj/screen( null )
|
flash.name = "flash"
|
||||||
src.flash.icon_state = "blank"
|
flash.screen_loc = "1,1 to 15,15"
|
||||||
src.flash.name = "flash"
|
flash.layer = 17
|
||||||
src.flash.screen_loc = "1,1 to 15,15"
|
blind = new /obj/screen( null )
|
||||||
src.flash.layer = 17
|
blind.icon_state = "black"
|
||||||
src.blind = new /obj/screen( null )
|
blind.name = " "
|
||||||
src.blind.icon_state = "black"
|
blind.screen_loc = "1,1 to 15,15"
|
||||||
src.blind.name = " "
|
blind.layer = 0
|
||||||
src.blind.screen_loc = "1,1 to 15,15"
|
client.screen += list( blind, flash )
|
||||||
src.blind.layer = 0
|
if(!isturf(loc))
|
||||||
src.client.screen += list( src.blind, src.flash )
|
client.eye = loc
|
||||||
if(!isturf(src.loc))
|
client.perspective = EYE_PERSPECTIVE
|
||||||
src.client.eye = src.loc
|
if(stat != DEAD)
|
||||||
src.client.perspective = EYE_PERSPECTIVE
|
|
||||||
if (src.stat == 2)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
else
|
|
||||||
for(var/obj/machinery/ai_status_display/O in world) //change status
|
for(var/obj/machinery/ai_status_display/O in world) //change status
|
||||||
spawn(0)
|
|
||||||
if(O)
|
if(O)
|
||||||
O.mode = 1
|
O.mode = 1
|
||||||
O.emotion = "Neutral"
|
O.emotion = "Neutral"
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
/mob/living/silicon/ai/Logout()
|
/mob/living/silicon/ai/Logout()
|
||||||
..()
|
..()
|
||||||
for(var/obj/machinery/ai_status_display/O in world) //change status
|
for(var/obj/machinery/ai_status_display/O in world) //change status
|
||||||
spawn( 0 )
|
|
||||||
O.mode = 0
|
O.mode = 0
|
||||||
if(!isturf(src.loc))
|
if(!isturf(loc))
|
||||||
if (src.client)
|
if (client)
|
||||||
src.client.eye = src.loc
|
client.eye = loc
|
||||||
src.client.perspective = EYE_PERSPECTIVE
|
client.perspective = EYE_PERSPECTIVE
|
||||||
if (src.stat == 2)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
return
|
return
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
/mob/living/silicon/decoy/death(gibbed)
|
/mob/living/silicon/decoy/death(gibbed)
|
||||||
src.stat = 2
|
if(stat == DEAD) return
|
||||||
src.icon_state = "ai-crash"
|
stat = DEAD
|
||||||
|
icon_state = "ai-crash"
|
||||||
spawn(10)
|
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
|
for(var/obj/machinery/ai_status_display/O in world) //change status
|
||||||
spawn( 0 )
|
|
||||||
O.mode = 2
|
O.mode = 2
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
@@ -1,23 +1,17 @@
|
|||||||
/mob/living/silicon/pai/death(gibbed)
|
/mob/living/silicon/pai/death(gibbed)
|
||||||
src.stat = 2
|
if(stat == DEAD) return
|
||||||
src.canmove = 0
|
stat = DEAD
|
||||||
if(src.blind)
|
canmove = 0
|
||||||
src.blind.layer = 0
|
if(blind) blind.layer = 0
|
||||||
src.sight |= SEE_TURFS
|
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||||
src.sight |= SEE_MOBS
|
see_in_dark = 8
|
||||||
src.sight |= SEE_OBJS
|
see_invisible = 2
|
||||||
src.see_in_dark = 8
|
|
||||||
src.see_invisible = 2
|
|
||||||
|
|
||||||
//var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
|
//var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
|
||||||
//mind.store_memory("Time of death: [tod]", 0)
|
//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.
|
//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
|
//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)
|
del(mind)
|
||||||
|
if(key) ghostize(0)
|
||||||
if(key)
|
|
||||||
spawn(50)
|
|
||||||
src.ghostize(0)
|
|
||||||
del(src)
|
del(src)
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
client.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
|
client.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
|
||||||
if(patient.stat == 2)
|
if(patient.stat == 2)
|
||||||
client.images += image(tempHud,patient,"huddead")
|
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")
|
client.images += image(tempHud,patient,"hudxeno")
|
||||||
else if(foundVirus)
|
else if(foundVirus)
|
||||||
client.images += image(tempHud,patient,"hudill")
|
client.images += image(tempHud,patient,"hudill")
|
||||||
|
|||||||
@@ -41,36 +41,29 @@
|
|||||||
|
|
||||||
|
|
||||||
/mob/living/silicon/robot/death(gibbed)
|
/mob/living/silicon/robot/death(gibbed)
|
||||||
if (!gibbed)
|
if(stat == DEAD) return
|
||||||
src.emote("deathgasp")
|
if(!gibbed)
|
||||||
src.stat = 2
|
emote("deathgasp")
|
||||||
src.canmove = 0
|
stat = DEAD
|
||||||
|
update_canmove()
|
||||||
|
|
||||||
tension_master.death(src)
|
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
|
if(in_contents_of(/obj/machinery/recharge_station))//exit the recharge station
|
||||||
var/obj/machinery/recharge_station/RC = src.loc
|
var/obj/machinery/recharge_station/RC = loc
|
||||||
RC.go_out()
|
RC.go_out()
|
||||||
|
|
||||||
if(src.blind)
|
if(blind) blind.layer = 0
|
||||||
src.blind.layer = 0
|
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||||
src.sight |= SEE_TURFS
|
see_in_dark = 8
|
||||||
src.sight |= SEE_MOBS
|
see_invisible = 2
|
||||||
src.sight |= SEE_OBJS
|
updateicon()
|
||||||
|
|
||||||
src.see_in_dark = 8
|
|
||||||
src.see_invisible = 2
|
|
||||||
src.updateicon()
|
|
||||||
|
|
||||||
tod = worldtime2text() //weasellos time of death patch
|
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)
|
sql_report_cyborg_death(src)
|
||||||
|
|
||||||
if (src.key)
|
|
||||||
spawn(50)
|
|
||||||
if(src.key && src.stat == 2)
|
|
||||||
src.verbs += /mob/proc/ghost
|
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
@@ -1,21 +1,18 @@
|
|||||||
/mob/living/silicon/robot/Login(var/syndie = 0)
|
/mob/living/silicon/robot/Login(var/syndie = 0)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
regenerate_icons()
|
regenerate_icons()
|
||||||
|
|
||||||
if (!isturf(src.loc))
|
if(!isturf(loc))
|
||||||
src.client.eye = src.loc
|
client.eye = loc
|
||||||
src.client.perspective = EYE_PERSPECTIVE
|
client.perspective = EYE_PERSPECTIVE
|
||||||
if (src.stat == 2)
|
if(real_name == "Cyborg")
|
||||||
src.verbs += /mob/proc/ghost
|
ident = rand(1, 999)
|
||||||
if(src.real_name == "Cyborg")
|
real_name += " "
|
||||||
src.ident = rand(1, 999)
|
real_name += "-[ident]"
|
||||||
src.real_name += " "
|
name = real_name
|
||||||
src.real_name += "-[ident]"
|
/*if(!connected_ai)
|
||||||
src.name = src.real_name
|
|
||||||
/*if(!src.connected_ai)
|
|
||||||
for(var/mob/living/silicon/ai/A in world)
|
for(var/mob/living/silicon/ai/A in world)
|
||||||
src.connected_ai = A
|
connected_ai = A
|
||||||
A.connected_robots += src
|
A.connected_robots += src
|
||||||
break
|
break
|
||||||
*/
|
*/
|
||||||
@@ -54,8 +51,8 @@
|
|||||||
var/obj/item/weapon/cell/C = new(src)
|
var/obj/item/weapon/cell/C = new(src)
|
||||||
C.charge = 1500
|
C.charge = 1500
|
||||||
cell = C
|
cell = C
|
||||||
if(src.mind)
|
if(mind)
|
||||||
ticker.mode.remove_revolutionary(src.mind)
|
ticker.mode.remove_revolutionary(mind)
|
||||||
started = 1
|
started = 1
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -10,7 +10,6 @@
|
|||||||
layer = 4
|
layer = 4
|
||||||
pressure_resistance = 1
|
pressure_resistance = 1
|
||||||
slot_flags = SLOT_HEAD
|
slot_flags = SLOT_HEAD
|
||||||
see_face = 1
|
|
||||||
body_parts_covered = HEAD
|
body_parts_covered = HEAD
|
||||||
protective_temperature = 0
|
protective_temperature = 0
|
||||||
|
|
||||||
|
|||||||
@@ -168,9 +168,10 @@ var/MAX_EXPLOSION_RANGE = 14
|
|||||||
#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!!
|
#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!!
|
||||||
#define HIDEJUMPSUIT 4 //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 HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!!
|
||||||
#define HIDEMASK 1 //APPLIES ONLY TO HELMETS!!
|
#define HIDEMASK 1 //APPLIES ONLY TO HELMETS/MASKS!!
|
||||||
#define HIDEEARS 2 //APPLIES ONLY TO HELMETS!!
|
#define HIDEEARS 2 //APPLIES ONLY TO HELMETS/MASKS!!
|
||||||
#define HIDEEYES 4 //APPLIES ONLY TO HELMETS!!
|
#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
|
//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 EYE_BLUR "eye_blur"
|
||||||
#define DROWSY "drowsy"
|
#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 CANSTUN 1
|
||||||
#define CANWEAKEN 2
|
#define CANWEAKEN 2
|
||||||
#define CANPARALYSE 4
|
#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
|
#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')
|
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')
|
||||||
|
|||||||
@@ -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. -->
|
should be listed in the changelog upon commit tho. Thanks. -->
|
||||||
|
|
||||||
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
|
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
|
||||||
|
|
||||||
|
<div class="commit sansserif">
|
||||||
|
<h2 class="date">14 July 2012</h2>
|
||||||
|
<h3 class="author">Carn updated:</h3>
|
||||||
|
<ul class="changes bgimages16">
|
||||||
|
<li class="wip">All living mobs can now ghost whenever they want. Essentially making the suicide verb obsolete. If you ghost whilst still alive however, you may not re-enter your body for the rest of the round.</li>
|
||||||
|
<li class="wip">Humans can no longer suicide whilst restrained (this is purely to prevent meta whilst I finish up the new <a href='http://nanotrasen.com/phpBB3/viewtopic.php?f=9&t=9331'>FUN suicides</a>)</li>
|
||||||
|
<li class="bugfix">Fixed dem evidence bags. Fixed metroids getting at it like rabbits. Fixed stuff like welding masks not hiding your face. Bunch of other things</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="commit sansserif">
|
<div class="commit sansserif">
|
||||||
<h2 class="date">Saturday July 14th 2012</h2>
|
<h2 class="date">Saturday July 14th 2012</h2>
|
||||||
<h3 class="author">Giacom updated:</h3>
|
<h3 class="author">Giacom updated:</h3>
|
||||||
|
|||||||
@@ -967,6 +967,7 @@
|
|||||||
#include "code\modules\mob\living\carbon\brain\death.dm"
|
#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\hud.dm"
|
||||||
#include "code\modules\mob\living\carbon\brain\life.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\MMI.dm"
|
||||||
#include "code\modules\mob\living\carbon\brain\say.dm"
|
#include "code\modules\mob\living\carbon\brain\say.dm"
|
||||||
#include "code\modules\mob\living\carbon\human\death.dm"
|
#include "code\modules\mob\living\carbon\human\death.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user