merge with tgstation's r4618, removed some broken bs12 merges (organs, pain)

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2012-09-06 13:09:20 +10:00
parent dc3f6f2239
commit ad75e6b352
17 changed files with 230 additions and 48 deletions

View File

@@ -130,3 +130,8 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an", "monkey", "ali
send2irc(ckey, "[original_msg] - All admins AFK ([admin_number_afk])")
feedback_add_details("admin_verb","AH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
proc/send2irc(msg,msg2)
if(config.useircbot)
shell("python nudge.py [msg] [msg2]")
return

View File

@@ -56,7 +56,7 @@
////////////
var/next_allowed_topic_time = 10
// comment out the line below when debugging locally to enable the options & messages menu
//control_freak = 1
control_freak = 1

View File

@@ -121,7 +121,7 @@
admin_memo_show()
//log_client_to_db()
log_client_to_db()
//////////////

View File

@@ -10,3 +10,6 @@
var/silent = null //Can't talk. Value goes down every life proc.
var/last_eating = 0 //Not sure what this does... I found it hidden in food.dm
var/analgesic = 0 // when this is set, the mob isn't affected by shock or pain
// life should decrease this by 1 every tick

View File

@@ -1,6 +1,5 @@
/datum/organ/external
name = "external"
var/display_name = "limb"
var/icon_name = null
var/body_part = null
var/brutestate = 0
@@ -14,42 +13,36 @@
/datum/organ/external/chest
name = "chest"
display_name = "torso"
icon_name = "chest"
max_damage = 150
body_part = UPPER_TORSO
/datum/organ/external/head
name = "head"
display_name = "head"
icon_name = "head"
max_damage = 125
body_part = HEAD
/datum/organ/external/l_arm
name = "l_arm"
display_name = "left arm"
icon_name = "l_arm"
max_damage = 75
body_part = ARM_LEFT
/datum/organ/external/l_leg
name = "l_leg"
display_name = "left leg"
icon_name = "l_leg"
max_damage = 75
body_part = LEG_LEFT
/datum/organ/external/r_arm
name = "r_arm"
display_name = "right arm"
icon_name = "r_arm"
max_damage = 75
body_part = ARM_RIGHT
/datum/organ/external/r_leg
name = "r_leg"
display_name = "right leg"
icon_name = "r_leg"
max_damage = 75
body_part = LEG_RIGHT

View File

@@ -1,6 +1,3 @@
/datum/organ/internal
name = "internal"
/datum/organ/internal/blood_vessels
name = "blood vessels"
var/heart = null
@@ -48,4 +45,3 @@
name = "throat"
var/lungs = null
var/stomach = null

View File

@@ -1,6 +1,5 @@
mob/proc/flash_pain()
// flick("pain",pain)
return
flick("pain",pain)
mob/var/list/pain_stored = list()
mob/var/last_pain_message = ""
@@ -8,7 +7,7 @@ mob/var/next_pain_time = 0
// partname is the name of a body part
// amount is a num from 1 to 100
mob/proc/pain(var/partname, var/amount, var/force)
mob/proc/pain(var/partname, var/amount, var/force, var/burning = 0)
if(stat >= 2) return
if(world.time < next_pain_time && !force)
return
@@ -17,22 +16,30 @@ mob/proc/pain(var/partname, var/amount, var/force)
src:paralysis = max(0, src:paralysis-round(amount/10))
if(amount > 50 && prob(amount / 5))
src:drop_item()
/*
switch(amount)
if(1 to 10)
msg = "<b>Your [partname] hurts a bit.</b>"
if(11 to 90)
// flash_weak_pain()
msg = "<b><font size=1>Ouch! Your [partname] hurts.</font></b>"
if(91 to 10000)
flash_pain()
msg = "<b><font size=3>OH GOD! Your [partname] is hurting terribly!</font></b>"
var/msg
if(burning)
switch(amount)
if(1 to 10)
msg = "\red <b>Your [partname] burns.</b>"
if(11 to 90)
flash_weak_pain()
msg = "\red <b><font size=2>Your [partname] burns badly!</font></b>"
if(91 to 10000)
flash_pain()
msg = "\red <b><font size=3>OH GOD! Your [partname] is on fire!</font></b>"
else
switch(amount)
if(1 to 10)
msg = "<b>Your [partname] hurts.</b>"
if(11 to 90)
flash_weak_pain()
msg = "<b><font size=2>Your [partname] hurts badly.</font></b>"
if(91 to 10000)
flash_pain()
msg = "<b><font size=3>OH GOD! Your [partname] is hurting terribly!</font></b>"
if(msg && (msg != last_pain_message || prob(10)))
last_pain_message = msg
src << msg
*/
next_pain_time = world.time + (100 - amount)
mob/living/carbon/human/proc/handle_pain()
@@ -42,10 +49,15 @@ mob/living/carbon/human/proc/handle_pain()
return
if(reagents.has_reagent("oxycodone"))
return
if(analgesic)
return
var/maxdam = 0
var/datum/organ/external/damaged_organ = null
for(var/name in organs)
var/datum/organ/external/E = organs[name]
// amputated limbs don't cause pain
if(E.amputated) continue
var/dam = E.get_damage()
// make the choice of the organ depend on damage,
// but also sometimes use one of the less damaged ones