Almost all chemicals sould heal and harm humans and non-humans properly.

Various bugfixes for cult.
-raised and manifested are cultists
-you cannot use target for sacrificing
-free a cultis frees from muzzle, closets, pods
-removed unused files.
Added satitize() to emotes.
Extended and Random were returned to Game Panel.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1432 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
rastaf.zero@gmail.com
2011-04-10 20:57:42 +00:00
parent 83e4a41480
commit ae1d99ee73
41 changed files with 542 additions and 1374 deletions
+6 -3
View File
@@ -16,11 +16,12 @@
set category = "Special Verbs"
set name = "Ghost"
set desc = "You cannot be revived as a ghost"
if(src.stat != 2)
/*if(src.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
return*/
if(src.client)
src.client.mob = new/mob/dead/observer(src)
src.verbs -= /mob/proc/ghostize
return
/mob/proc/adminghostize()
@@ -79,7 +80,7 @@
src.client.clear_admin_verbs()
src.client.holder.state = 1
src.client.update_admins(rank)
if(cultists.Find(corpse) && corpse.ajourn==1 && corpse.health>-100) //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!=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
var/S=0
for(var/obj/rune/R in world)
if(corpse.loc==R.loc && R.word1 == wordhell && R.word2 == wordtravel && R.word3 == wordself)
@@ -90,6 +91,8 @@
if(corpse.ajourn)
corpse.ajourn=0
src.client.mob = corpse
if (corpse.stat==2)
src.verbs += /mob/proc/ghostize
del(src)
/mob/dead/observer/proc/dead_tele()
@@ -805,4 +805,9 @@ In all, this is a lot like the monkey code. /N
/mob/living/carbon/alien/heal_organ_damage(var/brute, var/burn)
bruteloss = max(0, bruteloss-brute) //HACK
fireloss = max(0, fireloss-burn) //HACK
src.updatehealth()
src.updatehealth()
/mob/living/carbon/alien/take_organ_damage(var/brute, var/burn)
bruteloss += brute //HACK
fireloss += burn //HACK
src.updatehealth()
@@ -45,7 +45,10 @@
m_type = 1
if ("custom")
var/input = input("Choose an emote to display.")
var/input = input("Choose an emote to display.") as text|null
if (!input)
return
input = sanitize(input)
var/input2 = input("Is this a visible or hearable emote?") in list("Visible","Hearable")
if (input2 == "Visible")
m_type = 1
@@ -2761,6 +2761,10 @@ It can still be worn/put on as normal.
..()
src.UpdateDamageIcon()
/mob/living/carbon/human/take_organ_damage(var/brute, var/burn)
..()
src.UpdateDamageIcon()
/mob/living/carbon/human/proc/isarmored(var/datum/organ/external/def_zone)
if(def_zone.name == "head")
if(src.head && istype(src.head,/obj/item/clothing/head/helmet))
@@ -724,6 +724,13 @@
if(!src.druggy)
src.see_invisible = 2
else if (src.seer)
var/obj/rune/R = locate() in src.loc
if (istype(R) && R.word1 == wordsee && R.word2 == wordhell && R.word3 == wordjoin)
see_invisible = 15
else
seer = 0
see_invisible = 0
else if (istype(src.wear_mask, /obj/item/clothing/mask/gas/space_ninja))
switch(src.wear_mask:mode)
if(1)
@@ -709,4 +709,9 @@
/mob/living/carbon/monkey/heal_organ_damage(var/brute, var/burn)
bruteloss = max(0, bruteloss-brute) //HACK
fireloss = max(0, fireloss-burn) //HACK
src.updatehealth()
/mob/living/carbon/monkey/take_organ_damage(var/brute, var/burn)
bruteloss += brute //HACK
fireloss += burn //HACK
src.updatehealth()
@@ -47,7 +47,10 @@
m_type = 1
if ("custom")
var/input = input("Choose an emote to display.")
var/input = input("Choose an emote to display.") as text|null
if (!input)
return
input = sanitize(input)
var/input2 = input("Is this a visible or hearable emote?") in list("Visible","Hearable")
if (input2 == "Visible")
m_type = 1
@@ -56,7 +56,10 @@
m_type = 2
if ("custom")
var/input = input("Choose an emote to display.")
var/input = input("Choose an emote to display.") as text|null
if (!input)
return
input = sanitize(input)
var/input2 = input("Is this a visible or hearable emote?") in list("Visible","Hearable")
if (input2 == "Visible")
m_type = 1
@@ -56,7 +56,10 @@
m_type = 2
if ("custom")
var/input = input("Choose an emote to display.")
var/input = input("Choose an emote to display.") as text|null
if (!input)
return
input = sanitize(input)
var/input2 = input("Is this a visible or hearable emote?") in list("Visible","Hearable")
if (input2 == "Visible")
m_type = 1
+66 -8
View File
@@ -2256,16 +2256,74 @@ note dizziness decrements automatically in the mob's Life() proc.
var/datum/organ/external/def_zone = ran_zone(t)
return def_zone
// heal ONE external organ, organ gets randomly selected from damaged ones.
/mob/proc/heal_organ_damage(var/brute, var/burn)
var/list/parts = list()
for(var/A in src.organs)
if(!src.organs[A]) continue
var/datum/organ/external/affecting = src.organs[A]
if(!istype(affecting)) continue
if((brute && affecting.brute_dam) || (burn && affecting.burn_dam))
parts += affecting
var/list/datum/organ/external/parts = list()
for(var/organ_name in src.organs)
var/datum/organ/external/organ = src.organs[organ_name]
if((brute && organ.brute_dam) || (burn && organ.burn_dam))
parts += organ
if(!parts.len) return
if(!parts.len)
return
var/datum/organ/external/picked = pick(parts)
picked.heal_damage(brute,burn)
src.updatehealth()
// damage ONE external organ, organ gets randomly selected from damaged ones.
/mob/proc/take_organ_damage(var/brute, var/burn)
var/list/datum/organ/external/parts = list()
for(var/organ_name in src.organs)
var/datum/organ/external/organ = src.organs[organ_name]
if(organ.brute_dam + organ.burn_dam < organ.max_damage)
parts += organ
if(!parts.len)
return
var/datum/organ/external/picked = pick(parts)
picked.take_damage(brute,burn)
src.updatehealth()
// heal MANY external organs, in random order
/mob/proc/heal_overall_damage(var/brute, var/burn)
var/list/datum/organ/external/parts = list()
for(var/organ_name in src.organs)
var/datum/organ/external/organ = src.organs[organ_name]
if((brute && organ.brute_dam) || (burn && organ.burn_dam))
parts += organ
while(parts.len && (brute>0 || burn>0) )
var/datum/organ/external/picked = pick(parts)
var/brute_was = picked.brute_dam
var/burn_was = picked.burn_dam
picked.heal_damage(brute,burn)
brute -= (brute_was-picked.brute_dam)
burn -= (burn_was-picked.burn_dam)
parts -= picked
src.updatehealth()
// damage MANY external organs, in random order
/mob/proc/take_overall_damage(var/brute, var/burn)
var/list/datum/organ/external/parts = list()
for(var/organ_name in src.organs)
var/datum/organ/external/organ = src.organs[organ_name]
if(organ.brute_dam + organ.burn_dam < organ.max_damage)
parts += organ
while(parts.len && (brute>0 || burn>0) )
var/datum/organ/external/picked = pick(parts)
var/brute_was = picked.brute_dam
var/burn_was = picked.burn_dam
picked.take_damage(brute,burn)
brute -= (picked.brute_dam-brute_was)
burn -= (picked.burn_dam-burn_was)
parts -= picked
src.updatehealth()
+2
View File
@@ -42,6 +42,8 @@
O.virus.affected_mob = O
if (src.client)
src.client.mob = O
if(src.mind)
src.mind.transfer_to(O)
O.a_intent = "hurt"
O << "<B>You are now a monkey.</B>"
var/prev_body = src