mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 08:37:43 +01:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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))
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user