Big Fat Emission PR (#18124)

* amogus

* Revert "amogus"

This reverts commit ebaa99c77b.

* Part 1

* rest of the airlocks

holy shit that took a long time

* part 2

* part 3

finale

* conflict resolution

* fixes warnings

* fixes paneloen airlock emissives

* adds back changes from #18145

* #18085 sprites

* SteelSlayer Review

readded process in status_display, idk why I removed it, it broke some functionality

* future proofing firedoors

Talked with the contributor who added emissive appearances to the codebase. As of now they wont block them unless they spawn as closed, but with future PR merges this code will work.

* solar panel PR conflict resolve

* pain

* small fix

* farie82 suggestions

Co-authored-by: Farie82 <farie82@users.noreply.github.com>

* farie82 suggestions part 2

* farie82 suggestions part 3

* finalle

pog champ ers 2000

* farie82 suggestions the sequel

Co-authored-by: Farie82 <farie82@users.noreply.github.com>

* SteelSlayer Suggestions

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>

Co-authored-by: Farie82 <farie82@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
This commit is contained in:
Kugamo
2022-07-23 11:31:20 -05:00
committed by GitHub
parent ad7d3b443f
commit 38f335e8b9
58 changed files with 622 additions and 199 deletions
+30 -47
View File
@@ -9,8 +9,11 @@
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
var/list/barsigns=list()
var/list/hiddensigns
var/prev_sign = ""
var/datum/barsign/current_sign
var/datum/barsign/prev_sign
var/panel_open = FALSE
blocks_emissive = FALSE
does_emissive = TRUE
/obj/structure/sign/barsign/Initialize(mapload)
. = ..()
@@ -27,16 +30,39 @@
/obj/structure/sign/barsign/proc/set_sign(datum/barsign/sign)
if(!istype(sign))
return
icon_state = sign.icon
current_sign = sign
name = sign.name
if(sign.desc)
desc = sign.desc
else
desc = "It displays \"[name]\"."
update_icon()
/obj/structure/sign/barsign/update_icon_state()
. = ..()
if(!current_sign || broken)
icon_state = "empty"
return
icon_state = current_sign.icon
/obj/structure/sign/barsign/update_overlays()
. = ..()
underlays.Cut()
if(current_sign == "empty" || broken || !current_sign)
return
underlays |= emissive_appearance(icon, current_sign.icon)
/obj/structure/sign/barsign/obj_break(damage_flag)
if(!broken && !(flags & NODECONSTRUCT))
broken = TRUE
prev_sign = current_sign
set_light(0)
update_icon()
/obj/structure/sign/barsign/deconstruct(disassembled = TRUE)
new /obj/item/stack/sheet/metal(drop_location(), 2)
@@ -53,8 +79,6 @@
/obj/structure/sign/barsign/attack_ai(mob/user as mob)
return src.attack_hand(user)
/obj/structure/sign/barsign/attack_hand(mob/user as mob)
if(!src.allowed(user))
to_chat(user, "<span class = 'info'>Access denied.</span>")
@@ -64,9 +88,6 @@
return
pick_sign()
/obj/structure/sign/barsign/attackby(obj/item/I, mob/user)
if( istype(I, /obj/item/screwdriver))
if(!panel_open)
@@ -76,7 +97,8 @@
else
to_chat(user, "<span class='notice'>You close the maintenance panel.</span>")
if(!broken && !emagged)
set_sign(pick(barsigns))
set_sign(prev_sign)
set_light(1, LIGHTING_MINIMUM_POWER)
else if(emagged)
set_sign(new /datum/barsign/hiddensigns/syndibarsign)
else
@@ -100,15 +122,10 @@
else
return ..()
/obj/structure/sign/barsign/emp_act(severity)
set_sign(new /datum/barsign/hiddensigns/empbarsign)
broken = TRUE
/obj/structure/sign/barsign/emag_act(mob/user)
if(broken || emagged)
to_chat(user, "<span class='warning'>Nothing interesting happens!</span>")
@@ -123,44 +140,30 @@
emagged = TRUE
req_access = list(ACCESS_SYNDICATE)
/obj/structure/sign/barsign/proc/pick_sign()
var/picked_name = input("Available Signage", "Bar Sign") as null|anything in barsigns
if(!picked_name)
return
set_sign(picked_name)
//Code below is to define useless variables for datums. It errors without these
/datum/barsign
var/name = "Name"
var/icon = "Icon"
var/desc = "desc"
var/hidden = 0
//Anything below this is where all the specific signs are. If people want to add more signs, add them below.
/datum/barsign/maltesefalcon
name = "Maltese Falcon"
icon = "maltesefalcon"
desc = "The Maltese Falcon, Space Bar and Grill."
/datum/barsign/thebark
name = "The Bark"
icon = "thebark"
desc = "Ian's bar of choice."
/datum/barsign/harmbaton
name = "The Harmbaton"
icon = "theharmbaton"
@@ -172,67 +175,56 @@
icon = "thesingulo"
desc = "Where people go that'd rather not be called by their name."
/datum/barsign/thedrunkcarp
name = "The Drunk Carp"
icon = "thedrunkcarp"
desc = "Don't drink and swim."
/datum/barsign/scotchservinwill
name = "Scotch Servin Willy's"
icon = "scotchservinwill"
desc = "Willy sure moved up in the world from clown to bartender."
/datum/barsign/officerbeersky
name = "Officer Beersky's"
icon = "officerbeersky"
desc = "Man eat a dong, these drinks are great."
/datum/barsign/thecavern
name = "The Cavern"
icon = "thecavern"
desc = "Fine drinks while listening to some fine tunes."
/datum/barsign/theouterspess
name = "The Outer Spess"
icon = "theouterspess"
desc = "This bar isn't actually located in outer space."
/datum/barsign/slipperyshots
name = "Slippery Shots"
icon = "slipperyshots"
desc = "Slippery slope to drunkeness with our shots!"
/datum/barsign/thegreytide
name = "The Grey Tide"
icon = "thegreytide"
desc = "Abandon your toolboxing ways and enjoy a lazy beer!"
/datum/barsign/honkednloaded
name = "Honked 'n' Loaded"
icon = "honkednloaded"
desc = "Honk."
/datum/barsign/thenest
name = "The Nest"
icon = "thenest"
desc = "A good place to retire for a drink after a long night of crime fighting."
/datum/barsign/thecoderbus
name = "The Coderbus"
icon = "thecoderbus"
desc = "A very controversial bar known for its wide variety of constantly-changing drinks."
/datum/barsign/theadminbus
name = "The Adminbus"
icon = "theadminbus"
@@ -391,27 +383,18 @@
/datum/barsign/hiddensigns
hidden = 1
//Hidden signs list below this point
/datum/barsign/hiddensigns/empbarsign
name = "Haywire Barsign"
icon = "empbarsign"
desc = "Something has gone very wrong."
/datum/barsign/hiddensigns/syndibarsign
name = "Syndi Cat Takeover"
icon = "syndibarsign"
desc = "Syndicate or die."
/datum/barsign/hiddensigns/signoff
name = "Bar Sign"
icon = "empty"
desc = "This sign doesn't seem to be on."
+3
View File
@@ -41,6 +41,7 @@
/obj/structure/morgue/Initialize()
. = ..()
update_icon(update_state())
set_light(1, LIGHTING_MINIMUM_POWER)
/obj/structure/morgue/proc/update_state()
. = UPDATE_OVERLAYS
@@ -69,8 +70,10 @@
/obj/structure/morgue/update_overlays()
. = ..()
underlays.Cut()
if(!connected)
. += "morgue_[status]"
underlays += emissive_appearance(icon, "morgue_[status]")
if(name != initial(name))
. += "morgue_label"
+20 -1
View File
@@ -8,6 +8,22 @@
armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
flags_2 = RAD_PROTECT_CONTENTS_2 | RAD_NO_CONTAMINATE_2
blocks_emissive = EMISSIVE_BLOCK_GENERIC
var/does_emissive = FALSE
/obj/structure/sign/Initialize(mapload)
. = ..()
if(does_emissive)
update_icon()
set_light(1, LIGHTING_MINIMUM_POWER)
/obj/structure/sign/update_overlays()
. = ..()
underlays.Cut()
if(!does_emissive)
return
underlays += emissive_appearance(icon,"[icon_state]_lightmask")
/obj/structure/sign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
switch(damage_type)
@@ -35,7 +51,6 @@
S.sign_state = icon_state
qdel(src)
/obj/item/sign
name = "sign"
desc = ""
@@ -213,11 +228,15 @@
name = "\improper barber shop sign"
desc = "A spinning sign indicating a barbershop is near."
icon_state = "barber"
does_emissive = TRUE
blocks_emissive = FALSE
/obj/structure/sign/chinese
name = "\improper chinese restaurant sign"
desc = "A glowing dragon invites you in."
icon_state = "chinese"
does_emissive = TRUE
blocks_emissive = FALSE
/obj/structure/sign/science
name = "\improper SCIENCE!"