Fixes broken ui action button for toggling chef apron's sleeves and owl's wings.

Fixes surviving suicide
Fixes suicide damage overlays.
Fixes ninja regen "clothes warm" spam message. (moving rad armor check outside of apply_effect)
Fixes ninja smoke bomb count.
Fixes dead shaved corgi
Fixes lipozine still being in code.
Fixes flattening boxes requiring them to have their window opened.
Fixes armor softening message from disarm attack.
Fixes player being forced to play spiders without choosing.
This commit is contained in:
phil235
2015-04-14 13:54:36 +02:00
parent 8123093880
commit 081bae6740
34 changed files with 111 additions and 60 deletions
-1
View File
@@ -61,7 +61,6 @@
permeability_coefficient = 0.50
body_parts_covered = CHEST|GROIN|ARMS
allowed = list(/obj/item/weapon/kitchenknife)
action_button_name = "Toggle Jacket Sleeves"
togglename = "sleeves"
//Cook
+3
View File
@@ -57,6 +57,9 @@
..()
suit_toggle()
/obj/item/clothing/suit/toggle/ui_action_click()
suit_toggle()
/obj/item/clothing/suit/toggle/proc/suit_toggle()
set src in usr
+1
View File
@@ -80,6 +80,7 @@
icon_state = A.icon_state
item_state = A.item_state
item_color = A.item_color
suit_color = A.suit_color
usr.update_inv_w_uniform() //so our overlays update.
+4 -3
View File
@@ -36,9 +36,10 @@
if(istype(C, /mob/living/carbon/human))
var/mob/living/carbon/human/H = C
H.apply_effect((rand(15, 75)), IRRADIATE, 0)
if(prob(5))
H.apply_effect((rand(90, 150)), IRRADIATE, 0)
H.irradiate(rand(100, 160))
else
H.irradiate(rand(15, 75))
if(prob(25))
if(prob(75))
randmutb(H)
@@ -49,7 +50,7 @@
else if(istype(C, /mob/living/carbon/monkey))
var/mob/living/carbon/monkey/M = C
M.apply_effect((rand(15, 75)), IRRADIATE, 0)
M.irradiate(rand(15, 75))
/datum/round_event/radiation_storm/end()
@@ -8,6 +8,8 @@
var/leap_on_click = 0
var/pounce_cooldown = 0
var/pounce_cooldown_time = 30
var/custom_pixel_x_offset = 0 //for admin fuckery.
var/custom_pixel_y_offset = 0
//This is fine right now, if we're adding organ specific damage this needs to be updated
/mob/living/carbon/alien/humanoid/New()
@@ -127,4 +129,20 @@
/mob/living/carbon/alien/humanoid/cuff_resist(obj/item/I)
playsound(src, 'sound/voice/hiss5.ogg', 40, 1, 1) //Alien roars when starting to break free
..(I, cuff_break = 1)
..(I, cuff_break = 1)
/mob/living/carbon/alien/humanoid/get_standard_pixel_y_offset(lying = 0)
if(leaping)
return -32
else if(custom_pixel_y_offset)
return custom_pixel_y_offset
else
return initial(pixel_y)
/mob/living/carbon/alien/humanoid/get_standard_pixel_x_offset(lying = 0)
if(leaping)
return -32
else if(custom_pixel_x_offset)
return custom_pixel_x_offset
else
return initial(pixel_x)
@@ -4,6 +4,7 @@
icon_state = "larva0"
pass_flags = PASSTABLE | PASSMOB
mob_size = MOB_SIZE_SMALL
density = 0
maxHealth = 25
health = 25
@@ -665,7 +665,7 @@
if(prob(current_size * 5) && hand.w_class >= ((11-current_size)/2) && unEquip(hand))
step_towards(hand, src)
src << "<span class='warning'>\The [S] pulls \the [hand] from your grip!</span>"
apply_effect(current_size * 3, IRRADIATE)
irradiate(current_size * 3)
if(mob_negates_gravity())
return
..()
@@ -124,12 +124,14 @@ mob/living/carbon/human/proc/hat_fall_prob()
var/update = 0
while(parts.len && (brute>0 || burn>0) )
var/obj/item/organ/limb/picked = pick(parts)
var/brute_per_part = brute/parts.len
var/burn_per_part = burn/parts.len
var/brute_was = picked.brute_dam
var/burn_was = picked.burn_dam
update |= picked.take_damage(brute,burn)
update |= picked.take_damage(brute_per_part,burn_per_part)
brute -= (picked.brute_dam - brute_was)
burn -= (picked.burn_dam - burn_was)
@@ -788,10 +788,10 @@
var/obj/item/organ/limb/affecting = H.get_organ(ran_zone(M.zone_sel.selecting))
var/randn = rand(1, 100)
if(randn <= 25)
H.apply_effect(2, WEAKEN, H.run_armor_check(affecting, "melee"))
playsound(H, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
H.visible_message("<span class='danger'>[M] has pushed [H]!</span>",
"<span class='userdanger'>[M] has pushed [H]!</span>")
H.apply_effect(2, WEAKEN, H.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!"))
H.forcesay(hit_appends)
return
@@ -70,10 +70,9 @@
switch(proj_type)
if(/obj/item/projectile/energy/floramut)
if(prob(15))
H.apply_effect((rand(30,80)),IRRADIATE)
H.irradiate(rand(30,80))
H.Weaken(5)
for (var/mob/V in viewers(H))
V.show_message("<span class='danger'>[H] writhes in pain as \his vacuoles boil.</span>", 3, "<span class='danger'>You hear the crunching of leaves.</span>", 2)
H.visible_message("<span class='danger'>[H] writhes in pain as \his vacuoles boil.</span>", "<span class='userdanger'>[H] writhes in pain as \his vacuoles boil.</span>", "<span class='danger'>You hear the crunching of leaves.</span>")
if(prob(80))
randmutb(H)
domutcheck(H,null)
+1 -1
View File
@@ -51,7 +51,7 @@
if(PARALYZE)
Paralyse(effect * blocked)
if(IRRADIATE)
radiation += max(effect * ((100-run_armor_check(null, "rad", "Your clothes feel warm.", "Your clothes feel warm."))/100),0)//Rads auto check armor
radiation += max(effect * blocked, 0)
if(SLUR)
slurring = max(slurring,(effect * blocked))
if(STUTTER)
@@ -278,3 +278,8 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I)
/mob/living/incapacitated()
if(stat || paralysis || stunned || weakened || restrained())
return 1
/mob/living/proc/irradiate(amount)
if(amount)
var/blocked = run_armor_check(null, IRRADIATE, "Your clothes feel warm", "Your clothes feel warm")
apply_effect(amount, IRRADIATE, blocked)
@@ -135,9 +135,12 @@
user.visible_message("<span class='notice'>[user] shaves [src]'s hair using \the [O]. </span>")
playsound(loc, 'sound/items/Welder2.ogg', 20, 1)
shaved = 1
icon_state = "[initial(icon_living)]_shaved"
icon_living = "[initial(icon_living)]_shaved"
icon_dead = "[initial(icon_living)]_shaved_dead"
if(stat == CONSCIOUS)
icon_state = icon_living
else
icon_state = icon_dead
return
..()
@@ -9,11 +9,11 @@
if(!ninjacost(0,N_SMOKE_BOMB))
var/mob/living/carbon/human/H = affecting
H << "<span class='notice'>There are <B>[s_bombs]</B> smoke bombs remaining.</span>"
var/datum/effect/effect/system/bad_smoke_spread/smoke = new /datum/effect/effect/system/bad_smoke_spread()
smoke.set_up(10, 0, H.loc)
smoke.start()
playsound(H.loc, 'sound/effects/bamf.ogg', 50, 2)
s_bombs--
H << "<span class='notice'>There are <B>[s_bombs]</B> smoke bombs remaining.</span>"
s_coold = 1
return
+1 -1
View File
@@ -347,7 +347,7 @@ var/const/GRAV_NEEDS_WRENCH = 3
/obj/machinery/gravity_generator/main/proc/pulse_radiation()
for(var/mob/living/L in view(7, src))
L.apply_effect(20, IRRADIATE)
L.irradiate(20)
// Shake everyone on the z level to let them know that gravity was enagaged/disenagaged.
/obj/machinery/gravity_generator/main/proc/shake_everyone()
@@ -56,16 +56,8 @@
/obj/effect/accelerated_particle/proc/toxmob(var/mob/living/M)
/* var/radiation = (energy*2) //We don't need to do two multiplications and a single goddamn
if(istype(M,/mob/living/carbon/human))
if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1)
if(istype(M,/mob/living/carbon/monkey))
if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1)*/
M.apply_effect((energy*6),IRRADIATE,0)
M.irradiate(energy*6)
M.updatehealth()
//M << "\red You feel odd."
return
@@ -341,7 +341,7 @@
radiation = round(((src.energy-150)/50)*5,1)
radiationmin = round((radiation/5),1)//
for(var/mob/living/M in view(toxrange, src.loc))
M.apply_effect(rand(radiationmin,radiation), IRRADIATE)
M.irradiate(rand(radiationmin,radiation))
toxdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
M.apply_effect(toxdamage, TOX)
return
@@ -119,7 +119,7 @@
var/mob/living/carbon/human/H = mob
H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) )
mob.apply_effect(rads, IRRADIATE)
mob.irradiate(rads)
explode()
@@ -181,7 +181,7 @@
for(var/mob/living/l in range(src, round((power / 100) ** 0.25)))
var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) )
l.apply_effect(rads, IRRADIATE)
l.irradiate(rads)
power -= (power/500)**3
@@ -248,7 +248,7 @@
playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1)
user.apply_effect(150, IRRADIATE)
user.irradiate(150)
/obj/machinery/power/supermatter_shard/Bumped(atom/AM as mob|obj)
@@ -283,7 +283,7 @@
//Some poor sod got eaten, go ahead and irradiate people nearby.
for(var/mob/living/L in range(10))
var/rads = 500 * sqrt( 1 / (get_dist(L, src) + 1) )
L.apply_effect(rads, IRRADIATE)
L.irradiate(rads)
investigate_log("has irradiated [L] after consuming [AM].", "supermatter")
if(L in view())
L.show_message("<span class=\"warning\">As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.</span>", 1,\
@@ -62,14 +62,14 @@
M << "<span class='danger'>Your gun feels pleasantly warm for a moment.</span>"
else
M << "<span class='danger'>You feel a warm sensation.</span>"
M.apply_effect(rand(3,120), IRRADIATE)
M.irradiate(rand(3,120))
lightfail = 1
else
for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES
if (src in M.contents)
M << "<span class='danger'>Your gun's reactor overloads!</span>"
M << "<span class='danger'>You feel a wave of heat wash over you.</span>"
M.apply_effect(300, IRRADIATE)
M.irradiate(300)
crit_fail = 1 //break the gun so it stops recharging
SSobj.processing.Remove(src)
update_icon()
@@ -81,7 +81,7 @@ datum/reagent/blob/acid
datum/reagent/blob/acid/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1)
if(method == TOUCH)
if(prob(50))
if(prob(50))
M.acid_act(5,1,5)
if(show_message)
M << "<span class = 'userdanger'>The blob's tendrils melt through your equipment!</span>"
@@ -97,7 +97,7 @@ datum/reagent/blob/radioactive_liquid/reaction_mob(var/mob/living/M as mob, var/
if(method == TOUCH)
if(istype(M, /mob/living/carbon/human))
M.apply_damage(10, BRUTE)
M.apply_effect(40,IRRADIATE,0) // irradiate the shit out of these fuckers
M.irradiate(40)
if(prob(33))
randmuti(M)
if(prob(98))
+2 -2
View File
@@ -288,7 +288,7 @@
if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("<span class='notice'>[src] malfunctions, melting [exp_on] and leaking radiation!.</span>")
for(var/mob/living/m in oview(1, src))
m.apply_effect(25,IRRADIATE)
m.irradiate(25)
investigate_log("Experimentor has irradiated [m]", "experimentor") //One entry per person so we know what was irradiated.
ejectItem(TRUE)
if(prob(EFFECT_PROB_LOW-badThingCoeff))
@@ -737,4 +737,4 @@
if(priority) //For truly dangerous relics that may need an admin's attention. BWOINK!
message_admins("[RelicType] relic activated by [key_name(user, user.client)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) in ([T.x],[T.y],[T.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>)",0,1)
log_game(log_msg)
investigate_log(log_msg, "experimentor")
investigate_log(log_msg, "experimentor")