mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-16 09:34:21 +01:00
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:
@@ -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."
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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!"
|
||||
|
||||
Reference in New Issue
Block a user