mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 12:29:46 +01:00
Qol and bugfix variety pack (#21367)
changes: - qol: "Added detailed extended examine info on mechanics to pens." - qol: "Added detailed extended examine info on mechanics to the psychiatrist/chaplain Mesmetron." - qol: "Added detailed extended examine info on mechanics to barricades." - qol: "Added some extended examine info to (hanging) flags, crayons, misc." - code_imp: "Updated dmdocs in many locations." - bugfix: "You can no longer force-feed people crayons. However, you can still offer a bite of crayon for them to accept or refuse, for tradition's sake." - bugfix: "Reading the contents of a noticeboard now makes you actually face the noticeboard."
This commit is contained in:
@@ -4,19 +4,25 @@
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
atom_flags = ATOM_FLAG_CHECKS_BORDER
|
||||
/// The type of stack the barricade dropped when disassembled if any.
|
||||
var/stack_type
|
||||
/// The amount of stack dropped when disassembled at full health
|
||||
var/stack_amount = 5
|
||||
/// to specify a non-zero amount of stack to drop when destroyed
|
||||
var/destroyed_stack_amount
|
||||
/// Pretty tough. Changes sprites at 300 and 150
|
||||
var/health = 100
|
||||
/// Basic code functions
|
||||
var/maxhealth = 100
|
||||
|
||||
var/stack_type //The type of stack the barricade dropped when disassembled if any.
|
||||
var/stack_amount = 5 //The amount of stack dropped when disassembled at full health
|
||||
var/destroyed_stack_amount //to specify a non-zero amount of stack to drop when destroyed
|
||||
var/health = 100 //Pretty tough. Changes sprites at 300 and 150
|
||||
var/maxhealth = 100 //Basic code functions
|
||||
|
||||
///Used for calculating some stuff related to maxhealth as it constantly changes due to e.g. barbed wire. set to 100 to avoid possible divisions by zero
|
||||
/// Used for calculating some stuff related to maxhealth as it constantly changes due to e.g. barbed wire. set to 100 to avoid possible divisions by zero
|
||||
var/starting_maxhealth = 100
|
||||
|
||||
var/force_level_absorption = 5 //How much force an item needs to even damage it at all.
|
||||
/// How much force an item needs to even damage it at all.
|
||||
var/force_level_absorption = 5
|
||||
var/barricade_hitsound
|
||||
var/barricade_type = "barricade" //"metal", "plasteel", etc.
|
||||
/// "metal", "plasteel", etc.
|
||||
var/barricade_type = "barricade"
|
||||
var/can_change_dmg_state = TRUE
|
||||
var/damage_state = BARRICADE_DMG_NONE
|
||||
var/closed = FALSE
|
||||
@@ -43,12 +49,15 @@
|
||||
|
||||
/obj/structure/barricade/mechanics_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
. += "RIGHT-click on this to rotate it (if not anchored to the floor)."
|
||||
if(!is_wired)
|
||||
. += "Use a length of barbed wire on this barricade to restrict enemies from climbing it and damage them on attacking it at close range."
|
||||
. += "Use a length of barbed wire on this barricade to prevent enemies from climbing it and damage them on attacking it at close range."
|
||||
else
|
||||
. += "Wirecutters could remove the barbed wire on this, but it will take several moments."
|
||||
|
||||
/obj/structure/barricade/feedback_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
. += SPAN_INFO("It is recommended to stand flush to a barricade or one tile away for maximum efficiency.")
|
||||
. += SPAN_INFO("It is recommended to stand flush to a barricade or one tile away for maximum effectiveness.")
|
||||
if(is_wired)
|
||||
. += SPAN_INFO("There is a length of barbed wire strewn across the top of this barricade, preventing it from being climbed and making it hazardous to attack at close range.")
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/structure/barricade/metal
|
||||
name = "metal barricade"
|
||||
desc = "A sturdy and easily assembled barricade made of metal plates, often used for quick fortifications. Use a blowtorch to repair."
|
||||
desc = "A sturdy and easily assembled barricade made of metal plates, often used for quick fortifications."
|
||||
icon_state = "metal_0"
|
||||
build_amt = 4
|
||||
health = 450
|
||||
@@ -12,8 +12,20 @@
|
||||
barricade_hitsound = 'sound/effects/metalhit.ogg'
|
||||
barricade_type = "metal"
|
||||
can_wire = TRUE
|
||||
var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines
|
||||
/// Look at __game.dm for barricade defines
|
||||
var/build_state = BARRICADE_BSTATE_SECURED
|
||||
|
||||
// Duplicated in /obj/structure/barricade/plasteel. If you change one, also change the other.
|
||||
/obj/structure/barricade/metal/assembly_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
. += "Damage (up to a point) can be repaired with a welding torch."
|
||||
switch(build_state)
|
||||
if(BARRICADE_BSTATE_MOVABLE)
|
||||
. += "The barricade is ready to have its <b>anchor bolts</b> tightened."
|
||||
if(BARRICADE_BSTATE_UNSECURED)
|
||||
. += "The protection panel is ready to be <b>screwed</b> into place."
|
||||
|
||||
// Duplicated in /obj/structure/barricade/plasteel. If you change one, also change the other.
|
||||
/obj/structure/barricade/metal/disassembly_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
switch(build_state)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/structure/barricade/plasteel
|
||||
name = "plasteel barricade"
|
||||
desc = "A very sturdy barricade made out of plasteel panels, the pinnacle of strongpoints. Use a blowtorch to repair. Can be flipped down to create a path."
|
||||
desc = "A very sturdy barricade made out of plasteel panels, the pinnacle of strongpoints."
|
||||
icon_state = "plasteel_closed_0"
|
||||
health = 800
|
||||
maxhealth = 800
|
||||
@@ -15,9 +15,12 @@
|
||||
closed = TRUE
|
||||
can_wire = TRUE
|
||||
|
||||
var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines
|
||||
var/tool_cooldown = 0 //Delay to apply tools to prevent spamming
|
||||
var/busy = 0 //Standard busy check
|
||||
/// Look at __game.dm for barricade defines
|
||||
var/build_state = BARRICADE_BSTATE_SECURED
|
||||
/// Delay to apply tools to prevent spamming
|
||||
var/tool_cooldown = 0
|
||||
/// Standard busy check
|
||||
var/busy = 0
|
||||
var/linked = 0
|
||||
var/recentlyflipped = FALSE
|
||||
var/hasconnectionoverlay = TRUE
|
||||
@@ -35,22 +38,37 @@
|
||||
overlays += image('icons/obj/barricades.dmi', icon_state = "[src.barricade_type]_connection_[get_dir(src, cade)]")
|
||||
continue
|
||||
|
||||
|
||||
/obj/structure/barricade/plasteel/handle_barrier_chance(mob/living/M)
|
||||
if(!closed) // Closed = gate down for plasteel for some reason
|
||||
return ..()
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/structure/barricade/plasteel/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
|
||||
. = ..()
|
||||
/obj/structure/barricade/plasteel/mechanics_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
. += "Use this with an empty active hand to toggle it closed or open."
|
||||
. += "Multiple plasteel barricades aligned in a row can be linked together by using a crowbar on adjacent ones sequentially."
|
||||
|
||||
// Duplicated in /obj/structure/barricade/metal. If you change one, also change the other.
|
||||
/obj/structure/barricade/plasteel/assembly_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
. += "Damage (up to a point) can be repaired with a welding torch."
|
||||
switch(build_state)
|
||||
if(BARRICADE_BSTATE_MOVABLE)
|
||||
. += "The barricade is ready to have its <b>anchor bolts</b> tightened."
|
||||
if(BARRICADE_BSTATE_UNSECURED)
|
||||
. += "The protection panel is ready to be <b>screwed</b> into place."
|
||||
|
||||
// Duplicated in /obj/structure/barricade/metal. If you change one, also change the other.
|
||||
/obj/structure/barricade/plasteel/disassembly_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
switch(build_state)
|
||||
if(BARRICADE_BSTATE_SECURED)
|
||||
. += SPAN_INFO("The protection panel is still tighly screwed in place.")
|
||||
. += "The protection panel is still tighly <b>screwed</b> in place."
|
||||
if(BARRICADE_BSTATE_UNSECURED)
|
||||
. += SPAN_INFO("The protection panel has been removed, you can see the anchor bolts.")
|
||||
. += "The protection panel has been removed, you can see the <b>anchor bolts</b>."
|
||||
if(BARRICADE_BSTATE_MOVABLE)
|
||||
. += SPAN_INFO("The protection panel has been removed and the anchor bolts loosened. It's ready to be taken apart.")
|
||||
. += "The protection panel has been removed and the anchor bolts loosened. It's ready to be <b>pried</b> apart."
|
||||
|
||||
/obj/structure/barricade/plasteel/weld_cade(obj/item/W, mob/user)
|
||||
busy = TRUE
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
can_wire = FALSE
|
||||
metallic = FALSE
|
||||
|
||||
/obj/structure/barricade/wooden/assembly_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
. += "A plank of wood can be used on this to repair damage."
|
||||
|
||||
/obj/structure/barricade/wooden/attackby(obj/item/attacking_item, mob/user)
|
||||
if(istype(attacking_item, /obj/item/stack/material/wood))
|
||||
var/obj/item/stack/material/wood/D = attacking_item
|
||||
@@ -27,7 +31,7 @@
|
||||
if(D.use(1))
|
||||
update_health(-0.5*maxhealth)
|
||||
update_damage_state()
|
||||
visible_message(SPAN_NOTICE("[user] clumsily repairs [src]."))
|
||||
visible_message(SPAN_NOTICE("[user] haphazardly repairs [src]."))
|
||||
return
|
||||
|
||||
. = ..()
|
||||
|
||||
@@ -243,7 +243,7 @@
|
||||
user.put_in_hands(chosen_item)
|
||||
to_chat(user, SPAN_NOTICE("You take [my_plasteel[chosen_item]] from [src]."))
|
||||
my_plasteel -= chosen_item
|
||||
if(/obj/item/device/lightreplacer)
|
||||
if(/obj/item/device/lightreplacer, /obj/item/device/lightreplacer/advanced)
|
||||
if(my_lightreplacer)
|
||||
user.put_in_hands(my_lightreplacer)
|
||||
to_chat(user, SPAN_NOTICE("You take [my_lightreplacer] from [src]."))
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
/obj/structure/coatrack
|
||||
name = "coat rack"
|
||||
desc = "Rack that holds coats, or hats, if you're so inclined."
|
||||
desc = "Rack that holds coats, or hats, if you're so inclined. Well, exactly one coat and one hat, at least."
|
||||
icon = 'icons/obj/coatrack.dmi'
|
||||
icon_state = "coatrack"
|
||||
layer = ABOVE_HUMAN_LAYER
|
||||
var/obj/item/clothing/coat
|
||||
var/obj/item/clothing/head/hat
|
||||
var/list/custom_sprites = list(/obj/item/clothing/head/beret/security, /obj/item/clothing/accessory/poncho/tajarancloak) // Custom manual sprite override.
|
||||
/// Custom manual sprite override.
|
||||
var/list/custom_sprites = list(/obj/item/clothing/head/beret/security, /obj/item/clothing/accessory/poncho/tajarancloak)
|
||||
|
||||
/obj/structure/coatrack/attack_hand(mob/user as mob)
|
||||
if(use_check_and_message(user))
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
icon_state = "flag_boxed"
|
||||
var/flag_path
|
||||
|
||||
///Boolean, set to `TRUE` if a flag is large (2x1)
|
||||
/// Boolean, set to `TRUE` if a flag is large (2x1)
|
||||
var/flag_size = FALSE
|
||||
|
||||
var/obj/structure/sign/flag/flag_structure
|
||||
@@ -23,17 +23,17 @@
|
||||
icon = 'icons/obj/structure/flags.dmi'
|
||||
icon_state = "flag"
|
||||
|
||||
///If a big flag, the other half of the flag is referenced here
|
||||
/// If a big flag, the other half of the flag is referenced here
|
||||
var/obj/structure/sign/flag/linked_flag
|
||||
/// For returning your flag
|
||||
var/obj/item/flag/flag_item
|
||||
|
||||
var/obj/item/flag/flag_item //For returning your flag
|
||||
|
||||
///Boolean, if we've been torn down
|
||||
/// Boolean, if we've been torn down
|
||||
var/ripped = FALSE
|
||||
|
||||
///Default offset value. Used in accurately locating the turf we're standing on.
|
||||
/// Default offset value. Used in accurately locating the turf we're standing on.
|
||||
var/offset_constant = 32
|
||||
///Boolean, set to TRUE if someone is folding the banner.
|
||||
/// Boolean, set to TRUE if someone is folding the banner.
|
||||
var/currently_folding = FALSE
|
||||
var/ripped_outline_state = "flag_ripped"
|
||||
var/flag_path
|
||||
@@ -45,6 +45,13 @@
|
||||
var/unmovable = FALSE
|
||||
var/stand_icon = "banner_stand"
|
||||
|
||||
/obj/structure/sign/flag/mechanics_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
. += "With the HELP intent, use an empty hand on this to examine it."
|
||||
. += "With the DISARM intent, use an empty hand on this to fold it back up."
|
||||
. += "With the GRAB intent, use an empty hand on this to salute it. How patriotic!"
|
||||
. += "With the HURT intent, use an empty hand on this rip it down. You will receive a prompt to confirm the action."
|
||||
|
||||
/obj/structure/sign/flag/Initialize(mapload, var/newdir, var/linked_flag_path, var/deploy, var/icon_file, var/item_flag_path)
|
||||
. = ..()
|
||||
dir = newdir
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
pass_flags_self = PASSTABLE
|
||||
var/state = 0
|
||||
var/health = 200
|
||||
var/cover = 50 //how much cover the girder provides against projectiles.
|
||||
/// How much cover the girder provides against projectiles.
|
||||
var/cover = 50
|
||||
build_amt = 2
|
||||
var/material/reinf_material
|
||||
var/reinforcing = 0
|
||||
@@ -30,15 +31,13 @@
|
||||
state = SPAN_NOTICE("The support struts look completely intact.")
|
||||
. += state
|
||||
|
||||
/obj/structure/girder/mechanics_hints()
|
||||
. = list()
|
||||
/obj/structure/girder/mechanics_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
if (state == 0 && anchored)
|
||||
. += SPAN_NOTICE("It could be <b>pried</b> to subtly displace it to build a fake wall.")
|
||||
return .
|
||||
|
||||
/obj/structure/girder/assembly_hints()
|
||||
. = list()
|
||||
/obj/structure/girder/assembly_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
if (health < initial(health))
|
||||
. += "It could be repaired with a few choice <b>welds</b>."
|
||||
@@ -55,8 +54,7 @@
|
||||
. += "It [anchored ? "is" : "could be"] anchored to the floor with some <b>bolts</b>."
|
||||
return .
|
||||
|
||||
/obj/structure/girder/disassembly_hints()
|
||||
. = list()
|
||||
/obj/structure/girder/disassembly_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
// Reinf wall deconstruction.
|
||||
if (state == 2)
|
||||
@@ -66,7 +64,6 @@
|
||||
if (!anchored)
|
||||
. += "It is held together by a couple of <b>bolts</b>; a heavy <b>cutting</b> tool might also take it apart."
|
||||
|
||||
|
||||
/obj/structure/girder/displaced
|
||||
name = "displaced girder"
|
||||
icon_state = "displaced"
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
// level, it should be fine to let anyone mess with the board other than ghosts.
|
||||
/obj/structure/noticeboard/examine(mob/user, distance, is_adjacent, infix, suffix, show_extended)
|
||||
if(is_adjacent)
|
||||
user.face_atom(src)
|
||||
var/dat = "<B>Noticeboard</B><BR>"
|
||||
for(var/obj/item/paper/P in src)
|
||||
dat += "<A href='byond://?src=[REF(src)];read=[REF(P)]'>[P.name]</A> <A href='byond://?src=[REF(src)];write=[REF(P)]'>Write</A> <A href='byond://?src=[REF(src)];remove=[REF(P)]'>Remove</A><BR>"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/mesmetron
|
||||
name = "mesmetron pocketwatch"
|
||||
desc = "An elaborate pocketwatch, with a captivating gold etching and an enchanting face. . ."
|
||||
desc = "An elaborate pocketwatch, with a captivating gold etching and an enchanting face..."
|
||||
icon = 'icons/obj/item/clothing/wrists/wrist.dmi'
|
||||
icon_state = "pocketwatch"
|
||||
item_state = "pocketwatch"
|
||||
@@ -14,6 +14,13 @@
|
||||
var/time_counter = 0
|
||||
var/closed = FALSE
|
||||
|
||||
/obj/item/mesmetron/mechanics_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
. += "ALT-click this to snap it open or shut."
|
||||
. += "Use this on yourself (when opened) to check the date and time."
|
||||
. += "Use this on someone (when opened) to attempt to hypnotize them! They will receive a prompt; if they believe in hypnosis, they will fall into a deep slumber."
|
||||
. += "While you have someone hypnotized, use this on yourself to either awaken them, or to whisper a suggestion to them!"
|
||||
|
||||
/obj/item/mesmetron/AltClick(mob/user)
|
||||
if(!closed)
|
||||
icon_state = "[initial(icon_state)]_closed"
|
||||
|
||||
Reference in New Issue
Block a user