Merge branch 'master' of git://github.com/Baystation12/Baystation12 into TGUpdates

Conflicts:
	code/modules/mob/mob_defines.dm
	icons/mob/items_lefthand.dmi
	icons/mob/items_righthand.dmi
	icons/obj/storage.dmi
	maps/tgstation.2.0.8.dmm
This commit is contained in:
Ren Erthilo
2012-04-02 00:37:54 +01:00
46 changed files with 8113 additions and 6467 deletions

View File

@@ -199,7 +199,6 @@ obj/machinery/computer/forensic_scanning
M.drop_item()
I.loc = src
process_card()
usr << "You insert the card, and it is destroyed by the machinery in the process of comparing prints."
else
usr << "\red Invalid Object Rejected."
if("database")
@@ -646,7 +645,9 @@ obj/machinery/computer/forensic_scanning
return
proc/process_card() //Same as above, but for fingerprint cards
if(card.fingerprints && !(card.amount > 1))
if(card.fingerprints && !(card.amount > 1) && islist(card.fingerprints) && files && files.len)
usr << "You insert the card, and it is destroyed by the machinery in the process of comparing prints."
var/found = 0
for(var/k = 1, k <= card.fingerprints.len, k++)
var/list/test_prints = params2list(card.fingerprints[k])
var/print = test_prints[num2text(1)]
@@ -657,7 +658,12 @@ obj/machinery/computer/forensic_scanning
if(perp == print)
test_list[1] = "1=" + print + "&2=" + print
files[i] = test_list
found = 1
break
if(found)
usr << "The machinery finds can completes a match."
else
usr << "No match found."
del(card)
else
usr << "\red ERROR: No prints/too many cards."

View File

@@ -511,8 +511,9 @@ Traitors and the like can also be revived with the previous role mostly intact.
e.perma_injury = 0
e.update_icon()
for(var/datum/organ/wound/W in e.wounds)
if(W.bleeding)
if(W.bleeding || !W.is_healing)
W.stopbleeding()
del(H.vessel)
H.vessel = new/datum/reagents(560)
H.vessel.my_atom = H
H.vessel.add_reagent("blood",560)

View File

@@ -317,6 +317,10 @@ datum
for(var/A in reagent_list)
var/datum/reagent/R = A
if(R.id == "blood" && reagent == R.id)
if(R.data && data)
if(R.data["donor"] != data["donor"])
continue
if (R.id == reagent)
R.volume += amount
update_total()

View File

@@ -103,8 +103,8 @@ datum
color = "#C80000" // rgb: 200, 0, 0
on_mob_life(var/mob/living/M)
if(istype(M, /mob/living/carbon/human) && blood_incompatible(data["blood_type"],M.dna.b_type))
M.adjustToxLoss(rand(1.5,3))
M.adjustOxyLoss(rand(1.5,3))
M.adjustToxLoss(rand(0.5,1.5))
M.adjustOxyLoss(rand(1,1.5))
..()
return
@@ -1752,27 +1752,6 @@ datum
reagent_state = LIQUID
color = "#181818" // rgb: 24, 24, 24
ethanol
name = "Ethanol"
id = "ethanol"
description = "A well-known alcohol with a variety of applications."
reagent_state = LIQUID
color = "#404030" // rgb: 64, 64, 48
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.make_dizzy(5)
M:jitteriness = max(M:jitteriness-5,0)
if(data >= 25)
if (!M:slurring) M:slurring = 1
M:slurring += 4
if(data >= 40 && prob(33))
if (!M:confused) M:confused = 1
M:confused += 3
..()
return
ammonia
name = "Ammonia"
id = "ammonia"
@@ -2557,32 +2536,6 @@ datum
..()
return
thirteenloko
name = "Thirteen Loko"
id = "thirteenloko"
description = "A potent mixture of caffeine and alcohol."
reagent_state = LIQUID
color = "#102000" // rgb: 16, 32, 0
on_mob_life(var/mob/living/M as mob)
M:drowsyness = max(0,M:drowsyness-7)
if(!M:sleeping_willingly)
M:sleeping = 0
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature-5)
M.make_jittery(1)
M:nutrition += 1
if(!data) data = 1
data++
M.dizziness +=4
if(data >= 45 && data <115)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
..()
return
dr_gibb
name = "Dr. Gibb"
id = "dr_gibb"
@@ -2651,18 +2604,20 @@ datum
//ALCOHOL WOO
alcohol //Parent class for all alcoholic reagents.
name = "Alcohol"
id = "alcohol"
ethanol
name = "Ethanol" //Parent class for all alcoholic reagents.
id = "ethanol"
description = "A well-known alcohol with a variety of applications."
reagent_state = LIQUID
color = "#404030" // rgb: 64, 64, 48
var
dizzy_adj = 3
slurr_adj = 3
confused_adj = 2
slur_start = 45 //amount absorbed after which mob starts slurring
confused_start = 125 //amount absorbed after which mob starts confusing directions
blur_start = 245 //amount absorbed after which mob starts getting blurred vision
pass_out = 290 //amount absorbed after which mob starts passing out
slur_start = 65 //amount absorbed after which mob starts slurring
confused_start = 130 //amount absorbed after which mob starts confusing directions
blur_start = 260 //amount absorbed after which mob starts getting blurred vision
pass_out = 325 //amount absorbed after which mob starts passing out
on_mob_life(var/mob/living/M as mob)
if(!src.data) data = 1
@@ -2671,7 +2626,7 @@ datum
var/d = data
// make all the beverages work together
for(var/datum/reagent/alcohol/A in holder.reagent_list)
for(var/datum/reagent/ethanol/A in holder.reagent_list)
if(A.data) d += A.data
M.dizziness +=dizzy_adj.
@@ -2692,14 +2647,13 @@ datum
..()
return
beer //It's really much more stronger than other drinks
beer //It's really much more stronger than other drinks.
name = "Beer"
id = "beer"
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
color = "#664300" // rgb: 102, 67, 0
slur_start = 25 //amount absorbed after which mob starts slurring
confused_start = 40 //amount absorbed after which mob starts confusing directions
// slur_start = 25 //amount absorbed after which mob starts slurring
// confused_start = 40 //amount absorbed after which mob starts confusing directions //This is quite silly - Erthilo
on_mob_life(var/mob/living/M as mob)
..()
M:jitteriness = max(M:jitteriness-3,0)
@@ -2784,6 +2738,23 @@ datum
description = "A dark alchoholic beverage made by malted barley and yeast."
color = "#664300" // rgb: 102, 67, 0
thirteenloko
name = "Thirteen Loko"
id = "thirteenloko"
description = "A potent mixture of caffeine and alcohol."
reagent_state = LIQUID
color = "#102000" // rgb: 16, 32, 0
on_mob_life(var/mob/living/M as mob)
M:drowsyness = max(0,M:drowsyness-7)
if(!M:sleeping_willingly)
M:sleeping = 0
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature-5)
M.make_jittery(1)
M:nutrition += 1
return
/////////////////////////////////////////////////////////////////cocktail entities//////////////////////////////////////////////

View File

@@ -972,6 +972,7 @@
if(T:vessel.get_reagent_amount("blood") < amount)
return
T:vessel.trans_to(src, amount)
on_reagent_change()
else
var/datum/reagent/B = new /datum/reagent/blood
B.holder = src
@@ -1077,8 +1078,8 @@
var/trans
if(B && ishuman(target))
var/mob/living/carbon/human/H = target
H.vessel.add_reagent("blood",5,B)
src.reagents.remove_reagent("blood",5)
H.vessel.add_reagent("blood",(B.volume > 5? 5 : B.volume),B.data)
src.reagents.remove_reagent("blood",(B.volume > 5? 5 : B.volume))
else
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "\blue You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units."
@@ -1090,20 +1091,20 @@
update_icon()
var/rounded_vol = round(reagents.total_volume,5)
overlays = null
has_blood = 0
for(var/datum/reagent/blood/B in reagents.reagent_list)
has_blood = 1
break
if(ismob(loc))
var/mode_t
var/injoverlay
switch(mode)
if (SYRINGE_DRAW)
mode_t = "d"
injoverlay = "draw"
if (SYRINGE_INJECT)
mode_t = "i"
icon_state = "[mode_t][(has_blood?"b":"")][rounded_vol]"
else
icon_state = "[(has_blood?"b":"")][rounded_vol]"
injoverlay = "inject"
overlays += injoverlay
icon_state = "[rounded_vol]"
item_state = "syringe_[rounded_vol]"
if(reagents.total_volume)
var/obj/effect/overlay = new/obj

View File

@@ -56,6 +56,7 @@
name = "security RIG suit"
desc = "A suit specially designed for security to offer minor protection from environmental hazards, and greater protection from human hazards"
icon_state = "rig-security"
item_state = "rig-security"
protective_temperature = 3000
slowdown = 1
armor = list(melee = 60, bullet = 10, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10)

View File

@@ -21,7 +21,7 @@ mob/living/carbon/verb/give()
if(!I)
return
if(src.r_hand == null)
switch(alert(src,"[usr.name] wants to give you \a [I.name]?",,"Yes","No"))
switch(alert(src,"[usr] wants to give you \a [I]?",,"Yes","No"))
if("Yes")
if(!check_can_reach(usr,src))
usr << "You need to keep in reaching distance."
@@ -50,7 +50,7 @@ mob/living/carbon/verb/give()
if("No")
src.visible_message("[usr.name] tried to hand [I.name] to [src.name] but [src.name] didn't want it.")
else if(src.l_hand == null)
switch(alert(src,"[src.name] wants to give you \a [I.name]?",,"Yes","No"))
switch(alert(src,"[usr] wants to give you \a [I]?",,"Yes","No"))
if("Yes")
if(!check_can_reach(usr,src))
usr << "You need to keep in reaching distance."
@@ -79,4 +79,4 @@ mob/living/carbon/verb/give()
if("No")
src.visible_message("[usr.name] tried to hand [I.name] to [src.name] but [src.name] didn't want it.")
else
usr << "[src.name]\s hands are full."
usr << "[src.name]'s hands are full."

View File

@@ -349,11 +349,11 @@
"severe burn" = "severe burn", "deep burn" = "deep burn", "carbonised area" = "carbonised area")
switch(i)
if(2) //Healing wounds.
if(tallied in list("cut","tiny bruise","small burn"))
if(tallied in list("cut","small burn"))
continue
tallied_rename = list("deep cut" = "clotted cut", "flesh wound" = "small bandaged wound",\
"gaping wound" = "bandaged wound", "big gaping wound" = "gauze wrapped wound",\
"massive wound" = "massive blood soaked bandage", "small bruise" = "small bruise",\
"massive wound" = "massive blood soaked bandage", "tiny bruise" = "tiny bruise", "small bruise" = "small bruise",\
"moderate bruise" = "moderate bruise", "large bruise" = "large bruise",\
"huge bruise" = "huge bruise", "monumental bruise" = "monumental bruise",\
"moderate burn" = "moderate salved burn", "large burn" = "large salved burn",\
@@ -380,7 +380,7 @@
"large burn" = "large burn scar", "severe burn" = "severe burn scar",\
"deep burn" = "deep burn scar", "carbonised area" = "healing carbonised area")
if(5)
if(tallied in list("cut","deep cut","tiny bruise", "small bruise", "moderate bruise","small burn", "moderate burn"))
if(tallied in list("cut","deep cut","tiny bruise", "moderate bruise", "small bruise","small burn", "moderate burn"))
continue
tallied_rename = list("flesh wound" = "small scar", "gaping wound" = "straight scar",\
"big gaping wound" = "jagged scar", "massive wound" = "gigantic scar",\
@@ -429,6 +429,7 @@
flavor_text_string += flavor_text[text]
flavor_text_string += " on [t_his] [named].</span><br>"
wound_flavor_text["[named]"] = flavor_text_string
world << "[named] + [flavor_text_string]"
if(wound_flavor_text["head"] && !skipmask && !(wear_mask && istype(wear_mask, /obj/item/clothing/mask/gas)))
msg += wound_flavor_text["head"]
else if(is_bleeding["head"])
@@ -436,29 +437,39 @@
if(wound_flavor_text["chest"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["chest"]
else if(is_bleeding["chest"])
msg += "<span class='warning'>[src] has blood from under [t_his] clothing!</span>\n"
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["left arm"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["left arm"]
else if(is_bleeding["left arm"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["left hand"] && !gloves && !skipgloves)
msg += wound_flavor_text["left hand"]
else if(is_bleeding["left hand"])
msg += "<span class='warning'>[src] has blood running from under [t_his] gloves!</span>\n"
if(wound_flavor_text["right arm"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["right arm"]
else if(is_bleeding["right arm"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["right hand"] && !gloves && !skipgloves)
msg += wound_flavor_text["right hand"]
else if(is_bleeding["right hand"])
msg += "<span class='warning'>[src] has blood running from under [t_his] gloves!</span>\n"
if(wound_flavor_text["groin"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["groin"]
else if(is_bleeding["groin"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["left leg"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["left leg"]
else if(is_bleeding["left leg"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["left foot"]&& !shoes && !skipshoes)
msg += wound_flavor_text["left foot"]
else if(is_bleeding["left foot"])
msg += "<span class='warning'>[src] has blood running from [t_his] shoes!</span>\n"
if(wound_flavor_text["right leg"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["right leg"]
else if(is_bleeding["right leg"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["right foot"]&& !shoes && !skipshoes)
msg += wound_flavor_text["right foot"]
else if(is_bleeding["right foot"])

View File

@@ -54,7 +54,6 @@
var/list/body_standing = list()
var/list/body_lying = list()
var/organs2 = list()
var/mutantrace = null
@@ -115,7 +114,7 @@
update_clothing()
src << "\blue Your icons have been generated!"
vessel = new/datum/reagents(560)
vessel = new/datum/reagents(600)
vessel.my_atom = src
vessel.add_reagent("blood",560)
spawn(1) fixblood()

View File

@@ -447,7 +447,7 @@
return null
update_canmove()
if(paralysis || stunned || weakened || buckled || (changeling && changeling.changeling_fakedeath)) canmove = 0
if(paralysis || resting || stunned || weakened || buckled || (changeling && changeling.changeling_fakedeath)) canmove = 0
else canmove = 1
handle_breath(datum/gas_mixture/breath)
@@ -857,7 +857,7 @@
leg_tally-- // let it fail even if just foot&leg
// can't stand
if(leg_tally == 0)
if(leg_tally == 0 && !paralysis && !(lying || resting))
emote("scream")
emote("collapse")
paralysis = 10
@@ -1470,4 +1470,4 @@ snippets
plcheck = t_plasma
oxcheck = t_oxygen
G.turf_add(T, G.total_moles())
*/
*/

View File

@@ -24,26 +24,37 @@
real_name = name
var/datum/organ/external/chest/chest = new /datum/organ/external/chest( src )
chest.owner = src
organs2 += chest
var/datum/organ/external/groin/groin = new /datum/organ/external/groin( src )
groin.owner = src
organs2 += groin
var/datum/organ/external/head/head = new /datum/organ/external/head( src )
head.owner = src
organs2 += head
var/datum/organ/external/l_arm/l_arm = new /datum/organ/external/l_arm( src )
l_arm.owner = src
organs2 += l_arm
var/datum/organ/external/r_arm/r_arm = new /datum/organ/external/r_arm( src )
r_arm.owner = src
organs2 += r_arm
var/datum/organ/external/l_hand/l_hand = new /datum/organ/external/l_hand( src )
l_hand.owner = src
organs2 += l_hand
var/datum/organ/external/r_hand/r_hand = new /datum/organ/external/r_hand( src )
r_hand.owner = src
organs2 += r_hand
var/datum/organ/external/l_leg/l_leg = new /datum/organ/external/l_leg( src )
l_leg.owner = src
organs2 += l_leg
var/datum/organ/external/r_leg/r_leg = new /datum/organ/external/r_leg( src )
r_leg.owner = src
organs2 += r_leg
var/datum/organ/external/l_foot/l_foot = new /datum/organ/external/l_foot( src )
l_foot.owner = src
organs2 += l_foot
var/datum/organ/external/r_foot/r_foot = new /datum/organ/external/r_foot( src )
r_foot.owner = src
organs2 += r_foot
organs["chest"] = chest
organs["groin"] = groin

View File

@@ -282,7 +282,7 @@ the mob is also allowed to move without any sort of restriction. For instance, i
var/list/organs = list( ) //List of organs.
var/list/organs2 = list()
//Singularity wants you!
var/grav_delay = 0
var/being_strangled = 0

View File

@@ -156,7 +156,7 @@
if(Process_Grab()) return
//Making mob movememnt changes instant.
if(mob.paralysis || mob.stunned || mob.weakened || mob.buckled || (mob.changeling && mob.changeling.changeling_fakedeath))
if(mob.paralysis || mob.stunned || mob.resting || mob.weakened || mob.buckled || (mob.changeling && mob.changeling.changeling_fakedeath))
mob.canmove = 0
return
else

View File

@@ -73,6 +73,11 @@
owner = H
H.organs[name] = src
Del()
for(var/datum/organ/wound/W in wounds)
del(W)
..()
proc/take_damage(brute, burn, sharp, used_weapon = null)
if((brute <= 0) && (burn <= 0))
return 0
@@ -99,7 +104,7 @@
if(prob(brute) && brute > 20 && !sharp)
createwound(rand(4,6),0,brute)
else if(!sharp)
createwound(max(1,min(6,round(brute/10) + rand(-1,1))),1,brute)
createwound(max(1,min(6,round(brute/10) + rand(0,2))),1,brute)
if(burn)
burn_dam += burn
createwound(max(1,min(6,round(burn/10) + rand(-1,1))),2,burn)
@@ -152,15 +157,16 @@
brute -= W.damage
W.damage = 0
W.initial_dmg = 0
W.stopbleeding()
W.stopbleeding(1)
else
W.damage -= brute
W.initial_dmg -= brute
W.stopbleeding()
else if(brute)
for(var/datum/organ/wound/W in brute_wounds)
W.damage = 0
W.initial_dmg = 0
W.stopbleeding()
W.stopbleeding(1)
brute_dam = 0
if(burn && burn >= burn_to_heal)
for(var/datum/organ/wound/W in burn_wounds)
@@ -173,6 +179,7 @@
else
W.damage -= burn
W.initial_dmg -= burn
W.stopbleeding()
else if(burn)
for(var/datum/organ/wound/W in burn_wounds)
W.damage = 0
@@ -226,8 +233,6 @@
return
if(brute_dam > min_broken_damage)
if(broken == 0)
var/dmgmsg = "[damage_msg] in your [display_name]"
owner << dmgmsg
//owner.unlock_medal("Broke Yarrr Bones!", 0, "Break a bone.", "easy")
owner.visible_message("\red You hear a loud cracking sound coming from [owner.name].","\red <b>Something feels like it shattered in your [display_name]!</b>","You hear a sickening crack.")
owner.emote("scream")
@@ -275,6 +280,8 @@
proc/droplimb()
if(destroyed)
//owner.unlock_medal("Lost something?", 0, "Lose a limb.", "easy")
owner.visible_message("\red [owner.name]'s [display_name] flies off in an arc.","\red <b>Your [display_name] goes flying off!</b>","You hear a terrible sound of ripping tendons and flesh.")
switch(body_part)
if(UPPER_TORSO)
owner.gib()
@@ -288,6 +295,7 @@
H.transfer_identity(owner)
H.pixel_x = -10
H.pixel_y = 6
H.name = "[owner.name]'s head"
var/lol = pick(cardinal)
step(H,lol)
@@ -332,29 +340,21 @@
destroyed = 1
if(HAND_RIGHT)
var/obj/item/weapon/organ/r_hand/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
destroyed = 1
if(HAND_LEFT)
var/obj/item/weapon/organ/l_hand/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
destroyed = 1
if(FOOT_RIGHT)
var/obj/item/weapon/organ/r_foot/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
destroyed = 1
if(FOOT_LEFT)
var/obj/item/weapon/organ/l_foot/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
destroyed = 1
@@ -377,7 +377,10 @@
W.wound_size = size
W.owner = owner
W.parent = src
spawn W.start_close() //Let small cuts close themselves.
if(type == 1)
spawn W.become_scar()
else
spawn W.start_close() //Let small cuts close themselves.
wounds += W
/datum/organ/wound
@@ -389,6 +392,8 @@
var/datum/organ/external/parent
var/bleeding = 0 //You got wounded, of course it's bleeding. -- Scratch that. Rewrote it.
var/healing_state = 0
var/is_healing = 0
var/slowheal = 3
proc/start_close()
sleep(rand(1800,3000)) //3-5 minutes
@@ -400,7 +405,7 @@
stopbleeding()
return
sleep(rand(1800,3000))
if(wound_size == 1) //Small cuts heal in 3-10 minutes.
if(wound_size == 1) //Small cuts heal in 6-10 minutes.
parent.wounds.Remove(src)
update_health(1)
del(src)
@@ -408,30 +413,34 @@
stopbleeding()
return
if(wound_size < 5 && bleeding) //Give it a chance to stop bleeding on it's own.
spawn(1)
spawn while(1)
sleep(1200)
if(prob(50))
stopbleeding()
return
return
proc/stopbleeding()
if(healing_state)
proc/stopbleeding(var/bleed = 0)
if(is_healing)
return 0
// owner:bloodloss -= 10 * src.wound_size
parent.bleeding = 0
parent.bleeding = min(bleed,bleeding)
for(var/datum/organ/wound/W in parent)
if(W.bleeding && W != src)
parent.bleeding = 1
bleeding = 0
break
bleeding = min(bleed,bleeding)
is_healing = 1
slowheal = 1
spawn become_scar() //spawn off the process of becoming a scar.
return 1
proc/become_scar()
healing_state = 1 //Patched
update_health(0.5) //Heals some.
spawn(200*slowheal) //20 seconds
update_health(5) //Heals some.
sleep(rand(1800,3000)) //3-5 minutes
sleep(rand(1800,3000)*slowheal) //3-5 minutes
if(parent.owner.stat == 2)
return
@@ -441,23 +450,26 @@
del(src)
healing_state = 2 //Noticibly healing.
update_health(1) //Heals the rest of the way.
update_health(2) //Heals more.
sleep(rand(1800,3000)) //3-5 minutes
sleep(rand(1800,3000)*slowheal) //3-5 minutes
if(parent.owner.stat == 2)
return
if(prob(60) && wound_size < 3) //Cuts heal up
parent.wounds.Remove(src)
del(src)
healing_state = 3 //Angry red scar
sleep(rand(6000,9000)) //10-15 minutes
update_health(1) //Heals the rest of the way.
sleep(rand(6000,9000)*slowheal) //10-15 minutes
if(parent.owner.stat == 2)
return
if(prob(80) && wound_size < 4) //Minor wounds heal up fully.
parent.wounds.Remove(src)
del(src)
healing_state = 4 //Scar
sleep(rand(6000,9000)) //10-15 minutes
sleep(rand(6000,9000)*slowheal) //10-15 minutes
if(parent.owner.stat == 2)
return
if(prob(30) || wound_size < 4 || wound_type == 1) //Small chance for the scar to disappear, any small remaining wounds deleted.
@@ -467,11 +479,11 @@
return
proc/update_health(var/percent = 1)
damage -= damage/percent //Remove that amount of the damage
damage = max(damage - damage/percent,0) //Remove that amount of the damage
if(wound_type > 1)
parent.burn_dam -= initial_dmg - damage
parent.burn_dam = max(parent.burn_dam - (initial_dmg - damage),0)
else
parent.brute_dam -= initial_dmg - damage
parent.brute_dam = max(parent.brute_dam - (initial_dmg - damage),0)
initial_dmg = damage //reset it for further updates.
parent.owner.updatehealth()

View File

@@ -98,7 +98,7 @@
playsound(user, fire_sound, 10, 1)
else
playsound(user, fire_sound, 50, 1)
M.apply_damage(30+in_chamber.damage, BRUTE, used_weapon = "Point Blank Shot") //So we'll put him an inch from death.
M.apply_damage(30+in_chamber.damage, BRUTE, user.zone_sel.selecting, used_weapon = "Point Blank Shot") //So we'll put him an inch from death.
M.attack_log += text("\[[]\] <b>[]/[]</b> shot <b>[]/[]</b> point blank with a <b>[]</b>", time_stamp(), user, user.ckey, M, M.ckey, src)
user.attack_log += text("\[[]\] <b>[]/[]</b> shot <b>[]/[]</b> point blank with a <b>[]</b>", time_stamp(), user, user.ckey, M, M.ckey, src)
log_admin("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) point blank with [src].")