mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 03:33:21 +00: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:
@@ -266,6 +266,8 @@ var/showadminmessages = 1
|
||||
var/dat = {"<B>What mode do you wish to play?</B><HR>"}
|
||||
for (var/mode in config.modes)
|
||||
dat += {"<A href='?src=\ref[src];c_mode2=[mode]'>[config.mode_names[mode]]</A><br>"}
|
||||
dat += {"<A href='?src=\ref[src];c_mode2=secret'>Secret</A><br>"}
|
||||
dat += {"<A href='?src=\ref[src];c_mode2=random'>Random</A><br>"}
|
||||
dat += {"Now: [master_mode]"}
|
||||
usr << browse(dat, "window=c_mode")
|
||||
|
||||
@@ -280,6 +282,7 @@ var/showadminmessages = 1
|
||||
world << "\blue <b>The mode is now: [master_mode]</b>"
|
||||
|
||||
world.save_mode(master_mode)
|
||||
.(href, list("c_mode"=1))
|
||||
|
||||
if (href_list["monkeyone"])
|
||||
if ((src.rank in list( "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
@@ -634,7 +637,7 @@ var/showadminmessages = 1
|
||||
alert("Is a Revolutionary!")
|
||||
return
|
||||
if("cult")
|
||||
if(M.mind in current_mode:cult)
|
||||
if(M.mind in current_mode.cult)
|
||||
alert("Is a Cultist!")
|
||||
return
|
||||
if("wizard")
|
||||
@@ -1957,24 +1960,15 @@ var/showadminmessages = 1
|
||||
alert("[M.name] is not prisoned.")
|
||||
|
||||
/mob/proc/revive()
|
||||
if(istype(src, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = src
|
||||
for(var/A in H.organs)
|
||||
var/datum/organ/external/affecting = null
|
||||
if(!H.organs[A]) continue
|
||||
affecting = H.organs[A]
|
||||
if(!istype(affecting, /datum/organ/external)) continue
|
||||
affecting.heal_damage(1000, 1000) //fixes getting hit after ingestion, killing you when game updates organ health
|
||||
H.UpdateDamageIcon()
|
||||
src.fireloss = 0
|
||||
//src.fireloss = 0
|
||||
src.toxloss = 0
|
||||
src.bruteloss = 0
|
||||
//src.bruteloss = 0
|
||||
src.oxyloss = 0
|
||||
src.paralysis = 0
|
||||
src.stunned = 0
|
||||
src.weakened =0
|
||||
src.health = 100
|
||||
src.updatehealth()
|
||||
//src.health = 100
|
||||
src.heal_overall_damage(1000, 1000)
|
||||
src.buckled = initial(src.buckled)
|
||||
src.handcuffed = initial(src.handcuffed)
|
||||
if(src.stat > 1) src.stat=0
|
||||
|
||||
@@ -221,7 +221,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if(!wordtravel)
|
||||
runerandom()
|
||||
if(M)
|
||||
if(cultists.Find(M))
|
||||
if(M.mind in ticker.mode.cult)
|
||||
return
|
||||
else
|
||||
if(alert("Spawn that person a tome?",,"Yes","No")=="Yes")
|
||||
@@ -247,12 +247,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M << "\red You remembered one thing from the glimpse... [wordself] is self..."
|
||||
if("8")
|
||||
M << "\red You remembered one thing from the glimpse... [wordsee] is see..."
|
||||
cultists.Add(M)
|
||||
|
||||
if(M.mind)
|
||||
M.mind.special_role = "Cultist"
|
||||
ticker.mode.cult += M.mind
|
||||
src << "Made [M] a cultist."
|
||||
if(ticker.mode.name == "cult")
|
||||
ticker.mode:cult += M.mind
|
||||
|
||||
/client/proc/cmd_debug_del_all()
|
||||
set category = "Debug"
|
||||
|
||||
@@ -421,26 +421,18 @@ TO DO: actually integrate random appearance and player preference save.
|
||||
alert("Cannot revive a ghost")
|
||||
return
|
||||
if(config.allow_admin_rev)
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
for(var/A in H.organs)
|
||||
var/datum/organ/external/affecting = null
|
||||
if(!H.organs[A]) continue
|
||||
affecting = H.organs[A]
|
||||
if(!istype(affecting, /datum/organ/external)) continue
|
||||
affecting.heal_damage(1000, 1000) //fixes getting hit after ingestion, killing you when game updates organ health
|
||||
H.UpdateDamageIcon()
|
||||
M.fireloss = 0
|
||||
//M.fireloss = 0
|
||||
M.toxloss = 0
|
||||
M.bruteloss = 0
|
||||
//M.bruteloss = 0
|
||||
M.oxyloss = 0
|
||||
M.paralysis = 0
|
||||
M.stunned = 0
|
||||
M.weakened = 0
|
||||
M.radiation = 0
|
||||
M.health = 100
|
||||
//M.health = 100
|
||||
M.nutrition = 400
|
||||
M.updatehealth()
|
||||
M.heal_overall_damage(1000, 1000)
|
||||
//M.updatehealth()
|
||||
M.buckled = initial(M.buckled)
|
||||
M.handcuffed = initial(M.handcuffed)
|
||||
if (M.stat > 1)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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