mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 18:44:48 +01:00
Merge remote-tracking branch 'refs/remotes/ParadiseSS13/master' into freegolems
This commit is contained in:
@@ -62,7 +62,7 @@ var/global/nologevent = 0
|
||||
if(M.client)
|
||||
body += " played by <b>[M.client]</b> "
|
||||
body += "\[<A href='?_src_=holder;editrights=rank;ckey=[M.ckey]'>[M.client.holder ? M.client.holder.rank : "Player"]</A>\] "
|
||||
body += "\[<A href='?_src_=holder;getplaytimewindow=[M.UID()]'>" + M.client.get_exp_living() + "</a>\]"
|
||||
body += "\[<A href='?_src_=holder;getplaytimewindow=[M.UID()]'>" + M.client.get_exp_type(EXP_TYPE_CREW) + " as [EXP_TYPE_CREW]</a>\]"
|
||||
|
||||
if(istype(M, /mob/new_player))
|
||||
body += " <B>Hasn't Entered Game</B> "
|
||||
|
||||
@@ -106,8 +106,8 @@ var/global/sent_honksquad = 0
|
||||
equip_to_slot_or_del(new /obj/item/storage/backpack/clown(src), slot_back)
|
||||
equip_to_slot_or_del(new /obj/item/storage/box/survival(src), slot_in_backpack)
|
||||
if(src.gender == FEMALE)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sexyclown(src), slot_wear_mask)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/sexyclown(src), slot_w_uniform)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat/sexy(src), slot_wear_mask)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown/sexy(src), slot_w_uniform)
|
||||
else
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(src), slot_w_uniform)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(src), slot_wear_mask)
|
||||
|
||||
@@ -373,15 +373,7 @@
|
||||
if(prefs.lastchangelog != changelog_hash) //bolds the changelog button on the interface so we know there are updates. -CP
|
||||
if(establish_db_connection())
|
||||
to_chat(src, "<span class='info'>Changelog has changed since your last visit.</span>")
|
||||
winset(src, "rpane.changelog", "background-color=#bb7700;font-color=#FFFFFF;font-style=bold")
|
||||
else
|
||||
if(establish_db_connection())
|
||||
if(prefs.toggles & UI_DARKMODE)
|
||||
winset(src, "rpane.changelog", "background-color=#bb7700;font-color=#FFFFFF;font-style=bold") // makes changelog dark if its been set
|
||||
else
|
||||
winset(src, "rpane.changelog", "background-color=#ffffff;font-color=#000000") // makes changelog normal if it hasnt been set
|
||||
else
|
||||
winset(src, "rpane.changelog", "background-color=#ffffff;font-color=#000000") // makes changelog normal if DB isnt connected
|
||||
winset(src, "rpane.changelog", "background-color=#bb7700;text-color=#FFFFFF;font-style=bold")
|
||||
|
||||
if(!void)
|
||||
void = new()
|
||||
@@ -714,33 +706,33 @@
|
||||
/client/proc/deactivate_darkmode()
|
||||
///// BUTTONS /////
|
||||
/* Rpane */
|
||||
winset(src, "rpane.textb", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.infob", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.wikib", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.forumb", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.rulesb", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.githubb", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.textb", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.infob", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.wikib", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.forumb", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.rulesb", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.githubb", "background-color=none;text-color=#000000")
|
||||
/* Mainwindow */
|
||||
winset(src, "mainwindow.saybutton", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "mainwindow.mebutton", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "mainwindow.hotkey_toggle", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "mainwindow.saybutton", "background-color=none;text-color=#000000")
|
||||
winset(src, "mainwindow.mebutton", "background-color=none;text-color=#000000")
|
||||
winset(src, "mainwindow.hotkey_toggle", "background-color=none;text-color=#000000")
|
||||
///// UI ELEMENTS /////
|
||||
/* Mainwindow */
|
||||
winset(src, "mainwindow", "background-color=#ffffff")
|
||||
winset(src, "mainwindow.mainvsplit", "background-color=#ffffff")
|
||||
winset(src, "mainwindow.tooltip", "background-color=#ffffff")
|
||||
winset(src, "mainwindow", "background-color=none")
|
||||
winset(src, "mainwindow.mainvsplit", "background-color=none")
|
||||
winset(src, "mainwindow.tooltip", "background-color=none")
|
||||
/* Outputwindow */
|
||||
winset(src, "outputwindow.outputwindow", "background-color=#ffffff")
|
||||
winset(src, "outputwindow.browseroutput", "background-color=#ffffff")
|
||||
winset(src, "outputwindow.outputwindow", "background-color=none")
|
||||
winset(src, "outputwindow.browseroutput", "background-color=none")
|
||||
/* Rpane */
|
||||
winset(src, "rpane", "background-color=#ffffff")
|
||||
winset(src, "rpane.rpane", "background-color=#ffffff")
|
||||
winset(src, "rpane.rpanewindow", "background-color=#ffffff")
|
||||
winset(src, "rpane", "background-color=none")
|
||||
winset(src, "rpane.rpane", "background-color=none")
|
||||
winset(src, "rpane.rpanewindow", "background-color=none")
|
||||
/* Browserwindow */
|
||||
winset(src, "browserwindow", "background-color=#ffffff")
|
||||
winset(src, "browserwindow.browser", "background-color=#ffffff")
|
||||
winset(src, "browserwindow", "background-color=none")
|
||||
winset(src, "browserwindow.browser", "background-color=none")
|
||||
/* Infowindow */
|
||||
winset(src, "infowindow", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "infowindow.info", "background-color=#ffffff;text-color=#000000;highlight-color=#007700;tab-text-color=#000000;tab-background-color=#ffffff")
|
||||
winset(src, "infowindow", "background-color=none;text-color=#000000")
|
||||
winset(src, "infowindow.info", "background-color=none;text-color=#000000;highlight-color=#007700;tab-text-color=#000000;tab-background-color=none")
|
||||
///// NOTIFY USER /////
|
||||
to_chat(src, "<span class='notice'>Darkmode Disabled</span>") // what a sick fuck
|
||||
@@ -482,7 +482,10 @@
|
||||
|
||||
/datum/preferences/proc/SetChangelog(client/C,hash)
|
||||
lastchangelog=hash
|
||||
winset(C, "rpane.changelog", "background-color=none;font-style=")
|
||||
if(preferences_datums[C.ckey].toggles & UI_DARKMODE)
|
||||
winset(C, "rpane.changelog", "background-color=#40628a;font-color=#ffffff;font-style=none")
|
||||
else
|
||||
winset(C, "rpane.changelog", "background-color=none;font-style=none")
|
||||
var/DBQuery/query = dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastchangelog='[lastchangelog]' WHERE ckey='[C.ckey]'")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
@@ -491,3 +494,9 @@
|
||||
to_chat(C, "Couldn't update your last seen changelog, please try again later.")
|
||||
return
|
||||
return 1
|
||||
|
||||
/datum/preferences/proc/UpdateChangelogButton(client/C)
|
||||
if(preferences_datums[C.ckey].toggles & UI_DARKMODE)
|
||||
winset(C, "rpane.changelog", "background-color=#40628a;text-color=#ffffff;font-style=none")
|
||||
else
|
||||
winset(C, "rpane.changelog", "background-color=none;text-color=#000000;font-style=none")
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "hardhat0_yellow"
|
||||
item_state = "hardhat0_yellow"
|
||||
var/brightness_on = 4 //luminosity when on
|
||||
var/on = 0
|
||||
var/on = FALSE
|
||||
item_color = "yellow" //Determines used sprites: hardhat[on]_[color] and hardhat[on]_[color]2 (lying down sprite)
|
||||
armor = list(melee = 15, bullet = 5, laser = 20, energy = 10, bomb = 20, bio = 10, rad = 20)
|
||||
flags_inv = 0
|
||||
@@ -29,6 +29,13 @@
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/hardhat/extinguish_light()
|
||||
if(on)
|
||||
on = FALSE
|
||||
set_light(0)
|
||||
icon_state = "hardhat0_[item_color]"
|
||||
item_state = "hardhat0_[item_color]"
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
/obj/item/clothing/head/hardhat/orange
|
||||
icon_state = "hardhat0_orange"
|
||||
|
||||
@@ -119,6 +119,12 @@
|
||||
to_chat(M, "Your Clown Mask has now morphed into [choice], all praise the Honk Mother!")
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat/sexy
|
||||
name = "sexy-clown wig and mask"
|
||||
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
|
||||
/obj/item/clothing/mask/gas/clownwiz
|
||||
name = "wizard clown wig and mask"
|
||||
desc = "Some pranksters are truly magical."
|
||||
@@ -135,13 +141,6 @@
|
||||
item_state = "clown_hat"
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/mask/gas/sexyclown
|
||||
name = "sexy-clown wig and mask"
|
||||
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/mime
|
||||
name = "mime mask"
|
||||
desc = "The traditional mime's mask. It has an eerie facial posture."
|
||||
|
||||
@@ -57,6 +57,11 @@
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/extinguish_light()
|
||||
if(on)
|
||||
toggle_light()
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot)
|
||||
if(slot == slot_head)
|
||||
return 1
|
||||
|
||||
@@ -102,6 +102,11 @@
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/eva/plasmaman/extinguish_light()
|
||||
if(on)
|
||||
toggle_light()
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
// ENGINEERING
|
||||
/obj/item/clothing/suit/space/eva/plasmaman/atmostech
|
||||
name = "plasmaman atmospheric suit"
|
||||
|
||||
@@ -81,6 +81,13 @@
|
||||
score_clownabuse++
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/under/rank/clown/sexy
|
||||
name = "sexy-clown suit"
|
||||
desc = "It makes you look HONKable!"
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
item_color = "sexyclown"
|
||||
|
||||
/obj/item/clothing/under/rank/head_of_personnel
|
||||
desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"."
|
||||
name = "head of personnel's jumpsuit"
|
||||
|
||||
@@ -53,13 +53,6 @@
|
||||
item_state = "b_suit"
|
||||
item_color = "mailman"
|
||||
|
||||
/obj/item/clothing/under/sexyclown
|
||||
name = "sexy-clown suit"
|
||||
desc = "It makes you look HONKable!"
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
item_color = "sexyclown"
|
||||
|
||||
/obj/item/clothing/under/rank/vice
|
||||
name = "vice officer's jumpsuit"
|
||||
desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision."
|
||||
|
||||
@@ -1627,3 +1627,40 @@
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "ps_bunny"
|
||||
|
||||
|
||||
/obj/item/clothing/under/fluff/kiaoutfit //FullOfSkittles: Kiachi
|
||||
name = "Suspicious Outfit"
|
||||
desc = "A very expensive top with intricate details tailored to fit a vox and paired with a glittery blue skirt, probably illegal."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list("Vox" = 'icons/mob/species/vox/uniform.dmi')
|
||||
icon_state = "kiaoutfit"
|
||||
item_state = "kiaoutfit"
|
||||
item_color = "kiaoutfit"
|
||||
displays_id = FALSE
|
||||
species_restricted = list("Vox")
|
||||
|
||||
/obj/item/clothing/head/fluff/kiahat //FullOfSkittles: Kiachi
|
||||
name = "Suspicious Witch Hat"
|
||||
desc = "A black witch hat with a blue sash decorated with tiny glimmering stars and a gold squid-like medallion, probably possessed."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
icon_state = "kiahat"
|
||||
item_state = "kiahat"
|
||||
item_color = "kiahat"
|
||||
|
||||
/obj/item/clothing/mask/gas/fluff/kiamask //FullOfSkittles: Kiachi
|
||||
name = "Suspicious Mask"
|
||||
desc = "A sleek mask that blends in with the owner's existing quills using strange technology. It might even be magic..."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list("Vox" = 'icons/mob/species/vox/mask.dmi')
|
||||
icon_state = "kiamask"
|
||||
item_state = "kiamask"
|
||||
item_color = "kiamask"
|
||||
species_restricted = list("Vox")
|
||||
@@ -40,6 +40,9 @@
|
||||
else
|
||||
light = new /datum/light_source(src, .)
|
||||
|
||||
/atom/proc/extinguish_light()
|
||||
return
|
||||
|
||||
/atom/Destroy()
|
||||
if(light)
|
||||
light.destroy()
|
||||
|
||||
@@ -1992,3 +1992,12 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
|
||||
dna.SetSEState(block, FALSE, TRUE)
|
||||
genemutcheck(src, block, null, MUTCHK_FORCED)
|
||||
dna.UpdateSE()
|
||||
|
||||
/mob/living/carbon/human/extinguish_light()
|
||||
// Parent function handles stuff the human may be holding
|
||||
..()
|
||||
|
||||
var/obj/item/organ/internal/lantern/O = get_int_organ(/obj/item/organ/internal/lantern)
|
||||
if(O && O.glowing)
|
||||
O.toggle_biolum(TRUE)
|
||||
visible_message("<span class='danger'>[src] is engulfed in shadows and fades into the darkness.</span>", "<span class='danger'>A sense of dread washes over you as you suddenly dim dark.</span>")
|
||||
|
||||
@@ -91,6 +91,9 @@
|
||||
var/obj/item/organ/internal/L = get_organ_slot("lungs")
|
||||
if((breathes && !L) || breathes && L && (L.status & ORGAN_DEAD))
|
||||
return FALSE
|
||||
if(oxyloss > 10 || losebreath >= 4)
|
||||
emote("gasp")
|
||||
return FALSE
|
||||
if(mind)
|
||||
return !mind.miming
|
||||
return TRUE
|
||||
|
||||
@@ -80,6 +80,10 @@
|
||||
if(moving_diagonally) //no mob swap during diagonal moves.
|
||||
return 1
|
||||
|
||||
if(a_intent == INTENT_HELP) // Help intent doesn't mob swap a mob pulling a structure
|
||||
if(isstructure(M.pulling) || isstructure(pulling))
|
||||
return 1
|
||||
|
||||
if(!M.buckled && !M.has_buckled_mobs())
|
||||
var/mob_swap
|
||||
//the puller can always swap with it's victim if on grab intent
|
||||
@@ -128,6 +132,13 @@
|
||||
|
||||
//Called when we want to push an atom/movable
|
||||
/mob/living/proc/PushAM(atom/movable/AM, force = move_force)
|
||||
|
||||
if(isstructure(AM) && AM.pulledby)
|
||||
if(a_intent == INTENT_HELP && AM.pulledby != src) // Help intent doesn't push other peoples pulled structures
|
||||
return FALSE
|
||||
if(get_dist(get_step(AM, get_dir(src, AM)), AM.pulledby)>1)//Release pulled structures beyond 1 distance
|
||||
AM.pulledby.stop_pulling()
|
||||
|
||||
if(now_pushing)
|
||||
return TRUE
|
||||
if(moving_diagonally) // no pushing during diagonal moves
|
||||
@@ -976,3 +987,8 @@
|
||||
|
||||
/mob/living/proc/fakefire()
|
||||
return
|
||||
|
||||
/mob/living/extinguish_light()
|
||||
for(var/atom/A in src)
|
||||
if(A.light_range > 0)
|
||||
A.extinguish_light()
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
var/obj/item/integrated_radio/signal/sradio // AI's signaller
|
||||
|
||||
var/translator_on = 0 // keeps track of the translator module
|
||||
var/flashlight_on = FALSE //keeps track of the flashlight module
|
||||
|
||||
var/current_pda_messaging = null
|
||||
var/custom_sprite = 0
|
||||
@@ -607,3 +608,8 @@
|
||||
else //something went very wrong.
|
||||
CRASH("pAI without card")
|
||||
loc = card
|
||||
|
||||
/mob/living/silicon/pai/extinguish_light()
|
||||
flashlight_on = FALSE
|
||||
set_light(0)
|
||||
card.set_light(0)
|
||||
|
||||
@@ -609,3 +609,20 @@
|
||||
data["holder"] = 0
|
||||
|
||||
return data
|
||||
|
||||
/datum/pai_software/flashlight
|
||||
name = "Flashlight"
|
||||
ram_cost = 5
|
||||
id = "flashlight"
|
||||
|
||||
/datum/pai_software/flashlight/toggle(mob/living/silicon/pai/user)
|
||||
var/atom/movable/actual_location = istype(user.loc, /obj/item/paicard) ? user.loc : user
|
||||
if(user.flashlight_on)
|
||||
actual_location.set_light(2)
|
||||
user.card.set_light(2)
|
||||
return
|
||||
actual_location.set_light(2)
|
||||
user.card.set_light(0)
|
||||
|
||||
/datum/pai_software/flashlight/is_active(mob/living/silicon/pai/user)
|
||||
return user.flashlight_on
|
||||
|
||||
@@ -1382,6 +1382,9 @@ var/list/robot_verbs_default = list(
|
||||
if(2)
|
||||
disable_component("comms", 60)
|
||||
|
||||
/mob/living/silicon/robot/extinguish_light()
|
||||
update_headlamp(1, 150)
|
||||
|
||||
/mob/living/silicon/robot/rejuvenate()
|
||||
..()
|
||||
var/brute = 1000
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
layer = 4.0
|
||||
animate_movement = 2
|
||||
pressure_resistance = 8
|
||||
dont_save = TRUE //to avoid it messing up in buildmode saving
|
||||
var/datum/mind/mind
|
||||
|
||||
var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
|
||||
|
||||
@@ -536,6 +536,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM)
|
||||
if(ID.registered_name == oldname)
|
||||
ID.registered_name = newname
|
||||
ID.name = "[newname]'s ID Card ([ID.assignment])"
|
||||
ID.RebuildHTML()
|
||||
if(!search_pda) break
|
||||
search_id = 0
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
This checks that the user is a ghost or alternatively an admin. Used for the mob spawner.
|
||||
We don't want any living people somehow getting the menu open and reincarnating while alive
|
||||
*/
|
||||
|
||||
/var/global/datum/topic_state/ghost_state/ghost_state = new()
|
||||
|
||||
/datum/topic_state/ghost_state/can_use_topic(var/src_object, var/mob/user)
|
||||
if(user.stat == DEAD)
|
||||
return STATUS_INTERACTIVE
|
||||
if(check_rights(R_ADMIN, 0, src))
|
||||
return STATUS_INTERACTIVE
|
||||
return STATUS_CLOSE
|
||||
|
||||
@@ -511,3 +511,8 @@ var/global/list/obj/item/pda/PDAs = list()
|
||||
/obj/item/pda/process()
|
||||
if(current_app)
|
||||
current_app.program_process()
|
||||
|
||||
/obj/item/pda/extinguish_light()
|
||||
var/datum/data/pda/utility/flashlight/FL = find_program(/datum/data/pda/utility/flashlight)
|
||||
if(FL && FL.fon)
|
||||
FL.start()
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 20
|
||||
power_channel = LIGHT //Lights are calc'd via area so they dont need to be in the machine list
|
||||
var/on = 0 // 1 if on, 0 if off
|
||||
var/on = FALSE // 1 if on, 0 if off
|
||||
var/on_gs = 0
|
||||
var/static_power_used = 0
|
||||
var/brightness_range = 8 // luminosity when on, also used in power calculation
|
||||
@@ -159,7 +159,6 @@
|
||||
var/nightshift_light_power = 0.45
|
||||
var/nightshift_light_color = "#FFDDCC"
|
||||
|
||||
|
||||
// the smaller bulb light fixture
|
||||
|
||||
/obj/machinery/light/small
|
||||
@@ -213,7 +212,7 @@
|
||||
/obj/machinery/light/Destroy()
|
||||
var/area/A = get_area(src)
|
||||
if(A)
|
||||
on = 0
|
||||
on = FALSE
|
||||
// A.update_lights()
|
||||
return ..()
|
||||
|
||||
@@ -224,13 +223,13 @@
|
||||
icon_state = "[base_state][on]"
|
||||
if(LIGHT_EMPTY)
|
||||
icon_state = "[base_state]-empty"
|
||||
on = 0
|
||||
on = FALSE
|
||||
if(LIGHT_BURNED)
|
||||
icon_state = "[base_state]-burned"
|
||||
on = 0
|
||||
on = FALSE
|
||||
if(LIGHT_BROKEN)
|
||||
icon_state = "[base_state]-broken"
|
||||
on = 0
|
||||
on = FALSE
|
||||
return
|
||||
|
||||
// update the icon_state and luminosity of the light depending on its state
|
||||
@@ -255,7 +254,7 @@
|
||||
if(status == LIGHT_OK && trigger)
|
||||
status = LIGHT_BURNED
|
||||
icon_state = "[base_state]-burned"
|
||||
on = 0
|
||||
on = FALSE
|
||||
set_light(0)
|
||||
else
|
||||
use_power = ACTIVE_POWER_USE
|
||||
@@ -730,3 +729,8 @@
|
||||
if(limb)
|
||||
limb.droplimb(0, DROPLIMB_BURN)
|
||||
return FIRELOSS
|
||||
|
||||
/obj/machinery/light/extinguish_light()
|
||||
on = FALSE
|
||||
visible_message("<span class='danger'>[src] flickers and falls dark.</span>")
|
||||
update(0)
|
||||
|
||||
@@ -305,6 +305,11 @@ obj/item/gun/proc/newshot()
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/gun/extinguish_light()
|
||||
if(gun_light.on)
|
||||
toggle_gunlight()
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
/obj/item/gun/pickup(mob/user)
|
||||
..()
|
||||
if(azoom)
|
||||
|
||||
@@ -430,7 +430,6 @@
|
||||
update_flags |= M.adjustOxyLoss(-25*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
if(volume >= 4)
|
||||
M.LoseBreath(6)
|
||||
M.Silence(6)
|
||||
if(prob(33))
|
||||
update_flags |= M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
for(var/mob/living/carbon/human/H in view(2, E.loc))//germs from people
|
||||
if(AStar(E.loc, H.loc, /turf/proc/Distance, 2, simulated_only = 0))
|
||||
if((!(BREATHLESS in H.mutations) || !(NO_BREATHE in H.dna.species.species_traits)) && !H.wear_mask) //wearing a mask helps preventing people from breathing cooties into open incisions
|
||||
if(!((BREATHLESS in H.mutations) || (NO_BREATHE in H.dna.species.species_traits)) && !H.wear_mask) //wearing a mask helps preventing people from breathing cooties into open incisions
|
||||
germs += H.germ_level * 0.25
|
||||
|
||||
for(var/obj/effect/decal/cleanable/M in view(2, E.loc))//germs from messes
|
||||
|
||||
Reference in New Issue
Block a user