mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-09 08:23:09 +00:00
About The Pull Request Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage. Also changes a couple of places where a list was picked from instead of using get_sfx internal calls This was done via regex: (playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1 (playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0 full sed commands: /(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE /(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE I'm not very good with regex and these could probably be optimized, but they worked. Why It's Good For The Game Code usability
186 lines
5.9 KiB
Plaintext
186 lines
5.9 KiB
Plaintext
|
|
//holographic signs and barriers
|
|
|
|
/obj/structure/holosign
|
|
name = "holo sign"
|
|
icon = 'icons/effects/effects.dmi'
|
|
anchored = TRUE
|
|
max_integrity = 1
|
|
armor = list("melee" = 0, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20)
|
|
var/obj/item/holosign_creator/projector
|
|
|
|
/obj/structure/holosign/New(loc, source_projector)
|
|
if(source_projector)
|
|
projector = source_projector
|
|
projector.signs += src
|
|
..()
|
|
|
|
/obj/structure/holosign/Initialize()
|
|
. = ..()
|
|
alpha = 0
|
|
SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it
|
|
|
|
/obj/structure/holosign/Destroy()
|
|
if(projector)
|
|
projector.signs -= src
|
|
projector = null
|
|
return ..()
|
|
|
|
/obj/structure/holosign/attack_hand(mob/living/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
|
|
user.changeNext_move(CLICK_CD_MELEE)
|
|
take_damage(5 , BRUTE, "melee", 1)
|
|
|
|
/obj/structure/holosign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
|
|
switch(damage_type)
|
|
if(BRUTE)
|
|
playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE)
|
|
if(BURN)
|
|
playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE)
|
|
|
|
/obj/structure/holosign/wetsign
|
|
name = "wet floor sign"
|
|
desc = "The words flicker as if they mean nothing."
|
|
icon = 'icons/effects/effects.dmi'
|
|
icon_state = "holosign"
|
|
|
|
/obj/structure/holosign/barrier
|
|
name = "holobarrier"
|
|
desc = "A short holographic barrier which can only be passed by walking."
|
|
icon_state = "holosign_sec"
|
|
pass_flags = LETPASSTHROW
|
|
density = TRUE
|
|
max_integrity = 20
|
|
var/allow_walk = 1 //can we pass through it on walk intent
|
|
|
|
/obj/structure/holosign/barrier/CanPass(atom/movable/mover, turf/target)
|
|
if(!density)
|
|
return 1
|
|
if(mover.pass_flags & (PASSGLASS|PASSTABLE|PASSGRILLE))
|
|
return 1
|
|
if(iscarbon(mover))
|
|
var/mob/living/carbon/C = mover
|
|
if(allow_walk && C.m_intent == MOVE_INTENT_WALK)
|
|
return 1
|
|
|
|
/obj/structure/holosign/barrier/wetsign
|
|
name = "wet floor holobarrier"
|
|
desc = "When it says walk it means walk."
|
|
icon = 'icons/effects/effects.dmi'
|
|
icon_state = "holosign"
|
|
|
|
/obj/structure/holosign/barrier/wetsign/CanPass(atom/movable/mover, turf/target)
|
|
if(istype(mover, /obj/vehicle/ridden/janicart))
|
|
return TRUE
|
|
return ..()
|
|
|
|
/obj/structure/holosign/barrier/engineering
|
|
icon_state = "holosign_engi"
|
|
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
|
|
rad_insulation = RAD_LIGHT_INSULATION
|
|
|
|
/obj/structure/holosign/barrier/atmos
|
|
name = "holofirelock"
|
|
desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out."
|
|
icon_state = "holo_firelock"
|
|
density = FALSE
|
|
anchored = TRUE
|
|
CanAtmosPass = ATMOS_PASS_NO
|
|
alpha = 150
|
|
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
|
|
rad_insulation = RAD_LIGHT_INSULATION
|
|
|
|
/obj/structure/holosign/barrier/atmos/Initialize()
|
|
. = ..()
|
|
air_update_turf(TRUE)
|
|
|
|
/obj/structure/holosign/barrier/cyborg
|
|
name = "Energy Field"
|
|
desc = "A fragile energy field that blocks movement. Excels at blocking lethal projectiles."
|
|
density = TRUE
|
|
max_integrity = 10
|
|
allow_walk = 0
|
|
|
|
/obj/structure/holosign/barrier/cyborg/bullet_act(obj/item/projectile/P)
|
|
take_damage((P.damage / 5) , BRUTE, "melee", 1) //Doesn't really matter what damage flag it is.
|
|
if(istype(P, /obj/item/projectile/energy/electrode))
|
|
take_damage(10, BRUTE, "melee", 1) //Tasers aren't harmful.
|
|
if(istype(P, /obj/item/projectile/beam/disabler))
|
|
take_damage(5, BRUTE, "melee", 1) //Disablers aren't harmful.
|
|
return BULLET_ACT_HIT
|
|
|
|
/obj/structure/holosign/barrier/medical
|
|
name = "\improper PENLITE holobarrier"
|
|
desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines."
|
|
icon_state = "holo_medical"
|
|
alpha = 125 //lazy :)
|
|
var/force_allaccess = FALSE
|
|
var/buzzcd = 0
|
|
|
|
/obj/structure/holosign/barrier/medical/examine(mob/user)
|
|
. = ..()
|
|
. += "<span class='notice'>The biometric scanners are <b>[force_allaccess ? "off" : "on"]</b>.</span>"
|
|
|
|
/obj/structure/holosign/barrier/medical/CanPass(atom/movable/mover, turf/target)
|
|
icon_state = "holo_medical"
|
|
if(force_allaccess)
|
|
return TRUE
|
|
if(ishuman(mover))
|
|
var/mob/living/carbon/human/sickboi = mover
|
|
var/threat = sickboi.check_virus()
|
|
if(get_disease_severity_value(threat) > get_disease_severity_value(DISEASE_SEVERITY_MINOR))
|
|
if(buzzcd < world.time)
|
|
playsound(get_turf(src),'sound/machines/buzz-sigh.ogg',65,TRUE,4)
|
|
buzzcd = (world.time + 60)
|
|
icon_state = "holo_medical-deny"
|
|
return FALSE
|
|
else
|
|
return TRUE //nice or benign diseases!
|
|
return TRUE
|
|
|
|
/obj/structure/holosign/barrier/medical/attack_hand(mob/living/user)
|
|
if(CanPass(user) && user.a_intent == INTENT_HELP)
|
|
force_allaccess = !force_allaccess
|
|
to_chat(user, "<span class='warning'>You [force_allaccess ? "deactivate" : "activate"] the biometric scanners.</span>") //warning spans because you can make the station sick!
|
|
else
|
|
return ..()
|
|
|
|
/obj/structure/holosign/barrier/cyborg/hacked
|
|
name = "Charged Energy Field"
|
|
desc = "A powerful energy field that blocks movement. Energy arcs off it."
|
|
max_integrity = 20
|
|
var/shockcd = 0
|
|
|
|
/obj/structure/holosign/barrier/cyborg/hacked/bullet_act(obj/item/projectile/P)
|
|
take_damage(P.damage, BRUTE, "melee", 1) //Yeah no this doesn't get projectile resistance.
|
|
return BULLET_ACT_HIT
|
|
|
|
/obj/structure/holosign/barrier/cyborg/hacked/proc/cooldown()
|
|
shockcd = FALSE
|
|
|
|
/obj/structure/holosign/barrier/cyborg/hacked/attack_hand(mob/living/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
if(!shockcd)
|
|
if(ismob(user))
|
|
var/mob/living/M = user
|
|
M.electrocute_act(15,"Energy Barrier", safety=1)
|
|
shockcd = TRUE
|
|
addtimer(CALLBACK(src, .proc/cooldown), 5)
|
|
|
|
/obj/structure/holosign/barrier/cyborg/hacked/Bumped(atom/movable/AM)
|
|
if(shockcd)
|
|
return
|
|
|
|
if(!ismob(AM))
|
|
return
|
|
|
|
var/mob/living/M = AM
|
|
M.electrocute_act(15,"Energy Barrier", safety=1)
|
|
shockcd = TRUE
|
|
addtimer(CALLBACK(src, .proc/cooldown), 5)
|