mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 05:27:01 +01:00
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:
@@ -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
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user