Files
Paradise/code/modules/events/blob/blob_structures/strong_blob.dm
DGamerL 173bfb92f5 Removes bio resist from the code (#21108)
* BIO armor is kill

* some more stuff that uses bio resist

* I did a scuffed merge conflict solve but it works
2023-06-03 09:50:22 +01:00

77 lines
2.2 KiB
Plaintext

/obj/structure/blob/shield
name = "strong blob"
icon = 'icons/mob/blob.dmi'
icon_state = "blob_shield"
desc = "Some blob creature thingy"
max_integrity = 150
brute_resist = 0.25
explosion_block = 3
atmosblock = TRUE
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 90, ACID = 90)
/obj/structure/blob/shield/core
point_return = 0
/obj/structure/blob/shield/check_integrity()
var/old_compromised_integrity = compromised_integrity
if(obj_integrity < max_integrity * 0.5)
compromised_integrity = TRUE
else
compromised_integrity = FALSE
if(old_compromised_integrity != compromised_integrity)
update_state()
update_appearance(UPDATE_NAME|UPDATE_DESC|UPDATE_ICON_STATE)
/obj/structure/blob/shield/update_state()
if(compromised_integrity)
atmosblock = FALSE
else
atmosblock = TRUE
air_update_turf(1)
/obj/structure/blob/shield/update_name()
. = ..()
if(compromised_integrity)
name = "weakened [initial(name)]"
else
name = initial(name)
/obj/structure/blob/shield/update_desc()
. = ..()
if(compromised_integrity)
desc = "A wall of twitching tendrils."
else
desc = initial(desc)
/obj/structure/blob/shield/update_icon_state()
if(compromised_integrity)
icon_state = "[initial(icon_state)]_damaged"
else
icon_state = initial(icon_state)
/obj/structure/blob/shield/CanPass(atom/movable/mover, turf/target, height=0)
if(istype(mover) && mover.checkpass(PASSBLOB)) return 1
return 0
/obj/structure/blob/shield/reflective
name = "reflective blob"
desc = "A solid wall of slightly twitching tendrils with a reflective glow."
icon_state = "blob_glow"
max_integrity = 100
brute_resist = 0.5
explosion_block = 2
point_return = 9
flags_2 = CHECK_RICOCHET_2
/obj/structure/blob/shield/reflective/handle_ricochet(obj/item/projectile/P)
var/turf/p_turf = get_turf(P)
var/face_direction = get_dir(src, p_turf)
var/face_angle = dir2angle(face_direction)
var/incidence_s = GET_ANGLE_OF_INCIDENCE(face_angle, (P.Angle + 180))
if(abs(incidence_s) > 90 && abs(incidence_s) < 270)
return FALSE
var/new_angle_s = SIMPLIFY_DEGREES(face_angle + incidence_s)
P.set_angle(new_angle_s)
visible_message("<span class='warning'>[P] reflects off [src]!</span>")
return TRUE