mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-16 18:45:22 +01:00
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
can_install_electronics = FALSE
|
||||
paint_jobs = null
|
||||
can_weld_shut = FALSE
|
||||
door_anim_time = 0
|
||||
|
||||
var/foldedbag_path = /obj/item/bodybag
|
||||
var/obj/item/bodybag/foldedbag_instance = null
|
||||
|
||||
@@ -84,7 +84,6 @@
|
||||
new /obj/item/radio/headset/heads/cmo(src)
|
||||
new /obj/item/megaphone/command(src)
|
||||
new /obj/item/defibrillator/compact/loaded(src)
|
||||
new /obj/item/healthanalyzer/advanced(src)
|
||||
new /obj/item/assembly/flash/handheld(src)
|
||||
new /obj/item/storage/briefcase/medicalgunset/cmo(src) //SKYRAT EDIT ADDITION MEDIGUNS
|
||||
new /obj/item/autosurgeon/medical_hud(src)
|
||||
|
||||
@@ -92,6 +92,7 @@
|
||||
new /obj/item/storage/belt/security/full(src)
|
||||
new /obj/item/flashlight/seclite(src)
|
||||
new /obj/item/door_remote/head_of_security(src)
|
||||
new /obj/item/storage/belt/bandolier(src)
|
||||
|
||||
|
||||
/obj/structure/closet/secure_closet/warden/populate_contents_immediate()
|
||||
@@ -328,7 +329,7 @@
|
||||
new /obj/item/storage/box/firingpins(src)
|
||||
new /obj/item/gun/energy/ionrifle(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/gun/energy/laser/thermal(src)
|
||||
new /obj/item/gun/energy/laser/pistol(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/armory3/populate_contents_immediate()
|
||||
for(var/i in 1 to 3)
|
||||
|
||||
+26
-11
@@ -7,12 +7,14 @@
|
||||
base_icon_state = "securecrate"
|
||||
integrity_failure = 0 //no breaking open the crate
|
||||
var/code = null
|
||||
var/last_attempt = null
|
||||
/// Associated list of previous attempts w/ bulls & cows
|
||||
var/list/previous_attempts = list()
|
||||
var/attempts = 10
|
||||
var/code_length = 4
|
||||
var/qdel_on_open = FALSE
|
||||
var/spawned_loot = FALSE
|
||||
tamperproof = 90
|
||||
interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND
|
||||
|
||||
divable = FALSE // Stop people from "diving into" the crate accidentally, and then detonating it.
|
||||
|
||||
@@ -127,6 +129,7 @@
|
||||
spawn_loot()
|
||||
tamperproof = 0 // set explosion chance to zero, so we dont accidently hit it with a multitool and instantly die
|
||||
togglelock(user)
|
||||
SStgui.close_user_uis(user, src)
|
||||
return
|
||||
|
||||
if(!validate_input(input))
|
||||
@@ -134,7 +137,7 @@
|
||||
return
|
||||
|
||||
to_chat(user, span_warning("A red light flashes."))
|
||||
last_attempt = input
|
||||
previous_attempts += list(bulls_and_cows(input))
|
||||
attempts--
|
||||
|
||||
if(attempts <= 0)
|
||||
@@ -160,16 +163,28 @@
|
||||
attack_hand(user) //this helps you not blow up so easily by overriding unlocking which results in an immediate boom.
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/obj/structure/closet/crate/secure/loot/ui_interact(mob/user, datum/tgui/ui)
|
||||
. = ..()
|
||||
|
||||
// Attempt to update tgui ui, open and update if needed.
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "AbandonedCrate", name)
|
||||
ui.open()
|
||||
|
||||
/obj/structure/closet/crate/secure/loot/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
data["previous_attempts"] = previous_attempts
|
||||
data["attempts_left"] = attempts
|
||||
|
||||
return data
|
||||
|
||||
/obj/structure/closet/crate/secure/loot/multitool_act(mob/living/user, obj/item/tool)
|
||||
if(!locked)
|
||||
return
|
||||
|
||||
to_chat(user, span_boldnotice("DECA-CODE LOCK REPORT:"))
|
||||
to_chat(user, span_warning("* Anti-Tamper Bomb will activate [attempts == 1 ? span_boldwarning("on next failed access attempt") : "after [span_boldwarning("[attempts]")] failed access attempts"]."))
|
||||
|
||||
if(last_attempt)
|
||||
var/list/bulls_cows = bulls_and_cows(last_attempt)
|
||||
to_chat(user, span_notice("Last code attempt, [last_attempt], had [bulls_cows[1]] correct digits at correct positions and [bulls_cows[2]] correct digits at incorrect positions."))
|
||||
if(Adjacent(user))
|
||||
ui_interact(user)
|
||||
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
@@ -187,7 +202,7 @@
|
||||
else if(findtext(code, guess_char))
|
||||
cows++
|
||||
|
||||
return list(bulls, cows)
|
||||
return list("attempt" = guess, "bulls" = bulls, "cows" = cows)
|
||||
|
||||
/obj/structure/closet/crate/secure/loot/emag_act(mob/user, obj/item/card/emag/emag_card)
|
||||
. = ..()
|
||||
@@ -204,7 +219,7 @@
|
||||
//reset the anti-tampering, number of attempts and last attempt when the lock is re-enabled.
|
||||
tamperproof = initial(tamperproof)
|
||||
attempts = initial(attempts)
|
||||
last_attempt = null
|
||||
previous_attempts = list()
|
||||
return
|
||||
if(tamperproof)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user