diff --git a/code/__defines/hud.dm b/code/__defines/hud.dm index 24e3be0d394a..7cb67e0fd28a 100644 --- a/code/__defines/hud.dm +++ b/code/__defines/hud.dm @@ -11,7 +11,6 @@ #define UI_ICON_NUTRITION "icon_nutrition" #define UI_ICON_HYDRATION "icon_hydration" #define UI_ICON_FIRE_INTENT "icon_fire_intent" -#define UI_ICON_INTENT "icon_intent" #define UI_ICON_UP_HINT "icon_uphint" #define UI_ICON_STATUS "icon_status" #define UI_ICON_STATUS_FIRE "icon_status_fire" diff --git a/code/__defines/intent.dm b/code/__defines/intent.dm new file mode 100644 index 000000000000..2fa914a8b4c2 --- /dev/null +++ b/code/__defines/intent.dm @@ -0,0 +1,11 @@ +// Intent bitflags for use in check_intent() +#define I_FLAG_HELP BITFLAG(0) +#define I_FLAG_DISARM BITFLAG(1) +#define I_FLAG_GRAB BITFLAG(2) +#define I_FLAG_HARM BITFLAG(3) +#define I_FLAG_ALL (I_FLAG_HELP|I_FLAG_DISARM|I_FLAG_GRAB|I_FLAG_HARM) + +//NOTE: INTENT_HOTKEY_* defines are not actual intents! +//they are here to support hotkeys +#define INTENT_HOTKEY_LEFT "left" +#define INTENT_HOTKEY_RIGHT "right" diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index c6fd3d2e4662..5bf9a5b371ac 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -270,11 +270,6 @@ /// Returns the hex value of a number given a value assumed to be a base-ten value, padded to a supplied minimum length. #define num2hex_padded(num, len) num2text(num, len, 16) -//NOTE: INTENT_HOTKEY_* defines are not actual intents! -//they are here to support hotkeys -#define INTENT_HOTKEY_LEFT "left" -#define INTENT_HOTKEY_RIGHT "right" - //Turf/area values for 'this space is outside' checks #define OUTSIDE_AREA null #define OUTSIDE_NO FALSE diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 9d48c45354b0..022c6011a7ad 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -34,12 +34,6 @@ #define GETPULSE_TOOL 1 // More accurate. (med scanner, sleeper, etc.) #define PULSE_MAX_BPM 250 // Highest, readable BPM by machines and humans. -//intent flags -#define I_HELP "help" -#define I_DISARM "disarm" -#define I_GRAB "grab" -#define I_HURT "harm" - //These are used Bump() code for living mobs, in the mob_bump_flag, mob_swap_flags, and mob_push_flags vars to determine whom can bump/swap with whom. #define HUMAN 1 #define MONKEY 2 diff --git a/code/_helpers/cmp.dm b/code/_helpers/cmp.dm index e84ecc341fcc..3a04928449ee 100644 --- a/code/_helpers/cmp.dm +++ b/code/_helpers/cmp.dm @@ -137,6 +137,9 @@ /proc/cmp_decl_uid_asc(decl/a, decl/b) return sorttext(b.uid, a.uid) +/proc/cmp_decl_sort_value_asc(decl/a, decl/b) + return a.sort_order - b.sort_order + /proc/cmp_inventory_slot_desc(datum/inventory_slot/a, datum/inventory_slot/b) return b.quick_equip_priority - a.quick_equip_priority @@ -154,4 +157,7 @@ if(a == prerequisite) return -1 // goes after return cmp_skill_asc(a, GET_DECL(b.prerequisites[1])) - return cmp_name_or_type_asc(a, b) \ No newline at end of file + return cmp_name_or_type_asc(a, b) + +/proc/cmp_priority_list(list/A, list/B) + return A["priority"] - B["priority"] diff --git a/code/_helpers/visual_filters.dm b/code/_helpers/visual_filters.dm index deb7162f1964..ad1fc9104209 100644 --- a/code/_helpers/visual_filters.dm +++ b/code/_helpers/visual_filters.dm @@ -5,9 +5,6 @@ /atom/movable var/list/filter_data // For handling persistent filters -/proc/cmp_filter_data_priority(list/A, list/B) - return A["priority"] - B["priority"] - // Defining this for future proofing and ease of searching for erroneous usage. /image/proc/add_filter(filter_name, priority, list/params) filters += filter(arglist(params)) @@ -35,7 +32,7 @@ /atom/movable/proc/update_filters() filters = null - filter_data = sortTim(filter_data, /proc/cmp_filter_data_priority, TRUE) + filter_data = sortTim(filter_data, /proc/cmp_priority_list, TRUE) for(var/f in filter_data) var/list/data = filter_data[f] var/list/arguments = data.Copy() diff --git a/code/_onclick/MouseDrag.dm b/code/_onclick/MouseDrag.dm index fba7242aa075..6f7e0ee7c3ea 100644 --- a/code/_onclick/MouseDrag.dm +++ b/code/_onclick/MouseDrag.dm @@ -15,7 +15,7 @@ return var/obj/item/gun/gun = get_active_held_item() - if(a_intent == I_HURT && istype(over_object) && (isturf(over_object) || isturf(over_object.loc)) && !incapacitated() && istype(gun)) + if(check_intent(I_FLAG_HARM) && istype(over_object) && (isturf(over_object) || isturf(over_object.loc)) && !incapacitated() && istype(gun)) gun.set_autofire(over_object, src) /mob/proc/OnMouseDown(atom/object, location, control, params) @@ -25,7 +25,7 @@ return var/obj/item/gun/gun = get_active_held_item() - if(a_intent == I_HURT && istype(object) && (isturf(object) || isturf(object.loc)) && !incapacitated() && istype(gun)) + if(check_intent(I_FLAG_HARM) && istype(object) && (isturf(object) || isturf(object.loc)) && !incapacitated() && istype(gun)) gun.set_autofire(object, src) /mob/proc/OnMouseUp(atom/object, location, control, params) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 045bb1e7b33b..5be9c8e94478 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -118,7 +118,7 @@ if(holding) // AI driven mobs have a melee telegraph that needs to be handled here. - if(a_intent == I_HURT && istype(A) && (!do_attack_windup_checking(A) || holding != get_active_held_item())) + if(check_intent(I_FLAG_HARM) && istype(A) && (!do_attack_windup_checking(A) || holding != get_active_held_item())) return TRUE var/resolved = holding.resolve_attackby(A, src, params) @@ -144,7 +144,7 @@ if(holding) // AI driven mobs have a melee telegraph that needs to be handled here. - if(a_intent == I_HURT && istype(A) && (!do_attack_windup_checking(A) || holding != get_active_held_item())) + if(check_intent(I_FLAG_HARM) && istype(A) && (!do_attack_windup_checking(A) || holding != get_active_held_item())) return TRUE // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) @@ -225,7 +225,7 @@ // corgis attacking a tree, for example, will do the windup animation despite // having no interaction or message shown at the end of it. // AI driven mobs have a melee telegraph that needs to be handled here. - if(a_intent == I_HURT && istype(A) && !do_attack_windup_checking(A)) + if(check_intent(I_FLAG_HARM) && istype(A) && !do_attack_windup_checking(A)) return TRUE return FALSE diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 4cb41e5b2bb9..695fbe49f205 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -137,7 +137,7 @@ return /obj/machinery/door/airlock/BorgAltClick() // Eletrifies doors. Forwards to AI code. - if (usr.a_intent != I_HELP) + if (!usr.check_intent(I_FLAG_HELP)) AICtrlAltClick() else ..() diff --git a/code/_onclick/hud/animal.dm b/code/_onclick/hud/animal.dm index 5c1d9173a3a6..70b61dffe77b 100644 --- a/code/_onclick/hud/animal.dm +++ b/code/_onclick/hud/animal.dm @@ -11,6 +11,6 @@ move_intent = new(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_MOVEMENT) move_intent.icon_state = mymob.move_intent.hud_icon_state adding += move_intent - action_intent = new(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_INTENT) + action_intent = new(null, mymob, ui_style, ui_color, ui_alpha) adding += action_intent ..() diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index a4fb7dab7ffe..44722373ecbd 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -16,8 +16,8 @@ adding += stamina_bar // Draw the attack intent dialogue. - if(hud_data.has_a_intent) - action_intent = new(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_INTENT) + if(hud_data.show_intent_selector) + action_intent = new(null, mymob) src.adding += action_intent hud_elements |= action_intent diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 2b87d5f9372a..6408ee430382 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -51,8 +51,8 @@ var/global/obj/screen/robot_inventory adding += R.ui_drop_grab //Intent - action_intent = new /obj/screen/intent/robot(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_INTENT) - action_intent.icon_state = R.a_intent + action_intent = new /obj/screen/intent/robot(null, mymob) + action_intent.icon_state = R.get_intent().icon_state adding += action_intent adding += new /obj/screen/robot_panel(null, mymob) diff --git a/code/_onclick/hud/screen/screen_intent.dm b/code/_onclick/hud/screen/screen_intent.dm index 138dc18c2d36..4682cc14836c 100644 --- a/code/_onclick/hud/screen/screen_intent.dm +++ b/code/_onclick/hud/screen/screen_intent.dm @@ -1,24 +1,67 @@ /obj/screen/intent - name = "intent" - icon = 'icons/mob/screen/styles/intents.dmi' - icon_state = "intent_help" - screen_loc = ui_acti - var/intent = I_HELP + name = "intent" + icon = 'icons/mob/screen/styles/intents.dmi' + icon_state = "intents" + screen_loc = ui_acti + requires_ui_style = FALSE -/obj/screen/intent/handle_click(mob/user, params) - var/list/P = params2list(params) - var/icon_x = text2num(P["icon-x"]) - var/icon_y = text2num(P["icon-y"]) - intent = I_DISARM - if(icon_x <= world.icon_size/2) - if(icon_y <= world.icon_size/2) - intent = I_HURT - else - intent = I_HELP - else if(icon_y <= world.icon_size/2) - intent = I_GRAB +/obj/screen/intent/Initialize(mapload, mob/_owner, decl/ui_style/ui_style, ui_color, ui_alpha, ui_cat) + . = ..() update_icon() - user.a_intent = intent + +/obj/screen/intent/handle_click(mob/user, params) + var/mob/owner = owner_ref?.resolve() + if(!istype(owner) || QDELETED(owner) || user != owner || !params) + return + params = params2list(params) + if(owner.set_intent(get_intent_by_position(owner.get_available_intents(), text2num(params["icon-x"]), text2num(params["icon-y"])))) + update_icon() + +/obj/screen/intent/proc/get_intent_by_position(list/intents, icon_x, icon_y) + if(icon_y <= 16) + if(icon_x <= 16) + return intents[1] + return intents[2] + else if(icon_x <= 16) + return intents[3] + return intents[4] + +/obj/screen/intent/proc/apply_intent_overlay_offset(image/overlay, index) + switch(index) + if(2) + overlay.pixel_x = 16 + if(3) + overlay.pixel_y = 16 + if(4) + overlay.pixel_x = 16 + overlay.pixel_y = 16 /obj/screen/intent/on_update_icon() - icon_state = "intent_[intent]" + cut_overlays() + var/mob/owner = owner_ref?.resolve() + if(!istype(owner) || QDELETED(owner)) + return + var/decl/intent/owner_intent = owner.get_intent() + var/i = 0 + var/image/I + for(var/decl/intent/intent as anything in owner.get_available_intents()) + if(intent == owner_intent) + I = image(intent.icon, intent.icon_state) + else + I = image(intent.icon, "[intent.icon_state]_off") + i++ + apply_intent_overlay_offset(I, i) + add_overlay(I) + compile_overlays() + +/obj/screen/intent/binary + icon = 'icons/mob/screen/styles/intents_wide.dmi' + +/obj/screen/intent/binary/get_intent_by_position(list/intents, icon_x, icon_y) + if(icon_y <= 16) + return intents[1] + return intents[2] + +/obj/screen/intent/binary/apply_intent_overlay_offset(image/overlay, index) + if(index == 2) + overlay.pixel_y = 16 diff --git a/code/_onclick/hud/screen/screen_robot_intent.dm b/code/_onclick/hud/screen/screen_robot_intent.dm index bbc6501941ef..cff12b35ea97 100644 --- a/code/_onclick/hud/screen/screen_robot_intent.dm +++ b/code/_onclick/hud/screen/screen_robot_intent.dm @@ -1,7 +1,2 @@ /obj/screen/intent/robot - name = "act_intent" - dir = SOUTHWEST screen_loc = ui_acti - -/obj/screen/intent/robot/handle_click(mob/user, params) - user.a_intent_change("right") diff --git a/code/_onclick/hud/screen/screen_warnings.dm b/code/_onclick/hud/screen/screen_warnings.dm index 842f93677d1a..d89eb94e10b2 100644 --- a/code/_onclick/hud/screen/screen_warnings.dm +++ b/code/_onclick/hud/screen/screen_warnings.dm @@ -8,6 +8,12 @@ icon_state = "health0" screen_loc = ui_health +/obj/screen/health_warning/handle_click(mob/user, params) + if(ishuman(user)) + var/mob/living/human/human_user = user + human_user.check_self_injuries() + return TRUE + /obj/screen/warning_cells name = "cell" icon_state = "charge-empty" diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 3bb7bf3b1a79..a3e8714eaffe 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -48,7 +48,7 @@ avoid code duplication. This includes items that may sometimes act as a standard // Return TRUE if further actions (afterattack, etc) should be prevented, FALSE if they can proceed. /atom/movable/proc/bash(obj/item/weapon, mob/user) - if(isliving(user) && user.a_intent == I_HELP) + if(isliving(user) && user.check_intent(I_FLAG_HELP)) return FALSE if(!weapon.user_can_attack_with(user)) return FALSE @@ -61,7 +61,7 @@ avoid code duplication. This includes items that may sometimes act as a standard if(!ismob(user)) return TRUE - if(!QDELETED(used_item) && user.a_intent == I_HELP) + if(!QDELETED(used_item) && user.check_intent(I_FLAG_HELP)) var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, user.get_target_zone()) if(length(E?.ailments)) for(var/datum/ailment/ailment in E.ailments) @@ -69,7 +69,7 @@ avoid code duplication. This includes items that may sometimes act as a standard ailment.was_treated_by_item(used_item, user, src) return TRUE - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) if(can_operate(src, user) != OPERATE_DENY && used_item.do_surgery(src,user)) //Surgery return TRUE if(try_butcher_in_place(user, used_item)) @@ -119,14 +119,14 @@ avoid code duplication. This includes items that may sometimes act as a standard if(squash_item()) return TRUE - if(user?.a_intent != I_HURT && is_edible(target) && handle_eaten_by_mob(user, target) != EATEN_INVALID) + if(!user?.check_intent(I_FLAG_HARM) && is_edible(target) && handle_eaten_by_mob(user, target) != EATEN_INVALID) return TRUE if(item_flags & ITEM_FLAG_NO_BLUDGEON) return FALSE // If on help, possibly don't attack. - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) switch(user.get_preference_value(/datum/client_preference/help_intent_attack_blocking)) if(PREF_ALWAYS) if(user == target) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 0e4a32796d59..870865a831ff 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -57,7 +57,7 @@ /mob/living/RestrainedClickOn(var/atom/A) if (A != src) return ..() - if(world.time < next_restraint_chew || !get_equipped_item(slot_handcuffed_str) || a_intent != I_HURT || get_target_zone() != BP_MOUTH) + if(world.time < next_restraint_chew || !get_equipped_item(slot_handcuffed_str) || !check_intent(I_FLAG_HARM) || get_target_zone() != BP_MOUTH) return FALSE // Cannot chew with a mask or a full body restraint. if (get_equipped_item(slot_wear_mask_str) || istype(get_equipped_item(slot_wear_suit_str), /obj/item/clothing/suit/straight_jacket)) @@ -94,10 +94,10 @@ return var/attacking_with = get_natural_weapon() - if(a_intent == I_HELP || !attacking_with) + if(check_intent(I_FLAG_HELP) || !attacking_with) return A.attack_animal(src) - a_intent = I_HURT + set_intent(I_FLAG_HARM) . = A.attackby(attacking_with, src) // attack effects are handled in natural_weapon's apply_hit_effect() instead of here if(!.) diff --git a/code/controllers/subsystems/initialization/fabrication.dm b/code/controllers/subsystems/initialization/fabrication.dm index e383f77a1c43..37a6d57dfae0 100644 --- a/code/controllers/subsystems/initialization/fabrication.dm +++ b/code/controllers/subsystems/initialization/fabrication.dm @@ -33,6 +33,9 @@ SUBSYSTEM_DEF(fabrication) var/list/all_crafting_handlers = decls_repository.get_decls_of_subtype(/decl/crafting_stage) for(var/hid in all_crafting_handlers) var/decl/crafting_stage/handler = all_crafting_handlers[hid] + // TODO: revisit this if map tech level can be mutated at runtime + if(global.using_map.map_tech_level < handler.available_to_map_tech_level) + continue if(ispath(handler.begins_with_object_type)) LAZYDISTINCTADD(crafting_procedures_by_type[handler.begins_with_object_type], handler) diff --git a/code/datums/ai/aggressive.dm b/code/datums/ai/aggressive.dm index 9335610bcdeb..62316d4d1977 100644 --- a/code/datums/ai/aggressive.dm +++ b/code/datums/ai/aggressive.dm @@ -7,6 +7,11 @@ var/break_stuff_probability = 10 var/weakref/target_ref +/datum/mob_controller/aggressive/New() + ..() + if(isliving(body) && !QDELETED(body) && !QDELETED(src)) + body.set_intent(I_FLAG_HARM) + /datum/mob_controller/aggressive/set_target(atom/new_target) var/weakref/new_target_ref = weakref(new_target) if(target_ref != new_target_ref) @@ -108,7 +113,7 @@ SET_STATUS_MAX(victim, STAT_WEAK, 3) return target if(body.Adjacent(target)) - body.a_intent = I_HURT + body.set_intent(I_FLAG_HARM) body.ClickOn(target) return target @@ -135,7 +140,7 @@ // Attack anything on the target turf. var/obj/effect/shield/S = locate(/obj/effect/shield) in targ if(S && S.gen && S.gen.check_flag(MODEFLAG_NONHUMANS)) - body.a_intent = I_HURT + body.set_intent(I_FLAG_HARM) body.ClickOn(S) return @@ -156,7 +161,7 @@ for(var/type in valid_obstacles_by_priority) var/obj/obstacle = locate(type) in targ if(obstacle) - body.a_intent = I_HURT + body.set_intent(I_FLAG_HARM) body.ClickOn(obstacle) return diff --git a/code/datums/ai/hunter.dm b/code/datums/ai/hunter.dm index b7715277783f..e60294d4a87e 100644 --- a/code/datums/ai/hunter.dm +++ b/code/datums/ai/hunter.dm @@ -17,7 +17,7 @@ return !victim.isSynthetic() && (victim.stat == DEAD || victim.get_object_size() < body.get_object_size()) /datum/mob_controller/passive/hunter/proc/try_attack_prey(mob/living/prey) - body.a_intent = I_HURT + body.set_intent(I_FLAG_HARM) body.ClickOn(prey) /datum/mob_controller/passive/hunter/proc/consume_prey(mob/living/prey) diff --git a/code/datums/extensions/abilities/abilities_predator.dm b/code/datums/extensions/abilities/abilities_predator.dm index c6cfa9542c6a..025a1c0e05e3 100644 --- a/code/datums/extensions/abilities/abilities_predator.dm +++ b/code/datums/extensions/abilities/abilities_predator.dm @@ -6,7 +6,7 @@ /datum/ability_handler/predator/do_melee_invocation(mob/user, atom/target) // Nibbles - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) if(isliving(target)) return handle_dismemberment(user, target) if(istype(target, /obj/item/organ)) diff --git a/code/datums/extensions/holster/holster.dm b/code/datums/extensions/holster/holster.dm index f83a5ac67a9b..55373db095d6 100644 --- a/code/datums/extensions/holster/holster.dm +++ b/code/datums/extensions/holster/holster.dm @@ -73,9 +73,9 @@ to_chat(user, SPAN_WARNING("You need an empty hand to draw \the [holstered]!")) return 1 var/using_intent_preference = user.client ? user.client.get_preference_value(/datum/client_preference/holster_on_intent) == PREF_YES : FALSE - if(avoid_intent || (using_intent_preference && user.a_intent != I_HELP)) + if(avoid_intent || (using_intent_preference && !user.check_intent(I_FLAG_HELP))) var/sound_vol = 25 - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) sound_vol = 50 if(istype(holstered, /obj/item/gun)) var/obj/item/gun/G = holstered diff --git a/code/datums/extensions/storage/_storage.dm b/code/datums/extensions/storage/_storage.dm index e6200fdaf083..a901951417bc 100644 --- a/code/datums/extensions/storage/_storage.dm +++ b/code/datums/extensions/storage/_storage.dm @@ -153,10 +153,10 @@ var/global/list/_test_storage_items = list() return 0 //If attempting to lable the storage item, silently fail to allow it - if(istype(W, /obj/item/hand_labeler) && user?.a_intent != I_HELP) + if(istype(W, /obj/item/hand_labeler) && !user?.check_intent(I_FLAG_HELP)) return FALSE //Prevent package wrapper from being inserted by default - if(istype(W, /obj/item/stack/package_wrap) && user?.a_intent != I_HELP) + if(istype(W, /obj/item/stack/package_wrap) && !user?.check_intent(I_FLAG_HELP)) return FALSE // Don't allow insertion of unsafed compressed matter implants diff --git a/code/datums/repositories/attack_logs.dm b/code/datums/repositories/attack_logs.dm index 2259b3693c39..62507326a3a5 100644 --- a/code/datums/repositories/attack_logs.dm +++ b/code/datums/repositories/attack_logs.dm @@ -33,7 +33,7 @@ var/global/repository/attack_logs/attack_log_repository = new() else message = "[victim.name] [action_message]" - intent = mob_attacker ? uppertext(mob_attacker.a_intent) : "N/A" + intent = mob_attacker ? uppertext(mob_attacker.get_intent().uid) : "N/A" target_zone = uppertext(mob_attacker?.get_target_zone() || "N/A") if(mob_attacker) diff --git a/code/datums/repositories/decls.dm b/code/datums/repositories/decls.dm index e7898fa23c34..73a9f14fb610 100644 --- a/code/datums/repositories/decls.dm +++ b/code/datums/repositories/decls.dm @@ -149,6 +149,8 @@ var/global/repository/decls/decls_repository = new var/uid var/decl_flags = null // DECL_FLAG_ALLOW_ABSTRACT_INIT, DECL_FLAG_MANDATORY_UID var/initialized = FALSE + /// General purpose sort value. + var/sort_order /decl/proc/Initialize() SHOULD_CALL_PARENT(TRUE) diff --git a/code/game/atoms_movable_grabs.dm b/code/game/atoms_movable_grabs.dm index 7f0f7d148b5f..357047a0e316 100644 --- a/code/game/atoms_movable_grabs.dm +++ b/code/game/atoms_movable_grabs.dm @@ -23,7 +23,7 @@ // Anchored check so we can operate switches etc on grab intent without getting grab failure msgs. // NOTE: /mob/living overrides this to return FALSE in favour of using default_grab_interaction - if(isliving(user) && user.a_intent == I_GRAB && !user.current_posture.prone && !anchored) + if(isliving(user) && user.check_intent(I_FLAG_GRAB) && !user.current_posture.prone && !anchored) return try_make_grab(user) return ..() diff --git a/code/game/machinery/_machines_base/machinery.dm b/code/game/machinery/_machines_base/machinery.dm index 290540f78f58..6736ad221bbe 100644 --- a/code/game/machinery/_machines_base/machinery.dm +++ b/code/game/machinery/_machines_base/machinery.dm @@ -433,6 +433,8 @@ Class Procs: var/obj/item/fake_thing = type parts += "[num2text(missing[type])] [initial(fake_thing.name)]" to_chat(user, "\The [src] is missing [english_list(parts)], rendering it inoperable.") + for(var/obj/item/stock_parts/part in component_parts) + part.on_machine_examined(user) // This is really pretty crap and should be overridden for specific machines. /obj/machinery/fluid_act(var/datum/reagents/fluids) diff --git a/code/game/machinery/_machines_base/machinery_components.dm b/code/game/machinery/_machines_base/machinery_components.dm index f60963589294..379a5dea9479 100644 --- a/code/game/machinery/_machines_base/machinery_components.dm +++ b/code/game/machinery/_machines_base/machinery_components.dm @@ -352,3 +352,12 @@ Standard helpers for users interacting with machinery parts. var/present = number_of_components(required_type, only_functional) if(present < needed) LAZYSET(., required_type, needed - present) + +/obj/machinery/get_alt_interactions(mob/user) + . = ..() + for(var/obj/item/stock_parts/component in component_parts) + if(!components_are_accessible(component.type)) + continue + var/list/machine_alt_interactions = component.get_machine_alt_interactions(user) + if(LAZYLEN(machine_alt_interactions)) + LAZYADD(., machine_alt_interactions) diff --git a/code/game/machinery/_machines_base/stock_parts/_stock_parts.dm b/code/game/machinery/_machines_base/stock_parts/_stock_parts.dm index f4aab2938f7e..7ce4792bc9fa 100644 --- a/code/game/machinery/_machines_base/stock_parts/_stock_parts.dm +++ b/code/game/machinery/_machines_base/stock_parts/_stock_parts.dm @@ -109,3 +109,13 @@ if(istype(M) && (src in M.component_parts)) return ..() + +/// Alt-click interactions provided to our parent machine. +/obj/item/stock_parts/proc/get_machine_alt_interactions(mob/user) + SHOULD_CALL_PARENT(TRUE) + SHOULD_BE_PURE(TRUE) + RETURN_TYPE(/list) + . = list() + +/// A stub for showing messages based on part status when a machine is examined. +/obj/item/stock_parts/proc/on_machine_examined(mob/user) \ No newline at end of file diff --git a/code/game/machinery/_machines_base/stock_parts/card_reader.dm b/code/game/machinery/_machines_base/stock_parts/card_reader.dm index f78430de17d5..aecd5af4e4f9 100644 --- a/code/game/machinery/_machines_base/stock_parts/card_reader.dm +++ b/code/game/machinery/_machines_base/stock_parts/card_reader.dm @@ -14,6 +14,7 @@ /decl/material/solid/fiberglass = MATTER_AMOUNT_TRACE, ) max_health = ITEM_HEALTH_NO_DAMAGE + eject_handler = /decl/interaction_handler/remove_held_item/card var/should_swipe = FALSE //Whether the card should only be swiped instead of being inserted var/obj/item/card/inserted_card //Card currently in the slot @@ -67,3 +68,9 @@ /obj/item/stock_parts/item_holder/card_reader/proc/get_emag_card() return istype(inserted_card, /obj/item/card/emag) ? inserted_card : null + +/decl/interaction_handler/remove_held_item/card + name = "Eject Card" + icon = 'icons/screen/radial.dmi' + icon_state = "radial_eject_id" + expected_component_type = /obj/item/stock_parts/item_holder/card_reader \ No newline at end of file diff --git a/code/game/machinery/_machines_base/stock_parts/cupholder.dm b/code/game/machinery/_machines_base/stock_parts/cupholder.dm new file mode 100644 index 000000000000..23f56f7772cb --- /dev/null +++ b/code/game/machinery/_machines_base/stock_parts/cupholder.dm @@ -0,0 +1,50 @@ +/obj/item/stock_parts/item_holder/cupholder + name = "cupholder" + desc = "A holder for cups." + icon = 'icons/obj/items/stock_parts/modular_components.dmi' + icon_state = "cupholder" + material = /decl/material/solid/organic/plastic + part_flags = PART_FLAG_HAND_REMOVE + place_verb = "place" + eject_handler = /decl/interaction_handler/remove_held_item/cup + var/image/cupholder_overlay + var/obj/item/cup + +/obj/item/stock_parts/item_holder/cupholder/Destroy() + QDEL_NULL(cup) + . = ..() + +/obj/item/stock_parts/item_holder/cupholder/is_item_inserted() + return !isnull(cup) + +/obj/item/stock_parts/item_holder/cupholder/is_accepted_type(obj/O) + var/static/allowed_cup_types + if(!allowed_cup_types) + allowed_cup_types = typecacheof(list( + /obj/item/chems/drinks/cans, + /obj/item/chems/drinks/bottle, + /obj/item/chems/glass/bottle, + /obj/item/chems/drinks/juicebox, + /obj/item/chems/drinks/glass2, + /obj/item/chems/drinks/h_chocolate, + /obj/item/chems/drinks/dry_ramen, + /obj/item/chems/drinks/tea, + /obj/item/chems/glass/handmade/cup, + /obj/item/chems/glass/handmade/mug, + /obj/item/chems/drinks/shaker, + /obj/item/chems/drinks/flask + )) + return is_type_in_typecache(O, allowed_cup_types) + +/obj/item/stock_parts/item_holder/cupholder/get_inserted() + return cup + +/obj/item/stock_parts/item_holder/cupholder/set_inserted(obj/O) + cup = O + +/obj/item/stock_parts/item_holder/cupholder/get_description_insertable() + return "cup" + +/decl/interaction_handler/remove_held_item/cup + name = "Remove Cup" + expected_component_type = /obj/item/stock_parts/item_holder/cupholder \ No newline at end of file diff --git a/code/game/machinery/_machines_base/stock_parts/disk_reader.dm b/code/game/machinery/_machines_base/stock_parts/disk_reader.dm index eb6a5b8fe72a..e61cf6be322d 100644 --- a/code/game/machinery/_machines_base/stock_parts/disk_reader.dm +++ b/code/game/machinery/_machines_base/stock_parts/disk_reader.dm @@ -14,6 +14,7 @@ /decl/material/solid/fiberglass = MATTER_AMOUNT_REINFORCEMENT, ) max_health = ITEM_HEALTH_NO_DAMAGE + eject_handler = /decl/interaction_handler/remove_held_item/disk var/obj/item/disk/disk //Disk currently inserted /obj/item/stock_parts/item_holder/disk_reader/buildable @@ -38,3 +39,7 @@ /obj/item/stock_parts/item_holder/disk_reader/get_description_insertable() return "disk" + +/decl/interaction_handler/remove_held_item/disk + name = "Eject Disk" + expected_component_type = /obj/item/stock_parts/item_holder/disk_reader \ No newline at end of file diff --git a/code/game/machinery/_machines_base/stock_parts/item_holder.dm b/code/game/machinery/_machines_base/stock_parts/item_holder.dm index 170d90d0f392..3462f18f5605 100644 --- a/code/game/machinery/_machines_base/stock_parts/item_holder.dm +++ b/code/game/machinery/_machines_base/stock_parts/item_holder.dm @@ -5,8 +5,12 @@ name = null desc = null icon = 'icons/obj/items/stock_parts/modular_components.dmi' + var/decl/interaction_handler/eject_handler // The interaction handler type used for alt-interactions. var/datum/callback/on_insert_target //Callback to call when an item is inserted var/datum/callback/on_eject_target //Callback to call when an item is ejected + /// The verb used when a player inserts an item. + /// e.g. You [insert/place/attach] the cup in the cupholder. + var/place_verb = "insert" /obj/item/stock_parts/item_holder/Destroy() unregister_on_insert() @@ -38,6 +42,10 @@ /obj/item/stock_parts/item_holder/proc/get_inserted() return +/obj/item/stock_parts/item_holder/on_machine_examined(mob/user) + if(is_item_inserted()) + to_chat(user, SPAN_INFO("It has \a [get_inserted()] in \the [src].")) + ///Handle putting the object in the component's contents. Doesn't trigger any callbacks, or messages. /obj/item/stock_parts/item_holder/proc/set_inserted(var/obj/O) return @@ -55,7 +63,7 @@ if(user) if(user.try_unequip(O, src)) - to_chat(user, SPAN_NOTICE("You insert \the [O] into \the [src].")) + to_chat(user, SPAN_NOTICE("You [place_verb] \the [O] into \the [src].")) else return FALSE else @@ -75,7 +83,7 @@ return var/obj/O = get_inserted() - if(user) + if(user && loc.Adjacent(user)) // Check adjacency in case this is called via UI stuff from a distance. user.put_in_hands(O) to_chat(user, SPAN_NOTICE("You remove \the [O] from \the [src].")) else @@ -111,4 +119,40 @@ QDEL_NULL(on_insert_target) /obj/item/stock_parts/item_holder/proc/unregister_on_eject() - QDEL_NULL(on_eject_target) \ No newline at end of file + QDEL_NULL(on_eject_target) + +// Alt interaction handling +/decl/interaction_handler/remove_held_item + abstract_type = /decl/interaction_handler/remove_held_item + expected_target_type = /obj/machinery + name = "Eject Item" + icon = 'icons/screen/radial.dmi' + icon_state = "radial_eject" + var/obj/item/stock_parts/item_holder/expected_component_type + +/decl/interaction_handler/remove_held_item/validate() + . = ..() + if(!ispath(expected_component_type)) + . += "Expected component type was [isnull(expected_component_type) ? "NULL" : expected_component_type], expected /obj/item/stock_parts/item_holder subtype" + +/decl/interaction_handler/remove_held_item/is_possible(atom/target, mob/user, obj/item/prop) + . = ..() + if(.) + var/obj/machinery/target_machine = target + // Check all components, not just the first one. Maybe we have multiple! + for(var/obj/item/stock_parts/item_holder/holder in target_machine.get_all_components_of_type(expected_component_type)) + if(holder.is_item_inserted()) + return TRUE + +/decl/interaction_handler/remove_held_item/invoked(atom/target, mob/user, obj/item/prop) + var/obj/machinery/target_machine = target + // Check all components, not just the first one. Maybe we have multiple! + for(var/obj/item/stock_parts/item_holder/holder in target_machine.get_all_components_of_type(expected_component_type)) + if(holder.is_item_inserted()) + holder.eject_item(user) + return + +/obj/item/stock_parts/item_holder/get_machine_alt_interactions(mob/user) + . = ..() + if(ispath(eject_handler)) + LAZYADD(., eject_handler) diff --git a/code/game/machinery/doors/_door.dm b/code/game/machinery/doors/_door.dm index 356db05a3faa..cc2a3c8adf4b 100644 --- a/code/game/machinery/doors/_door.dm +++ b/code/game/machinery/doors/_door.dm @@ -325,7 +325,7 @@ return 1 /obj/machinery/door/bash(obj/item/weapon, mob/user) - if(isliving(user) && user.a_intent != I_HURT) + if(isliving(user) && !user.check_intent(I_FLAG_HARM)) return FALSE if(!weapon.user_can_attack_with(user)) return FALSE diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 65f6f87a1765..c9149697a668 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -783,7 +783,7 @@ About the new airlock wires panel: close(1) return TRUE - if(istype(C, /obj/item/bladed/axe/fire) && !arePowerSystemsOn() && !(user.a_intent == I_HURT)) + if(istype(C, /obj/item/bladed/axe/fire) && !arePowerSystemsOn() && !(user.check_intent(I_FLAG_HARM))) var/obj/item/bladed/axe/fire/F = C if(F.is_held_twohanded(user)) if(locked) @@ -820,7 +820,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/bash(obj/item/weapon, mob/user) //if door is unbroken, hit with fire axe using harm intent - if (istype(weapon, /obj/item/bladed/axe/fire) && !(stat & BROKEN) && user.a_intent == I_HURT && weapon.user_can_attack_with(user)) + if (istype(weapon, /obj/item/bladed/axe/fire) && !(stat & BROKEN) && user.check_intent(I_FLAG_HARM) && weapon.user_can_attack_with(user)) user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) var/obj/item/bladed/axe/fire/F = weapon if (F.is_held_twohanded()) diff --git a/code/game/machinery/floor_light.dm b/code/game/machinery/floor_light.dm index 65fef9d81f1e..b6fefd1fe27b 100644 --- a/code/game/machinery/floor_light.dm +++ b/code/game/machinery/floor_light.dm @@ -58,13 +58,13 @@ var/global/list/floor_light_cache = list() qdel(src) return TRUE - if(W.get_attack_force(user) && user.a_intent == I_HURT) + if(W.get_attack_force(user) && user.check_intent(I_FLAG_HARM)) return physical_attack_hand(user) return ..() /obj/machinery/floor_light/physical_attack_hand(var/mob/user) - if(user.a_intent == I_HURT && !issmall(user)) + if(user.check_intent(I_FLAG_HARM) && !issmall(user)) if(!isnull(damaged) && !(stat & BROKEN)) visible_message(SPAN_DANGER("\The [user] smashes \the [src]!")) playsound(src, "shatter", 70, 1) diff --git a/code/game/machinery/kitchen/drying_oven.dm b/code/game/machinery/kitchen/drying_oven.dm index 7c2a310b1123..e69de29bb2d1 100644 --- a/code/game/machinery/kitchen/drying_oven.dm +++ b/code/game/machinery/kitchen/drying_oven.dm @@ -1,45 +0,0 @@ -/obj/machinery/smartfridge/drying_oven - name = "drying oven" - desc = "A machine for drying plants." - icon_state = "drying_rack" - icon_base = "drying_rack" - obj_flags = OBJ_FLAG_ANCHORABLE - atom_flags = ATOM_FLAG_CLIMBABLE - -/obj/machinery/smartfridge/drying_oven/accept_check(var/obj/item/O) - return istype(O) && O.is_dryable() - -/obj/machinery/smartfridge/drying_oven/Process() - ..() - if(inoperable()) - return - var/do_update = FALSE - for(var/obj/item/thing in get_contained_external_atoms()) - var/obj/item/product = thing.dry_out(src, silent = TRUE) - if(product) - product.dropInto(loc) - do_update = TRUE - if(QDELETED(thing) || !(thing in contents)) - for(var/datum/stored_items/I in item_records) - I.instances -= thing - if(do_update) - update_icon() - -/obj/machinery/smartfridge/drying_oven/on_update_icon() - ..() - var/has_items = FALSE - for(var/datum/stored_items/I in item_records) - if(I.get_amount()) - has_items = TRUE - break - if(inoperable()) - if(has_items) - icon_state = "[icon_base]-plant-off" - else - icon_state = "[icon_base]-off" - else if(has_items) - icon_state = "[icon_base]-plant" - if(!inoperable()) - icon_state = "[icon_base]-close" - else - icon_state = icon_base diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/smartfridge/_smartfridge.dm similarity index 59% rename from code/game/machinery/kitchen/smartfridge.dm rename to code/game/machinery/smartfridge/_smartfridge.dm index e9020da7cf04..28f51fab493c 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/smartfridge/_smartfridge.dm @@ -3,8 +3,8 @@ */ /obj/machinery/smartfridge name = "\improper SmartFridge" - icon = 'icons/obj/vending.dmi' - icon_state = "fridge_sci" + icon = 'icons/obj/machines/smartfridges/science.dmi' + icon_state = ICON_STATE_WORLD layer = BELOW_OBJ_LAYER density = TRUE anchored = TRUE @@ -14,9 +14,11 @@ obj_flags = OBJ_FLAG_ANCHORABLE | OBJ_FLAG_ROTATABLE atmos_canpass = CANPASS_NEVER required_interaction_dexterity = DEXTERITY_SIMPLE_MACHINES + construct_state = /decl/machine_construction/default/panel_closed + uncreated_component_parts = null + stat_immune = 0 - var/icon_base = "fridge_sci" - var/icon_contents = "chem" + var/overlay_contents_icon = 'icons/obj/machines/smartfridges/contents_chem.dmi' var/list/item_records = list() var/seconds_electrified = 0; var/shoot_inventory = 0 @@ -24,13 +26,6 @@ var/scan_id = 1 var/is_secure = 0 - construct_state = /decl/machine_construction/default/panel_closed - uncreated_component_parts = null - stat_immune = 0 - -/obj/machinery/smartfridge/secure - is_secure = 1 - /obj/machinery/smartfridge/Initialize() if(is_secure) wires = new/datum/wires/smartfridge/secure(src) @@ -55,75 +50,6 @@ return 1 return 0 -/obj/machinery/smartfridge/seeds - name = "\improper MegaSeed Servitor" - desc = "When you need seeds fast!" - -/obj/machinery/smartfridge/seeds/accept_check(var/obj/item/O) - if(istype(O,/obj/item/seeds/)) - return 1 - return 0 - -/obj/machinery/smartfridge/secure/medbay - name = "\improper Refrigerated Medicine Storage" - desc = "A refrigerated storage unit for storing medicine and chemicals." - icon_contents = "chem" - initial_access = list(list(access_medical, access_chemistry)) - -/obj/machinery/smartfridge/secure/medbay/accept_check(var/obj/item/O) - if(istype(O,/obj/item/chems/glass)) - return 1 - if(istype(O,/obj/item/pill_bottle)) - return 1 - if(istype(O,/obj/item/chems/pill)) - return 1 - return 0 - -/obj/machinery/smartfridge/produce - name = "produce smartfridge" - desc = "A refrigerated storage unit for fruits and vegetables." - -/obj/machinery/smartfridge/produce/accept_check(var/obj/item/O) - return istype(O, /obj/item/food/grown) - -/obj/machinery/smartfridge/sheets - name = "raw material storage" - desc = "A storage unit for bundles of material sheets, ingots and other shapes." - -/obj/machinery/smartfridge/sheets/accept_check(var/obj/item/O) - return istype(O, /obj/item/stack/material) - -/obj/machinery/smartfridge/chemistry - name = "\improper Smart Chemical Storage" - desc = "A refrigerated storage unit for medicine and chemical storage." - icon_contents = "chem" - -/obj/machinery/smartfridge/chemistry/accept_check(var/obj/item/O) - if(istype(O,/obj/item/pill_bottle) || istype(O,/obj/item/chems)) - return 1 - return 0 - -/obj/machinery/smartfridge/drinks - name = "\improper Drink Showcase" - desc = "A refrigerated storage unit for tasty tasty alcohol." - icon_state = "fridge_dark" - icon_base = "fridge_dark" - icon_contents = "drink" - -/obj/machinery/smartfridge/drinks/accept_check(var/obj/item/O) - if(istype(O,/obj/item/chems/glass) || istype(O,/obj/item/chems/drinks) || istype(O,/obj/item/chems/condiment)) - return 1 - -/obj/machinery/smartfridge/foods - name = "\improper Hot Foods Display" - desc = "A heated storage unit for piping hot meals." - icon_state = "fridge_food" - icon_contents = "food" - -/obj/machinery/smartfridge/foods/accept_check(var/obj/item/O) - if(istype(O,/obj/item/food) || istype(O,/obj/item/utensil)) - return 1 - /obj/machinery/smartfridge/Process() if(stat & (BROKEN|NOPOWER)) return @@ -133,42 +59,61 @@ src.throw_item() /obj/machinery/smartfridge/on_update_icon() - overlays.Cut() - if(stat & (BROKEN|NOPOWER)) - icon_state = "[icon_base]-off" - else - icon_state = icon_base + // Reset our icon_state and overlays. + icon_state = initial(icon_state) + cut_overlays() // Does not appear to be called lower down the chain, sadly. + + // Draw our side panel overlay (for access checking) + var/draw_state if(is_secure) - overlays += image(icon, "[icon_base]-sidepanel") + if(stat & BROKEN) + draw_state = "[icon_state]-sidepanel-broken" + else + draw_state = "[icon_state]-sidepanel" + if(check_state_in_icon(draw_state, icon)) + add_overlay(draw_state) + // Draw our panel overlay. if(panel_open) - overlays += image(icon, "[icon_base]-panel") - - var/image/I - var/is_off = "" - if(inoperable()) - is_off = "-off" + draw_state = "[icon_state]-panel" + if(check_state_in_icon(draw_state, icon)) + add_overlay(draw_state) // Fridge contents - switch(contents.len - LAZYLEN(component_parts)) - if(0) - I = image(icon, "empty[is_off]") - if(1 to 2) - I = image(icon, "[icon_contents]-1[is_off]") - if(3 to 5) - I = image(icon, "[icon_contents]-2[is_off]") - if(6 to 8) - I = image(icon, "[icon_contents]-3[is_off]") - else - I = image(icon, "[icon_contents]-4[is_off]") - overlays += I + if(overlay_contents_icon) + var/is_off = inoperable() ? "-off" : "" + switch(contents.len - LAZYLEN(component_parts)) + if(0) + draw_state = "empty[is_off]" + if(1 to 2) + draw_state = "1[is_off]" + if(3 to 5) + draw_state = "2[is_off]" + if(6 to 8) + draw_state = "3[is_off]" + else + draw_state = "4[is_off]" + if(draw_state && check_state_in_icon(draw_state, icon)) + add_overlay(image(overlay_contents_icon, draw_state)) // Fridge top - I = image(icon, "[icon_base]-top") - I.pixel_z = 32 - I.layer = ABOVE_WINDOW_LAYER - overlays += I + if(stat & BROKEN) + draw_state = "[draw_state]-top-broken" + else + draw_state = "[icon_state]-top" + + if(check_state_in_icon(draw_state, icon)) + var/image/I = image(icon, draw_state) + I.pixel_z = 32 + I.layer = ABOVE_WINDOW_LAYER + add_overlay(I) + + // Append our off state if needed. + if(stat & BROKEN) + icon_state = "[icon_state]-broken" + else if(stat & NOPOWER) + icon_state = "[icon_state]-off" /obj/machinery/smartfridge/dismantle() for(var/datum/stored_items/I in item_records) @@ -208,14 +153,6 @@ return TRUE return ..() -/obj/machinery/smartfridge/secure/emag_act(var/remaining_charges, var/mob/user) - if(!emagged) - emagged = 1 - locked = -1 - req_access.Cut() - to_chat(user, "You short out the product lock on [src].") - return 1 - /obj/machinery/smartfridge/proc/stock_item(var/obj/item/O) for(var/datum/stored_items/I in item_records) if(istype(O, I.item_path) && O.name == I.item_name) @@ -288,7 +225,9 @@ for(var/i = 1 to amount) I.get_product(get_turf(src)) update_icon() - + var/vend_state = "[icon_state]-vend" + if (check_state_in_icon(vend_state, icon)) //Show the vending animation if needed + flick(vend_state, src) return 1 return 0 @@ -311,12 +250,3 @@ update_icon() return 1 -/************************ -* Secure SmartFridges -*************************/ - -/obj/machinery/smartfridge/secure/CanUseTopic(mob/user, datum/topic_state/state, href_list) - if(!allowed(user) && !emagged && locked != -1 && href_list && href_list["vend"] && scan_id) - to_chat(user, "Access denied.") - return STATUS_CLOSE - return ..() \ No newline at end of file diff --git a/code/game/machinery/smartfridge/_smartfridge_secure.dm b/code/game/machinery/smartfridge/_smartfridge_secure.dm new file mode 100644 index 000000000000..25ba47725b70 --- /dev/null +++ b/code/game/machinery/smartfridge/_smartfridge_secure.dm @@ -0,0 +1,22 @@ +/************************ +* Secure SmartFridges +*************************/ +/obj/machinery/smartfridge/secure + is_secure = 1 + +/obj/machinery/smartfridge/secure/CanUseTopic(mob/user, datum/topic_state/state, href_list) + if(!allowed(user) && !emagged && locked != -1 && href_list && href_list["vend"] && scan_id) + to_chat(user, SPAN_WARNING("Access denied.")) + var/vend_state = "[icon_state]-deny" + if (check_state_in_icon(vend_state, icon)) //Show the vending animation if needed + flick(vend_state, src) + return STATUS_CLOSE + return ..() + +/obj/machinery/smartfridge/secure/emag_act(var/remaining_charges, var/mob/user) + if(!emagged) + emagged = 1 + locked = -1 + req_access.Cut() + to_chat(user, SPAN_NOTICE("You short out the product lock on \the [src].")) + return 1 diff --git a/code/game/machinery/smartfridge/chemistry.dm b/code/game/machinery/smartfridge/chemistry.dm new file mode 100644 index 000000000000..486a812d2816 --- /dev/null +++ b/code/game/machinery/smartfridge/chemistry.dm @@ -0,0 +1,9 @@ +/obj/machinery/smartfridge/chemistry + name = "\improper Smart Chemical Storage" + desc = "A refrigerated storage unit for medicine and chemical storage." + overlay_contents_icon = 'icons/obj/machines/smartfridges/contents_chem.dmi' + +/obj/machinery/smartfridge/chemistry/accept_check(var/obj/item/O) + if(istype(O,/obj/item/pill_bottle) || istype(O,/obj/item/chems)) + return 1 + return 0 diff --git a/code/game/machinery/smartfridge/drinks.dm b/code/game/machinery/smartfridge/drinks.dm new file mode 100644 index 000000000000..f90f23e2d4b0 --- /dev/null +++ b/code/game/machinery/smartfridge/drinks.dm @@ -0,0 +1,9 @@ +/obj/machinery/smartfridge/drinks + name = "\improper Drink Showcase" + desc = "A refrigerated storage unit for tasty tasty alcohol." + icon = 'icons/obj/machines/smartfridges/dark.dmi' + overlay_contents_icon = 'icons/obj/machines/smartfridges/contents_drink.dmi' + +/obj/machinery/smartfridge/drinks/accept_check(var/obj/item/O) + if(istype(O,/obj/item/chems/glass) || istype(O,/obj/item/chems/drinks) || istype(O,/obj/item/chems/condiment)) + return 1 diff --git a/code/game/machinery/smartfridge/drying_oven.dm b/code/game/machinery/smartfridge/drying_oven.dm new file mode 100644 index 000000000000..ece54b6c8c3a --- /dev/null +++ b/code/game/machinery/smartfridge/drying_oven.dm @@ -0,0 +1,35 @@ +/obj/machinery/smartfridge/drying_oven + name = "drying oven" + desc = "A machine for drying plants." + icon = 'icons/obj/machines/smartfridges/drying_oven.dmi' + overlay_contents_icon = 'icons/obj/machines/smartfridges/contents_plants.dmi' + obj_flags = OBJ_FLAG_ANCHORABLE + atom_flags = ATOM_FLAG_CLIMBABLE + +/obj/machinery/smartfridge/drying_oven/accept_check(var/obj/item/O) + return istype(O) && O.is_dryable() + +/obj/machinery/smartfridge/drying_oven/Process() + ..() + if(inoperable()) + return + var/do_update = FALSE + for(var/obj/item/thing in get_contained_external_atoms()) + var/obj/item/product = thing.dry_out(src, silent = TRUE) + if(product) + product.dropInto(loc) + do_update = TRUE + if(QDELETED(thing) || !(thing in contents)) + for(var/datum/stored_items/I in item_records) + I.instances -= thing + if(do_update) + update_icon() + +/obj/machinery/smartfridge/drying_oven/on_update_icon() + if(!inoperable()) + for(var/datum/stored_items/I in item_records) + if(I.get_amount()) + cut_overlays() + icon_state = "[initial(icon_state)]-closed" + return + return ..() diff --git a/code/game/machinery/smartfridge/foods.dm b/code/game/machinery/smartfridge/foods.dm new file mode 100644 index 000000000000..1d3cf0d5b89e --- /dev/null +++ b/code/game/machinery/smartfridge/foods.dm @@ -0,0 +1,14 @@ +/obj/machinery/smartfridge/foods + name = "\improper Hot Foods Display" + desc = "A heated storage unit for piping hot meals." + icon = 'icons/obj/machines/smartfridges/food.dmi' + overlay_contents_icon = 'icons/obj/machines/smartfridges/contents_food.dmi' + +/obj/machinery/smartfridge/foods/accept_check(var/obj/item/O) + var/static/list/_food_types = list( + /obj/item/food, + /obj/item/utensil, + /obj/item/chems/glass/bowl, + /obj/item/chems/glass/handmade/bowl + ) + return istype(O) && O.reagents?.total_volume && is_type_in_list(O, _food_types) diff --git a/code/game/machinery/smartfridge/medbay.dm b/code/game/machinery/smartfridge/medbay.dm new file mode 100644 index 000000000000..c1361990e87a --- /dev/null +++ b/code/game/machinery/smartfridge/medbay.dm @@ -0,0 +1,15 @@ + +/obj/machinery/smartfridge/secure/medbay + name = "\improper Refrigerated Medicine Storage" + desc = "A refrigerated storage unit for storing medicine and chemicals." + overlay_contents_icon = 'icons/obj/machines/smartfridges/contents_chem.dmi' + initial_access = list(list(access_medical, access_chemistry)) + +/obj/machinery/smartfridge/secure/medbay/accept_check(var/obj/item/O) + if(istype(O,/obj/item/chems/glass)) + return 1 + if(istype(O,/obj/item/pill_bottle)) + return 1 + if(istype(O,/obj/item/chems/pill)) + return 1 + return 0 diff --git a/code/game/machinery/smartfridge/produce.dm b/code/game/machinery/smartfridge/produce.dm new file mode 100644 index 000000000000..b7ef607b1b5d --- /dev/null +++ b/code/game/machinery/smartfridge/produce.dm @@ -0,0 +1,6 @@ +/obj/machinery/smartfridge/produce + name = "produce smartfridge" + desc = "A refrigerated storage unit for fruits and vegetables." + +/obj/machinery/smartfridge/produce/accept_check(var/obj/item/O) + return istype(O, /obj/item/food/grown) diff --git a/code/game/machinery/smartfridge/seeds.dm b/code/game/machinery/smartfridge/seeds.dm new file mode 100644 index 000000000000..9aa1259e5283 --- /dev/null +++ b/code/game/machinery/smartfridge/seeds.dm @@ -0,0 +1,8 @@ +/obj/machinery/smartfridge/seeds + name = "\improper MegaSeed Servitor" + desc = "When you need seeds fast!" + +/obj/machinery/smartfridge/seeds/accept_check(var/obj/item/O) + if(istype(O,/obj/item/seeds/)) + return 1 + return 0 diff --git a/code/game/machinery/smartfridge/sheets.dm b/code/game/machinery/smartfridge/sheets.dm new file mode 100644 index 000000000000..a1e9c3be5f84 --- /dev/null +++ b/code/game/machinery/smartfridge/sheets.dm @@ -0,0 +1,6 @@ +/obj/machinery/smartfridge/sheets + name = "raw material storage" + desc = "A storage unit for bundles of material sheets, ingots and other shapes." + +/obj/machinery/smartfridge/sheets/accept_check(var/obj/item/O) + return istype(O, /obj/item/stack/material) diff --git a/code/game/machinery/vending/_vending.dm b/code/game/machinery/vending/_vending.dm index fc318b706478..7f4d8694c6c0 100644 --- a/code/game/machinery/vending/_vending.dm +++ b/code/game/machinery/vending/_vending.dm @@ -4,8 +4,8 @@ /obj/machinery/vending name = "Vendomat" desc = "A generic vending machine." - icon = 'icons/obj/vending.dmi' - icon_state = "generic" + icon = 'icons/obj/machines/vending/generic.dmi' + icon_state = ICON_STATE_WORLD layer = BELOW_OBJ_LAYER anchored = TRUE density = TRUE @@ -20,9 +20,6 @@ wires = /datum/wires/vending required_interaction_dexterity = DEXTERITY_SIMPLE_MACHINES - var/icon_vend //Icon_state when vending - var/icon_deny //Icon_state when denying access - // Power var/vend_power_usage = 150 //actuators and stuff @@ -144,7 +141,7 @@ return 1 /obj/machinery/vending/receive_mouse_drop(atom/dropping, mob/user, params) - if(!(. = ..()) && isitem(dropping) && istype(user) && user.a_intent == I_HELP && CanPhysicallyInteract(user)) + if(!(. = ..()) && isitem(dropping) && istype(user) && user.check_intent(I_FLAG_HELP) && CanPhysicallyInteract(user)) return attempt_to_stock(dropping, user) /obj/machinery/vending/attackby(obj/item/W, mob/user) @@ -186,7 +183,7 @@ if((. = component_attackby(W, user))) return - if((user.a_intent == I_HELP) && attempt_to_stock(W, user)) + if((user.check_intent(I_FLAG_HELP)) && attempt_to_stock(W, user)) return TRUE if((obj_flags & OBJ_FLAG_ANCHORABLE) && (IS_WRENCH(W) || IS_HAMMER(W))) @@ -359,8 +356,11 @@ return if((!allowed(user)) && !emagged && scan_id) //For SECURE VENDING MACHINES YEAH to_chat(user, "Access denied.")//Unless emagged of course - flick(icon_deny,src) + var/deny_state = "[icon_state]-deny" + if(check_state_in_icon(deny_state, icon)) + flick(deny_state, src) return + vend_ready = 0 //One thing at a time!! status_message = "Vending..." status_error = 0 @@ -369,8 +369,9 @@ do_vending_reply() use_power_oneoff(vend_power_usage) //actuators and stuff - if (icon_vend) //Show the vending animation if needed - flick(icon_vend,src) + var/vend_state = "[icon_state]-vend" + if (check_state_in_icon(vend_state, icon)) //Show the vending animation if needed + flick(vend_state, src) addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/vending, finish_vending), R), vend_delay) /obj/machinery/vending/proc/do_vending_reply() diff --git a/code/game/machinery/vending/actors.dm b/code/game/machinery/vending/actors.dm index 6ab863b7612d..0dac1d09962a 100644 --- a/code/game/machinery/vending/actors.dm +++ b/code/game/machinery/vending/actors.dm @@ -3,9 +3,7 @@ /obj/machinery/vending/props name = "prop dispenser" desc = "All the props an actor could need. Probably." - icon_state = "theater" - icon_vend = "theater-vend" - icon_deny = "theater-deny" + icon = 'icons/obj/machines/vending/theater.dmi' products = list( /obj/structure/flora/pottedplant = 2, /obj/item/flashlight/lamp = 2, @@ -24,7 +22,7 @@ /obj/machinery/vending/containers name = "container dispenser" desc = "A container that dispenses containers." - icon_state = "robotics" + icon = 'icons/obj/machines/vending/robotics.dmi' base_type = /obj/machinery/vending/containers products = list( /obj/structure/closet/crate/freezer = 2, diff --git a/code/game/machinery/vending/botany.dm b/code/game/machinery/vending/botany.dm index 9f29ac496edc..b1042ee71ea8 100644 --- a/code/game/machinery/vending/botany.dm +++ b/code/game/machinery/vending/botany.dm @@ -4,9 +4,7 @@ desc = "A plant nutrients vendor." product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." - icon_state = "nutri" - icon_deny = "nutri-deny" - icon_vend = "nutri-vend" + icon = 'icons/obj/machines/vending/nutrimat.dmi' vend_delay = 26 base_type = /obj/machinery/vending/hydronutrients products = list( @@ -22,18 +20,14 @@ markup = 0 /obj/machinery/vending/hydronutrients/generic - icon_state = "nutri_generic" - icon_vend = "nutri_generic-vend" - icon_deny = "nutri_generic-deny" + icon = 'icons/obj/machines/vending/nutri_green.dmi' /obj/machinery/vending/hydroseeds name = "MegaSeed Servitor" desc = "When you need seeds fast!" product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection this half of the galaxy!;Also certain mushroom varieties available, more for experts! Get certified today!" product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!" - icon_state = "seeds" - icon_vend = "seeds-vend" - icon_deny = "seeds-deny" + icon = 'icons/obj/machines/vending/seeds_green.dmi' vend_delay = 13 base_type = /obj/machinery/vending/hydroseeds markup = 0 @@ -85,6 +79,4 @@ ) /obj/machinery/vending/hydroseeds/generic - icon_state = "seeds_generic" - icon_vend = "seeds_generic-vend" - icon_deny = "seeds_generic-deny" + icon = 'icons/obj/machines/vending/seeds_grey.dmi' diff --git a/code/game/machinery/vending/cigs.dm b/code/game/machinery/vending/cigs.dm index b54fa328b69c..e5cb5a43b02b 100644 --- a/code/game/machinery/vending/cigs.dm +++ b/code/game/machinery/vending/cigs.dm @@ -21,9 +21,7 @@ We understand the depressed, alcoholic cowboy in you. That's why we also smoke Jericho.;\ Professionals. Better cigarettes for better people. Yes, better people." vend_delay = 21 - icon_state = "cigs" - icon_vend = "cigs-vend" - icon_deny = "cigs-deny" + icon = 'icons/obj/machines/vending/cigarettes.dmi' base_type = /obj/machinery/vending/cigarette products = list( /obj/item/cigpaper/filters = 5, diff --git a/code/game/machinery/vending/engineering.dm b/code/game/machinery/vending/engineering.dm index d23ee004bdbd..6eda475db41f 100644 --- a/code/game/machinery/vending/engineering.dm +++ b/code/game/machinery/vending/engineering.dm @@ -2,9 +2,7 @@ name = "YouTool" desc = "Tools for tools." markup = 0 - icon_state = "tool" - icon_deny = "tool-deny" - icon_vend = "tool-vend" + icon = 'icons/obj/machines/vending/tool.dmi' vend_delay = 11 base_type = /obj/machinery/vending/tool products = list( @@ -29,9 +27,7 @@ /obj/machinery/vending/engivend name = "Engi-Vend" desc = "Spare tool vending. What? Did you expect some witty description?" - icon_state = "engivend" - icon_deny = "engivend-deny" - icon_vend = "engivend-vend" + icon = 'icons/obj/machines/vending/engivend.dmi' markup = 0 vend_delay = 21 base_type = /obj/machinery/vending/engivend @@ -52,9 +48,7 @@ /obj/machinery/vending/engineering name = "Robco Tool Maker" desc = "Everything you need for do-it-yourself repair." - icon_state = "engi" - icon_deny = "engi-deny" - icon_vend = "engi-vend" + icon = 'icons/obj/machines/vending/engivend.dmi' base_type = /obj/machinery/vending/engineering markup = 0 initial_access = list(access_atmospherics, access_engine_equip) @@ -87,9 +81,7 @@ /obj/machinery/vending/robotics name = "Robotech Deluxe" desc = "All the tools you need to create your own robot army." - icon_state = "robotics" - icon_deny = "robotics-deny" - icon_vend = "robotics-vend" + icon = 'icons/obj/machines/vending/robotics.dmi' initial_access = list(access_robotics) base_type = /obj/machinery/vending/robotics products = list( @@ -108,9 +100,7 @@ /obj/machinery/vending/materials name = "MatterVend" desc = "Provides access to baryonic matter in easy to handle sheet form." - icon_state = "engivend" - icon_deny = "engivend-deny" - icon_vend = "engivend-vend" + icon = 'icons/obj/machines/vending/engivend.dmi' markup = 0 vend_delay = 21 base_type = /obj/machinery/vending/materials diff --git a/code/game/machinery/vending/food.dm b/code/game/machinery/vending/food.dm index c435303b96ad..8abc07f5536a 100644 --- a/code/game/machinery/vending/food.dm +++ b/code/game/machinery/vending/food.dm @@ -4,9 +4,7 @@ desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars." product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" - icon_state = "snack" - icon_vend = "snack-vend" - icon_deny = "snack-deny" + icon = 'icons/obj/machines/vending/snacks.dmi' vend_delay = 25 base_type = /obj/machinery/vending/snack products = list( @@ -33,10 +31,7 @@ vend_delay = 30 base_type = /obj/machinery/vending/snix product_slogans = "Snix!" - - icon_state = "snix" - icon_vend = "snix-vend" - icon_deny = "snix-deny" + icon = 'icons/obj/machines/vending/snix.dmi' products = list(/obj/item/food/junk/semki = 7, /obj/item/food/can/caviar = 7, /obj/item/food/junk/squid = 7, @@ -58,9 +53,7 @@ desc = "A SolCentric vending machine dispensing treats from home." vend_delay = 30 product_slogans = "A taste of home!" - icon_state = "solsnack" - icon_vend = "solsnack-vend" - icon_deny = "solsnack-deny" + icon = 'icons/obj/machines/vending/solsnacks.dmi' products = list( /obj/item/food/junk/lunacake = 8, /obj/item/food/junk/lunacake/mochicake = 8, @@ -79,9 +72,7 @@ desc = "A distressingly ethnic vending machine loaded with high sucrose low calorie for lack of better words snacks." vend_delay = 30 product_slogans = "Konnichiwa gaijin senpai! ;Notice me senpai!; Kawaii-desu!" - icon_state = "weeb" - icon_vend = "weeb-vend" - icon_deny = "weeb-deny" + icon = 'icons/obj/machines/vending/weeb.dmi' products = list( /obj/item/food/junk/weebonuts = 8, /obj/item/food/junk/ricecake = 8, @@ -100,10 +91,7 @@ desc = "An old vending machine promising 'hot foods'. You doubt any of its contents are still edible." vend_delay = 40 base_type = /obj/machinery/vending/hotfood - - icon_state = "hotfood" - icon_deny = "hotfood-deny" - icon_vend = "hotfood-vend" + icon = 'icons/obj/machines/vending/hotfood.dmi' products = list(/obj/item/food/old/pizza = 1, /obj/item/food/old/burger = 1, /obj/item/food/old/hamburger = 1, @@ -120,8 +108,7 @@ /obj/machinery/vending/boozeomat name = "Booze-O-Mat" desc = "A refrigerated vending unit for alcoholic beverages and alcoholic beverage accessories." - icon_state = "fridge_dark" - icon_deny = "fridge_dark-deny" + icon = 'icons/obj/machines/vending/bar.dmi' markup = 0 products = list( /obj/item/chems/drinks/glass2/square = 10, @@ -183,9 +170,7 @@ name = "Hot Drinks machine" desc = "A vending machine which dispenses hot drinks and hot drinks accessories." product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies" - icon_state = "coffee" - icon_vend = "coffee-vend" - icon_deny = "coffee-deny" + icon = 'icons/obj/machines/vending/coffee.dmi' vend_delay = 34 base_type = /obj/machinery/vending/coffee idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. @@ -206,7 +191,7 @@ /obj/machinery/vending/coffee/on_update_icon() ..() - if(stat & BROKEN && prob(20)) + if((stat & BROKEN) && prob(20)) icon_state = "[initial(icon_state)]-hellfire" else if(!(stat & NOPOWER)) add_overlay("[initial(icon_state)]-screen") @@ -214,9 +199,7 @@ /obj/machinery/vending/cola name = "Robust Softdrinks" desc = "A softdrink vendor provided by Robust Industries, LLC." - icon_state = "Cola_Machine" - icon_vend = "Cola_Machine-vend" - icon_deny = "Cola_Machine-deny" + icon = 'icons/obj/machines/vending/drinks.dmi' vend_delay = 11 base_type = /obj/machinery/vending/cola product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!" @@ -245,9 +228,7 @@ desc = "An exercise aid and nutrition supplement vendor that preys on your inadequacy." product_slogans = "SweatMAX, get robust!" product_ads = "Pain is just weakness leaving the body!;Run! Your fat is catching up to you;Never forget leg day!;Push out!;This is the only break you get today.;Don't cry, sweat!;Healthy is an outfit that looks good on everybody." - icon_state = "fitness" - icon_vend = "fitness-vend" - icon_deny = "fitness-deny" + icon = 'icons/obj/machines/vending/fitness.dmi' vend_delay = 6 base_type = /obj/machinery/vending/fitness products = list( @@ -272,9 +253,7 @@ /obj/machinery/vending/sovietsoda name = "BODA" desc = "An old soda vending machine. How could this have got here?" - icon_state = "sovietsoda" - icon_vend = "sovietsoda-vend" - icon_deny = "sovietsoda-deny" + icon = 'icons/obj/machines/vending/soviet.dmi' base_type = /obj/machinery/vending/sovietsoda product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." products = list( diff --git a/code/game/machinery/vending/medical.dm b/code/game/machinery/vending/medical.dm index a974f0767da9..4796499cbe39 100644 --- a/code/game/machinery/vending/medical.dm +++ b/code/game/machinery/vending/medical.dm @@ -2,9 +2,7 @@ /obj/machinery/vending/medical name = "NanoMed Plus" desc = "Medical drug dispenser." - icon_state = "med" - icon_deny = "med-deny" - icon_vend = "med-vend" + icon = 'icons/obj/machines/vending/medical.dmi' vend_delay = 18 markup = 0 base_type = /obj/machinery/vending/medical @@ -38,9 +36,7 @@ name = "NanoMed" desc = "A wall-mounted version of the NanoMed." product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?" - icon_state = "wallmed" - icon_deny = "wallmed-deny" - icon_vend = "wallmed-vend" + icon = 'icons/obj/machines/vending/wallmed.dmi' base_type = /obj/machinery/vending/wallmed1 density = FALSE //It is wall-mounted, and thus, not dense. --Superxpdude products = list( @@ -61,9 +57,7 @@ name = "NanoMed Mini" desc = "A wall-mounted version of the NanoMed, containing only vital first aid equipment." product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?" - icon_state = "wallmed" - icon_deny = "wallmed-deny" - icon_vend = "wallmed-vend" + icon = 'icons/obj/machines/vending/wallmed.dmi' density = FALSE //It is wall-mounted, and thus, not dense. --Superxpdude base_type = /obj/machinery/vending/wallmed2 products = list( diff --git a/code/game/machinery/vending/misc.dm b/code/game/machinery/vending/misc.dm index 7fc59e043707..a9386e3930e9 100644 --- a/code/game/machinery/vending/misc.dm +++ b/code/game/machinery/vending/misc.dm @@ -1,9 +1,7 @@ /obj/machinery/vending/magivend name = "MagiVend" desc = "A magic vending machine." - icon_state = "MagiVend" - icon_deny = "MagiVend-deny" - icon_vend = "MagiVend-vend" + icon = 'icons/obj/machines/vending/magic.dmi' product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!" vend_delay = 15 vend_reply = "Have an enchanted evening!" @@ -20,9 +18,7 @@ name = "Dinnerware" desc = "A kitchen and restaurant equipment vendor." product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." - icon_state = "dinnerware" - icon_vend = "dinnerware-vend" - icon_deny = "dinnerware-deny" + icon = 'icons/obj/machines/vending/dinnerware.dmi' markup = 0 base_type = /obj/machinery/vending/dinnerware products = list( @@ -52,7 +48,7 @@ name = "Smashing Fashions" desc = "For all your cheap knockoff needs." product_slogans = "Look smashing for your darling!;Be rich! Dress rich!" - icon_state = "theater" + icon = 'icons/obj/machines/vending/theater.dmi' vend_delay = 15 base_type = /obj/machinery/vending/fashionvend vend_reply = "Absolutely smashing!" @@ -78,9 +74,7 @@ vend_delay = 15 product_slogans = "Escape to a fantasy world!;Fuel your gambling addiction!;Ruin your friendships!" product_ads = "Elves and dwarves!;Totally not satanic!;Fun times forever!" - icon_state = "games" - icon_deny = "games-deny" - icon_vend = "games-vend" + icon = 'icons/obj/machines/vending/games.dmi' base_type = /obj/machinery/vending/games products = list( /obj/item/toy/blink = 5, @@ -113,10 +107,7 @@ desc = "Vends things that make you less reviled in the work-place!" vend_delay = 15 product_slogans = "Take a shower you hippie.;Get a haircut, hippie!;Reeking of scale taint? Take a shower!" - - icon_state = "lavatory" - icon_deny = "lavatory-deny" - icon_vend = "lavatory-vend" + icon = 'icons/obj/machines/vending/lavatory.dmi' base_type = /obj/machinery/vending/lavatory products = list( /obj/item/soap = 12, diff --git a/code/game/machinery/vending/security.dm b/code/game/machinery/vending/security.dm index 225762761604..17b2a6cc88d8 100644 --- a/code/game/machinery/vending/security.dm +++ b/code/game/machinery/vending/security.dm @@ -3,9 +3,7 @@ name = "SecTech" desc = "A security equipment vendor." product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?" - icon_state = "sec" - icon_deny = "sec-deny" - icon_vend = "sec-vend" + icon = 'icons/obj/machines/vending/security.dmi' vend_delay = 14 markup = 0 base_type = /obj/machinery/vending/security diff --git a/code/game/objects/effects/decals/posters/_poster.dm b/code/game/objects/effects/decals/posters/_poster.dm index e06ef097d23f..3d4c3bf3f3d8 100644 --- a/code/game/objects/effects/decals/posters/_poster.dm +++ b/code/game/objects/effects/decals/posters/_poster.dm @@ -71,7 +71,7 @@ return TRUE /obj/structure/sign/poster/attack_hand(mob/user) - if(user.a_intent != I_HURT || ruined) + if(!user.check_intent(I_FLAG_HARM) || ruined) return ..() if(!CanPhysicallyInteract(user) || !user.check_dexterity(DEXTERITY_HOLD_ITEM)) return TRUE diff --git a/code/game/objects/effects/dirty_floor.dm b/code/game/objects/effects/dirty_floor.dm index 798d07d738c2..ef76cb068303 100644 --- a/code/game/objects/effects/dirty_floor.dm +++ b/code/game/objects/effects/dirty_floor.dm @@ -11,7 +11,6 @@ /obj/effect/decal/cleanable/dirt/Initialize() . = ..() - name = "" verbs.Cut() /obj/effect/decal/cleanable/dirt/on_update_icon() diff --git a/code/game/objects/effects/gateway.dm b/code/game/objects/effects/gateway.dm index 3a976ecf4dec..2b6be989f274 100644 --- a/code/game/objects/effects/gateway.dm +++ b/code/game/objects/effects/gateway.dm @@ -60,7 +60,7 @@ qdel(W) var/mob/living/new_mob = new /mob/living/simple_animal/corgi(AM.loc) - new_mob.a_intent = I_HURT + new_mob.set_intent(I_FLAG_HARM) if(victim.mind) victim.mind.transfer_to(new_mob) else diff --git a/code/game/objects/items/__item.dm b/code/game/objects/items/__item.dm index 69b1449b4193..9b3eba8970b1 100644 --- a/code/game/objects/items/__item.dm +++ b/code/game/objects/items/__item.dm @@ -455,7 +455,7 @@ return . || TRUE /obj/item/attack_self(mob/user) - if(user.a_intent == I_HURT && istype(material)) + if(user.check_intent(I_FLAG_HARM) && istype(material)) var/list/results = squash_item(skip_qdel = TRUE) if(results && user.try_unequip(src, user.loc)) user.visible_message(SPAN_DANGER("\The [user] squashes \the [src] into a lump.")) diff --git a/code/game/objects/items/_item_reagents.dm b/code/game/objects/items/_item_reagents.dm index c4de45769dc3..e34b7fd204ed 100644 --- a/code/game/objects/items/_item_reagents.dm +++ b/code/game/objects/items/_item_reagents.dm @@ -18,7 +18,7 @@ if(!istype(target)) return FALSE - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) to_chat(user, SPAN_NOTICE("You can't splash people on help intent.")) return TRUE diff --git a/code/game/objects/items/blades/_blade.dm b/code/game/objects/items/blades/_blade.dm index 775b5a0f09b6..60a422153994 100644 --- a/code/game/objects/items/blades/_blade.dm +++ b/code/game/objects/items/blades/_blade.dm @@ -15,9 +15,9 @@ slot_flags = SLOT_LOWER_BODY material = /decl/material/solid/metal/steel _base_attack_force = 10 - var/decl/material/hilt_material = /decl/material/solid/organic/wood - var/decl/material/guard_material = /decl/material/solid/organic/wood - var/decl/material/pommel_material = /decl/material/solid/organic/wood + var/decl/material/hilt_material = /decl/material/solid/organic/wood/oak + var/decl/material/guard_material = /decl/material/solid/organic/wood/oak + var/decl/material/pommel_material = /decl/material/solid/organic/wood/oak /// Cache var for blade material shine calculation. var/tmp/shine diff --git a/code/game/objects/items/blades/axe.dm b/code/game/objects/items/blades/axe.dm index c136fb4e34d5..9bda1a9a1345 100644 --- a/code/game/objects/items/blades/axe.dm +++ b/code/game/objects/items/blades/axe.dm @@ -5,7 +5,7 @@ drop_sound = 'sound/foley/tooldrop1.ogg' w_class = ITEM_SIZE_HUGE slot_flags = SLOT_BACK - hilt_material = /decl/material/solid/organic/wood + hilt_material = /decl/material/solid/organic/wood/oak guard_material = /decl/material/solid/organic/leather/gut pommel_material = null attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") diff --git a/code/game/objects/items/blades/folding.dm b/code/game/objects/items/blades/folding.dm index 69f2de5f8fa2..029557ab3b9a 100644 --- a/code/game/objects/items/blades/folding.dm +++ b/code/game/objects/items/blades/folding.dm @@ -8,7 +8,7 @@ guard_material = null slot_flags = null material = /decl/material/solid/metal/bronze - hilt_material = /decl/material/solid/organic/wood + hilt_material = /decl/material/solid/organic/wood/oak _base_attack_force = 5 var/open = FALSE @@ -25,7 +25,7 @@ update_attack_force() /obj/item/bladed/folding/attack_self(mob/user) - if(user.a_intent != I_HELP) + if(!user.check_intent(I_FLAG_HELP)) set_open(!open, user) return TRUE var/decl/interaction_handler/folding_knife/interaction = GET_DECL(/decl/interaction_handler/folding_knife) diff --git a/code/game/objects/items/blades/polearm.dm b/code/game/objects/items/blades/polearm.dm index 1761b1a7942a..d7fe1b8e8660 100644 --- a/code/game/objects/items/blades/polearm.dm +++ b/code/game/objects/items/blades/polearm.dm @@ -5,7 +5,7 @@ drop_sound = 'sound/foley/tooldrop1.ogg' w_class = ITEM_SIZE_HUGE slot_flags = SLOT_BACK - hilt_material = /decl/material/solid/organic/wood + hilt_material = /decl/material/solid/organic/wood/oak guard_material = /decl/material/solid/organic/leather/gut pommel_material = null _base_attack_force = 20 diff --git a/code/game/objects/items/blades/spear_improvised.dm b/code/game/objects/items/blades/spear_improvised.dm index e2dba3cc5987..8739d9ec568b 100644 --- a/code/game/objects/items/blades/spear_improvised.dm +++ b/code/game/objects/items/blades/spear_improvised.dm @@ -34,7 +34,7 @@ /obj/item/bladed/polearm/spear/improvised/steel material = /decl/material/solid/metal/steel - hilt_material = /decl/material/solid/organic/wood + hilt_material = /decl/material/solid/organic/wood/oak force_binding_color = COLOR_GREEN /obj/item/bladed/polearm/spear/improvised/supermatter diff --git a/code/game/objects/items/books/_book.dm b/code/game/objects/items/books/_book.dm index b3fedb7df447..a71fd39032a7 100644 --- a/code/game/objects/items/books/_book.dm +++ b/code/game/objects/items/books/_book.dm @@ -126,7 +126,7 @@ author = newauthor return TRUE - if((IS_KNIFE(W) || IS_WIRECUTTER(W)) && user.a_intent == I_HURT && try_carve(user, W)) + if((IS_KNIFE(W) || IS_WIRECUTTER(W)) && user.check_intent(I_FLAG_HARM) && try_carve(user, W)) return TRUE return ..() diff --git a/code/game/objects/items/books/skill/_skill.dm b/code/game/objects/items/books/skill/_skill.dm index 78b612b6ec9f..9c9bf06db827 100644 --- a/code/game/objects/items/books/skill/_skill.dm +++ b/code/game/objects/items/books/skill/_skill.dm @@ -11,7 +11,7 @@ Skill books that increase your skills while you activate and hold them w_class = ITEM_SIZE_LARGE // Skill books are THICC with knowledge. Up one level from regular books to prevent library-in-a-bag silliness. unique = TRUE material = /decl/material/solid/organic/plastic - matter = list(/decl/material/solid/organic/wood = MATTER_AMOUNT_REINFORCEMENT) + matter = list(/decl/material/solid/organic/wood/oak = MATTER_AMOUNT_REINFORCEMENT) abstract_type = /obj/item/book/skill var/decl/skill/skill // e.g. SKILL_LITERACY diff --git a/code/game/objects/items/crutches.dm b/code/game/objects/items/crutches.dm index 19221c12eb78..5a9ac03b4779 100644 --- a/code/game/objects/items/crutches.dm +++ b/code/game/objects/items/crutches.dm @@ -53,7 +53,7 @@ padding_color = COLOR_GRAY20 /obj/item/crutch/wooden - material = /decl/material/solid/organic/wood // oak + material = /decl/material/solid/organic/wood/oak /obj/item/crutch/wooden/padded padding_material = /decl/material/solid/organic/leather \ No newline at end of file diff --git a/code/game/objects/items/devices/auto_cpr.dm b/code/game/objects/items/devices/auto_cpr.dm index ae70328b395f..ec0a688f4ed3 100644 --- a/code/game/objects/items/devices/auto_cpr.dm +++ b/code/game/objects/items/devices/auto_cpr.dm @@ -24,7 +24,7 @@ /obj/item/auto_cpr/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(ishuman(target) && user.a_intent == I_HELP) + if(ishuman(target) && user.check_intent(I_FLAG_HELP)) var/obj/item/suit = target.get_equipped_item(slot_wear_suit_str) if(suit) to_chat(user, SPAN_WARNING("Their [suit] is in the way, remove it first!")) diff --git a/code/game/objects/items/devices/inducer.dm b/code/game/objects/items/devices/inducer.dm index b3bc6d8ae8f4..132fcc0e82fe 100644 --- a/code/game/objects/items/devices/inducer.dm +++ b/code/game/objects/items/devices/inducer.dm @@ -33,7 +33,7 @@ target.update_icon() /obj/item/inducer/afterattack(obj/O, mob/living/user, var/proximity) - if (!proximity || user.a_intent == I_HURT || CannotUse(user) || !recharge(O, user)) + if (!proximity || user.check_intent(I_FLAG_HARM) || CannotUse(user) || !recharge(O, user)) return ..() /obj/item/inducer/proc/CannotUse(mob/user) diff --git a/code/game/objects/items/flame/_flame.dm b/code/game/objects/items/flame/_flame.dm index 4527a2b6bc11..52c0cb31cc7b 100644 --- a/code/game/objects/items/flame/_flame.dm +++ b/code/game/objects/items/flame/_flame.dm @@ -5,7 +5,7 @@ icon_state = ICON_STATE_WORLD w_class = ITEM_SIZE_TINY origin_tech = @'{"materials":1}' - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /// Parameters for lighting when lit. var/lit_light_range = 1 @@ -102,7 +102,7 @@ /obj/item/flame/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(!istype(target) || user.a_intent == I_HURT || !lit || user.get_target_zone() != BP_MOUTH) + if(!istype(target) || user.check_intent(I_FLAG_HARM) || !lit || user.get_target_zone() != BP_MOUTH) return ..() var/obj/item/clothing/mask/smokable/cigarette/cig = target.get_equipped_item(slot_wear_mask_str) @@ -207,7 +207,7 @@ /obj/item/flame/attackby(obj/item/W, mob/user) - if(user.a_intent != I_HURT && !can_manually_light && (W.isflamesource() || W.get_heat() > T100C)) + if(!user.check_intent(I_FLAG_HARM) && !can_manually_light && (W.isflamesource() || W.get_heat() > T100C)) light(user) return TRUE diff --git a/code/game/objects/items/flame/flame_fuelled.dm b/code/game/objects/items/flame/flame_fuelled.dm index fceada02226d..07bcfe40859e 100644 --- a/code/game/objects/items/flame/flame_fuelled.dm +++ b/code/game/objects/items/flame/flame_fuelled.dm @@ -21,7 +21,7 @@ // Boilerplate from /obj/item/chems/glass. TODO generalize to a lower level. /obj/item/flame/fuelled/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(get_attack_force() && !(item_flags & ITEM_FLAG_NO_BLUDGEON) && user.a_intent == I_HURT) + if(get_attack_force() && !(item_flags & ITEM_FLAG_NO_BLUDGEON) && user.check_intent(I_FLAG_HARM)) . = ..() if(reagents?.total_volume && !QDELETED(target)) target.visible_message(SPAN_DANGER("Some of the contents of \the [src] splash onto \the [target].")) diff --git a/code/game/objects/items/instruments.dm b/code/game/objects/items/instruments.dm index 4b51b677e197..f75cca75194d 100644 --- a/code/game/objects/items/instruments.dm +++ b/code/game/objects/items/instruments.dm @@ -3,7 +3,7 @@ desc = "An antique musical instrument made of wood, originating from Earth. It has six metal strings of different girth and tension. When moved, they vibrate and the waves resonate in the guitar's open body, producing sounds. Obtained notes can be altered by pressing the strings to the neck, affecting the vibration's frequency." icon = 'icons/obj/items/guitar.dmi' icon_state = ICON_STATE_WORLD - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak slot_flags = SLOT_BACK throw_speed = 3 throw_range = 6 diff --git a/code/game/objects/items/plushies.dm b/code/game/objects/items/plushies.dm index 13a1439b0c00..3d07788f436b 100644 --- a/code/game/objects/items/plushies.dm +++ b/code/game/objects/items/plushies.dm @@ -15,15 +15,15 @@ if(!user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) return ..() playsound(src.loc, 'sound/effects/rustle1.ogg', 100, 1) - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) user.visible_message( SPAN_NOTICE("\The [user] hugs \the [src]!"), SPAN_NOTICE("You hug \the [src]!")) - else if (user.a_intent == I_HURT) + else if (user.check_intent(I_FLAG_HARM)) user.visible_message( SPAN_WARNING("\The [user] punches \the [src]!"), SPAN_WARNING("You punch \the [src]!")) - else if (user.a_intent == I_GRAB) + else if (user.check_intent(I_FLAG_GRAB)) user.visible_message( SPAN_WARNING("\The [user] attempts to strangle \the [src]!"), SPAN_WARNING("You attempt to strangle \the [src]!")) @@ -75,15 +75,15 @@ var/phrase_vary = TRUE /obj/item/toy/plushie/attack_self(mob/user) - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) user.visible_message( SPAN_NOTICE("\The [user] hugs \the [src]!"), SPAN_NOTICE("You hug \the [src]!")) - else if (user.a_intent == I_HURT) + else if (user.check_intent(I_FLAG_HARM)) user.visible_message( SPAN_WARNING("\The [user] punches \the [src]!"), SPAN_WARNING("You punch \the [src]!")) - else if (user.a_intent == I_GRAB) + else if (user.check_intent(I_FLAG_GRAB)) user.visible_message( SPAN_WARNING("\The [user] attempts to strangle \the [src]!"), SPAN_WARNING("You attempt to strangle \the [src]!")) diff --git a/code/game/objects/items/spirit_board.dm b/code/game/objects/items/spirit_board.dm index ac1450938432..6134ada23b94 100644 --- a/code/game/objects/items/spirit_board.dm +++ b/code/game/objects/items/spirit_board.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "spirit_board" density = TRUE - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak var/next_use = 0 var/planchette = "A" var/lastuser = null @@ -14,7 +14,7 @@ to_chat(user, "The planchette is sitting at \"[planchette]\".") /obj/item/spirit_board/attack_hand(mob/user) - if(user.a_intent == I_GRAB || !user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) + if(user.check_intent(I_FLAG_GRAB) || !user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) return ..() spirit_board_pick_letter(user) return TRUE diff --git a/code/game/objects/items/stacks/medical/_medical.dm b/code/game/objects/items/stacks/medical/_medical.dm index 22d016c2b49a..8a7cb9a017aa 100644 --- a/code/game/objects/items/stacks/medical/_medical.dm +++ b/code/game/objects/items/stacks/medical/_medical.dm @@ -51,7 +51,7 @@ /obj/item/stack/medical/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(!user_can_attack_with(user) || user.a_intent == I_HURT) + if(!user_can_attack_with(user) || user.check_intent(I_FLAG_HARM)) return ..() if(get_amount() < 1) diff --git a/code/game/objects/items/stacks/medical/medical_splint.dm b/code/game/objects/items/stacks/medical/medical_splint.dm index 76b3e381b4ed..1d268de10cd5 100644 --- a/code/game/objects/items/stacks/medical/medical_splint.dm +++ b/code/game/objects/items/stacks/medical/medical_splint.dm @@ -90,7 +90,7 @@ plural_name = "splints" icon_state = "simple-splint" amount = 1 - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak matter = list( /decl/material/solid/organic/cloth = MATTER_AMOUNT_REINFORCEMENT ) diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index a53c61d5bad1..a7fb3d8aa6e1 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -66,75 +66,6 @@ material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME replacement_turf_type = /turf/floor/woven -/* - * Wood - */ -/obj/item/stack/tile/wood - name = "wood floor tile" - singular_name = "wood floor tile" - desc = "An easy to fit wooden floor tile." - icon_state = "tile-wood" - color = WOOD_COLOR_GENERIC - material = /decl/material/solid/organic/wood - -/obj/item/stack/tile/wood/cyborg - name = "wood floor tile synthesizer" - desc = "A device that makes wood floor tiles." - uses_charge = 1 - charge_costs = list(250) - stack_merge_type = /obj/item/stack/tile/wood - build_type = /obj/item/stack/tile/wood - max_health = ITEM_HEALTH_NO_DAMAGE - is_spawnable_type = FALSE - -/obj/item/stack/tile/mahogany - name = "mahogany floor tile" - singular_name = "mahogany floor tile" - desc = "An easy to fit mahogany wood floor tile." - icon_state = "tile-wood" - color = WOOD_COLOR_RICH - material = /decl/material/solid/organic/wood - -/obj/item/stack/tile/maple - name = "maple floor tile" - singular_name = "maple floor tile" - desc = "An easy to fit maple wood floor tile." - icon_state = "tile-wood" - color = WOOD_COLOR_PALE - material = /decl/material/solid/organic/wood - -/obj/item/stack/tile/ebony - name = "ebony floor tile" - singular_name = "ebony floor tile" - desc = "An easy to fit ebony floor tile." - icon_state = "tile-wood" - color = WOOD_COLOR_BLACK - material = /decl/material/solid/organic/wood - -/obj/item/stack/tile/walnut - name = "walnut floor tile" - singular_name = "walnut floor tile" - desc = "An easy to fit walnut wood floor tile." - icon_state = "tile-wood" - color = WOOD_COLOR_CHOCOLATE - material = /decl/material/solid/organic/wood - -/obj/item/stack/tile/bamboo - name = "bamboo floor tile" - singular_name = "bamboo floor tile" - desc = "An easy to fit bamboo wood floor tile." - icon_state = "tile-wood" - color = WOOD_COLOR_PALE2 - material = /decl/material/solid/organic/wood - -/obj/item/stack/tile/yew - name = "yew floor tile" - singular_name = "yew floor tile" - desc = "An easy to fit yew wood floor tile." - icon_state = "tile-wood" - color = WOOD_COLOR_YELLOW - material = /decl/material/solid/organic/wood - /obj/item/stack/tile/floor name = "steel floor tile" singular_name = "steel floor tile" diff --git a/code/game/objects/items/stacks/tiles/tile_types_wooden.dm b/code/game/objects/items/stacks/tiles/tile_types_wooden.dm new file mode 100644 index 000000000000..fc9ec6517d76 --- /dev/null +++ b/code/game/objects/items/stacks/tiles/tile_types_wooden.dm @@ -0,0 +1,43 @@ +#define WOOD_TILE_SUBTYPE(MAT_NAME, STACK_TYPE, MAT_TYPE) \ +/obj/item/stack/tile/wood/##STACK_TYPE { \ + name = MAT_NAME + " floor tile"; \ + singular_name = MAT_NAME + " floor tile"; \ + plural_name = MAT_NAME + " floor tiles"; \ + desc = "An easy-to-fit " + MAT_NAME + " floor tile."; \ + color = /decl/material/solid/organic/wood/MAT_TYPE::color; \ + material = /decl/material/solid/organic/wood/MAT_TYPE; \ +} + +/obj/item/stack/tile/wood/cyborg + name = "wood floor tile synthesizer" + singular_name = "wood floor tile" + desc = "A device that makes laminated wooden floor tiles." + uses_charge = 1 + charge_costs = list(250) + stack_merge_type = /obj/item/stack/tile/wood/laminate + build_type = /obj/item/stack/tile/wood/laminate + color = /decl/material/solid/organic/wood/chipboard::color + material = /decl/material/solid/organic/wood/chipboard + max_health = ITEM_HEALTH_NO_DAMAGE + is_spawnable_type = FALSE + +/obj/item/stack/tile/wood + abstract_type = /obj/item/stack/tile/wood + icon_state = "tile-wood" + +/obj/item/stack/tile/wood/laminate + abstract_type = /obj/item/stack/tile/wood/laminate + +WOOD_TILE_SUBTYPE("oak", oak, oak) +WOOD_TILE_SUBTYPE("mahogany", mahogany, mahogany) +WOOD_TILE_SUBTYPE("maple", maple, maple) +WOOD_TILE_SUBTYPE("ebony", ebony, ebony) +WOOD_TILE_SUBTYPE("walnut", walnut, walnut) +WOOD_TILE_SUBTYPE("bamboo", bamboo, bamboo) +WOOD_TILE_SUBTYPE("yew", yew, yew) +WOOD_TILE_SUBTYPE("oak laminate", laminate/oak, chipboard) +WOOD_TILE_SUBTYPE("mahogany laminate", laminate/mahogany, chipboard/mahogany) +WOOD_TILE_SUBTYPE("maple laminate", laminate/maple, chipboard/maple) +WOOD_TILE_SUBTYPE("ebony laminate", laminate/ebony, chipboard/ebony) +WOOD_TILE_SUBTYPE("walnut laminate", laminate/walnut, chipboard/walnut) +WOOD_TILE_SUBTYPE("yew laminate", laminate/yew, chipboard/yew) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 78dd90338f6a..b91bf589f2cc 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -526,13 +526,13 @@ /obj/item/marshalling_wand/attack_self(mob/user) playsound(src.loc, 'sound/effects/rustle1.ogg', 100, 1) - if (user.a_intent == I_HELP) + if (user.check_intent(I_FLAG_HELP)) user.visible_message("[user] beckons with \the [src], signalling forward motion.", "You beckon with \the [src], signalling forward motion.") - else if (user.a_intent == I_DISARM) + else if (user.check_intent(I_FLAG_DISARM)) user.visible_message("[user] holds \the [src] above their head, signalling a stop.", "You hold \the [src] above your head, signalling a stop.") - else if (user.a_intent == I_GRAB) + else if (user.check_intent(I_FLAG_GRAB)) var/wand_dir if(user.get_equipped_item(BP_L_HAND) == src) wand_dir = "left" @@ -542,7 +542,7 @@ wand_dir = pick("left", "right") user.visible_message("[user] waves \the [src] to the [wand_dir], signalling a turn.", "You wave \the [src] to the [wand_dir], signalling a turn.") - else if (user.a_intent == I_HURT) + else if (user.check_intent(I_FLAG_HARM)) user.visible_message("[user] frantically waves \the [src] above their head!", "You frantically wave \the [src] above your head!") @@ -562,13 +562,13 @@ /obj/item/toy/ringbell/attack_hand(mob/user) if(!user.check_dexterity(DEXTERITY_SIMPLE_MACHINES, TRUE)) return ..() - if (user.a_intent == I_HELP) + if (user.check_intent(I_FLAG_HELP)) user.visible_message("[user] rings \the [src], signalling the beginning of the contest.") playsound(user.loc, 'sound/items/oneding.ogg', 60) - else if (user.a_intent == I_DISARM) + else if (user.check_intent(I_FLAG_DISARM)) user.visible_message("[user] rings \the [src] three times, signalling the end of the contest!") playsound(user.loc, 'sound/items/threedings.ogg', 60) - else if (user.a_intent == I_HURT) + else if (user.check_intent(I_FLAG_HARM)) user.visible_message("[user] rings \the [src] repeatedly, signalling a disqualification!") playsound(user.loc, 'sound/items/manydings.ogg', 60) return TRUE diff --git a/code/game/objects/items/weapons/broom.dm b/code/game/objects/items/weapons/broom.dm index 29c016a24189..b19ef3bf316d 100644 --- a/code/game/objects/items/weapons/broom.dm +++ b/code/game/objects/items/weapons/broom.dm @@ -39,7 +39,7 @@ /obj/item/staff/broom/resolve_attackby(atom/A, mob/user, click_params) - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) // Sweep up dirt. if(isturf(A)) diff --git a/code/game/objects/items/weapons/circuitboards/computer/computer.dm b/code/game/objects/items/weapons/circuitboards/computer/computer.dm index 9c8b800d3c1a..c013c88bdf5c 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/computer.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/computer.dm @@ -91,6 +91,10 @@ /obj/item/stock_parts/circuitboard/design_console name = "circuitboard (design database console)" build_path = /obj/machinery/computer/design_console + additional_spawn_components = list( + /obj/item/stock_parts/power/apc/buildable = 1, + /obj/item/stock_parts/item_holder/disk_reader/buildable = 1, + ) /obj/item/stock_parts/circuitboard/central_atmos name = "circuitboard (central atmospherics computer)" diff --git a/code/game/objects/items/weapons/circuitboards/machinery/research.dm b/code/game/objects/items/weapons/circuitboards/machinery/research.dm index 5d31dd554daa..efe256ceef44 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/research.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/research.dm @@ -265,6 +265,7 @@ req_components = list() additional_spawn_components = list( /obj/item/stock_parts/power/apc/buildable = 1, + /obj/item/stock_parts/item_holder/disk_reader/buildable = 1, /obj/item/stock_parts/console_screen = 1, /obj/item/stock_parts/keyboard = 1 ) \ No newline at end of file diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index d147fbe340c4..b4b580c4a9bf 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -59,7 +59,7 @@ if(!limb) return ..() var/target_zone = user.get_target_zone() - if(user.a_intent == I_HELP && target_zone != apply_to_zone && istype(limb, /obj/item/organ/external/head)) + if(user.check_intent(I_FLAG_HELP) && target_zone != apply_to_zone && istype(limb, /obj/item/organ/external/head)) var/obj/item/organ/external/head/head = limb head.write_on(user, name) return TRUE diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 0ec09f690e29..cdaab55ecaa5 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -283,7 +283,7 @@ return 0 /obj/item/shockpaddles/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(!ishuman(target) || user.a_intent == I_HURT) + if(!ishuman(target) || user.check_intent(I_FLAG_HARM)) return ..() //Do a regular attack. Harm intent shocking happens as a hit effect var/mob/living/human/H = target if(can_use(user, H)) diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 9c0239a12aa8..61ddcccfbaed 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -94,7 +94,7 @@ // Make sure our user is still holding us if(user && user.get_active_held_item() == src) - if(user.a_intent == I_HELP) //don't shoot if we're on help intent + if(user.check_intent(I_FLAG_HELP)) //don't shoot if we're on help intent to_chat(user, SPAN_WARNING("You refrain from firing \the [src] as your intent is set to help.")) return diff --git a/code/game/objects/items/weapons/material/bell.dm b/code/game/objects/items/weapons/material/bell.dm index e07f7f913d87..05c21a0f3099 100644 --- a/code/game/objects/items/weapons/material/bell.dm +++ b/code/game/objects/items/weapons/material/bell.dm @@ -10,10 +10,10 @@ material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME /obj/item/bell/attack_hand(mob/user) - if(user.a_intent == I_GRAB) + if(user.check_intent(I_FLAG_GRAB)) return ..() - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) user.visible_message("\The [user] hammers \the [src]!") playsound(user.loc, 'sound/items/manydings.ogg', 60) else diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm index bd592ca5a836..b33cef4f1c83 100644 --- a/code/game/objects/items/weapons/material/kitchen.dm +++ b/code/game/objects/items/weapons/material/kitchen.dm @@ -12,7 +12,7 @@ desc = "Used to knock out the Bartender." icon_state = "rolling_pin" attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/kitchen/rollingpin/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) if (user.has_genetic_condition(GENE_COND_CLUMSY) && prob(50) && user.try_unequip(src)) diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm index 71eddb9f95a8..9df9b46dc099 100644 --- a/code/game/objects/items/weapons/material/knives.dm +++ b/code/game/objects/items/weapons/material/knives.dm @@ -39,7 +39,7 @@ /obj/item/knife/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(user.a_intent != I_HELP && user.get_target_zone() == BP_EYES) + if(!user.check_intent(I_FLAG_HELP) && user.get_target_zone() == BP_EYES) if(user.has_genetic_condition(GENE_COND_CLUMSY) && prob(50)) target = user return eyestab(target, user) @@ -52,7 +52,7 @@ name = "dueling knife" desc = "A length of leather-bound wood studded with razor-sharp teeth. How crude." icon = 'icons/obj/items/weapon/knives/savage.dmi' - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak material_alteration = MAT_FLAG_ALTERATION_NAME w_class = ITEM_SIZE_NORMAL diff --git a/code/game/objects/items/weapons/material/misc.dm b/code/game/objects/items/weapons/material/misc.dm index ca46b180bfa7..941dd4fd8cc1 100644 --- a/code/game/objects/items/weapons/material/misc.dm +++ b/code/game/objects/items/weapons/material/misc.dm @@ -67,7 +67,7 @@ w_class = ITEM_SIZE_SMALL attack_verb = list("attacked", "bashed") material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/cross/silver material = /decl/material/solid/metal/silver diff --git a/code/game/objects/items/weapons/material/stick.dm b/code/game/objects/items/weapons/material/stick.dm index ff4248fbc7b4..a124a6644bce 100644 --- a/code/game/objects/items/weapons/material/stick.dm +++ b/code/game/objects/items/weapons/material/stick.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/items/stick.dmi' icon_state = ICON_STATE_WORLD w_class = ITEM_SIZE_NORMAL - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak attack_verb = list("poked", "jabbed") material_alteration = MAT_FLAG_ALTERATION_ALL lock_picking_level = 3 @@ -63,7 +63,7 @@ return ..() /obj/item/stick/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(user != target && user.a_intent == I_HELP) + if(user != target && user.check_intent(I_FLAG_HELP)) //Playful poking is its own thing user.visible_message( SPAN_NOTICE("\The [user] pokes \the [target] with \the [src]."), diff --git a/code/game/objects/items/weapons/material/swiss.dm b/code/game/objects/items/weapons/material/swiss.dm index 5cb933d62368..81f5700ebd1c 100644 --- a/code/game/objects/items/weapons/material/swiss.dm +++ b/code/game/objects/items/weapons/material/swiss.dm @@ -53,7 +53,7 @@ /obj/item/knife/folding/swiss/attack_self(mob/user) var/choice - if(user.a_intent != I_HELP && ((SWISSKNF_LBLADE in tools) || (SWISSKNF_SBLADE in tools)) && active_tool == SWISSKNF_CLOSED) + if(!user.check_intent(I_FLAG_HELP) && ((SWISSKNF_LBLADE in tools) || (SWISSKNF_SBLADE in tools)) && active_tool == SWISSKNF_CLOSED) open = TRUE if(SWISSKNF_LBLADE in tools) choice = SWISSKNF_LBLADE diff --git a/code/game/objects/items/weapons/material/swords.dm b/code/game/objects/items/weapons/material/swords.dm index 555aabe275c3..19a54e6ac778 100644 --- a/code/game/objects/items/weapons/material/swords.dm +++ b/code/game/objects/items/weapons/material/swords.dm @@ -47,7 +47,7 @@ . = ..() /obj/item/sword/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak draw_handle = FALSE /obj/item/sword/replica @@ -72,7 +72,7 @@ draw_handle = FALSE /obj/item/sword/katana/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak draw_handle = FALSE /obj/item/sword/katana/vibro diff --git a/code/game/objects/items/weapons/material/thrown.dm b/code/game/objects/items/weapons/material/thrown.dm index e42d46386952..427fffbe1022 100644 --- a/code/game/objects/items/weapons/material/thrown.dm +++ b/code/game/objects/items/weapons/material/thrown.dm @@ -25,5 +25,5 @@ /obj/item/star/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) user.mob_throw_item(target, src) diff --git a/code/game/objects/items/weapons/material/urn.dm b/code/game/objects/items/weapons/material/urn.dm index c3183ae361b1..fe640bd26a46 100644 --- a/code/game/objects/items/weapons/material/urn.dm +++ b/code/game/objects/items/weapons/material/urn.dm @@ -5,7 +5,7 @@ icon_state = "urn" material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME w_class = ITEM_SIZE_SMALL - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/urn/afterattack(var/obj/A, var/mob/user, var/proximity) if(!istype(A, /obj/effect/decal/cleanable/ash)) diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 6520154a48c7..70cb57c3f479 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -7,7 +7,7 @@ throw_range = 10 w_class = ITEM_SIZE_NORMAL attack_verb = list("mopped", "bashed", "bludgeoned", "whacked") - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak matter = list( /decl/material/solid/organic/cloth = MATTER_AMOUNT_SECONDARY, ) @@ -58,7 +58,7 @@ return var/trans_amt = FLUID_QDEL_POINT - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) trans_amt = round(FLUID_PUDDLE * 0.25) user.visible_message(SPAN_DANGER("\The [user] begins to aggressively mop \the [T]!")) else diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm index c74435680273..7800b0131cd6 100644 --- a/code/game/objects/items/weapons/policetape.dm +++ b/code/game/objects/items/weapons/policetape.dm @@ -316,12 +316,12 @@ var/global/list/image/hazard_overlays //Cached hazard floor overlays for the bar /obj/structure/tape_barricade/attack_hand(mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) user.visible_message(SPAN_DANGER("\The [user] tears \the [src]!")) physically_destroyed() return TRUE - if (user.a_intent != I_HELP || !allowed(user) || !user.check_dexterity(DEXTERITY_SIMPLE_MACHINES, TRUE)) + if (!user.check_intent(I_FLAG_HELP) || !allowed(user) || !user.check_dexterity(DEXTERITY_SIMPLE_MACHINES, TRUE)) return ..() if(TAPE_BARRICADE_IS_CORNER_NEIGHBORS(neighbors) || (TAPE_BARRICADE_GET_NB_NEIGHBORS(neighbors) > 2)) @@ -349,7 +349,7 @@ var/global/list/image/hazard_overlays //Cached hazard floor overlays for the bar /obj/structure/tape_barricade/CanPass(atom/movable/mover, turf/target, height, air_group) if(!is_lifted && ismob(mover)) var/mob/M = mover - if (!allowed(M) && M.a_intent == I_HELP) + if (!allowed(M) && M.check_intent(I_FLAG_HELP)) return FALSE return ..() @@ -362,7 +362,7 @@ var/global/list/image/hazard_overlays //Cached hazard floor overlays for the bar shake_animation(2) if (!allowed(M)) //only select few learn art of not crumpling the tape to_chat(M, SPAN_NOTICE("You are not supposed to go past \the [src]...")) - if(M.a_intent != I_HELP) + if(!M.check_intent(I_FLAG_HELP)) crumple() /obj/structure/tape_barricade/proc/crumple() diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index db21be248f51..8ab9f986e6b8 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -124,7 +124,7 @@ w_class = ITEM_SIZE_HUGE origin_tech = @'{"materials":1}' material = /decl/material/solid/metal/steel - matter = list(/decl/material/solid/organic/wood = MATTER_AMOUNT_REINFORCEMENT) + matter = list(/decl/material/solid/organic/wood/oak = MATTER_AMOUNT_REINFORCEMENT) attack_verb = list("shoved", "bashed") _base_attack_force = 8 max_health = 250 diff --git a/code/game/objects/items/weapons/soap.dm b/code/game/objects/items/weapons/soap.dm index c669236eb49c..c14047c71f62 100644 --- a/code/game/objects/items/weapons/soap.dm +++ b/code/game/objects/items/weapons/soap.dm @@ -99,7 +99,7 @@ //attack_as_weapon /obj/item/soap/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(ishuman(target) && user?.a_intent != I_HURT) + if(ishuman(target) && !user?.check_intent(I_FLAG_HARM)) var/mob/living/human/victim = target if(user.get_target_zone() == BP_MOUTH && victim.check_has_mouth()) user.visible_message(SPAN_DANGER("\The [user] washes \the [target]'s mouth out with soap!")) diff --git a/code/game/objects/items/weapons/staff.dm b/code/game/objects/items/weapons/staff.dm index 646fe9b17291..41ce83c34304 100644 --- a/code/game/objects/items/weapons/staff.dm +++ b/code/game/objects/items/weapons/staff.dm @@ -6,7 +6,7 @@ w_class = ITEM_SIZE_HUGE attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak material_alteration = MAT_FLAG_ALTERATION_ALL base_parry_chance = 30 _base_attack_force = 3 @@ -32,7 +32,7 @@ . += "narrow" /obj/item/staff/attackby(obj/item/used_item, mob/user) - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) var/decl/material/bristles_material = used_item.material if(istype(bristles_material) && can_make_broom_with(user, used_item)) var/obj/item/staff/broom/broom = new(get_turf(user), material?.type, bristles_material?.type) diff --git a/code/game/objects/items/weapons/storage/wall_mirror.dm b/code/game/objects/items/weapons/storage/wall_mirror.dm index c7e5d89a2b9e..91b5554585d3 100644 --- a/code/game/objects/items/weapons/storage/wall_mirror.dm +++ b/code/game/objects/items/weapons/storage/wall_mirror.dm @@ -48,7 +48,7 @@ . = ..() /obj/structure/mirror/attack_hand(mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(shattered) to_chat(user, SPAN_WARNING("You enter the key combination for the style you want on the panel, but the nanomachines inside \the [src] refuse to come out.")) diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 506f73998159..eec6eb5e83a0 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -112,7 +112,7 @@ var/mob/living/human/H = target affecting = GET_EXTERNAL_ORGAN(H, hit_zone) var/abuser = user ? "" : "by [user]" - if(user && user.a_intent == I_HURT) + if(user && user.check_intent(I_FLAG_HARM)) . = ..() if(.) return diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 091cafca675f..124bfb02526c 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -14,7 +14,7 @@ icon_state = ICON_STATE_WORLD slot_flags = SLOT_LOWER_BODY item_flags = ITEM_FLAG_IS_WEAPON - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak _base_attack_force = 10 /obj/item/classic_baton/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) diff --git a/code/game/objects/items/weapons/tech_disks.dm b/code/game/objects/items/weapons/tech_disks.dm index a6f98ef13ca2..91922a2853d9 100644 --- a/code/game/objects/items/weapons/tech_disks.dm +++ b/code/game/objects/items/weapons/tech_disks.dm @@ -122,7 +122,7 @@ var/datum/fabricator_recipe/blueprint /obj/item/disk/design_disk/attack_hand(mob/user) - if(user.a_intent != I_HURT || !blueprint || !user.check_dexterity(DEXTERITY_KEYBOARDS)) + if(!user.check_intent(I_FLAG_HARM) || !blueprint || !user.check_dexterity(DEXTERITY_KEYBOARDS)) return ..() blueprint = null SetName(initial(name)) diff --git a/code/game/objects/items/weapons/tools/screwdriver.dm b/code/game/objects/items/weapons/tools/screwdriver.dm index 2a1ef5f107b0..d16e6c230f38 100644 --- a/code/game/objects/items/weapons/tools/screwdriver.dm +++ b/code/game/objects/items/weapons/tools/screwdriver.dm @@ -40,7 +40,7 @@ return res /obj/item/screwdriver/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(user.a_intent == I_HELP || user.get_target_zone() != BP_EYES && user.get_target_zone() != BP_HEAD) + if(user.check_intent(I_FLAG_HELP) || user.get_target_zone() != BP_EYES && user.get_target_zone() != BP_HEAD) return ..() if(user.has_genetic_condition(GENE_COND_CLUMSY) && prob(50)) target = user diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index 6cc583631c2a..4a95497c9aab 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -345,7 +345,7 @@ /obj/item/weldingtool/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) var/obj/item/organ/external/affecting = istype(target) && GET_EXTERNAL_ORGAN(target, user?.get_target_zone()) - if(affecting && user.a_intent == I_HELP) + if(affecting && user.check_intent(I_FLAG_HELP)) if(!affecting.is_robotic()) to_chat(user, SPAN_WARNING("\The [target]'s [affecting.name] is not robotic. \The [src] cannot repair it.")) else if(BP_IS_BRITTLE(affecting)) @@ -423,7 +423,7 @@ return TRUE if(handle_eaten_by_mob(user, O) != EATEN_INVALID) return TRUE - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) if(standard_splash_mob(user, O)) return TRUE if(reagents && reagents.total_volume) diff --git a/code/game/objects/items/weapons/tools/wirecutter.dm b/code/game/objects/items/weapons/tools/wirecutter.dm index 284e5cc8c187..6cb93a254f17 100644 --- a/code/game/objects/items/weapons/tools/wirecutter.dm +++ b/code/game/objects/items/weapons/tools/wirecutter.dm @@ -44,7 +44,7 @@ /obj/item/wirecutters/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) var/obj/item/handcuffs/cable/cuffs = target.get_equipped_item(slot_handcuffed_str) - if(user.a_intent == I_HELP && istype(cuffs) && target.try_unequip(cuffs)) + if(user.check_intent(I_FLAG_HELP) && istype(cuffs) && target.try_unequip(cuffs)) user.visible_message( "\The [usr] cuts \the [target]'s restraints with \the [src]!", "You cut \the [target]'s restraints with \the [src]!", diff --git a/code/game/objects/items/weapons/towels.dm b/code/game/objects/items/weapons/towels.dm index c15817b4e71f..3b111a31629c 100644 --- a/code/game/objects/items/weapons/towels.dm +++ b/code/game/objects/items/weapons/towels.dm @@ -44,7 +44,7 @@ STOP_PROCESSING(SSobj, src) /obj/item/towel/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) var/reagent_space = reagents.maximum_volume - reagents.total_volume @@ -62,10 +62,10 @@ return TRUE /obj/item/towel/attack_self(mob/user) - if(user.a_intent == I_GRAB) + if(user.check_intent(I_FLAG_GRAB)) lay_out() return TRUE - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) return use_on_mob(user, user) return ..() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 73a259e6458f..1945ad562018 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -192,7 +192,7 @@ healthcheck() /obj/effect/energy_net/attack_hand(var/mob/user) - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) return ..() var/decl/species/my_species = user.get_species() if(my_species) diff --git a/code/game/objects/random/subtypes/misc.dm b/code/game/objects/random/subtypes/misc.dm index b3e91da69ba6..a4356724b358 100644 --- a/code/game/objects/random/subtypes/misc.dm +++ b/code/game/objects/random/subtypes/misc.dm @@ -385,8 +385,8 @@ /obj/random/vendor name = "random vending machine" desc = "This is a randomly selected vending machine." - icon = 'icons/obj/vending.dmi' - icon_state = "coffee-hellfire" + icon = 'icons/obj/machines/vending/coffee.dmi' + icon_state = "world-hellfire" /obj/random/vendor/spawn_choices() var/static/list/spawnable_choices = list( diff --git a/code/game/objects/structures/__structure.dm b/code/game/objects/structures/__structure.dm index b65b704b302f..b1764d52754a 100644 --- a/code/game/objects/structures/__structure.dm +++ b/code/game/objects/structures/__structure.dm @@ -226,7 +226,7 @@ return TRUE var/mob/living/victim = grab.get_affecting_mob() - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) if(!istype(victim)) to_chat(user, SPAN_WARNING("You need to be grabbing a living creature to do that!")) diff --git a/code/game/objects/structures/_structure_construction.dm b/code/game/objects/structures/_structure_construction.dm index c367f6f1bf8b..3e17a59ffe41 100644 --- a/code/game/objects/structures/_structure_construction.dm +++ b/code/game/objects/structures/_structure_construction.dm @@ -116,7 +116,7 @@ /obj/structure/attackby(obj/item/used_item, mob/user) if(used_item.user_can_attack_with(user, silent = TRUE)) var/force = used_item.get_attack_force(user) - if(force && user.a_intent == I_HURT) + if(force && user.check_intent(I_FLAG_HARM)) attack_animation(user) visible_message(SPAN_DANGER("\The [src] has been [pick(used_item.attack_verb)] with \the [used_item] by \the [user]!")) take_damage(force, used_item.atom_damage_type) diff --git a/code/game/objects/structures/banners.dm b/code/game/objects/structures/banners.dm deleted file mode 100644 index 11f37de7bfd0..000000000000 --- a/code/game/objects/structures/banners.dm +++ /dev/null @@ -1,158 +0,0 @@ -/obj/structure/banner_frame - name = "banner frame" - desc = "A sturdy frame suitable for hanging a banner." - icon = 'icons/obj/structures/banner_frame.dmi' - icon_state = "banner_stand_preview" - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color - anchored = TRUE - density = FALSE - opacity = FALSE - atom_flags = ATOM_FLAG_CLIMBABLE - layer = ABOVE_WINDOW_LAYER - obj_flags = OBJ_FLAG_ANCHORABLE - tool_interaction_flags = (TOOL_INTERACTION_ANCHOR | TOOL_INTERACTION_DECONSTRUCT) - material_alteration = MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_COLOR - max_health = 50 - var/base_icon_state = "banner_stand" - /// Reference to any banner currently hung on the frame. - var/obj/item/banner/banner - -/obj/structure/banner_frame/Initialize(ml, _mat, _reinf_mat) - if(ispath(banner)) - set_banner(new banner(src)) - . = ..() - update_icon() - -/obj/structure/banner_frame/proc/set_banner(var/new_banner) - if(banner == new_banner) - return - banner = new_banner - if(banner) - name = banner.name - desc = "[initial(desc)] [banner.hung_desc]" - else - name = initial(name) - desc = initial(desc) - update_icon() - -/obj/structure/banner_frame/attack_hand(mob/user) - if(banner && user.check_dexterity(DEXTERITY_HOLD_ITEM)) - user.put_in_hands(banner) - var/old_banner = banner - set_banner(null) - user.visible_message(SPAN_NOTICE("\The [user] removes \the [old_banner] from \the [src]."), SPAN_NOTICE("You remove \the [old_banner] from \the [src]."), SPAN_NOTICE("You hear the rustling of fabric.")) - return TRUE - return ..() - -/obj/structure/banner_frame/attackby(obj/item/O, mob/user) - if(istype(O, /obj/item/banner)) - if(banner) - to_chat(user, SPAN_WARNING("There is already a banner hung on \the [src].")) - return TRUE - if(user.try_unequip(O, src)) - user.visible_message(SPAN_NOTICE("\The [user] hangs \the [O] from \the [src]."), SPAN_NOTICE("You hang \the [O] from \the [src]."), SPAN_NOTICE("You hear the rustling of fabric.")) - set_banner(O) - return TRUE - return ..() - -/obj/structure/banner_frame/dump_contents(atom/forced_loc = loc, mob/user) - if(istype(banner)) - banner.dropInto(forced_loc) - banner = null - . = ..() - -/obj/structure/banner_frame/on_update_icon() - . = ..() - icon_state = base_icon_state - if(istype(banner)) - var/image/I = image(banner.icon, "banner_base") - I.appearance_flags |= RESET_COLOR - I.color = banner.color - add_overlay(I) - for(var/decal in banner.decals) - I = image(banner.icon, decal) - I.appearance_flags |= RESET_COLOR - I.color = banner.decals[decal] - add_overlay(I) - -/obj/structure/banner_frame/Destroy() - if(istype(banner)) - QDEL_NULL(banner) - return ..() - -/obj/item/banner - name = "banner" - desc = "A furled-up banner." - icon = 'icons/obj/banner.dmi' - icon_state = "banner" - material = /decl/material/solid/organic/cloth - color = /decl/material/solid/organic/cloth::color - max_health = 20 - material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME - w_class = ITEM_SIZE_NORMAL - var/hung_desc = "The banner is rather plain, with no markings." - var/list/decals - -/obj/item/banner/woven - icon = 'icons/obj/banner_woven.dmi' - material = /decl/material/solid/organic/plantmatter/grass/dry - color = /decl/material/solid/organic/plantmatter/grass/dry::color - material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC - hung_desc = "The woven banner is rustic and uneven." - -/obj/item/banner/green - name = "green banner" - paint_color = COLOR_GREEN - color = COLOR_GREEN - -/obj/item/banner/red - name = "red banner" - paint_color = COLOR_RED - color = COLOR_RED - -/obj/item/banner/blue - name = "blue banner" - paint_color = COLOR_BLUE - color = COLOR_BLUE - -// Mapping helpers below. -/obj/structure/banner_frame/blue - banner = /obj/item/banner/blue - color = /obj/item/banner/blue::color // Mapping preview colour. - -/obj/structure/banner_frame/red - banner = /obj/item/banner/red - color = /obj/item/banner/red::color - -/obj/structure/banner_frame/green - banner = /obj/item/banner/green - color = /obj/item/banner/green::color - -// A wall-mounted banner frame with no stand. -/obj/structure/banner_frame/wall - name = "hanging banner frame" - desc = "A sturdy frame suitable for hanging a banner." - icon_state = "banner_hanging_preview" - base_icon_state = "banner_hanging" - directional_offset = @'{"NORTH":{"y":-32},"SOUTH":{"y":-32},"EAST":{"x":-32},"WEST":{"x":-32}}' - -/obj/structure/banner_frame/wall/ebony - material = /decl/material/solid/organic/wood/ebony - color = /decl/material/solid/organic/wood/ebony::color - -/obj/structure/banner_frame/wall/ebony/red - banner = /obj/item/banner/red - color = /obj/item/banner/red::color // Mapping preview colour. - -/obj/structure/banner_frame/wall/ebony/blue - banner = /obj/item/banner/blue - color = /obj/item/banner/blue::color - -/obj/structure/banner_frame/wall/ebony/green - banner = /obj/item/banner/green - color = /obj/item/banner/green::color - -/obj/structure/banner_frame/wall/ebony/woven - banner = /obj/item/banner/woven - color = /obj/item/banner/woven::color \ No newline at end of file diff --git a/code/game/objects/structures/barrels/barrel.dm b/code/game/objects/structures/barrels/barrel.dm index c8668066624e..c0755926e96f 100644 --- a/code/game/objects/structures/barrels/barrel.dm +++ b/code/game/objects/structures/barrels/barrel.dm @@ -6,8 +6,8 @@ anchored = TRUE atom_flags = ATOM_FLAG_CLIMBABLE matter = null - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC wrenchable = FALSE storage = /datum/storage/barrel @@ -32,7 +32,7 @@ /obj/structure/reagent_dispensers/barrel/attackby(obj/item/W, mob/user) . = ..() - if(!. && user.a_intent == I_HELP && reagents?.total_volume > FLUID_PUDDLE) + if(!. && user.check_intent(I_FLAG_HELP) && reagents?.total_volume > FLUID_PUDDLE) user.visible_message(SPAN_NOTICE("\The [user] dips \the [W] into \the [reagents.get_primary_reagent_name()].")) W.fluid_act(reagents) return TRUE diff --git a/code/game/objects/structures/barrels/cask_rack.dm b/code/game/objects/structures/barrels/cask_rack.dm index f284886622f8..cbe68ef5f7ee 100644 --- a/code/game/objects/structures/barrels/cask_rack.dm +++ b/code/game/objects/structures/barrels/cask_rack.dm @@ -7,8 +7,8 @@ opacity = FALSE density = FALSE // Recalculated when barrels added or removed w_class = ITEM_SIZE_STRUCTURE - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC var/max_stack = 1 @@ -32,7 +32,7 @@ /obj/structure/cask_rack/receive_mouse_drop(atom/dropping, mob/user, params) . = ..() if(!. && user.Adjacent(src) && dropping.Adjacent(src) && user.Adjacent(dropping)) - return try_stack_barrel(dropping, user) + return try_stack_barrel_timed(dropping, user) /obj/structure/cask_rack/on_update_icon() . = ..() @@ -97,13 +97,16 @@ if(target && (!isturf(target) || !loc.Adjacent(target))) // TODO: Enter() or CanPass() checks instead of relying on step_towards() below. to_chat(user, SPAN_NOTICE("You cannot move \the [barrel] to \the [target].")) return FALSE + if(user && !user.do_skilled(3 SECONDS, SKILL_HAULING, src)) + to_chat(user, SPAN_NOTICE("You stop moving \the [barrel] off of \the [src].")) + return FALSE to_chat(user, SPAN_NOTICE("You move \the [barrel] off \the [src].")) barrel.dropInto(loc) if(target) step_towards(barrel, target) return TRUE -/obj/structure/cask_rack/proc/try_stack_barrel(atom/movable/barrel, mob/user) +/obj/structure/cask_rack/proc/can_stack_barrel(atom/movable/barrel, mob/user) if(!istype(barrel) || !barrel.simulated || barrel.anchored) return FALSE if(length(contents) >= max_stack) @@ -111,12 +114,27 @@ return FALSE var/list/stackable_types = get_stackable_barrel_types() if(!is_type_in_list(barrel, stackable_types)) - to_chat(user, SPAN_WARNING("\The [src] is cannot hold \the [barrel].")) + to_chat(user, SPAN_WARNING("\The [src] cannot hold \the [barrel].")) + return FALSE + return TRUE + +/obj/structure/cask_rack/proc/try_stack_barrel(atom/movable/barrel, mob/user) + if(!can_stack_barrel(barrel, user)) return FALSE barrel.forceMove(src) - to_chat(user, SPAN_NOTICE("You stack \the [barrel] onto \the [src].")) return TRUE +/obj/structure/cask_rack/proc/try_stack_barrel_timed(atom/movable/barrel, mob/user) + if(!can_stack_barrel(barrel, user)) + return FALSE + if(user && !user.do_skilled(3 SECONDS, SKILL_HAULING, src)) + to_chat(user, SPAN_NOTICE("You stop stacking \the [barrel] onto \the [src].")) + return FALSE + if(try_stack_barrel(barrel, user)) + to_chat(user, SPAN_NOTICE("You stack \the [barrel] onto \the [src].")) + return TRUE + return FALSE + /obj/structure/cask_rack/proc/get_stackable_barrel_types() var/static/list/_stackable_barrel_types = list( /obj/structure/reagent_dispensers/barrel/cask @@ -150,7 +168,7 @@ color = /decl/material/solid/organic/wood/ebony::color /obj/structure/cask_rack/large/mapped/Initialize(ml, _mat, _reinf_mat) - new /obj/structure/reagent_dispensers/barrel/cask/ebony/water(src) - new /obj/structure/reagent_dispensers/barrel/cask/ebony/beer(src) - new /obj/structure/reagent_dispensers/barrel/cask/ebony/wine(src) . = ..() + try_stack_barrel(new /obj/structure/reagent_dispensers/barrel/cask/ebony/water) + try_stack_barrel(new /obj/structure/reagent_dispensers/barrel/cask/ebony/beer) + try_stack_barrel(new /obj/structure/reagent_dispensers/barrel/cask/ebony/wine) diff --git a/code/game/objects/structures/barricade.dm b/code/game/objects/structures/barricade.dm index da01780265c1..b5708b8f18f2 100644 --- a/code/game/objects/structures/barricade.dm +++ b/code/game/objects/structures/barricade.dm @@ -18,12 +18,12 @@ /obj/structure/barricade/spike/Initialize() if(!reinf_material) - reinf_material = /decl/material/solid/organic/wood + reinf_material = /decl/material/solid/organic/wood/oak . = ..() /obj/structure/barricade/Initialize() if(!material) - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak . = ..() if(!istype(material)) return INITIALIZE_HINT_QDEL diff --git a/code/game/objects/structures/benches.dm b/code/game/objects/structures/benches.dm index ed9805ff78bb..6d8e7637b151 100644 --- a/code/game/objects/structures/benches.dm +++ b/code/game/objects/structures/benches.dm @@ -35,8 +35,8 @@ /obj/structure/table/bench/wooden icon_state = "solid_preview" color = WOOD_COLOR_GENERIC - material = /decl/material/solid/organic/wood - reinf_material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak + reinf_material = /decl/material/solid/organic/wood/oak /obj/structure/table/bench/padded icon_state = "padded_preview" diff --git a/code/game/objects/structures/bookcase.dm b/code/game/objects/structures/bookcase.dm index 0c65b53c9c68..f39d2f3c4e63 100644 --- a/code/game/objects/structures/bookcase.dm +++ b/code/game/objects/structures/bookcase.dm @@ -106,8 +106,8 @@ var/global/list/station_bookcases = list() density = TRUE opacity = TRUE obj_flags = OBJ_FLAG_ANCHORABLE - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color tool_interaction_flags = (TOOL_INTERACTION_ANCHOR | TOOL_INTERACTION_DECONSTRUCT) material_alteration = MAT_FLAG_ALTERATION_ALL storage = /datum/storage/bookcase diff --git a/code/game/objects/structures/compost.dm b/code/game/objects/structures/compost.dm index 2f8518225194..938eb620d3e1 100644 --- a/code/game/objects/structures/compost.dm +++ b/code/game/objects/structures/compost.dm @@ -12,7 +12,7 @@ var/global/const/COMPOST_WORM_HUNGER_FACTOR = MINIMUM_CHEMICAL_VOLUME density = TRUE atom_flags = ATOM_FLAG_CLIMBABLE matter = null - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC wrenchable = FALSE possible_transfer_amounts = @"[10,25,50,100]" @@ -90,7 +90,7 @@ var/global/const/COMPOST_WORM_HUNGER_FACTOR = MINIMUM_CHEMICAL_VOLUME /obj/structure/reagent_dispensers/compost_bin/attackby(obj/item/W, mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(W.storage) diff --git a/code/game/objects/structures/crates_lockers/closets/__closet.dm b/code/game/objects/structures/crates_lockers/closets/__closet.dm index 70b311eb6dcd..769c6b5c7e35 100644 --- a/code/game/objects/structures/crates_lockers/closets/__closet.dm +++ b/code/game/objects/structures/crates_lockers/closets/__closet.dm @@ -250,7 +250,7 @@ var/global/list/closets = list() /obj/structure/closet/attackby(obj/item/used_item, mob/user) - if(user.a_intent == I_HURT && used_item.get_attack_force(user)) + if(user.check_intent(I_FLAG_HARM) && used_item.get_attack_force(user)) return ..() if(!opened && (istype(used_item, /obj/item/stack/material) || IS_WRENCH(used_item)) ) diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index be7435ff3a08..27ed4bce9fd7 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -9,8 +9,8 @@ material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC open_sound = 'sound/effects/doorcreaky.ogg' close_sound = 'sound/effects/doorcreaky.ogg' - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color closet_appearance = /decl/closet_appearance/cabinet/nocolor /obj/structure/closet/cabinet/wooden/ebony diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 925b88e9b162..f9a8de10bf38 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -322,8 +322,8 @@ close_sound = 'sound/effects/storage/briefcase.ogg' closet_appearance = /decl/closet_appearance/crate/chest material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color /obj/structure/closet/crate/chest/ebony material = /decl/material/solid/organic/wood/ebony diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 5c1e42f37640..4e4e37090ac1 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -5,7 +5,7 @@ icon_state = "densecrate" density = TRUE atom_flags = ATOM_FLAG_CLIMBABLE - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/structure/largecrate/Initialize() . = ..() @@ -15,7 +15,7 @@ I.forceMove(src) /obj/structure/largecrate/attack_hand(mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() to_chat(user, SPAN_WARNING("You need a crowbar to pry this open!")) return TRUE diff --git a/code/game/objects/structures/defensive_barrier.dm b/code/game/objects/structures/defensive_barrier.dm index 27768c86d00a..d3d977f5b84e 100644 --- a/code/game/objects/structures/defensive_barrier.dm +++ b/code/game/objects/structures/defensive_barrier.dm @@ -106,12 +106,12 @@ return ..() var/decl/species/species = user.get_species() - if(ishuman(user) && species?.can_shred(user) && user.a_intent == I_HURT) + if(ishuman(user) && species?.can_shred(user) && user.check_intent(I_FLAG_HARM)) take_damage(20) user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) return TRUE - if(user.a_intent == I_GRAB) + if(user.check_intent(I_FLAG_GRAB)) try_pack_up(user) return TRUE diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 9b6fa1c413a4..b07bef0480ef 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -133,7 +133,7 @@ update_icon() return TRUE - else if(!destroyed && user.a_intent == I_HURT) + else if(!destroyed && user.check_intent(I_FLAG_HARM)) visible_message(SPAN_WARNING("[user] kicks \the [src]."), SPAN_WARNING("You kick \the [src].")) take_damage(2) return TRUE diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 93ef799d01a3..adb261b01e9f 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -198,7 +198,7 @@ if(do_after(user, 40,src)) if(QDELETED(src)) return TRUE - to_chat(user, "You cut the airlock wires.!") + to_chat(user, "You cut the airlock wires!") new/obj/item/stack/cable_coil(src.loc, 1) src.state = 0 update_icon() diff --git a/code/game/objects/structures/doors/_door.dm b/code/game/objects/structures/doors/_door.dm index cbef98d6a949..9079662e2438 100644 --- a/code/game/objects/structures/doors/_door.dm +++ b/code/game/objects/structures/doors/_door.dm @@ -163,7 +163,7 @@ /obj/structure/door/attackby(obj/item/used_item, mob/user) add_fingerprint(user, 0, used_item) - if((user.a_intent == I_HURT && used_item.get_attack_force(user)) || istype(used_item, /obj/item/stack/material)) + if((user.check_intent(I_FLAG_HARM) && used_item.get_attack_force(user)) || istype(used_item, /obj/item/stack/material)) return ..() if(used_item.user_can_attack_with(user, silent = TRUE)) @@ -217,7 +217,7 @@ return FALSE user.do_attack_animation(src) playsound(target.loc, 'sound/effects/glassknock.ogg', 80, 1) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) target.visible_message( SPAN_DANGER("\The [user] bangs against \the [src]!"), blind_message = "You hear a banging sound!" @@ -255,8 +255,8 @@ material = /decl/material/solid/gemstone/diamond /obj/structure/door/wood - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color /obj/structure/door/mahogany material = /decl/material/solid/organic/wood/mahogany @@ -275,7 +275,7 @@ color = /decl/material/solid/organic/wood/walnut::color /obj/structure/door/wood/saloon - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak opacity = FALSE /obj/structure/door/wood/saloon/ebony diff --git a/code/game/objects/structures/filter_stand.dm b/code/game/objects/structures/filter_stand.dm index e46cc29be69f..3cd598d2e7be 100644 --- a/code/game/objects/structures/filter_stand.dm +++ b/code/game/objects/structures/filter_stand.dm @@ -5,7 +5,7 @@ icon_state = ICON_STATE_WORLD density = TRUE anchored = TRUE - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak material_alteration = MAT_FLAG_ALTERATION_ALL atom_flags = ATOM_FLAG_OPEN_CONTAINER diff --git a/code/game/objects/structures/fires.dm b/code/game/objects/structures/fires.dm index 428c0b8bf9ef..cdb416489e39 100644 --- a/code/game/objects/structures/fires.dm +++ b/code/game/objects/structures/fires.dm @@ -216,7 +216,7 @@ update_icon() return TRUE - if(lit != FIRE_LIT && user.a_intent == I_HURT) + if(lit != FIRE_LIT && user.check_intent(I_FLAG_HARM)) to_chat(user, SPAN_DANGER("You start stomping on \the [src], trying to destroy it.")) if(do_after(user, 5 SECONDS, src)) visible_message(SPAN_DANGER("\The [user] stamps and kicks at \the [src] until it is completely destroyed.")) @@ -229,7 +229,7 @@ var/mob/living/victim = grab.get_affecting_mob() if(!istype(victim)) return FALSE - if (user.a_intent != I_HURT) + if (!user.check_intent(I_FLAG_HARM)) return TRUE if (!grab.force_danger()) to_chat(user, SPAN_WARNING("You need a better grip!")) @@ -278,7 +278,7 @@ /obj/structure/fire_source/attackby(var/obj/item/thing, var/mob/user) // Gate a few interactions behind intent so they can be bypassed if needed. - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) // Put cooking items onto the fire source. if(istype(thing, /obj/item/chems/cooking_vessel) && user.try_unequip(thing, get_turf(src))) thing.reset_offsets() @@ -298,7 +298,7 @@ try_light(thing.get_heat()) return TRUE - if((lit != FIRE_LIT || user.a_intent == I_HURT)) + if((lit != FIRE_LIT || user.check_intent(I_FLAG_HARM))) // Only drop in one log at a time. if(istype(thing, /obj/item/stack)) var/obj/item/stack/stack = thing diff --git a/code/game/objects/structures/fishtanks.dm b/code/game/objects/structures/fishtanks.dm index 39e278d390de..3dafa9160f31 100644 --- a/code/game/objects/structures/fishtanks.dm +++ b/code/game/objects/structures/fishtanks.dm @@ -63,13 +63,13 @@ var/global/list/fishtank_cache = list() add_to_reagents(fill_type, reagents.maximum_volume) /obj/structure/glass_tank/attack_hand(var/mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() visible_message(SPAN_NOTICE("\The [user] taps on \the [src].")) return TRUE /obj/structure/glass_tank/attackby(var/obj/item/W, var/mob/user) - if(W.get_attack_force(user) < 5 || user.a_intent != I_HURT) + if(W.get_attack_force(user) < 5 || !user.check_intent(I_FLAG_HARM)) attack_animation(user) visible_message(SPAN_NOTICE("\The [user] taps \the [src] with \the [W].")) else diff --git a/code/game/objects/structures/fitness.dm b/code/game/objects/structures/fitness.dm index 25be6aa2bf04..6cbc033c7a37 100644 --- a/code/game/objects/structures/fitness.dm +++ b/code/game/objects/structures/fitness.dm @@ -20,7 +20,7 @@ to_chat(H, SPAN_WARNING("You [synth ? "need more energy" : "are too tired"] to use the punching bag. Go [synth ? "recharge" : "eat something"].")) return TRUE - if(H.a_intent == I_HURT) + if(H.check_intent(I_FLAG_HARM)) H.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) flick("[icon_state]_hit", src) playsound(src.loc, 'sound/effects/woodhit.ogg', 25, 1, -1) diff --git a/code/game/objects/structures/flora/_flora.dm b/code/game/objects/structures/flora/_flora.dm index 7782bc39a1c3..5395ed57f9a3 100644 --- a/code/game/objects/structures/flora/_flora.dm +++ b/code/game/objects/structures/flora/_flora.dm @@ -26,7 +26,7 @@ return ..() /obj/structure/flora/attackby(obj/item/O, mob/user) - if(user.a_intent != I_HURT && can_cut_down(O, user)) + if(!user.check_intent(I_FLAG_HARM) && can_cut_down(O, user)) play_cut_sound(user) cut_down(O, user) return TRUE diff --git a/code/game/objects/structures/flora/plant.dm b/code/game/objects/structures/flora/plant.dm index bec1cc918669..7f8cb8294bed 100644 --- a/code/game/objects/structures/flora/plant.dm +++ b/code/game/objects/structures/flora/plant.dm @@ -81,7 +81,7 @@ return TRUE // Hydrotray boilerplate for taking samples. - if(O.edge && O.w_class < ITEM_SIZE_NORMAL && user.a_intent != I_HURT) + if(O.edge && O.w_class < ITEM_SIZE_NORMAL && !user.check_intent(I_FLAG_HARM)) if(sampled) to_chat(user, SPAN_WARNING("There's no bits that can be used for a sampling left.")) return TRUE diff --git a/code/game/objects/structures/flora/stump.dm b/code/game/objects/structures/flora/stump.dm index 297be6ac8cf0..4911cd3a57e7 100644 --- a/code/game/objects/structures/flora/stump.dm +++ b/code/game/objects/structures/flora/stump.dm @@ -27,7 +27,7 @@ icon = 'icons/obj/flora/tree_stumps.dmi' w_class = ITEM_SIZE_HUGE pixel_x = -16 //All trees are offset 16 pixels - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak //dead trees /obj/structure/flora/stump/tree/dead @@ -40,6 +40,7 @@ //pine trees /obj/structure/flora/stump/tree/pine icon_state = "pine_1" + material = /decl/material/solid/organic/wood/oak // TODO: pine /obj/structure/flora/stump/tree/pine/init_appearance() icon_state = "pine_[rand(1, 3)]" diff --git a/code/game/objects/structures/flora/tree.dm b/code/game/objects/structures/flora/tree.dm index 92b124d8b93f..9ad3314fc775 100644 --- a/code/game/objects/structures/flora/tree.dm +++ b/code/game/objects/structures/flora/tree.dm @@ -7,7 +7,7 @@ density = TRUE pixel_x = -16 layer = ABOVE_HUMAN_LAYER - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak w_class = ITEM_SIZE_STRUCTURE hitsound = 'sound/effects/hit_wood.ogg' snd_cut = 'sound/effects/plants/tree_fall.ogg' diff --git a/code/game/objects/structures/fountain.dm b/code/game/objects/structures/fountain.dm index 7df7c3ee3074..8d1c904c785a 100644 --- a/code/game/objects/structures/fountain.dm +++ b/code/game/objects/structures/fountain.dm @@ -18,7 +18,7 @@ /obj/structure/fountain/attack_hand(var/mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(used) @@ -106,7 +106,7 @@ add_to_reagents(/decl/material/liquid/water, reagents.maximum_volume) //Don't give free water when building one /obj/structure/fountain/mundane/attack_hand(mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() return TRUE diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 6bde6ee9cb16..39080d777fb9 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -89,7 +89,7 @@ /obj/structure/grille/attack_hand(mob/user) - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) return ..() user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index 467abd3e26e1..12cdf96b365f 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -209,7 +209,7 @@ return TryToSwitchState(user) /obj/structure/inflatable/door/attack_hand(mob/user) - if(user.a_intent == I_HURT || !user.check_dexterity(DEXTERITY_SIMPLE_MACHINES, TRUE)) + if(user.check_intent(I_FLAG_HARM) || !user.check_dexterity(DEXTERITY_SIMPLE_MACHINES, TRUE)) return ..() return TryToSwitchState(user) diff --git a/code/game/objects/structures/pedestal.dm b/code/game/objects/structures/pedestal.dm index e8941a6028f1..48ab35087c08 100644 --- a/code/game/objects/structures/pedestal.dm +++ b/code/game/objects/structures/pedestal.dm @@ -11,7 +11,7 @@ var/place_item_y = -5 /obj/structure/pedestal/attackby(obj/item/used_item, mob/user) - if(user.a_intent != I_HURT && user.try_unequip(used_item, get_turf(src))) + if(!user.check_intent(I_FLAG_HARM) && user.try_unequip(used_item, get_turf(src))) used_item.reset_offsets(anim_time = 0) used_item.pixel_y = used_item.default_pixel_y + place_item_y return TRUE diff --git a/code/game/objects/structures/pit.dm b/code/game/objects/structures/pit.dm index 59f4c6f727f3..d45cdbc6ebbe 100644 --- a/code/game/objects/structures/pit.dm +++ b/code/game/objects/structures/pit.dm @@ -147,7 +147,7 @@ pixel_x = 15 pixel_y = 8 anchored = TRUE - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak w_class = ITEM_SIZE_NORMAL material_alteration = MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC | MAT_FLAG_ALTERATION_COLOR var/message = "Unknown." @@ -168,7 +168,7 @@ /obj/structure/gravemarker/attackby(obj/item/used_item, mob/user) // we can dig it up with a shovel if the destruction tool is not a shovel, or if we're not on harm intent - var/digging = IS_SHOVEL(used_item) && (destruction_tool != TOOL_SHOVEL || user?.a_intent != I_HURT) + var/digging = IS_SHOVEL(used_item) && (destruction_tool != TOOL_SHOVEL || !user?.check_intent(I_FLAG_HARM)) if(digging && used_item.do_tool_interaction(TOOL_SHOVEL, user, src, 2 SECONDS, "digging up", "digging up", check_skill = SKILL_HAULING)) unbury(user, place_in_hands = TRUE) // deletes the grave marker and spawns an item in its place return TRUE @@ -222,7 +222,7 @@ desc = "You're not the first." icon = 'icons/obj/structures/gravestone.dmi' icon_state = "wood" - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak w_class = ITEM_SIZE_NORMAL material_alteration = MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC | MAT_FLAG_ALTERATION_COLOR var/gravemarker_type = /obj/structure/gravemarker @@ -244,13 +244,13 @@ to_chat(user, "You can't read the inscription from here.") /obj/item/gravemarker/attack_self(mob/user) - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) try_bury(get_turf(user), user) return TRUE return ..() /obj/item/gravemarker/afterattack(turf/target, mob/user, proximity) - if((. = ..()) || (user.a_intent == I_HURT && !(item_flags & ITEM_FLAG_NO_BLUDGEON)) || !proximity) + if((. = ..()) || (user.check_intent(I_FLAG_HARM) && !(item_flags & ITEM_FLAG_NO_BLUDGEON)) || !proximity) return if(!istype(target)) target = get_turf(target) diff --git a/code/game/objects/structures/produce_bin.dm b/code/game/objects/structures/produce_bin.dm index 7c09a0139668..5c4b23434322 100644 --- a/code/game/objects/structures/produce_bin.dm +++ b/code/game/objects/structures/produce_bin.dm @@ -5,8 +5,8 @@ icon_state = ICON_STATE_WORLD anchored = TRUE density = TRUE - color = /decl/material/solid/organic/wood::color - material = /decl/material/solid/organic/wood + color = /decl/material/solid/organic/wood/oak::color + material = /decl/material/solid/organic/wood/oak material_alteration = MAT_FLAG_ALTERATION_ALL storage = /datum/storage/produce_bin @@ -25,7 +25,7 @@ /obj/structure/produce_bin/attackby(obj/item/bag, mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(bag.storage) diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm index 01e7a84e68a5..93926bd3e51c 100644 --- a/code/game/objects/structures/railing.dm +++ b/code/game/objects/structures/railing.dm @@ -28,7 +28,7 @@ density = FALSE /obj/structure/railing/mapped/wooden - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak parts_type = /obj/item/stack/material/plank color = WOOD_COLOR_GENERIC paint_color = null @@ -218,7 +218,7 @@ WOOD_RAILING_SUBTYPE(yew) to_chat(user, SPAN_WARNING("You need a better grip to do that!")) return TRUE - if(user.a_intent == I_HURT && ishuman(victim)) + if(user.check_intent(I_FLAG_HARM) && ishuman(victim)) visible_message(SPAN_DANGER("\The [user] slams \the [victim]'s face against \the [src]!")) playsound(loc, 'sound/effects/grillehit.ogg', 50, 1) var/blocked = victim.get_blocked_ratio(BP_HEAD, BRUTE, damage = 8) diff --git a/code/game/objects/structures/stool_bed_chair_nest_sofa/bed.dm b/code/game/objects/structures/stool_bed_chair_nest_sofa/bed.dm index 519dae2ab6e7..2090da1a2ccd 100644 --- a/code/game/objects/structures/stool_bed_chair_nest_sofa/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest_sofa/bed.dm @@ -176,7 +176,7 @@ buckle_pixel_shift = list("x" = 0, "y" = 0, "z" = 6) movable_flags = MOVABLE_FLAG_WHEELED user_comfort = 0 - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/structure/bed/travois/can_apply_padding() return FALSE diff --git a/code/game/objects/structures/stool_bed_chair_nest_sofa/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest_sofa/chairs.dm index 93979252fa11..f2e6ebadec47 100644 --- a/code/game/objects/structures/stool_bed_chair_nest_sofa/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest_sofa/chairs.dm @@ -302,7 +302,7 @@ icon_state = "wooden_chair_preview" base_icon = "wooden_chair" color = WOOD_COLOR_GENERIC - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/structure/bed/chair/wood/can_apply_padding() return FALSE diff --git a/code/game/objects/structures/stool_bed_chair_nest_sofa/pew.dm b/code/game/objects/structures/stool_bed_chair_nest_sofa/pew.dm index 9e849a85d382..b14f6db9257d 100644 --- a/code/game/objects/structures/stool_bed_chair_nest_sofa/pew.dm +++ b/code/game/objects/structures/stool_bed_chair_nest_sofa/pew.dm @@ -6,7 +6,7 @@ base_icon = "bench" color = WOOD_COLOR_GENERIC reinf_material = null - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak obj_flags = 0 anchored = TRUE var/connect_neighbors = TRUE @@ -132,4 +132,20 @@ /obj/structure/bed/chair/bench/pew/ebony color = /decl/material/solid/organic/wood/ebony::color - material = /decl/material/solid/organic/wood/ebony \ No newline at end of file + material = /decl/material/solid/organic/wood/ebony + +/obj/structure/bed/chair/bench/lounge + name = "lounge" + desc = "An elegant lounge, perfect for reclining on." + icon = 'icons/obj/structures/lounge.dmi' + icon_state = "lounge_standing" + base_icon = "lounge" + +/obj/structure/bed/chair/bench/lounge/get_material_icon() + return icon + +/obj/structure/bed/chair/bench/lounge/mapped + color = /decl/material/solid/organic/wood/mahogany::color + material = /decl/material/solid/organic/wood/mahogany + reinf_material = /decl/material/solid/organic/cloth + padding_color = COLOR_RED_GRAY diff --git a/code/game/objects/structures/stool_bed_chair_nest_sofa/rustic_chairs.dm b/code/game/objects/structures/stool_bed_chair_nest_sofa/rustic_chairs.dm index b36f4fae215c..100e94deedca 100644 --- a/code/game/objects/structures/stool_bed_chair_nest_sofa/rustic_chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest_sofa/rustic_chairs.dm @@ -13,7 +13,7 @@ name = "chair" desc = "An ornate, detailed chair made from wood. It has armrests!" icon = 'icons/obj/structures/fancy_rustic_chair.dmi' - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak color = COLOR_WHITE // preview state is precolored reinf_material = /decl/material/solid/organic/cloth padding_color = COLOR_CHERRY_RED diff --git a/code/game/objects/structures/stool_bed_chair_nest_sofa/simple_bed.dm b/code/game/objects/structures/stool_bed_chair_nest_sofa/simple_bed.dm index 53161624e9ce..100527ea2937 100644 --- a/code/game/objects/structures/stool_bed_chair_nest_sofa/simple_bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest_sofa/simple_bed.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/structures/simple_bed.dmi' icon_state = "bed_padded_preview" // For map editor preview purposes parts_type = /obj/item/stack/material/plank - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak reinf_material = /decl/material/solid/organic/plantmatter/grass/dry color = /decl/material/solid/organic/plantmatter/grass/dry::color anchored = TRUE @@ -49,7 +49,7 @@ /obj/structure/bed/simple/crafted reinf_material = null icon_state = "bed" - color = /decl/material/solid/organic/wood::color + color = /decl/material/solid/organic/wood/oak::color /obj/item/bedsheet/furs name = "sleeping furs" diff --git a/code/game/objects/structures/stool_bed_chair_nest_sofa/sofa.dm b/code/game/objects/structures/stool_bed_chair_nest_sofa/sofa.dm index 2095b2324c35..93cfc6b1c5cd 100644 --- a/code/game/objects/structures/stool_bed_chair_nest_sofa/sofa.dm +++ b/code/game/objects/structures/stool_bed_chair_nest_sofa/sofa.dm @@ -7,7 +7,7 @@ buckle_dir = FALSE buckle_lying = FALSE //force people to sit up in chairs when buckled obj_flags = OBJ_FLAG_ROTATABLE | OBJ_FLAG_ANCHORABLE - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak reinf_material = /decl/material/solid/organic/cloth material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC diff --git a/code/game/objects/structures/stool_bed_chair_nest_sofa/stools.dm b/code/game/objects/structures/stool_bed_chair_nest_sofa/stools.dm index 59ccd454a5d3..2d3f23568f60 100644 --- a/code/game/objects/structures/stool_bed_chair_nest_sofa/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest_sofa/stools.dm @@ -174,4 +174,4 @@ //Generated subtypes for mapping porpoises /obj/item/stool/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak diff --git a/code/game/objects/structures/structure_lock.dm b/code/game/objects/structures/structure_lock.dm index 0470b4bc9c55..2713beb48b3a 100644 --- a/code/game/objects/structures/structure_lock.dm +++ b/code/game/objects/structures/structure_lock.dm @@ -44,7 +44,7 @@ return FALSE if(!lock.isLocked()) return TRUE - if(user?.a_intent == I_HELP && (istype(held, /obj/item/key) || istype(held, /obj/item/keyring))) + if(user?.check_intent(I_FLAG_HELP) && (istype(held, /obj/item/key) || istype(held, /obj/item/keyring))) try_key_unlock(held, user) if(!lock.isLocked()) return TRUE diff --git a/code/game/objects/structures/tables.dm b/code/game/objects/structures/tables.dm index c66281e59f21..42e490933430 100644 --- a/code/game/objects/structures/tables.dm +++ b/code/game/objects/structures/tables.dm @@ -168,7 +168,7 @@ /obj/structure/table/attackby(obj/item/W, mob/user, click_params) - if(user.a_intent == I_HURT && W.is_special_cutting_tool()) + if(user.check_intent(I_FLAG_HARM) && W.is_special_cutting_tool()) spark_at(src.loc, amount=5) playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) user.visible_message(SPAN_DANGER("\The [src] was sliced apart by \the [user]!")) @@ -202,7 +202,7 @@ return TRUE if(istype(W, /obj/item/deck)) //playing cards - if(user.a_intent == I_GRAB) + if(user.check_intent(I_FLAG_GRAB)) var/obj/item/deck/D = W if(!length(D.cards)) to_chat(user, "There are no cards in the deck.") @@ -717,67 +717,129 @@ reinf_material = /decl/material/solid/organic/wood/holographic //wood wood wood -/obj/structure/table/woodentable +/obj/structure/table/wood icon_state = "solid_preview" color = WOOD_COLOR_GENERIC - material = /decl/material/solid/organic/wood - reinf_material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak + reinf_material = /decl/material/solid/organic/wood/oak parts_type = /obj/item/stack/material/plank -/obj/structure/table/woodentable/mahogany +/obj/structure/table/wood/mahogany color = WOOD_COLOR_RICH material = /decl/material/solid/organic/wood/mahogany reinf_material = /decl/material/solid/organic/wood/mahogany -/obj/structure/table/woodentable/maple +/obj/structure/table/wood/maple color = WOOD_COLOR_PALE material = /decl/material/solid/organic/wood/maple reinf_material = /decl/material/solid/organic/wood/maple -/obj/structure/table/woodentable/ebony +/obj/structure/table/wood/ebony color = WOOD_COLOR_BLACK material = /decl/material/solid/organic/wood/ebony reinf_material = /decl/material/solid/organic/wood/ebony -/obj/structure/table/woodentable/walnut +/obj/structure/table/wood/walnut color = WOOD_COLOR_CHOCOLATE material = /decl/material/solid/organic/wood/walnut reinf_material = /decl/material/solid/organic/wood/walnut -/obj/structure/table/woodentable_reinforced +/obj/structure/table/wood/reinforced icon_state = "reinf_preview" color = WOOD_COLOR_GENERIC - material = /decl/material/solid/organic/wood - reinf_material = /decl/material/solid/organic/wood - additional_reinf_material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak + reinf_material = /decl/material/solid/organic/wood/oak + additional_reinf_material = /decl/material/solid/organic/wood/oak -/obj/structure/table/woodentable_reinforced/walnut +/obj/structure/table/wood/reinforced/walnut color = WOOD_COLOR_CHOCOLATE material = /decl/material/solid/organic/wood/walnut reinf_material = /decl/material/solid/organic/wood/walnut additional_reinf_material = /decl/material/solid/organic/wood/walnut -/obj/structure/table/woodentable_reinforced/walnut/maple +/obj/structure/table/wood/reinforced/walnut/maple additional_reinf_material = /decl/material/solid/organic/wood/maple -/obj/structure/table/woodentable_reinforced/mahogany +/obj/structure/table/wood/reinforced/mahogany color = WOOD_COLOR_RICH material = /decl/material/solid/organic/wood/mahogany reinf_material = /decl/material/solid/organic/wood/mahogany additional_reinf_material = /decl/material/solid/organic/wood/mahogany -/obj/structure/table/woodentable_reinforced/mahogany/walnut +/obj/structure/table/wood/reinforced/mahogany/walnut additional_reinf_material = /decl/material/solid/organic/wood/walnut -/obj/structure/table/woodentable_reinforced/ebony +/obj/structure/table/wood/reinforced/ebony color = WOOD_COLOR_BLACK material = /decl/material/solid/organic/wood/ebony reinf_material = /decl/material/solid/organic/wood/ebony additional_reinf_material = /decl/material/solid/organic/wood/ebony -/obj/structure/table/woodentable_reinforced/ebony/walnut +/obj/structure/table/wood/reinforced/ebony/walnut additional_reinf_material = /decl/material/solid/organic/wood/walnut +// Wood laminate tables; chipboard basically. +// Smooth texture like plastic etc for a less rustic vibe on spacer maps. +/obj/structure/table/laminate + icon_state = "solid_preview" + color = WOOD_COLOR_GENERIC + material = /decl/material/solid/organic/wood/chipboard + reinf_material = /decl/material/solid/organic/wood/chipboard + +/obj/structure/table/laminate/mahogany + color = WOOD_COLOR_RICH + material = /decl/material/solid/organic/wood/chipboard/mahogany + reinf_material = /decl/material/solid/organic/wood/chipboard/mahogany + +/obj/structure/table/laminate/maple + color = WOOD_COLOR_PALE + material = /decl/material/solid/organic/wood/chipboard/maple + reinf_material = /decl/material/solid/organic/wood/chipboard/maple + +/obj/structure/table/laminate/ebony + color = WOOD_COLOR_BLACK + material = /decl/material/solid/organic/wood/chipboard/ebony + reinf_material = /decl/material/solid/organic/wood/chipboard/ebony + +/obj/structure/table/laminate/walnut + color = WOOD_COLOR_CHOCOLATE + material = /decl/material/solid/organic/wood/chipboard/walnut + reinf_material = /decl/material/solid/organic/wood/chipboard/walnut + +/obj/structure/table/laminate/reinforced + icon_state = "reinf_preview" + color = WOOD_COLOR_GENERIC + material = /decl/material/solid/organic/wood/chipboard + reinf_material = /decl/material/solid/organic/wood/chipboard + additional_reinf_material = /decl/material/solid/organic/wood/chipboard + +/obj/structure/table/laminate/reinforced/walnut + color = WOOD_COLOR_CHOCOLATE + material = /decl/material/solid/organic/wood/chipboard/walnut + reinf_material = /decl/material/solid/organic/wood/chipboard/walnut + additional_reinf_material = /decl/material/solid/organic/wood/chipboard/walnut + +/obj/structure/table/laminate/reinforced/walnut/maple + additional_reinf_material = /decl/material/solid/organic/wood/chipboard/maple + +/obj/structure/table/laminate/reinforced/mahogany + color = WOOD_COLOR_RICH + material = /decl/material/solid/organic/wood/chipboard/mahogany + reinf_material = /decl/material/solid/organic/wood/chipboard/mahogany + additional_reinf_material = /decl/material/solid/organic/wood/chipboard/mahogany + +/obj/structure/table/laminate/reinforced/mahogany/walnut + additional_reinf_material = /decl/material/solid/organic/wood/chipboard/walnut + +/obj/structure/table/laminate/reinforced/ebony + color = WOOD_COLOR_BLACK + material = /decl/material/solid/organic/wood/chipboard/ebony + reinf_material = /decl/material/solid/organic/wood/chipboard/ebony + additional_reinf_material = /decl/material/solid/organic/wood/chipboard/ebony + +/obj/structure/table/laminate/reinforced/ebony/walnut + additional_reinf_material = /decl/material/solid/organic/wood/chipboard/walnut + // A table that doesn't smooth, intended for bedside tables or otherwise standalone tables. // TODO: make table legs use material and tabletop use reinf_material // theoretically, this could also be made to use the normal table icon system, unlike desks? diff --git a/code/game/objects/structures/under_wardrobe.dm b/code/game/objects/structures/under_wardrobe.dm index db853713b21f..e8f8ab1e513f 100644 --- a/code/game/objects/structures/under_wardrobe.dm +++ b/code/game/objects/structures/under_wardrobe.dm @@ -78,7 +78,7 @@ var/datum/category_group/underwear/UWC = global.underwear.categories_by_name[href_list["select_underwear"]] if(!UWC) return - var/datum/category_item/underwear/UWI = input("Select your desired underwear:", "Choose underwear") as null|anything in exlude_none(UWC.items) + var/datum/category_item/underwear/UWI = input("Select your desired underwear:", "Choose underwear") as null|anything in exclude_none(UWC.items) if(!UWI) return @@ -113,7 +113,7 @@ if(.) interact(H) -/obj/structure/undies_wardrobe/proc/exlude_none(var/list/L) +/obj/structure/undies_wardrobe/proc/exclude_none(var/list/L) . = L.Copy() for(var/e in .) var/datum/category_item/underwear/UWI = e diff --git a/code/game/objects/structures/wall_sconce.dm b/code/game/objects/structures/wall_sconce.dm index c66f3e453fd5..5a3dd0a38a2f 100644 --- a/code/game/objects/structures/wall_sconce.dm +++ b/code/game/objects/structures/wall_sconce.dm @@ -84,7 +84,7 @@ /obj/structure/wall_sconce/attackby(obj/item/W, mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(IS_HAMMER(W) || IS_WRENCH(W)) diff --git a/code/game/objects/structures/well.dm b/code/game/objects/structures/well.dm index cb0c2006285b..10c34059fea6 100644 --- a/code/game/objects/structures/well.dm +++ b/code/game/objects/structures/well.dm @@ -42,7 +42,7 @@ /obj/structure/reagent_dispensers/well/attackby(obj/item/W, mob/user) . = ..() - if(!. && user.a_intent == I_HELP && reagents?.total_volume > FLUID_PUDDLE) + if(!. && user.check_intent(I_FLAG_HELP) && reagents?.total_volume > FLUID_PUDDLE) user.visible_message(SPAN_NOTICE("\The [user] dips \the [W] into \the [reagents.get_primary_reagent_name()].")) W.fluid_act(reagents) return TRUE diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 4ad6358add5e..f0fed052f813 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -145,7 +145,7 @@ /obj/structure/window/attack_hand(mob/user) SHOULD_CALL_PARENT(FALSE) user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - if (user.a_intent && user.a_intent == I_HURT) + if (user.check_intent(I_FLAG_HARM)) if (ishuman(user)) var/mob/living/human/H = user @@ -279,7 +279,7 @@ return ..() // handle generic interactions, bashing, etc /obj/structure/window/bash(obj/item/weapon, mob/user) - if(isliving(user) && user.a_intent == I_HELP) + if(isliving(user) && user.check_intent(I_FLAG_HELP)) return FALSE if(!weapon.user_can_attack_with(user)) return FALSE @@ -311,7 +311,7 @@ thing.set_color(paint_color) /obj/structure/window/grab_attack(obj/item/grab/grab, mob/user) - if (user.a_intent != I_HURT) + if (!user.check_intent(I_FLAG_HARM)) return TRUE if (!grab.force_danger()) to_chat(user, SPAN_DANGER("You need a better grip to do that!")) diff --git a/code/game/turfs/flooring/_flooring.dm b/code/game/turfs/flooring/_flooring.dm index 981d5aa6b81d..3fc9cf8adc2e 100644 --- a/code/game/turfs/flooring/_flooring.dm +++ b/code/game/turfs/flooring/_flooring.dm @@ -272,7 +272,7 @@ var/global/list/flooring_cache = list() /decl/flooring/proc/handle_item_interaction(turf/floor/floor, mob/user, obj/item/item) - if(!istype(user) || !istype(item) || !istype(floor) || user.a_intent == I_HURT) + if(!istype(user) || !istype(item) || !istype(floor) || user.check_intent(I_FLAG_HARM)) return FALSE if(!(IS_SCREWDRIVER(item) && (flooring_flags & TURF_REMOVE_SCREWDRIVER)) && floor.try_graffiti(user, item)) diff --git a/code/game/turfs/flooring/flooring_wood.dm b/code/game/turfs/flooring/flooring_wood.dm index a9c136bfcb57..9b2b75b0ffd2 100644 --- a/code/game/turfs/flooring/flooring_wood.dm +++ b/code/game/turfs/flooring/flooring_wood.dm @@ -9,8 +9,8 @@ build_type = /obj/item/stack/tile/wood flooring_flags = TURF_IS_FRAGILE | TURF_REMOVE_SCREWDRIVER footstep_type = /decl/footsteps/wood - color = /decl/material/solid/organic/wood::color - force_material = /decl/material/solid/organic/wood + color = /decl/material/solid/organic/wood/oak::color + force_material = /decl/material/solid/organic/wood/oak constructed = TRUE gender = NEUTER broken_states = list( @@ -25,30 +25,80 @@ /decl/flooring/wood/mahogany color = /decl/material/solid/organic/wood/mahogany::color - build_type = /obj/item/stack/tile/mahogany + build_type = /obj/item/stack/tile/wood/mahogany force_material = /decl/material/solid/organic/wood/mahogany /decl/flooring/wood/maple color = /decl/material/solid/organic/wood/maple::color - build_type = /obj/item/stack/tile/maple + build_type = /obj/item/stack/tile/wood/maple force_material = /decl/material/solid/organic/wood/maple /decl/flooring/wood/ebony color = /decl/material/solid/organic/wood/ebony::color - build_type = /obj/item/stack/tile/ebony + build_type = /obj/item/stack/tile/wood/ebony force_material = /decl/material/solid/organic/wood/ebony /decl/flooring/wood/walnut color = /decl/material/solid/organic/wood/walnut::color - build_type = /obj/item/stack/tile/walnut + build_type = /obj/item/stack/tile/wood/walnut force_material = /decl/material/solid/organic/wood/walnut /decl/flooring/wood/bamboo color = /decl/material/solid/organic/wood/bamboo::color - build_type = /obj/item/stack/tile/bamboo + build_type = /obj/item/stack/tile/wood/bamboo force_material = /decl/material/solid/organic/wood/bamboo /decl/flooring/wood/yew color = /decl/material/solid/organic/wood/yew::color - build_type = /obj/item/stack/tile/yew + build_type = /obj/item/stack/tile/wood/yew force_material = /decl/material/solid/organic/wood/yew + +// Chipboard/wood laminate floors. Uses older icons. +/decl/flooring/laminate + name = "wooden laminate floor" + desc = "A stretch of closely-fitted sections of chipboard with a laminated veneer." + icon = 'icons/turf/flooring/laminate.dmi' + icon_base = "wood" + damage_temperature = T0C+200 + descriptor = "sections" + build_type = /obj/item/stack/tile/wood/laminate/oak + flooring_flags = TURF_IS_FRAGILE | TURF_REMOVE_SCREWDRIVER + footstep_type = /decl/footsteps/wood + color = /decl/material/solid/organic/wood/chipboard::color + force_material = /decl/material/solid/organic/wood/chipboard + constructed = TRUE + gender = NEUTER + broken_states = list( + "broken0", + "broken1", + "broken2", + "broken3", + "broken4", + "broken5", + "broken6" + ) + +/decl/flooring/laminate/mahogany + color = /decl/material/solid/organic/wood/chipboard/mahogany::color + build_type = /obj/item/stack/tile/wood/laminate/mahogany + force_material = /decl/material/solid/organic/wood/chipboard/mahogany + +/decl/flooring/laminate/maple + color = /decl/material/solid/organic/wood/chipboard/maple::color + build_type = /obj/item/stack/tile/wood/laminate/maple + force_material = /decl/material/solid/organic/wood/chipboard/maple + +/decl/flooring/laminate/ebony + color = /decl/material/solid/organic/wood/chipboard/ebony::color + build_type = /obj/item/stack/tile/wood/laminate/ebony + force_material = /decl/material/solid/organic/wood/chipboard/ebony + +/decl/flooring/laminate/walnut + color = /decl/material/solid/organic/wood/chipboard/walnut::color + build_type = /obj/item/stack/tile/wood/laminate/walnut + force_material = /decl/material/solid/organic/wood/chipboard/yew + +/decl/flooring/laminate/yew + color = /decl/material/solid/organic/wood/chipboard/yew::color + build_type = /obj/item/stack/tile/wood/laminate/yew + force_material = /decl/material/solid/organic/wood/chipboard/yew diff --git a/code/game/turfs/floors/subtypes/floor_wood.dm b/code/game/turfs/floors/subtypes/floor_wood.dm index 9ab163825a6f..d5fa771be77a 100644 --- a/code/game/turfs/floors/subtypes/floor_wood.dm +++ b/code/game/turfs/floors/subtypes/floor_wood.dm @@ -2,7 +2,7 @@ name = "wooden floor" icon = 'icons/turf/flooring/wood.dmi' icon_state = "wood0" - color = /decl/material/solid/organic/wood::color + color = /decl/material/solid/organic/wood/oak::color _flooring = /decl/flooring/wood /turf/floor/wood/broken @@ -54,3 +54,57 @@ /turf/floor/wood/yew color = /decl/material/solid/organic/wood/yew::color _flooring = /decl/flooring/wood/yew + +// Laminate floor; basically identical to wood, but uses older smoother icons. +/turf/floor/laminate + name = "wooden laminate floor" + icon = 'icons/turf/flooring/laminate.dmi' + icon_state = "wood" + color = /decl/material/solid/organic/wood/chipboard::color + _flooring = /decl/flooring/laminate + +/turf/floor/laminate/broken + icon_state = "wood_broken0" + _floor_broken = TRUE + +/turf/floor/laminate/broken/Initialize() + . = ..() + var/setting_broken = _floor_broken + _floor_broken = null + set_floor_broken(setting_broken) + +/turf/floor/laminate/broken/one + icon_state = "wood_broken1" + _floor_broken = "broken1" + +/turf/floor/laminate/broken/two + icon_state = "wood_broken2" + _floor_broken = "broken2" + +/turf/floor/laminate/broken/three + icon_state = "wood_broken3" + _floor_broken = "broken3" + +/turf/floor/laminate/broken/four + icon_state = "wood_broken4" + _floor_broken = "broken4" + +/turf/floor/laminate/mahogany + color = /decl/material/solid/organic/wood/chipboard/mahogany::color + _flooring = /decl/flooring/laminate/mahogany + +/turf/floor/laminate/maple + color = /decl/material/solid/organic/wood/chipboard/maple::color + _flooring = /decl/flooring/laminate/maple + +/turf/floor/laminate/ebony + color = /decl/material/solid/organic/wood/chipboard/ebony::color + _flooring = /decl/flooring/laminate/ebony + +/turf/floor/laminate/walnut + color = /decl/material/solid/organic/wood/chipboard/walnut::color + _flooring = /decl/flooring/laminate/walnut + +/turf/floor/laminate/yew + color = /decl/material/solid/organic/wood/chipboard/yew::color + _flooring = /decl/flooring/laminate/yew diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index a25d818697fb..a034ac913ee2 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -247,7 +247,7 @@ to_chat(user, SPAN_WARNING("\The [src] is too hard to be dug with \the [W].")) return TRUE - if(user.a_intent == I_HELP && can_dig_pit(W.material?.hardness)) + if(user.check_intent(I_FLAG_HELP) && can_dig_pit(W.material?.hardness)) try_dig_pit(user, W) else if(can_dig_trench(W.material?.hardness)) try_dig_trench(user, W) @@ -292,7 +292,7 @@ reagents.trans_to(W, taking) return TRUE - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) user.visible_message(SPAN_NOTICE("\The [user] dips \the [W] into \the [reagents.get_primary_reagent_name()].")) W.fluid_act(reagents) return TRUE @@ -452,7 +452,7 @@ /turf/proc/try_graffiti(var/mob/vandal, var/obj/item/tool) - if(!tool.sharp || !can_engrave() || vandal.a_intent != I_HELP) + if(!tool.sharp || !can_engrave() || !vandal.check_intent(I_FLAG_HELP)) return FALSE if(jobban_isbanned(vandal, "Graffiti")) diff --git a/code/game/turfs/unsimulated/floor.dm b/code/game/turfs/unsimulated/floor.dm index 449745e5e122..c7d8fc3c6f11 100644 --- a/code/game/turfs/unsimulated/floor.dm +++ b/code/game/turfs/unsimulated/floor.dm @@ -52,6 +52,23 @@ /turf/unsimulated/floor/wood/broken6 icon_state = "wood_broken6" +/turf/unsimulated/floor/laminate + name = "wooden laminate floor" + icon = 'icons/turf/flooring/laminate.dmi' + icon_state = "wood" + +/turf/unsimulated/floor/laminate/broken + icon_state = "wood_broken0" + +/turf/unsimulated/floor/laminate/broken1 + icon_state = "wood_broken1" + +/turf/unsimulated/floor/laminate/broken2 + icon_state = "wood_broken2" + +/turf/unsimulated/floor/laminate/broken6 + icon_state = "wood_broken6" + /turf/unsimulated/floor/vault icon_state = "vault" diff --git a/code/game/turfs/walls/wall_attacks.dm b/code/game/turfs/walls/wall_attacks.dm index 4c567def7856..4f82673b1321 100644 --- a/code/game/turfs/walls/wall_attacks.dm +++ b/code/game/turfs/walls/wall_attacks.dm @@ -298,7 +298,7 @@ // Attack the wall with items var/force = W.get_attack_force(user) - if(istype(W,/obj/item/rcd) || istype(W, /obj/item/chems) || !force || user.a_intent == I_HELP) + if(istype(W,/obj/item/rcd) || istype(W, /obj/item/chems) || !force || user.check_intent(I_FLAG_HELP)) return ..() user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) diff --git a/code/game/turfs/walls/wall_log.dm b/code/game/turfs/walls/wall_log.dm index 3d092408226f..7cdf1fedc1a8 100644 --- a/code/game/turfs/walls/wall_log.dm +++ b/code/game/turfs/walls/wall_log.dm @@ -1,7 +1,7 @@ /turf/wall/log icon_state = "log" - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color girder_material = null floor_type = /turf/floor/dirt min_dismantle_amount = 3 diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm index b23758896974..ed23150edc8c 100644 --- a/code/game/turfs/walls/wall_types.dm +++ b/code/game/turfs/walls/wall_types.dm @@ -69,7 +69,7 @@ /turf/wall/wood color = COLOR_BROWN icon_state = "wood" - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /turf/wall/walnut color = COLOR_BROWN_ORANGE diff --git a/code/modules/acting/acting_items.dm b/code/modules/acting/acting_items.dm index ac454ee59754..43fab6332707 100644 --- a/code/modules/acting/acting_items.dm +++ b/code/modules/acting/acting_items.dm @@ -1,8 +1,8 @@ /obj/machinery/acting/wardrobe name = "wardrobe dispenser" desc = "A machine that dispenses holo-clothing for those in need." - icon = 'icons/obj/vending.dmi' - icon_state = "cart" + icon = 'icons/obj/machines/vending/cartridges.dmi' + icon_state = ICON_STATE_WORLD anchored = TRUE density = TRUE var/active = 1 diff --git a/code/modules/admin/admin_attack_log.dm b/code/modules/admin/admin_attack_log.dm index ae2938067fb9..433420e57eb1 100644 --- a/code/modules/admin/admin_attack_log.dm +++ b/code/modules/admin/admin_attack_log.dm @@ -43,7 +43,7 @@ var/intent = "(INTENT: N/A)" var/target_zone = "(ZONE_SEL: N/A)" if(attacker) - intent = "(INTENT: [uppertext(attacker.a_intent)])" + intent = "(INTENT: [uppertext(attacker.get_intent().name)])" if (attacker.get_target_zone()) target_zone = "(ZONE_SEL: [uppertext(attacker.get_target_zone())])" if(victim) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index b0b1aed79e3d..d8bcb207a121 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -3,7 +3,7 @@ desc = "A handy little spring-loaded trap for catching pesty rodents." icon_state = "mousetrap" origin_tech = @'{"combat":1}' - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak matter = list(/decl/material/solid/metal/steel = MATTER_AMOUNT_REINFORCEMENT) var/armed = 0 diff --git a/code/modules/banners/__banner.dm b/code/modules/banners/__banner.dm new file mode 100644 index 000000000000..647f3adc73a3 --- /dev/null +++ b/code/modules/banners/__banner.dm @@ -0,0 +1,141 @@ +/obj/item/banner + name = "banner" + desc = "A furled-up banner." + icon = 'icons/obj/items/banners/banner.dmi' + icon_state = ICON_STATE_WORLD + material = /decl/material/solid/organic/cloth + color = /decl/material/solid/organic/cloth::color + max_health = 20 + material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME + w_class = ITEM_SIZE_NORMAL + var/colourise_decal = TRUE + var/hung_desc = "The banner is rather unremarkable." + var/banner_type = /obj/item/banner + var/embroiderable = TRUE + var/name_prefix + var/list/decals + var/trim_color + +/obj/item/banner/Initialize(ml, material_key) + for(var/decal in decals) + if(ispath(decal)) + var/decl/banner_symbol/decal_decl = GET_DECL(decal) + decals[decal_decl] = decals[decal] + decals -= decal + . = ..() + +var/global/list/banner_type_to_symbols = list() +/obj/item/banner/proc/get_available_decals() + . = global.banner_type_to_symbols[banner_type] + if(!.) + . = list() + for(var/decl/banner_symbol/symbol in decls_repository.get_decls_of_type_unassociated(/decl/banner_symbol)) + if(banner_type in symbol.usable_by_banner_type) + . += symbol + global.banner_type_to_symbols[banner_type] = . + +// TODO: PROPER EMBROIDERY AND ITEM DECORATION. +/obj/item/banner/attackby(obj/item/used_item, mob/user) + + if(embroiderable && istype(used_item, /obj/item/stack/material/thread)) + + // TODO: check material crafting skill and do a do_after() + + if((!length(get_available_decals()) || length(decals)) && trim_color) + to_chat(user, SPAN_WARNING("\The [src] is already as decorated as it can be.")) + return TRUE + + var/obj/item/stack/material/thread/used_stack = used_item + if(used_stack.get_amount() < 5) + to_chat(user, SPAN_WARNING("You need at least five lengths of thread to embroider a banner.")) + return TRUE + + if(!trim_color) + user.visible_message("\The [user] sews a trim onto \the [src].") + trim_color = used_item.color + used_stack.use(5) + return TRUE + + if(length(get_available_decals()) && !length(decals)) + var/list/available_decals = get_available_decals() + var/decal_color = used_item.color + var/decal_to_sew = input(user, "Which symbol do you wish to add to \the [src]?", "Banner Symbol") as null|anything in available_decals + if(decal_to_sew && CanPhysicallyInteract(user) && !length(decals) && user.get_active_held_item() == used_item && used_stack.use(5)) + decals[decal_to_sew] = decal_color + return TRUE + + . = ..() + +// 'woven grass banner', 'forked linen banner' +/obj/item/banner/update_name() + . = ..() + SetName("[name_prefix] [name]") + +/obj/item/banner/examine(mob/user, distance, infix, suffix) + . = ..() + var/decorations = get_decal_string() + if(decorations) + to_chat(user, "\The [src] is decorated with [decorations].") + +/obj/item/banner/proc/get_decal_string() + for(var/decl/banner_symbol/decal in decals) + if(colourise_decal) + LAZYADD(., "\a [decal.name]") + else + LAZYADD(., "\a [decal.name]") + if(trim_color) + // This is weak but I'm not sure how else to phrase it without a color-to-string system. + LAZYADD(., "a trim") + if(.) + return english_list(.) + +/obj/item/banner/forked + name_prefix = "forked" + hung_desc = "The banner splits into two tails at the bottom." + icon = 'icons/obj/items/banners/banner_forked.dmi' + +/obj/item/banner/forked/get_available_decals() + return null // Current decals do not work nicely with the fork + +/obj/item/banner/pointed + name_prefix = "pointed" + hung_desc = "The banner narrows to a point at the bottom." + icon = 'icons/obj/items/banners/banner_pointed.dmi' + +/obj/item/banner/rounded + name_prefix = "rounded" + hung_desc = "The banner has a rounded lower edge." + icon = 'icons/obj/items/banners/banner_rounded.dmi' + +/obj/item/banner/square + name_prefix = "square" + hung_desc = "The banner has a squared-off lower edge." + icon = 'icons/obj/items/banners/banner_square.dmi' + +/obj/item/banner/tasselled + name_prefix = "tasselled" + hung_desc = "The banner has several dangling tassels at the bottom." + icon = 'icons/obj/items/banners/banner_tasselled.dmi' + +/obj/item/banner/woven + name_prefix = "woven" + icon = 'icons/obj/items/banners/banner_woven.dmi' + material = /decl/material/solid/organic/plantmatter/grass/dry + color = /decl/material/solid/organic/plantmatter/grass/dry::color + material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC + hung_desc = "The woven banner is rustic and uneven." + +/obj/item/banner/green + name = "green banner" + paint_color = COLOR_GREEN + color = COLOR_GREEN + +/obj/item/banner/red + name = "red banner" + paint_color = COLOR_RED + color = COLOR_RED + +/obj/item/banner/blue + name = "blue banner" + paint_color = COLOR_BLUE + color = COLOR_BLUE diff --git a/code/modules/banners/_banner_frame.dm b/code/modules/banners/_banner_frame.dm new file mode 100644 index 000000000000..39090a1ada7d --- /dev/null +++ b/code/modules/banners/_banner_frame.dm @@ -0,0 +1,126 @@ +/obj/structure/banner_frame + name = "banner frame" + desc = "A sturdy frame suitable for hanging a banner." + icon = 'icons/obj/structures/banner_frame.dmi' + icon_state = "banner_stand_preview" + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color + anchored = TRUE + opacity = FALSE + atom_flags = ATOM_FLAG_CLIMBABLE + layer = ABOVE_WINDOW_LAYER + obj_flags = OBJ_FLAG_ANCHORABLE + tool_interaction_flags = (TOOL_INTERACTION_ANCHOR | TOOL_INTERACTION_DECONSTRUCT) + material_alteration = MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_COLOR + max_health = 50 + density = TRUE + + var/force_south_facing = TRUE + var/base_icon_state = "banner_stand" + /// Reference to any banner currently hung on the frame. + var/obj/item/banner/banner + var/accepts_banner_type = /obj/item/banner + +/obj/structure/banner_frame/set_dir(ndir) + return ..(force_south_facing ? SOUTH : ndir) + +/obj/structure/banner_frame/Initialize(ml, _mat, _reinf_mat) + if(ispath(banner)) + set_banner(new banner(src)) + . = ..() + update_icon() + +/obj/structure/banner_frame/proc/set_banner(var/new_banner) + if(banner == new_banner) + return + banner = new_banner + if(banner) + name = banner.name + var/list/desc_strings = list(initial(desc), banner.hung_desc) + var/decorations = banner.get_decal_string() + if(decorations) + desc_strings += "It is decorated with [decorations]." + desc = jointext(desc_strings, " ") + else + name = initial(name) + desc = initial(desc) + update_icon() + +/obj/structure/banner_frame/attack_hand(mob/user) + if(banner && user.check_dexterity(DEXTERITY_HOLD_ITEM)) + user.put_in_hands(banner) + var/old_banner = banner + set_banner(null) + user.visible_message( + SPAN_NOTICE("\The [user] removes \the [old_banner] from \the [src]."), + SPAN_NOTICE("You remove \the [old_banner] from \the [src]."), + SPAN_NOTICE("You hear the rustling of fabric.") + ) + return TRUE + return ..() + +/obj/structure/banner_frame/attackby(obj/item/O, mob/user) + if(istype(O, /obj/item/banner)) + if(banner) + to_chat(user, SPAN_WARNING("There is already a banner hung on \the [src].")) + return TRUE + + var/obj/item/banner/other_banner = O + if(other_banner.banner_type != accepts_banner_type) + to_chat(user, SPAN_WARNING("\The [src] is not suitable for hanging \the [O].")) + return TRUE + + if(user.try_unequip(O, src)) + user.visible_message(SPAN_NOTICE("\The [user] hangs \the [O] from \the [src]."), SPAN_NOTICE("You hang \the [O] from \the [src]."), SPAN_NOTICE("You hear the rustling of fabric.")) + set_banner(O) + return TRUE + return ..() + +/obj/structure/banner_frame/dump_contents(atom/forced_loc = loc, mob/user) + if(istype(banner)) + banner.dropInto(forced_loc) + banner = null + . = ..() + +/obj/structure/banner_frame/on_update_icon() + . = ..() + + icon_state = base_icon_state + if(!istype(banner)) + return + + var/image/I = image(banner.icon, "[banner.icon_state]-hanging") + I.appearance_flags |= RESET_COLOR + I.color = banner.color + add_overlay(I) + + for(var/decl/banner_symbol/decal as anything in banner.decals) + I = image(decal.icon, decal.icon_state) + I.appearance_flags |= RESET_COLOR + I.blend_mode = BLEND_INSET_OVERLAY // Masks us to the banner icon. + if(banner.colourise_decal) + I.color = banner.decals[decal] + else + I.color = banner.color + add_overlay(I) + + if(banner.trim_color) + I = image(banner.icon, "[banner.icon_state]-trim") + I.appearance_flags |= RESET_COLOR + I.color = banner.trim_color + add_overlay(I) + +/obj/structure/banner_frame/Destroy() + if(istype(banner)) + QDEL_NULL(banner) + return ..() + +// A wall-mounted banner frame with no stand. +/obj/structure/banner_frame/wall + name = "hanging banner frame" + desc = "A sturdy frame suitable for hanging a banner." + icon_state = "banner_hanging_preview" + base_icon_state = "banner_hanging" + directional_offset = @'{"NORTH":{"y":-32},"SOUTH":{"y":-32},"EAST":{"x":-32},"WEST":{"x":-32}}' + force_south_facing = FALSE + density = FALSE diff --git a/code/modules/banners/_banner_symbols.dm b/code/modules/banners/_banner_symbols.dm new file mode 100644 index 000000000000..2de8b8a6521d --- /dev/null +++ b/code/modules/banners/_banner_symbols.dm @@ -0,0 +1,201 @@ +/decl/banner_symbol + abstract_type = /decl/banner_symbol + decl_flags = DECL_FLAG_MANDATORY_UID + /// Icon to draw from when rendering on a banner. + var/icon = 'icons/obj/items/banners/banner_symbols.dmi' + /// Icon state to draw from the icon. + var/icon_state + /// String used to select/describe a symbol + var/name + var/usable_by_banner_type = list( + /obj/item/banner + ) + +/decl/banner_symbol/validate() + . = ..() + if(!icon) + . += "null icon" + if(!istext(icon_state)) + . += "invalid/null icon_state" + if(!istext(name)) + . += "invalid/null name" + if(icon && icon_state && !check_state_in_icon(icon_state, icon)) + . += "missing icon_state '[icon_state]' from icon '[icon]'" + +// Default definitions below. +/decl/banner_symbol/starburst + name = "starburst" + icon_state = "starburst" + uid = "symbol_starburst" + +/decl/banner_symbol/fern + name = "fern" + icon_state = "fern" + uid = "symbol_fern" + +/decl/banner_symbol/snowflake + name = "snowflake" + icon_state = "snowflake" + uid = "symbol_snowflake" + +/decl/banner_symbol/sun + name = "sun" + icon_state = "sun" + uid = "symbol_sun" + +/decl/banner_symbol/scarab + name = "scarab" + icon_state = "scarab" + uid = "symbol_scarab" + +/decl/banner_symbol/triangle_chevron + name = "triangle with chevron" + icon_state = "triangle with chevron" + uid = "symbol_triangle_chevron" + +/decl/banner_symbol/triangle_down + name = "downward triangle" + icon_state = "downward triangle" + uid = "symbol_triangle_down" + +/decl/banner_symbol/triangle_up + name = "upward triangle" + icon_state = "upward triangle" + uid = "symbol_triangle_up" + +/decl/banner_symbol/hand + name = "hand" + icon_state = "hand" + uid = "symbol_hand" + +/decl/banner_symbol/sword + name = "sword" + icon_state = "sword" + uid = "symbol_sword" + +/decl/banner_symbol/knot + name = "knot" + icon_state = "knot" + uid = "symbol_knot" + +/decl/banner_symbol/circled_cup + name = "circled cup" + icon_state = "circled cup" + uid = "symbol_cup_circle" + +/decl/banner_symbol/aquila + name = "aquila" + icon_state = "aquila" + uid = "symbol_aquila" + +/decl/banner_symbol/orb + name = "orb" + icon_state = "orb" + uid = "symbol_orb" + +/decl/banner_symbol/bird_head + name = "bird head" + icon_state = "bird head" + uid = "symbol_bird_head" + +/decl/banner_symbol/deer + name = "deer" + icon_state = "deer" + uid = "symbol_deer" + +/decl/banner_symbol/deer_antler + name = "antlered deer" + icon_state = "antlered deer" + uid = "symbol_deer_antler" + +/decl/banner_symbol/duck + name = "duck head" + icon_state = "duck head" + uid = "symbol_duck_head" + +/decl/banner_symbol/frog + name = "frog" + icon_state = "frog" + uid = "symbol_frog" + +/decl/banner_symbol/fish + name = "fish" + icon_state = "fish" + uid = "symbol_fish" + +/decl/banner_symbol/bird + name = "bird" + icon_state = "bird" + uid = "symbol_bird" + +/decl/banner_symbol/cross + name = "cross" + icon_state = "cross" + uid = "symbol_cross" + +/decl/banner_symbol/sign + icon = 'icons/obj/items/banners/sign_symbols.dmi' + abstract_type = /decl/banner_symbol/sign + usable_by_banner_type = list( + /obj/item/banner/sign + ) + +/decl/banner_symbol/sign/mug + name = "mug" + icon_state = "mug" + uid = "symbol_sign_mug" + +/decl/banner_symbol/sign/scales + name = "scales" + icon_state = "scales" + uid = "symbol_sign_scales" + +/decl/banner_symbol/sign/mortar_pestle + name = "mortar and pestle" + icon_state = "mortar and pestle" + uid = "symbol_sign_mortar_pestle" + +/decl/banner_symbol/sign/pick_shovel + name = "pick and shovel" + icon_state = "pick and shovel" + uid = "symbol_sign_pick_shovel" + +/decl/banner_symbol/sign/face + name = "face" + icon_state = "face" + uid = "symbol_sign_face" + +/decl/banner_symbol/sign/crescent + name = "crescent" + icon_state = "crescent" + uid = "symbol_sign_crescent" + +/decl/banner_symbol/sign/vial + name = "vial" + icon_state = "vial" + uid = "symbol_sign_vial" + +/decl/banner_symbol/sign/spool + name = "spool" + icon_state = "spool" + uid = "symbol_sign_spool" + +/decl/banner_symbol/sign/pawnbroker + name = "pawnbroker" + icon_state = "pawnbroker" + uid = "symbol_sign_pawnbroker" + +/decl/banner_symbol/sign/sword + name = "sword" + icon_state = "sword" + uid = "symbol_sign_sword" + +/decl/banner_symbol/sign/cross + name = "cross" + icon_state = "cross" + uid = "symbol_sign_cross" + +/decl/banner_symbol/sign/circle + name = "circle" + icon_state = "circle" + uid = "symbol_sign_circle" diff --git a/code/modules/banners/banner_frame_definitions.dm b/code/modules/banners/banner_frame_definitions.dm new file mode 100644 index 000000000000..cf09eaf4652a --- /dev/null +++ b/code/modules/banners/banner_frame_definitions.dm @@ -0,0 +1,57 @@ +// Mapping helpers below. +/obj/structure/banner_frame/blue + banner = /obj/item/banner/blue + color = /obj/item/banner/blue::color // Mapping preview colour. + +/obj/structure/banner_frame/red + banner = /obj/item/banner/red + color = /obj/item/banner/red::color + +/obj/structure/banner_frame/green + banner = /obj/item/banner/green + color = /obj/item/banner/green::color + +/obj/structure/banner_frame/wall/ebony + material = /decl/material/solid/organic/wood/ebony + color = /decl/material/solid/organic/wood/ebony::color + +/obj/structure/banner_frame/wall/ebony/red + banner = /obj/item/banner/red + color = /obj/item/banner/red::color // Mapping preview colour. + +/obj/structure/banner_frame/wall/ebony/blue + banner = /obj/item/banner/blue + color = /obj/item/banner/blue::color + +/obj/structure/banner_frame/wall/ebony/green + banner = /obj/item/banner/green + color = /obj/item/banner/green::color + +/obj/structure/banner_frame/wall/ebony/woven + banner = /obj/item/banner/woven + color = /obj/item/banner/woven::color + +// Debug item. +/obj/structure/banner_frame/random/Initialize(ml, _mat, _reinf_mat) + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/structure/banner_frame/random/LateInitialize() + ..() + var/banner_type = pick(list( + /obj/item/banner/pointed, + /obj/item/banner/rounded, + /obj/item/banner/square, + /obj/item/banner/tasselled, + /obj/item/banner/woven + )) + var/obj/item/banner/new_banner = new banner_type(src) + new_banner.set_color(get_random_colour()) + new_banner.trim_color = get_random_colour() + var/list/available_decals = new_banner.get_available_decals() + if(length(available_decals)) + var/decal = pick(available_decals) + var/decal_color = get_random_colour() + LAZYSET(new_banner.decals, decal, decal_color) + new_banner.update_icon() + set_banner(new_banner) diff --git a/code/modules/banners/sign.dm b/code/modules/banners/sign.dm new file mode 100644 index 000000000000..835a88424278 --- /dev/null +++ b/code/modules/banners/sign.dm @@ -0,0 +1,25 @@ +/obj/item/banner/sign + name = "sign" + banner_type = /obj/item/banner/sign + embroiderable = FALSE + icon = 'icons/obj/items/banners/sign.dmi' + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color + hung_desc = "The sign is unadorned." + colourise_decal = FALSE + +/obj/item/banner/sign/attackby(obj/item/used_item, mob/user) + if(IS_KNIFE(used_item) && user.check_intent(I_FLAG_HELP)) + var/available_decals = get_available_decals() + if(!length(available_decals) || length(decals)) + to_chat(user, SPAN_WARNING("\The [src] is already as decorated as it can be.")) + return TRUE + var/decal_to_add = input(user, "Which symbol do you wish to add to \the [src]?", "Sign Symbol") as null|anything in available_decals + if(decal_to_add && CanPhysicallyInteract(user) && !length(decals) && user.get_active_held_item() == used_item) + decals[decal_to_add] = COLOR_WHITE + return TRUE + . = ..() + +/obj/item/banner/sign/random/Initialize(ml, material_key) + material = pick(typesof(/decl/material/solid/organic/wood)) + . = ..() diff --git a/code/modules/banners/sign_post.dm b/code/modules/banners/sign_post.dm new file mode 100644 index 000000000000..d1d0f959023e --- /dev/null +++ b/code/modules/banners/sign_post.dm @@ -0,0 +1,32 @@ +// what is a sign, if not a wooden banner +/obj/structure/banner_frame/sign + name = "sign post" + desc = "A post for hanging a sign." + icon = 'icons/obj/structures/sign_post.dmi' + desc = "A post for hanging a sign." + base_icon_state = "sign" + accepts_banner_type = /obj/item/banner/sign + icon_state = "sign_preview" + density = TRUE + +/obj/structure/banner_frame/sign/wall + base_icon_state = "sign_hanging" + icon_state = "sign_hanging_preview" + force_south_facing = FALSE + density = FALSE + +/obj/structure/banner_frame/sign/random/Initialize(ml, _mat, _reinf_mat) + material = pick(typesof(/decl/material/solid/organic/wood)) + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/structure/banner_frame/sign/random/LateInitialize() + . = ..() + var/obj/item/banner/new_banner = new /obj/item/banner/sign/random(src) + if(new_banner) + var/list/available_decals = new_banner.get_available_decals() + if(length(available_decals)) + var/decal = pick(available_decals) + LAZYSET(new_banner.decals, decal, COLOR_WHITE) + new_banner.update_icon() + set_banner(new_banner) diff --git a/code/modules/butchery/butchery_hook.dm b/code/modules/butchery/butchery_hook.dm index bd34f55f0c2b..ae3ea54b8dde 100644 --- a/code/modules/butchery/butchery_hook.dm +++ b/code/modules/butchery/butchery_hook.dm @@ -35,7 +35,7 @@ name = "truss" icon_state = "improvised" secures_occupant = FALSE - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak parts_type = /obj/item/stack/material/plank /obj/structure/meat_hook/attack_hand(var/mob/user) diff --git a/code/modules/client/mouse_pointer/_mouse_pointer.dm b/code/modules/client/mouse_pointer/_mouse_pointer.dm new file mode 100644 index 000000000000..3f42c8b3f4e8 --- /dev/null +++ b/code/modules/client/mouse_pointer/_mouse_pointer.dm @@ -0,0 +1,67 @@ +/* + * Adds pointer entries to clients to allow for multiple sources wanting to modify the cursor at once. + * - add_mouse_pointer(pointer_type, pointer_priority, icon_index) will add or replace a pointer of the specified /decl/mouse_pointer type. + * - remove_mouse_pointer(pointer_type) will clear that entry. + * - Updates are handled automatically by adding/removing, other procs should not be used without a good reason. + */ + +/client + VAR_PRIVATE/list/_mouse_pointers + +/client/proc/clear_mouse_pointers() + if(LAZYLEN(_mouse_pointers)) + LAZYCLEARLIST(_mouse_pointers) + update_mouse_pointer() + return TRUE + return FALSE + +/client/proc/set_mouse_pointer_icon(new_cursor) + if(isnull(new_cursor)) + new_cursor = initial(mouse_pointer_icon) + if(mouse_pointer_icon != new_cursor) + mouse_pointer_icon = new_cursor + return TRUE + return FALSE + +/client/proc/add_mouse_pointer(pointer_type, pointer_priority = 1, icon_index = 1) + + // Is an identical pointer already being tracked? + var/decl/mouse_pointer/pointer_decl = ispath(pointer_type) ? GET_DECL(pointer_type) : pointer_type + if(!isnum(icon_index) || icon_index < 1 || icon_index > length(pointer_decl.icons)) + CRASH("Invalid icon_index passed to add_mouse_pointer() for [pointer_type].") + + var/pointer_icon = pointer_decl.icons[icon_index] + var/list/comparing = _mouse_pointers?[pointer_type] + if(islist(comparing) && comparing["icon"] == pointer_icon && comparing["priority"] == pointer_priority) + return FALSE + + // Update our list entry. If we have multiple pointers, sort by priority. + var/need_update = !(pointer_type in _mouse_pointers) + LAZYSET(_mouse_pointers, pointer_type, list("icon" = pointer_icon, "priority" = pointer_priority)) + if(LAZYLEN(_mouse_pointers) > 1) + _mouse_pointers = sortTim(_mouse_pointers, /proc/cmp_priority_list, TRUE) + need_update = TRUE + + // Refresh if needed. + if(need_update) + update_mouse_pointer() + +/client/proc/remove_mouse_pointer(pointer_type) + if(!_mouse_pointers?[pointer_type]) + return FALSE + var/current_pointer = _mouse_pointers[1] + LAZYREMOVE(_mouse_pointers, pointer_type) + if(pointer_type == current_pointer) + update_mouse_pointer() + return TRUE + +/client/proc/update_mouse_pointer() + if(!LAZYLEN(_mouse_pointers)) + return set_mouse_pointer_icon() + var/list/pointer = _mouse_pointers[_mouse_pointers[1]] + if(!islist(pointer)) + return set_mouse_pointer_icon() + var/set_pointer = pointer["icon"] + if(isicon(set_pointer)) + return set_mouse_pointer_icon(set_pointer) + return set_mouse_pointer_icon() diff --git a/code/modules/client/mouse_pointer/mouse_pointer_definitions.dm b/code/modules/client/mouse_pointer/mouse_pointer_definitions.dm new file mode 100644 index 000000000000..f03d328975a1 --- /dev/null +++ b/code/modules/client/mouse_pointer/mouse_pointer_definitions.dm @@ -0,0 +1,31 @@ +/decl/mouse_pointer + abstract_type = /decl/mouse_pointer + /// Icon to set on the client for this cursor. + var/list/icons + +/decl/mouse_pointer/Initialize() + . = ..() + if(icons && !islist(icons)) + icons = list(icons) + +/decl/mouse_pointer/validate() + . = ..() + if(length(icons)) + var/static/list/check_states = list( + "", + "over", + "drag", + "drop", + "all" + ) + for(var/icon in icons) + for(var/check_state in check_states) + if(!check_state_in_icon(check_state, icon)) + . += "missing state '[check_state]' from icon '[icon]'" + else + . += "null or empty icon list" + +// Subtypes for use in add_mouse_pointer() below. +/decl/mouse_pointer/examine + uid = "pointer_examine" + icons = 'icons/effects/mouse_pointers/examine_pointer.dmi' diff --git a/code/modules/client/preference_setup/loadout/lists/misc.dm b/code/modules/client/preference_setup/loadout/lists/misc.dm index 5db0b1b2e4cc..064cd91dfae8 100644 --- a/code/modules/client/preference_setup/loadout/lists/misc.dm +++ b/code/modules/client/preference_setup/loadout/lists/misc.dm @@ -9,7 +9,7 @@ var/list/available_materials = list( /decl/material/solid/metal/aluminium, /decl/material/solid/organic/plastic, - /decl/material/solid/organic/wood, + /decl/material/solid/organic/wood/oak, /decl/material/solid/organic/wood/bamboo, /decl/material/solid/organic/wood/ebony, /decl/material/solid/organic/wood/mahogany, diff --git a/code/modules/client/ui_styles/_helpers.dm b/code/modules/client/ui_styles/_helpers.dm index 36685c53f351..83ceb172a415 100644 --- a/code/modules/client/ui_styles/_helpers.dm +++ b/code/modules/client/ui_styles/_helpers.dm @@ -13,7 +13,6 @@ UI_ICON_HEALTH = 'icons/mob/screen/styles/health.dmi', UI_ICON_CRIT_MARKER = 'icons/mob/screen/styles/crit_markers.dmi', UI_ICON_HYDRATION = 'icons/mob/screen/styles/hydration.dmi', - UI_ICON_INTENT = 'icons/mob/screen/styles/intents.dmi', UI_ICON_INTERACTION = 'icons/mob/screen/styles/midnight/interaction.dmi', UI_ICON_INTERNALS = 'icons/mob/screen/styles/internals.dmi', UI_ICON_INVENTORY = 'icons/mob/screen/styles/midnight/inventory.dmi', diff --git a/code/modules/client/ui_styles/_ui_style.dm b/code/modules/client/ui_styles/_ui_style.dm index 24e3d9085160..5e0a5ba34c41 100644 --- a/code/modules/client/ui_styles/_ui_style.dm +++ b/code/modules/client/ui_styles/_ui_style.dm @@ -13,7 +13,6 @@ UI_ICON_HEALTH = 'icons/mob/screen/styles/health.dmi', UI_ICON_CRIT_MARKER = 'icons/mob/screen/styles/crit_markers.dmi', UI_ICON_HYDRATION = 'icons/mob/screen/styles/hydration.dmi', - UI_ICON_INTENT = 'icons/mob/screen/styles/intents.dmi', UI_ICON_INTERACTION = 'icons/mob/screen/styles/midnight/interaction.dmi', UI_ICON_INTERNALS = 'icons/mob/screen/styles/internals.dmi', UI_ICON_INVENTORY = 'icons/mob/screen/styles/midnight/inventory.dmi', diff --git a/code/modules/client/ui_styles/_ui_style_states.dm b/code/modules/client/ui_styles/_ui_style_states.dm index bac1d053713e..881a423335e8 100644 --- a/code/modules/client/ui_styles/_ui_style_states.dm +++ b/code/modules/client/ui_styles/_ui_style_states.dm @@ -10,7 +10,6 @@ var/global/list/_ui_all_keys = list( UI_ICON_NUTRITION, UI_ICON_HYDRATION, UI_ICON_FIRE_INTENT, - UI_ICON_INTENT, UI_ICON_UP_HINT, UI_ICON_STATUS, UI_ICON_STATUS_FIRE, @@ -73,14 +72,6 @@ var/global/list/_ui_expected_states "hydration3", "hydration4" ), - UI_ICON_INTENT = list( - "intent_all", - "intent_help", - "intent_disarm", - "intent_grab", - "intent_harm", - "intent_none" - ), UI_ICON_INTERACTION = list( "act_resist", "act_throw_off", diff --git a/code/modules/client/ui_styles/ui_style_subtypes.dm b/code/modules/client/ui_styles/ui_style_subtypes.dm index 7fbd15f6c0db..cff4d996c43b 100644 --- a/code/modules/client/ui_styles/ui_style_subtypes.dm +++ b/code/modules/client/ui_styles/ui_style_subtypes.dm @@ -66,7 +66,6 @@ UI_ICON_ATTACK = 'icons/mob/screen/styles/minimalist/attack_selector.dmi', UI_ICON_FIRE_INTENT = 'icons/mob/screen/styles/minimalist/fire_intent.dmi', UI_ICON_HANDS = 'icons/mob/screen/styles/minimalist/hands.dmi', - UI_ICON_INTENT = 'icons/mob/screen/styles/minimalist/intents.dmi', UI_ICON_INTERACTION = 'icons/mob/screen/styles/minimalist/interaction.dmi', UI_ICON_INVENTORY = 'icons/mob/screen/styles/minimalist/inventory.dmi', UI_ICON_MOVEMENT = 'icons/mob/screen/styles/minimalist/movement.dmi', diff --git a/code/modules/clothing/_clothing.dm b/code/modules/clothing/_clothing.dm index be67a2323ee4..4c2a1259995f 100644 --- a/code/modules/clothing/_clothing.dm +++ b/code/modules/clothing/_clothing.dm @@ -101,7 +101,7 @@ /obj/item/clothing/attackby(obj/item/I, mob/user) var/rags = RAG_COUNT(src) - if(istype(material) && material.default_solid_form && rags && (I.edge || I.sharp) && user.a_intent == I_HURT) + if(istype(material) && material.default_solid_form && rags && (I.edge || I.sharp) && user.check_intent(I_FLAG_HARM)) if(length(accessories)) to_chat(user, SPAN_WARNING("You should remove the accessories attached to \the [src] first.")) return TRUE diff --git a/code/modules/clothing/badges/_badge.dm b/code/modules/clothing/badges/_badge.dm index d4767634d082..c894afd0e080 100644 --- a/code/modules/clothing/badges/_badge.dm +++ b/code/modules/clothing/badges/_badge.dm @@ -58,7 +58,7 @@ user.visible_message("[user] displays their [src.name].\nIt reads: [badge_string].","You display your [src.name]. It reads: [badge_string].") /obj/item/clothing/badge/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(isliving(user) && user.a_intent == I_HURT) + if(isliving(user) && user.check_intent(I_FLAG_HARM)) user.visible_message( SPAN_DANGER("\The [user] invades \the [target]'s personal space, thrusting \the [src] into their face insistently."), SPAN_DANGER("You invade \the [target]'s personal space, thrusting \the [src] into their face insistently.") diff --git a/code/modules/clothing/ears/earrings.dm b/code/modules/clothing/ears/earrings.dm index f1f6f2b3867e..fd7da2c59bf7 100644 --- a/code/modules/clothing/ears/earrings.dm +++ b/code/modules/clothing/ears/earrings.dm @@ -7,7 +7,7 @@ /obj/item/clothing/ears/stud/glass material = /decl/material/solid/glass /obj/item/clothing/ears/stud/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/clothing/ears/stud/iron material = /decl/material/solid/metal/iron /obj/item/clothing/ears/stud/steel @@ -30,7 +30,7 @@ /obj/item/clothing/ears/dangle/glass material = /decl/material/solid/glass /obj/item/clothing/ears/dangle/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/clothing/ears/dangle/iron material = /decl/material/solid/metal/iron /obj/item/clothing/ears/dangle/steel diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 6616b9929290..19e0a6c4aca2 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -153,7 +153,7 @@ // Duplicated from growns for now. TODO: move sliceability down to other objects like clay. /obj/item/clothing/head/pumpkinhead/attackby(obj/item/W, mob/user) - if(IS_KNIFE(W) && user.a_intent != I_HURT) + if(IS_KNIFE(W) && !user.check_intent(I_FLAG_HARM)) var/datum/seed/plant = SSplants.seeds[plant_type] if(!plant) return ..() diff --git a/code/modules/clothing/masks/smokable.dm b/code/modules/clothing/masks/smokable.dm index 89284f65169a..e36a224c7873 100644 --- a/code/modules/clothing/masks/smokable.dm +++ b/code/modules/clothing/masks/smokable.dm @@ -358,7 +358,7 @@ name = "wooden tip" icon = 'icons/clothing/mask/smokables/cigar_butt.dmi' desc = "A wooden mouthpiece from a cigar. Smells rather bad." - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/clothing/mask/smokable/cigarette/attackby(var/obj/item/W, var/mob/user) if(istype(W, /obj/item/energy_blade/sword)) diff --git a/code/modules/clothing/misc/dog_tags.dm b/code/modules/clothing/misc/dog_tags.dm index a8a79f362f27..0b81dc8b225c 100644 --- a/code/modules/clothing/misc/dog_tags.dm +++ b/code/modules/clothing/misc/dog_tags.dm @@ -12,7 +12,7 @@ var/owner_branch /obj/item/clothing/dog_tags/attack_self(mob/user) - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) user.visible_message(SPAN_NOTICE("\The [user] displays \the [src].")) if(owner_name) user.visible_message(SPAN_NOTICE("They read: \"[owner_name] - [owner_rank] - [owner_branch].\"")) diff --git a/code/modules/clothing/neck/stethoscope.dm b/code/modules/clothing/neck/stethoscope.dm index 903491c3c0a7..b4ccdd762435 100644 --- a/code/modules/clothing/neck/stethoscope.dm +++ b/code/modules/clothing/neck/stethoscope.dm @@ -5,7 +5,7 @@ accessory_visibility = ACCESSORY_VISIBILITY_ATTACHMENT /obj/item/clothing/neck/stethoscope/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(ishuman(target) && isliving(user) && user.a_intent == I_HELP) + if(ishuman(target) && isliving(user) && user.check_intent(I_FLAG_HELP)) var/obj/item/organ/organ = GET_EXTERNAL_ORGAN(target, user.get_target_zone()) if(organ) user.visible_message( diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm index a06b83ab8f65..5f16eca89002 100644 --- a/code/modules/clothing/spacesuits/rig/modules/combat.dm +++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm @@ -320,7 +320,7 @@ if(!check() || !gun) return 0 - if(holder.wearer.a_intent == I_HURT || !target.Adjacent(holder.wearer)) + if(holder.wearer.check_intent(I_FLAG_HARM) || !target.Adjacent(holder.wearer)) gun.Fire(target,holder.wearer) return 1 else diff --git a/code/modules/crafting/handmade_items.dm b/code/modules/crafting/handmade_items.dm index d870d9ecf31c..4c294d38b78d 100644 --- a/code/modules/crafting/handmade_items.dm +++ b/code/modules/crafting/handmade_items.dm @@ -69,13 +69,13 @@ volume = 60 /obj/item/chems/glass/handmade/cup/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/chems/glass/handmade/mug/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/chems/glass/handmade/bowl/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/chems/glass/handmade/bottle/beer/populate_reagents() diff --git a/code/modules/crafting/pottery/pottery_moulds.dm b/code/modules/crafting/pottery/pottery_moulds.dm index 7f256ce87376..0075f90ea29f 100644 --- a/code/modules/crafting/pottery/pottery_moulds.dm +++ b/code/modules/crafting/pottery/pottery_moulds.dm @@ -59,7 +59,7 @@ /obj/item/chems/mould/attackby(obj/item/W, mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() // This is kind of gross but getting /chems/attackby() diff --git a/code/modules/crafting/slapcrafting/_crafting_stage.dm b/code/modules/crafting/slapcrafting/_crafting_stage.dm index 6b1cc730cd72..23275abf92b0 100644 --- a/code/modules/crafting/slapcrafting/_crafting_stage.dm +++ b/code/modules/crafting/slapcrafting/_crafting_stage.dm @@ -10,6 +10,8 @@ var/begins_with_object_type var/list/next_stages var/product + /// What is the minimum map tech level to have access to this recipe? + var/available_to_map_tech_level = MAP_TECH_LEVEL_ANY /decl/crafting_stage/Initialize() . = ..() @@ -18,12 +20,15 @@ stages += GET_DECL(nid) next_stages = stages +/decl/crafting_stage/proc/is_available() + return global.using_map.map_tech_level >= available_to_map_tech_level + /decl/crafting_stage/proc/can_begin_with(var/obj/item/thing) . = istype(thing, begins_with_object_type) /decl/crafting_stage/proc/get_next_stage(var/obj/item/trigger) for(var/decl/crafting_stage/next_stage in next_stages) - if(next_stage.is_appropriate_tool(trigger) && next_stage.is_sufficient_amount(null, trigger)) + if(next_stage.is_available() && next_stage.is_appropriate_tool(trigger) && next_stage.is_sufficient_amount(null, trigger)) return next_stage /decl/crafting_stage/proc/progress_to(var/obj/item/thing, var/mob/user, var/obj/item/target) diff --git a/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_floorbot.dm b/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_floorbot.dm index 0c270b5d63e1..38a9a9da5077 100644 --- a/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_floorbot.dm +++ b/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_floorbot.dm @@ -6,6 +6,7 @@ progress_message = "You dump a bunch of floor tiles into the empty toolbox." item_icon_state = "floorbot_1" next_stages = list(/decl/crafting_stage/proximity/floorbot) + available_to_map_tech_level = MAP_TECH_LEVEL_SPACE /decl/crafting_stage/proximity/floorbot progress_message = "You wedge the proximity sensor in amongst the floor tiles." @@ -22,4 +23,4 @@ var/mob/living/bot/floorbot/bot = . var/obj/item/toolbox/box = locate() in work bot.boxtype = box.icon_state - bot.update_icon() + bot.update_icon() diff --git a/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_janibot.dm b/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_janibot.dm index 8b249c33ad39..90b6b3a8d18a 100644 --- a/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_janibot.dm +++ b/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_janibot.dm @@ -4,6 +4,7 @@ progress_message = "You put the proximity sensor into the bucket." item_icon_state = "janibot_1" next_stages = list(/decl/crafting_stage/robot_arms/janibot) + available_to_map_tech_level = MAP_TECH_LEVEL_SPACE /decl/crafting_stage/robot_arms/janibot progress_message = "You attach the arm to the assembly and finish off the Janibot. Beep boop." diff --git a/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_medibot.dm b/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_medibot.dm index c376a5bffb2c..5a44b023be7d 100644 --- a/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_medibot.dm +++ b/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_medibot.dm @@ -5,6 +5,7 @@ completion_trigger_type = /obj/item/robot_parts item_icon_state = "medibot_1" next_stages = list(/decl/crafting_stage/scanner) + available_to_map_tech_level = MAP_TECH_LEVEL_SPACE /decl/crafting_stage/scanner progress_message = "You add the health sensor to the assembly" diff --git a/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_secbot.dm b/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_secbot.dm index 9e53c82645d7..af756c222af9 100644 --- a/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_secbot.dm +++ b/code/modules/crafting/slapcrafting/crafting_recipes/bot_crafting/crafting_secbot.dm @@ -5,6 +5,7 @@ progress_message = "You add the signaler to the helmet." item_icon_state = "secbot_1" next_stages = list(/decl/crafting_stage/welding/secbot) + available_to_map_tech_level = MAP_TECH_LEVEL_SPACE /decl/crafting_stage/secbot_signaller/can_begin_with(var/obj/item/thing) . = istype(thing, begins_with_object_type) diff --git a/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_buckler.dm b/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_buckler.dm index 4270ffc3b334..d2c910fba7b9 100644 --- a/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_buckler.dm +++ b/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_buckler.dm @@ -7,6 +7,7 @@ progress_message = "You crudely sever the legs off the stool and remove the seat." consume_completion_trigger = FALSE next_stages = list(/decl/crafting_stage/buckler_panels) + available_to_map_tech_level = MAP_TECH_LEVEL_SPACE // todo: modern tech level /decl/crafting_stage/buckler_panels item_desc = "It's the seat of a stool with the legs sawn off and wooden planks layered over the top, ready to secure in place." diff --git a/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_crossbow.dm b/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_crossbow.dm index 0516f188c224..7335cb83aefb 100644 --- a/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_crossbow.dm +++ b/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_crossbow.dm @@ -14,6 +14,7 @@ item_icon_state = "crossbowframe1" progress_message = "You assemble a backbone of rods around the wooden stock." next_stages = list(/decl/crafting_stage/welding/crossbow_rods) + available_to_map_tech_level = MAP_TECH_LEVEL_SPACE /decl/crafting_stage/welding/crossbow_rods completion_trigger_type = /obj/item/weldingtool diff --git a/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_spear_prod.dm b/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_spear_prod.dm index c79c047216b6..1b8e062fbbce 100644 --- a/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_spear_prod.dm +++ b/code/modules/crafting/slapcrafting/crafting_recipes/improvised_crafting/crafting_spear_prod.dm @@ -11,6 +11,7 @@ /decl/crafting_stage/spear_blade_blade, /decl/crafting_stage/stunprod_wirecutters ) + available_to_map_tech_level = MAP_TECH_LEVEL_SPACE /decl/crafting_stage/material/stunprod_rod/consume_crafting_resource(var/mob/user, var/obj/item/thing, var/obj/item/target) . = ..() diff --git a/code/modules/crafting/stack_recipes/recipes_hardness_integrity.dm b/code/modules/crafting/stack_recipes/recipes_hardness_integrity.dm index 92e580a6d0e2..85d95289351e 100644 --- a/code/modules/crafting/stack_recipes/recipes_hardness_integrity.dm +++ b/code/modules/crafting/stack_recipes/recipes_hardness_integrity.dm @@ -2,6 +2,9 @@ abstract_type = /decl/stack_recipe/hardness/integrity required_integrity = 50 +/decl/stack_recipe/hardness/integrity/sign + result_type = /obj/item/banner/sign + /decl/stack_recipe/hardness/integrity/furniture abstract_type = /decl/stack_recipe/hardness/integrity/furniture one_per_turf = TRUE @@ -19,6 +22,12 @@ /decl/stack_recipe/hardness/integrity/furniture/banner_frame result_type = /obj/structure/banner_frame +/decl/stack_recipe/hardness/integrity/furniture/sign_hook + result_type = /obj/structure/banner_frame/sign + +/decl/stack_recipe/hardness/integrity/furniture/sign_hook/wall + result_type = /obj/structure/banner_frame/sign/wall + /decl/stack_recipe/hardness/integrity/furniture/coatrack result_type = /obj/structure/coatrack @@ -43,6 +52,10 @@ /decl/stack_recipe/hardness/integrity/furniture/bench/pew/single result_type = /obj/structure/bed/chair/bench/pew/single +/decl/stack_recipe/hardness/integrity/furniture/bench/lounge + result_type = /obj/structure/bed/chair/bench/lounge + difficulty = MAT_VALUE_VERY_HARD_DIY + /decl/stack_recipe/hardness/integrity/furniture/closet result_type = /obj/structure/closet diff --git a/code/modules/crafting/stack_recipes/recipes_stacks.dm b/code/modules/crafting/stack_recipes/recipes_stacks.dm index 0e97225f58de..c78160e09fc0 100644 --- a/code/modules/crafting/stack_recipes/recipes_stacks.dm +++ b/code/modules/crafting/stack_recipes/recipes_stacks.dm @@ -7,25 +7,48 @@ /decl/stack_recipe/tile/wood result_type = /obj/item/stack/tile/wood - required_material = /decl/material/solid/organic/wood + required_material = /decl/material/solid/organic/wood/oak /decl/stack_recipe/tile/wood/mahogany - result_type = /obj/item/stack/tile/mahogany + result_type = /obj/item/stack/tile/wood/mahogany required_material = /decl/material/solid/organic/wood/mahogany /decl/stack_recipe/tile/wood/maple - result_type = /obj/item/stack/tile/maple + result_type = /obj/item/stack/tile/wood/maple required_material = /decl/material/solid/organic/wood/maple /decl/stack_recipe/tile/wood/ebony difficulty = MAT_VALUE_VERY_HARD_DIY - result_type = /obj/item/stack/tile/ebony + result_type = /obj/item/stack/tile/wood/ebony required_material = /decl/material/solid/organic/wood/ebony /decl/stack_recipe/tile/wood/walnut - result_type = /obj/item/stack/tile/walnut + result_type = /obj/item/stack/tile/wood/walnut required_material = /decl/material/solid/organic/wood/walnut +/decl/stack_recipe/tile/wood/oak_laminate + result_type = /obj/item/stack/tile/wood/laminate/oak + required_material = /decl/material/solid/organic/wood/chipboard + +/decl/stack_recipe/tile/wood/mahogany_laminate + result_type = /obj/item/stack/tile/wood/laminate/mahogany + required_material = /decl/material/solid/organic/wood/chipboard/mahogany + +/decl/stack_recipe/tile/wood/maple_laminate + result_type = /obj/item/stack/tile/wood/laminate/maple + required_material = /decl/material/solid/organic/wood/chipboard/maple + +/decl/stack_recipe/tile/wood/ebony_laminate + result_type = /obj/item/stack/tile/wood/laminate/ebony + required_material = /decl/material/solid/organic/wood/chipboard/ebony + +/decl/stack_recipe/tile/wood/walnut_laminate + result_type = /obj/item/stack/tile/wood/walnut + required_material = /decl/material/solid/organic/wood/chipboard/walnut + +/decl/stack_recipe/tile/wood/yew_laminate + result_type = /obj/item/stack/tile/wood/laminate/yew + required_material = /decl/material/solid/organic/wood/chipboard/yew /decl/stack_recipe/tile/steel abstract_type = /decl/stack_recipe/tile/steel diff --git a/code/modules/crafting/stack_recipes/recipes_textiles.dm b/code/modules/crafting/stack_recipes/recipes_textiles.dm index ee608b17555b..c43dffe7ce14 100644 --- a/code/modules/crafting/stack_recipes/recipes_textiles.dm +++ b/code/modules/crafting/stack_recipes/recipes_textiles.dm @@ -12,11 +12,32 @@ category = "clothing" /decl/stack_recipe/textiles/banner + name = "banner" result_type = /obj/item/banner category = "furniture" crafting_extra_cost_factor = 1.1 // less material is lost because it's relatively simple difficulty = MAT_VALUE_NORMAL_DIY // Slightly easier than making actual clothing. +/decl/stack_recipe/textiles/banner/forked + name = "banner, forked" + result_type = /obj/item/banner/forked + +/decl/stack_recipe/textiles/banner/pointed + name = "banner, pointed" + result_type = /obj/item/banner/pointed + +/decl/stack_recipe/textiles/banner/rounded + name = "banner, rounded" + result_type = /obj/item/banner/rounded + +/decl/stack_recipe/textiles/banner/square + name = "banner, square" + result_type = /obj/item/banner/square + +/decl/stack_recipe/textiles/banner/tasselled + name = "banner, tasselled" + result_type = /obj/item/banner/tasselled + /decl/stack_recipe/textiles/sack result_type = /obj/item/bag/sack category = "storage" diff --git a/code/modules/crafting/working/_working.dm b/code/modules/crafting/working/_working.dm index 8c99837597ec..e848937907a7 100644 --- a/code/modules/crafting/working/_working.dm +++ b/code/modules/crafting/working/_working.dm @@ -4,8 +4,8 @@ icon_state = ICON_STATE_WORLD anchored = TRUE density = TRUE - color = /decl/material/solid/organic/wood::color - material = /decl/material/solid/organic/wood + color = /decl/material/solid/organic/wood/oak::color + material = /decl/material/solid/organic/wood/oak material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC atom_flags = ATOM_FLAG_CLIMBABLE obj_flags = OBJ_FLAG_ANCHORABLE @@ -51,7 +51,7 @@ /obj/structure/working/attackby(obj/item/W, mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(working) @@ -74,7 +74,7 @@ /obj/structure/working/attack_hand(mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(working) diff --git a/code/modules/crafting/working/textiles/loom.dm b/code/modules/crafting/working/textiles/loom.dm index 5c25cb36002f..2b7bf5ae8688 100644 --- a/code/modules/crafting/working/textiles/loom.dm +++ b/code/modules/crafting/working/textiles/loom.dm @@ -74,7 +74,7 @@ add_overlay(I) /obj/structure/working/loom/try_unload_material(mob/user) - if(user.a_intent == I_GRAB) + if(user.check_intent(I_FLAG_GRAB)) if(loaded_thread) to_chat(user, SPAN_NOTICE("You remove \the [loaded_thread] from \the [src].")) loaded_thread.dropInto(loc) diff --git a/code/modules/crafting/working/textiles/spinning_wheel.dm b/code/modules/crafting/working/textiles/spinning_wheel.dm index 69d7c36edceb..e79afe923791 100644 --- a/code/modules/crafting/working/textiles/spinning_wheel.dm +++ b/code/modules/crafting/working/textiles/spinning_wheel.dm @@ -121,7 +121,7 @@ return TRUE /obj/structure/working/spinning_wheel/try_unload_material(mob/user) - if(user.a_intent == I_GRAB) + if(user.check_intent(I_FLAG_GRAB)) if(!length(loaded)) to_chat(user, SPAN_WARNING("\The [src] has no fibers to remove.")) else diff --git a/code/modules/detectivework/microscope/_forensic_machine.dm b/code/modules/detectivework/microscope/_forensic_machine.dm index a5edee029bd5..9ba28f8bb138 100644 --- a/code/modules/detectivework/microscope/_forensic_machine.dm +++ b/code/modules/detectivework/microscope/_forensic_machine.dm @@ -45,7 +45,7 @@ if(component_attackby(W, user)) return TRUE - if(user?.a_intent == I_HURT) + if(user?.check_intent(I_FLAG_HARM)) return ..() // bash, bash! if(sample) diff --git a/code/modules/detectivework/tools/sample_kits/fingerprinting.dm b/code/modules/detectivework/tools/sample_kits/fingerprinting.dm index 5331c224eafd..266958a9861b 100644 --- a/code/modules/detectivework/tools/sample_kits/fingerprinting.dm +++ b/code/modules/detectivework/tools/sample_kits/fingerprinting.dm @@ -80,7 +80,7 @@ if(!can_take_print_from(H, user)) return 1 - var/time_to_take = H.a_intent == I_HELP ? 1 SECOND : 3 SECONDS + var/time_to_take = H.check_intent(I_FLAG_HELP) ? 1 SECOND : 3 SECONDS user.visible_message(SPAN_NOTICE("\The [user] starts taking fingerprints from \the [H].")) if(!do_mob(user, H, time_to_take)) user.visible_message(SPAN_WARNING("\The [user] tries to take prints from \the [H], but they move away.")) diff --git a/code/modules/detectivework/tools/sample_kits/swabs.dm b/code/modules/detectivework/tools/sample_kits/swabs.dm index 08d0dd1ffcb3..54a28e7cd2db 100644 --- a/code/modules/detectivework/tools/sample_kits/swabs.dm +++ b/code/modules/detectivework/tools/sample_kits/swabs.dm @@ -22,7 +22,7 @@ return ..() var/mob/living/human/H = target - var/time_to_take = H.a_intent == I_HELP ? 1 SECOND : 3 SECONDS + var/time_to_take = H.check_intent(I_FLAG_HELP) ? 1 SECOND : 3 SECONDS user.visible_message(SPAN_NOTICE("\The [user] starts swabbing a sample from \the [H].")) if(!do_mob(user, H, time_to_take)) user.visible_message(SPAN_WARNING("\The [user] tried to take a swab sample from \the [H], but they moved away.")) diff --git a/code/modules/fabrication/designs/general/designs_general.dm b/code/modules/fabrication/designs/general/designs_general.dm index 47eebe2b4542..64adcc09ac33 100644 --- a/code/modules/fabrication/designs/general/designs_general.dm +++ b/code/modules/fabrication/designs/general/designs_general.dm @@ -188,3 +188,70 @@ /datum/fabricator_recipe/fishing_line_high_quality path = /obj/item/fishing_line/high_quality +/datum/fabricator_recipe/chipboard + path = /obj/item/stack/material/sheet/mapped/chipboard_oak + category = "Textiles" + fabricator_types = list( + FABRICATOR_CLASS_GENERAL, + FABRICATOR_CLASS_TEXTILE + ) + +/datum/fabricator_recipe/chipboard/get_resources() + resources = list( + /decl/material/solid/organic/wood/oak = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2), + /decl/material/solid/organic/plastic = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2) + ) + +/datum/fabricator_recipe/chipboard + path = /obj/item/stack/material/sheet/mapped/chipboard_oak + +/datum/fabricator_recipe/chipboard/get_resources() + resources = list( + /decl/material/solid/organic/wood/oak = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2), + /decl/material/solid/organic/plastic = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2) + ) + +/datum/fabricator_recipe/chipboard/maple + path = /obj/item/stack/material/sheet/mapped/chipboard_maple + +/datum/fabricator_recipe/chipboard/maple/get_resources() + resources = list( + /decl/material/solid/organic/wood/maple = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2), + /decl/material/solid/organic/plastic = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2) + ) + +/datum/fabricator_recipe/chipboard/mahogany + path = /obj/item/stack/material/sheet/mapped/chipboard_mahogany + +/datum/fabricator_recipe/chipboard/mahogany/get_resources() + resources = list( + /decl/material/solid/organic/wood/mahogany = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2), + /decl/material/solid/organic/plastic = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2) + ) + +/datum/fabricator_recipe/chipboard/ebony + path = /obj/item/stack/material/sheet/mapped/chipboard_ebony + +/datum/fabricator_recipe/chipboard/ebony/get_resources() + resources = list( + /decl/material/solid/organic/wood/ebony = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2), + /decl/material/solid/organic/plastic = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2) + ) + +/datum/fabricator_recipe/chipboard/walnut + path = /obj/item/stack/material/sheet/mapped/chipboard_walnut + +/datum/fabricator_recipe/chipboard/walnut/get_resources() + resources = list( + /decl/material/solid/organic/wood/walnut = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2), + /decl/material/solid/organic/plastic = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2) + ) + +/datum/fabricator_recipe/chipboard/yew + path = /obj/item/stack/material/sheet/mapped/chipboard_yew + +/datum/fabricator_recipe/chipboard/yew/get_resources() + resources = list( + /decl/material/solid/organic/wood/yew = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2), + /decl/material/solid/organic/plastic = ceil((SHEET_MATERIAL_AMOUNT * FABRICATOR_EXTRA_COST_FACTOR)/2) + ) diff --git a/code/modules/fabrication/fabricator_intake.dm b/code/modules/fabrication/fabricator_intake.dm index 8013c8e63da6..33c516ba6beb 100644 --- a/code/modules/fabrication/fabricator_intake.dm +++ b/code/modules/fabrication/fabricator_intake.dm @@ -103,7 +103,7 @@ return TRUE // Gate some simple interactions beind intent so people can still feed lathes disks. - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) // Set or update our local network. if(IS_MULTITOOL(O)) diff --git a/code/modules/fabrication/recycler.dm b/code/modules/fabrication/recycler.dm index 47056aba3e7b..2d4fcb6299ec 100644 --- a/code/modules/fabrication/recycler.dm +++ b/code/modules/fabrication/recycler.dm @@ -118,7 +118,7 @@ to_chat(user, SPAN_WARNING("\The [src] is currently processing, please wait for it to finish.")) return TRUE - if(W.storage && user.a_intent != I_HURT) + if(W.storage && !user.check_intent(I_FLAG_HARM)) var/emptied = FALSE for(var/obj/item/O in W.get_stored_inventory()) diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index eeda0f65dd13..6fcea93840a2 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -5,7 +5,7 @@ /obj/item/fishing_rod name = "fishing rod" desc = "A simple fishing rod with eyelets for stringing a line." - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak matter = null material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC icon = 'icons/obj/fishing_rod.dmi' @@ -161,7 +161,7 @@ . = ..() /obj/item/fishing_rod/use_on_mob(mob/living/target, mob/living/user) - return user.a_intent != I_HURT ? FALSE : ..() + return !user.check_intent(I_FLAG_HARM) ? FALSE : ..() /obj/item/fishing_rod/proc/can_fish_in(mob/user, atom/target) if(!isturf(target)) @@ -177,7 +177,7 @@ /obj/item/fishing_rod/afterattack(atom/target, mob/user, proximity_flag, click_parameters) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(fishing_target) diff --git a/code/modules/food/assembled.dm b/code/modules/food/assembled.dm index bab06fe4b12f..5e0955f53d22 100644 --- a/code/modules/food/assembled.dm +++ b/code/modules/food/assembled.dm @@ -18,11 +18,11 @@ return TRUE // Eating with forks - if(user.a_intent == I_HELP && do_utensil_interaction(W, user)) + if(user.check_intent(I_FLAG_HELP) && do_utensil_interaction(W, user)) return TRUE // Hiding items inside larger food items. - if(user.a_intent != I_HURT && is_sliceable() && W.w_class < w_class && !is_robot_module(W) && !istype(W, /obj/item/chems/condiment)) + if(!user.check_intent(I_FLAG_HARM) && is_sliceable() && W.w_class < w_class && !is_robot_module(W) && !istype(W, /obj/item/chems/condiment)) if(user.try_unequip(W, src)) to_chat(user, SPAN_NOTICE("You slip \the [W] inside \the [src].")) add_fingerprint(user) diff --git a/code/modules/food/cooking/cooking_vessels/_cooking_vessel.dm b/code/modules/food/cooking/cooking_vessels/_cooking_vessel.dm index 81ebd46c3b62..f5884e492a06 100644 --- a/code/modules/food/cooking/cooking_vessels/_cooking_vessel.dm +++ b/code/modules/food/cooking/cooking_vessels/_cooking_vessel.dm @@ -18,7 +18,7 @@ // TODO: ladle /obj/item/chems/cooking_vessel/attackby(obj/item/W, mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() // Fill or take from the vessel. @@ -35,7 +35,7 @@ // Boilerplate from /obj/item/chems/glass. TODO generalize to a lower level. /obj/item/chems/cooking_vessel/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(get_attack_force() && !(item_flags & ITEM_FLAG_NO_BLUDGEON) && user.a_intent == I_HURT) + if(get_attack_force() && !(item_flags & ITEM_FLAG_NO_BLUDGEON) && user.check_intent(I_FLAG_HARM)) return ..() return FALSE @@ -50,7 +50,7 @@ return TRUE if(handle_eaten_by_mob(user, target) != EATEN_INVALID) return TRUE - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) if(standard_splash_mob(user,target)) return TRUE if(reagents && reagents.total_volume) diff --git a/code/modules/food/plates/plate_tray.dm b/code/modules/food/plates/plate_tray.dm index 7c6d4a19d2ae..2b05fabfbf85 100644 --- a/code/modules/food/plates/plate_tray.dm +++ b/code/modules/food/plates/plate_tray.dm @@ -145,7 +145,7 @@ TRAY TYPES GO HERE /obj/item/plate/tray/wood desc = "A wooden tray to serve food on." - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/plate/tray/metal obj_flags = OBJ_FLAG_CONDUCTIBLE diff --git a/code/modules/food/utensils/utensil_chopsticks.dm b/code/modules/food/utensils/utensil_chopsticks.dm index 5be0baed66bf..7ff493ecfaf9 100644 --- a/code/modules/food/utensils/utensil_chopsticks.dm +++ b/code/modules/food/utensils/utensil_chopsticks.dm @@ -4,7 +4,7 @@ desc = "A pair of sticks used for eating food." icon = 'icons/obj/food/utensils/chopsticks.dmi' utensil_flags = UTENSIL_FLAG_COLLECT - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak //TODO: aspen /obj/item/utensil/chopsticks/plastic material = /decl/material/solid/organic/plastic diff --git a/code/modules/food/utensils/utensil_spoon.dm b/code/modules/food/utensils/utensil_spoon.dm index e6efc4af3039..9c0c5846d324 100644 --- a/code/modules/food/utensils/utensil_spoon.dm +++ b/code/modules/food/utensils/utensil_spoon.dm @@ -18,5 +18,5 @@ material = /decl/material/solid/organic/plastic /obj/item/utensil/spoon/wood - material = /decl/material/solid/organic/wood - color = /decl/material/solid/organic/wood::color + material = /decl/material/solid/organic/wood/oak + color = /decl/material/solid/organic/wood/oak::color diff --git a/code/modules/games/boardgame.dm b/code/modules/games/boardgame.dm index ee09f1cfba91..6cd35f6b546f 100644 --- a/code/modules/games/boardgame.dm +++ b/code/modules/games/boardgame.dm @@ -3,7 +3,7 @@ desc = "A standard 16\" checkerboard. Well used." //Goddamn imperial system. icon = 'icons/obj/pieces.dmi' icon_state = "board" - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak var/num = 0 var/board_icons = list() diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 3bd0346b3a87..25d30addecd4 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -137,7 +137,7 @@ var/global/list/card_decks = list() cards += P /obj/item/deck/attack_hand(mob/user) - if(user.a_intent == I_GRAB || !user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) + if(user.check_intent(I_FLAG_GRAB) || !user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) return ..() draw_card(user) return TRUE diff --git a/code/modules/grooming/_grooming.dm b/code/modules/grooming/_grooming.dm index c8cae43216e8..0618caac4917 100644 --- a/code/modules/grooming/_grooming.dm +++ b/code/modules/grooming/_grooming.dm @@ -39,7 +39,7 @@ /obj/item/grooming/proc/try_groom(mob/living/user, mob/living/target) - if(!istype(user) || !istype(target) || user.incapacitated() || user.a_intent == I_HURT) + if(!istype(user) || !istype(target) || user.incapacitated() || user.check_intent(I_FLAG_HARM)) return FALSE if(!length(target.get_external_organs())) diff --git a/code/modules/grooming/grooming_comb.dm b/code/modules/grooming/grooming_comb.dm index 1ea34a3196f8..5b57babd5cea 100644 --- a/code/modules/grooming/grooming_comb.dm +++ b/code/modules/grooming/grooming_comb.dm @@ -32,7 +32,7 @@ var/opened = FALSE /obj/item/grooming/comb/butterfly/attack_self(mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() opened = !opened if(opened) diff --git a/code/modules/holomap/holomap.dm b/code/modules/holomap/holomap.dm index 6c298d6b99cd..9d5fbc13b445 100644 --- a/code/modules/holomap/holomap.dm +++ b/code/modules/holomap/holomap.dm @@ -62,7 +62,7 @@ update_icon() /obj/machinery/holomap/attack_hand(var/mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() if(watching_mob && (watching_mob != user)) to_chat(user, SPAN_WARNING("Someone else is currently watching the holomap.")) diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm index fdcb8b8adbe6..e2c2d1bc219d 100644 --- a/code/modules/hydroponics/beekeeping/beehive.dm +++ b/code/modules/hydroponics/beekeeping/beehive.dm @@ -233,14 +233,14 @@ icon = 'icons/obj/beekeeping.dmi' icon_state = "honeyframe" w_class = ITEM_SIZE_SMALL - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak var/honey = 0 /obj/item/honey_frame/filled name = "filled beehive frame" desc = "A frame for the beehive that the bees have filled with honeycombs." honey = 20 - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/honey_frame/filled/Initialize() . = ..() @@ -251,7 +251,7 @@ desc = "Contains everything you need to build a beehive." icon = 'icons/obj/apiary_bees_etc.dmi' icon_state = "apiary" - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/beehive_assembly/attack_self(var/mob/user) to_chat(user, "You start assembling \the [src]...") diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index dd271cc640ed..3e145679b348 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -203,7 +203,7 @@ seed.thrown_at(src,hit_atom) var/global/list/_wood_materials = list( - /decl/material/solid/organic/wood, + /decl/material/solid/organic/wood/oak, /decl/material/solid/organic/wood/mahogany, /decl/material/solid/organic/wood/maple, /decl/material/solid/organic/wood/ebony, @@ -222,7 +222,7 @@ var/global/list/_wood_materials = list( /obj/item/food/grown/attackby(var/obj/item/W, var/mob/user) - if(!seed || user.a_intent == I_HURT) + if(!seed || user.check_intent(I_FLAG_HARM)) return ..() if(seed.get_trait(TRAIT_PRODUCES_POWER) && IS_COIL(W)) @@ -308,7 +308,7 @@ var/global/list/_wood_materials = list( /obj/item/food/grown/attack_self(mob/user) if(seed) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) user.visible_message(SPAN_DANGER("\The [user] squashes \the [src]!")) seed.thrown_at(src,user) sleep(-1) diff --git a/code/modules/hydroponics/plant_types/seeds_misc.dm b/code/modules/hydroponics/plant_types/seeds_misc.dm index 34650444cd01..e600ad4c3ab1 100644 --- a/code/modules/hydroponics/plant_types/seeds_misc.dm +++ b/code/modules/hydroponics/plant_types/seeds_misc.dm @@ -584,7 +584,7 @@ name = "towercap" product_name = "dwarf towercap" display_name = "dwarf towercap thicket" - chems = list(/decl/material/solid/organic/wood = list(10,1)) + chems = list(/decl/material/solid/organic/wood/fungal = list(10,1)) mutants = null product_type = /obj/item/stack/material/log/towercap diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm index 01887107c99d..2d609cf629e3 100644 --- a/code/modules/hydroponics/seed_storage.dm +++ b/code/modules/hydroponics/seed_storage.dm @@ -24,8 +24,8 @@ /obj/machinery/seed_storage name = "Seed storage" desc = "It stores, sorts, and dispenses seeds." - icon = 'icons/obj/vending.dmi' - icon_state = "seeds" + icon = 'icons/obj/machines/vending/seeds_grey.dmi' + icon_state = ICON_STATE_WORLD density = TRUE anchored = TRUE idle_power_usage = 100 diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm index 25734ea911cc..9903d7217d3b 100644 --- a/code/modules/hydroponics/spreading/spreading.dm +++ b/code/modules/hydroponics/spreading/spreading.dm @@ -200,7 +200,7 @@ /obj/effect/vine/attackby(var/obj/item/W, var/mob/user) START_PROCESSING(SSvines, src) - if(W.edge && W.w_class < ITEM_SIZE_NORMAL && user.a_intent != I_HURT) + if(W.edge && W.w_class < ITEM_SIZE_NORMAL && !user.check_intent(I_FLAG_HARM)) if(!is_mature()) to_chat(user, SPAN_WARNING("\The [src] is not mature enough to yield a sample yet.")) return TRUE diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm index 7a89804a38a9..6a5d78981043 100644 --- a/code/modules/hydroponics/trays/tray_soil.dm +++ b/code/modules/hydroponics/trays/tray_soil.dm @@ -107,7 +107,7 @@ neighbor.update_icon() return TRUE - if(!seed && user.a_intent == I_HURT && (IS_SHOVEL(O) || IS_HOE(O))) + if(!seed && user.check_intent(I_FLAG_HARM) && (IS_SHOVEL(O) || IS_HOE(O))) var/use_tool = O.get_tool_quality(TOOL_SHOVEL) > O.get_tool_quality(TOOL_HOE) ? TOOL_SHOVEL : TOOL_HOE if(use_tool) if(O.do_tool_interaction(use_tool, user, src, 3 SECONDS, "filling in", "filling in", check_skill = SKILL_BOTANY)) diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 0b01b0e7525e..7d4a7ce5774f 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -414,7 +414,7 @@ return TRUE else for(var/obj/item/integrated_circuit/input/S in assembly_components) - S.attackby_react(I,user,user.a_intent) + S.attackby_react(I, user, user.get_intent()) return ..() else if(IS_MULTITOOL(I) || istype(I, /obj/item/integrated_electronics/wirer) || istype(I, /obj/item/integrated_electronics/debugger)) if(opened) @@ -423,18 +423,18 @@ else to_chat(user, "[src]'s hatch is closed, so you can't fiddle with the internal components.") for(var/obj/item/integrated_circuit/input/S in assembly_components) - S.attackby_react(I,user,user.a_intent) + S.attackby_react(I, user, user.get_intent()) return ..() else if(istype(I, /obj/item/cell)) if(!opened) to_chat(user, "[src]'s hatch is closed, so you can't access \the [src]'s power supplier.") for(var/obj/item/integrated_circuit/input/S in assembly_components) - S.attackby_react(I,user,user.a_intent) + S.attackby_react(I, user, user.get_intent()) return ..() if(battery) to_chat(user, "[src] already has \a [battery] installed. Remove it first if you want to replace it.") for(var/obj/item/integrated_circuit/input/S in assembly_components) - S.attackby_react(I,user,user.a_intent) + S.attackby_react(I, user, user.get_intent()) return ..() var/obj/item/cell/cell = I if(user.try_unequip(I,loc)) @@ -474,9 +474,9 @@ current_health = min(get_max_health(), current_health + 5) return TRUE - else if(user.a_intent != I_HURT) + else if(!user.check_intent(I_FLAG_HARM)) for(var/obj/item/integrated_circuit/input/S in assembly_components) - S.attackby_react(I,user,user.a_intent) + S.attackby_react(I, user, user.get_intent()) return TRUE return ..() //Handle weapon attacks and etc diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index f60872d9179b..b37f0c5fe0a9 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -53,7 +53,7 @@ a creative player the means to solve many problems. Circuits are held inside an /obj/item/integrated_circuit/proc/any_examine(mob/user) return -/obj/item/integrated_circuit/proc/attackby_react(var/atom/movable/A,mob/user) +/obj/item/integrated_circuit/proc/attackby_react(var/atom/movable/A, mob/user, decl/intent/intent) return /obj/item/integrated_circuit/proc/sense(var/atom/movable/A,mob/user,prox) diff --git a/code/modules/integrated_electronics/subtypes/access.dm b/code/modules/integrated_electronics/subtypes/access.dm index d96f8ba47f31..ef601575bd94 100644 --- a/code/modules/integrated_electronics/subtypes/access.dm +++ b/code/modules/integrated_electronics/subtypes/access.dm @@ -18,7 +18,7 @@ name = "card reader" spawn_flags = 0 -/obj/item/integrated_circuit/input/card_reader/attackby_react(obj/item/I, mob/user, intent) +/obj/item/integrated_circuit/input/card_reader/attackby_react(obj/item/I, mob/user, decl/intent/intent) var/obj/item/card/id/card = I.GetIdCard() var/list/access = I.GetAccess() var/json_access = json_encode(access) @@ -65,7 +65,7 @@ // check if the signature is valid if(!check_data_signature(signature, result)) return FALSE - + if(length(result) > 1) result = cached_json_decode(result) else diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index dff167e4919f..336cf7b55443 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -914,8 +914,8 @@ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH power_draw_per_use = 20 -/obj/item/integrated_circuit/input/obj_scanner/attackby_react(var/atom/A,var/mob/user,intent) - if(intent!=I_HELP) +/obj/item/integrated_circuit/input/obj_scanner/attackby_react(var/atom/A,var/mob/user, decl/intent/intent) + if(istype(intent) && !(intent.intent_flags & I_FLAG_HELP)) return FALSE if(!check_then_do_work()) return FALSE @@ -1137,7 +1137,7 @@ "on read" = IC_PINTYPE_PULSE_OUT ) -/obj/item/integrated_circuit/input/data_card_reader/attackby_react(obj/item/I, mob/user, intent) +/obj/item/integrated_circuit/input/data_card_reader/attackby_react(obj/item/I, mob/user, decl/intent/intent) var/obj/item/card/data/card = I var/write_mode = get_pin_data(IC_INPUT, 3) if(istype(card)) diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm index 9d674ef0bb7a..5255d8469c87 100644 --- a/code/modules/integrated_electronics/subtypes/reagents.dm +++ b/code/modules/integrated_electronics/subtypes/reagents.dm @@ -516,7 +516,7 @@ /obj/item/integrated_circuit/input/funnel/solvent_can_melt(var/solvent_power = MAT_SOLVENT_STRONG) return FALSE -/obj/item/integrated_circuit/input/funnel/attackby_react(obj/item/I, mob/user, intent) +/obj/item/integrated_circuit/input/funnel/attackby_react(obj/item/I, mob/user, decl/intent/intent) var/atom/movable/target = get_pin_data_as_type(IC_INPUT, 1, /atom/movable) var/obj/item/chems/container = I diff --git a/code/modules/keybindings/mob.dm b/code/modules/keybindings/mob.dm index 14d43d22f868..4ab7f0f14f96 100644 --- a/code/modules/keybindings/mob.dm +++ b/code/modules/keybindings/mob.dm @@ -52,7 +52,7 @@ full_name = "Select Help Intent" /datum/keybinding/mob/select_help_intent/down(client/user) - user.mob.a_intent_change(I_HELP) + user.mob.set_intent(I_FLAG_HELP) return TRUE /datum/keybinding/mob/select_disarm_intent @@ -61,7 +61,7 @@ full_name = "Select Disarm Intent" /datum/keybinding/mob/select_disarm_intent/down(client/user) - user.mob.a_intent_change(I_DISARM) + user.mob.set_intent(I_FLAG_DISARM) return TRUE /datum/keybinding/mob/select_grab_intent @@ -70,7 +70,7 @@ full_name = "Select Grab Intent" /datum/keybinding/mob/select_grab_intent/down(client/user) - user.mob.a_intent_change(I_GRAB) + user.mob.set_intent(I_FLAG_GRAB) return TRUE /datum/keybinding/mob/select_harm_intent @@ -79,7 +79,7 @@ full_name = "Select Harm Intent" /datum/keybinding/mob/select_harm_intent/down(client/user) - user.mob.a_intent_change(I_HURT) + user.mob.set_intent(I_FLAG_HARM) return TRUE /datum/keybinding/mob/cycle_intent_right @@ -88,7 +88,7 @@ full_name = "Сycle Intent: Right" /datum/keybinding/mob/cycle_intent_right/down(client/user) - user.mob.a_intent_change(INTENT_HOTKEY_RIGHT) + user.mob.cycle_intent(INTENT_HOTKEY_RIGHT) return TRUE /datum/keybinding/mob/cycle_intent_left @@ -97,7 +97,7 @@ full_name = "Сycle Intent: Left" /datum/keybinding/mob/cycle_intent_left/down(client/user) - user.mob.a_intent_change(INTENT_HOTKEY_LEFT) + user.mob.cycle_intent(INTENT_HOTKEY_LEFT) return TRUE /datum/keybinding/mob/activate_inhand diff --git a/code/modules/keybindings/robot.dm b/code/modules/keybindings/robot.dm index 800078894b31..e01ab94ae717 100644 --- a/code/modules/keybindings/robot.dm +++ b/code/modules/keybindings/robot.dm @@ -44,7 +44,7 @@ description = "Cycles the intent left" /datum/keybinding/robot/intent_cycle/down(client/user) - user.mob.a_intent_change(INTENT_HOTKEY_LEFT) + user.mob.cycle_intent(INTENT_HOTKEY_LEFT) return TRUE /datum/keybinding/robot/module_cycle diff --git a/code/modules/materials/_material_stack.dm b/code/modules/materials/_material_stack.dm index 0d6f7161dea5..ac7fc8ae4492 100644 --- a/code/modules/materials/_material_stack.dm +++ b/code/modules/materials/_material_stack.dm @@ -130,7 +130,7 @@ return TRUE // TODO: convert to converts_into entry. - if(can_be_pulverized && IS_HAMMER(W) && material?.hardness >= MAT_VALUE_RIGID && user.a_intent == I_HURT) + if(can_be_pulverized && IS_HAMMER(W) && material?.hardness >= MAT_VALUE_RIGID && user.check_intent(I_FLAG_HARM)) if(W.material?.hardness < material.hardness) to_chat(user, SPAN_WARNING("\The [W] is not hard enough to pulverize [material.solid_name].")) @@ -155,7 +155,7 @@ return TRUE var/list/can_be_converted_into = get_stack_conversion_dictionary() - if(length(can_be_converted_into) && user.a_intent != I_HURT) + if(length(can_be_converted_into) && !user.check_intent(I_FLAG_HARM)) var/convert_tool var/obj/item/stack/convert_type diff --git a/code/modules/materials/definitions/solids/materials_solid_wood.dm b/code/modules/materials/definitions/solids/materials_solid_wood.dm index 01629ab0acff..ac5c1372920a 100644 --- a/code/modules/materials/definitions/solids/materials_solid_wood.dm +++ b/code/modules/materials/definitions/solids/materials_solid_wood.dm @@ -1,10 +1,6 @@ /decl/material/solid/organic/wood - name = "oak" - uid = "solid_wood" - liquid_name = "wood pulp" - adjective_name = "oaken" - lore_text = "Oak timber is strong yet simple to carve, making it a fine choice for wooden handicrafts." - adjective_name = "oaken" + name = "wood" + abstract_type = /decl/material/solid/organic/wood color = WOOD_COLOR_GENERIC integrity = 75 icon_base = 'icons/turf/walls/wood.dmi' @@ -46,8 +42,16 @@ sound_manipulate = 'sound/foley/woodpickup1.ogg' sound_dropped = 'sound/foley/wooddrop1.ogg' compost_value = 0.2 - temperature_burn_milestone_material = /decl/material/solid/organic/wood paint_verb = "stained" + liquid_name = "wood pulp" + +/decl/material/solid/organic/wood/oak + name = "oak" + uid = "solid_wood" + adjective_name = "oaken" + lore_text = "Oak timber is strong yet simple to carve, making it a fine choice for wooden handicrafts." + adjective_name = "oaken" + temperature_burn_milestone_material = /decl/material/solid/organic/wood/oak // Wood is hard but can't really give it an edge. /decl/material/solid/organic/wood/can_hold_edge() @@ -133,3 +137,53 @@ /decl/material/liquid/heartstopper = 0.1 ) value = 1.8 + +// Used solely to give the old smooth table icons for spacer tables. +// Easy to work, not very strong or valuable. +/decl/material/solid/organic/wood/chipboard + name = "oak chipboard" + adjective_name = "oak laminate" + uid = "solid_wood_chipboard_oak" + lore_text = "Also known as particle board, this material is made from various kinds of oak wood chips and resin, with a plastic laminate." + bench_icon = 'icons/obj/structures/benches.dmi' + pew_icon = 'icons/obj/structures/pews.dmi' + door_icon_base = "metal" + table_icon_base = "metal" + color = WOOD_COLOR_GENERIC + value = 1.1 + default_solid_form = /obj/item/stack/material/sheet + +/decl/material/solid/organic/wood/chipboard/maple + name = "maple chipboard" + lore_text = "Also known as particle board, this material is made from various kinds of maple wood chips and resin, with a plastic laminate." + adjective_name = "maple laminate" + uid = "solid_wood_chipboard_maple" + color = WOOD_COLOR_PALE + +/decl/material/solid/organic/wood/chipboard/mahogany + name = "mahogany chipboard" + lore_text = "Also known as particle board, this material is made from various kinds of mahogany wood chips and resin, with a plastic laminate." + adjective_name = "mahogany laminate" + uid = "solid_wood_chipboard_mahogany" + color = WOOD_COLOR_RICH + +/decl/material/solid/organic/wood/chipboard/ebony + name = "ebony chipboard" + lore_text = "Also known as particle board, this material is made from various kinds of ebony wood chips and resin, with a plastic laminate." + adjective_name = "ebony laminate" + uid = "solid_wood_chipboard_ebony" + color = WOOD_COLOR_BLACK + +/decl/material/solid/organic/wood/chipboard/walnut + name = "walnut chipboard" + lore_text = "Also known as particle board, this material is made from various kinds of walnut wood chips and resin, with a plastic laminate." + adjective_name = "walnut laminate" + uid = "solid_wood_chipboard_walnut" + color = WOOD_COLOR_CHOCOLATE + +/decl/material/solid/organic/wood/chipboard/yew + name = "yew chipboard" + lore_text = "Also known as particle board, this material is made from various kinds of yew wood chips and resin, with a plastic laminate." + adjective_name = "yew laminate" + uid = "solid_wood_chipboard_yew" + color = WOOD_COLOR_YELLOW \ No newline at end of file diff --git a/code/modules/materials/material_sheets_mapping.dm b/code/modules/materials/material_sheets_mapping.dm index d852c202c26f..2f857da4e95f 100644 --- a/code/modules/materials/material_sheets_mapping.dm +++ b/code/modules/materials/material_sheets_mapping.dm @@ -63,14 +63,14 @@ STACK_SUBTYPES(steel, "steel", solid/metal/stee STACK_SUBTYPES(aluminium, "aluminium", solid/metal/aluminium, sheet/shiny, null) STACK_SUBTYPES(titanium, "titanium", solid/metal/titanium, sheet/reinforced, null) STACK_SUBTYPES(plasteel, "plasteel", solid/metal/plasteel, sheet/reinforced, null) -STACK_SUBTYPES(wood, "wood", solid/organic/wood, plank, null) +STACK_SUBTYPES(wood, "wood", solid/organic/wood/oak, plank, null) STACK_SUBTYPES(mahogany, "mahogany", solid/organic/wood/mahogany, plank, null) STACK_SUBTYPES(maple, "maple", solid/organic/wood/maple, plank, null) STACK_SUBTYPES(ebony, "ebony", solid/organic/wood/ebony, plank, null) STACK_SUBTYPES(walnut, "walnut", solid/organic/wood/walnut, plank, null) STACK_SUBTYPES(bamboo, "bamboo", solid/organic/wood/bamboo, plank, null) STACK_SUBTYPES(yew, "yew", solid/organic/wood/yew, plank, null) -STACK_SUBTYPES(wood, "wood", solid/organic/wood, log, null) +STACK_SUBTYPES(wood, "wood", solid/organic/wood/oak, log, null) STACK_SUBTYPES(mahogany, "mahogany", solid/organic/wood/mahogany, log, null) STACK_SUBTYPES(maple, "maple", solid/organic/wood/maple, log, null) STACK_SUBTYPES(ebony, "ebony", solid/organic/wood/ebony, log, null) @@ -117,4 +117,11 @@ STACK_SUBTYPES(titanium, "titanium", solid/metal/tita STACK_SUBTYPES(cotton, "cotton", solid/organic/cloth, thread, null) STACK_SUBTYPES(dried_gut, "dried gut", solid/organic/leather/gut, thread, null) +STACK_SUBTYPES(chipboard_oak, "oak chipboard", solid/organic/wood/chipboard, sheet, null) +STACK_SUBTYPES(chipboard_maple, "maple chipboard", solid/organic/wood/chipboard/maple, sheet, null) +STACK_SUBTYPES(chipboard_mahogany, "mahogany chipboard", solid/organic/wood/chipboard/mahogany, sheet, null) +STACK_SUBTYPES(chipboard_ebony, "ebony chipboard", solid/organic/wood/chipboard/ebony, sheet, null) +STACK_SUBTYPES(chipboard_walnut, "walnut chipboard", solid/organic/wood/chipboard/walnut, sheet, null) +STACK_SUBTYPES(chipboard_yew, "yew chipboard", solid/organic/wood/chipboard/yew, sheet, null) + #undef STACK_SUBTYPES \ No newline at end of file diff --git a/code/modules/materials/material_synth.dm b/code/modules/materials/material_synth.dm index 4aa562ea6a14..26d3323a81ca 100644 --- a/code/modules/materials/material_synth.dm +++ b/code/modules/materials/material_synth.dm @@ -37,7 +37,7 @@ /obj/item/stack/material/cyborg/wood name = "cyborg wood synthesiser" icon_state = "sheet-wood" - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/stack/material/cyborg/glass name = "cyborg glass synthesiser" diff --git a/code/modules/mechs/equipment/combat.dm b/code/modules/mechs/equipment/combat.dm index 86663b7e98a0..fbc24657a603 100644 --- a/code/modules/mechs/equipment/combat.dm +++ b/code/modules/mechs/equipment/combat.dm @@ -255,14 +255,14 @@ if (!isliving(A)) return ..() - if (user.a_intent == I_HURT) + if (user.check_intent(I_FLAG_HARM)) user.visible_message(SPAN_DANGER("\The [user] swings \the [src] at \the [A]!")) playsound(user, 'sound/mecha/mechmove03.ogg', 35, 1) return ..() /obj/item/tool/machete/mech/attack_self(mob/living/user) . = ..() - if (user.a_intent != I_HURT) + if (!user.check_intent(I_FLAG_HARM)) return var/obj/item/mech_equipment/mounted_system/melee/machete/MC = loc if (istype(MC)) @@ -308,7 +308,7 @@ /obj/item/mech_equipment/ballistic_shield/afterattack(atom/target, mob/living/user, inrange, params) . = ..() - if (. && user.a_intent == I_HURT && (last_push + 1.6 SECONDS < world.time)) + if (. && user.check_intent(I_FLAG_HARM) && (last_push + 1.6 SECONDS < world.time)) owner.visible_message(SPAN_WARNING("\The [owner] retracts \the [src], preparing to push with it!"), blind_message = SPAN_WARNING("You hear the whine of hydraulics and feel a rush of air!")) owner.setClickCooldown(0.7 SECONDS) last_push = world.time diff --git a/code/modules/mechs/equipment/utility.dm b/code/modules/mechs/equipment/utility.dm index 7a68a78ec10f..f645599c8ac1 100644 --- a/code/modules/mechs/equipment/utility.dm +++ b/code/modules/mechs/equipment/utility.dm @@ -119,7 +119,7 @@ //attacking - Cannot be carrying something, cause then your clamp would be full else if(isliving(target)) var/mob/living/M = target - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) admin_attack_log(user, M, "attempted to clamp [M] with [src] ", "Was subject to a clamping attempt.", ", using \a [src], attempted to clamp") owner.setClickCooldown(owner.arms ? owner.arms.action_delay * 3 : 30) //This is an inefficient use of your powers if(prob(33)) diff --git a/code/modules/mechs/mech.dm b/code/modules/mechs/mech.dm index 178079b271ab..034695077605 100644 --- a/code/modules/mechs/mech.dm +++ b/code/modules/mechs/mech.dm @@ -10,7 +10,6 @@ default_pixel_x = -8 default_pixel_y = 0 status_flags = PASSEMOTES - a_intent = I_HURT mob_size = MOB_SIZE_LARGE atom_flags = ATOM_FLAG_SHIELD_CONTENTS | ATOM_FLAG_BLOCK_DIAGONAL_FACING butchery_data = null diff --git a/code/modules/mechs/mech_interaction.dm b/code/modules/mechs/mech_interaction.dm index 4fc51da9db98..77fc243c7057 100644 --- a/code/modules/mechs/mech_interaction.dm +++ b/code/modules/mechs/mech_interaction.dm @@ -133,7 +133,7 @@ // User is not necessarily the exosuit, or the same person, so update intent. if(user != src) - a_intent = user.a_intent + set_intent(user.get_intent()) if(user.zone_sel) zone_sel.set_selected_zone(user.get_target_zone()) else @@ -328,7 +328,7 @@ user.client.screen -= hud_elements user.client.eye = user if(user in pilots) - a_intent = I_HURT + set_intent(I_FLAG_HARM) LAZYREMOVE(pilots, user) UNSETEMPTY(pilots) update_pilots() @@ -337,7 +337,7 @@ /mob/living/exosuit/attackby(var/obj/item/thing, var/mob/user) // Install equipment. - if(user.a_intent != I_HURT && istype(thing, /obj/item/mech_equipment)) + if(!user.check_intent(I_FLAG_HARM) && istype(thing, /obj/item/mech_equipment)) if(hardpoints_locked) to_chat(user, SPAN_WARNING("Hardpoint system access is disabled.")) return TRUE @@ -380,7 +380,7 @@ return TRUE // Various tool and construction interactions. - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) // Removing systems from hardpoints. if(IS_MULTITOOL(thing)) diff --git a/code/modules/mining/ore_box.dm b/code/modules/mining/ore_box.dm index 7dff5769a883..b77e158dbe09 100644 --- a/code/modules/mining/ore_box.dm +++ b/code/modules/mining/ore_box.dm @@ -7,7 +7,7 @@ icon = 'icons/obj/mining.dmi' icon_state = "orebox0" density = TRUE - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak atom_flags = ATOM_FLAG_CLIMBABLE tool_interaction_flags = (TOOL_INTERACTION_ANCHOR | TOOL_INTERACTION_DECONSTRUCT) ///Maximum amount of ores of all types that can be stored in the box. diff --git a/code/modules/mob/grab/grab_datum.dm b/code/modules/mob/grab/grab_datum.dm index 333030b75efa..2783cfb571f9 100644 --- a/code/modules/mob/grab/grab_datum.dm +++ b/code/modules/mob/grab/grab_datum.dm @@ -120,19 +120,16 @@ return FALSE grab.is_currently_resolving_hit = TRUE - switch(grab.assailant.a_intent) - if(I_HELP) - if(on_hit_help(grab, A, P)) - . = help_action || TRUE - if(I_DISARM) - if(on_hit_disarm(grab, A, P)) - . = disarm_action || TRUE - if(I_GRAB) - if(on_hit_grab(grab, A, P)) - . = grab_action || TRUE - if(I_HURT) - if(on_hit_harm(grab, A, P)) - . = harm_action || TRUE + + var/intent_flags = grab.assailant.get_intent().intent_flags + if((intent_flags & I_FLAG_HELP) && on_hit_help(grab, A, P)) + . = help_action || TRUE + if(!. && (intent_flags & I_FLAG_DISARM) && on_hit_disarm(grab, A, P)) + . = disarm_action || TRUE + if(!. && (intent_flags & I_FLAG_GRAB) && on_hit_grab(grab, A, P)) + . = grab_action || TRUE + if(!. && (intent_flags & I_FLAG_HARM) && on_hit_harm(grab, A, P)) + . = harm_action || TRUE if(!QDELETED(grab)) grab.is_currently_resolving_hit = FALSE diff --git a/code/modules/mob/grab/grab_object.dm b/code/modules/mob/grab/grab_object.dm index 2bfa1693d4cc..8efb2c19fb99 100644 --- a/code/modules/mob/grab/grab_object.dm +++ b/code/modules/mob/grab/grab_object.dm @@ -73,7 +73,7 @@ else visible_message(SPAN_NOTICE("\The [assailant] has grabbed [pronouns.self]!")) - if(affecting_mob && assailant?.a_intent == I_HURT) + if(affecting_mob && assailant?.check_intent(I_FLAG_HARM)) upgrade(TRUE) /obj/item/grab/mob_can_unequip(mob/user, slot, disable_warning = FALSE, dropping = FALSE) @@ -94,11 +94,10 @@ current_grab.process(src) /obj/item/grab/attack_self(mob/user) - switch(assailant.a_intent) - if(I_HELP) - downgrade() - else - upgrade() + if(assailant.check_intent(I_FLAG_HELP)) + downgrade() + else + upgrade() /obj/item/grab/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) if(affecting == target) diff --git a/code/modules/mob/grab/normal/grab_normal.dm b/code/modules/mob/grab/normal/grab_normal.dm index 91afdb484267..ca01188a2ead 100644 --- a/code/modules/mob/grab/normal/grab_normal.dm +++ b/code/modules/mob/grab/normal/grab_normal.dm @@ -105,7 +105,7 @@ return FALSE /decl/grab/normal/resolve_openhand_attack(var/obj/item/grab/grab) - if(grab.assailant.a_intent != I_HELP) + if(!grab.assailant.check_intent(I_FLAG_HELP)) if(grab.target_zone == BP_HEAD) if(grab.assailant.get_target_zone() == BP_EYES) if(attack_eye(grab)) @@ -225,7 +225,7 @@ var/mob/living/affecting = grab.get_affecting_mob() if(!affecting) return - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) return 0 // Not trying to hurt them. if(!W.edge || !W.get_attack_force(user) || W.atom_damage_type != BRUTE) @@ -271,7 +271,7 @@ return if(!user.skill_check(SKILL_COMBAT, SKILL_ADEPT)) return - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) return 0 // Not trying to hurt them. if(!W.edge || !W.get_attack_force(user) || W.atom_damage_type != BRUTE) return 0 //unsuitable weapon diff --git a/code/modules/mob/grab/normal/norm_aggressive.dm b/code/modules/mob/grab/normal/norm_aggressive.dm index b581f3795d8d..5a48b8a9130f 100644 --- a/code/modules/mob/grab/normal/norm_aggressive.dm +++ b/code/modules/mob/grab/normal/norm_aggressive.dm @@ -14,6 +14,13 @@ breakability = 3 grab_icon_state = "reinforce1" break_chance_table = list(5, 20, 40, 80, 100) + help_action = "wound pressure" // A bit clunky, but this is only used for admin logs presently! + +/decl/grab/normal/aggressive/on_hit_help(obj/item/grab/grab, atom/target, proximity) + var/mob/living/human/grab_victim = grab.get_affecting_mob() + if(!istype(grab_victim) || !proximity || (target && target != grab_victim)) + return FALSE + return grab_victim.apply_pressure(grab.assailant, grab.target_zone) /decl/grab/normal/aggressive/process_effect(var/obj/item/grab/grab) var/mob/living/affecting_mob = grab.get_affecting_mob() diff --git a/code/modules/mob/grab/normal/norm_struggle.dm b/code/modules/mob/grab/normal/norm_struggle.dm index 07d3b27d89fc..84c212e5bc78 100644 --- a/code/modules/mob/grab/normal/norm_struggle.dm +++ b/code/modules/mob/grab/normal/norm_struggle.dm @@ -19,7 +19,7 @@ var/mob/living/assailant = grab.assailant if(!affecting) return - if(affecting.incapacitated(INCAPACITATION_UNRESISTING) || affecting.a_intent == I_HELP) + if(affecting.incapacitated(INCAPACITATION_UNRESISTING) || affecting.check_intent(I_FLAG_HELP)) var/decl/pronouns/assailant_gender = assailant.get_pronouns() affecting.visible_message(SPAN_DANGER("\The [affecting] isn't prepared to fight back as [assailant] tightens [assailant_gender.his] grip!")) grab.done_struggle = TRUE @@ -35,7 +35,7 @@ grab.upgrade(TRUE) return - if(affecting.incapacitated(INCAPACITATION_UNRESISTING) || affecting.a_intent == I_HELP) + if(affecting.incapacitated(INCAPACITATION_UNRESISTING) || affecting.check_intent(I_FLAG_HELP)) var/decl/pronouns/assailant_gender = assailant.get_pronouns() affecting.visible_message(SPAN_DANGER("\The [affecting] isn't prepared to fight back as [assailant] tightens [assailant_gender.his] grip!")) grab.done_struggle = TRUE diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm index 4a88a0fa0356..fab8219c1698 100644 --- a/code/modules/mob/living/bot/bot.dm +++ b/code/modules/mob/living/bot/bot.dm @@ -84,6 +84,12 @@ if(. && !gibbed) gib() +/mob/living/bot/ssd_check() + return FALSE + +/mob/living/bot/try_awaken(mob/user) + return FALSE + /mob/living/bot/attackby(var/obj/item/O, var/mob/user) if(O.GetIdCard()) if(access_scanner.allowed(user) && !open) diff --git a/code/modules/mob/living/bot/cleanbot.dm b/code/modules/mob/living/bot/cleanbot.dm index c9442e2857f9..e989ba53b320 100644 --- a/code/modules/mob/living/bot/cleanbot.dm +++ b/code/modules/mob/living/bot/cleanbot.dm @@ -51,7 +51,7 @@ /mob/living/bot/cleanbot/handleAdjacentTarget() if(get_turf(target) == src.loc) - UnarmedAttack(target) + UnarmedAttack(target, TRUE) /mob/living/bot/cleanbot/UnarmedAttack(var/obj/effect/decal/cleanable/D, var/proximity) diff --git a/code/modules/mob/living/bot/ed209bot.dm b/code/modules/mob/living/bot/ed209bot.dm index f4e8ebe3a24d..19cb53e0eee4 100644 --- a/code/modules/mob/living/bot/ed209bot.dm +++ b/code/modules/mob/living/bot/ed209bot.dm @@ -7,10 +7,7 @@ layer = MOB_LAYER density = TRUE max_health = 100 - preparing_arrest_sounds = new() - - a_intent = I_HURT mob_bump_flag = HEAVY mob_swap_flags = ~HEAVY mob_push_flags = HEAVY diff --git a/code/modules/mob/living/bot/farmbot.dm b/code/modules/mob/living/bot/farmbot.dm index 4a487bb1a4c2..86a8a9411890 100644 --- a/code/modules/mob/living/bot/farmbot.dm +++ b/code/modules/mob/living/bot/farmbot.dm @@ -106,7 +106,7 @@ flick("farmbot_broke", src) /mob/living/bot/farmbot/handleAdjacentTarget() - UnarmedAttack(target) + UnarmedAttack(target, TRUE) /mob/living/bot/farmbot/lookForTargets() if(emagged) diff --git a/code/modules/mob/living/bot/floorbot.dm b/code/modules/mob/living/bot/floorbot.dm index d3dc81be5c32..b772273fd66a 100644 --- a/code/modules/mob/living/bot/floorbot.dm +++ b/code/modules/mob/living/bot/floorbot.dm @@ -95,7 +95,7 @@ /mob/living/bot/floorbot/handleAdjacentTarget() if(get_turf(target) == src.loc) - UnarmedAttack(target) + UnarmedAttack(target, TRUE) /mob/living/bot/floorbot/lookForTargets() for(var/turf/floor/T in view(src)) diff --git a/code/modules/mob/living/bot/medibot.dm b/code/modules/mob/living/bot/medibot.dm index cf174faa8ce3..8084e5eaaebd 100644 --- a/code/modules/mob/living/bot/medibot.dm +++ b/code/modules/mob/living/bot/medibot.dm @@ -73,7 +73,7 @@ /mob/living/bot/medbot/handleAdjacentTarget() if(is_tipped) // Don't handle targets if we're incapacitated! return - UnarmedAttack(target) + UnarmedAttack(target, TRUE) /mob/living/bot/medbot/lookForTargets() if(is_tipped) // Don't look for targets if we're incapacitated! diff --git a/code/modules/mob/living/bot/mulebot.dm b/code/modules/mob/living/bot/mulebot.dm index 12d54b837596..bb9cf31e58e4 100644 --- a/code/modules/mob/living/bot/mulebot.dm +++ b/code/modules/mob/living/bot/mulebot.dm @@ -172,7 +172,7 @@ if(target == src.loc) custom_emote(2, "makes a chiming sound.") playsound(loc, 'sound/machines/chime.ogg', 50, 0) - UnarmedAttack(target) + UnarmedAttack(target, TRUE) resetTarget() if(auto_return && home && (loc != home)) target = home diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm index 412d45498ac2..903677e4a811 100644 --- a/code/modules/mob/living/bot/secbot.dm +++ b/code/modules/mob/living/bot/secbot.dm @@ -182,7 +182,7 @@ begin_arrest(target, threat) ++awaiting_surrender else - UnarmedAttack(target) + UnarmedAttack(target, TRUE) /mob/living/bot/secbot/proc/cuff_target(var/mob/living/target) if(istype(target) && !target.get_equipped_item(slot_handcuffed_str)) @@ -209,9 +209,9 @@ return TRUE if(isanimal(M)) - a_intent = I_HURT + set_intent(I_FLAG_HARM) else - a_intent = I_GRAB + set_intent(I_FLAG_GRAB) stun_baton.use_on_mob(M, src) //robots and turrets aim for center of mass flick(attack_state, src) diff --git a/code/modules/mob/living/human/human.dm b/code/modules/mob/living/human/human.dm index 7ea921042c7e..b4a211d0537c 100644 --- a/code/modules/mob/living/human/human.dm +++ b/code/modules/mob/living/human/human.dm @@ -88,7 +88,7 @@ if(istype(pronouns)) stat("Coordinates:", "[pronouns.get_coordinates()]") - stat("Intent:", "[a_intent]") + stat("Intent:", "[get_intent().name]") stat("Move Mode:", "[move_intent.name]") if(SSevac.evacuation_controller) @@ -963,9 +963,6 @@ /mob/living/human/get_admin_job_string() return job || uppertext(species.name) -/mob/living/human/can_change_intent() - return TRUE - /mob/living/human/breathing_hole_covered() . = ..() if(!.) diff --git a/code/modules/mob/living/human/human_attackhand.dm b/code/modules/mob/living/human/human_attackhand.dm index dca7496e1a81..e88990677b46 100644 --- a/code/modules/mob/living/human/human_attackhand.dm +++ b/code/modules/mob/living/human/human_attackhand.dm @@ -24,77 +24,89 @@ if(length(limb.unarmed_attacks) && limb.is_usable()) . |= limb.unarmed_attacks -/mob/living/human/default_help_interaction(mob/user) - - if(user != src) - if(ishuman(user) && (is_asystole() || (status_flags & FAKEDEATH) || failed_last_breath) && !on_fire && !(user.get_target_zone() == BP_R_ARM || user.get_target_zone() == BP_L_ARM)) - if (performing_cpr) - performing_cpr = FALSE - else - performing_cpr = TRUE - start_compressions(user, TRUE) - return TRUE - - if(apply_pressure(user, user.get_target_zone())) - return TRUE - - return ..() - - var/decl/pronouns/pronouns = get_pronouns() - visible_message( - SPAN_NOTICE("\The [src] examines [pronouns.self]."), - SPAN_NOTICE("You check yourself for injuries.") - ) - - // TODO: move status strings onto the organ and handle crystal/prosthetic limbs. - for(var/obj/item/organ/external/org in get_external_organs()) - var/list/status = list() - - var/feels = 1 + round(org.pain/100, 0.1) - var/feels_brute = org.can_feel_pain() ? (org.brute_dam * feels) : 0 +/obj/item/organ/external/proc/get_injury_status(include_pain = TRUE, include_visible = TRUE) + . = list() + if(include_pain && can_feel_pain()) + var/feels = 1 + round(get_pain()/100, 0.1) + var/feels_brute = brute_dam * feels if(feels_brute > 0) - switch(feels_brute / org.max_damage) + switch(feels_brute / max_damage) if(0 to 0.35) - status += "slightly sore" + . += "slightly sore" if(0.35 to 0.65) - status += "very sore" + . += "very sore" if(0.65 to INFINITY) - status += "throbbing with agony" + . += "throbbing with agony" - var/feels_burn = org.can_feel_pain() ? (org.burn_dam * feels) : 0 + var/feels_burn = burn_dam * feels if(feels_burn > 0) - switch(feels_burn / org.max_damage) + switch(feels_burn / max_damage) if(0 to 0.35) - status += "tingling" + . += "tingling" if(0.35 to 0.65) - status += "stinging" + . += "stinging" if(0.65 to INFINITY) - status += "burning fiercely" - - if(org.status & ORGAN_MUTATED) - status += "misshapen" - if(org.status & ORGAN_BLEEDING) - status += "bleeding" - if(org.is_dislocated()) - status += "dislocated" - if(org.status & ORGAN_BROKEN && org.can_feel_pain()) - status += "painful to the touch" - - if(org.status & ORGAN_DEAD) - if(BP_IS_PROSTHETIC(org) || BP_IS_CRYSTAL(org)) - status += "irrecoverably damaged" + . += "burning fiercely" + + if(status & ORGAN_BROKEN) + . += "painful to the touch" + + if(include_visible && !owner?.is_blind()) + if(status & ORGAN_MUTATED) + . += "misshapen" + if(status & ORGAN_BLEEDING) + . += "bleeding" + if(is_dislocated()) + . += "dislocated" + if(status & ORGAN_DEAD) + if(BP_IS_PROSTHETIC(src) || BP_IS_CRYSTAL(src)) + . += "irrecoverably damaged" else - status += "grey and necrotic" - else if(org.damage >= org.max_damage && org.germ_level >= INFECTION_LEVEL_TWO) - status += "likely beyond saving and decay has set in" - if(!org.is_usable() || org.is_dislocated()) - status += "dangling uselessly" - - if(status.len) - show_message("My [org.name] is [english_list(status)].",1) + . += "grey and necrotic" + else if(damage >= max_damage && germ_level >= INFECTION_LEVEL_TWO) + . += "likely beyond saving and decay has set in" + + if(!is_usable() || is_dislocated()) // This one is special and has a different message for visible/pain modes. + . += (!include_visible || owner?.is_blind()) ? "completely limp" : "dangling uselessly" + +/mob/living/human/proc/check_self_injuries(include_pain = TRUE, include_visible = TRUE) + if(include_visible) + var/decl/pronouns/pronouns = get_pronouns() + visible_message( + SPAN_NOTICE("\The [src] examines [pronouns.self]."), + SPAN_NOTICE("You check yourself for injuries.") + ) + else if(include_pain) + to_chat(src, SPAN_NOTICE("You take note of how your body feels...")) + else + return // This should never happen, we should always check pain, visible status, or both. + + // TODO: move status strings onto the bodytype and handle crystal/prosthetic limbs. + for(var/obj/item/organ/external/org in get_external_organs()) + var/list/status = org.get_injury_status(include_pain, include_visible) + if(length(status)) + to_chat(src, "Your [org.name] is [english_list(status)].") + else if(is_blind() || !include_visible) + to_chat(src, "You can't feel anything wrong with your [org.name].") + else if(!include_pain) + to_chat(src, "You can't see anything wrong with your [org.name].") else - show_message("My [org.name] is OK.",1) - return TRUE + to_chat(src, "Your [org.name] is OK.") + +/mob/living/human/default_help_interaction(mob/user) + if(apply_pressure(user, user.get_target_zone())) + return TRUE + if(user == src) + check_self_injuries() + return TRUE + if(ishuman(user) && (is_asystole() || (status_flags & FAKEDEATH) || failed_last_breath) && !on_fire && !(user.get_target_zone() == BP_R_ARM || user.get_target_zone() == BP_L_ARM)) + if (performing_cpr) + performing_cpr = FALSE + else + performing_cpr = TRUE + start_compressions(user, TRUE) + return TRUE + return ..() /mob/living/human/default_disarm_interaction(mob/user) var/decl/species/user_species = user.get_species() @@ -114,7 +126,7 @@ return TRUE // AI driven mobs have a melee telegraph that needs to be handled here. - if(user.a_intent == I_HURT && !user.do_attack_windup_checking(src)) + if(user.check_intent(I_FLAG_HARM) && !user.do_attack_windup_checking(src)) return TRUE if(!ishuman(user)) @@ -144,15 +156,13 @@ to_chat(user, SPAN_DANGER("They are missing that limb!")) return TRUE - switch(src.a_intent) - if(I_HELP) - // We didn't see this coming, so we get the full blow - rand_damage = 5 - accurate = 1 - if(I_HURT, I_GRAB) - // We're in a fighting stance, there's a chance we block - if(MayMove() && src!=H && prob(20)) - block = 1 + // We didn't see this coming, so we get the full blow + if(check_intent(I_FLAG_HELP)) + rand_damage = 5 + accurate = 1 + // We're in a fighting stance, there's a chance we block + else if(check_intent(I_FLAG_HARM|I_FLAG_GRAB) && MayMove() && src != H && prob(20)) + block = 1 if (LAZYLEN(user.grabbed_by)) // Someone got a good grip on them, they won't be able to do much damage @@ -228,7 +238,7 @@ /mob/living/human/attack_hand(mob/user) remove_cloaking_source(species) - if(user.a_intent != I_GRAB) + if(!user.check_intent(I_FLAG_GRAB)) for (var/obj/item/grab/grab as anything in user.get_active_grabs()) if(grab.assailant == user && grab.affecting == src && grab.resolve_openhand_attack()) return TRUE @@ -422,6 +432,6 @@ // Dexterity ect. should be checked in these procs regardless, // but unarmed attacks that don't require hands should still // have the ability to be used. - if(!(. = ..()) && !get_active_held_item_slot() && a_intent == I_HURT && isliving(A)) + if(!(. = ..()) && !get_active_held_item_slot() && check_intent(I_FLAG_HARM) && isliving(A)) var/mob/living/victim = A return victim.default_hurt_interaction(src) diff --git a/code/modules/mob/living/human/human_defense.dm b/code/modules/mob/living/human/human_defense.dm index 1014326d2176..aa168f8ae019 100644 --- a/code/modules/mob/living/human/human_defense.dm +++ b/code/modules/mob/living/human/human_defense.dm @@ -154,7 +154,7 @@ meteor_act var/blocked = get_blocked_ratio(hit_zone, I.atom_damage_type, I.damage_flags(), I.armor_penetration, I.get_attack_force(user)) // Handle striking to cripple. - if(user.a_intent == I_DISARM) + if(user.check_intent(I_FLAG_DISARM)) effective_force *= 0.66 //reduced effective force... if(!..(I, user, effective_force, hit_zone)) return 0 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 4796744c4417..4ca6afa75455 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -62,7 +62,7 @@ default behaviour is: if(mob_bump_flag & context_flags) return 1 else - return ((a_intent == I_HELP && swapped.a_intent == I_HELP) && swapped.can_move_mob(src, swapping, 1)) + return ((check_intent(I_FLAG_HELP) && swapped.check_intent(I_FLAG_HELP)) && swapped.can_move_mob(src, swapping, 1)) /mob/living/canface() if(stat) @@ -107,7 +107,7 @@ default behaviour is: if(src.restrained()) now_pushing = 0 return - if(tmob.a_intent != I_HELP) + if(!tmob.check_intent(I_FLAG_HELP)) for(var/obj/item/shield/riot/shield in tmob.get_held_items()) if(prob(99)) now_pushing = 0 @@ -176,7 +176,7 @@ default behaviour is: if(tmob.buckled || buckled || tmob.anchored) return 0 //BubbleWrap: people in handcuffs are always switched around as if they were on 'help' intent to prevent a person being pulled from being seperated from their puller - if(!(tmob.mob_always_swap || (tmob.a_intent == I_HELP || tmob.restrained()) && (a_intent == I_HELP || src.restrained()))) + if(!(tmob.mob_always_swap || (tmob.check_intent(I_FLAG_HELP) || tmob.restrained()) && (check_intent(I_FLAG_HELP) || src.restrained()))) return 0 if(!tmob.MayMove(src) || incapacitated()) return 0 @@ -1486,7 +1486,7 @@ default behaviour is: /mob/living/proc/can_direct_mount(var/mob/user) if((user.faction == faction || !faction) && can_buckle && istype(user) && !user.incapacitated() && user == buckled_mob) - if(client && a_intent != I_HELP) + if(client && !check_intent(I_FLAG_HELP)) return FALSE // do not Ratatouille your colleagues // TODO: Piloting skillcheck for hands-free moving? Stupid but amusing for(var/obj/item/grab/reins in user.get_held_items()) diff --git a/code/modules/mob/living/living_attackhand.dm b/code/modules/mob/living/living_attackhand.dm index af16a0e793bc..e7a7ae239f9a 100644 --- a/code/modules/mob/living/living_attackhand.dm +++ b/code/modules/mob/living/living_attackhand.dm @@ -1,22 +1,19 @@ /mob/living/attack_hand(mob/user) // Allow grabbing a mob that you are buckled to, so that you can generate a control grab (for riding). - if(buckled == user && user.a_intent == I_GRAB) + if(buckled == user && user.check_intent(I_FLAG_GRAB)) return try_make_grab(user) return ..() || (user && default_interaction(user)) /mob/living/proc/default_interaction(var/mob/user) - SHOULD_CALL_PARENT(TRUE) - - switch(user.a_intent) - if(I_HURT) - . = default_hurt_interaction(user) - if(I_HELP) - . = default_help_interaction(user) - if(I_DISARM) - . = default_disarm_interaction(user) - if(I_GRAB) - . = default_grab_interaction(user) + if(user.check_intent(I_FLAG_HARM)) + . = default_hurt_interaction(user) + else if(user.check_intent(I_FLAG_HELP)) + . = default_help_interaction(user) + else if(user.check_intent(I_FLAG_DISARM)) + . = default_disarm_interaction(user) + else if(user.check_intent(I_FLAG_GRAB)) + . = default_grab_interaction(user) /mob/living/proc/default_hurt_interaction(var/mob/user) SHOULD_CALL_PARENT(TRUE) diff --git a/code/modules/mob/living/living_throw.dm b/code/modules/mob/living/living_throw.dm index 4c6e4d4ccba6..b65ec9889e96 100644 --- a/code/modules/mob/living/living_throw.dm +++ b/code/modules/mob/living/living_throw.dm @@ -7,7 +7,7 @@ if(incapacitated() || !target || istype(target, /obj/screen) || !istype(item) || !(item in get_held_items())) return FALSE - var/place_item = a_intent != I_HURT && Adjacent(target) + var/place_item = !check_intent(I_FLAG_HARM) && Adjacent(target) if(istype(item, /obj/item/grab)) var/obj/item/grab/grab = item @@ -31,7 +31,7 @@ if(isliving(target)) var/mob/living/mob = target if(length(mob.get_held_item_slots())) - if(mob == src || (mob.in_throw_mode && mob.a_intent == I_HELP)) + if(mob == src || (mob.in_throw_mode && mob.check_intent(I_FLAG_HELP))) if(!try_unequip(item, play_dropsound = place_item)) return FALSE if(target != src) @@ -41,7 +41,7 @@ SPAN_NOTICE("You give \the [mob] \a [item].") ) else - var/same_hand = a_intent == I_HELP + var/same_hand = check_intent(I_FLAG_HELP) var/decl/pronouns/user_pronouns = get_pronouns() visible_message( "\The [src] tosses \the [item] [same_hand ? "in the air and catches it." : "between [user_pronouns.his] hands"].", diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 742c03a9c490..0f7102d1e156 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -277,7 +277,7 @@ var/global/list/possible_say_verbs = list( //Overriding this will stop a number of headaches down the track. /mob/living/silicon/pai/attackby(obj/item/W, mob/user) var/obj/item/card/id/card = W.GetIdCard() - if(card && user.a_intent == I_HELP) + if(card && user.check_intent(I_FLAG_HELP)) var/list/new_access = card.GetAccess() idcard.access = new_access visible_message("[user] slides [W] across [src].") diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index e8c86f234f85..ae725a116c6a 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -170,7 +170,7 @@ if(istype(W, /obj/item/borg/upgrade)) to_chat(user, "\The [src] is not compatible with \the [W].") return TRUE - else if(IS_CROWBAR(W) && user.a_intent != I_HURT) + else if(IS_CROWBAR(W) && !user.check_intent(I_FLAG_HARM)) to_chat(user, "\The [src] is hermetically sealed. You can't open the case.") return TRUE else if (istype(W, /obj/item/card/id)||istype(W, /obj/item/modular_computer)) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index e588fc13400c..5315b7659543 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -468,7 +468,7 @@ if(try_stock_parts_install(W, user)) return TRUE - if(IS_WELDER(W) && user.a_intent != I_HURT) + if(IS_WELDER(W) && !user.check_intent(I_FLAG_HARM)) if (src == user) to_chat(user, "You lack the reach to be able to repair yourself.") return TRUE @@ -496,7 +496,7 @@ user.visible_message(SPAN_NOTICE("\The [user] has fixed some of the burnt wires on \the [src]!")) return TRUE - else if(IS_CROWBAR(W) && user.a_intent != I_HURT) // crowbar means open or close the cover - we all know what a crowbar is by now + else if(IS_CROWBAR(W) && !user.check_intent(I_FLAG_HARM)) // crowbar means open or close the cover - we all know what a crowbar is by now if(opened) if(cell) user.visible_message( @@ -633,7 +633,7 @@ else to_chat(user, "Upgrade error!") return TRUE - if(!(istype(W, /obj/item/robotanalyzer) || istype(W, /obj/item/scanner/health)) && W.get_attack_force(user) && user.a_intent != I_HELP) + if(!(istype(W, /obj/item/robotanalyzer) || istype(W, /obj/item/scanner/health)) && W.get_attack_force(user) && !user.check_intent(I_FLAG_HELP)) spark_at(src, 5, holder=src) return ..() @@ -657,7 +657,7 @@ . = ..() /mob/living/silicon/robot/default_interaction(mob/user) - if(user.a_intent != I_GRAB && opened && !wiresexposed && (!issilicon(user))) + if(!user.check_intent(I_FLAG_GRAB) && opened && !wiresexposed && (!issilicon(user))) var/datum/robot_component/cell_component = components["power cell"] if(cell) cell.update_icon() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index ebcd89aaf521..dd16025496c1 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -381,7 +381,7 @@ return TRUE /mob/living/silicon/proc/try_stock_parts_removal(obj/item/W, mob/user) - if(!IS_CROWBAR(W) || user.a_intent == I_HURT) + if(!IS_CROWBAR(W) || user.check_intent(I_FLAG_HARM)) return if(!length(stock_parts)) to_chat(user, SPAN_WARNING("There are no parts in \the [src] left to remove.")) diff --git a/code/modules/mob/living/simple_animal/_simple_animal.dm b/code/modules/mob/living/simple_animal/_simple_animal.dm index 95b6c06bb8b4..2f8283708bc6 100644 --- a/code/modules/mob/living/simple_animal/_simple_animal.dm +++ b/code/modules/mob/living/simple_animal/_simple_animal.dm @@ -422,7 +422,7 @@ var/global/list/simplemob_icon_bitflag_cache = list() return /decl/material/liquid/nutriment /mob/living/simple_animal/proc/reflect_unarmed_damage(var/mob/living/human/attacker, var/damage_type, var/description) - if(attacker.a_intent == I_HURT) + if(attacker.check_intent(I_FLAG_HARM)) attacker.apply_damage(rand(return_damage_min, return_damage_max), damage_type, attacker.get_active_held_item_slot(), used_weapon = description) if(rand(25)) to_chat(attacker, SPAN_WARNING("Your attack has no obvious effect on \the [src]'s [description]!")) diff --git a/code/modules/mob/living/simple_animal/crow/crow.dm b/code/modules/mob/living/simple_animal/crow/crow.dm index 03adeae6ae37..66428209454e 100644 --- a/code/modules/mob/living/simple_animal/crow/crow.dm +++ b/code/modules/mob/living/simple_animal/crow/crow.dm @@ -57,14 +57,14 @@ // Let people interact with the Bird Storage. /mob/living/simple_animal/crow/attack_hand(mob/user) - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) var/obj/item/backpack = get_equipped_item(slot_back_str) if(backpack) return backpack.attack_hand(user) return ..() /mob/living/simple_animal/crow/attackby(obj/item/I, mob/user) - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) var/obj/item/backpack = get_equipped_item(slot_back_str) if(backpack) return backpack.attackby(I, user) diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index eef4666321c6..c8ee4417ebff 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -96,7 +96,7 @@ else body.set_dir(SOUTH) if(isturf(movement_target.loc) && body.Adjacent(movement_target)) - body.UnarmedAttack(movement_target) + body.UnarmedAttack(movement_target, TRUE) else if(ishuman(movement_target.loc) && prob(20)) body.custom_emote(VISIBLE_MESSAGE, "stares at the [movement_target] that [movement_target.loc] has with sad puppy eyes.") diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index b1df77c7be41..ae8da0e797f3 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -59,7 +59,7 @@ var/atom/food = find_edible_atom(view(1, body.loc)) if(istype(food)) body.stop_automove() - body.a_intent = I_HELP + body.set_intent(I_FLAG_HELP) body.ClickOn(food) else if(!LAZYLEN(body.grabbed_by)) food = find_edible_atom(oview(5, body.loc)) diff --git a/code/modules/mob/living/simple_animal/hostile/_hostile.dm b/code/modules/mob/living/simple_animal/hostile/_hostile.dm index 3986335bc612..508df4a575fe 100644 --- a/code/modules/mob/living/simple_animal/hostile/_hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/_hostile.dm @@ -1,7 +1,6 @@ /mob/living/simple_animal/hostile abstract_type = /mob/living/simple_animal/hostile faction = "hostile" - a_intent = I_HURT response_help_3p = "$USER$ pokes $TARGET$." response_help_1p = "You poke $TARGET$." response_disarm = "shoves" diff --git a/code/modules/mob/living/simple_animal/hostile/faithful_hound.dm b/code/modules/mob/living/simple_animal/hostile/faithful_hound.dm index ac15b145c002..345b7137994b 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithful_hound.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithful_hound.dm @@ -37,7 +37,7 @@ var/new_aggress = 1 var/dist = get_dist(mailman, body) if(dist < 2) //Attack! Attack! - body.a_intent = I_HURT + body.set_intent(I_FLAG_HARM) body.ClickOn(mailman) return if(dist == 2) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index 87d1378b7582..681e1eac3903 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -2,7 +2,6 @@ name = "clown" desc = "A denizen of clown planet" icon = 'icons/mob/simple_animal/clown.dmi' - a_intent = I_HURT max_health = 75 harm_intent_damage = 8 minbodytemp = 270 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm index 55a34786ff6b..498adac96b38 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm @@ -5,7 +5,6 @@ desc = "An automated combat drone armed with state of the art weaponry and shielding." icon = 'icons/mob/simple_animal/drone_combat.dmi' burst_projectile = 0 - a_intent = I_HURT max_health = 300 move_intents = list( /decl/move_intent/walk/animal_slow, diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm index 5f8e5040ffbd..aab2c3fca766 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm @@ -258,7 +258,7 @@ return //Time for the hurt to begin! - parrot.UnarmedAttack(L) + parrot.UnarmedAttack(L, parrot.Adjacent(L)) return //Otherwise, fly towards the mob! diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index a2d7f65ab163..7903631bb68a 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -59,6 +59,7 @@ /mob/Login() + client.clear_mouse_pointers() // in case we are transferring mobs. global.player_list |= src update_Login_details() world.update_status() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7554d0e91f55..edf74c14dd0f 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1135,11 +1135,10 @@ /mob/proc/update_mouse_pointer() if(!client) return - - client.mouse_pointer_icon = initial(client.mouse_pointer_icon) - - if(examine_cursor_icon && client.keys_held["Shift"]) - client.mouse_pointer_icon = examine_cursor_icon + if(client.keys_held["Shift"]) + client.add_mouse_pointer(/decl/mouse_pointer/examine) + else + client.remove_mouse_pointer(/decl/mouse_pointer/examine) /mob/keybind_face_direction(direction) facedir(direction) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index c6b35aa28723..04318afb9719 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -70,9 +70,6 @@ */ var/obj/screen/zone_selector/zone_sel = null - /// Cursor icon used when holding shift over things. - var/examine_cursor_icon = 'icons/effects/mouse_pointers/examine_pointer.dmi' - var/damageoverlaytemp = 0 var/obj/machinery/machine = null @@ -97,8 +94,6 @@ var/bodytemperature = 310.055 //98.7 F var/shakecamera = 0 - var/a_intent = I_HELP//Living - var/decl/move_intent/move_intent = /decl/move_intent/walk var/list/move_intents = list(/decl/move_intent/walk) @@ -161,4 +156,4 @@ // Offset the overhead text if necessary. var/offset_overhead_text_x = 0 - var/offset_overhead_text_y = 0 \ No newline at end of file + var/offset_overhead_text_y = 0 diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 5fb27df3f1d2..6751c0ad7f2e 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -130,7 +130,7 @@ var/global/list/global/organ_rel_size = list( if(!ranged_attack) // target isn't trying to fight - if(target.a_intent == I_HELP) + if(target.check_intent(I_FLAG_HELP)) return zone // you cannot miss if your target is prone or restrained if(target.buckled || target.current_posture.prone) @@ -258,55 +258,6 @@ var/global/list/global/organ_rel_size = list( if(full_body && (get_equipped_item(slot_back_str) || get_equipped_item(slot_wear_mask_str))) return TRUE -//converts intent-strings into numbers and back -var/global/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT) -/proc/intent_numeric(argument) - if(istext(argument)) - switch(argument) - if(I_HELP) return 0 - if(I_DISARM) return 1 - if(I_GRAB) return 2 - else return 3 - else - switch(argument) - if(0) return I_HELP - if(1) return I_DISARM - if(2) return I_GRAB - else return I_HURT - -/mob/proc/can_change_intent() - return FALSE - -//change a mob's act-intent. Input the intent as a string such as "help" or use "right"/"left -/mob/proc/a_intent_change(input) - set name = "a-intent" - set hidden = 1 - - if(can_change_intent()) - switch(input) - if(I_HELP,I_DISARM,I_GRAB,I_HURT) - a_intent = input - if("right") - a_intent = intent_numeric((intent_numeric(a_intent)+1) % 4) - if("left") - a_intent = intent_numeric((intent_numeric(a_intent)+3) % 4) - if(istype(hud_used) && hud_used.action_intent) - hud_used.action_intent.icon_state = "intent_[a_intent]" - - else if(isrobot(src)) - switch(input) - if(I_HELP) - a_intent = I_HELP - if(I_HURT) - a_intent = I_HURT - if("right","left") - a_intent = intent_numeric(intent_numeric(a_intent) - 3) - if(istype(hud_used) && hud_used.action_intent) - if(a_intent == I_HURT) - hud_used.action_intent.icon_state = I_HURT - else - hud_used.action_intent.icon_state = I_HELP - /mob/proc/welding_eyecheck() return diff --git a/code/modules/mob/mob_intent.dm b/code/modules/mob/mob_intent.dm new file mode 100644 index 000000000000..39a1a9c5606a --- /dev/null +++ b/code/modules/mob/mob_intent.dm @@ -0,0 +1,152 @@ +// == Updated intent system == +// - Use mob.get_intent() to retrieve the entire decl structure. +// - Use mob.check_intent(I_FOO) for 1:1 intent type checking. +// - Use mob.check_intent(I_FLAG_FOO) for 'close enough for government work' flag checking. +// - Use mob.set_intent(I_FOO) to set intent to a type +// - Use mob.set_intent(I_FLAG_FOO) to set intent to whatever available type has the flag. +// - Use mob.cycle_intent(INTENT_HOTKEY_LEFT) or mob.cycle_intent(INTENT_HOTKEY_RIGHT) to step up or down the mob intent list. +// - Override mob.get_available_intents() if you want to change the intents from the default four. + +// TODO: +// - dynamic intent options based on equipped weapons, species, bodytype of active hand + +/proc/resolve_intent(intent) + RETURN_TYPE(/decl/intent) + // Legacy, should not proc. + if(istext(intent)) + intent = decls_repository.get_decl_by_id_or_var(intent, /decl/intent, "name") + // Saves constantly calling GET_DECL(I_FOO) + if(ispath(intent, /decl/intent)) + intent = GET_DECL(intent) + if(istype(intent, /decl/intent)) + return intent + return null + +/decl/intent + abstract_type = /decl/intent + decl_flags = DECL_FLAG_MANDATORY_UID + /// Replacing the old usage of I_HARM etc. in attackby() and such. Refer to /mob/proc/check_intent(). + var/intent_flags = 0 + /// Descriptive string used in status panel. + var/name + /// Icon used to draw this intent in the selector. + var/icon = 'icons/screen/intents.dmi' + /// State used to update intent selector. + var/icon_state + +/decl/intent/validate() + . = ..() + if(!istext(name)) + . += "null or invalid name" + if(!istext(icon_state)) + . += "null or invalid icon_state" + if(!icon) + . += "null icon" + if(icon && istext(icon_state)) + if(!check_state_in_icon(icon_state, icon)) + . += "missing icon_state '[icon_state]' from icon '[icon]'" + if(!check_state_in_icon("[icon_state]_off", icon)) + . += "missing icon_state '[icon_state]_off' from icon '[icon]'" + +// Basic subtypes. +/decl/intent/harm + name = "harm" + uid = "intent_harm" + intent_flags = I_FLAG_HARM + icon_state = "intent_harm" + sort_order = 1 // Bottom left of intent selector. + +/decl/intent/grab + name = "grab" + uid = "intent_grab" + intent_flags = I_FLAG_GRAB + icon_state = "intent_grab" + sort_order = 2 // Bottom left of the intent selector. + +/decl/intent/help + name = "help" + uid = "intent_help" + intent_flags = I_FLAG_HELP + icon_state = "intent_help" + sort_order = 3 // Top left of the intent selector. + +/decl/intent/disarm + name = "disarm" + uid = "intent_disarm" + intent_flags = I_FLAG_DISARM + icon_state = "intent_disarm" + sort_order = 4 // Top right of the intent selector. + +// Used by nymphs. +/decl/intent/harm/binary + icon = 'icons/screen/intents_wide.dmi' + uid = "intent_harm_simple" + intent_flags = (I_FLAG_HARM|I_FLAG_DISARM) + +/decl/intent/help/binary + icon = 'icons/screen/intents_wide.dmi' + uid = "intent_help_simple" + intent_flags = (I_FLAG_HARM|I_FLAG_GRAB) + +/mob + /// Decl for current 'intent' of mob; hurt, harm, etc. Initialized by get_intent(). + var/decl/intent/_a_intent + +/mob/proc/check_intent(checking_intent) + var/decl/intent/intent = get_intent() // Ensures intent has been initalised. + . = (intent == checking_intent) + if(!.) + if(isnum(checking_intent)) + return (intent.intent_flags & checking_intent) + else if(istext(checking_intent) || ispath(checking_intent, /decl/intent)) + return (intent == resolve_intent(checking_intent)) + +/mob/proc/set_intent(decl/intent/new_intent) + + if(!isnum(new_intent)) + new_intent = resolve_intent(new_intent) + else // Retrieve intent decl based on flag. + for(var/decl/intent/intent as anything in get_available_intents()) + if(intent.intent_flags & new_intent) + new_intent = intent + break + + if(istype(new_intent) && get_intent() != new_intent) + _a_intent = new_intent + if(istype(hud_used) && hud_used.action_intent) + hud_used.action_intent.update_icon() + return TRUE + + return FALSE + +/mob/proc/get_intent() + RETURN_TYPE(/decl/intent) + if(!_a_intent) + _a_intent = get_default_intent() + return _a_intent + +/mob/proc/get_default_intent() + return GET_DECL(/decl/intent/help) + +/mob/proc/get_available_intents() + var/static/list/available_intents + if(!available_intents) + available_intents = list( + GET_DECL(/decl/intent/help), + GET_DECL(/decl/intent/disarm), + GET_DECL(/decl/intent/grab), + GET_DECL(/decl/intent/harm) + ) + available_intents = sortTim(available_intents, /proc/cmp_decl_sort_value_asc) + return available_intents + +/mob/proc/cycle_intent(input) + set name = "a-intent" + set hidden = TRUE + switch(input) + if(INTENT_HOTKEY_RIGHT) + return set_intent(next_in_list(get_intent(), get_available_intents())) + if(INTENT_HOTKEY_LEFT) + return set_intent(previous_in_list(get_intent(), get_available_intents())) + else // Fallback, should just use set_intent() directly + return set_intent(input) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 30ee2e205d60..e0c1d4468761 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -154,7 +154,7 @@ qdel(t) var/mob/living/simple_animal/corgi/new_corgi = new /mob/living/simple_animal/corgi (loc) - new_corgi.a_intent = I_HURT + new_corgi.set_intent(get_intent()) new_corgi.key = key to_chat(new_corgi, "You are now a Corgi. Yap Yap!") @@ -186,7 +186,7 @@ var/mob/new_mob = new mobpath(src.loc) new_mob.key = key - new_mob.a_intent = I_HURT + new_mob.set_intent(get_intent()) to_chat(new_mob, "You suddenly feel more... animalistic.") @@ -206,7 +206,7 @@ var/mob/new_mob = new mobpath(src.loc) new_mob.key = key - new_mob.a_intent = I_HURT + new_mob.set_intent(get_intent()) to_chat(new_mob, "You feel more... animalistic.") qdel(src) diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index 06d4626f1474..f4de33b53613 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -3,8 +3,8 @@ /obj/machinery/lapvend name = "computer vendor" desc = "A vending machine with a built-in microfabricator, capable of dispensing various computers." - icon = 'icons/obj/vending.dmi' - icon_state = "laptop" + icon = 'icons/obj/machines/vending/laptops.dmi' + icon_state = ICON_STATE_WORLD layer = BELOW_OBJ_LAYER anchored = TRUE density = TRUE @@ -278,7 +278,7 @@ if(state == 2) if(process_payment(W)) fabricate_and_recalc_price(1) - flick("laptop-vend", src) + flick("world-vend", src) if((devtype == 1) && fabricated_laptop) fabricated_laptop.forceMove(src.loc) fabricated_laptop.update_icon() diff --git a/code/modules/multiz/ladder.dm b/code/modules/multiz/ladder.dm index e737b9164543..dce4ccb57f63 100644 --- a/code/modules/multiz/ladder.dm +++ b/code/modules/multiz/ladder.dm @@ -139,7 +139,7 @@ landing.visible_message(SPAN_DANGER("\The [I] falls from the top of \the [target_down]!")) /obj/structure/ladder/attack_hand(var/mob/user) - if(user.a_intent == I_HURT || !user.check_dexterity(DEXTERITY_SIMPLE_MACHINES)) + if(user.check_intent(I_FLAG_HARM) || !user.check_dexterity(DEXTERITY_SIMPLE_MACHINES)) return ..() climb(user) return TRUE diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 169c7cde0d41..955161ad681c 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -379,7 +379,7 @@ owner.update_health() /obj/item/organ/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(BP_IS_PROSTHETIC(src) || !istype(target) || !istype(user) || (user != target && user.a_intent == I_HELP)) + if(BP_IS_PROSTHETIC(src) || !istype(target) || !istype(user) || (user != target && user.check_intent(I_FLAG_HELP))) return ..() if(alert("Do you really want to use this organ as food? It will be useless for anything else afterwards.",,"Ew, no.","Bon appetit!") == "Ew, no.") diff --git a/code/modules/organs/prosthetics/prosthetics_manufacturer_models.dm b/code/modules/organs/prosthetics/prosthetics_manufacturer_models.dm index 64776e6aefb1..8c570b2e0876 100644 --- a/code/modules/organs/prosthetics/prosthetics_manufacturer_models.dm +++ b/code/modules/organs/prosthetics/prosthetics_manufacturer_models.dm @@ -15,7 +15,7 @@ is_robotic = FALSE modular_limb_tier = MODULAR_BODYPART_ANYWHERE bodytype_category = BODYTYPE_HUMANOID - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak required_map_tech = MAP_TECH_LEVEL_MEDIEVAL uid = "bodytype_prosthetic_wooden" diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 19b2df3bfbec..ee1e92dd890d 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -9,7 +9,7 @@ throw_range = 10 slot_flags = SLOT_LOWER_BODY material_alteration = MAT_FLAG_ALTERATION_COLOR - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak drop_sound = 'sound/foley/tooldrop5.ogg' pickup_sound = 'sound/foley/paperpickup2.ogg' diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 1a5bbeb9e745..7aad7aace238 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -716,21 +716,3 @@ var/global/list/adminfaxes = list() //cache for faxes that have been sent to for(var/uri in global.using_map.map_admin_faxes) var/list/contact_info = global.using_map.map_admin_faxes[uri] add_quick_dial_contact(contact_info["name"], uri) - -/obj/machinery/faxmachine/get_alt_interactions(mob/user) - . = ..() - LAZYADD(., /decl/interaction_handler/fax_remove_card) - -/decl/interaction_handler/fax_remove_card - name = "Remove ID Card" - expected_target_type = /obj/machinery/faxmachine - -/decl/interaction_handler/fax_remove_card/is_possible(atom/target, mob/user, obj/item/prop) - . = ..() - if(.) - var/obj/machinery/faxmachine/fax = target - return !!(fax.card_reader?.get_inserted()) - -/decl/interaction_handler/fax_remove_card/invoked(atom/target, mob/user, obj/item/prop) - var/obj/machinery/faxmachine/fax = target - fax.eject_card(user) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 1de729a2deb9..b5beaeb8400d 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -131,7 +131,7 @@ return TRUE /obj/item/paper/attack_self(mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) if(is_crumpled) user.show_message(SPAN_WARNING("\The [src] is already crumpled.")) return diff --git a/code/modules/paperwork/paper_plane.dm b/code/modules/paperwork/paper_plane.dm index a5b211bcd546..ac8ebc5d961e 100644 --- a/code/modules/paperwork/paper_plane.dm +++ b/code/modules/paperwork/paper_plane.dm @@ -51,7 +51,7 @@ take_damage(TT.speed * w_class) /obj/item/paper_plane/attack_self(mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return crumple(user) return unfold(user) diff --git a/code/modules/paperwork/paper_sticky.dm b/code/modules/paperwork/paper_sticky.dm index de9f83e3fdf5..8587007f8d91 100644 --- a/code/modules/paperwork/paper_sticky.dm +++ b/code/modules/paperwork/paper_sticky.dm @@ -60,7 +60,7 @@ . = ..() /obj/item/sticky_pad/attack_hand(var/mob/user) - if(user.a_intent == I_GRAB) + if(user.check_intent(I_FLAG_GRAB)) return ..() if(!top) return TRUE diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index e84ba8562322..5d900aab3575 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -32,7 +32,7 @@ if(!CanPhysicallyInteract(user)) return FALSE - if(user.a_intent == I_HURT || !user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) + if(user.check_intent(I_FLAG_HARM) || !user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) return ..() if(LAZYLEN(papers) < 1 && amount < 1) diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm index ce2142055694..7905a7186749 100644 --- a/code/modules/paperwork/papershredder.dm +++ b/code/modules/paperwork/papershredder.dm @@ -115,7 +115,7 @@ /obj/machinery/papershredder/attackby(var/obj/item/used_item, var/mob/user) //Silently skip tools, and things we don't have the dexterity to use if(!has_extension(used_item, /datum/extension/tool) && used_item.user_can_attack_with(user, silent = TRUE)) - var/trying_to_smack = !(used_item.item_flags & ITEM_FLAG_NO_BLUDGEON) && user && user.a_intent == I_HURT + var/trying_to_smack = !(used_item.item_flags & ITEM_FLAG_NO_BLUDGEON) && user && user.check_intent(I_FLAG_HARM) if(used_item.storage) empty_bin(user, used_item) return TRUE @@ -245,7 +245,7 @@ user.visible_message( \ SPAN_DANGER("\The [user] burns right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap."), \ SPAN_DANGER("You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.")) - fire_act() + fire_act(return_air(), P.get_heat(), 500) /obj/item/shreddedp/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) SHOULD_CALL_PARENT(FALSE) diff --git a/code/modules/paperwork/pen/pen.dm b/code/modules/paperwork/pen/pen.dm index 6fe193aed266..b11689c5b70c 100644 --- a/code/modules/paperwork/pen/pen.dm +++ b/code/modules/paperwork/pen/pen.dm @@ -36,7 +36,7 @@ /obj/item/pen/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(user.a_intent == I_HELP && user.get_target_zone() == BP_HEAD) + if(user.check_intent(I_FLAG_HELP) && user.get_target_zone() == BP_HEAD) var/obj/item/organ/external/head/head = target.get_organ(BP_HEAD, /obj/item/organ/external/head) if(istype(head)) head.write_on(user, "[stroke_color_name] [medium_name]") diff --git a/code/modules/paperwork/pen/reagent_pen.dm b/code/modules/paperwork/pen/reagent_pen.dm index 225b070e617b..67dfcad441c6 100644 --- a/code/modules/paperwork/pen/reagent_pen.dm +++ b/code/modules/paperwork/pen/reagent_pen.dm @@ -15,7 +15,7 @@ /obj/item/pen/reagent/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) var/allow = target.can_inject(user, user.get_target_zone()) - if(allow && user.a_intent == I_HELP) + if(allow && user.check_intent(I_FLAG_HELP)) if (allow == INJECTION_PORT) if(target != user) to_chat(user, SPAN_WARNING("You begin hunting for an injection port on \the [target]'s suit!")) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 8120330ed100..712c2d6c2b65 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -46,7 +46,7 @@ /obj/machinery/photocopier/Initialize(mapload, d=0, populate_parts = TRUE) . = ..() - if(.!= INITIALIZE_HINT_QDEL && populate_parts && printer) + if(. != INITIALIZE_HINT_QDEL && populate_parts && printer) //Mapped photocopiers shall spawn with ink and paper printer.make_full() diff --git a/code/modules/persistence/graffiti.dm b/code/modules/persistence/graffiti.dm index ed62d878dfc9..e9afbbad8d87 100644 --- a/code/modules/persistence/graffiti.dm +++ b/code/modules/persistence/graffiti.dm @@ -43,7 +43,7 @@ user.visible_message(SPAN_NOTICE("\The [user] clears away some graffiti.")) qdel(src) return TRUE - else if(thing.sharp && user.a_intent != I_HELP) //Check intent so you don't go insane trying to unscrew a light fixture over a graffiti + else if(thing.sharp && !user.check_intent(I_FLAG_HELP)) //Check intent so you don't go insane trying to unscrew a light fixture over a graffiti if(jobban_isbanned(user, "Graffiti")) to_chat(user, SPAN_WARNING("You are banned from leaving persistent information across rounds.")) return TRUE diff --git a/code/modules/persistence/noticeboards.dm b/code/modules/persistence/noticeboards.dm index 2d0a65a28019..d0b5af670daa 100644 --- a/code/modules/persistence/noticeboards.dm +++ b/code/modules/persistence/noticeboards.dm @@ -9,7 +9,7 @@ tool_interaction_flags = TOOL_INTERACTION_DECONSTRUCT obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED directional_offset = @'{"SOUTH":{"y":32}, "EAST":{"x":-32}, "WEST":{"x":32}}' - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak var/tmp/max_notices = 5 var/list/notices @@ -82,7 +82,7 @@ return TRUE /obj/structure/noticeboard/attack_hand(var/mob/user) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() interact(user) return TRUE diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 053432007e62..1f6254eea46a 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -445,7 +445,7 @@ var/global/list/all_apcs = list() return ..() /obj/machinery/power/apc/bash(obj/item/used_item, mob/user) - if (!(user.a_intent == I_HURT) || (used_item.item_flags & ITEM_FLAG_NO_BLUDGEON)) + if (!(user.check_intent(I_FLAG_HARM)) || (used_item.item_flags & ITEM_FLAG_NO_BLUDGEON)) return FALSE if(!used_item.user_can_attack_with(user)) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 4cc7b4d07516..adfe9f64ed48 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -555,7 +555,7 @@ By design, d1 is the smallest direction and d2 is the highest //you can use wires to heal robotics /obj/item/stack/cable_coil/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) var/obj/item/organ/external/affecting = istype(target) && GET_EXTERNAL_ORGAN(target, user?.get_target_zone()) - if(affecting && user.a_intent == I_HELP) + if(affecting && user.check_intent(I_FLAG_HELP)) if(!affecting.is_robotic()) to_chat(user, SPAN_WARNING("\The [target]'s [affecting.name] is not robotic. \The [src] cannot repair it.")) else if(BP_IS_BRITTLE(affecting)) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 76ea4bb5e1ee..94e4bebfba43 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -262,7 +262,7 @@ // attempt to break the light //If xenos decide they want to smash a light bulb with a toolbox, who am I to stop them? /N - else if(lightbulb && (lightbulb.status != LIGHT_BROKEN) && user.a_intent != I_HELP) + else if(lightbulb && (lightbulb.status != LIGHT_BROKEN) && !user.check_intent(I_FLAG_HELP)) if(prob(1 + W.get_attack_force(user) * 5)) @@ -337,7 +337,7 @@ to_chat(user, "You remove the [get_fitting_name()].") else if(istype(user) && user.is_telekinetic()) to_chat(user, "You telekinetically remove the [get_fitting_name()].") - else if(user.a_intent != I_HELP) + else if(!user.check_intent(I_FLAG_HELP)) var/obj/item/organ/external/hand = GET_EXTERNAL_ORGAN(H, user.get_active_held_item_slot()) if(hand && hand.is_usable() && !hand.can_feel_pain()) user.apply_damage(3, BURN, hand.organ_tag, used_weapon = src) @@ -598,7 +598,7 @@ if(!proximity) return if(istype(target, /obj/machinery/light)) return - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) return shatter() diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 43f6f7fb6c1a..1224485b346f 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -64,7 +64,7 @@ overlays += I /obj/item/ammo_magazine/shotholder/attack_hand(mob/user) - if(loc != user || user.a_intent != I_HURT || !length(stored_ammo) || !user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) + if(loc != user || !user.check_intent(I_FLAG_HARM) || !length(stored_ammo) || !user.check_dexterity(DEXTERITY_HOLD_ITEM, TRUE)) return ..() create_initial_contents() var/obj/item/ammo_casing/C = stored_ammo[stored_ammo.len] diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8d2a2e24ed7a..83ee026551b2 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -243,14 +243,14 @@ handle_suicide(user) return TRUE - if(user.a_intent != I_HURT && user.aiming && user.aiming.active) //if aim mode, don't pistol whip + if(!user.check_intent(I_FLAG_HARM) && user.aiming && user.aiming.active) //if aim mode, don't pistol whip if (user.aiming.aiming_at != target) PreFire(target, user) else Fire(target, user, pointblank=1) return TRUE - if(user.a_intent == I_HURT) //point blank shooting + if(user.check_intent(I_FLAG_HARM)) //point blank shooting Fire(target, user, pointblank = TRUE) return TRUE @@ -287,7 +287,7 @@ return if(safety()) - if(user.a_intent == I_HURT && !user.skill_fail_prob(SKILL_WEAPONS, 100, SKILL_EXPERT, 0.5)) //reflex un-safeying + if(user.check_intent(I_FLAG_HARM) && !user.skill_fail_prob(SKILL_WEAPONS, 100, SKILL_EXPERT, 0.5)) //reflex un-safeying toggle_safety(user) else handle_click_empty(user) diff --git a/code/modules/projectiles/guns/launcher/bows/arrow.dm b/code/modules/projectiles/guns/launcher/bows/arrow.dm index 981d6fe8af71..1fb6cc358678 100644 --- a/code/modules/projectiles/guns/launcher/bows/arrow.dm +++ b/code/modules/projectiles/guns/launcher/bows/arrow.dm @@ -8,7 +8,7 @@ sharp = 1 edge = 0 lock_picking_level = 3 - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC matter_multiplier = 0.2 is_spawnable_type = TRUE diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index e66053ebe84d..8e241456d22b 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -54,11 +54,11 @@ var/choice = pick(get_random_transformation_options(M)) var/mob/living/new_mob = apply_transformation(M, choice) if(new_mob) - new_mob.a_intent = "hurt" + new_mob.set_intent(I_FLAG_HARM) if(M.mind) for (var/spell/S in M.mind.learned_spells) new_mob.add_spell(new S.type) - new_mob.a_intent = "hurt" + new_mob.set_intent(I_FLAG_HARM) transfer_key_from_mob_to_mob(M, new_mob) to_chat(new_mob, "Your form morphs into that of \a [choice].") else diff --git a/code/modules/reagents/dispenser/cartridge.dm b/code/modules/reagents/dispenser/cartridge.dm index 924c00ea958a..ab55f5dd9753 100644 --- a/code/modules/reagents/dispenser/cartridge.dm +++ b/code/modules/reagents/dispenser/cartridge.dm @@ -65,7 +65,7 @@ return TRUE if(handle_eaten_by_mob(user, target) != EATEN_INVALID) return TRUE - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) if(standard_splash_mob(user,target)) return TRUE if(reagents && reagents.total_volume) diff --git a/code/modules/reagents/reactions/reaction_synthesis.dm b/code/modules/reagents/reactions/reaction_synthesis.dm index 90f7a0e19577..c70444faff81 100644 --- a/code/modules/reagents/reactions/reaction_synthesis.dm +++ b/code/modules/reagents/reactions/reaction_synthesis.dm @@ -146,3 +146,65 @@ return for(var/i = 1 to create_soap) new /obj/item/soap/crafted(T) + +// Making chipboard out of wood scraps/recycled wood. +/decl/chemical_reaction/synthesis/chipboard + name = "Oak Chipboard" + required_reagents = list( + /decl/material/solid/organic/wood/oak = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2), + /decl/material/solid/organic/plastic = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2) + ) + result_amount = 1 + mix_message = "The wood particulate binds with the plastic to form laminated chipboard." + minimum_temperature = 100 CELSIUS + var/chipboard_type = /decl/material/solid/organic/wood/chipboard + +/decl/chemical_reaction/synthesis/chipboard/on_reaction(datum/reagents/holder, created_volume, reaction_flags, list/reaction_data) + ..() + var/turf/T = get_turf(holder.get_reaction_loc(chemical_reaction_flags)) + if(!istype(T)) + return + var/create_sheets = floor(created_volume) + if(create_sheets <= 0) + return + new /obj/item/stack/material/sheet(T, create_sheets, chipboard_type) + +/decl/chemical_reaction/synthesis/chipboard/maple + name = "Maple Chipboard" + required_reagents = list( + /decl/material/solid/organic/wood/maple = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2), + /decl/material/solid/organic/plastic = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2) + ) + chipboard_type = /decl/material/solid/organic/wood/chipboard/maple + +/decl/chemical_reaction/synthesis/chipboard/mahogany + name = "Mahogany Chipboard" + required_reagents = list( + /decl/material/solid/organic/wood/mahogany = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2), + /decl/material/solid/organic/plastic = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2) + ) + chipboard_type = /decl/material/solid/organic/wood/chipboard/mahogany + +/decl/chemical_reaction/synthesis/chipboard/ebony + name = "Ebony Chipboard" + required_reagents = list( + /decl/material/solid/organic/wood/ebony = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2), + /decl/material/solid/organic/plastic = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2) + ) + chipboard_type = /decl/material/solid/organic/wood/chipboard/ebony + +/decl/chemical_reaction/synthesis/chipboard/walnut + name = "Walnut Chipboard" + required_reagents = list( + /decl/material/solid/organic/wood/walnut = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2), + /decl/material/solid/organic/plastic = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2) + ) + chipboard_type = /decl/material/solid/organic/wood/chipboard/walnut + +/decl/chemical_reaction/synthesis/chipboard/yew + name = "Yew Chipboard" + required_reagents = list( + /decl/material/solid/organic/wood/yew = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2), + /decl/material/solid/organic/plastic = (REAGENT_UNITS_PER_MATERIAL_SHEET / 2) + ) + chipboard_type = /decl/material/solid/organic/wood/chipboard/yew diff --git a/code/modules/reagents/reagent_containers/bucket.dm b/code/modules/reagents/reagent_containers/bucket.dm index 1e072a63217d..3a8e13125733 100644 --- a/code/modules/reagents/reagent_containers/bucket.dm +++ b/code/modules/reagents/reagent_containers/bucket.dm @@ -44,7 +44,7 @@ desc = "It's a wooden bucket. How rustic." icon = 'icons/obj/items/wooden_bucket.dmi' volume = 200 - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak material_alteration = MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_COLOR // name is already modified /// The material used for the chain, belts, and rivets holding the wood together, typically iron or steel. /// Mostly used for visual and matter reasons. Initially a typepath, set to a decl on init. diff --git a/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm b/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm index 809c6cedb83c..1dc986fb81be 100644 --- a/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm @@ -207,7 +207,7 @@ var/global/const/DRINK_ICON_NOISY = "noise" /obj/item/chems/drinks/glass2/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/utensil/spoon)) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) user.visible_message("[user] bashes \the [src] with a spoon, shattering it to pieces! What a rube.") playsound(src, "shatter", 30, 1) if(reagents) diff --git a/code/modules/reagents/reagent_containers/drinks/bottle.dm b/code/modules/reagents/reagent_containers/drinks/bottle.dm index 6d5bebfe3ef9..6c93e2c79a27 100644 --- a/code/modules/reagents/reagent_containers/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/drinks/bottle.dm @@ -34,7 +34,7 @@ //when thrown on impact, bottles smash and spill their contents /obj/item/chems/drinks/bottle/throw_impact(atom/hit_atom, var/datum/thrownthing/TT) ..() - if(material?.is_brittle() && TT.thrower && TT.thrower.a_intent != I_HELP) + if(material?.is_brittle() && TT.thrower && !TT.thrower.check_intent(I_FLAG_HELP)) if(TT.speed > throw_speed || smash_check(TT.dist_travelled)) //not as reliable as smashing directly smash(loc, hit_atom) @@ -157,7 +157,7 @@ /obj/item/chems/drinks/bottle/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone) . = ..() - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) return if(!smash_check(1)) return //won't always break on the first hit diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index c8412e988a55..bb8ea65e64bb 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -30,7 +30,7 @@ var/trans = 0 if(ismob(target)) - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) return var/time = 20 //2/3rds the time of a syringe diff --git a/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_box.dm b/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_box.dm index f387e9af0e7a..a048bb7eac31 100644 --- a/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_box.dm +++ b/code/modules/reagents/reagent_containers/food/sliceable/pizza/pizza_box.dm @@ -49,7 +49,7 @@ return FALSE /obj/item/pizzabox/afterattack(atom/target, mob/user, proximity_flag, click_parameters) - if(proximity_flag && user?.a_intent == I_HURT && user != target) + if(proximity_flag && user?.check_intent(I_FLAG_HARM) && user != target) jostle_pizza() explode_stack() @@ -189,7 +189,7 @@ /obj/item/pizzabox/attack_hand(mob/user) - if(open && pizza && user.a_intent != I_GRAB) + if(open && pizza && !user.check_intent(I_FLAG_GRAB)) if(user.check_dexterity(DEXTERITY_HOLD_ITEM)) user.put_in_hands(pizza) to_chat(user, SPAN_NOTICE("You take \the [pizza] out of \the [src].")) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 64473fa95308..d120bce478c9 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -68,7 +68,7 @@ update_icon() /obj/item/chems/glass/use_on_mob(mob/living/target, mob/living/user, animate = TRUE) - if(get_attack_force(user) && !(item_flags & ITEM_FLAG_NO_BLUDGEON) && user.a_intent == I_HURT) + if(get_attack_force(user) && !(item_flags & ITEM_FLAG_NO_BLUDGEON) && user.check_intent(I_FLAG_HARM)) return ..() return FALSE @@ -86,7 +86,7 @@ return TRUE if(handle_eaten_by_mob(user, target) != EATEN_INVALID) return TRUE - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) if(standard_splash_mob(user,target)) return TRUE if(reagents && reagents.total_volume) diff --git a/code/modules/reagents/reagent_containers/glass_edibility.dm b/code/modules/reagents/reagent_containers/glass_edibility.dm index 9411350417e7..2449de26a43c 100644 --- a/code/modules/reagents/reagent_containers/glass_edibility.dm +++ b/code/modules/reagents/reagent_containers/glass_edibility.dm @@ -2,6 +2,6 @@ if(!ATOM_IS_OPEN_CONTAINER(src)) to_chat(user, SPAN_WARNING("You need to open \the [src] first.")) return EATEN_UNABLE - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return EATEN_INVALID return ..() diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 7467b9260f80..f55288be25ec 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -82,7 +82,7 @@ if(!target.reagents) return - if((user.a_intent == I_HURT) && ismob(target)) + if((user.check_intent(I_FLAG_HARM)) && ismob(target)) if(can_stab) syringestab(target, user) else diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 22877a3e341d..d6597858fa34 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -89,7 +89,7 @@ // We do this here to avoid putting the vessel straight into storage. // This is usually handled by afterattack on /chems. - if(storage && ATOM_IS_OPEN_CONTAINER(W) && user.a_intent == I_HELP) + if(storage && ATOM_IS_OPEN_CONTAINER(W) && user.check_intent(I_FLAG_HELP)) if(W.standard_dispenser_refill(user, src)) return TRUE if(W.standard_pour_into(user, src)) @@ -256,7 +256,7 @@ /obj/structure/reagent_dispensers/water_cooler name = "water cooler" desc = "A machine that dispenses cool water to drink." - icon = 'icons/obj/vending.dmi' + icon = 'icons/obj/structures/water_cooler.dmi' icon_state = "water_cooler" possible_transfer_amounts = null amount_dispensed = 5 @@ -299,10 +299,15 @@ qdel(C) cups++ return TRUE + return ..() +/obj/structure/reagent_dispensers/water_cooler/on_reagent_change() . = ..() - if(!. && ATOM_IS_OPEN_CONTAINER(W)) - flick("[icon_state]-vend", src) + // Bubbles in top of cooler. + if(reagents?.total_volume) + var/vend_state = "[icon_state]-vend" + if(check_state_in_icon(vend_state, icon)) + flick(vend_state, src) /obj/structure/reagent_dispensers/beerkeg name = "beer keg" diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index a753cdde1c70..a50fa92e738f 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -114,7 +114,7 @@ var/global/list/diversion_junctions = list() /obj/machinery/disposal/receive_mouse_drop(atom/dropping, mob/user, params) - . = (user?.a_intent != I_HURT && ..()) + . = (!user?.check_intent(I_FLAG_HARM) && ..()) if(!. && !(stat & BROKEN)) diff --git a/code/modules/recycling/wrapped_package.dm b/code/modules/recycling/wrapped_package.dm index fe3003c6773f..57261df802b3 100644 --- a/code/modules/recycling/wrapped_package.dm +++ b/code/modules/recycling/wrapped_package.dm @@ -195,7 +195,7 @@ update_icon() return TRUE - else if(W.sharp && user.a_intent == I_HELP) + else if(W.sharp && user.check_intent(I_FLAG_HELP)) //You can alternative cut the wrapper off with a sharp item unwrap(user) return TRUE diff --git a/code/modules/research/design_console.dm b/code/modules/research/design_console.dm index 73b6abc3255a..5e2e43978ad3 100644 --- a/code/modules/research/design_console.dm +++ b/code/modules/research/design_console.dm @@ -1,11 +1,16 @@ /obj/machinery/computer/design_console name = "design database console" desc = "A console for interfacing with a research and development design network." + maximum_component_parts = list( + /obj/item/stock_parts/item_holder/disk_reader = 1, + /obj/item/stock_parts = 15, + ) + /// A cached reference to our disk reader part, if present. + var/obj/item/stock_parts/item_holder/disk_reader/disk_reader var/initial_network_id var/initial_network_key var/list/local_cache - var/obj/item/disk/design_disk/disk var/obj/machinery/design_database/viewing_database var/showing_designs = FALSE @@ -13,36 +18,34 @@ . = ..() set_extension(src, /datum/extension/network_device, initial_network_id, initial_network_key, RECEIVER_STRONG_WIRELESS) +/obj/machinery/computer/design_console/Destroy() + viewing_database = null + disk_reader = null + return ..() + /obj/machinery/computer/design_console/modify_mapped_vars(map_hash) ..() ADJUST_TAG_VAR(initial_network_id, map_hash) +/obj/machinery/computer/design_console/RefreshParts() + . = ..() + disk_reader = get_component_of_type(/obj/item/stock_parts/item_holder/disk_reader) + if(disk_reader) + disk_reader.register_on_insert(CALLBACK(src, PROC_REF(update_ui))) + disk_reader.register_on_eject(CALLBACK(src, PROC_REF(update_ui))) + +/obj/machinery/computer/design_console/proc/try_get_disk() + return disk_reader?.get_inserted() + +/obj/machinery/computer/design_console/proc/update_ui() + SSnano.update_uis(src) + /obj/machinery/computer/design_console/handle_post_network_connection() ..() sync_network() -/obj/machinery/computer/design_console/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/disk/design_disk)) - if(disk) - to_chat(user, SPAN_WARNING("\The [src] already has a disk inserted.")) - return TRUE - if(user.try_unequip(I, src)) - visible_message("\The [user] slots \the [I] into \the [src].") - disk = I - return TRUE - . = ..() - /obj/machinery/computer/design_console/proc/eject_disk(var/mob/user) - if(disk) - disk.dropInto(loc) - if(user) - if(!issilicon(user)) - user.put_in_hands(disk) - if(Adjacent(user, src)) - visible_message(SPAN_NOTICE("\The [user] removes \the [disk] from \the [src].")) - disk = null - return TRUE - return FALSE + return !!disk_reader.eject_item(user) /obj/machinery/computer/design_console/interface_interact(mob/user) ui_interact(user) @@ -55,9 +58,13 @@ var/datum/computer_network/network = device.get_network() data["network_id"] = device.network_tag + var/obj/item/disk/design_disk/disk = try_get_disk() if(disk) data["disk_name"] = disk.name - data["disk_tech"] = disk.blueprint ? disk.blueprint.name : "no design saved" + if(istype(disk)) + data["disk_tech"] = disk.blueprint ? disk.blueprint.name : "no design saved" + else + data["disk_tech"] = "invalid data format" else data["disk_name"] = "no disk loaded" @@ -159,7 +166,8 @@ if(href_list["save_design"]) var/datum/fabricator_recipe/design = locate(href_list["save_design"]) - if(istype(design) && disk) + var/obj/item/disk/design_disk/disk = try_get_disk() + if(istype(design) && istype(disk)) disk.blueprint = design disk.SetName("[initial(disk.name)] ([disk.blueprint.name])") return TOPIC_REFRESH @@ -219,20 +227,3 @@ var/list/techs = get_network_tech_levels() for(var/obj/machinery/fabricator/fab in network.get_devices_by_type(/obj/machinery/fabricator)) fab.refresh_design_cache(techs) - -/obj/machinery/computer/design_console/get_alt_interactions(var/mob/user) - . = ..() - LAZYADD(., /decl/interaction_handler/remove_disk/console) - -/decl/interaction_handler/remove_disk/console - expected_target_type = /obj/machinery/computer/design_console - -/decl/interaction_handler/remove_disk/console/is_possible(atom/target, mob/user, obj/item/prop) - . = ..() - if(.) - var/obj/machinery/computer/design_console/D = target - . = !!D.disk - -/decl/interaction_handler/remove_disk/console/invoked(atom/target, mob/user, obj/item/prop) - var/obj/machinery/computer/design_console/D = target - D.eject_disk(user) diff --git a/code/modules/research/design_database.dm b/code/modules/research/design_database.dm index 11e53477ef5d..5c5a6b3cc410 100644 --- a/code/modules/research/design_database.dm +++ b/code/modules/research/design_database.dm @@ -17,12 +17,17 @@ var/global/list/default_initial_tech_levels construct_state = /decl/machine_construction/default/panel_closed uncreated_component_parts = null stat_immune = 0 + maximum_component_parts = list( + /obj/item/stock_parts/item_holder/disk_reader = 1, + /obj/item/stock_parts = 15, + ) + /// A cached reference to our disk reader part, if present. + var/obj/item/stock_parts/item_holder/disk_reader/disk_reader var/initial_network_id var/initial_network_key var/list/tech_levels var/need_disk_operation = FALSE - var/obj/item/disk/tech_disk/disk var/sync_policy = SYNC_PULL_NETWORK|SYNC_PUSH_NETWORK|SYNC_PULL_DISK /obj/machinery/design_database/proc/toggle_sync_policy_flag(var/sync_flag) @@ -36,13 +41,17 @@ var/global/list/default_initial_tech_levels var/list/data = list() var/datum/extension/network_device/device = get_extension(src, /datum/extension/network_device) data["network_id"] = device.network_tag + var/obj/item/disk/tech_disk/disk = try_get_disk() if(disk) data["disk_name"] = disk.name - var/list/tech_data = list() - for(var/tech in disk.stored_tech) - var/decl/research_field/field = SSfabrication.get_research_field_by_id(tech) - tech_data += list(list("field" = field.name, "desc" = field.desc, "level" = "[disk.stored_tech[tech]].0 GQ")) - data["disk_tech"] = tech_data + if(istype(disk)) + var/list/tech_data = list() + for(var/tech in disk.stored_tech) + var/decl/research_field/field = SSfabrication.get_research_field_by_id(tech) + tech_data += list(list("field" = field.name, "desc" = field.desc, "level" = "[disk.stored_tech[tech]].0 GQ")) + data["disk_tech"] = tech_data + else + data["disk_error"] = "invalid data format" else data["disk_name"] = "no disk loaded" @@ -116,26 +125,30 @@ var/global/list/default_initial_tech_levels return // Read or write from a loaded disk. + var/obj/item/disk/tech_disk/disk = try_get_disk() if(disk && need_disk_operation) - if(sync_policy & SYNC_PULL_DISK) - var/new_tech = FALSE - for(var/tech in disk.stored_tech) - if(tech_levels[tech] < disk.stored_tech[tech]) - tech_levels[tech] = disk.stored_tech[tech] - new_tech = TRUE - if(new_tech) - visible_message(SPAN_NOTICE("\The [src] clicks and chirps as it reads from \the [disk].")) - if((sync_policy & SYNC_PUSH_NETWORK) && !sync_design_consoles()) - visible_message(SPAN_WARNING("\The [src] flashes an error light from its network interface.")) - - if(sync_policy & SYNC_PUSH_DISK) - var/new_tech - for(var/tech in tech_levels) - if(tech_levels[tech] > LAZYACCESS(disk.stored_tech, tech)) - new_tech = TRUE - LAZYSET(disk.stored_tech, tech, tech_levels[tech]) - if(new_tech) - visible_message(SPAN_NOTICE("\The [src] whirrs and drones as it writes to \the [disk].")) + if(!istype(disk)) // wrong type of disk! + visible_message(SPAN_WARNING("\The [src] whirrs and drones, before emitting an ominous grinding sound.")) + else + if(sync_policy & SYNC_PULL_DISK) + var/new_tech = FALSE + for(var/tech in disk.stored_tech) + if(tech_levels[tech] < disk.stored_tech[tech]) + tech_levels[tech] = disk.stored_tech[tech] + new_tech = TRUE + if(new_tech) + visible_message(SPAN_NOTICE("\The [src] clicks and chirps as it reads from \the [disk].")) + if((sync_policy & SYNC_PUSH_NETWORK) && !sync_design_consoles()) + visible_message(SPAN_WARNING("\The [src] flashes an error light from its network interface.")) + + if(sync_policy & SYNC_PUSH_DISK) + var/new_tech + for(var/tech in tech_levels) + if(tech_levels[tech] > LAZYACCESS(disk.stored_tech, tech)) + new_tech = TRUE + LAZYSET(disk.stored_tech, tech, tech_levels[tech]) + if(new_tech) + visible_message(SPAN_NOTICE("\The [src] whirrs and drones as it writes to \the [disk].")) visible_message("The I/O light on \the [src] stops blinking.") need_disk_operation = FALSE @@ -148,49 +161,35 @@ var/global/list/default_initial_tech_levels /obj/machinery/design_database/Destroy() design_databases -= src - QDEL_NULL(disk) + disk_reader = null . = ..() -/obj/machinery/design_database/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/disk/tech_disk)) - if(disk) - to_chat(user, SPAN_WARNING("\The [src] already has a disk inserted.")) - return TRUE - if(user.try_unequip(I, src)) - visible_message("\The [user] slots \the [I] into \the [src].") - visible_message(SPAN_NOTICE("\The [src]'s I/O light begins to blink.")) - disk = I - need_disk_operation = TRUE - return TRUE +/obj/machinery/design_database/proc/on_insert_disk(obj/item/disk/D, mob/user) + visible_message(SPAN_NOTICE("\The [src]'s I/O light begins to blink.")) + need_disk_operation = TRUE + update_ui() - . = ..() +/obj/machinery/design_database/proc/on_eject_disk(obj/item/disk/D, mob/user) + need_disk_operation = FALSE + update_ui() -/obj/machinery/design_database/proc/eject_disk(var/mob/user) - if(disk) - disk.dropInto(loc) - need_disk_operation = FALSE - if(user) - if(!issilicon(user)) - user.put_in_hands(disk) - if(Adjacent(user, src)) - visible_message(SPAN_NOTICE("\The [user] removes \the [disk] from \the [src].")) - disk = null - return TRUE - return FALSE - -/obj/machinery/design_database/get_alt_interactions(var/mob/user) +/obj/machinery/design_database/RefreshParts() . = ..() - LAZYADD(., /decl/interaction_handler/remove_disk/designs) + disk_reader = get_component_of_type(/obj/item/stock_parts/item_holder/disk_reader) + if(disk_reader) + disk_reader.register_on_insert(CALLBACK(src, PROC_REF(on_insert_disk))) + disk_reader.register_on_eject(CALLBACK(src, PROC_REF(on_eject_disk))) -/decl/interaction_handler/remove_disk/designs - expected_target_type = /obj/machinery/design_database +/obj/machinery/design_database/proc/try_get_disk() + return disk_reader?.get_inserted() -/decl/interaction_handler/remove_disk/designs/is_possible(atom/target, mob/user, obj/item/prop) - . = ..() - if(.) - var/obj/machinery/design_database/D = target - . = !!D.disk +/obj/machinery/design_database/proc/update_ui() + SSnano.update_uis(src) -/decl/interaction_handler/remove_disk/designs/invoked(atom/target, mob/user, obj/item/prop) - var/obj/machinery/design_database/D = target - D.eject_disk(user) +// used for, specifically, removing a disk via the UI +/obj/machinery/design_database/proc/eject_disk(var/mob/user) + if(!disk_reader) + to_chat(user, SPAN_WARNING("\The [src] has no disk drive installed.")) + return FALSE + . = !isnull(disk_reader.eject_item(user)) + update_ui() diff --git a/code/modules/research/design_database_analyzer.dm b/code/modules/research/design_database_analyzer.dm index ad1c78d239aa..8d7b7f259a37 100644 --- a/code/modules/research/design_database_analyzer.dm +++ b/code/modules/research/design_database_analyzer.dm @@ -81,7 +81,7 @@ /obj/machinery/destructive_analyzer/attackby(var/obj/item/O, var/mob/user) - if(IS_MULTITOOL(O) && user.a_intent != I_HURT) + if(IS_MULTITOOL(O) && !user.check_intent(I_FLAG_HARM)) var/datum/extension/local_network_member/fabnet = get_extension(src, /datum/extension/local_network_member) fabnet.get_new_tag(user) return TRUE diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm index 61f0f341e6ef..f76892be8a40 100644 --- a/code/modules/shieldgen/emergency_shield.dm +++ b/code/modules/shieldgen/emergency_shield.dm @@ -46,7 +46,7 @@ return bash(I, user) /obj/machinery/shield/bash(obj/item/W, mob/user) - if(isliving(user) && user.a_intent == I_HELP) + if(isliving(user) && user.check_intent(I_FLAG_HELP)) return FALSE if(!W.user_can_attack_with(user)) return FALSE diff --git a/code/modules/species/species.dm b/code/modules/species/species.dm index 2318bf539aff..01ab98a5af68 100644 --- a/code/modules/species/species.dm +++ b/code/modules/species/species.dm @@ -499,7 +499,7 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 // Called when using the shredding behavior. /decl/species/proc/can_shred(var/mob/living/human/H, var/ignore_intent, var/ignore_antag) - if((!ignore_intent && H.a_intent != I_HURT) || H.pulling_punches) + if((!ignore_intent && !H.check_intent(I_FLAG_HARM)) || H.pulling_punches) return 0 if(!ignore_antag && H.mind && !player_is_antag(H.mind)) @@ -624,7 +624,7 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 var/skill_mod = 10 * attacker.get_skill_difference(SKILL_COMBAT, target) var/state_mod = attacker.melee_accuracy_mods() - target.melee_accuracy_mods() var/push_mod = min(max(1 + attacker.get_skill_difference(SKILL_COMBAT, target), 1), 3) - if(target.a_intent == I_HELP) + if(target.check_intent(I_FLAG_HELP)) state_mod -= 30 //Handle unintended consequences for(var/obj/item/I in holding) diff --git a/code/modules/species/species_hud.dm b/code/modules/species/species_hud.dm index ee873291034d..f63a7bc37bf1 100644 --- a/code/modules/species/species_hud.dm +++ b/code/modules/species/species_hud.dm @@ -1,18 +1,32 @@ /datum/hud_data - var/has_a_intent = 1 // Set to draw intent box. - var/has_m_intent = 1 // Set to draw move intent box. - var/has_warnings = 1 // Set to draw environment warnings. - var/has_pressure = 1 // Draw the pressure indicator. - var/has_nutrition = 1 // Draw the nutrition indicator. - var/has_bodytemp = 1 // Draw the bodytemp indicator. - var/has_drop = 1 // Set to draw drop button. - var/has_throw = 1 // Set to draw throw button. - var/has_resist = 1 // Set to draw resist button. - var/has_internals = 1 // Set to draw the internals toggle button. - var/has_up_hint = 1 // Set to draw the "look-up" hint icon - var/list/equip_slots = list() // Checked by mob_can_equip(). - var/list/persistent_slots = list() // Built in New(), used for unhidable inv updates - var/list/hidden_slots = list() // Built in New(), used for hidable inv updates + /// Set to draw intent box. + var/show_intent_selector = 1 + /// Set to draw move intent box. + var/has_m_intent = 1 + /// Set to draw environment warnings. + var/has_warnings = 1 + /// Draw the pressure indicator. + var/has_pressure = 1 + /// Draw the nutrition indicator. + var/has_nutrition = 1 + /// Draw the bodytemp indicator. + var/has_bodytemp = 1 + /// Set to draw drop button. + var/has_drop = 1 + /// Set to draw throw button. + var/has_throw = 1 + /// Set to draw resist button. + var/has_resist = 1 + /// Set to draw the internals toggle button. + var/has_internals = 1 + /// Set to draw the "look-up" hint icon + var/has_up_hint = 1 + /// Checked by mob_can_equip(). + var/list/equip_slots = list() + /// Built in New(), used for unhidable inv updates + var/list/persistent_slots = list() + /// Built in New(), used for hidable inv updates + var/list/hidden_slots = list() var/list/inventory_slots = list( /datum/inventory_slot/handcuffs, diff --git a/code/modules/spells/hand/hand_item.dm b/code/modules/spells/hand/hand_item.dm index 8da6139bfbbc..6141577f2471 100644 --- a/code/modules/spells/hand/hand_item.dm +++ b/code/modules/spells/hand/hand_item.dm @@ -38,7 +38,7 @@ Basically: I can use it to target things where I click. I can then pass these ta if(world.time < next_spell_time) to_chat(user, "The spell isn't ready yet!") return - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) to_chat(user, "You decide against casting this spell as your intent is set to help.") return diff --git a/code/modules/surgery/_surgery.dm b/code/modules/surgery/_surgery.dm index 11b61a35b24a..fe4eb699d91c 100644 --- a/code/modules/surgery/_surgery.dm +++ b/code/modules/surgery/_surgery.dm @@ -236,7 +236,7 @@ var/global/list/surgery_tool_exception_cache = list() /obj/item/proc/do_surgery(mob/living/M, mob/living/user, fuckup_prob) // Check for the Hippocratic oath. - if(!istype(M) || !istype(user) || user.a_intent == I_HURT) + if(!istype(M) || !istype(user) || user.check_intent(I_FLAG_HARM)) return FALSE // Check for multi-surgery drifting. @@ -292,7 +292,7 @@ var/global/list/surgery_tool_exception_cache = list() return TRUE // If we're on an optable, we are protected from some surgery fails. Bypass this for some items (like health analyzers). - if((locate(/obj/machinery/optable) in get_turf(M)) && user.a_intent == I_HELP) + if((locate(/obj/machinery/optable) in get_turf(M)) && user.check_intent(I_FLAG_HELP)) // Keep track of which tools we know aren't appropriate for surgery on help intent. if(global.surgery_tool_exception_cache[type]) return FALSE @@ -304,7 +304,7 @@ var/global/list/surgery_tool_exception_cache = list() return TRUE // Otherwise we can make a start on surgery! - else if(istype(M) && !QDELETED(M) && user.a_intent != I_HURT && user.get_active_held_item() == src) + else if(istype(M) && !QDELETED(M) && !user.check_intent(I_FLAG_HARM) && user.get_active_held_item() == src) // Double-check this in case it changed between initial check and now. if(zone in global.surgeries_in_progress[operation_ref]) to_chat(user, SPAN_WARNING("You can't operate on this area while surgery is already in progress.")) diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 78f9c9cbfea0..f9d54f3b125c 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -245,7 +245,7 @@ return ..() /decl/surgery_step/generic/amputate/proc/is_clean(var/mob/user, var/obj/item/tool, var/mob/target) - . = (user.a_intent != I_HELP) ? FALSE : (can_operate(target) >= OPERATE_OKAY && istype(tool, /obj/item/circular_saw)) + . = (!user.check_intent(I_FLAG_HELP)) ? FALSE : (can_operate(target) >= OPERATE_OKAY && istype(tool, /obj/item/circular_saw)) /decl/surgery_step/generic/amputate/get_speed_modifier(var/mob/user, var/mob/target, var/obj/item/tool, var/tool_archetype) . = ..() diff --git a/code/modules/synthesized_instruments/real_instruments/Guitar/guitar.dm b/code/modules/synthesized_instruments/real_instruments/Guitar/guitar.dm index e8332774a9e8..b39bfc00a241 100644 --- a/code/modules/synthesized_instruments/real_instruments/Guitar/guitar.dm +++ b/code/modules/synthesized_instruments/real_instruments/Guitar/guitar.dm @@ -5,7 +5,7 @@ icon_state = ICON_STATE_WORLD sound_player = /datum/sound_player/synthesizer path = /datum/instrument/guitar/clean_crisis - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak matter = list(/decl/material/solid/metal/steel = MATTER_AMOUNT_TRACE) slot_flags = SLOT_BACK @@ -16,7 +16,7 @@ icon_state = "eguitar" sound_player = /datum/sound_player/synthesizer path = /datum/instrument/guitar - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak matter = list( /decl/material/solid/metal/steel = MATTER_AMOUNT_TRACE, /decl/material/solid/metal/copper = MATTER_AMOUNT_TRACE, diff --git a/code/modules/synthesized_instruments/real_instruments/Violin/violin.dm b/code/modules/synthesized_instruments/real_instruments/Violin/violin.dm index d73ee46400af..f3baab9aa07c 100644 --- a/code/modules/synthesized_instruments/real_instruments/Violin/violin.dm +++ b/code/modules/synthesized_instruments/real_instruments/Violin/violin.dm @@ -8,7 +8,7 @@ icon_state = "violin" sound_player = /datum/sound_player/violin path = /datum/instrument/obsolete/violin - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak matter = list(/decl/material/solid/metal/steel = MATTER_AMOUNT_TRACE) /obj/structure/synthesized_instrument/synthesizer/shouldStopPlaying(mob/user) diff --git a/code/modules/tools/components/handle.dm b/code/modules/tools/components/handle.dm index 18d4053a9853..507b7a729581 100644 --- a/code/modules/tools/components/handle.dm +++ b/code/modules/tools/components/handle.dm @@ -1,7 +1,7 @@ /obj/item/tool_component/handle name = "tool handle" icon = 'icons/obj/items/tool/components/tool_handle.dmi' - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak abstract_type = /obj/item/tool_component/handle /obj/item/tool_component/handle/short diff --git a/code/modules/tools/subtypes/axes.dm b/code/modules/tools/subtypes/axes.dm index 93eae37611f9..0ef7a384c3d7 100644 --- a/code/modules/tools/subtypes/axes.dm +++ b/code/modules/tools/subtypes/axes.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/items/tool/axes/handaxe.dmi' sharp = TRUE edge = TRUE - handle_material = /decl/material/solid/organic/wood + handle_material = /decl/material/solid/organic/wood/oak item_flags = ITEM_FLAG_IS_WEAPON origin_tech = @'{"materials":2,"combat":1}' attack_verb = list("chopped", "torn", "cut") diff --git a/code/modules/tools/subtypes/hoes.dm b/code/modules/tools/subtypes/hoes.dm index 05edd5b61f7f..b5bdda347638 100644 --- a/code/modules/tools/subtypes/hoes.dm +++ b/code/modules/tools/subtypes/hoes.dm @@ -11,8 +11,8 @@ w_class = ITEM_SIZE_LARGE /obj/item/tool/hoe/wood - color = /decl/material/solid/organic/wood::color - material = /decl/material/solid/organic/wood + color = /decl/material/solid/organic/wood/oak::color + material = /decl/material/solid/organic/wood/oak /obj/item/tool/hoe/wood/walnut color = /decl/material/solid/organic/wood/walnut::color diff --git a/code/modules/tools/subtypes/pickaxes.dm b/code/modules/tools/subtypes/pickaxes.dm index 0b2bdf0d5866..755b9554b41e 100644 --- a/code/modules/tools/subtypes/pickaxes.dm +++ b/code/modules/tools/subtypes/pickaxes.dm @@ -6,7 +6,7 @@ sharp = TRUE edge = TRUE w_class = ITEM_SIZE_HUGE - handle_material = /decl/material/solid/organic/wood + handle_material = /decl/material/solid/organic/wood/oak _base_attack_force = 15 /obj/item/tool/pickaxe/Initialize(ml, material_key, _handle_material, _binding_material, override_tool_qualities, override_tool_properties) @@ -31,7 +31,7 @@ // Using these mainly for debugging. /obj/item/tool/pickaxe/wood - material = /decl/material/solid/organic/wood + material = /decl/material/solid/organic/wood/oak /obj/item/tool/pickaxe/stone material = /decl/material/solid/stone/flint diff --git a/code/modules/tools/subtypes/shovel.dm b/code/modules/tools/subtypes/shovel.dm index da05b5532f84..204bb0a9fbb4 100644 --- a/code/modules/tools/subtypes/shovel.dm +++ b/code/modules/tools/subtypes/shovel.dm @@ -8,7 +8,7 @@ edge = TRUE sharp = TRUE attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked") - handle_material = /decl/material/solid/organic/wood + handle_material = /decl/material/solid/organic/wood/oak _base_attack_force = 8 /obj/item/tool/shovel/get_initial_tool_qualities() @@ -19,8 +19,8 @@ return tool_qualities /obj/item/tool/shovel/wood - color = /decl/material/solid/organic/wood::color - material = /decl/material/solid/organic/wood + color = /decl/material/solid/organic/wood/oak::color + material = /decl/material/solid/organic/wood/oak /obj/item/tool/shovel/wood/walnut color = /decl/material/solid/organic/wood/walnut::color diff --git a/code/modules/tools/subtypes/xenoarchaeology_picks.dm b/code/modules/tools/subtypes/xenoarchaeology_picks.dm index 01e22a01623c..9db2d59f5418 100644 --- a/code/modules/tools/subtypes/xenoarchaeology_picks.dm +++ b/code/modules/tools/subtypes/xenoarchaeology_picks.dm @@ -44,7 +44,7 @@ desc = "A wood-handled brush with thick metallic wires for clearing away dust and loose scree." sharp = 0 material = /decl/material/solid/metal/steel - handle_material = /decl/material/solid/organic/wood + handle_material = /decl/material/solid/organic/wood/oak excavation_amount = 1 excavation_sound = "sweeping" excavation_verb = "brushing" diff --git a/code/modules/turbolift/turbolift_console.dm b/code/modules/turbolift/turbolift_console.dm index 8d34b6593097..03c3be6b0e44 100644 --- a/code/modules/turbolift/turbolift_console.dm +++ b/code/modules/turbolift/turbolift_console.dm @@ -11,7 +11,7 @@ /obj/structure/lift/proc/pressed(var/mob/user) if(!issilicon(user)) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) user.visible_message("\The [user] hammers on the lift button!") else user.visible_message("\The [user] presses the lift button.") diff --git a/code/modules/vehicles/engine.dm b/code/modules/vehicles/engine.dm index d431fc0f15ff..1b6682dfce4c 100644 --- a/code/modules/vehicles/engine.dm +++ b/code/modules/vehicles/engine.dm @@ -48,7 +48,7 @@ cell.dropInto(loc) cell = null return TRUE - if(user.a_intent != I_HURT) + if(!user.check_intent(I_FLAG_HARM)) to_chat(user, SPAN_WARNING("There is no cell in \the [src] to remove with \the [I]!")) return TRUE return ..() diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 01d1a248b885..fc8fbe1ee9d9 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -106,7 +106,7 @@ return ..() // handles bash() /obj/vehicle/bash(obj/item/weapon, mob/user) - if(isliving(user) && user.a_intent == I_HELP) + if(isliving(user) && user.check_intent(I_FLAG_HELP)) return FALSE if(!weapon.user_can_attack_with(user)) return FALSE diff --git a/code/unit_tests/backgrounds.dm b/code/unit_tests/backgrounds.dm index d44e5e2c5c3a..e08b1ec37512 100644 --- a/code/unit_tests/backgrounds.dm +++ b/code/unit_tests/backgrounds.dm @@ -1,5 +1,5 @@ /datum/unit_test/background - name = "BACKGROUND - All Species Background Values Shall Be Of Valid Types And Length" + name = "BACKGROUND: All Species Background Values Shall Be Of Valid Types And Length" /datum/unit_test/background/start_test() diff --git a/code/unit_tests/codex.dm b/code/unit_tests/codex.dm index 92a97cec0d50..2130edd1f887 100644 --- a/code/unit_tests/codex.dm +++ b/code/unit_tests/codex.dm @@ -1,5 +1,5 @@ /datum/unit_test/codex_string_uniqueness - name = "CODEX - All Codex Associated Strings Shall Be Unique" + name = "CODEX: All Codex Associated Strings Shall Be Unique" /datum/unit_test/codex_string_uniqueness/start_test() var/list/failures = list() @@ -18,7 +18,7 @@ return TRUE /datum/unit_test/codex_overlap - name = "CODEX - No Codex String IDs Shall Overlap" + name = "CODEX: No Codex String IDs Shall Overlap" /datum/unit_test/codex_overlap/start_test() var/list/failures = list() @@ -42,7 +42,7 @@ return TRUE /datum/unit_test/codex_links - name = "CODEX - All Codex Links Will Function" + name = "CODEX: All Codex Links Will Function" /datum/unit_test/codex_links/start_test() var/list/failures = list() @@ -64,7 +64,7 @@ return 1 /datum/unit_test/codex_dump_test - name = "CODEX - Codex Will Successfully Dump To Filesystem" + name = "CODEX: Codex Will Successfully Dump To Filesystem" /datum/unit_test/codex_dump_test/start_test() var/dump_result diff --git a/code/unit_tests/extension_tests.dm b/code/unit_tests/extension_tests.dm index 3cf14a6f23dc..49f9769fa431 100644 --- a/code/unit_tests/extension_tests.dm +++ b/code/unit_tests/extension_tests.dm @@ -4,7 +4,7 @@ async = 0 /datum/unit_test/extensions/basic_extension_shall_lazy_initalize_as_expected - name = "EXTENSIONS - Basic extension shall lazy initialize as expected" + name = "EXTENSIONS: Basic extension shall lazy initialize as expected" /datum/unit_test/extensions/basic_extension_shall_lazy_initalize_as_expected/start_test() var/turf/start = get_safe_turf() @@ -40,7 +40,7 @@ return TRUE /datum/unit_test/extensions/basic_immediate_extension_shall_initalize_as_expected - name = "EXTENSIONS - Basic immediate extension shall initialize as expected" + name = "EXTENSIONS: Basic immediate extension shall initialize as expected" /datum/unit_test/extensions/basic_immediate_extension_shall_initalize_as_expected/start_test() var/turf/start = get_safe_turf() @@ -71,7 +71,7 @@ return TRUE /datum/unit_test/extensions/shall_acquire_extension_subtype_as_expected - name = "EXTENSIONS - Shall acquire extension subtype as expected" + name = "EXTENSIONS: Shall acquire extension subtype as expected" /datum/unit_test/extensions/shall_acquire_extension_subtype_as_expected/start_test() var/turf/start = get_safe_turf() @@ -88,7 +88,7 @@ return TRUE /datum/unit_test/extensions/extension_shall_be_provided_arguments_as_expected - name = "EXTENSIONS - Extension shall be provided arguments as expected" + name = "EXTENSIONS: Extension shall be provided arguments as expected" /datum/unit_test/extensions/extension_shall_be_provided_arguments_as_expected/start_test() var/turf/start = get_safe_turf() @@ -105,7 +105,7 @@ return TRUE /datum/unit_test/extensions/immediate_extension_shall_be_provided_arguments_as_expected - name = "EXTENSIONS - Immediate extension shall be provided arguments as expected" + name = "EXTENSIONS: Immediate extension shall be provided arguments as expected" /datum/unit_test/extensions/immediate_extension_shall_be_provided_arguments_as_expected/start_test() var/turf/start = get_safe_turf() @@ -122,7 +122,7 @@ return TRUE /datum/unit_test/extensions/get_or_create_extension_shall_initialize_as_expected - name = "EXTENSIONS - get_or_create() shall initialize as expected" + name = "EXTENSIONS: get_or_create() shall initialize as expected" /datum/unit_test/extensions/get_or_create_extension_shall_initialize_as_expected/start_test() var/turf/start = get_safe_turf() @@ -147,7 +147,7 @@ return TRUE /datum/unit_test/extensions/get_or_create_extension_with_arguments_shall_initialize_as_expected - name = "EXTENSIONS - get_or_create() with arguments shall initialize as expected" + name = "EXTENSIONS: get_or_create() with arguments shall initialize as expected" /datum/unit_test/extensions/get_or_create_extension_with_arguments_shall_initialize_as_expected/start_test() var/turf/start = get_safe_turf() diff --git a/code/unit_tests/icon_tests.dm b/code/unit_tests/icon_tests.dm index f8f8674b0840..3c003aba22da 100644 --- a/code/unit_tests/icon_tests.dm +++ b/code/unit_tests/icon_tests.dm @@ -3,7 +3,7 @@ template = /datum/unit_test/icon_test /datum/unit_test/icon_test/food_shall_have_icon_states - name = "ICON STATE - Food And Drink Subtypes Shall Have Icon States" + name = "ICON STATE: Food And Drink Subtypes Shall Have Icon States" var/list/check_types = list( /obj/item/chems/condiment, /obj/item/chems/drinks, @@ -51,7 +51,7 @@ return 1 /datum/unit_test/icon_test/turfs_shall_have_icon_states - name = "ICON STATE - Turf Subtypes Shall Have Icon States" + name = "ICON STATE: Turf Subtypes Shall Have Icon States" var/list/except_types = list( /turf/mimic_edge, /turf/open @@ -85,7 +85,7 @@ return 1 /datum/unit_test/icon_test/signs_shall_have_existing_icon_states - name = "ICON STATE - Signs shall have existing icon states" + name = "ICON STATE: Signs shall have existing icon states" var/list/skip_types = list( // Posters use a decl to set their icon and handle their own validation. /obj/structure/sign/poster @@ -124,7 +124,7 @@ return 1 /datum/unit_test/icon_test/random_spawners_shall_have_existing_icon_states - name = "ICON STATE - Random spawners shall have existing icon states" + name = "ICON STATE: Random spawners shall have existing icon states" /datum/unit_test/icon_test/random_spawners_shall_have_existing_icon_states/start_test() var/list/failures = list() @@ -147,7 +147,7 @@ return 1 /datum/unit_test/icon_test/floor_decals_shall_have_existing_icon_states - name = "ICON STATE - Floor decals shall have existing icon states" + name = "ICON STATE: Floor decals shall have existing icon states" var/static/list/excepted_types = list( /obj/effect/floor_decal/reset, /obj/effect/floor_decal/undo @@ -175,7 +175,7 @@ return 1 /datum/unit_test/icon_test/bgstate - name = "ICON_STATE - Character Previews Will Have Background States" + name = "ICON STATE: Character Previews Will Have Background States" /datum/unit_test/icon_test/bgstate/start_test() var/obj/screen/setup_preview/preview = /obj/screen/setup_preview @@ -198,3 +198,104 @@ else pass("All preview icons have all background icon states.") return 1 + +/datum/unit_test/icon_test/smartfridges + name = "ICON STATE: Smartfridges Will Have All Needed Icon States" + +/datum/unit_test/icon_test/smartfridges/start_test() + var/list/failures = list() + var/list/test_icons = list() + var/list/test_contents_overlays = list() + for(var/obj/machinery/smartfridge/fridge as anything in typesof(/obj/machinery/smartfridge)) + if(TYPE_IS_ABSTRACT(fridge) || !fridge::simulated) + continue + var/fridge_icon = fridge::icon + if(fridge_icon) + test_icons |= fridge_icon + else + failures += "[fridge] has null icon" + var/fridge_state = fridge::icon_state + if(fridge_state != ICON_STATE_WORLD) + failures += "[fridge] has non-world icon_state '[fridge_state]'" + var/fridge_contents_icon = fridge::overlay_contents_icon + if(fridge_contents_icon) + test_contents_overlays |= fridge_contents_icon + + for(var/test_icon in test_icons) + var/static/list/fridge_states = list( + "world", + "world-vend", + "world-deny", + "world-off", + "world-broken", + "world-panel", + "world-top", + "world-top-broken", + "world-broken", + "world-sidepanel", + "world-sidepanel-broken" + ) + for(var/test_state in fridge_states) + if(!check_state_in_icon(test_state, test_icon)) + failures += "[test_icon] missing icon_state [test_state]" + + for(var/test_icon in test_contents_overlays) + var/static/list/test_overlays = list( + "empty", + "1", + "2", + "3", + "4", + "empty-off", + "1-off", + "2-off", + "3-off", + "4-off" + ) + for(var/test_overlay in test_overlays) + if(!check_state_in_icon(test_overlay, test_icon)) + failures += "[test_icon] missing overlay [test_overlay]" + + if(length(failures)) + fail("Missing smartfridge icons or icon states:\n\t-[jointext(failures, "\n\t-")]") + else + pass("All smartfridges have all icons and icon states.") + return 1 + +/datum/unit_test/icon_test/vendors + name = "ICON STATE: Vending Machines Will Have All Needed Icon States" + +/datum/unit_test/icon_test/vendors/start_test() + var/list/failures = list() + var/list/test_icons = list() + + for(var/obj/machinery/vending/vendor as anything in typesof(/obj/machinery/vending)) + if(TYPE_IS_ABSTRACT(vendor) || !vendor::simulated) + continue + var/vendor_icon = vendor::icon + if(vendor_icon) + test_icons |= vendor_icon + else + failures += "[vendor] has null icon" + var/vendor_state = vendor::icon_state + if(vendor_state != ICON_STATE_WORLD) + failures += "[vendor] has non-world icon_state '[vendor_state]'" + + for(var/test_icon in test_icons) + var/static/list/vendor_states = list( + "world", + "world-vend", + "world-deny", + "world-off", + "world-broken", + "world-panel", + ) + for(var/test_state in vendor_states) + if(!check_state_in_icon(test_state, test_icon)) + failures += "[test_icon] missing icon_state [test_state]" + + if(length(failures)) + fail("Missing vendor icons or icon states:\n\t-[jointext(failures, "\n\t-")]") + else + pass("All vendors have all icons and icon states.") + return 1 diff --git a/code/unit_tests/integrated_circuits.dm b/code/unit_tests/integrated_circuits.dm index ca6d5099487a..79c26d52a3a8 100644 --- a/code/unit_tests/integrated_circuits.dm +++ b/code/unit_tests/integrated_circuits.dm @@ -2,7 +2,7 @@ template = /datum/unit_test/integrated_circuits /datum/unit_test/integrated_circuits/unique_names - name = "INTEGRATED CIRCUITS - Circuits must have unique names" + name = "INTEGRATED CIRCUITS: Circuits must have unique names" /datum/unit_test/integrated_circuits/unique_names/start_test() var/list/circuits_by_name = list() @@ -20,7 +20,7 @@ /datum/unit_test/integrated_circuits/prefabs_are_valid - name = "INTEGRATED CIRCUITS - Prefabs Are Valid" + name = "INTEGRATED CIRCUITS: Prefabs Are Valid" /datum/unit_test/integrated_circuits/prefabs_are_valid/start_test() var/list/failed_prefabs = list() @@ -37,7 +37,7 @@ return 1 /datum/unit_test/integrated_circuits/prefabs_shall_not_fail_to_create - name = "INTEGRATED CIRCUITS - Prefabs Shall Not Fail To Create" + name = "INTEGRATED CIRCUITS: Prefabs Shall Not Fail To Create" /datum/unit_test/integrated_circuits/prefabs_shall_not_fail_to_create/start_test() var/list/failed_prefabs = list() @@ -63,7 +63,7 @@ return 1 /datum/unit_test/integrated_circuits/input_output - name = "INTEGRATED CIRCUITS - INPUT/OUTPUT - TEMPLATE" + name = "INTEGRATED CIRCUITS: INPUT/OUTPUT - TEMPLATE" template = /datum/unit_test/integrated_circuits/input_output var/list/all_inputs = list() var/list/all_expected_outputs = list() @@ -110,13 +110,13 @@ return 1 /datum/unit_test/integrated_circuits/input_output/multiplexer - name = "INTEGRATED CIRCUITS - INPUT/OUTPUT - Multiplexer - Medium" + name = "INTEGRATED CIRCUITS: INPUT/OUTPUT - Multiplexer - Medium" all_inputs = list(list(1,1,2,3,4),list(2,1,2,3,4),list(3,1,2,3,4),list(4,1,2,3,4)) all_expected_outputs = list(list(1),list(2),list(3),list(4)) circuit_type = /obj/item/integrated_circuit/transfer/multiplexer/medium /datum/unit_test/integrated_circuits/input_output/demultiplexer - name = "INTEGRATED CIRCUITS - INPUT/OUTPUT - Demultiplexer - Medium" + name = "INTEGRATED CIRCUITS: INPUT/OUTPUT - Demultiplexer - Medium" all_inputs = list(list(1,5),list(2,6),list(3,7),list(4,8)) all_expected_outputs = list(list(5,null,null,null),list(null,6,null,null),list(null,null,7,null),list(null,null,null,8)) circuit_type = /obj/item/integrated_circuit/transfer/demultiplexer/medium diff --git a/code/unit_tests/movement_tests.dm b/code/unit_tests/movement_tests.dm index d86ee6585a7c..8d45dbe20cfb 100644 --- a/code/unit_tests/movement_tests.dm +++ b/code/unit_tests/movement_tests.dm @@ -4,7 +4,7 @@ async = 0 /datum/unit_test/movement/force_move_shall_trigger_crossed_when_entering_turf - name = "MOVEMENT - Force Move Shall Trigger Crossed When Entering Turf" + name = "MOVEMENT: Force Move Shall Trigger Crossed When Entering Turf" /datum/unit_test/movement/force_move_shall_trigger_crossed_when_entering_turf/start_test() var/turf/start = get_safe_turf() @@ -27,7 +27,7 @@ return TRUE /datum/unit_test/movement/force_move_shall_trigger_entered - name = "MOVEMENT - Force Move Shall Trigger Entered" + name = "MOVEMENT: Force Move Shall Trigger Entered" /datum/unit_test/movement/force_move_shall_trigger_entered/start_test() var/turf/start = get_safe_turf() diff --git a/code/unit_tests/override_tests.dm b/code/unit_tests/override_tests.dm index 5a904c09ef51..2c8d6bc47cca 100644 --- a/code/unit_tests/override_tests.dm +++ b/code/unit_tests/override_tests.dm @@ -5,7 +5,7 @@ template = /datum/unit_test/override /datum/unit_test/override/obj_random_shall_spawn_heaviest_item - name = "OVERRIDE - obj/random shall spawn heaviest item" + name = "OVERRIDE: obj/random shall spawn heaviest item" /datum/unit_test/override/obj_random_shall_spawn_heaviest_item/start_test() global.unit_test_last_obj_random_creation = null @@ -22,7 +22,7 @@ return 1 /datum/unit_test/override/atom_creator_simple_shall_always_spawn - name = "OVERRIDE - /datum/atom_creator/simple shall always spawn" + name = "OVERRIDE: /datum/atom_creator/simple shall always spawn" /datum/unit_test/override/atom_creator_simple_shall_always_spawn/start_test() var/datum/atom_creator/simple/S = new/datum/atom_creator/simple(/obj/unit_test_light, 1) @@ -40,7 +40,7 @@ return 1 /datum/unit_test/override/atom_creator_weighted_shall_spawn_heaviest - name = "OVERRIDE - /datum/atom_creator/weighted shall spawn heaviest" + name = "OVERRIDE: /datum/atom_creator/weighted shall spawn heaviest" /datum/unit_test/override/atom_creator_weighted_shall_spawn_heaviest/start_test() var/datum/atom_creator/weighted/W = new/datum/atom_creator/weighted(list(/obj/unit_test_light = 9001, /obj/unit_test_heavy = 1)) @@ -57,7 +57,7 @@ return 1 /datum/unit_test/override/atom_creator_weighted_shall_spawn_heaviest_recursive - name = "OVERRIDE - /datum/atom_creator/weighted shall spawn heaviest - Recursive" + name = "OVERRIDE: /datum/atom_creator/weighted shall spawn heaviest - Recursive" /datum/unit_test/override/atom_creator_weighted_shall_spawn_heaviest_recursive/start_test() var/datum/atom_creator/weighted/W = new/datum/atom_creator/weighted( diff --git a/code/unit_tests/subsystem_tests.dm b/code/unit_tests/subsystem_tests.dm index 95224a7050b1..114dcb1a48c1 100644 --- a/code/unit_tests/subsystem_tests.dm +++ b/code/unit_tests/subsystem_tests.dm @@ -1,5 +1,5 @@ /datum/unit_test/subsystem_atom_shall_have_no_bad_init_calls - name = "SUBSYSTEM - ATOMS: Shall have no bad init calls" + name = "SUBSYSTEM: ATOMS: Shall have no bad init calls" /datum/unit_test/subsystem_atom_shall_have_no_bad_init_calls/start_test() if(SSatoms.BadInitializeCalls.len) @@ -10,7 +10,7 @@ return 1 /datum/unit_test/subsystem_shall_be_initialized - name = "SUBSYSTEM - INIT: Subsystems shall be initalized" + name = "SUBSYSTEM: INIT: Subsystems shall be initalized" /datum/unit_test/subsystem_shall_be_initialized/start_test() var/list/bad_subsystems = list() @@ -28,7 +28,7 @@ return 1 /datum/unit_test/all_atoms_shall_be_initialized - name = "SUBSYSTEM - ATOMS: All atoms shall be initialized." + name = "SUBSYSTEM: ATOMS: All atoms shall be initialized." /datum/unit_test/all_atoms_shall_be_initialized/start_test() set background = TRUE // avoid infinite loop warning; SS will still wait for us. diff --git a/code/unit_tests/time_tests.dm b/code/unit_tests/time_tests.dm index 8f700ed2d135..2dbf636d1e91 100644 --- a/code/unit_tests/time_tests.dm +++ b/code/unit_tests/time_tests.dm @@ -1,9 +1,9 @@ /datum/unit_test/time - name = "TIME - Template" + name = "TIME: Template" template = /datum/unit_test/time /datum/unit_test/time/shall_validate_sixth_of_june - name = "Shall validate 6th of June" + name = "TIME: Shall validate 6th of June" /datum/unit_test/time/shall_validate_sixth_of_june/start_test() var/datum/is_date/day/D = new(6, 6) @@ -15,7 +15,7 @@ return TRUE /datum/unit_test/time/shall_not_validate_not_sixth_of_june - name = "Shall not validate not-6th of June" + name = "TIME: Shall not validate not-6th of June" /datum/unit_test/time/shall_not_validate_not_sixth_of_june/start_test() var/datum/is_date/day/D = new(1, 1) @@ -26,10 +26,10 @@ qdel(D) return TRUE -/datum/unit_test/time/shall_validate_range_that_include_sixt_of_june_start_before_end - name = "Shall be able to validate range that include 6th of June - Start before End" +/datum/unit_test/time/shall_validate_range_that_include_sixth_of_june_start_before_end + name = "TIME: Shall be able to validate range that include 6th of June - Start before End" -/datum/unit_test/time/shall_validate_range_that_include_sixt_of_june_start_before_end/start_test() +/datum/unit_test/time/shall_validate_range_that_include_sixth_of_june_start_before_end/start_test() var/datum/is_date/range/R = new(5, 5, 7, 7) if(R.IsValid()) pass("Validation succeeded") @@ -38,10 +38,10 @@ qdel(R) return TRUE -/datum/unit_test/time/shall_validate_range_that_include_sixt_of_june_start_after_end - name = "Shall be able to validate range that include 6th of June - Start after End" +/datum/unit_test/time/shall_validate_range_that_include_sixth_of_june_start_after_end + name = "TIME: Shall be able to validate range that include 6th of June - Start after End" -/datum/unit_test/time/shall_validate_range_that_include_sixt_of_june_start_after_end/start_test() +/datum/unit_test/time/shall_validate_range_that_include_sixth_of_june_start_after_end/start_test() var/datum/is_date/range/R = new(8, 8, 7, 7) if(R.IsValid()) pass("Validation succeeded") @@ -50,10 +50,10 @@ qdel(R) return TRUE -/datum/unit_test/time/shall_not_validate_range_that_exlude_sixt_of_june_start_before_end - name = "Shall not validate range that exlude 6th of June - Start before End" +/datum/unit_test/time/shall_not_validate_range_that_exclude_sixth_of_june_start_before_end + name = "TIME: Shall not validate range that exclude 6th of June - Start before End" -/datum/unit_test/time/shall_not_validate_range_that_exlude_sixt_of_june_start_before_end/start_test() +/datum/unit_test/time/shall_not_validate_range_that_exclude_sixth_of_june_start_before_end/start_test() var/datum/is_date/range/R = new(7, 7, 8, 8) if(R.IsValid()) fail("Unexpected validation") @@ -62,10 +62,10 @@ qdel(R) return TRUE -/datum/unit_test/time/shall_not_validate_range_that_exclude_sixt_of_june_start_after_end - name = "Shall not validate range that exlude 6th of June - Start after End" +/datum/unit_test/time/shall_not_validate_range_that_exclude_sixth_of_june_start_after_end + name = "TIME: Shall not validate range that exclude 6th of June - Start after End" -/datum/unit_test/time/shall_not_validate_range_that_exclude_sixt_of_june_start_after_end/start_test() +/datum/unit_test/time/shall_not_validate_range_that_exclude_sixth_of_june_start_after_end/start_test() var/datum/is_date/range/R = new(7, 7, 5, 5) if(R.IsValid()) fail("Unexpected validation") diff --git a/code/unit_tests/virtual_mob_tests.dm b/code/unit_tests/virtual_mob_tests.dm index 2a7eb99d0daa..dab89f395ec8 100644 --- a/code/unit_tests/virtual_mob_tests.dm +++ b/code/unit_tests/virtual_mob_tests.dm @@ -1,9 +1,9 @@ /datum/unit_test/virtual - name = "VIRTUAL - Template" + name = "VIRTUAL: Template" template = /datum/unit_test/virtual /datum/unit_test/virtual/helper - name = "VIRTUAL - Template Helper" + name = "VIRTUAL: Template Helper" template = /datum/unit_test/virtual/helper var/helper_proc @@ -45,14 +45,14 @@ return TRUE /datum/unit_test/virtual/helper/check_hearers_in_range - name = "VIRTUAL - Helper Test - Check Hearers In Range" + name = "VIRTUAL: Helper Test - Check Hearers In Range" helper_proc = /proc/hearers_in_range /datum/unit_test/virtual/helper/check_hearers_in_range/standard_setup() ..() expected_mobs = list(mob_one, mob_two, mob_three) /datum/unit_test/virtual/helper/check_hearers_in_range_with_mob_inside_storage - name = "VIRTUAL - Helper Test - Check Hearers In Range - With Mob Inside Storage" + name = "VIRTUAL: Helper Test - Check Hearers In Range - With Mob Inside Storage" helper_proc = /proc/hearers_in_range var/obj/storage /datum/unit_test/virtual/helper/check_hearers_in_range_with_mob_inside_storage/standard_setup() @@ -65,35 +65,35 @@ . = ..() /datum/unit_test/virtual/helper/check_viewers_in_range - name = "VIRTUAL - Helper Test - Check Viewers In Range" + name = "VIRTUAL: Helper Test - Check Viewers In Range" helper_proc = /proc/viewers_in_range /datum/unit_test/virtual/helper/check_viewers_in_range/standard_setup() ..() expected_mobs = list(mob_one, mob_two, mob_three) /datum/unit_test/virtual/helper/check_all_hearers - name = "VIRTUAL - Helper Test - Check All Hearers" + name = "VIRTUAL: Helper Test - Check All Hearers" helper_proc = /proc/all_hearers /datum/unit_test/virtual/helper/check_all_hearers/standard_setup() ..() expected_mobs = list(mob_one, mob_two) /datum/unit_test/virtual/helper/check_all_viewers - name = "VIRTUAL - Helper Test - Check All Viewers" + name = "VIRTUAL: Helper Test - Check All Viewers" helper_proc = /proc/all_viewers /datum/unit_test/virtual/helper/check_all_viewers/standard_setup() ..() expected_mobs = list(mob_one, mob_two) /datum/unit_test/virtual/helper/check_mobs_in_viewing_range - name = "VIRTUAL - Helper Test - Check Mobs In Viewing Range" + name = "VIRTUAL: Helper Test - Check Mobs In Viewing Range" helper_proc = /proc/hosts_in_view_range /datum/unit_test/virtual/helper/check_mobs_in_viewing_range/standard_setup() ..() expected_mobs = list(mob_one, mob_two) /datum/unit_test/virtual/helper/check_hosts_in_view_range_with_mob_inside_object - name = "VIRTUAL - Helper Test - Check Hosts in View Range - With Mob Inside Object" + name = "VIRTUAL: Helper Test - Check Hosts in View Range - With Mob Inside Object" helper_proc = /proc/hosts_in_view_range var/obj/storage /datum/unit_test/virtual/helper/check_hosts_in_view_range_with_mob_inside_object/standard_setup() diff --git a/html/changelog.html b/html/changelog.html index 35c3254d6205..526d388b528b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -52,6 +52,12 @@ -->
+

05 December 2024

+

ophelia updated:

+ +

18 November 2024

MistakeNot4892 updated:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index ad59bb30dc1b..6bcd5bb49501 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -14924,3 +14924,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2024-11-18: MistakeNot4892: - tweak: Swapped barrel icons out for Doe's much nicer barrels. +2024-12-05: + ophelia: + - tweak: You can now put any disk into the research design database or research + design console, but only the correct disk type (tech disk or design disk) will + function. diff --git a/html/changelogs/AutoChangeLog-pr-4583.yml b/html/changelogs/AutoChangeLog-pr-4583.yml new file mode 100644 index 000000000000..9c592814efdd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4583.yml @@ -0,0 +1,5 @@ +author: MistakeNot4892 +changes: + - {tweak: Most wooden floors and tables on space maps are now chipboard laminate + instead.} +delete-after: true diff --git a/icons/effects/mouse_pointers/examine_pointer.dmi b/icons/effects/mouse_pointers/examine_pointer.dmi index 41a9cec13b07..a565a554fa7d 100644 Binary files a/icons/effects/mouse_pointers/examine_pointer.dmi and b/icons/effects/mouse_pointers/examine_pointer.dmi differ diff --git a/icons/mob/screen/styles/intents.dmi b/icons/mob/screen/styles/intents.dmi index 3c26214b74e2..3b0b33f84909 100644 Binary files a/icons/mob/screen/styles/intents.dmi and b/icons/mob/screen/styles/intents.dmi differ diff --git a/icons/mob/screen/styles/intents_wide.dmi b/icons/mob/screen/styles/intents_wide.dmi new file mode 100644 index 000000000000..fc26d305f6b0 Binary files /dev/null and b/icons/mob/screen/styles/intents_wide.dmi differ diff --git a/icons/mob/screen/styles/minimalist/intents.dmi b/icons/mob/screen/styles/minimalist/intents.dmi deleted file mode 100644 index 4f4dbaa0b846..000000000000 Binary files a/icons/mob/screen/styles/minimalist/intents.dmi and /dev/null differ diff --git a/icons/obj/banner.dmi b/icons/obj/banner.dmi deleted file mode 100644 index fdcb38c72c6f..000000000000 Binary files a/icons/obj/banner.dmi and /dev/null differ diff --git a/icons/obj/banner_woven.dmi b/icons/obj/banner_woven.dmi deleted file mode 100644 index 5e667ae3b0ab..000000000000 Binary files a/icons/obj/banner_woven.dmi and /dev/null differ diff --git a/icons/obj/items/banners/banner.dmi b/icons/obj/items/banners/banner.dmi new file mode 100644 index 000000000000..7edc1596436d Binary files /dev/null and b/icons/obj/items/banners/banner.dmi differ diff --git a/icons/obj/items/banners/banner_forked.dmi b/icons/obj/items/banners/banner_forked.dmi new file mode 100644 index 000000000000..55ce19fe4928 Binary files /dev/null and b/icons/obj/items/banners/banner_forked.dmi differ diff --git a/icons/obj/items/banners/banner_pointed.dmi b/icons/obj/items/banners/banner_pointed.dmi new file mode 100644 index 000000000000..371cb954f3ad Binary files /dev/null and b/icons/obj/items/banners/banner_pointed.dmi differ diff --git a/icons/obj/items/banners/banner_rounded.dmi b/icons/obj/items/banners/banner_rounded.dmi new file mode 100644 index 000000000000..84ae95413c3a Binary files /dev/null and b/icons/obj/items/banners/banner_rounded.dmi differ diff --git a/icons/obj/items/banners/banner_square.dmi b/icons/obj/items/banners/banner_square.dmi new file mode 100644 index 000000000000..549c0637e18c Binary files /dev/null and b/icons/obj/items/banners/banner_square.dmi differ diff --git a/icons/obj/items/banners/banner_symbols.dmi b/icons/obj/items/banners/banner_symbols.dmi new file mode 100644 index 000000000000..8c77f26d413d Binary files /dev/null and b/icons/obj/items/banners/banner_symbols.dmi differ diff --git a/icons/obj/items/banners/banner_tasselled.dmi b/icons/obj/items/banners/banner_tasselled.dmi new file mode 100644 index 000000000000..271fbce4232c Binary files /dev/null and b/icons/obj/items/banners/banner_tasselled.dmi differ diff --git a/icons/obj/items/banners/banner_woven.dmi b/icons/obj/items/banners/banner_woven.dmi new file mode 100644 index 000000000000..4178722e7b05 Binary files /dev/null and b/icons/obj/items/banners/banner_woven.dmi differ diff --git a/icons/obj/items/banners/sign.dmi b/icons/obj/items/banners/sign.dmi new file mode 100644 index 000000000000..a2fb9ec0361d Binary files /dev/null and b/icons/obj/items/banners/sign.dmi differ diff --git a/icons/obj/items/banners/sign_symbols.dmi b/icons/obj/items/banners/sign_symbols.dmi new file mode 100644 index 000000000000..16ce7891c0c9 Binary files /dev/null and b/icons/obj/items/banners/sign_symbols.dmi differ diff --git a/icons/obj/items/stock_parts/modular_components.dmi b/icons/obj/items/stock_parts/modular_components.dmi index 570e13bbf652..1a471de37faf 100644 Binary files a/icons/obj/items/stock_parts/modular_components.dmi and b/icons/obj/items/stock_parts/modular_components.dmi differ diff --git a/icons/obj/machines/smartfridges/contents_chem.dmi b/icons/obj/machines/smartfridges/contents_chem.dmi new file mode 100644 index 000000000000..652eb6a7a29e Binary files /dev/null and b/icons/obj/machines/smartfridges/contents_chem.dmi differ diff --git a/icons/obj/machines/smartfridges/contents_drink.dmi b/icons/obj/machines/smartfridges/contents_drink.dmi new file mode 100644 index 000000000000..cc6c36719b04 Binary files /dev/null and b/icons/obj/machines/smartfridges/contents_drink.dmi differ diff --git a/icons/obj/machines/smartfridges/contents_food.dmi b/icons/obj/machines/smartfridges/contents_food.dmi new file mode 100644 index 000000000000..34c205c5013d Binary files /dev/null and b/icons/obj/machines/smartfridges/contents_food.dmi differ diff --git a/icons/obj/machines/smartfridges/contents_plants.dmi b/icons/obj/machines/smartfridges/contents_plants.dmi new file mode 100644 index 000000000000..c51a11f5e925 Binary files /dev/null and b/icons/obj/machines/smartfridges/contents_plants.dmi differ diff --git a/icons/obj/machines/smartfridges/dark.dmi b/icons/obj/machines/smartfridges/dark.dmi new file mode 100644 index 000000000000..27eb86d54c76 Binary files /dev/null and b/icons/obj/machines/smartfridges/dark.dmi differ diff --git a/icons/obj/machines/smartfridges/drinks.dmi b/icons/obj/machines/smartfridges/drinks.dmi new file mode 100644 index 000000000000..474246171a21 Binary files /dev/null and b/icons/obj/machines/smartfridges/drinks.dmi differ diff --git a/icons/obj/machines/smartfridges/drying_oven.dmi b/icons/obj/machines/smartfridges/drying_oven.dmi new file mode 100644 index 000000000000..d5a59817b1e8 Binary files /dev/null and b/icons/obj/machines/smartfridges/drying_oven.dmi differ diff --git a/icons/obj/machines/smartfridges/food.dmi b/icons/obj/machines/smartfridges/food.dmi new file mode 100644 index 000000000000..0c690607da18 Binary files /dev/null and b/icons/obj/machines/smartfridges/food.dmi differ diff --git a/icons/obj/machines/smartfridges/science.dmi b/icons/obj/machines/smartfridges/science.dmi new file mode 100644 index 000000000000..091312e07f35 Binary files /dev/null and b/icons/obj/machines/smartfridges/science.dmi differ diff --git a/icons/obj/machines/vending/bar.dmi b/icons/obj/machines/vending/bar.dmi new file mode 100644 index 000000000000..c670371c50fa Binary files /dev/null and b/icons/obj/machines/vending/bar.dmi differ diff --git a/icons/obj/machines/vending/cartridges.dmi b/icons/obj/machines/vending/cartridges.dmi new file mode 100644 index 000000000000..927d474e441b Binary files /dev/null and b/icons/obj/machines/vending/cartridges.dmi differ diff --git a/icons/obj/machines/vending/cigarettes.dmi b/icons/obj/machines/vending/cigarettes.dmi new file mode 100644 index 000000000000..83870f29f06b Binary files /dev/null and b/icons/obj/machines/vending/cigarettes.dmi differ diff --git a/icons/obj/machines/vending/coffee.dmi b/icons/obj/machines/vending/coffee.dmi new file mode 100644 index 000000000000..d4f22cabc6b7 Binary files /dev/null and b/icons/obj/machines/vending/coffee.dmi differ diff --git a/icons/obj/machines/vending/dinnerware.dmi b/icons/obj/machines/vending/dinnerware.dmi new file mode 100644 index 000000000000..297ee226b596 Binary files /dev/null and b/icons/obj/machines/vending/dinnerware.dmi differ diff --git a/icons/obj/machines/vending/drinks.dmi b/icons/obj/machines/vending/drinks.dmi new file mode 100644 index 000000000000..8e241137536f Binary files /dev/null and b/icons/obj/machines/vending/drinks.dmi differ diff --git a/icons/obj/machines/vending/engineering.dmi b/icons/obj/machines/vending/engineering.dmi new file mode 100644 index 000000000000..da8b3af7e50e Binary files /dev/null and b/icons/obj/machines/vending/engineering.dmi differ diff --git a/icons/obj/machines/vending/engivend.dmi b/icons/obj/machines/vending/engivend.dmi new file mode 100644 index 000000000000..6051e27ff1ad Binary files /dev/null and b/icons/obj/machines/vending/engivend.dmi differ diff --git a/icons/obj/machines/vending/fitness.dmi b/icons/obj/machines/vending/fitness.dmi new file mode 100644 index 000000000000..fbe9fd2a7a7e Binary files /dev/null and b/icons/obj/machines/vending/fitness.dmi differ diff --git a/icons/obj/machines/vending/games.dmi b/icons/obj/machines/vending/games.dmi new file mode 100644 index 000000000000..e472e9421a29 Binary files /dev/null and b/icons/obj/machines/vending/games.dmi differ diff --git a/icons/obj/machines/vending/generic.dmi b/icons/obj/machines/vending/generic.dmi new file mode 100644 index 000000000000..b7962898cd23 Binary files /dev/null and b/icons/obj/machines/vending/generic.dmi differ diff --git a/icons/obj/machines/vending/hotfood.dmi b/icons/obj/machines/vending/hotfood.dmi new file mode 100644 index 000000000000..d186fa5e3d19 Binary files /dev/null and b/icons/obj/machines/vending/hotfood.dmi differ diff --git a/icons/obj/machines/vending/laptops.dmi b/icons/obj/machines/vending/laptops.dmi new file mode 100644 index 000000000000..069ba5478835 Binary files /dev/null and b/icons/obj/machines/vending/laptops.dmi differ diff --git a/icons/obj/machines/vending/lavatory.dmi b/icons/obj/machines/vending/lavatory.dmi new file mode 100644 index 000000000000..83057f32eec8 Binary files /dev/null and b/icons/obj/machines/vending/lavatory.dmi differ diff --git a/icons/obj/machines/vending/magic.dmi b/icons/obj/machines/vending/magic.dmi new file mode 100644 index 000000000000..38a969fabe55 Binary files /dev/null and b/icons/obj/machines/vending/magic.dmi differ diff --git a/icons/obj/machines/vending/medical.dmi b/icons/obj/machines/vending/medical.dmi new file mode 100644 index 000000000000..8f03461e5e24 Binary files /dev/null and b/icons/obj/machines/vending/medical.dmi differ diff --git a/icons/obj/machines/vending/nutri_green.dmi b/icons/obj/machines/vending/nutri_green.dmi new file mode 100644 index 000000000000..4c514e4f2152 Binary files /dev/null and b/icons/obj/machines/vending/nutri_green.dmi differ diff --git a/icons/obj/machines/vending/nutri_grey.dmi b/icons/obj/machines/vending/nutri_grey.dmi new file mode 100644 index 000000000000..b403fb74b044 Binary files /dev/null and b/icons/obj/machines/vending/nutri_grey.dmi differ diff --git a/icons/obj/machines/vending/nutrimat.dmi b/icons/obj/machines/vending/nutrimat.dmi new file mode 100644 index 000000000000..382a47df06a0 Binary files /dev/null and b/icons/obj/machines/vending/nutrimat.dmi differ diff --git a/icons/obj/machines/vending/robotics.dmi b/icons/obj/machines/vending/robotics.dmi new file mode 100644 index 000000000000..43d48409ad1c Binary files /dev/null and b/icons/obj/machines/vending/robotics.dmi differ diff --git a/icons/obj/machines/vending/security.dmi b/icons/obj/machines/vending/security.dmi new file mode 100644 index 000000000000..f09df161b80b Binary files /dev/null and b/icons/obj/machines/vending/security.dmi differ diff --git a/icons/obj/machines/vending/seeds_green.dmi b/icons/obj/machines/vending/seeds_green.dmi new file mode 100644 index 000000000000..f3d730d74e17 Binary files /dev/null and b/icons/obj/machines/vending/seeds_green.dmi differ diff --git a/icons/obj/machines/vending/seeds_grey.dmi b/icons/obj/machines/vending/seeds_grey.dmi new file mode 100644 index 000000000000..c85ba5b81f8e Binary files /dev/null and b/icons/obj/machines/vending/seeds_grey.dmi differ diff --git a/icons/obj/machines/vending/snacks.dmi b/icons/obj/machines/vending/snacks.dmi new file mode 100644 index 000000000000..c5bb7ce78a07 Binary files /dev/null and b/icons/obj/machines/vending/snacks.dmi differ diff --git a/icons/obj/machines/vending/snix.dmi b/icons/obj/machines/vending/snix.dmi new file mode 100644 index 000000000000..9711d5a38ca6 Binary files /dev/null and b/icons/obj/machines/vending/snix.dmi differ diff --git a/icons/obj/machines/vending/soda.dmi b/icons/obj/machines/vending/soda.dmi new file mode 100644 index 000000000000..8b6277aa4838 Binary files /dev/null and b/icons/obj/machines/vending/soda.dmi differ diff --git a/icons/obj/machines/vending/solsnacks.dmi b/icons/obj/machines/vending/solsnacks.dmi new file mode 100644 index 000000000000..55498c1e585f Binary files /dev/null and b/icons/obj/machines/vending/solsnacks.dmi differ diff --git a/icons/obj/machines/vending/soviet.dmi b/icons/obj/machines/vending/soviet.dmi new file mode 100644 index 000000000000..a16f21e429d7 Binary files /dev/null and b/icons/obj/machines/vending/soviet.dmi differ diff --git a/icons/obj/machines/vending/theater.dmi b/icons/obj/machines/vending/theater.dmi new file mode 100644 index 000000000000..3108ae546b0a Binary files /dev/null and b/icons/obj/machines/vending/theater.dmi differ diff --git a/icons/obj/machines/vending/tool.dmi b/icons/obj/machines/vending/tool.dmi new file mode 100644 index 000000000000..97660e438538 Binary files /dev/null and b/icons/obj/machines/vending/tool.dmi differ diff --git a/icons/obj/machines/vending/tool_adh.dmi b/icons/obj/machines/vending/tool_adh.dmi new file mode 100644 index 000000000000..03f49f0d1dc4 Binary files /dev/null and b/icons/obj/machines/vending/tool_adh.dmi differ diff --git a/icons/obj/machines/vending/uniform.dmi b/icons/obj/machines/vending/uniform.dmi new file mode 100644 index 000000000000..10148b981215 Binary files /dev/null and b/icons/obj/machines/vending/uniform.dmi differ diff --git a/icons/obj/machines/vending/wallmed.dmi b/icons/obj/machines/vending/wallmed.dmi new file mode 100644 index 000000000000..792954c53a9c Binary files /dev/null and b/icons/obj/machines/vending/wallmed.dmi differ diff --git a/icons/obj/machines/vending/weeb.dmi b/icons/obj/machines/vending/weeb.dmi new file mode 100644 index 000000000000..62966c77b127 Binary files /dev/null and b/icons/obj/machines/vending/weeb.dmi differ diff --git a/icons/obj/structures/banner_frame.dmi b/icons/obj/structures/banner_frame.dmi index 986bf0821e70..7379e9201d2e 100644 Binary files a/icons/obj/structures/banner_frame.dmi and b/icons/obj/structures/banner_frame.dmi differ diff --git a/icons/obj/structures/benches.dmi b/icons/obj/structures/benches.dmi index 70510d9d975a..5a56743224bc 100644 Binary files a/icons/obj/structures/benches.dmi and b/icons/obj/structures/benches.dmi differ diff --git a/icons/obj/structures/lounge.dmi b/icons/obj/structures/lounge.dmi new file mode 100644 index 000000000000..49843d472ca6 Binary files /dev/null and b/icons/obj/structures/lounge.dmi differ diff --git a/icons/obj/structures/sign_post.dmi b/icons/obj/structures/sign_post.dmi new file mode 100644 index 000000000000..c6c3ab25d473 Binary files /dev/null and b/icons/obj/structures/sign_post.dmi differ diff --git a/icons/obj/structures/water_cooler.dmi b/icons/obj/structures/water_cooler.dmi new file mode 100644 index 000000000000..47660e5d627e Binary files /dev/null and b/icons/obj/structures/water_cooler.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi deleted file mode 100644 index 91cf6530e509..000000000000 Binary files a/icons/obj/vending.dmi and /dev/null differ diff --git a/icons/screen/intents.dmi b/icons/screen/intents.dmi new file mode 100644 index 000000000000..23e147992e03 Binary files /dev/null and b/icons/screen/intents.dmi differ diff --git a/icons/screen/intents_wide.dmi b/icons/screen/intents_wide.dmi new file mode 100644 index 000000000000..9f210bc1c2d9 Binary files /dev/null and b/icons/screen/intents_wide.dmi differ diff --git a/icons/turf/flooring/laminate.dmi b/icons/turf/flooring/laminate.dmi new file mode 100644 index 000000000000..83d4933c155f Binary files /dev/null and b/icons/turf/flooring/laminate.dmi differ diff --git a/maps/antag_spawn/ert/ert_base.dmm b/maps/antag_spawn/ert/ert_base.dmm index 30c9701f6a83..53563c829eb1 100644 --- a/maps/antag_spawn/ert/ert_base.dmm +++ b/maps/antag_spawn/ert/ert_base.dmm @@ -1555,7 +1555,7 @@ /turf/unsimulated/floor/vault, /area/map_template/rescue_base/base) "ev" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/machinery/button/blast_door{ @@ -1567,7 +1567,7 @@ /turf/unsimulated/floor/cult, /area/map_template/rescue_base/base) "ew" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/radio/phone{ @@ -1577,7 +1577,7 @@ /turf/unsimulated/floor/cult, /area/map_template/rescue_base/base) "ex" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/machinery/button/blast_door{ @@ -1747,7 +1747,7 @@ /turf/unsimulated/floor/dark, /area/map_template/rescue_base/base) "eH" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/ashtray, @@ -1761,7 +1761,7 @@ /turf/unsimulated/floor/cult, /area/map_template/rescue_base/base) "eJ" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /turf/unsimulated/floor/cult, diff --git a/maps/antag_spawn/wizard/wizard_base.dmm b/maps/antag_spawn/wizard/wizard_base.dmm index 965c15e71e67..abc19fb4422c 100644 --- a/maps/antag_spawn/wizard/wizard_base.dmm +++ b/maps/antag_spawn/wizard/wizard_base.dmm @@ -6,7 +6,7 @@ /turf/unsimulated/wall, /area/map_template/wizard_station) "ac" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/backpack/cultpack, /turf/floor/carpet, /area/map_template/wizard_station) @@ -21,7 +21,7 @@ }, /area/map_template/wizard_station) "af" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/backpack/satchel/grey/withwallet, /turf/floor/carpet, /area/map_template/wizard_station) @@ -42,7 +42,7 @@ /turf/floor/carpet, /area/map_template/wizard_station) "ak" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/flashlight/lamp/green{ on = 0; pixel_x = -3; @@ -52,9 +52,9 @@ /turf/floor/carpet, /area/map_template/wizard_station) "al" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/dice, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "am" = ( /obj/structure/bed/padded, @@ -62,12 +62,12 @@ /turf/floor/carpet, /area/map_template/wizard_station) "an" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/dice/d20, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "ao" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/backpack/satchel/grey/withwallet, /obj/item/clothing/glasses/eyepatch/monocle, /turf/floor/carpet, @@ -76,15 +76,15 @@ /mob/living/human/monkey{ name = "Murphey" }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aq" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/food/chawanmushi, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "ar" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/abstract/landmark{ name = "Teleport-Scroll" }, @@ -92,36 +92,36 @@ /turf/floor/carpet, /area/map_template/wizard_station) "as" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/megaphone, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "at" = ( -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "au" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/cash/c1, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "av" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/machinery/chemical_dispenser/bar_soft/full, /obj/item/radio/intercom/wizard{ dir = 8; pixel_x = 22 }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aw" = ( /obj/machinery/vending/magivend, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "ax" = ( /obj/structure/bed/chair/wood/wings{ dir = 8 }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "ay" = ( /obj/abstract/landmark/start{ @@ -145,24 +145,24 @@ name = "Forbidden Knowledge" }, /obj/effect/decal/cleanable/cobweb, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aC" = ( /obj/structure/bookcase{ name = "bookcase (Tactics)" }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aD" = ( /obj/structure/bookcase, /obj/item/book/manual/nuclear, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aE" = ( /obj/structure/bookcase{ name = "Forbidden Knowledge" }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aF" = ( /turf/unsimulated/wall/fakeglass{ @@ -175,7 +175,7 @@ "aH" = ( /obj/structure/bookcase, /obj/item/book/manual/robotics_cyborgs, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aI" = ( /obj/item/bikehorn/rubberducky, @@ -197,12 +197,12 @@ /turf/unsimulated/floor/freezer, /area/map_template/wizard_station) "aL" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/radio/intercom/wizard{ dir = 4; pixel_x = -22 }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aM" = ( /obj/structure/closet/coffin, @@ -212,12 +212,12 @@ /obj/structure/bed/chair/wood/wings{ dir = 4 }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aO" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/box/cups, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aP" = ( /obj/structure/closet, @@ -228,9 +228,9 @@ /turf/unsimulated/floor/lino, /area/map_template/wizard_station) "aQ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/bag/cash, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aR" = ( /obj/structure/closet, @@ -241,9 +241,9 @@ /turf/unsimulated/floor/lino, /area/map_template/wizard_station) "aS" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/box/candles, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aT" = ( /obj/structure/closet, @@ -273,9 +273,9 @@ /turf/unsimulated/floor/freezer, /area/map_template/wizard_station) "aY" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/box/fancy/donut, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "aZ" = ( /obj/structure/door/wood, @@ -283,7 +283,7 @@ /area/map_template/wizard_station) "ba" = ( /obj/structure/door/silver, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "bb" = ( /turf/unsimulated/floor/lino, @@ -316,9 +316,9 @@ /turf/unsimulated/floor/freezer, /area/map_template/wizard_station) "bg" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/chems/glass/bowl/mapped/meatball, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "bh" = ( /obj/structure/closet, @@ -362,14 +362,14 @@ /area/map_template/wizard_station) "bm" = ( /obj/structure/bookcase, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "bn" = ( /obj/item/radio/intercom/wizard{ dir = 1; pixel_y = -30 }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/wizard_station) "bo" = ( /turf/unsimulated/floor/cult, @@ -414,7 +414,7 @@ /turf/unsimulated/floor/cult, /area/map_template/wizard_station) "by" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /turf/unsimulated/floor/cult, /area/map_template/wizard_station) "bz" = ( diff --git a/maps/away/bearcat/bearcat-2.dmm b/maps/away/bearcat/bearcat-2.dmm index c167b8ef9e01..9fd790d88df5 100644 --- a/maps/away/bearcat/bearcat-2.dmm +++ b/maps/away/bearcat/bearcat-2.dmm @@ -228,7 +228,7 @@ /obj/machinery/computer/cryopod{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "aH" = ( /turf/floor/bluegrid/airless, @@ -289,7 +289,7 @@ /obj/item/backpack/dufflebag/syndie, /obj/item/box/ammo/shotgunshells, /obj/item/handcuffs, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "aL" = ( /obj/item/bedsheet/captain, @@ -297,12 +297,12 @@ /obj/item/gun/projectile/pistol/holdout, /obj/structure/bed/padded, /obj/abstract/submap_landmark/spawnpoint/captain, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "aM" = ( /obj/item/paper_bin, /obj/item/pen, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/light_switch{ pixel_y = 25 }, @@ -313,7 +313,7 @@ pixel_x = 24; req_access = newlist() }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "aN" = ( /obj/effect/wallframe_spawn/reinforced, @@ -393,7 +393,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "aU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -402,11 +402,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "aV" = ( /obj/structure/bed/chair/comfy/brown, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "aW" = ( /obj/effect/wallframe_spawn/reinforced, @@ -466,7 +466,7 @@ }, /obj/structure/window/reinforced/full, /obj/structure/table/marble, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "bb" = ( /obj/structure/cable{ @@ -476,10 +476,10 @@ dir = 1; level = 2 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "bc" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/cable{ icon_state = "0-8" }, @@ -490,7 +490,7 @@ /obj/item/chems/drinks/glass2/coffeecup/one, /obj/item/tank/oxygen, /obj/item/clothing/mask/breath/emergency, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/scrap/command/captain) "bd" = ( /obj/effect/wallframe_spawn/reinforced, diff --git a/maps/away/casino/casino.dm b/maps/away/casino/casino.dm index 504a513e738f..466a76e86667 100644 --- a/maps/away/casino/casino.dm +++ b/maps/away/casino/casino.dm @@ -101,7 +101,7 @@ /obj/structure/casino/roulette/attack_hand(mob/user) - if(user.a_intent == I_HURT || !user.check_dexterity(DEXTERITY_SIMPLE_MACHINES, TRUE)) + if(user.check_intent(I_FLAG_HARM) || !user.check_dexterity(DEXTERITY_SIMPLE_MACHINES, TRUE)) return ..() if(busy) diff --git a/maps/away/casino/casino.dmm b/maps/away/casino/casino.dmm index b1d54db6ab7c..44ea8318132f 100644 --- a/maps/away/casino/casino.dmm +++ b/maps/away/casino/casino.dmm @@ -1293,7 +1293,7 @@ /turf/floor/plating, /area/casino/casino_storage) "dQ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/cigar{ pixel_y = 5 }, @@ -1317,7 +1317,7 @@ /turf/floor/plating, /area/casino/casino_storage) "dS" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/toolbox/mechanical, /obj/item/stack/cable_coil, /turf/floor/plating, @@ -2244,7 +2244,7 @@ /turf/floor/tiled, /area/casino/casino_mainfloor) "gu" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/clothing/mask/smokable/pipe, /obj/machinery/light{ dir = 1 @@ -2253,7 +2253,7 @@ /turf/floor/carpet, /area/casino/casino_mainfloor) "gv" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/cigar, /obj/item/box/fancy/cigar{ pixel_y = 5 @@ -2726,13 +2726,13 @@ /turf/floor/carpet, /area/casino/casino_mainfloor) "ia" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/plate, /obj/item/utensil/fork, /turf/floor/carpet, /area/casino/casino_mainfloor) "ib" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/carpet, /area/casino/casino_mainfloor) "ic" = ( @@ -2855,13 +2855,13 @@ /turf/floor/carpet, /area/casino/casino_mainfloor) "iq" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/plate, /obj/item/food/applepie, /turf/floor/carpet, /area/casino/casino_mainfloor) "ir" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/plate, /obj/item/food/bigbiteburger, /turf/floor/carpet, @@ -3048,7 +3048,7 @@ /turf/floor/tiled, /area/casino/casino_kitchen) "iR" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/plate, /obj/item/utensil/spoon, /turf/floor/carpet, @@ -3385,7 +3385,7 @@ /turf/floor/carpet, /area/casino/casino_mainfloor) "jJ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/ashtray, /obj/item/food/cubancarp, /turf/floor/carpet, @@ -3463,7 +3463,7 @@ /turf/floor/tiled, /area/casino/casino_mainfloor) "jU" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/plate, /obj/item/food/waffles, /obj/item/chems/drinks/cans/iced_tea, @@ -3631,7 +3631,7 @@ /turf/floor/tiled, /area/casino/casino_mainfloor) "kt" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pizzabox/meat, /turf/floor/carpet, /area/casino/casino_mainfloor) @@ -3795,7 +3795,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_mainfloor) "kR" = ( /turf/wall, @@ -3810,7 +3810,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_mainfloor) "kT" = ( /turf/wall, @@ -3825,7 +3825,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_mainfloor) "kV" = ( /turf/wall, @@ -3882,7 +3882,7 @@ dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lh" = ( /obj/structure/cable{ @@ -3891,7 +3891,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "li" = ( /obj/machinery/light{ @@ -3903,7 +3903,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lj" = ( /obj/machinery/media/jukebox, @@ -3913,7 +3913,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lk" = ( /obj/structure/flora/pottedplant, @@ -3929,7 +3929,7 @@ name = "east bump"; pixel_x = 24 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "ll" = ( /obj/structure/cable{ @@ -3939,7 +3939,7 @@ dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "lm" = ( /obj/structure/cable{ @@ -3948,7 +3948,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "ln" = ( /obj/machinery/light{ @@ -3960,7 +3960,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "lo" = ( /obj/structure/flora/pottedplant, @@ -3976,7 +3976,7 @@ name = "east bump"; pixel_x = 24 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "lp" = ( /obj/structure/cable{ @@ -3986,7 +3986,7 @@ dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "lq" = ( /obj/structure/cable{ @@ -3995,7 +3995,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "lr" = ( /obj/machinery/light{ @@ -4007,7 +4007,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "ls" = ( /obj/structure/flora/pottedplant, @@ -4023,7 +4023,7 @@ name = "east bump"; pixel_x = 24 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "lt" = ( /obj/machinery/door/firedoor, @@ -4104,59 +4104,59 @@ /area/casino/casino_crew_atmos) "lD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lE" = ( /obj/random/ammo, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lF" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/splatter, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lG" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lH" = ( /obj/item/trash/cigbutt/professionals, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lI" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lJ" = ( /obj/item/secure_storage/safe{ pixel_x = 30 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lK" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "lL" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "lM" = ( /obj/item/secure_storage/safe{ pixel_x = 30 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "lN" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "lO" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "lP" = ( /obj/item/secure_storage/safe{ pixel_x = 25 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "lQ" = ( /obj/structure/cable{ @@ -4216,58 +4216,58 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "lZ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/cigar{ pixel_y = 5 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "ma" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/ashtray, /obj/random/drinkbottle, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "mb" = ( /obj/structure/bed/chair/comfy/red{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "mc" = ( /obj/machinery/light{ dir = 4; icon_state = "tube1" }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "md" = ( /obj/structure/bed/chair/comfy/red, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "me" = ( /obj/machinery/light{ dir = 4; icon_state = "tube1" }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "mf" = ( /obj/structure/bed/chair/comfy/red, /obj/item/flame/fuelled/lighter/zippo/random, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "mg" = ( /obj/machinery/light{ dir = 4; icon_state = "tube1" }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "mi" = ( /obj/structure/cable{ @@ -4281,7 +4281,7 @@ /turf/floor/tiled/white, /area/casino/casino_patron_bathroom) "mj" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/drinks/bottle/agedwhiskey, /obj/item/clothing/mask/smokable/cigarette/cigar/havana, /obj/item/clothing/mask/smokable/cigarette/cigar/havana, @@ -4325,66 +4325,66 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "mq" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/drinkbottle, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "mr" = ( -/obj/structure/table/woodentable, -/turf/floor/wood, +/obj/structure/table/laminate, +/turf/floor/laminate, /area/casino/casino_private_vip) "ms" = ( /obj/structure/bed/chair/comfy/red{ dir = 8 }, /obj/item/bag/cash, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "mt" = ( /obj/structure/bed, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private_vip) "mu" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/drinkbottle, /obj/random/coin, /obj/random/coin, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "mv" = ( /obj/structure/bed/chair/comfy/red{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "mw" = ( /obj/structure/bed, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private1) "mx" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/drinkbottle, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "my" = ( /obj/structure/bed/chair/comfy/red{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "mz" = ( /obj/structure/bed, /obj/random/coin, -/turf/floor/wood, +/turf/floor/laminate, /area/casino/casino_private2) "mB" = ( /obj/random/coin, diff --git a/maps/away/errant_pisces/errant_pisces.dmm b/maps/away/errant_pisces/errant_pisces.dmm index 7e62686eb0d9..df04d63c3a72 100644 --- a/maps/away/errant_pisces/errant_pisces.dmm +++ b/maps/away/errant_pisces/errant_pisces.dmm @@ -2525,27 +2525,27 @@ "gp" = ( /obj/structure/bed/padded, /obj/item/bedsheet/rainbow, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gq" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gr" = ( /obj/machinery/computer/modular{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gs" = ( /obj/structure/bed/padded, /obj/item/bedsheet/orange, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gt" = ( /obj/structure/bed/chair/comfy/brown{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gu" = ( /obj/machinery/light{ @@ -2553,20 +2553,20 @@ icon_state = "tube1" }, /obj/machinery/media/jukebox, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gv" = ( /obj/structure/bed/chair/comfy/brown{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gw" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/unary/vent_pump/on{ level = 2 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gx" = ( /obj/effect/wallframe_spawn/reinforced, @@ -2664,17 +2664,17 @@ dir = 8; icon_state = "tube1" }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gM" = ( /mob/living/simple_animal/hostile/carp/shark, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gN" = ( /obj/structure/closet/cabinet, /obj/item/clothing/shoes/jackboots, /obj/item/clothing/suit/armor/vest, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gO" = ( /obj/structure/bed/chair/comfy/teal, @@ -2682,23 +2682,23 @@ dir = 8; icon_state = "tube1" }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gP" = ( /obj/structure/filing_cabinet/chestdrawer, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gQ" = ( /obj/structure/table/gamblingtable, /obj/item/deck/cards, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gR" = ( /obj/structure/bed/chair/comfy/brown{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "gS" = ( /obj/structure/cable/green{ @@ -2742,37 +2742,37 @@ /turf/floor/tiled, /area/errant_pisces/dorms) "gZ" = ( -/obj/structure/table/woodentable, -/turf/floor/wood, +/obj/structure/table/laminate, +/turf/floor/laminate, /area/errant_pisces/rooms) "ha" = ( /obj/structure/closet, /obj/random/smokes, /obj/random/projectile, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hb" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin, /obj/item/flashlight/lamp, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hc" = ( /obj/structure/closet, /obj/random/snack, /obj/random/tool, /obj/random/suit, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hd" = ( /obj/structure/table/gamblingtable, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "he" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/ashtray, /obj/random/smokes, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hf" = ( /obj/structure/cable/green{ @@ -2784,7 +2784,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hg" = ( /obj/machinery/door/airlock, @@ -2884,12 +2884,12 @@ /area/errant_pisces/infirmary) "hr" = ( /obj/machinery/door/airlock, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hs" = ( /obj/abstract/landmark/corpse/bridgeofficer, /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "ht" = ( /obj/structure/bed/chair/comfy/brown, @@ -2897,7 +2897,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hu" = ( /obj/machinery/vending/coffee, @@ -2916,14 +2916,14 @@ /area/errant_pisces/dorms) "hx" = ( /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hy" = ( /obj/machinery/light{ dir = 1; icon_state = "tube1" }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hz" = ( /obj/machinery/alarm{ @@ -2934,20 +2934,20 @@ /obj/structure/bed/chair/comfy/brown{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hA" = ( /obj/machinery/power/apc{ name = "south bump"; pixel_y = -24 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/smokes, /obj/structure/cable/green, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/rooms) "hB" = ( /obj/machinery/vending/games, @@ -5670,14 +5670,14 @@ /area/errant_pisces/bridge) "oV" = ( /obj/machinery/door/airlock, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "oW" = ( /obj/machinery/alarm{ alarm_id = "xenobio1_alarm"; pixel_y = 24 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "oX" = ( /obj/machinery/light{ @@ -5689,13 +5689,13 @@ /obj/random/ammo, /obj/random/cash, /obj/random/cash, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "oY" = ( /obj/machinery/computer/modular{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "oZ" = ( /obj/machinery/vending/medical{ @@ -5775,17 +5775,17 @@ /turf/floor/tiled, /area/errant_pisces/bridge) "pl" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "pm" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "pn" = ( -/obj/structure/table/woodentable, -/turf/floor/wood, +/obj/structure/table/laminate, +/turf/floor/laminate, /area/errant_pisces/bridge) "po" = ( /obj/effect/wallframe_spawn/reinforced, @@ -5867,12 +5867,12 @@ /area/errant_pisces/bridge) "pB" = ( /obj/structure/bookcase/manuals/engineering, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "pC" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/toy, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "pD" = ( /obj/machinery/light/small{ @@ -5933,7 +5933,7 @@ /area/errant_pisces/bridge) "pN" = ( /obj/structure/curtain/open/bed, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "pO" = ( /obj/structure/hygiene/shower{ @@ -6093,7 +6093,7 @@ "qi" = ( /obj/item/bedsheet/captain, /obj/structure/bed/padded, -/turf/floor/wood, +/turf/floor/laminate, /area/errant_pisces/bridge) "qj" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ diff --git a/maps/away/liberia/liberia.dmm b/maps/away/liberia/liberia.dmm index 35999ef09ff5..e136fdc492c1 100644 --- a/maps/away/liberia/liberia.dmm +++ b/maps/away/liberia/liberia.dmm @@ -869,7 +869,7 @@ /obj/structure/cable/blue{ icon_state = "1-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "bH" = ( /obj/machinery/door/firedoor, @@ -1162,7 +1162,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/mule) "cg" = ( /obj/machinery/door/airlock/hatch{ @@ -1178,7 +1178,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/cyan{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/mule) "ch" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, @@ -1529,7 +1529,7 @@ /obj/machinery/computer/ship/sensors{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/mule) "cN" = ( /obj/effect/paint/silver, @@ -1656,7 +1656,7 @@ /turf/floor/tiled/techfloor, /area/liberia/engineeringengines) "cZ" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/machinery/chemical_dispenser/bar_coffee{ dir = 1 }, @@ -3215,7 +3215,7 @@ dir = 1; pixel_y = -24 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "fI" = ( /obj/structure/closet/emcloset, @@ -3301,7 +3301,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /turf/floor/carpet, /area/liberia/bar) @@ -3322,15 +3322,15 @@ pixel_y = 24 }, /obj/abstract/submap_landmark/spawnpoint/liberia, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "fS" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/machinery/light{ dir = 1 }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "fT" = ( /obj/structure/bed/chair/wood/walnut{ @@ -3345,29 +3345,29 @@ icon_state = "0-2" }, /obj/abstract/submap_landmark/spawnpoint/liberia, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "fU" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/random/drinkbottle, /obj/random/drinkbottle, /obj/structure/window/reinforced{ dir = 8 }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "fV" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/machinery/chemical_dispenser/bar_soft/full, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "fW" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/machinery/light{ dir = 4 }, /obj/machinery/chemical_dispenser/bar_alc/full, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "fX" = ( /obj/effect/floor_decal/techfloor{ @@ -3486,7 +3486,7 @@ /area/liberia/bar) "gg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/deck/cards, /turf/floor/carpet, /area/liberia/bar) @@ -3500,22 +3500,22 @@ /turf/floor/carpet, /area/liberia/bar) "gi" = ( -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gj" = ( /obj/structure/bed/chair/wood/walnut, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/abstract/submap_landmark/spawnpoint/liberia, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gk" = ( /obj/machinery/door/window/westright, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gl" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/box/glasses/pint, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gm" = ( /obj/structure/extinguisher_cabinet{ @@ -3610,7 +3610,7 @@ /obj/structure/cable/blue{ icon_state = "2-4" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gv" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, @@ -3621,7 +3621,7 @@ /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gw" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -3637,10 +3637,10 @@ /obj/structure/cable/blue{ icon_state = "1-2" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gx" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/structure/window/reinforced{ dir = 8 }, @@ -3650,10 +3650,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gy" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/ashtray/glass, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -3662,10 +3662,10 @@ dir = 4 }, /obj/item/clothing/mask/smokable/cigarette/cigar/havana, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gz" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/chems/glass/rag, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -3676,7 +3676,7 @@ /obj/structure/disposalpipe/segment/bent{ dir = 4 }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -3833,7 +3833,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "gN" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -3842,7 +3842,7 @@ /obj/machinery/light_switch{ pixel_y = 24 }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "gO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -3859,7 +3859,7 @@ /obj/structure/cable/blue{ icon_state = "0-2" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "gP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -3874,7 +3874,7 @@ /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "gQ" = ( /obj/machinery/door/airlock{ @@ -3896,7 +3896,7 @@ /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "gR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -3909,7 +3909,7 @@ icon_state = "4-8" }, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "gS" = ( /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, @@ -3922,7 +3922,7 @@ /obj/structure/cable/blue{ icon_state = "2-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "gT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -3934,7 +3934,7 @@ /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "gU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -3947,7 +3947,7 @@ /obj/structure/cable/blue{ icon_state = "1-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "gW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -3955,7 +3955,7 @@ /obj/structure/cable/blue{ icon_state = "1-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "gX" = ( /obj/item/stool/padded, @@ -3963,20 +3963,20 @@ dir = 10 }, /obj/abstract/submap_landmark/spawnpoint/liberia, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gY" = ( /obj/item/stool/padded, /obj/effect/floor_decal/spline/plain/brown, /obj/abstract/submap_landmark/spawnpoint/liberia, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "gZ" = ( /obj/item/stool/padded, /obj/structure/disposalpipe/segment, /obj/effect/floor_decal/spline/plain/brown, /obj/abstract/submap_landmark/spawnpoint/liberia, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "ha" = ( /obj/machinery/door/airlock/glass{ @@ -3986,7 +3986,7 @@ /obj/structure/cable/blue{ icon_state = "1-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "hb" = ( /obj/machinery/light/small{ @@ -4039,14 +4039,14 @@ /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "hh" = ( /obj/effect/floor_decal/spline/plain/brown, /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "hi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -4054,7 +4054,7 @@ dir = 4 }, /obj/effect/floor_decal/spline/plain/brown, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "hj" = ( /obj/machinery/door/airlock{ @@ -4067,18 +4067,18 @@ /obj/structure/cable/blue{ icon_state = "1-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/personellroom2) "hk" = ( /obj/machinery/media/jukebox/old, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "hl" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "hm" = ( /obj/structure/window/reinforced{ @@ -4184,43 +4184,43 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "hz" = ( /obj/machinery/vending/cigarette{ dir = 1; products = list(/obj/item/box/fancy/cigarettes=10,/obj/item/box/matches=10,/obj/item/flame/fuelled/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2) }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "hA" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/scanner/price, /obj/item/scanner/price, /obj/machinery/light/small, /obj/item/scanner/price, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "hB" = ( /obj/machinery/pipelayer, /turf/floor/tiled/techfloor/grid, /area/liberia/engineeringreactor) "hC" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/ashtray, /obj/item/box/matches, /obj/random/smokes, /turf/floor/carpet/red, /area/liberia/captain) "hD" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /mob/living/simple_animal/tindalos{ name = "Eddy" }, /turf/floor/carpet/red, /area/liberia/captain) "hE" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /turf/floor/carpet/red, /area/liberia/captain) @@ -4257,7 +4257,7 @@ /turf/floor/carpet, /area/liberia/personellroom2) "hI" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -4312,7 +4312,7 @@ /turf/floor/tiled/techfloor/grid, /area/liberia/merchantstorage) "hN" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/random/action_figure, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -5100,11 +5100,11 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "jO" = ( /obj/structure/bookcase/skill_books/random, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "jP" = ( /obj/effect/wallframe_spawn/reinforced, @@ -5178,7 +5178,7 @@ /turf/floor/carpet, /area/liberia/library) "jX" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/lava/orange, /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 @@ -5186,7 +5186,7 @@ /turf/floor/carpet, /area/liberia/library) "jY" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/structure/flora/pottedplant/deskleaf{ pixel_x = -5; pixel_y = 2 @@ -5222,7 +5222,7 @@ /turf/floor/carpet/magenta, /area/liberia/guestroom2) "ka" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/structure/flora/pottedplant/smallcactus{ pixel_x = -5; pixel_y = 9 @@ -5246,7 +5246,7 @@ /turf/floor/carpet, /area/liberia/library) "kc" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/box/fancy/donut, /obj/effect/floor_decal/spline/fancy/wood{ dir = 6 @@ -5288,7 +5288,7 @@ /obj/structure/disposalpipe/segment/bent{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "ki" = ( /obj/machinery/newscaster{ @@ -5301,7 +5301,7 @@ /obj/structure/disposalpipe/segment/bent{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "kk" = ( /obj/effect/floor_decal/techfloor{ @@ -5424,7 +5424,7 @@ /turf/floor/carpet, /area/liberia/library) "kr" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/modular_computer/laptop/preset/custom_loadout/standard{ dir = 8 }, @@ -5472,7 +5472,7 @@ /turf/floor/carpet, /area/liberia/library) "ky" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/effect/floor_decal/spline/fancy/wood, /obj/machinery/power/apc/liberia{ name = "south bump"; @@ -5482,7 +5482,7 @@ /turf/floor/carpet, /area/liberia/library) "kz" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/paper_bin, /obj/item/pen, /obj/machinery/light/small{ @@ -6032,7 +6032,7 @@ /turf/floor/carpet/green, /area/liberia/guestroom1) "lB" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "lC" = ( /obj/effect/floor_decal/corner_techfloor_grid{ @@ -6121,7 +6121,7 @@ /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "mu" = ( /obj/effect/floor_decal/techfloor{ @@ -6188,7 +6188,7 @@ /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "ns" = ( /obj/structure/cable/blue{ @@ -6231,7 +6231,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "op" = ( /obj/structure/railing/mapped, @@ -6241,7 +6241,7 @@ /turf/floor/tiled/techfloor/grid, /area/liberia/merchantstorage) "os" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/effect/floor_decal/spline/fancy/wood, /turf/floor/carpet/red, /area/liberia/traidingroom) @@ -6421,7 +6421,7 @@ /turf/floor/tiled/techfloor, /area/liberia/cryo) "pZ" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/machinery/fabricator/micro/bartender{ pixel_x = 4 }, @@ -6743,7 +6743,7 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "sY" = ( /obj/item/stack/material/panel/mapped/plastic/ten{ @@ -6757,7 +6757,7 @@ pixel_x = 4; pixel_y = -4 }, -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/effect/floor_decal/spline/fancy/wood{ dir = 6 }, @@ -6888,7 +6888,7 @@ /obj/structure/cable/blue{ icon_state = "1-2" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/bar) "wq" = ( /obj/machinery/door/airlock/external{ @@ -7019,7 +7019,7 @@ /obj/machinery/light_switch{ pixel_y = 24 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "yC" = ( /obj/effect/floor_decal/techfloor{ @@ -7120,7 +7120,7 @@ /turf/wall/r_wall/prepainted, /area/liberia/captain) "Af" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/effect/floor_decal/borderfloor{ dir = 10 }, @@ -7228,7 +7228,7 @@ /turf/floor/tiled/steel_grid, /area/liberia/atmos) "BH" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "BJ" = ( /turf/wall/prepainted, @@ -7255,7 +7255,7 @@ dir = 8; pixel_x = 24 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "DI" = ( /turf/wall/prepainted, @@ -7570,7 +7570,7 @@ /obj/structure/cable/blue{ icon_state = "1-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/bar) "Hv" = ( /turf/wall/prepainted, @@ -7748,7 +7748,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 8 }, -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /turf/floor/carpet/blue, /area/liberia/personellroom1) "Kh" = ( @@ -7862,7 +7862,7 @@ /turf/wall/r_wall/prepainted, /area/liberia/officeroom) "Ml" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/ashtray/glass, /obj/effect/floor_decal/borderfloor{ dir = 6 @@ -7945,7 +7945,7 @@ /obj/structure/cable/blue{ icon_state = "2-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "Od" = ( /turf/wall/prepainted, @@ -8106,7 +8106,7 @@ /turf/floor/tiled/techfloor, /area/liberia/merchantstorage) "QK" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/effect/floor_decal/borderfloor, /obj/effect/floor_decal/corner/green{ dir = 5 @@ -8150,7 +8150,7 @@ /area/liberia/merchantstorage) "RO" = ( /obj/machinery/atmospherics/unary/vent_pump/on, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "Sa" = ( /turf/wall/prepainted, @@ -8160,7 +8160,7 @@ /obj/structure/cable/blue{ icon_state = "1-8" }, -/turf/floor/wood/ebony, +/turf/floor/laminate/ebony, /area/liberia/captain) "Se" = ( /turf/wall/r_wall/prepainted, @@ -8237,7 +8237,7 @@ /obj/structure/disposalpipe/segment/bent{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "Tz" = ( /obj/machinery/door/airlock, @@ -8306,7 +8306,7 @@ /obj/structure/cable/blue{ icon_state = "1-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "Uh" = ( /turf/wall/r_wall/prepainted, @@ -8402,7 +8402,7 @@ /obj/structure/cable/blue{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/liberia/library) "Wn" = ( /obj/effect/floor_decal/borderfloor{ @@ -8512,7 +8512,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 10 }, -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /turf/floor/carpet/blue, /area/liberia/personellroom1) diff --git a/maps/away/magshield/magshield.dmm b/maps/away/magshield/magshield.dmm index d6e4edc107af..9148970f57f8 100644 --- a/maps/away/magshield/magshield.dmm +++ b/maps/away/magshield/magshield.dmm @@ -2268,7 +2268,7 @@ /turf/floor/carpet/blue, /area/magshield/west) "gH" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 10 }, /obj/item/box/checkers, @@ -2278,20 +2278,20 @@ /turf/floor/carpet/blue, /area/magshield/west) "gI" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 10 }, /obj/item/belt/champion, /turf/floor/carpet/blue, /area/magshield/west) "gJ" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 10 }, /turf/floor/carpet/blue, /area/magshield/west) "gK" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 10 }, /obj/item/bible/booze, @@ -2385,7 +2385,7 @@ /turf/floor/tiled, /area/magshield/west) "gY" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/action_figure, /turf/floor/tiled, /area/magshield/west) @@ -2483,7 +2483,7 @@ /turf/floor/tiled, /area/magshield/west) "hn" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/sword/replica, /turf/floor/tiled, /area/magshield/west) @@ -2523,7 +2523,7 @@ /turf/floor/plating/airless, /area/space) "hw" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/plushie/large, /turf/floor/tiled, /area/magshield/west) @@ -2565,7 +2565,7 @@ /turf/floor/tiled, /area/magshield/west) "hC" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/toy/shipmodel, /turf/floor/tiled, /area/magshield/west) @@ -2614,7 +2614,7 @@ /turf/floor/carpet/blue, /area/magshield/west) "hK" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/book/manual/supermatter_engine, /turf/floor/carpet/blue, /area/magshield/west) @@ -2665,7 +2665,7 @@ /turf/floor/carpet/blue, /area/magshield/west) "hT" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/book/manual/evaguide, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -2727,7 +2727,7 @@ /turf/floor/tiled, /area/magshield/west) "hZ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/accessory, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 @@ -2735,7 +2735,7 @@ /turf/floor/carpet/blue, /area/magshield/west) "ia" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flame/fuelled/lighter/zippo/random, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 @@ -2743,7 +2743,7 @@ /turf/floor/carpet/blue, /area/magshield/west) "ib" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/ashtray, /obj/random/smokes, /obj/machinery/light, diff --git a/maps/away/mining/mining-signal.dmm b/maps/away/mining/mining-signal.dmm index 9876407c3682..8fcfad22c51a 100644 --- a/maps/away/mining/mining-signal.dmm +++ b/maps/away/mining/mining-signal.dmm @@ -657,43 +657,43 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 9 }, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "cn" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/broken/three, +/turf/floor/laminate/broken/three, /area/outpost/abandoned) "co" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/effect/decal/cleanable/dirt, /obj/random/trash, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "cp" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/board, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "cq" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/loot, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "cr" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, -/turf/floor/wood/broken/two, +/turf/floor/laminate/broken/two, /area/outpost/abandoned) "cs" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "ct" = ( /obj/machinery/door/airlock/centcom, @@ -739,41 +739,41 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "cI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "cJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/broken/four, +/turf/floor/laminate/broken/four, /area/outpost/abandoned) "cK" = ( /obj/effect/floor_decal/plaque, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "cL" = ( /obj/effect/decal/cleanable/dirt, /obj/random/trash, -/turf/floor/wood/broken, +/turf/floor/laminate/broken, /area/outpost/abandoned) "cM" = ( /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/outpost/abandoned) "cN" = ( /obj/structure/filing_cabinet/tall, /turf/floor/carpet/blue, /area/outpost/abandoned) "cO" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/loot, /turf/floor/carpet/blue, /area/outpost/abandoned) @@ -975,13 +975,13 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 10 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/loot, /turf/floor/carpet, /area/outpost/abandoned) "dx" = ( /obj/effect/floor_decal/spline/fancy/wood, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/carpet, /area/outpost/abandoned) "dy" = ( @@ -994,7 +994,7 @@ /area/outpost/abandoned) "dz" = ( /obj/effect/floor_decal/spline/fancy/wood, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/loot, /turf/floor/carpet/broken, /area/outpost/abandoned) @@ -1002,7 +1002,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 6 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/carpet, /area/outpost/abandoned) "dC" = ( @@ -1100,7 +1100,7 @@ /turf/wall/titanium, /area/outpost/abandoned) "dR" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ icon_state = "solid_flip0" }, /turf/floor/carpet/blue, diff --git a/maps/away/slavers/slavers_base.dmm b/maps/away/slavers/slavers_base.dmm index f9648ba28634..7b49c294d412 100644 --- a/maps/away/slavers/slavers_base.dmm +++ b/maps/away/slavers/slavers_base.dmm @@ -2841,12 +2841,12 @@ /turf/floor/tiled/airless, /area/slavers_base/demo) "hO" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/radio/shortwave, /turf/floor/tiled/airless, /area/slavers_base/demo) "hP" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/secure_storage/briefcase/money, /obj/random/cash, /obj/random/cash, @@ -2976,12 +2976,12 @@ /turf/floor/tiled/airless, /area/slavers_base/demo) "ij" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/bag/cash, /turf/floor/tiled/airless, /area/slavers_base/demo) "ik" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/cash, /turf/floor/tiled/airless, /area/slavers_base/demo) @@ -3052,7 +3052,7 @@ /turf/floor/tiled, /area/slavers_base/dorms) "iy" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper{ info = "
Contract

This contract describes exchanging of monetary pieces for the right o? the ownership for following examples: <*> Human, age 17. Price - 1500cr. <*> Human, age 49. Price - 1100cr. <*> Human, age 28. Good fist fighter. Price - 2400cr. <*> Human, age 34. Expirienced medic. Price - 6800cr. Overall price: 11800cr
Place for signatures"; name = "Contract" @@ -3060,7 +3060,7 @@ /turf/floor/tiled/airless, /area/slavers_base/demo) "iz" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/coin, /obj/item/pen, /turf/floor/tiled/airless, diff --git a/maps/away/smugglers/smugglers.dmm b/maps/away/smugglers/smugglers.dmm index 808d13e14434..ca832b8ff9ce 100644 --- a/maps/away/smugglers/smugglers.dmm +++ b/maps/away/smugglers/smugglers.dmm @@ -611,7 +611,7 @@ /turf/floor/tiled, /area/smugglers/office) "bD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper, /obj/item/pen, /obj/item/flashlight/lamp, @@ -665,7 +665,7 @@ /turf/floor/tiled, /area/smugglers/office) "bK" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/coin{ pixel_x = -5; pixel_y = -3 diff --git a/maps/away/unishi/unishi-2.dmm b/maps/away/unishi/unishi-2.dmm index b63e93afd205..19aad746cee2 100644 --- a/maps/away/unishi/unishi-2.dmm +++ b/maps/away/unishi/unishi-2.dmm @@ -13,7 +13,7 @@ /turf/wall/titanium, /area/space) "ae" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/advdevice, /obj/item/flashlight/lamp, /turf/floor/carpet/red, @@ -32,7 +32,7 @@ /turf/floor/carpet/red, /area/unishi/library) "ai" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp, /turf/floor/carpet/red, /area/unishi/library) @@ -960,18 +960,18 @@ /turf/floor/tiled, /area/unishi/meeting) "cN" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin, /obj/item/pen/fancy, /turf/floor/tiled, /area/unishi/meeting) "cO" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pen/fancy, /turf/floor/tiled, /area/unishi/meeting) "cP" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/folder/yellow, /obj/item/pen/green, /turf/floor/tiled, @@ -1023,7 +1023,7 @@ /turf/floor/tiled, /area/unishi/meeting) "cX" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -1033,7 +1033,7 @@ /turf/floor/tiled, /area/unishi/meeting) "cY" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -1042,7 +1042,7 @@ /turf/floor/tiled, /area/unishi/meeting) "cZ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -1982,7 +1982,7 @@ /turf/floor/tiled/dark, /area/unishi/common) "fy" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/snack, /obj/item/flashlight/lamp, /turf/floor/tiled/dark, @@ -2008,7 +2008,7 @@ /turf/floor/tiled/dark, /area/unishi/common) "fC" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin, /obj/item/flashlight/lamp, /turf/floor/tiled/dark, diff --git a/maps/away/unishi/unishi-3.dmm b/maps/away/unishi/unishi-3.dmm index 8ad33994f7dc..df8752f14c53 100644 --- a/maps/away/unishi/unishi-3.dmm +++ b/maps/away/unishi/unishi-3.dmm @@ -639,7 +639,7 @@ /area/unishi/med) "cd" = ( /obj/structure/bed/chair/armchair/black, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "ce" = ( /obj/machinery/vending/tool, @@ -757,7 +757,7 @@ /obj/structure/cable{ icon_state = "0-2" }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "cr" = ( /obj/structure/cable{ @@ -842,17 +842,17 @@ /obj/structure/cable{ icon_state = "1-8" }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "cy" = ( /obj/machinery/vending/games, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "cz" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "cA" = ( /obj/effect/wingrille_spawn/reinforced, @@ -893,24 +893,24 @@ /obj/structure/bed/chair/armchair/beige{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "cH" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/cell/crap, /obj/item/stock_parts/circuitboard/gyrotron_control, /obj/item/paper_bin, /obj/machinery/light/small{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "cI" = ( /obj/effect/shuttle_landmark/nav_unishi/nav1, /turf/space, /area/space) "cJ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/trash/raisins, /obj/item/pizzabox/margherita, /obj/random/advdevice, @@ -920,22 +920,22 @@ /turf/floor/tiled, /area/unishi/living) "cK" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/dice, /obj/item/deck/cards, /obj/item/pen/fancy, /obj/random/tech_supply, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "cL" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/board, /obj/item/book/manual/mass_spectrometry, /obj/item/book/fluff/stasis, /turf/floor/tiled, /area/unishi/living) "cM" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, @@ -970,7 +970,7 @@ /obj/structure/bed/chair/armchair/black{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/lounge) "cQ" = ( /obj/structure/bed/chair/padded/brown{ @@ -1024,7 +1024,7 @@ /turf/floor/tiled, /area/unishi/living) "cY" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/trash/raisins, /obj/item/book/manual/nuclear, /turf/floor/tiled, @@ -1091,7 +1091,7 @@ /turf/floor/tiled, /area/unishi/kitchen) "dg" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/trash/candy, /obj/machinery/recharger, /turf/floor/tiled, @@ -1268,7 +1268,7 @@ /turf/floor/tiled, /area/unishi/living) "dD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/cane/fancy/sword, /obj/item/clothing/suit/radiation, /turf/floor/tiled, @@ -1441,7 +1441,7 @@ /turf/floor/tiled, /area/unishi/living) "eb" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/poster, /obj/item/grooming/comb/colorable/random, /obj/random/advdevice, @@ -1625,11 +1625,11 @@ /obj/random/clothing, /obj/random/clothing, /obj/random/hat, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "ey" = ( /obj/structure/bed/padded, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "ez" = ( /obj/structure/closet/toolcloset, @@ -1638,17 +1638,17 @@ "eA" = ( /obj/structure/bed/padded, /obj/item/bedsheet/rd, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eB" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, /obj/item/toy/plushie/lizard, /obj/random/advdevice, /obj/random/drinkbottle, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -1657,7 +1657,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eD" = ( /obj/machinery/door/airlock{ @@ -1711,22 +1711,22 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eI" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eJ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/grooming/brush, /obj/item/cosmetics/lipstick/black, /obj/item/cosmetics/lipstick/green, /obj/item/cosmetics/lipstick/violet, /obj/random/drinkbottle, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eK" = ( /obj/structure/bed/chair/office, @@ -1734,7 +1734,7 @@ dir = 4; icon_state = "bulb1" }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -1750,10 +1750,10 @@ /obj/machinery/light/small{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eN" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -1777,28 +1777,28 @@ /obj/structure/bed/chair/office/comfy/black{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eS" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pen/fancy, /obj/random/drinkbottle, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eV" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -1809,7 +1809,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -1820,7 +1820,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eY" = ( /obj/structure/safe, @@ -1837,7 +1837,7 @@ /obj/item/cash/c200, /obj/item/cash/c200, /obj/item/grenade/supermatter, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "eZ" = ( /obj/structure/safe, @@ -1850,14 +1850,14 @@ /obj/item/cash/c500, /obj/item/pen/reagent/sleepy, /obj/random/hardsuit, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "fa" = ( /obj/machinery/light/small{ dir = 4; icon_state = "bulb1" }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "fb" = ( /obj/effect/wallframe_spawn/reinforced/hull, @@ -1865,7 +1865,7 @@ /area/unishi/living) "fc" = ( /obj/structure/bed/chair/armchair/black, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "fd" = ( /obj/structure/table/reinforced, @@ -1873,7 +1873,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "fe" = ( /obj/abstract/map_data{ @@ -1936,7 +1936,7 @@ /obj/random/contraband, /obj/random/clothing, /obj/random/hat, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "qS" = ( /obj/structure/closet/secure_closet/personal/cabinet, @@ -1944,12 +1944,12 @@ /obj/random/drinkbottle, /obj/random/clothing, /obj/random/hat, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "sS" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/random/clothing, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "ur" = ( /obj/machinery/hologram/holopad/longrange/remoteship, @@ -1975,7 +1975,7 @@ /obj/random/contraband, /obj/random/clothing, /obj/random/hat, -/turf/floor/wood, +/turf/floor/laminate, /area/unishi/living) "AF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, diff --git a/maps/away/yacht/yacht.dmm b/maps/away/yacht/yacht.dmm index 3e56a19c9e63..81542eb7c1c2 100644 --- a/maps/away/yacht/yacht.dmm +++ b/maps/away/yacht/yacht.dmm @@ -16,7 +16,7 @@ /area/yacht/bridge) "ae" = ( /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "af" = ( /obj/effect/shuttle_landmark/nav_yacht/nav2, @@ -32,31 +32,31 @@ "ai" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/ship/helm, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "aj" = ( /obj/machinery/computer/ship/sensors{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "ak" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/structure/bed/chair/comfy/captain, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "al" = ( /obj/machinery/computer/ship/engines{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "am" = ( /obj/item/folder/blue, /obj/item/form_printer, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/drinks/glass2/coffeecup, /obj/item/newspaper, /obj/effect/spider/stickyweb, @@ -65,25 +65,25 @@ /obj/item/paper{ info = "I used up all of my energy. I am hopelessly lost. This ship has become my grave. They did it. The intelligence agency that no one ever talks about. Sol Gov wanted their revenge, and they got it. They easily could have killed me on my ship, or tortured me, but they knew that floating here through space would be the worst possible torture. " }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "an" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/giant_spider/hunter, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "ao" = ( /obj/effect/decal/cleanable/dirt, /obj/random/maintenance/clean, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "ap" = ( /obj/structure/filing_cabinet/chestdrawer, /obj/effect/decal/cleanable/cobweb2, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "aq" = ( /obj/machinery/light{ @@ -95,7 +95,7 @@ /obj/item/gun/energy/captain, /obj/effect/spider/stickyweb, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "ar" = ( /obj/machinery/alarm{ @@ -103,7 +103,7 @@ pixel_y = -22 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "as" = ( /obj/structure/cable{ @@ -112,7 +112,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "at" = ( /obj/structure/cable{ @@ -123,7 +123,7 @@ pixel_y = -24 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "au" = ( /obj/machinery/light{ @@ -132,7 +132,7 @@ }, /obj/structure/reagent_dispensers/water_cooler, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/bridge) "av" = ( /obj/structure/mirror, @@ -145,7 +145,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/airlock, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/bridge) "ax" = ( /turf/wall/walnut, @@ -189,14 +189,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aF" = ( /obj/structure/bed/chair/wood/wings{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aG" = ( /obj/machinery/light{ @@ -209,14 +209,14 @@ /obj/item/paper{ info = "Tonight I woke up to a sound I hoped to have never heard, a small explosion. I rushed to the bridge to diagnose the damage and saw the worst possible news. My solar tracker is gone, and so is the fucking computer. No way to override the settings now, because the assholes EMPd the computer. No way to charge my SMES reliably, and no way to heat the fuel. I am stuck in the water! Unheated, this gas will not be enough to get absolutely anywhere near a port. This is bad. Real bad. The current charge on SMES is 20 percent, so I'll just try and orient the ship to hit the current star at maximum efficiency so we will charge at 100, and maybe make it to the next solar system. The next port is in the orbit of a Gas giant named Duma. Maybe I can dock there and repair my array. I freaking knew I needed to get a generator. I spent all of the money the Terrans gave me, and this piece of shit is all I could get. " }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aH" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aI" = ( /obj/item/towel/random, @@ -240,23 +240,23 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aL" = ( /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aM" = ( /obj/structure/table/marble, /obj/item/pizzabox/vegetable, /obj/item/chems/glass/rag, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aN" = ( /obj/effect/decal/cleanable/dirt, /obj/random/junk, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aO" = ( /obj/machinery/vending/wallmed1, @@ -264,25 +264,25 @@ /area/yacht/living) "aP" = ( /obj/machinery/door/airlock, -/turf/floor/wood, +/turf/floor/laminate, /area/yacht/living) "aQ" = ( /obj/structure/table/marble, /obj/item/deck/cards, /obj/item/dice, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aR" = ( /obj/effect/decal/cleanable/blood/gibs/robot/up, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aS" = ( /obj/structure/table/marble, /obj/machinery/microwave, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aT" = ( /obj/effect/decal/cleanable/cobweb, @@ -296,7 +296,7 @@ /obj/effect/decal/cleanable/blood/drip, /obj/effect/spider/stickyweb, /mob/living/simple_animal/hostile/giant_spider/hunter, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/living) "aV" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -307,7 +307,7 @@ }, /obj/effect/decal/cleanable/blood/drip, /obj/effect/spider/stickyweb, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/living) "aW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -319,7 +319,7 @@ /obj/structure/emergency_dispenser/north, /obj/effect/decal/cleanable/blood/drip, /obj/machinery/door/airlock, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aX" = ( /obj/structure/cable{ @@ -328,7 +328,7 @@ /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aY" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -338,7 +338,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "aZ" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -352,7 +352,7 @@ /obj/item/chems/drinks/pitcher, /obj/effect/decal/cleanable/dirt, /obj/random/drinkbottle, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "ba" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -361,7 +361,7 @@ /obj/effect/decal/cleanable/blood/gibs/robot/down, /obj/effect/decal/cleanable/blood/gibs/robot/up, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bb" = ( /obj/machinery/light{ @@ -370,7 +370,7 @@ }, /obj/machinery/vending/dinnerware, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bc" = ( /obj/structure/bed/padded, @@ -380,17 +380,17 @@ /area/yacht/living) "bd" = ( /obj/effect/spider/stickyweb, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/living) "bf" = ( /obj/effect/decal/cleanable/blood/gibs/robot/limb, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bg" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bh" = ( /obj/structure/cable{ @@ -400,7 +400,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/spider/stickyweb, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bk" = ( /obj/effect/wallframe_spawn/reinforced, @@ -431,7 +431,7 @@ /obj/item/paper{ info = "I have accepted my fate. I will go into EVA with one of the cyanide pills in my mouth, and I will float off. I want a military funeral, and I will arrange it myself. Good bye all. I have earned and sealed my fate. " }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bq" = ( /obj/structure/bookcase, @@ -455,7 +455,7 @@ icon_state = "tube1" }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bu" = ( /turf/floor/carpet/purple, @@ -493,7 +493,7 @@ }, /obj/effect/spider/stickyweb, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -504,7 +504,7 @@ }, /obj/effect/spider/stickyweb, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -514,7 +514,7 @@ dir = 4 }, /obj/machinery/door/airlock, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -540,7 +540,7 @@ }, /obj/item/bible, /obj/item/pen/blue, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper{ info = "Let me introduce myself. My name is Commander Archibald McKinley, although the Fleet fucks think that I do not deserve the title. Well, fuck them. They accused me of facilitating a destruction of the ship I was CO of. A small missile cruiser, with zero to fucking none point defenses was attacked, and they first accuse me of escaping before any of my crew. What kind of person wouldn't expect someone to escape when their ship is on fire? It's lunacy. But it only got worse. Then they said that I helped the Terrans take the ship. Well fuck them, they are wrong. That's non sense. I have no connection to the Terrans. They said that I got a large sum of money from them in order to betray my ship's position, which is once again total nonsense. I've got about 20 years of life left here, and I know that I will be safe with my ship here. I need to resupply once every 5 years, given how much food and fuel I have, and I've got enough range to go to pretty much any known part of the galaxy, in complete silence, as we are totally solar powered. I wish I could afford ion thrusters to not have to rely on gas for propulsion, but, our gas heaters should provide us with enough pressure to get anywhere in relative decent speed. Also, I got a robot butler who cooks delicious food for me! No more crappy lance corporal food, eh" }, @@ -567,13 +567,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/blood/gibs/robot/limb, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bK" = ( /obj/effect/decal/cleanable/blood/gibs/robot/down, /obj/effect/decal/cleanable/dirt, /obj/machinery/floodlight, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bL" = ( /obj/machinery/light/small, @@ -596,7 +596,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/blood/gibs/robot/down, /obj/machinery/door/airlock, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bP" = ( /turf/wall/walnut, @@ -652,17 +652,17 @@ /obj/item/chems/spray/extinguisher, /obj/machinery/portable_atmospherics/hydroponics, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bX" = ( /obj/machinery/vending/hydronutrients, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bY" = ( /obj/machinery/seed_storage/garden, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "bZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -692,7 +692,7 @@ "cd" = ( /obj/structure/closet/crate/hydroponics, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "ce" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -729,7 +729,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cj" = ( /obj/structure/cable{ @@ -740,19 +740,19 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "ck" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cl" = ( /obj/structure/janitorialcart, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cm" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -858,22 +858,22 @@ }, /obj/machinery/portable_atmospherics/hydroponics, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cE" = ( /obj/effect/spider/stickyweb, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cF" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -922,7 +922,7 @@ }, /obj/machinery/portable_atmospherics/hydroponics, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cR" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -932,13 +932,13 @@ /obj/item/tool/spade, /obj/item/chems/glass/bucket, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cS" = ( /obj/machinery/light, /obj/structure/reagent_dispensers/beerkeg, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -951,7 +951,7 @@ /obj/structure/closet/secure_closet/freezer/kitchen, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "cY" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -976,12 +976,12 @@ "dc" = ( /obj/structure/closet/wardrobe/pjs, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "dd" = ( /obj/structure/closet/wardrobe/suit, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) "df" = ( /obj/structure/closet/secure_closet/bar, @@ -1168,13 +1168,13 @@ /obj/item/clothing/suit/det_trench/grey, /obj/item/clothing/gloves/ring/cti, /obj/item/clothing/costume/oldman, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/effect/spider/stickyweb, /obj/random/cash, /obj/random/cash, /obj/random/cash, /obj/random/projectile, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/yacht/living) "fb" = ( /obj/machinery/button/access/exterior{ @@ -1388,7 +1388,7 @@ /obj/structure/closet/secure_closet/freezer/meat, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/yacht/living) (1,1,1) = {" diff --git a/maps/exodus/exodus-1.dmm b/maps/exodus/exodus-1.dmm index c76876085bad..baed72f3aaea 100644 --- a/maps/exodus/exodus-1.dmm +++ b/maps/exodus/exodus-1.dmm @@ -430,7 +430,7 @@ /obj/item/deck/cards{ pixel_y = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/sub/port) "bn" = ( /obj/effect/floor_decal/industrial/hatch/yellow, @@ -441,7 +441,7 @@ "bo" = ( /obj/structure/table/gamblingtable, /obj/random/coin, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/sub/port) "bp" = ( /obj/random/obstruction, @@ -464,7 +464,7 @@ /obj/structure/bed/chair/wood/wings{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/sub/port) "bt" = ( /obj/structure/bed/chair/wood/wings{ diff --git a/maps/exodus/exodus-2.dmm b/maps/exodus/exodus-2.dmm index 1b0190807cf8..ae068ece7af6 100644 --- a/maps/exodus/exodus-2.dmm +++ b/maps/exodus/exodus-2.dmm @@ -60,7 +60,7 @@ /turf/floor/tiled/techfloor/grid, /area/exodus/security/detectives_office) "aae" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/drinks/flask/barflask{ pixel_x = -4; pixel_y = 8 @@ -1539,7 +1539,7 @@ /turf/floor/tiled/steel_grid, /area/exodus/security/meeting) "adu" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flame/candle{ pixel_x = -5; pixel_y = 5 @@ -3533,7 +3533,7 @@ /turf/floor/tiled/steel_grid, /area/exodus/security/main) "ahH" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/megaphone, /obj/item/radio/off, /turf/floor/tiled/dark, @@ -3587,7 +3587,7 @@ /turf/floor/carpet, /area/exodus/crew_quarters/heads/hos) "ahO" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/keycard_auth{ dir = 8 }, @@ -3790,7 +3790,7 @@ /turf/floor/carpet, /area/exodus/crew_quarters/heads/hos) "air" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/cable/green{ icon_state = "1-4" }, @@ -3805,7 +3805,7 @@ name = "east bump"; pixel_x = 24 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/recharger{ pixel_y = 4 }, @@ -3985,7 +3985,7 @@ /turf/floor/tiled/steel_grid, /area/exodus/security/main) "aiP" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/taperecorder, /turf/floor/tiled/dark, /area/exodus/crew_quarters/heads/hos) @@ -3993,7 +3993,7 @@ /turf/floor/carpet, /area/exodus/crew_quarters/heads/hos) "aiR" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/cable/green{ icon_state = "4-8" }, @@ -4004,7 +4004,7 @@ dir = 8; pixel_x = 24 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = -3; pixel_y = 7 @@ -4214,7 +4214,7 @@ pixel_y = -32; dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "ajm" = ( /obj/structure/window/reinforced{ @@ -4507,7 +4507,7 @@ /turf/floor/tiled/dark, /area/exodus/crew_quarters/heads/hos) "ajL" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/newscaster{ pixel_x = 28; pixel_y = 1 @@ -4951,7 +4951,7 @@ /turf/floor/lino, /area/exodus/security/detectives_office) "akD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /obj/item/secure_storage/safe{ pixel_x = 6; @@ -4986,7 +4986,7 @@ /obj/machinery/alarm{ pixel_y = 22 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flash, /obj/item/clothing/glasses/sunglasses, /obj/item/chems/spray/pepper, @@ -5132,7 +5132,7 @@ /turf/floor/carpet, /area/exodus/security/detectives_office) "akU" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/ashtray/plastic, /obj/item/box/fancy/cigarettes/dromedaryco, /obj/item/clothing/gloves/forensic, @@ -5495,7 +5495,7 @@ /obj/structure/cable/green{ icon_state = "4-8" }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/button/alternate/door{ id_tag = "detdoor"; name = "Office Door" @@ -6350,7 +6350,7 @@ /obj/item/secure_storage/safe{ pixel_x = -23 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /turf/floor/lino, /area/exodus/security/detectives_office) @@ -6362,7 +6362,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/button/alternate/door{ id_tag = "detdoor"; name = "Office Door" @@ -6619,7 +6619,7 @@ dir = 8; pixel_x = 22 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/photo_album{ pixel_y = -10 }, @@ -6732,7 +6732,7 @@ /turf/floor/carpet, /area/exodus/security/detectives_office) "aof" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flash, /obj/item/chems/spray/pepper, /obj/item/clothing/glasses/sunglasses, @@ -7138,7 +7138,7 @@ /obj/machinery/light/small{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "apb" = ( /obj/structure/cable{ @@ -7425,11 +7425,11 @@ /turf/floor/tiled/steel_grid, /area/exodus/security/lobby) "apF" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "apG" = ( /obj/structure/bed/chair/wood/wings, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "apH" = ( /obj/machinery/hologram/holopad, @@ -7846,14 +7846,14 @@ /obj/structure/table/gamblingtable, /obj/item/board, /obj/item/box/checkers/chess/red, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "aqu" = ( /obj/structure/table/gamblingtable, /obj/item/deck/cards{ pixel_y = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "aqv" = ( /obj/structure/bed/chair{ @@ -7916,7 +7916,7 @@ /area/exodus/maintenance/dormitory) "aqC" = ( /obj/item/stool/padded, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "aqD" = ( /turf/wall/r_wall/prepainted, @@ -8041,7 +8041,7 @@ "aqP" = ( /obj/structure/table, /obj/item/dice, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "aqQ" = ( /obj/machinery/light/small{ @@ -8411,7 +8411,7 @@ /obj/machinery/light/small{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "arx" = ( /turf/wall/prepainted, @@ -8472,7 +8472,7 @@ "arD" = ( /obj/structure/table/gamblingtable, /obj/item/box/checkers/chess, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "arE" = ( /turf/wall/prepainted, @@ -8543,7 +8543,7 @@ /obj/machinery/vending/cigarette{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "arO" = ( /obj/machinery/door/blast/regular/open{ @@ -8671,7 +8671,7 @@ /obj/structure/bed/chair/wood/wings{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "asb" = ( /obj/structure/bed/chair{ @@ -9745,13 +9745,13 @@ /obj/item/bedsheet/mime, /obj/machinery/atmospherics/unary/vent_pump/on, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "auA" = ( /obj/structure/bed/padded, /obj/item/bedsheet/mime, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "auB" = ( /obj/machinery/alarm{ @@ -10026,7 +10026,7 @@ pixel_x = -22 }, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "avh" = ( /obj/structure/cable/green{ @@ -10211,7 +10211,7 @@ dir = 4 }, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "avC" = ( /obj/effect/floor_decal/corner/grey{ @@ -10554,7 +10554,7 @@ /turf/floor/plating, /area/exodus/maintenance/library) "awj" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "awk" = ( /obj/structure/bed/chair{ @@ -10748,7 +10748,7 @@ dir = 5 }, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "awG" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{ @@ -10922,7 +10922,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "awZ" = ( /obj/structure/cable{ @@ -11016,7 +11016,7 @@ dir = 8 }, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "axj" = ( /obj/machinery/light_switch{ @@ -11026,7 +11026,7 @@ /obj/structure/bed/padded, /obj/item/bedsheet/mime, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "axk" = ( /obj/effect/wallframe_spawn/reinforced, @@ -11328,7 +11328,7 @@ dir = 1 }, /obj/structure/closet/secure_closet/personal, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "axT" = ( /turf/floor/tiled/dark, @@ -11339,7 +11339,7 @@ pixel_x = 24 }, /obj/structure/closet/secure_closet/personal, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "axV" = ( /obj/structure/cable/green{ @@ -11368,7 +11368,7 @@ /turf/floor/plating, /area/exodus/maintenance/security_port) "axY" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/clothing/glasses/threedglasses, /turf/floor/tiled/dark, /area/exodus/crew_quarters/sleep) @@ -11381,7 +11381,7 @@ /turf/floor/tiled/dark, /area/exodus/crew_quarters/sleep) "aya" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/coin, /turf/floor/tiled/dark, /area/exodus/crew_quarters/sleep) @@ -11391,7 +11391,7 @@ /area/exodus/crew_quarters/fitness) "ayc" = ( /obj/machinery/hologram/holopad, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "ayd" = ( /obj/effect/floor_decal/industrial/warning{ @@ -11797,7 +11797,7 @@ /turf/floor/tiled/dark, /area/exodus/crew_quarters/sleep) "ayQ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paicard, /obj/structure/cable/green{ icon_state = "4-8" @@ -11810,7 +11810,7 @@ /turf/floor/tiled/dark, /area/exodus/crew_quarters/sleep) "ayR" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/cable/green{ icon_state = "4-8" }, @@ -12337,7 +12337,7 @@ dir = 8 }, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "azW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -12388,7 +12388,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "aAc" = ( /obj/structure/disposalpipe/segment{ @@ -12440,7 +12440,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "aAi" = ( /obj/structure/cable{ @@ -13345,7 +13345,7 @@ pixel_y = 10 }, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "aCl" = ( /obj/machinery/atmospherics/unary/vent_pump/on, @@ -13679,7 +13679,7 @@ dir = 1 }, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "aCZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -13764,11 +13764,11 @@ /turf/floor/tiled/dark, /area/shuttle/arrival/station) "aDi" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/fabricator/book, /obj/item/stack/material/panel/mapped/plastic/ten, /obj/item/stack/material/plank/mapped/wood/ten, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aDj" = ( /obj/effect/wallframe_spawn/reinforced/titanium, @@ -13799,7 +13799,7 @@ /area/exodus/engineering/sublevel_access) "aDm" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aDn" = ( /obj/effect/floor_decal/industrial/warning{ @@ -13891,13 +13891,13 @@ /obj/machinery/status_display{ pixel_y = 32 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = 1; pixel_y = 9 }, /obj/item/stack/package_wrap, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aDx" = ( /obj/structure/reagent_dispensers/peppertank{ @@ -14106,7 +14106,7 @@ /obj/structure/cable/green{ icon_state = "1-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aDW" = ( /obj/abstract/landmark{ @@ -14224,14 +14224,14 @@ /turf/floor/tiled/dark/monotile, /area/exodus/gateway) "aEh" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/reagentgrinder, /obj/item/chems/drinks/shaker, /obj/item/stack/package_wrap, /obj/machinery/camera/network/civilian_east{ c_tag = "Bar Backroom" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aEi" = ( /obj/effect/wallframe_spawn/reinforced, @@ -14348,10 +14348,10 @@ /turf/floor/plating, /area/exodus/maintenance/bar) "aEv" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/gun/projectile/shotgun/doublebarrel, /obj/machinery/atmospherics/unary/vent_pump/on, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aEw" = ( /obj/machinery/door/airlock{ @@ -14463,13 +14463,13 @@ /turf/floor/tiled/techfloor/grid, /area/exodus/maintenance/auxsolarport) "aEF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/item/stack/tape_roll/duct_tape, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aEG" = ( /obj/effect/wallframe_spawn/reinforced, @@ -14562,7 +14562,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aEQ" = ( /obj/structure/disposalpipe/segment{ @@ -14572,7 +14572,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aER" = ( /obj/structure/disposalpipe/segment{ @@ -14587,7 +14587,7 @@ /obj/structure/cable/green{ icon_state = "2-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aES" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -15002,7 +15002,7 @@ pixel_x = 24 }, /obj/structure/cable/green, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aFH" = ( /obj/machinery/network/requests_console{ @@ -15390,11 +15390,11 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/hologram/holopad, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aGp" = ( /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aGq" = ( /obj/machinery/light{ @@ -15576,13 +15576,13 @@ /turf/floor/plating, /area/exodus/maintenance/library) "aGM" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/dice/d20, /obj/item/dice, /obj/item/radio/intercom{ pixel_y = 20 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aGN" = ( /obj/machinery/hologram/holopad, @@ -16039,7 +16039,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aHI" = ( /obj/machinery/alarm{ @@ -16362,7 +16362,7 @@ "aIf" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aIg" = ( /turf/wall/prepainted, @@ -16646,7 +16646,7 @@ /turf/floor/tiled/techfloor/grid, /area/exodus/hallway/secondary/entry/starboard) "aIN" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/recharger, /turf/floor/tiled/dark, @@ -16805,7 +16805,7 @@ /turf/wall/r_wall/prepainted, /area/exodus/hallway/primary/central_two) "aJj" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = -2; pixel_y = 5 @@ -16819,7 +16819,7 @@ dir = 4; icon_state = "pipe-c" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aJl" = ( /turf/wall/prepainted, @@ -16866,7 +16866,7 @@ pixel_x = -12; pixel_y = 2 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar/cabin) "aJt" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -17019,12 +17019,12 @@ /area/exodus/hallway/secondary/entry/starboard) "aJI" = ( /obj/structure/filing_cabinet, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aJJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aJK" = ( /obj/machinery/light{ @@ -17054,14 +17054,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aJN" = ( /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aJO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -17161,7 +17161,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aJX" = ( /obj/structure/reagent_dispensers/watertank, @@ -17211,7 +17211,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aKc" = ( /obj/machinery/power/apc{ @@ -17658,7 +17658,7 @@ /turf/wall/prepainted, /area/exodus/crew_quarters/kitchen) "aLa" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp{ pixel_y = 10 }, @@ -17669,7 +17669,7 @@ /turf/floor/lino, /area/exodus/chapel/office) "aLb" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/nullrod, /obj/item/eftpos{ eftpos_name = "Chapel EFTPOS scanner" @@ -17677,7 +17677,7 @@ /turf/floor/lino, /area/exodus/chapel/office) "aLc" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pen, /obj/item/chems/drinks/bottle/holywater, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -17739,26 +17739,26 @@ /obj/machinery/camera/network/civilian_east{ c_tag = "Library North" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aLj" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aLk" = ( /obj/structure/table, /turf/floor/tiled/dark, /area/exodus/chapel/main) "aLl" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/folder/yellow, /obj/item/pen, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aLm" = ( /obj/structure/bed/chair{ @@ -17774,7 +17774,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aLq" = ( /obj/machinery/light{ @@ -18147,7 +18147,7 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aMh" = ( /obj/effect/wallframe_spawn/reinforced, @@ -18166,7 +18166,7 @@ pixel_y = 28 }, /obj/machinery/smartfridge/drinks, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aMk" = ( /obj/machinery/light{ @@ -18221,7 +18221,7 @@ /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aMr" = ( /obj/structure/closet/secure_closet/freezer/meat, @@ -18458,7 +18458,7 @@ dir = 4; pixel_x = -22 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aMQ" = ( /obj/machinery/light{ @@ -18471,9 +18471,9 @@ /turf/floor/tiled/dark, /area/exodus/chapel/main) "aMR" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/recharger, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aMS" = ( /obj/structure/closet/crate, @@ -18498,7 +18498,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aMV" = ( /turf/wall/titanium, @@ -18541,7 +18541,7 @@ /turf/floor/carpet, /area/exodus/crew_quarters/bar) "aNa" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 @@ -18633,7 +18633,7 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aNk" = ( /turf/floor/tiled/steel_grid, @@ -19127,10 +19127,10 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aOg" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/food/junk/chips, /obj/random/single{ name = "randomly spawned cola"; @@ -19445,13 +19445,13 @@ /turf/floor/tiled/steel_grid, /area/exodus/hallway/secondary/entry/port) "aOL" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/disposalpipe/segment, /obj/item/deck/cards, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aOM" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/ashtray/plastic{ pixel_x = -1; pixel_y = 1 @@ -20127,7 +20127,7 @@ /turf/floor/plating, /area/exodus/maintenance/arrivals) "aQj" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/cigarettes{ pixel_y = 2 }, @@ -20220,8 +20220,8 @@ /area/exodus/security/prison/restroom) "aQw" = ( /obj/machinery/photocopier, -/obj/structure/table/woodentable, -/turf/floor/wood/walnut, +/obj/structure/table/laminate, +/turf/floor/laminate/walnut, /area/exodus/library) "aQx" = ( /obj/structure/hygiene/sink{ @@ -20408,7 +20408,7 @@ /obj/machinery/door/window/westright{ name = "Library Desk Door" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aQU" = ( /obj/effect/floor_decal/corner/purple/full, @@ -20536,7 +20536,7 @@ /turf/floor/tiled/steel_grid, /area/exodus/library) "aRm" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = -3; pixel_y = 7 @@ -20657,7 +20657,7 @@ /turf/floor/carpet, /area/exodus/crew_quarters/bar) "aRx" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/single{ name = "randomly spawned deck of cards"; spawn_object = /obj/item/deck/cards @@ -20771,7 +20771,7 @@ /obj/structure/bookcase{ name = "bookcase (Religious)" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aRL" = ( /turf/floor/carpet, @@ -20925,7 +20925,7 @@ /obj/machinery/camera/network/civilian_east{ c_tag = "Bar East" }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin, /obj/item/pen/blue{ pixel_x = -3; @@ -20938,7 +20938,7 @@ /obj/structure/noticeboard{ default_pixel_y = 27 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aSg" = ( /obj/structure/disposalpipe/segment{ @@ -21161,7 +21161,7 @@ /area/exodus/quartermaster/miningdock) "aSD" = ( /obj/machinery/computer/modular/preset/cardslot/command, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "aSE" = ( /obj/machinery/button/access/interior{ @@ -21290,28 +21290,28 @@ /obj/structure/bed/chair/wood/walnut{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aSQ" = ( /obj/structure/cable/green{ icon_state = "1-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aSR" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aSS" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aST" = ( /obj/machinery/newscaster{ pixel_y = 32 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aSU" = ( /obj/structure/cable/green{ @@ -21439,13 +21439,13 @@ /obj/machinery/light/small{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aTi" = ( /obj/machinery/light/small{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aTj" = ( /obj/machinery/door/airlock/external/bolted{ @@ -21461,7 +21461,7 @@ /obj/structure/bed/chair/wood/walnut{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aTl" = ( /obj/machinery/conveyor{ @@ -21792,7 +21792,7 @@ /area/exodus/library) "aTX" = ( /obj/item/stool/bar/padded, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aTY" = ( /obj/machinery/door/blast/regular/open{ @@ -21847,7 +21847,7 @@ /obj/machinery/computer/modular/telescreen/preset/generic{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUg" = ( /obj/effect/wallframe_spawn/reinforced, @@ -21904,14 +21904,14 @@ /obj/machinery/light{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/table/woodentable, -/turf/floor/wood/walnut, +/obj/structure/table/laminate, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUp" = ( /turf/wall/r_wall/prepainted, @@ -21968,7 +21968,7 @@ dir = 4 }, /obj/item/stool/bar/padded, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUw" = ( /obj/structure/closet/secure_closet/freezer/kitchen, @@ -21981,7 +21981,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUy" = ( /obj/effect/floor_decal/corner/brown/diagonal{ @@ -22024,25 +22024,25 @@ /obj/machinery/light{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUE" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUG" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUH" = ( /obj/machinery/hologram/holopad, @@ -22052,13 +22052,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUI" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUJ" = ( /obj/effect/floor_decal/corner/brown/diagonal{ @@ -22166,7 +22166,7 @@ pixel_x = -25; dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aUV" = ( /obj/effect/floor_decal/industrial/hatch/yellow, @@ -22223,11 +22223,11 @@ /obj/structure/bookcase{ name = "bookcase (Fiction)" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aVd" = ( /obj/structure/bookcase/skill_books/random, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aVf" = ( /obj/machinery/embedded_controller/radio/airlock/docking_port{ @@ -22265,7 +22265,7 @@ /turf/floor/plating, /area/exodus/maintenance/bar) "aVi" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/carpet, /area/exodus/chapel/main) "aVj" = ( @@ -22397,7 +22397,7 @@ dir = 8; pixel_x = 22 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aVy" = ( /obj/abstract/landmark{ @@ -22556,7 +22556,7 @@ /area/exodus/bridge) "aVS" = ( /obj/structure/bed/chair/wood/walnut, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aVT" = ( /obj/structure/closet/emcloset, @@ -22582,12 +22582,12 @@ icon_state = "1-4" }, /obj/structure/bed/chair/wood/walnut, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aVX" = ( /obj/structure/bed/chair/wood/walnut, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aVY" = ( /obj/structure/cable/green{ @@ -22621,7 +22621,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/bed/chair/wood/walnut, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aWb" = ( /obj/machinery/chem_master/condimaster{ @@ -22648,19 +22648,19 @@ icon_state = "4-8" }, /obj/item/stool/bar/padded, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aWe" = ( /obj/item/chems/condiment/small/peppermill{ pixel_x = 2; pixel_y = 6 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/condiment/small/saltshaker{ pixel_x = -2; pixel_y = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aWf" = ( /obj/structure/cable/green{ @@ -22696,8 +22696,8 @@ /obj/structure/cable/green{ icon_state = "4-8" }, -/obj/structure/table/woodentable, -/turf/floor/wood/walnut, +/obj/structure/table/laminate, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aWi" = ( /obj/structure/cable/green{ @@ -22735,13 +22735,13 @@ /area/exodus/crew_quarters/kitchen) "aWl" = ( /obj/structure/bed/chair/comfy/black, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aWm" = ( /obj/structure/cable/green{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aWn" = ( /obj/structure/cable/green{ @@ -22829,14 +22829,14 @@ c_tag = "Library Central"; dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aWz" = ( /obj/abstract/landmark/start{ name = "Librarian" }, /obj/structure/bed/chair/office/dark, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aWA" = ( /obj/effect/floor_decal/industrial/warning{ @@ -22887,17 +22887,17 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aWH" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/light/small{ dir = 4 }, /obj/machinery/light_switch{ pixel_y = 28 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aWI" = ( /obj/machinery/door/firedoor, @@ -23262,10 +23262,10 @@ /turf/floor/tiled/techfloor/grid, /area/exodus/research/mixing) "aXz" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/utensil/fork, /obj/item/utensil/fork, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aXA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -23275,15 +23275,15 @@ /turf/floor/tiled/white, /area/exodus/crew_quarters/kitchen) "aXB" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/board, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aXD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/checkers/chess/red, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aXE" = ( /obj/structure/cable/green{ @@ -23304,9 +23304,9 @@ /area/exodus/crew_quarters/kitchen) "aXF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aXG" = ( /obj/machinery/status_display{ @@ -23315,7 +23315,7 @@ /obj/machinery/camera/network/command{ c_tag = "Bridge Conference Room" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "aXH" = ( /obj/effect/floor_decal/corner/brown/diagonal{ @@ -23393,7 +23393,7 @@ "aXP" = ( /obj/structure/table/gamblingtable, /obj/item/box/checkers, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/maintenance/dormitory) "aXQ" = ( /obj/effect/floor_decal/corner/blue/three_quarters{ @@ -23556,7 +23556,7 @@ /obj/structure/bookcase{ name = "bookcase (Adult)" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aYk" = ( /obj/effect/floor_decal/industrial/warning{ @@ -23565,12 +23565,12 @@ /turf/floor/plating, /area/exodus/hallway/secondary/entry/port) "aYl" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aYm" = ( /obj/machinery/door/airlock/external/bolted{ @@ -23625,7 +23625,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aYu" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -23680,7 +23680,7 @@ c_tag = "Bar West"; dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aYz" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -23749,9 +23749,9 @@ /turf/floor/tiled/steel_grid, /area/exodus/crew_quarters/locker) "aYF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/checkers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aYG" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, @@ -24120,8 +24120,8 @@ /turf/floor/tiled/white, /area/exodus/crew_quarters/kitchen) "aZm" = ( -/obj/structure/table/woodentable, -/turf/floor/wood/walnut, +/obj/structure/table/laminate, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aZn" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -24147,10 +24147,10 @@ /area/exodus/crew_quarters/kitchen) "aZp" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/disposalpipe/segment, /obj/item/camera, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aZq" = ( /obj/effect/wallframe_spawn/reinforced, @@ -24167,7 +24167,7 @@ /obj/structure/bed/chair/wood/walnut{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aZs" = ( /obj/machinery/alarm{ @@ -24242,7 +24242,7 @@ /obj/structure/bed/chair/wood/walnut{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aZB" = ( /obj/machinery/power/apc{ @@ -24263,9 +24263,9 @@ /turf/floor/carpet, /area/exodus/library) "aZD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aZE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -24275,16 +24275,16 @@ /obj/structure/bed/chair/wood/walnut{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aZF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/camera_film, /obj/item/camera_film, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aZG" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pen/red{ pixel_x = 2; pixel_y = 6 @@ -24293,19 +24293,19 @@ pixel_x = 5; pixel_y = 5 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aZH" = ( -/obj/structure/table/woodentable, -/turf/floor/wood/walnut, +/obj/structure/table/laminate, +/turf/floor/laminate/walnut, /area/exodus/library) "aZI" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = 1; pixel_y = 9 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "aZK" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -24315,7 +24315,7 @@ /obj/structure/bed/chair/wood/walnut{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "aZL" = ( /obj/structure/bed/chair{ @@ -24953,7 +24953,7 @@ /turf/floor/tiled/steel_grid, /area/exodus/crew_quarters/locker) "bbd" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/condiment/small/peppermill{ pixel_x = 2; pixel_y = 6 @@ -24962,7 +24962,7 @@ pixel_x = -2; pixel_y = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bbe" = ( /obj/structure/cable/green{ @@ -24982,14 +24982,14 @@ /turf/floor/tiled/techfloor/grid, /area/exodus/hallway/primary/starboard) "bbg" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/utensil/fork, /obj/item/utensil/fork, /obj/item/utensil/fork, /obj/item/utensil/fork, /obj/item/utensil/fork, /obj/item/utensil/fork, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bbh" = ( /obj/structure/table/marble, @@ -25012,7 +25012,7 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bbk" = ( /obj/structure/cable/green{ @@ -25054,9 +25054,9 @@ /turf/floor/tiled/steel_grid, /area/exodus/hallway/primary/starboard) "bbo" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flame/candle, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bbp" = ( /obj/machinery/atmospherics/unary/vent_pump/on, @@ -25091,7 +25091,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "bbt" = ( /obj/item/radio/intercom{ @@ -25187,7 +25187,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "bbF" = ( /obj/structure/table, @@ -25508,7 +25508,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "bcn" = ( /obj/machinery/computer/guestpass{ @@ -25680,7 +25680,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bcH" = ( /obj/structure/disposalpipe/segment, @@ -25739,14 +25739,14 @@ "bcM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bcN" = ( /obj/machinery/light, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bcO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -25754,7 +25754,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bcP" = ( /obj/structure/flora/bush/brflowers, @@ -26365,13 +26365,13 @@ /area/exodus/chapel/main) "bef" = ( /obj/machinery/computer/arcade, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "beg" = ( /obj/machinery/vending/cola{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "beh" = ( /obj/effect/floor_decal/corner/yellow{ @@ -26392,7 +26392,7 @@ /obj/structure/bed/chair/wood/walnut{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bej" = ( /obj/machinery/firealarm{ @@ -26400,7 +26400,7 @@ pixel_y = -24 }, /obj/machinery/light, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bek" = ( /obj/effect/floor_decal/chapel, @@ -26512,7 +26512,7 @@ /obj/machinery/vending/coffee{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "bez" = ( /obj/item/box, @@ -26531,9 +26531,9 @@ /turf/floor/tiled/steel_grid, /area/exodus/quartermaster/office) "beA" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pen, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "beB" = ( /obj/machinery/atmospherics/unary/tank/air{ @@ -26552,7 +26552,7 @@ /turf/floor/carpet, /area/exodus/crew_quarters/captain) "beD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 @@ -26561,7 +26561,7 @@ dir = 1; pixel_y = -22 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "beE" = ( /obj/structure/bed/chair/comfy/brown{ @@ -26754,7 +26754,7 @@ /obj/structure/flora/pottedplant{ icon_state = "plant-22" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bfa" = ( /obj/structure/cable/green{ @@ -26896,7 +26896,7 @@ /area/exodus/quartermaster/office) "bfn" = ( /obj/machinery/photocopier, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bfo" = ( /obj/machinery/door/airlock/command{ @@ -26914,7 +26914,7 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bfq" = ( /obj/machinery/door/firedoor, @@ -26934,7 +26934,7 @@ /obj/structure/cable/green{ icon_state = "0-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bfs" = ( /obj/machinery/light_switch{ @@ -26943,7 +26943,7 @@ /obj/structure/cable/green{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bft" = ( /obj/structure/disposalpipe/segment{ @@ -26958,14 +26958,14 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bfu" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bfv" = ( /turf/floor/bluegrid, @@ -26996,7 +26996,7 @@ c_tag = "Library South"; dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "bfz" = ( /obj/machinery/power/terminal{ @@ -27028,7 +27028,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bfD" = ( /obj/structure/disposalpipe/segment{ @@ -27040,13 +27040,13 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bfE" = ( /obj/machinery/light_switch{ pixel_y = 28 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bfF" = ( /obj/machinery/ai_status_display{ @@ -27056,9 +27056,9 @@ /area/exodus/crew_quarters/captain) "bfG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/checkers/chess, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bfH" = ( /obj/machinery/status_display{ @@ -27075,11 +27075,11 @@ /obj/structure/cable/green{ icon_state = "0-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bfJ" = ( /obj/machinery/computer/arcade, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bfK" = ( /obj/item/radio/intercom{ @@ -27416,7 +27416,7 @@ dir = 8 }, /obj/machinery/papershredder, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bgw" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ @@ -27445,7 +27445,7 @@ dir = 8 }, /obj/structure/flora/pottedplant, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bgA" = ( /obj/machinery/navbeacon/CHW, @@ -27545,7 +27545,7 @@ name = "Security Shutters"; pixel_y = 24 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bgN" = ( /obj/structure/disposalpipe/segment{ @@ -27564,7 +27564,7 @@ /turf/floor/plating, /area/exodus/maintenance/locker) "bgO" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bgP" = ( /turf/floor/carpet, @@ -27588,7 +27588,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bgT" = ( /obj/machinery/door/firedoor, @@ -27673,13 +27673,13 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bhc" = ( /obj/structure/cable/green{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bhd" = ( /obj/structure/bed/chair/comfy/black{ @@ -27710,13 +27710,13 @@ /obj/structure/cable/green{ icon_state = "1-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bhh" = ( /obj/structure/flora/pottedplant{ icon_state = "plant-10" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bhi" = ( /obj/machinery/firealarm{ @@ -28096,7 +28096,7 @@ /turf/floor/bluegrid, /area/exodus/turret_protected/ai) "bhU" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/donut, /obj/structure/cable/green{ icon_state = "4-8" @@ -28106,7 +28106,7 @@ "bhV" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/machinery/papershredder, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bhW" = ( /obj/structure/cable{ @@ -28290,20 +28290,20 @@ /obj/item/eftpos{ eftpos_name = "Bridge EFTPOS scanner" }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/cable/green{ icon_state = "4-8" }, /obj/machinery/light{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bip" = ( /obj/structure/cable/green{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "biq" = ( /obj/machinery/light{ @@ -28313,14 +28313,14 @@ /area/exodus/quartermaster/storage) "bir" = ( /obj/item/folder/red, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/cable/green{ icon_state = "4-8" }, /turf/floor/carpet, /area/exodus/bridge/meeting_room) "bis" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/cable/green{ icon_state = "4-8" }, @@ -28346,12 +28346,12 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "biv" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/faxmachine/mapped, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "biw" = ( /obj/structure/window/reinforced{ @@ -28386,15 +28386,15 @@ /area/exodus/bridge) "biA" = ( /obj/machinery/vending/coffee, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "biB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "biC" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "biD" = ( /obj/structure/window/reinforced, @@ -28405,7 +28405,7 @@ /turf/floor/bluegrid, /area/exodus/turret_protected/ai) "biE" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random_multi/single_item/captains_spare_id, /turf/floor/carpet, /area/exodus/crew_quarters/captain) @@ -28425,7 +28425,7 @@ /obj/structure/cable/green{ icon_state = "1-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "biH" = ( /obj/structure/cable{ @@ -29031,12 +29031,12 @@ pixel_y = 7 }, /obj/item/pen, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/carpet, /area/exodus/bridge/meeting_room) "bjJ" = ( /obj/item/folder/blue, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/carpet, /area/exodus/bridge/meeting_room) "bjK" = ( @@ -29056,14 +29056,14 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bjM" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/light{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bjN" = ( /obj/structure/extinguisher_cabinet{ @@ -29134,7 +29134,7 @@ /area/exodus/hallway/primary/starboard) "bjT" = ( /obj/machinery/vending/cigarette, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bjU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -29143,7 +29143,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bjV" = ( /turf/wall/prepainted, @@ -29167,7 +29167,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bjY" = ( /obj/abstract/landmark{ @@ -29532,14 +29532,14 @@ /turf/floor/carpet, /area/exodus/bridge/meeting_room) "bkH" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/recharger{ pixel_y = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bkI" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = -3; pixel_y = 7 @@ -29556,7 +29556,7 @@ dir = 4; pixel_x = -22 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bkJ" = ( /obj/structure/disposalpipe/segment, @@ -29571,7 +29571,7 @@ pixel_x = 29; dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bkK" = ( /obj/machinery/door/window{ @@ -29589,7 +29589,7 @@ dir = 4; pixel_x = -22 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bkM" = ( /obj/machinery/door/window{ @@ -29605,7 +29605,7 @@ /turf/floor/bluegrid, /area/exodus/turret_protected/ai) "bkN" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/recharger{ pixel_y = 4 }, @@ -29622,7 +29622,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bkO" = ( /obj/machinery/teleport/station, @@ -29874,7 +29874,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "blt" = ( /obj/item/radio/intercom{ @@ -29923,7 +29923,7 @@ /area/exodus/maintenance/atmos_control) "bly" = ( /obj/machinery/vending/coffee, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "blz" = ( /obj/structure/window/reinforced{ @@ -29985,7 +29985,7 @@ /turf/floor/tiled/techfloor/grid, /area/exodus/hallway/primary/central_one) "blG" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/folder/blue, /obj/item/stamp/captain{ pixel_x = -4; @@ -29997,7 +29997,7 @@ pixel_x = 4; pixel_y = 3 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "blH" = ( /obj/structure/table{ @@ -30010,19 +30010,19 @@ /turf/floor/tiled/steel_grid, /area/exodus/quartermaster/office) "blI" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "blJ" = ( /obj/machinery/hologram/holopad, /obj/structure/cable/green{ icon_state = "1-2" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "blK" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pinpointer, /obj/item/disk/nuclear, /obj/item/secure_storage/safe{ @@ -30031,7 +30031,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "blL" = ( /obj/machinery/firealarm{ @@ -30488,9 +30488,9 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/donut, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/bridge/meeting_room) "bmF" = ( /obj/machinery/disposal, @@ -30585,7 +30585,7 @@ dir = 8 }, /obj/structure/filing_cabinet, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bmP" = ( /turf/floor/tiled/dark, @@ -30599,17 +30599,17 @@ /obj/machinery/computer/modular/preset/civilian{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "bmR" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/eftpos{ eftpos_name = "Captain EFTPOS scanner" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bmS" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/whip/chainofcommand, /obj/machinery/alarm{ dir = 8; @@ -30618,7 +30618,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/random_multi/single_item/captains_spare_id, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bmT" = ( /obj/structure/disposalpipe/segment, @@ -30743,7 +30743,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bng" = ( /obj/item/book/manual/robotics_cyborgs{ @@ -30923,7 +30923,7 @@ pixel_x = 15; pixel_y = 39 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bnx" = ( /obj/machinery/firealarm{ @@ -31343,7 +31343,7 @@ /obj/abstract/landmark/start{ name = "Captain" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bov" = ( /obj/structure/morgue{ @@ -31402,7 +31402,7 @@ "boC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "boD" = ( /obj/machinery/power/apc{ @@ -31431,10 +31431,10 @@ /area/exodus/research/chargebay) "boF" = ( /obj/machinery/faxmachine/mapped, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "boH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -31956,11 +31956,11 @@ /turf/floor/plating, /area/exodus/storage/emergency) "bpG" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random_multi/single_item/captains_spare_id{ weight = 10 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bpH" = ( /obj/structure/table, @@ -32051,7 +32051,7 @@ pixel_x = 29; dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bpO" = ( /obj/structure/disposaloutlet, @@ -32382,7 +32382,7 @@ /turf/floor/tiled/techfloor/grid, /area/exodus/research/robotics) "bqw" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /turf/floor/carpet, /area/exodus/crew_quarters/captain) @@ -32422,13 +32422,13 @@ dir = 8 }, /obj/random_multi/single_item/captains_spare_id, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bqA" = ( /obj/machinery/keycard_auth{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bqB" = ( /obj/structure/cable{ @@ -32444,13 +32444,13 @@ /area/exodus/maintenance/research_shuttle) "bqC" = ( /obj/machinery/light, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bqD" = ( /obj/structure/cable/green{ icon_state = "1-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bqE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -32865,7 +32865,7 @@ icon_state = "right"; name = "Captain's Desk Door" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "brw" = ( /obj/machinery/conveyor{ @@ -33858,14 +33858,14 @@ dir = 1; pixel_y = -30 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/deck/cards{ pixel_y = 4 }, /obj/machinery/computer/modular/telescreen/preset/generic{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "btB" = ( /obj/machinery/button/blast_door{ @@ -35557,7 +35557,7 @@ /turf/floor/tiled/white, /area/exodus/medical/medbay2) "bwU" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/matches, /obj/item/clothing/mask/smokable/cigarette/cigar, /obj/item/chems/drinks/flask{ @@ -35724,7 +35724,7 @@ /turf/floor/tiled/white, /area/exodus/medical/medbay2) "bxn" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/camera, /obj/item/photo_album{ pixel_y = -10 @@ -39957,7 +39957,7 @@ /area/exodus/maintenance/cargo) "bFM" = ( /obj/machinery/network/relay, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "bFN" = ( /obj/structure/disposalpipe/sortjunction/untagged{ @@ -41047,7 +41047,7 @@ /obj/machinery/computer/modular/preset/cardslot/command{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/captain) "bHK" = ( /obj/structure/extinguisher_cabinet{ @@ -47656,7 +47656,7 @@ /area/exodus/medical/patient_wing) "bUX" = ( /obj/machinery/vending/cigarette, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bUY" = ( /obj/structure/bed/chair{ @@ -47700,9 +47700,9 @@ /turf/floor/tiled/techfloor/grid, /area/exodus/medical/patient_wing) "bVc" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/dice, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bVd" = ( /obj/machinery/door/firedoor, @@ -47734,9 +47734,9 @@ /turf/floor/tiled/white, /area/exodus/research/misc_lab) "bVf" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bVg" = ( /obj/structure/table/reinforced, @@ -47950,7 +47950,7 @@ /turf/floor/plating, /area/exodus/engineering/engine_waste) "bVC" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/book/manual/engineering_guide{ pixel_x = 3; pixel_y = 2 @@ -47959,20 +47959,20 @@ /obj/machinery/light{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bVD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/book/manual/engineering_construction, /obj/item/book/manual/evaguide{ pixel_x = -2; pixel_y = 7 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bVE" = ( /obj/structure/bookcase/manuals/engineering, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bVF" = ( /obj/machinery/hologram/holopad, @@ -48520,7 +48520,7 @@ /turf/floor/tiled/white, /area/exodus/research) "bWO" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin, /obj/item/clipboard, /obj/item/folder/blue{ @@ -48552,7 +48552,7 @@ pixel_x = 29; dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bWS" = ( /obj/machinery/air_sensor{ @@ -48654,7 +48654,7 @@ /obj/machinery/computer/modular/telescreen/preset/generic{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bXd" = ( /obj/machinery/computer/modular/preset/engineering, @@ -49407,7 +49407,7 @@ /turf/floor/reinforced, /area/exodus/research/mixing) "bYx" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/book/manual/supermatter_engine{ pixel_x = -3 }, @@ -49606,7 +49606,7 @@ /turf/floor/carpet, /area/exodus/engineering/break_room) "bYR" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = -3; pixel_y = 7 @@ -49629,7 +49629,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "bYU" = ( /obj/structure/cable/green{ @@ -50243,12 +50243,12 @@ /turf/floor/tiled/steel_grid, /area/exodus/engineering/engine_smes) "caj" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/folder/yellow, /turf/floor/carpet, /area/exodus/engineering/break_room) "cak" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/food/junk/chips, /turf/floor/carpet, /area/exodus/engineering/break_room) @@ -50259,7 +50259,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "cam" = ( /obj/structure/disposalpipe/segment{ @@ -50461,23 +50461,23 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/medical/psych) "caG" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/medical/psych) "caH" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/computer/modular/preset/medical, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/medical/psych) "caI" = ( /turf/wall/prepainted, @@ -51012,7 +51012,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/medical/psych) "cbQ" = ( /obj/machinery/alarm{ @@ -51911,7 +51911,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "cdz" = ( /obj/machinery/firealarm{ @@ -51998,7 +51998,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "cdG" = ( /obj/structure/cable{ @@ -52109,7 +52109,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "cdR" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -52195,7 +52195,7 @@ c_tag = "Engineering Break Room"; dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "cec" = ( /obj/effect/wallframe_spawn/reinforced, @@ -52222,7 +52222,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "cef" = ( /obj/machinery/atmospherics/pipe/simple/visible/black{ @@ -52263,8 +52263,8 @@ /turf/floor/tiled/steel_grid, /area/exodus/engineering/engine_eva) "cei" = ( -/obj/structure/table/woodentable, -/turf/floor/wood, +/obj/structure/table/laminate, +/turf/floor/laminate, /area/exodus/medical/psych) "cej" = ( /turf/wall/prepainted, @@ -52279,7 +52279,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "cel" = ( /obj/structure/bed/chair/office/dark{ @@ -52304,7 +52304,7 @@ pixel_x = -34; pixel_y = 7 }, -/turf/floor/wood, +/turf/floor/laminate, /area/exodus/medical/psych) "cem" = ( /obj/structure/cable/green{ @@ -52312,7 +52312,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "cen" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -53017,7 +53017,7 @@ /area/exodus/engineering/foyer) "cfS" = ( /obj/structure/closet/secure_closet/personal, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/sleep/bedrooms) "cfT" = ( /obj/machinery/computer/modular/preset/cardslot/command, @@ -53272,7 +53272,7 @@ /turf/floor/tiled/white, /area/exodus/medical/virology) "cgu" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/recharger, /turf/floor/carpet, /area/exodus/hallway/secondary/entry/starboard) @@ -56547,7 +56547,7 @@ /turf/wall/prepainted, /area/exodus/maintenance/arrivals) "cnn" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/taperecorder, /obj/item/camera, /obj/item/eftpos{ @@ -63799,7 +63799,7 @@ /turf/floor/bluegrid, /area/exodus/turret_protected/ai_upload) "hLX" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "hOb" = ( /obj/structure/cable/green{ @@ -64051,7 +64051,7 @@ /obj/machinery/vending/coffee{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/crew_quarters/bar) "kVV" = ( /obj/structure/cable{ @@ -64383,7 +64383,7 @@ /area/space) "qlX" = ( /obj/machinery/hologram/holopad, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "qmC" = ( /obj/effect/floor_decal/corner_steel_grid{ @@ -64936,7 +64936,7 @@ /obj/machinery/hologram/holopad{ holopad_id = "Library Rec Area" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/library) "wqh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -65012,7 +65012,7 @@ /turf/floor/tiled/steel_grid, /area/exodus/quartermaster/miningdock) "xrP" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/exodus/engineering/break_room) "xFu" = ( /obj/effect/floor_decal/corner/lime{ diff --git a/maps/exodus/exodus-admin.dmm b/maps/exodus/exodus-admin.dmm index c25765329809..9fcc6687e4de 100644 --- a/maps/exodus/exodus-admin.dmm +++ b/maps/exodus/exodus-admin.dmm @@ -1403,7 +1403,7 @@ /obj/structure/bed/chair/wood/wings{ dir = 4 }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aMT" = ( /obj/machinery/hologram/holopad, @@ -1440,50 +1440,50 @@ /turf/unsimulated/floor/steel, /area/centcom/holding) "aMY" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/amanita_pie, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aMZ" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/bigbiteburger, /obj/machinery/camera/network/crescent{ c_tag = "Crescent Bar Center" }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNa" = ( /obj/structure/bed/chair/wood/wings{ dir = 8 }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNb" = ( -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNc" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNh" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/chems/glass/bowl/mapped/stew, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNj" = ( /obj/structure/closet/secure_closet/bar, /turf/unsimulated/floor/lino, /area/centcom/holding) "aNk" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/book/manual/barman_recipes, @@ -1491,14 +1491,14 @@ /turf/unsimulated/floor/lino, /area/centcom/holding) "aNl" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/machinery/chemical_dispenser/bar_alc/full, /turf/unsimulated/floor/lino, /area/centcom/holding) "aNm" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/machinery/chemical_dispenser/bar_soft/full, @@ -1536,32 +1536,32 @@ /turf/floor/tiled/monotile, /area/shuttle/escape_shuttle) "aNB" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/boiledrice, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNC" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/chems/glass/bowl/mapped/beet, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNI" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/stuffing, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNJ" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/soylenviridians, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aNK" = ( /obj/machinery/door/airlock/glass{ @@ -1667,7 +1667,7 @@ /area/shuttle/escape_shuttle) "aPa" = ( /obj/machinery/hologram/holopad, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aPH" = ( /obj/machinery/camera/network/crescent{ @@ -1713,34 +1713,34 @@ /turf/floor/tiled/techfloor/grid, /area/shuttle/escape_shuttle) "aPR" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/chems/glass/bowl/mapped/blood, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aPS" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/skewer/tofu, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aRl" = ( /turf/unsimulated/wall, /area/centcom/holding) "aRm" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/poppypretzel, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "aZb" = ( /obj/structure/bed/chair/comfy/brown{ dir = 1 }, -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/clothing/pants/slacks/outfit, @@ -1754,13 +1754,13 @@ /obj/structure/bed/chair/comfy/brown{ dir = 1 }, -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /turf/unsimulated/floor/lino, /area/centcom/holding) "bgJ" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /turf/unsimulated/floor/lino, @@ -1831,11 +1831,11 @@ /turf/floor/tiled/dark/monotile, /area/shuttle/escape_shuttle) "bvb" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/spesslaw, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "bwE" = ( /obj/effect/floor_decal/industrial/warning, @@ -1845,18 +1845,18 @@ /turf/floor/tiled, /area/shuttle/escape_shuttle) "byb" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/candiedapple, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "bzm" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/chems/glass/bowl/mapped/mushroom, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "bDh" = ( /obj/structure/table, @@ -1864,15 +1864,15 @@ /turf/unsimulated/floor/lino, /area/tdome/tdomeadmin) "bMb" = ( -/obj/structure/table/woodentable{ +/obj/structure/table/laminate{ dir = 5 }, /obj/item/food/meatsteak, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "cnP" = ( /obj/item/stool/padded, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/centcom/holding) "cxx" = ( /obj/effect/floor_decal/industrial/warning{ diff --git a/maps/ministation/ministation-0.dmm b/maps/ministation/ministation-0.dmm index c715e45dc03c..5e3a75b879eb 100644 --- a/maps/ministation/ministation-0.dmm +++ b/maps/ministation/ministation-0.dmm @@ -31,7 +31,7 @@ /turf/wall/natural/random/ministation, /area/space) "ai" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/pool, /area/ministation/dorms) "ak" = ( @@ -104,7 +104,7 @@ /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "aG" = ( /obj/structure/table, @@ -179,7 +179,7 @@ /area/ministation/eva) "aZ" = ( /obj/structure/fitness/punchingbag, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "bb" = ( /obj/effect/floor_decal/corner/blue, @@ -486,7 +486,7 @@ dir = 8 }, /obj/machinery/computer/modular/preset/engineering, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "cv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -609,7 +609,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "cM" = ( /obj/machinery/conveyor{ @@ -753,7 +753,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "dw" = ( /obj/structure/cable{ @@ -891,7 +891,7 @@ /obj/item/clothing/suit/jacket/winter, /obj/item/clothing/suit/cloak, /obj/item/clothing/suit/cloak, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "dR" = ( /obj/structure/reagent_dispensers/fueltank, @@ -1727,7 +1727,7 @@ /turf/floor/reinforced/airmix, /area/ministation/atmospherics) "gF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/light{ dir = 4 }, @@ -1823,7 +1823,7 @@ /obj/abstract/landmark/start{ name = "Recruit" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "gY" = ( /obj/machinery/atmospherics/pipe/simple/visible/green{ @@ -1860,7 +1860,7 @@ /obj/machinery/computer/modular/preset/civilian{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "hf" = ( /turf/floor/plating, @@ -2093,7 +2093,7 @@ "ia" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "ie" = ( /obj/machinery/door/airlock/external/bolted{ @@ -2225,7 +2225,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "iU" = ( /obj/effect/floor_decal/industrial/outline/yellow, @@ -2260,7 +2260,7 @@ "je" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "jf" = ( /obj/machinery/atmospherics/binary/circulator{ @@ -2277,7 +2277,7 @@ dir = 4; pixel_x = -24 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "jn" = ( /obj/machinery/atmospherics/unary/vent_pump/on, @@ -2352,7 +2352,7 @@ /obj/machinery/vending/games{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "jC" = ( /obj/effect/floor_decal/corner/white{ @@ -2502,7 +2502,7 @@ /obj/machinery/vending/hotfood{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "kb" = ( /obj/machinery/meter, @@ -2698,7 +2698,7 @@ /area/ministation/janitor) "lb" = ( /obj/structure/undies_wardrobe, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "le" = ( /obj/machinery/atmospherics/pipe/simple/visible/green, @@ -2814,7 +2814,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "lB" = ( /obj/structure/railing/mapped{ @@ -3167,7 +3167,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "nf" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ @@ -3248,7 +3248,7 @@ }, /obj/item/clothing/suit/jacket/winter, /obj/item/clothing/suit/jacket/winter, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "nw" = ( /obj/structure/window/reinforced{ @@ -3288,7 +3288,7 @@ "nE" = ( /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "nG" = ( /obj/effect/floor_decal/industrial/custodial{ @@ -3311,7 +3311,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "nM" = ( /obj/machinery/atmospherics/pipe/simple/visible/green{ @@ -3323,7 +3323,7 @@ "nN" = ( /obj/structure/curtain/open/bed, /obj/machinery/recharge_station, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "nO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -3374,7 +3374,7 @@ /area/ministation/maint/westatmos) "ob" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "oc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -3389,7 +3389,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "oi" = ( /obj/machinery/atmospherics/binary/pump/on{ @@ -3700,7 +3700,7 @@ /turf/floor/plating, /area/ministation/maint/l1central) "qe" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "qf" = ( /obj/machinery/atmospherics/pipe/simple/visible/yellow, @@ -3715,7 +3715,7 @@ pixel_y = 30 }, /obj/effect/floor_decal/industrial/hatch/red, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "qo" = ( /obj/effect/decal/cleanable/dirt, @@ -3756,11 +3756,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "qu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -3908,7 +3908,7 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "rc" = ( /obj/structure/cable{ @@ -4091,7 +4091,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "sc" = ( /obj/abstract/turbolift_spawner/ministation{ @@ -4438,7 +4438,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "tB" = ( /obj/structure/cable{ @@ -4474,7 +4474,7 @@ /obj/abstract/landmark/start{ name = "Recruit" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "tK" = ( /obj/structure/disposalpipe/segment, @@ -4500,7 +4500,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "tQ" = ( /turf/floor/plating, @@ -4681,7 +4681,7 @@ /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "uK" = ( /turf/wall, @@ -4695,7 +4695,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "uM" = ( /obj/machinery/light/small{ @@ -4874,7 +4874,7 @@ /area/ministation/maint/westatmos) "vB" = ( /obj/machinery/vending/fitness, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "vC" = ( /obj/structure/table, @@ -4938,7 +4938,7 @@ "vL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "vM" = ( /obj/machinery/floodlight, @@ -5028,7 +5028,7 @@ dir = 8; pixel_x = 24 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "wm" = ( /obj/structure/closet/secure_closet/quartermaster{ @@ -5047,7 +5047,7 @@ /area/ministation/atmospherics) "wp" = ( /obj/machinery/atmospherics/unary/vent_pump/on, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "ws" = ( /obj/structure/cable{ @@ -5061,12 +5061,12 @@ /area/ministation/maint/l1ne) "wt" = ( /obj/effect/decal/cleanable/dirt, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "wu" = ( /obj/structure/fitness/punchingbag, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "wv" = ( /obj/machinery/door/window/southleft, @@ -5121,7 +5121,7 @@ /obj/item/gun/launcher/foam/revolver, /obj/item/gun/launcher/foam, /obj/item/gun/launcher/foam, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "wD" = ( /obj/machinery/door/airlock/hatch/maintenance, @@ -5186,7 +5186,7 @@ /area/ministation/janitor) "wT" = ( /obj/structure/closet/lasertag/blue, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "wZ" = ( /obj/item/mollusc/barnacle{ @@ -5203,7 +5203,7 @@ name = "Recruit" }, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "xj" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -5231,7 +5231,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "xo" = ( /obj/machinery/emitter, @@ -5490,7 +5490,7 @@ /obj/structure/disposalpipe/junction{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "yL" = ( /obj/machinery/light/small{ @@ -5695,7 +5695,7 @@ dir = 4 }, /obj/structure/railing/mapped, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "zW" = ( /turf/wall, @@ -5768,7 +5768,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Aj" = ( /obj/machinery/light{ @@ -6011,7 +6011,7 @@ dir = 4; pixel_x = 24 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Ba" = ( /obj/machinery/alarm{ @@ -6025,7 +6025,7 @@ /obj/structure/railing/mapped{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Bd" = ( /turf/floor/plating/airless, @@ -6051,7 +6051,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Bh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -6143,7 +6143,7 @@ /obj/structure/railing/mapped{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Bx" = ( /obj/effect/floor_decal/spline/fancy/wood{ @@ -6272,7 +6272,7 @@ /obj/structure/closet, /obj/item/clothing/suit/jacket/winter, /obj/item/clothing/suit/jacket/winter, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "BV" = ( /obj/machinery/atmospherics/portables_connector, @@ -6323,7 +6323,7 @@ /obj/abstract/landmark/start{ name = "Recruit" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Cg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -6449,7 +6449,7 @@ /area/ministation/eva) "CB" = ( /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "CC" = ( /obj/item/stool/padded, @@ -6541,13 +6541,13 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "CW" = ( /obj/machinery/door/airlock, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "CZ" = ( /obj/machinery/atmospherics/omni/filter{ @@ -7062,7 +7062,7 @@ dir = 1; pixel_x = -1 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "Ej" = ( /obj/machinery/conveyor_switch{ @@ -7123,7 +7123,7 @@ /obj/abstract/landmark/start{ name = "Atmospheric Technician" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Es" = ( /obj/machinery/power/terminal{ @@ -7139,7 +7139,7 @@ /obj/abstract/landmark/start{ name = "Station Engineer" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Et" = ( /obj/effect/floor_decal/industrial/warning/corner{ @@ -7149,7 +7149,7 @@ /obj/abstract/landmark/start{ name = "Atmospheric Technician" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Eu" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, @@ -7188,13 +7188,13 @@ /obj/abstract/landmark/start{ name = "Station Engineer" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "EB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "EE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -7260,15 +7260,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "EM" = ( /obj/item/boombox, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/table/woodentable_reinforced/walnut/maple, -/turf/floor/wood, +/obj/structure/table/laminate/reinforced/walnut/maple, +/turf/floor/laminate, /area/ministation/engine) "EN" = ( /obj/structure/cable{ @@ -7277,11 +7277,11 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, -/obj/structure/table/woodentable_reinforced/walnut/maple, +/obj/structure/table/laminate/reinforced/walnut/maple, /obj/item/chems/chem_disp_cartridge/coffee{ name = "coffee canister" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "EO" = ( /obj/item/food/old/pizza, @@ -7289,8 +7289,8 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/table/woodentable_reinforced/walnut/maple, -/turf/floor/wood, +/obj/structure/table/laminate/reinforced/walnut/maple, +/turf/floor/laminate, /area/ministation/engine) "EP" = ( /obj/machinery/vending/materials{ @@ -7317,12 +7317,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = 1; pixel_y = 9 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "ET" = ( /obj/effect/floor_decal/corner/yellow/three_quarters, @@ -7400,13 +7400,13 @@ /obj/abstract/landmark/start{ name = "Station Engineer" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Fc" = ( /obj/item/wrench, /obj/item/clothing/gloves/insulated, -/obj/structure/table/woodentable_reinforced/walnut/maple, -/turf/floor/wood, +/obj/structure/table/laminate/reinforced/walnut/maple, +/turf/floor/laminate, /area/ministation/engine) "Fd" = ( /obj/structure/cable{ @@ -7414,9 +7414,9 @@ }, /obj/item/stack/tape_roll/barricade_tape/atmos, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/table/woodentable_reinforced/walnut/maple, +/obj/structure/table/laminate/reinforced/walnut/maple, /obj/item/chems/spray/cleaner, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Fe" = ( /obj/structure/cable{ @@ -7424,9 +7424,9 @@ }, /obj/item/chems/drinks/glass2/coffeecup/metal, /obj/item/chems/drinks/glass2/coffeecup/metal, -/obj/structure/table/woodentable_reinforced/walnut/maple, +/obj/structure/table/laminate/reinforced/walnut/maple, /obj/item/chems/drinks/glass2/coffeecup/tall, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Ff" = ( /obj/structure/cable{ @@ -7438,7 +7438,7 @@ /obj/abstract/landmark/start{ name = "Station Engineer" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Fg" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -7492,7 +7492,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Fn" = ( /obj/machinery/space_heater, @@ -7552,19 +7552,19 @@ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Fv" = ( /obj/structure/cable{ icon_state = "2-4" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Fw" = ( /obj/structure/cable{ icon_state = "1-8" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/engine) "Fx" = ( /obj/machinery/vending/engivend{ @@ -8434,7 +8434,7 @@ /obj/item/clothing/shoes/sandal, /obj/item/clothing/jumpsuit, /obj/item/clothing/jumpsuit, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Ho" = ( /obj/structure/transit_tube, @@ -8913,7 +8913,7 @@ /obj/machinery/camera/autoname{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "IF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -9018,7 +9018,7 @@ /obj/item/backpack, /obj/item/backpack, /obj/item/backpack, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "IQ" = ( /obj/structure/cable{ @@ -10311,14 +10311,14 @@ dir = 8 }, /obj/effect/floor_decal/industrial/hatch/red, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "MB" = ( /obj/abstract/landmark/start{ name = "Recruit" }, /obj/item/stool/padded, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "MC" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -10483,7 +10483,7 @@ /area/ministation/atmospherics) "Ne" = ( /obj/structure/closet/lasertag/red, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Nf" = ( /obj/effect/wallframe_spawn/reinforced, @@ -10574,7 +10574,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "Nw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -10888,7 +10888,7 @@ /area/ministation/maint/l1central) "Oo" = ( /obj/structure/fitness/weightlifter, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Or" = ( /obj/machinery/light/small{ @@ -11200,7 +11200,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "Pi" = ( /obj/machinery/drone_fabricator/maintenance, @@ -11366,7 +11366,7 @@ /obj/machinery/vending/snix{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "PO" = ( /obj/machinery/camera/autoname{ @@ -11376,7 +11376,7 @@ dir = 1 }, /obj/machinery/disposal, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "PQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -11588,7 +11588,7 @@ dir = 1; level = 2 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "QO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -11629,7 +11629,7 @@ /obj/machinery/vending/coffee{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "QV" = ( /obj/structure/lattice, @@ -11709,7 +11709,7 @@ dir = 4; pixel_x = -22 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "Rh" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ @@ -11756,7 +11756,7 @@ /turf/floor/tiled, /area/ministation/cargo) "Ro" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/clothing/mask/snorkel, /obj/item/clothing/mask/snorkel, /obj/machinery/light{ @@ -11824,7 +11824,7 @@ /area/ministation/supermatter) "RA" = ( /obj/structure/closet/boxinggloves, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "RB" = ( /obj/item/radio/intercom{ @@ -11858,7 +11858,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "RE" = ( /obj/machinery/embedded_controller/radio/airlock/airlock_controller{ @@ -11964,7 +11964,7 @@ /mob/living/simple_animal/hostile/parrot/Poly, /obj/structure/table/reinforced, /obj/item/chems/drinks/glass2/coffeecup/one, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "Sa" = ( /obj/machinery/atmospherics/binary/pump/on{ @@ -12006,7 +12006,7 @@ level = 2 }, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Sg" = ( /obj/structure/closet/crate/solar, @@ -12081,7 +12081,7 @@ "Sv" = ( /obj/item/toy/ringbell, /obj/structure/table/steel, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Sw" = ( /obj/structure/cable, @@ -12117,7 +12117,7 @@ name = "Recruit" }, /obj/machinery/camera/autoname, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "SF" = ( /obj/structure/cable{ @@ -12338,7 +12338,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Tv" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ @@ -12404,7 +12404,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "TB" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -12544,7 +12544,7 @@ /turf/space, /area/space) "Ua" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/clothing/mask/snorkel, /obj/item/clothing/mask/snorkel, /turf/floor/pool, @@ -12564,12 +12564,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Ue" = ( /obj/structure/table/gamblingtable, /obj/machinery/chemical_dispenser/bar_alc/full, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/engine) "Ug" = ( /obj/machinery/atmospherics/pipe/manifold/visible/cyan{ @@ -12671,7 +12671,7 @@ dir = 1; pixel_y = -23 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "UA" = ( /obj/machinery/light{ @@ -12804,7 +12804,7 @@ /obj/machinery/firealarm{ pixel_y = 24 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Vc" = ( /obj/machinery/atmospherics/pipe/simple/hidden, @@ -12821,7 +12821,7 @@ /obj/structure/curtain/open/bed, /obj/structure/bed/padded, /obj/item/bedsheet/ce, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Vj" = ( /obj/machinery/light{ @@ -12844,7 +12844,7 @@ }, /obj/item/clothing/suit/jacket/winter, /obj/item/clothing/suit/jacket/winter, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Vm" = ( /obj/structure/cable/yellow{ @@ -13000,7 +13000,7 @@ "VT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "VV" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -13068,7 +13068,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Wi" = ( /obj/structure/disposaloutlet, @@ -13212,7 +13212,7 @@ "WM" = ( /obj/machinery/door/airlock/double/glass/civilian, /obj/machinery/door/firedoor, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "WO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -13358,7 +13358,7 @@ /area/ministation/dorms) "Xo" = ( /obj/structure/table/reinforced, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Xt" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -13591,7 +13591,7 @@ /obj/structure/railing/mapped{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Yx" = ( /obj/effect/floor_decal/industrial/custodial{ @@ -13765,7 +13765,7 @@ dir = 2; icon_state = "pipe-c" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "YW" = ( /obj/machinery/atmospherics/pipe/simple/hidden, @@ -13830,10 +13830,10 @@ dir = 4 }, /obj/machinery/camera/autoname, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/poster, /obj/item/pen, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Zh" = ( /obj/machinery/light{ @@ -13898,7 +13898,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/dorms) "Zv" = ( /obj/structure/ladder, diff --git a/maps/ministation/ministation-1.dmm b/maps/ministation/ministation-1.dmm index ce6e50124ac1..9aac14f4417d 100644 --- a/maps/ministation/ministation-1.dmm +++ b/maps/ministation/ministation-1.dmm @@ -271,7 +271,7 @@ pixel_y = 26 }, /obj/machinery/camera/network/security, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/detective) "by" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -474,7 +474,7 @@ /turf/floor/plating, /area/ministation/hop) "cA" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green, /obj/machinery/firealarm{ dir = 4; @@ -1218,7 +1218,7 @@ /turf/open, /area/ministation/hall/e2) "gB" = ( -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/item/pen/blue, /turf/floor/carpet/red, /area/ministation/security) @@ -1264,7 +1264,7 @@ /obj/structure/cable{ icon_state = "1-4" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/detective) "gL" = ( /obj/effect/floor_decal/corner/paleblue/diagonal, @@ -1500,7 +1500,7 @@ /turf/floor/tiled/white, /area/ministation/medical) "hC" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/unary/vent_pump/on, /obj/item/scanner/spectrometer, /obj/item/handcuffs, @@ -1633,7 +1633,7 @@ /turf/floor/tiled, /area/ministation/security) "id" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = -3; pixel_y = 7 @@ -1952,7 +1952,7 @@ /obj/structure/cable{ icon_state = "0-8" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/detective) "jl" = ( /obj/machinery/porta_turret{ @@ -3020,7 +3020,7 @@ /turf/floor/tiled/white, /area/ministation/medical) "pf" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/floor/tiled, /area/ministation/hall/w2) @@ -3069,7 +3069,7 @@ /turf/floor/plating, /area/ministation/maint/l2centraln) "px" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/glass/beaker, /turf/floor/lino, /area/ministation/cafe) @@ -3081,7 +3081,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/structure/window/reinforced{ dir = 4 }, @@ -3269,7 +3269,7 @@ /turf/floor/tiled/white, /area/ministation/detective) "qe" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/tiled, /area/ministation/hall/w2) "qf" = ( @@ -3644,7 +3644,7 @@ /turf/open, /area/ministation/hall/w2) "rA" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, @@ -4864,7 +4864,7 @@ /turf/floor/plating, /area/ministation/medical) "vq" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/book/manual/detective, /turf/floor/carpet/red, /area/ministation/detective) @@ -5415,7 +5415,7 @@ /turf/floor/plating, /area/ministation/maint/l2centrals) "xn" = ( -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/item/paper_bin, /turf/floor/carpet/red, /area/ministation/security) @@ -6062,7 +6062,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/structure/window/reinforced{ dir = 8 }, @@ -6150,7 +6150,7 @@ pixel_x = -3; pixel_y = 6 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/button/blast_door{ id_tag = "Kitchen1"; name = "Kitchen Shutter"; @@ -6237,7 +6237,7 @@ /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/detective) "zZ" = ( /obj/structure/bed/chair/comfy/beige{ @@ -6523,7 +6523,7 @@ /turf/floor/plating, /area/ministation/hall/w2) "Bk" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin{ pixel_x = 1; pixel_y = 9 @@ -6533,7 +6533,7 @@ /turf/floor/carpet, /area/ministation/hall/w2) "Bm" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/lino, /area/ministation/cafe) "Br" = ( @@ -6627,7 +6627,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/detective) "BJ" = ( /obj/machinery/door/firedoor, @@ -6708,7 +6708,7 @@ pixel_y = -24; dir = 1 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/reagent_temperature, /turf/floor/lino, /area/ministation/cafe) @@ -6873,7 +6873,7 @@ /turf/floor/tiled/dark, /area/ministation/security) "Dj" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/condiment/enzyme, /obj/item/mollusc/clam, /obj/item/mollusc/clam, @@ -7508,7 +7508,7 @@ /turf/floor/tiled, /area/ministation/hydro) "Hx" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/reagent_temperature/cooler, /turf/floor/lino, /area/ministation/cafe) @@ -7563,7 +7563,7 @@ dir = 1 }, /obj/item/clothing/head/beret/corp/sec, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/detective) "HG" = ( /obj/structure/table, @@ -7639,7 +7639,7 @@ /turf/floor/tiled/dark, /area/ministation/security) "Ia" = ( -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/machinery/faxmachine/mapped, /turf/floor/carpet/red, /area/ministation/security) @@ -7832,7 +7832,7 @@ /turf/floor/fake_grass, /area/ministation/hydro) "Jj" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/camera/autoname{ dir = 8 }, @@ -7879,7 +7879,7 @@ /turf/floor/tiled/dark, /area/ministation/security) "Jo" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/cigarettes, /obj/item/pen, /obj/structure/cable{ @@ -8195,7 +8195,7 @@ /turf/floor/tiled, /area/ministation/security) "Lk" = ( -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/item/pen/multi, /turf/floor/carpet/red, /area/ministation/security) @@ -8214,7 +8214,7 @@ /turf/floor/tiled, /area/ministation/security) "Lr" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/reagentgrinder/juicer, /obj/item/chems/glass/beaker, /turf/floor/lino, @@ -8269,7 +8269,7 @@ /turf/floor/carpet/red, /area/ministation/security) "LM" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/knife/kitchen/cleaver, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 @@ -8903,7 +8903,7 @@ /turf/floor/plating, /area/ministation/medical) "Pd" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/cigarettes{ pixel_y = 2 }, @@ -9215,7 +9215,7 @@ /turf/floor/tiled, /area/ministation/hall/e2) "QH" = ( -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/item/pen, /turf/floor/carpet/red, /area/ministation/security) @@ -9755,7 +9755,7 @@ /turf/floor/tiled, /area/ministation/security) "TX" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/eftpos, /obj/item/chems/spray/cleaner, /obj/item/chems/packet/honey, @@ -9816,7 +9816,7 @@ /turf/floor/plating, /area/ministation/maint/secmaint) "Ur" = ( -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /turf/floor/carpet/red, /area/ministation/security) "Ut" = ( @@ -10132,7 +10132,7 @@ /turf/floor/plating, /area/ministation/medical) "Wa" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 @@ -10194,7 +10194,7 @@ dir = 4; pixel_x = -23 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ministation/detective) "Wm" = ( /obj/effect/floor_decal/industrial/warning{ @@ -10451,7 +10451,7 @@ /turf/floor/tiled, /area/ministation/hall/w2) "XW" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/ammo/beanbags, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 diff --git a/maps/ministation/ministation-2.dmm b/maps/ministation/ministation-2.dmm index 12a062972d29..f70c0d369261 100644 --- a/maps/ministation/ministation-2.dmm +++ b/maps/ministation/ministation-2.dmm @@ -178,7 +178,7 @@ /obj/structure/cable{ icon_state = "1-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/bridge) "aU" = ( /obj/machinery/atmospherics/portables_connector, @@ -205,7 +205,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/bridge) "aX" = ( /obj/structure/cable{ @@ -346,11 +346,11 @@ /obj/abstract/landmark/start{ name = "Captain" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/bridge) "bt" = ( /obj/item/flashlight/lamp/green, -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -360,7 +360,7 @@ /obj/item/stack/material/bow_ammo/rod, /obj/item/cell/crap, /obj/item/mollusc/clam, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/bridge) "bu" = ( /obj/machinery/shipsensors{ @@ -494,15 +494,15 @@ initial_access = null; req_access = list("ACCESS_CAMERAS") }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/bridge) "bI" = ( -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/item/modular_computer/tablet/lease/preset/command, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/bridge) "bK" = ( /obj/machinery/alarm{ @@ -900,7 +900,7 @@ /turf/floor/tiled, /area/ministation/bridge) "dn" = ( -/obj/structure/table/woodentable_reinforced/walnut, +/obj/structure/table/laminate/reinforced/walnut, /obj/item/paper_bin, /obj/item/pen/retractable, /turf/floor/carpet/red, @@ -1456,7 +1456,7 @@ dir = 4; pixel_x = 1 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "fW" = ( /obj/machinery/light, @@ -1656,7 +1656,7 @@ dir = 8 }, /obj/structure/bookcase/skill_books/random, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "hd" = ( /obj/machinery/light{ @@ -2331,7 +2331,7 @@ /turf/floor/plating, /area/ministation/maint/l3se) "kk" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "kn" = ( /obj/effect/floor_decal/industrial/warning{ @@ -2591,7 +2591,7 @@ /obj/item/clothing/suit/jacket/charcoal, /obj/item/clothing/shoes/sandal, /obj/item/multitool, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "ll" = ( /obj/structure/cable{ @@ -2733,7 +2733,7 @@ /obj/structure/cable{ icon_state = "1-4" }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "mf" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -2947,7 +2947,7 @@ /obj/machinery/camera/autoname{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "mY" = ( /obj/machinery/atmospherics/pipe/simple/hidden, @@ -3223,7 +3223,7 @@ dir = 1; level = 2 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "oR" = ( /obj/effect/decal/cleanable/dirt, @@ -3295,12 +3295,12 @@ /turf/floor, /area/ministation/science) "ps" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/laminate/ebony, /obj/item/paper_bundle, /obj/effect/floor_decal/stoneborder{ dir = 6 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "pz" = ( /obj/machinery/power/apc{ @@ -3561,7 +3561,7 @@ /obj/machinery/camera/autoname{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "sB" = ( /obj/structure/cable{ @@ -3632,7 +3632,7 @@ /obj/structure/bed, /obj/item/bedsheet/purple, /obj/random/plushie, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "sW" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ @@ -3848,7 +3848,7 @@ /obj/effect/floor_decal/stoneborder{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "uN" = ( /obj/machinery/door/airlock/glass/science, @@ -4088,7 +4088,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "wH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -4129,14 +4129,14 @@ /turf/floor/lino, /area/ministation/hall/s3) "wY" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/laminate/ebony, /obj/item/pen/fancy, /obj/item/box/fancy/crayons, /obj/effect/floor_decal/stoneborder{ dir = 6 }, /obj/item/box/candles, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "xc" = ( /obj/structure/lattice, @@ -4164,7 +4164,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "xH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -4222,14 +4222,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "yc" = ( /obj/machinery/camera/autoname{ dir = 8; req_access = list("ACCESS_CAMERAS") }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "yd" = ( /obj/machinery/door/firedoor, @@ -4252,7 +4252,7 @@ /obj/machinery/camera/autoname{ dir = 4 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "ym" = ( /turf/floor/tiled, @@ -4481,7 +4481,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "Al" = ( /obj/machinery/button/blast_door{ @@ -4536,7 +4536,7 @@ dir = 1; icon_state = "pipe-c" }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "AH" = ( /obj/effect/decal/cleanable/dirt, @@ -4560,7 +4560,7 @@ /obj/effect/floor_decal/stoneborder{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "AS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -4814,7 +4814,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "BZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -5275,12 +5275,12 @@ /turf/floor/plating, /area/ministation/maint/l3central) "DD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/stack/material/panel/mapped/plastic/ten, /obj/item/stack/material/plank/mapped/wood/ten, /obj/item/stack/material/plank/mapped/wood/ten, /obj/item/stack/material/panel/mapped/plastic/ten, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "DF" = ( /obj/machinery/camera/autoname{ @@ -5295,7 +5295,7 @@ /turf/floor/tiled/white, /area/ministation/science) "DQ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pill_bottle/dice, /turf/floor/carpet/green, /area/ministation/library) @@ -5335,7 +5335,7 @@ /turf/floor/plating, /area/ministation/maint/l3nw) "Ef" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/carpet/green, /area/ministation/library) "Eg" = ( @@ -5522,7 +5522,7 @@ /obj/machinery/computer/modular/preset/civilian{ dir = 1 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "FH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -5548,10 +5548,10 @@ /turf/floor/tiled/white, /area/ministation/science) "FV" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/mollusc/clam, /obj/machinery/light/small, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Gh" = ( /obj/effect/decal/cleanable/dirt, @@ -5666,12 +5666,12 @@ /turf/floor/tiled, /area/ministation/hall/s3) "Hl" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/laminate/ebony, /obj/item/paper_bin, /obj/effect/floor_decal/stoneborder{ dir = 6 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "Ho" = ( /obj/structure/cable{ @@ -5700,7 +5700,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "HN" = ( /obj/structure/cable{ @@ -5800,7 +5800,7 @@ /turf/floor/carpet/green, /area/ministation/tradehouse_rep) "Ir" = ( -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Ix" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -5830,7 +5830,7 @@ /obj/machinery/alarm{ pixel_y = 23 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "IC" = ( /turf/floor/carpet/green, @@ -5900,7 +5900,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Jo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -5941,7 +5941,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "JF" = ( /obj/structure/disposalpipe/segment{ @@ -6064,7 +6064,7 @@ /turf/floor/carpet/green, /area/ministation/library) "Le" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/drinks/cans/waterbottle, /turf/floor/carpet/green, /area/ministation/library) @@ -6098,7 +6098,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "LC" = ( /obj/structure/disposalpipe/segment, @@ -6128,7 +6128,7 @@ /turf/floor/tiled, /area/ministation/hall/n3) "LM" = ( -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "LN" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -6179,7 +6179,7 @@ /obj/structure/bed/chair/armchair/black{ dir = 4 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "LW" = ( /obj/structure/cable{ @@ -6264,7 +6264,7 @@ dir = 8; pixel_x = 22 }, -/obj/structure/table/woodentable_reinforced/walnut, +/obj/structure/table/laminate/reinforced/walnut, /obj/item/folder, /turf/floor/carpet/red, /area/ministation/court) @@ -6327,7 +6327,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "MU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -6401,7 +6401,7 @@ /obj/machinery/light_switch{ pixel_y = 32 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Ne" = ( /obj/structure/table, @@ -6427,7 +6427,7 @@ /area/ministation/maint/l3se) "Nk" = ( /obj/machinery/photocopier, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Nm" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ @@ -6460,7 +6460,7 @@ pixel_y = -32; dir = 1 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "ND" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -6469,7 +6469,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "NF" = ( /obj/effect/decal/cleanable/dirt, @@ -6559,7 +6559,7 @@ /obj/structure/bed/chair/wood/walnut{ dir = 4 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Ok" = ( /obj/structure/shuttle/engine/heater{ @@ -6597,9 +6597,9 @@ /turf/floor/tiled, /area/ministation/hall/s3) "Ov" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate/walnut, /obj/machinery/light, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Oy" = ( /obj/machinery/atmospherics/binary/pump/on{ @@ -6669,7 +6669,7 @@ /obj/effect/floor_decal/stoneborder{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "ON" = ( /obj/structure/cable{ @@ -6731,10 +6731,10 @@ /turf/floor/tiled, /area/ministation/hall/s3) "Pk" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate/walnut, /obj/item/folder/blue, /obj/machinery/atmospherics/unary/vent_pump/on, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Pn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/universal, @@ -6763,12 +6763,12 @@ /turf/floor/tiled, /area/ministation/hall/n3) "Px" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate/walnut, /obj/item/folder/red, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Pz" = ( /obj/machinery/door/firedoor, @@ -6803,13 +6803,13 @@ /obj/abstract/landmark/start{ name = "Librarian" }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "PE" = ( /obj/structure/bed/chair/armchair/black{ dir = 8 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "PL" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ @@ -6843,7 +6843,7 @@ /turf/floor/tiled, /area/ministation/hall/n3) "PT" = ( -/obj/structure/table/woodentable_reinforced/walnut, +/obj/structure/table/laminate/reinforced/walnut, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -6906,7 +6906,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Qk" = ( /obj/machinery/power/apc{ @@ -6974,11 +6974,11 @@ /turf/floor/tiled, /area/ministation/shuttle/outgoing) "QD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/book/printable_red, /obj/item/pen, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "QF" = ( /turf/wall, @@ -7006,7 +7006,7 @@ pixel_y = 30 }, /obj/effect/floor_decal/industrial/hatch/red, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "QT" = ( /obj/machinery/computer/design_console{ @@ -7023,8 +7023,8 @@ /obj/machinery/firealarm{ pixel_y = 24 }, -/obj/structure/table/woodentable, -/turf/floor/wood/mahogany, +/obj/structure/table/laminate, +/turf/floor/laminate/mahogany, /area/ministation/library) "Re" = ( /obj/machinery/power/apc{ @@ -7061,7 +7061,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Rl" = ( /obj/structure/cable{ @@ -7160,7 +7160,7 @@ /area/ministation/shuttle/outgoing) "RG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "RI" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -7204,7 +7204,7 @@ /obj/effect/floor_decal/stoneborder{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "RS" = ( /obj/machinery/power/smes/buildable/max_cap_in_out{ @@ -7271,11 +7271,11 @@ /turf/floor/tiled, /area/ministation/tradehouse_rep) "Sf" = ( -/obj/structure/table/woodentable/walnut, +/obj/structure/table/laminate/walnut, /obj/machinery/light{ dir = 1 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Sh" = ( /obj/structure/window/reinforced{ @@ -7347,7 +7347,7 @@ /area/ministation/science) "SP" = ( /obj/item/stool/padded, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "SS" = ( /obj/machinery/computer/ship/engines{ @@ -7375,8 +7375,8 @@ /turf/floor/plating, /area/ministation/maint/l3ne) "Tk" = ( -/obj/structure/table/woodentable, -/turf/floor/wood/mahogany, +/obj/structure/table/laminate, +/turf/floor/laminate/mahogany, /area/ministation/library) "Tm" = ( /obj/effect/floor_decal/carpet/green{ @@ -7385,7 +7385,7 @@ /obj/effect/floor_decal/stoneborder{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "Tn" = ( /obj/machinery/shipsensors{ @@ -7424,7 +7424,7 @@ /obj/structure/railing/mapped{ dir = 8 }, -/obj/structure/table/woodentable/ebony, +/obj/structure/table/laminate/ebony, /obj/item/pen, /obj/item/pen/blue, /obj/item/pen/retractable, @@ -7432,7 +7432,7 @@ /obj/item/pen/retractable/blue, /obj/item/pen/multi, /obj/effect/floor_decal/stoneborder/corner, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "Tx" = ( /obj/machinery/light_switch{ @@ -7484,7 +7484,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "TG" = ( /obj/machinery/atmospherics/binary/pump/high_power{ @@ -7502,7 +7502,7 @@ /turf/floor/tiled, /area/ministation/bridge) "TI" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/cash, /obj/item/chems/drinks/cans/waterbottle, /turf/floor/carpet/green, @@ -7600,7 +7600,7 @@ /obj/structure/reagent_dispensers/water_cooler{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "Uo" = ( /obj/item/radio/intercom{ @@ -7618,7 +7618,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Uq" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -7628,11 +7628,11 @@ dir = 2; icon_state = "pipe-c" }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Uw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "UB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -7645,7 +7645,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "UE" = ( /obj/structure/closet/crate/uranium, @@ -7658,7 +7658,7 @@ dir = 4 }, /obj/structure/bookcase/skill_books/random, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "UH" = ( /obj/machinery/alarm{ @@ -7735,7 +7735,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/knife/kitchen, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -7744,15 +7744,15 @@ /obj/item/mollusc/clam, /obj/item/mollusc/clam, /obj/item/mollusc/clam, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Vl" = ( /obj/structure/bookcase/manuals, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Vq" = ( /obj/structure/bookcase/skill_books/random, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Vt" = ( /obj/structure/cable{ @@ -7788,7 +7788,7 @@ /turf/floor/carpet/red, /area/ministation/court) "Vw" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/deck/cards, /turf/floor/carpet/green, /area/ministation/library) @@ -7865,9 +7865,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/fabricator/book, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "VX" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ @@ -7972,7 +7972,7 @@ dir = 1; level = 2 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Wx" = ( /obj/machinery/door/airlock/hatch/maintenance, @@ -8033,7 +8033,7 @@ /obj/effect/floor_decal/stoneborder{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "WT" = ( /obj/structure/bed/padded, @@ -8077,7 +8077,7 @@ dir = 4 }, /obj/machinery/light, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Xi" = ( /obj/machinery/newscaster{ @@ -8133,7 +8133,7 @@ /obj/effect/floor_decal/stoneborder/corner{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "XJ" = ( /obj/structure/closet, @@ -8297,7 +8297,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "YJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -8378,7 +8378,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "YX" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ @@ -8485,7 +8485,7 @@ /obj/machinery/firealarm{ pixel_y = 25 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ministation/court) "Zu" = ( /obj/structure/cable{ @@ -8500,7 +8500,7 @@ /obj/machinery/alarm{ pixel_y = 22 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "Zv" = ( /turf/wall, @@ -8516,7 +8516,7 @@ /area/ministation/bridge) "ZH" = ( /obj/effect/floor_decal/carpet/green, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ministation/library) "ZJ" = ( /obj/machinery/door/firedoor, @@ -8581,10 +8581,10 @@ /obj/machinery/light/small{ dir = 4 }, -/turf/floor/wood/mahogany, +/turf/floor/laminate/mahogany, /area/ministation/library) "ZZ" = ( -/obj/structure/table/woodentable_reinforced/walnut, +/obj/structure/table/laminate/reinforced/walnut, /obj/item/bell, /turf/floor/carpet/red, /area/ministation/court) diff --git a/maps/random_ruins/exoplanet_ruins/lodge/lodge.dmm b/maps/random_ruins/exoplanet_ruins/lodge/lodge.dmm index 80a681620a6f..c3b5df5467f1 100644 --- a/maps/random_ruins/exoplanet_ruins/lodge/lodge.dmm +++ b/maps/random_ruins/exoplanet_ruins/lodge/lodge.dmm @@ -29,24 +29,24 @@ /turf/floor/wood, /area/template_noop) "h" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/board, /turf/floor/wood, /area/template_noop) "i" = ( /obj/item/flashlight/lamp/green, -/obj/structure/table/woodentable, +/obj/structure/table/wood, /turf/floor/carpet/green, /area/template_noop) "j" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/clothing/mask/smokable/pipe/cobpipe, /obj/item/chewables/rollable/generic, /obj/item/ashtray, /turf/floor/carpet/green, /area/template_noop) "k" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/utensil/fork/plastic, /obj/item/utensil/fork/plastic, /obj/item/utensil/fork/plastic, @@ -57,7 +57,7 @@ /turf/floor/tiled/monotile, /area/template_noop) "l" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/utensil/knife, /obj/item/utensil/knife, /obj/effect/floor_decal/spline/fancy/wood{ @@ -93,7 +93,7 @@ /turf/floor/wood, /area/template_noop) "q" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/book/manual/detective, /obj/item/ashtray, /obj/item/deck/cards, @@ -106,7 +106,7 @@ /turf/floor/wood, /area/template_noop) "s" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/drip, @@ -126,7 +126,7 @@ /turf/floor/wood/usedup, /area/template_noop) "x" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/flashlight/lamp, /obj/effect/floor_decal/spline/fancy/wood, /turf/floor/tiled/monotile, @@ -154,7 +154,7 @@ /turf/floor/wood, /area/template_noop) "C" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/machinery/computer/central_atmos/laptop{ desc = "A cheap, beat-up old laptop."; name = "old laptop" diff --git a/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm b/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm index 624c04bfc64b..808e62d51a2c 100644 --- a/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm +++ b/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm @@ -455,7 +455,7 @@ /area/map_template/colony/command) "bl" = ( /obj/structure/curtain/black, -/turf/floor/wood, +/turf/floor/laminate, /area/map_template/colony/command) "bm" = ( /obj/machinery/door/firedoor, @@ -1466,7 +1466,7 @@ /area/map_template/colony) "ds" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "dt" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -1559,7 +1559,7 @@ /obj/item/clothing/head/cowboy_hat, /obj/item/clothing/head/cowboy_hat, /obj/item/clothing/suit/det_trench, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "dE" = ( /obj/machinery/door/firedoor, @@ -1635,7 +1635,7 @@ /area/map_template/colony/surgery) "dM" = ( /obj/structure/curtain/black, -/turf/floor/wood, +/turf/floor/laminate, /area/map_template/colony/dorms) "dN" = ( /obj/structure/table/steel_reinforced, @@ -1809,7 +1809,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "ee" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -1947,7 +1947,7 @@ dir = 8; icon_state = "bulb1" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "er" = ( /obj/machinery/atmospherics/pipe/simple/visible, @@ -2228,7 +2228,7 @@ /obj/structure/cable{ icon_state = "0-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "eR" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -2256,7 +2256,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "eU" = ( /obj/machinery/atmospherics/pipe/manifold/visible{ @@ -2377,7 +2377,7 @@ /turf/floor/tiled/techfloor/grid, /area/map_template/colony/engineering) "fe" = ( -/obj/structure/table/woodentable_reinforced, +/obj/structure/table/wood/reinforced, /obj/structure/flora/pottedplant/smallcactus{ pixel_y = 12 }, @@ -2387,7 +2387,7 @@ /obj/item/chems/condiment/small/peppermill, /obj/item/chems/condiment/small/saltshaker, /obj/item/chems/condiment/small/sugar, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "ff" = ( /obj/machinery/atmospherics/portables_connector{ @@ -2422,7 +2422,7 @@ dir = 8; icon_state = "bulb1" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "fk" = ( /obj/machinery/alarm{ @@ -2437,7 +2437,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 9 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "fl" = ( /obj/machinery/meter, @@ -2474,7 +2474,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "fo" = ( /obj/structure/bed/chair/comfy/brown{ @@ -2486,7 +2486,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "fp" = ( /obj/structure/cable{ @@ -2557,7 +2557,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "fv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -2701,10 +2701,10 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "fI" = ( -/obj/structure/table/woodentable_reinforced, +/obj/structure/table/wood/reinforced, /obj/item/box/fancy/donut, /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 @@ -2712,7 +2712,7 @@ /obj/item/chems/condiment/small/peppermill, /obj/item/chems/condiment/small/saltshaker, /obj/item/chems/condiment/small/sugar, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "fJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -2734,7 +2734,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 5 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "fL" = ( /obj/machinery/door/firedoor, @@ -2973,7 +2973,7 @@ dir = 8 }, /obj/item/chems/drinks/pitcher, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "gc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -3273,7 +3273,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "gB" = ( /obj/effect/floor_decal/techfloor{ @@ -3349,7 +3349,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "gJ" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -3487,7 +3487,7 @@ icon_state = "0-8" }, /obj/effect/floor_decal/spline/fancy/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "gZ" = ( /obj/machinery/atmospherics/unary/heat_exchanger{ @@ -3679,7 +3679,7 @@ "hs" = ( /obj/item/stool/bar/padded, /obj/effect/floor_decal/spline/fancy/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "ht" = ( /obj/effect/floor_decal/techfloor, @@ -3730,7 +3730,7 @@ dir = 1; pixel_y = -30 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "hy" = ( /obj/machinery/alarm{ @@ -3740,7 +3740,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "hz" = ( /obj/machinery/vending/cola{ @@ -3750,7 +3750,7 @@ }, /obj/machinery/light, /obj/effect/floor_decal/spline/fancy/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "hA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -3802,7 +3802,7 @@ name = "hacked Getmore Chocolate Corp" }, /obj/effect/floor_decal/spline/fancy/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "hE" = ( /obj/machinery/vending/fitness{ @@ -3838,7 +3838,7 @@ /area/map_template/colony/messhall) "hI" = ( /obj/item/stool/bar/padded, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "hJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -3855,7 +3855,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/item/stool/bar/padded, /obj/effect/floor_decal/spline/fancy/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "hL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -3937,7 +3937,7 @@ /obj/structure/casino/roulette_chart{ density = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "hT" = ( /obj/machinery/power/apc{ @@ -3948,14 +3948,14 @@ /obj/structure/cable, /obj/item/stool/bar/padded, /obj/effect/floor_decal/spline/fancy/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "hU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/floor_decal/spline/fancy/wood{ dir = 6 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/messhall) "hV" = ( /obj/machinery/door/firedoor, @@ -4085,7 +4085,7 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/glass/civilian, -/turf/floor/wood, +/turf/floor/laminate, /area/map_template/colony/commons) "ih" = ( /obj/machinery/door/firedoor, @@ -4137,7 +4137,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "in" = ( /obj/effect/floor_decal/techfloor{ @@ -4472,14 +4472,14 @@ "iO" = ( /obj/structure/table/gamblingtable, /obj/item/ashtray/glass, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "iP" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/item/stool/bar/padded, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "iQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -4502,7 +4502,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 9 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "iS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -4605,14 +4605,14 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jc" = ( /obj/structure/sign/warning/smoking{ pixel_y = -28 }, /obj/effect/floor_decal/spline/fancy/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jd" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, @@ -4633,7 +4633,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 1 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jf" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -4699,7 +4699,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 5 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jk" = ( /obj/structure/hygiene/toilet{ @@ -4725,7 +4725,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jm" = ( /obj/effect/floor_decal/techfloor, @@ -4797,7 +4797,7 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jt" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -4809,7 +4809,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "ju" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -4817,7 +4817,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 8 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -4825,7 +4825,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -4927,7 +4927,7 @@ dir = 1; pixel_y = -30 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jF" = ( /obj/machinery/door/airlock/civilian, @@ -4937,7 +4937,7 @@ /obj/structure/table/gamblingtable, /obj/machinery/light, /obj/effect/floor_decal/spline/fancy/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "jH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -5200,7 +5200,7 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 6 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/commons) "kb" = ( /obj/effect/floor_decal/techfloor{ @@ -5556,7 +5556,7 @@ /obj/item/clothing/webbing/drop_pouches/brown, /obj/item/clothing/webbing/drop_pouches/white, /obj/item/clothing/webbing/drop_pouches/white, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "kI" = ( /obj/machinery/door/airlock/hatch, @@ -6711,7 +6711,7 @@ /turf/floor/tiled/techfloor, /area/map_template/colony) "mS" = ( -/obj/structure/table/woodentable_reinforced, +/obj/structure/table/wood/reinforced, /obj/effect/floor_decal/techfloor{ dir = 6 }, @@ -7894,7 +7894,7 @@ dir = 4; pixel_x = -22 }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "GU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -8003,7 +8003,7 @@ /area/map_template/colony/hydroponics) "Nh" = ( /obj/structure/curtain/black, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/map_template/colony/dorms) "Og" = ( /obj/machinery/portable_atmospherics/canister/oxygen, diff --git a/maps/shaded_hills/shaded_hills-dungeon.dmm b/maps/shaded_hills/shaded_hills-dungeon.dmm index 2df9b3c6a971..dc6ee7b450ed 100644 --- a/maps/shaded_hills/shaded_hills-dungeon.dmm +++ b/maps/shaded_hills/shaded_hills-dungeon.dmm @@ -21,11 +21,11 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "ce" = ( -/obj/structure/table/woodentable_reinforced/ebony/walnut, +/obj/structure/table/wood/reinforced/ebony/walnut, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "cp" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/bladed/knife, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -42,13 +42,13 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "dP" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/flame/torch, /obj/item/flame/torch, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "dT" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/knife/kitchen/cleaver/bronze, /turf/floor/path/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -57,7 +57,7 @@ /turf/floor/path/basalt/water/deep, /area/shaded_hills/caves/dungeon/poi) "fD" = ( -/obj/structure/table/woodentable_reinforced/ebony/walnut, +/obj/structure/table/wood/reinforced/ebony/walnut, /obj/item/ancient_surgery/bonesaw, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -73,11 +73,11 @@ /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) "gy" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "hd" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/stack/material/brick/mapped/graphite/fifteen, /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -137,12 +137,12 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "kI" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/flame/candle, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "kL" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/bladed/folding, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -195,24 +195,24 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "nJ" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/food/grown/dried_tobacco/fine, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "nT" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/stack/material/ore/diamond, /obj/item/stack/material/ore/diamond, /obj/item/stack/material/ore/diamond, /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) "nV" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/bladed/folding, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "ob" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/bladed/knife, /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -288,7 +288,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "rP" = ( -/obj/structure/table/woodentable_reinforced/ebony/walnut, +/obj/structure/table/wood/reinforced/ebony/walnut, /obj/item/ancient_surgery/forceps, /obj/item/ancient_surgery/retractor, /turf/floor/path/running_bond/basalt, @@ -327,7 +327,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "vN" = ( -/obj/structure/table/woodentable_reinforced/ebony/walnut, +/obj/structure/table/wood/reinforced/ebony/walnut, /obj/item/remains/human, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -349,7 +349,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "wP" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/tool/hammer, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -368,7 +368,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "yM" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/tool/pickaxe/iron, /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -376,7 +376,7 @@ /obj/structure/wall_sconce{ dir = 8 }, -/obj/structure/table/woodentable_reinforced/ebony/walnut, +/obj/structure/table/wood/reinforced/ebony/walnut, /obj/item/ancient_surgery/bonesetter, /obj/item/ancient_surgery/sutures, /turf/floor/path/running_bond/basalt, @@ -404,7 +404,7 @@ /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) "BG" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/stack/material/thread/mapped/cotton/thirty, /obj/item/bladed/knife, /turf/floor/path/running_bond/basalt, @@ -434,7 +434,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "DW" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/bladed/folding, /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -461,7 +461,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "Gu" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /turf/floor/path/basalt, /area/shaded_hills/caves/dungeon/poi) "GA" = ( @@ -482,7 +482,7 @@ /turf/floor/path/basalt/water, /area/shaded_hills/caves/dungeon/poi) "Hs" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/flame/candle, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -490,13 +490,13 @@ /turf/floor/rock/basalt, /area/shaded_hills/caves/dungeon) "HO" = ( -/obj/structure/table/woodentable_reinforced/ebony/walnut, +/obj/structure/table/wood/reinforced/ebony/walnut, /obj/item/ancient_surgery/cautery, /obj/item/ancient_surgery/scalpel, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "Ie" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/mortar, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -547,12 +547,12 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/inn) "Ln" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/tool/hammer/sledge, /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) "LB" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "ME" = ( @@ -563,7 +563,7 @@ /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) "MW" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/rock/flint/striker, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -575,7 +575,7 @@ /turf/floor/mud/water, /area/shaded_hills/caves/dungeon/poi) "Oq" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) "Pb" = ( @@ -606,7 +606,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "Rm" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/stack/material/ore/diamond, /turf/floor/path/herringbone/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -654,7 +654,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "Vk" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/food/grown/dried_tobacco/bad, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) @@ -671,7 +671,7 @@ /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) "Yi" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/stack/material/thread/mapped/dried_gut/thirty, /turf/floor/path/running_bond/basalt, /area/shaded_hills/caves/dungeon/poi) diff --git a/maps/shaded_hills/shaded_hills-grassland.dmm b/maps/shaded_hills/shaded_hills-grassland.dmm index b52be7251171..ac9e42b9c2df 100644 --- a/maps/shaded_hills/shaded_hills-grassland.dmm +++ b/maps/shaded_hills/shaded_hills-grassland.dmm @@ -117,7 +117,7 @@ /turf/floor/rock/basalt, /area/shaded_hills/outside) "pU" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/rock/hematite, /obj/item/rock/flint, /obj/item/flame/torch, @@ -129,7 +129,7 @@ /turf/wall/natural/basalt/shaded_hills, /area/shaded_hills/caves/river) "se" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/basket, /turf/floor/woven, /area/shaded_hills/caves/unexplored/south) diff --git a/maps/shaded_hills/shaded_hills-inn.dmm b/maps/shaded_hills/shaded_hills-inn.dmm index 685ff059c044..a2ee7dff5e43 100644 --- a/maps/shaded_hills/shaded_hills-inn.dmm +++ b/maps/shaded_hills/shaded_hills-inn.dmm @@ -37,7 +37,7 @@ /turf/floor/path/basalt, /area/shaded_hills/general_store) "bW" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/cooking_vessel/skillet/iron, /obj/item/chems/glass/handmade/bowl/wood, /obj/item/chems/glass/handmade/bowl/wood, @@ -48,11 +48,11 @@ /turf/floor/wood/walnut, /area/shaded_hills/shrine/kitchen) "cl" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/wood/walnut, /area/shaded_hills/farmhouse) "cq" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/handmade/bowl/wood, /turf/floor/wood/walnut, /area/shaded_hills/inn) @@ -88,7 +88,7 @@ /turf/wall/log/walnut/shutter, /area/shaded_hills/general_store) "dK" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/wood/walnut, /area/shaded_hills/inn/porch) "dL" = ( @@ -182,7 +182,7 @@ /obj/structure/wall_sconce/lantern{ dir = 4 }, -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/wood/walnut, /area/shaded_hills/farmhouse) "gn" = ( @@ -283,7 +283,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/inn/porch) "id" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/handmade/bottle/beer, /obj/item/chems/glass/handmade/bottle/beer, /obj/item/chems/glass/handmade/bottle/beer, @@ -394,7 +394,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/inn) "lz" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/knife/kitchen/cleaver/bronze, /turf/floor/path/basalt, /area/shaded_hills/slaughterhouse) @@ -436,7 +436,7 @@ /turf/floor/dirt, /area/shaded_hills/outside/downlands) "ml" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/shears, /turf/floor/wood/walnut, /area/shaded_hills/farmhouse) @@ -477,7 +477,7 @@ /turf/floor/carpet/rustic, /area/shaded_hills/inn) "nN" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/chems/glass/bucket/wood, /turf/floor/path/basalt, /area/shaded_hills/slaughterhouse) @@ -510,7 +510,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/shrine) "pi" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/stack/medical/ointment/crafted/five, /obj/item/stack/medical/bandage/crafted/five, /turf/floor/path/herringbone/basalt, @@ -534,7 +534,7 @@ /turf/wall/brick/basalt, /area/shaded_hills/inn) "qL" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/ancient_surgery/bonesetter, /obj/item/ancient_surgery/retractor, /obj/item/ancient_surgery/sutures, @@ -553,7 +553,7 @@ }, /area/shaded_hills/outside/downlands/poi) "ra" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/mortar, /obj/item/rock/basalt, /turf/floor/wood/walnut, @@ -583,7 +583,7 @@ /turf/floor/carpet, /area/shaded_hills/inn) "rv" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/handmade/bottle, /obj/item/chems/glass/handmade/bottle/tall, /obj/item/chems/glass/handmade/bottle/wide, @@ -630,7 +630,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/inn) "sM" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /turf/floor/wood/walnut, /area/shaded_hills/general_store) "th" = ( @@ -647,7 +647,7 @@ /obj/effect/floor_decal/spline/fancy/wood/walnut{ dir = 1 }, -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/chems/glass/handmade/cup/wood, /turf/floor/wood/walnut, /area/shaded_hills/inn) @@ -713,7 +713,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/shrine/kitchen) "vz" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/cooking_vessel/baking_dish/earthenware, /obj/item/chems/cooking_vessel/baking_dish/earthenware, /turf/floor/wood/walnut, @@ -731,7 +731,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/inn) "wg" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/ancient_surgery/bonesaw, /obj/item/ancient_surgery/forceps, /turf/floor/path/herringbone/basalt, @@ -760,7 +760,7 @@ /turf/floor/dirt, /area/shaded_hills/outside/downlands) "xh" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/condiment/large/salt, /obj/item/chems/condiment/flour, /obj/item/chems/condiment/sugar, @@ -905,7 +905,7 @@ /turf/floor/path/basalt, /area/shaded_hills/shrine) "AG" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/bag/sack, /turf/floor/wood/walnut, /area/shaded_hills/farmhouse) @@ -1015,7 +1015,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/inn) "Ev" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/structure/wall_sconce/lantern{ dir = 1; pixel_y = 10; @@ -1035,7 +1035,7 @@ dir = 4; start_lit = 1 }, -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn) "EV" = ( @@ -1082,7 +1082,7 @@ /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn/kitchen) "Gj" = ( -/obj/structure/table/woodentable_reinforced/mahogany, +/obj/structure/table/wood/reinforced/mahogany, /turf/floor/carpet/red, /area/shaded_hills/shrine) "Gq" = ( @@ -1105,7 +1105,7 @@ /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn/kitchen) "Gw" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/bag/sack, /turf/floor/path/basalt, /area/shaded_hills/slaughterhouse) @@ -1260,12 +1260,12 @@ /turf/floor/wood/walnut, /area/shaded_hills/inn) "JK" = ( -/obj/structure/table/woodentable_reinforced/mahogany, +/obj/structure/table/wood/reinforced/mahogany, /obj/item/flame/candle/handmade, /turf/floor/carpet/red, /area/shaded_hills/shrine) "JM" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/ancient_surgery/cautery, /obj/item/ancient_surgery/scalpel, /turf/floor/path/herringbone/basalt, @@ -1315,7 +1315,7 @@ /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn) "LH" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/bucket/wood, /turf/floor/wood/walnut, /area/shaded_hills/farmhouse) @@ -1368,14 +1368,14 @@ /turf/open, /area/shaded_hills/inn/kitchen) "NF" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn) "NH" = ( /turf/unsimulated/mask, /area/shaded_hills/outside/downlands/poi) "NZ" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/handmade/bottle/tall/wine, /obj/item/chems/glass/handmade/bottle/tall/wine, /obj/item/chems/glass/handmade/bottle/tall/wine, @@ -1390,7 +1390,7 @@ /turf/floor/path/basalt, /area/shaded_hills/slaughterhouse) "Ot" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/cooking_vessel/pot/iron, /turf/floor/wood/walnut, /area/shaded_hills/shrine/kitchen) @@ -1593,7 +1593,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/farmhouse) "Tr" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/effect/floor_decal/spline/fancy/wood/walnut{ dir = 1 }, @@ -1608,7 +1608,7 @@ /turf/floor/dirt, /area/shaded_hills/outside/downlands) "TM" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/food/grown/potato, /obj/item/food/grown/potato, /obj/item/food/grown/carrot, @@ -1677,7 +1677,7 @@ /turf/wall/log/walnut, /area/shaded_hills/general_store) "Wh" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/mortar, /obj/item/rock/basalt, /turf/floor/wood/walnut, @@ -1689,7 +1689,7 @@ /turf/floor/straw, /area/shaded_hills/stable) "Wl" = ( -/obj/structure/table/woodentable_reinforced/ebony, +/obj/structure/table/wood/reinforced/ebony, /obj/item/chems/glass/handmade/cup/wood, /obj/effect/floor_decal/spline/fancy/wood/walnut{ dir = 1 @@ -1744,7 +1744,7 @@ /turf/floor/path/herringbone/basalt, /area/shaded_hills/inn/kitchen) "WY" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/wood/walnut, /area/shaded_hills/inn) "Xr" = ( diff --git a/maps/shaded_hills/shaded_hills-swamp.dmm b/maps/shaded_hills/shaded_hills-swamp.dmm index a4aa7292a652..0ac1cb7ad186 100644 --- a/maps/shaded_hills/shaded_hills-swamp.dmm +++ b/maps/shaded_hills/shaded_hills-swamp.dmm @@ -130,7 +130,7 @@ /turf/unsimulated/mask, /area/shaded_hills/outside/swamp) "Hi" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/handmade/teapot, /obj/item/chems/glass/handmade/cup/wood, /obj/item/chems/glass/handmade/cup/wood, diff --git a/maps/shaded_hills/submaps/woods/chemistry_shack/chemistry_shack.dmm b/maps/shaded_hills/submaps/woods/chemistry_shack/chemistry_shack.dmm index 9c04e479e740..d5bf78ffb075 100644 --- a/maps/shaded_hills/submaps/woods/chemistry_shack/chemistry_shack.dmm +++ b/maps/shaded_hills/submaps/woods/chemistry_shack/chemistry_shack.dmm @@ -36,7 +36,7 @@ /area/shaded_hills/outside/point_of_interest/chemistry_shack) "k" = ( /obj/abstract/exterior_marker/inside, -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/cooking_vessel/pot/iron, /obj/item/chems/glass/handmade/teapot, /obj/abstract/landmark/organize/vertical, @@ -56,7 +56,7 @@ /area/template_noop) "p" = ( /obj/abstract/exterior_marker/inside, -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/mortar, /obj/item/rock/basalt, /turf/floor/wood/walnut, @@ -107,7 +107,7 @@ /area/shaded_hills/outside/point_of_interest/chemistry_shack) "L" = ( /obj/abstract/exterior_marker/inside, -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/bladed/knife, /obj/item/food/grown/potato, /obj/item/food/grown/potato, diff --git a/maps/shaded_hills/submaps/woods/old_cabin/old_cabin.dmm b/maps/shaded_hills/submaps/woods/old_cabin/old_cabin.dmm index cb9a478a093d..e6b329c0e900 100644 --- a/maps/shaded_hills/submaps/woods/old_cabin/old_cabin.dmm +++ b/maps/shaded_hills/submaps/woods/old_cabin/old_cabin.dmm @@ -31,7 +31,7 @@ /turf/floor/wood/walnut, /area/shaded_hills/outside/point_of_interest/old_cabin) "x" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/flame/torch, /obj/item/flame/torch, /obj/item/rock/flint, @@ -41,7 +41,7 @@ /area/shaded_hills/outside/point_of_interest/old_cabin) "z" = ( /obj/effect/spider/spiderling/mundane, -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/structure/wall_sconce/torch{ dir = 1; pixel_y = 24 @@ -56,7 +56,7 @@ /area/shaded_hills/outside/point_of_interest/old_cabin) "D" = ( /obj/effect/spider/spiderling/mundane, -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/food/grown/carrot, /obj/abstract/exterior_marker/inside, /turf/floor/wood/walnut, @@ -66,7 +66,7 @@ /turf/wall/log/walnut/shutter, /area/shaded_hills/outside/point_of_interest/old_cabin) "H" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/bladed/knife, /obj/item/food/grown/potato, /obj/item/food/grown/potato, diff --git a/maps/shaded_hills/submaps/woods/suspicious_cabin/suspicious_cabin.dmm b/maps/shaded_hills/submaps/woods/suspicious_cabin/suspicious_cabin.dmm index e3e6c1ed4f48..1629e04adafd 100644 --- a/maps/shaded_hills/submaps/woods/suspicious_cabin/suspicious_cabin.dmm +++ b/maps/shaded_hills/submaps/woods/suspicious_cabin/suspicious_cabin.dmm @@ -28,7 +28,7 @@ /turf/floor/wood/walnut, /area/template_noop) "q" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/handmade/cup/wood, /turf/floor/wood/walnut, /area/template_noop) @@ -42,7 +42,7 @@ /turf/floor/path/basalt, /area/template_noop) "t" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/bladed/knife, /turf/floor/path/basalt, /area/template_noop) @@ -69,7 +69,7 @@ /turf/floor/wood/walnut, /area/template_noop) "E" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/handmade/teapot, /turf/floor/wood/walnut, /area/template_noop) @@ -78,7 +78,7 @@ /turf/floor/path/basalt, /area/template_noop) "J" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/food/grown/potato, /obj/item/chems/cooking_vessel/pot/iron, /turf/floor/path/basalt, @@ -104,11 +104,11 @@ /turf/floor/path/basalt, /area/template_noop) "R" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /turf/floor/wood/walnut, /area/template_noop) "S" = ( -/obj/structure/table/woodentable/ebony, +/obj/structure/table/wood/ebony, /obj/item/chems/glass/handmade/bowl/wood, /obj/item/chems/glass/handmade/bowl/wood, /obj/item/chems/glass/handmade/cup/wood, diff --git a/maps/tradeship/tradeship-0.dmm b/maps/tradeship/tradeship-0.dmm index 4ff16d85d3a4..9396c6f0d050 100644 --- a/maps/tradeship/tradeship-0.dmm +++ b/maps/tradeship/tradeship-0.dmm @@ -33,12 +33,12 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "ae" = ( /obj/effect/decal/cleanable/generic, /obj/item/stool/wood, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "af" = ( /obj/structure/disposalpipe/up, @@ -1012,7 +1012,7 @@ /turf/floor, /area/ship/trade/aft_port_underside_maint) "en" = ( -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "eu" = ( /obj/structure/window/basic, @@ -1074,8 +1074,8 @@ /area/ship/trade/disused) "hc" = ( /obj/item/radio, -/obj/structure/table/woodentable/walnut, -/turf/floor/wood/walnut, +/obj/structure/table/laminate/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "hf" = ( /obj/structure/lattice, @@ -1083,7 +1083,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "hg" = ( /obj/machinery/door/airlock/hatch/autoname/general, @@ -1122,7 +1122,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "jk" = ( /obj/item/mollusc/barnacle{ @@ -1773,7 +1773,7 @@ /obj/structure/cable{ icon_state = "0-4" }, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "II" = ( /obj/structure/stairs/long/west, @@ -1861,7 +1861,7 @@ /obj/structure/bed, /obj/item/bedsheet/rainbow, /obj/structure/curtain/open/bed, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "LH" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -2017,9 +2017,9 @@ /turf/floor, /area/ship/trade/aft_starboard_underside_maint) "Qh" = ( -/obj/structure/table/woodentable/mahogany, +/obj/structure/table/laminate/mahogany, /obj/item/cell/crap/empty, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "Qv" = ( /obj/effect/floor_decal/industrial/warning{ @@ -2121,7 +2121,7 @@ /area/ship/trade/loading_bay) "VT" = ( /obj/machinery/hologram/holopad/longrange, -/turf/floor/wood/walnut, +/turf/floor/laminate/walnut, /area/ship/trade/disused) "Xe" = ( /turf/wall, diff --git a/maps/tradeship/tradeship-2.dmm b/maps/tradeship/tradeship-2.dmm index 5861bc931e5e..c9ab89371260 100644 --- a/maps/tradeship/tradeship-2.dmm +++ b/maps/tradeship/tradeship-2.dmm @@ -58,14 +58,14 @@ "af" = ( /obj/item/paper_bin, /obj/item/pen, -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/light_switch{ pixel_y = 25 }, /obj/random/action_figure, /obj/random_multi/single_item/captains_spare_id, /obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/captain) "ag" = ( /obj/item/bedsheet/captain, @@ -76,7 +76,7 @@ dir = 8; pixel_x = 21 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/captain) "ah" = ( /obj/item/radio/intercom{ @@ -404,7 +404,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/fmate) "aR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -2499,7 +2499,7 @@ /obj/structure/cable{ icon_state = "6-8" }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "ge" = ( /obj/machinery/light_switch{ @@ -2516,7 +2516,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "gg" = ( /obj/effect/paint/brown, @@ -2642,7 +2642,7 @@ dir = 4; pixel_x = -21 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "gw" = ( /obj/effect/decal/cleanable/generic, @@ -2657,14 +2657,14 @@ level = 2 }, /obj/item/synthesized_instrument/trumpet, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "gx" = ( /obj/item/radio/intercom{ dir = 8; pixel_x = 22 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "gz" = ( /obj/structure/lattice, @@ -2716,7 +2716,7 @@ pixel_x = 32; dir = 4 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "gL" = ( /obj/structure/disposalpipe/segment, @@ -5078,7 +5078,7 @@ /area/ship/trade/shuttle/outgoing/general) "rR" = ( /obj/item/flashlight, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "rT" = ( /obj/machinery/computer/modular/preset/engineering, @@ -5425,7 +5425,7 @@ /obj/item/boombox, /obj/item/stack/tape_roll/barricade_tape/bureaucracy, /obj/machinery/keycard_auth, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/captain) "vS" = ( /turf/floor/tiled/freezer, @@ -5903,7 +5903,7 @@ pixel_y = -2; dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/fmate) "Cb" = ( /obj/machinery/atmospherics/pipe/simple/visible/green{ @@ -6060,7 +6060,7 @@ }, /obj/structure/cable, /obj/machinery/icecream_vat, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "Dq" = ( /obj/effect/paint/brown, @@ -6185,7 +6185,7 @@ /obj/item/briefcase/crimekit, /obj/item/taperecorder, /obj/item/camera, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/fmate) "Ec" = ( /obj/structure/closet/crate, @@ -6475,7 +6475,7 @@ /area/ship/trade/crew/hallway/port) "Hs" = ( /obj/machinery/light, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "HA" = ( /obj/structure/cable{ @@ -6638,7 +6638,7 @@ /obj/abstract/landmark/start{ name = "First Mate" }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/fmate) "Jn" = ( /obj/effect/floor_decal/corner/beige{ @@ -7077,7 +7077,7 @@ dir = 4 }, /obj/structure/bookcase/skill_books/random, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "NM" = ( /obj/effect/floor_decal/corner/beige{ @@ -7125,7 +7125,7 @@ /obj/item/clothing/shoes/color/brown, /obj/random/plushie, /mob/living/simple_animal/corgi/Ian, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/fmate) "Oc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ @@ -7135,7 +7135,7 @@ /obj/machinery/network/relay{ initial_network_id = "tradenet" }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "Og" = ( /obj/structure/cable{ @@ -7363,7 +7363,7 @@ /turf/floor/tiled/techmaint, /area/ship/trade/maintenance/hallway) "Rb" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/structure/cable{ icon_state = "0-8" }, @@ -7388,7 +7388,7 @@ dir = 8; pixel_x = -21 }, -/turf/floor/wood/yew, +/turf/floor/laminate/yew, /area/ship/trade/unused) "Rg" = ( /obj/structure/railing/mapped{ @@ -7742,7 +7742,7 @@ /area/ship/trade/garden) "Vd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/fmate) "Vl" = ( /obj/structure/handrail{ @@ -7847,7 +7847,7 @@ dir = 8; pixel_x = 24 }, -/turf/floor/wood, +/turf/floor/laminate, /area/ship/trade/command/captain) "WE" = ( /obj/machinery/door/firedoor, diff --git a/maps/tradeship/tradeship.dm b/maps/tradeship/tradeship.dm index f3134a1184a8..115fdd551c98 100644 --- a/maps/tradeship/tradeship.dm +++ b/maps/tradeship/tradeship.dm @@ -5,6 +5,7 @@ #endif #include "../../mods/gamemodes/cult/_cult.dme" + #include "../../mods/gamemodes/deity/_deity.dme" #include "../../mods/gamemodes/heist/_heist.dme" #include "../../mods/gamemodes/ninja/_ninja.dme" #include "../../mods/gamemodes/revolution/_revolution.dme" diff --git a/mods/content/anima/runestones.dm b/mods/content/anima/runestones.dm index 16681ea263e8..e4874bde0225 100644 --- a/mods/content/anima/runestones.dm +++ b/mods/content/anima/runestones.dm @@ -45,7 +45,7 @@ /obj/item/runestone/attackby(obj/item/W, mob/user) - if(W.get_attack_force() && user.a_intent == I_HURT) + if(W.get_attack_force() && user.check_intent(I_FLAG_HARM)) user.visible_message("\The [user] brings \the [W] down on \the [src]!") crack_runestone(user) return TRUE diff --git a/mods/content/corporate/away_sites/lar_maria/lar_maria-2.dmm b/mods/content/corporate/away_sites/lar_maria/lar_maria-2.dmm index cc042aa3f948..68f05027666b 100644 --- a/mods/content/corporate/away_sites/lar_maria/lar_maria-2.dmm +++ b/mods/content/corporate/away_sites/lar_maria/lar_maria-2.dmm @@ -694,37 +694,37 @@ /turf/floor/plating, /area/lar_maria/atmos) "bV" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "bW" = ( /obj/machinery/door/firedoor, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "bX" = ( /obj/machinery/alarm{ dir = 1; pixel_y = -25 }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "bY" = ( /obj/machinery/light{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "bZ" = ( /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "ca" = ( /obj/abstract/landmark/corpse/lar_maria/virologist, /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cb" = ( /obj/structure/closet/emcloset, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cc" = ( /obj/machinery/light{ @@ -798,12 +798,12 @@ /area/lar_maria/dorms) "cp" = ( /obj/machinery/door/airlock, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cq" = ( /obj/machinery/door/airlock, /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cr" = ( /obj/structure/bookcase, @@ -854,35 +854,35 @@ /turf/floor/plating, /area/lar_maria/atmos) "cD" = ( -/obj/structure/table/woodentable, -/turf/floor/wood, +/obj/structure/table/laminate, +/turf/floor/laminate, /area/lar_maria/dorms) "cE" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/smokes, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/toy, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cG" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/glowsticks, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cH" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/smokes, /obj/random/drinkbottle, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cI" = ( /obj/machinery/computer/modular{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cJ" = ( /obj/structure/window/basic{ @@ -1009,32 +1009,32 @@ /obj/structure/bed/chair/comfy/purple{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "cZ" = ( /obj/abstract/landmark/corpse/lar_maria/test_subject, /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "da" = ( /obj/structure/bookcase/manuals/medical, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "db" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dc" = ( /mob/living/simple_animal/hostile/lar_maria/guard/ranged, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "de" = ( /obj/structure/bed/chair/comfy/brown{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "df" = ( /obj/structure/closet, @@ -1042,11 +1042,11 @@ /obj/random/smokes, /obj/random/snack, /obj/random/snack, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dg" = ( /obj/structure/bookcase/manuals/engineering, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dh" = ( /obj/structure/window/basic, @@ -1118,31 +1118,31 @@ /area/lar_maria/atmos) "ds" = ( /mob/living/simple_animal/hostile/lar_maria/virologist, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dt" = ( /obj/structure/bed/padded, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "du" = ( /obj/machinery/light, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dv" = ( /obj/structure/closet, /obj/random/masks, /obj/random/accessory, /obj/random/smokes, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dw" = ( /obj/random/closet, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dx" = ( /obj/structure/bed/padded, /obj/random/plushie, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dy" = ( /obj/structure/window/basic, @@ -1212,7 +1212,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dJ" = ( /obj/structure/window/basic{ @@ -1316,18 +1316,18 @@ "dX" = ( /obj/structure/bed/padded, /obj/random/plushie/large, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dY" = ( /obj/structure/closet, /obj/random/loot, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "dZ" = ( /obj/structure/closet, /obj/random/shoes, /obj/random/snack, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "ea" = ( /obj/structure/table, @@ -1387,40 +1387,40 @@ /area/lar_maria/library) "ei" = ( /obj/structure/bed/chair/comfy/beige, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "ej" = ( /obj/machinery/botany, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "ek" = ( /obj/structure/bed/chair/comfy/brown, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "el" = ( /obj/abstract/landmark/corpse/lar_maria/virologist_female, /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "em" = ( /obj/machinery/suit_cycler, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "en" = ( /obj/structure/closet, /obj/random/loot, /obj/random/accessory, /obj/item/clothing/head/soft/zhp_cap, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "eo" = ( /obj/structure/bed/chair/comfy/green, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "ep" = ( /obj/structure/closet, /obj/random/accessory, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "eq" = ( /turf/wall/r_wall, @@ -1482,7 +1482,7 @@ /turf/floor/tiled, /area/lar_maria/office) "eC" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper_bin, /obj/item/pen/blue, /turf/floor/tiled, @@ -1498,20 +1498,20 @@ /turf/floor/tiled, /area/lar_maria/office) "eF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/handcuffs, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "eG" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/smokes, /obj/random/snack, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "eH" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/beakers, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "eI" = ( /obj/structure/hygiene/toilet, @@ -1588,7 +1588,7 @@ /turf/floor/tiled, /area/lar_maria/office) "eU" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/tiled, /area/lar_maria/office) "eV" = ( @@ -1642,7 +1642,7 @@ "fh" = ( /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fi" = ( /obj/machinery/alarm{ @@ -1650,7 +1650,7 @@ pixel_y = -25 }, /obj/effect/decal/cleanable/blood, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fj" = ( /obj/machinery/light/small{ @@ -1812,31 +1812,31 @@ /turf/floor/tiled, /area/lar_maria/office) "fF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/cane/aluminium, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fG" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/clothing/head/soft/zhp_cap, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fH" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/drinkbottle, /obj/random/contraband, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fI" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/toolbox, /obj/item/scalpel, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fJ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/snack, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fK" = ( /obj/machinery/door/airlock, @@ -1905,25 +1905,25 @@ /obj/machinery/vending/engivend{ req_access = list() }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fV" = ( /mob/living/simple_animal/hostile/lar_maria/guard, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fW" = ( /obj/structure/bookcase, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fX" = ( /mob/living/simple_animal/hostile/lar_maria/virologist/female, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fY" = ( /obj/structure/closet, /obj/random/handgun, /obj/random/powercell, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "fZ" = ( /obj/structure/hygiene/shower{ @@ -2012,7 +2012,7 @@ dir = 4; pixel_x = -25 }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "gn" = ( /obj/machinery/power/apc{ @@ -2024,12 +2024,12 @@ /obj/structure/cable{ icon_state = "0-2" }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "go" = ( /obj/structure/bed/padded, /obj/abstract/landmark/corpse/lar_maria/virologist, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/dorms) "gp" = ( /obj/random/trash, @@ -2067,7 +2067,7 @@ /obj/machinery/door/airlock, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/mess_hall) "gw" = ( /obj/machinery/door/airlock, @@ -2076,7 +2076,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/floor/wood, +/turf/floor/laminate, /area/lar_maria/mess_hall) "gx" = ( /turf/wall/r_wall, diff --git a/mods/content/corporate/icons/banner.dmi b/mods/content/corporate/icons/banner.dmi deleted file mode 100644 index cc4c3c95e9ef..000000000000 Binary files a/mods/content/corporate/icons/banner.dmi and /dev/null differ diff --git a/mods/content/corporate/icons/banner_symbols.dmi b/mods/content/corporate/icons/banner_symbols.dmi new file mode 100644 index 000000000000..8d534a69a483 Binary files /dev/null and b/mods/content/corporate/icons/banner_symbols.dmi differ diff --git a/mods/content/corporate/items/clutter.dm b/mods/content/corporate/items/clutter.dm index 4de07358d1b1..19ba76ee4557 100644 --- a/mods/content/corporate/items/clutter.dm +++ b/mods/content/corporate/items/clutter.dm @@ -23,14 +23,19 @@ /obj/item/banner/nanotrasen name = "\improper NanoTrasen banner" hung_desc = "The banner is emblazoned with the NanoTrasen logo." - icon = 'mods/content/corporate/icons/banner.dmi' desc = "A banner emblazoned with the NanoTrasen logo." material_alteration = MAT_FLAG_ALTERATION_NONE color = COLOR_NAVY_BLUE + trim_color = COLOR_GOLD decals = list( - "banner_trim" = COLOR_GOLD, - "banner_nanotrasen" = COLOR_WHITE + /decl/banner_symbol/nanotrasen = COLOR_WHITE ) /obj/structure/banner_frame/nanotrasen banner = /obj/item/banner/nanotrasen + +/decl/banner_symbol/nanotrasen + icon = 'mods/content/corporate/icons/banner_symbols.dmi' + name = "NanoTrasen logo" + icon_state = "nanotrasen" + uid = "symbol_corporate_nanotrasen" diff --git a/mods/content/fantasy/_fantasy.dme b/mods/content/fantasy/_fantasy.dme index 3cd8559ddf0f..1bf5230189d7 100644 --- a/mods/content/fantasy/_fantasy.dme +++ b/mods/content/fantasy/_fantasy.dme @@ -28,12 +28,12 @@ #include "datum\kobaloi\species.dm" #include "items\material_overrides.dm" #include "items\clothing\_loadout.dm" +#include "items\clothing\_overrides.dm" #include "items\clothing\_recipes.dm" #include "items\clothing\armor.dm" #include "items\clothing\glasses.dm" #include "items\clothing\jerkin.dm" #include "items\clothing\loincloth.dm" -#include "items\clothing\overrides.dm" #include "items\clothing\trousers.dm" #include "props\signpost.dm" // END_INCLUDE diff --git a/mods/content/fantasy/datum/kobaloi/clothing.dm b/mods/content/fantasy/datum/kobaloi/clothing.dm index 1bd63942fbf5..71346517d9c2 100644 --- a/mods/content/fantasy/datum/kobaloi/clothing.dm +++ b/mods/content/fantasy/datum/kobaloi/clothing.dm @@ -1,4 +1,2 @@ -/obj/item/bag/sack/Initialize() - . = ..() - if(!(BODYTYPE_KOBALOI in sprite_sheets)) - LAZYSET(sprite_sheets, BODYTYPE_KOBALOI, 'mods/content/fantasy/icons/clothing/sack_kobaloi.dmi') \ No newline at end of file +/obj/item/bag/sack + _kobaloi_onmob_icon = 'mods/content/fantasy/icons/clothing/sack_kobaloi.dmi' diff --git a/mods/content/fantasy/items/clothing/_loadout.dm b/mods/content/fantasy/items/clothing/_loadout.dm index 28468c549413..9d7f449a9f5c 100644 --- a/mods/content/fantasy/items/clothing/_loadout.dm +++ b/mods/content/fantasy/items/clothing/_loadout.dm @@ -168,7 +168,7 @@ slot = slot_shoes_str available_materials = list( /decl/material/solid/organic/leather, - /decl/material/solid/organic/wood, + /decl/material/solid/organic/wood/oak, /decl/material/solid/organic/wood/mahogany, /decl/material/solid/organic/wood/maple, /decl/material/solid/organic/wood/ebony, @@ -243,7 +243,7 @@ name = "shovel" path = /obj/item/tool/shovel/one_material available_materials = list( - /decl/material/solid/organic/wood, + /decl/material/solid/organic/wood/oak, /decl/material/solid/organic/wood/mahogany, /decl/material/solid/organic/wood/maple, /decl/material/solid/organic/wood/ebony, diff --git a/mods/content/fantasy/items/clothing/_overrides.dm b/mods/content/fantasy/items/clothing/_overrides.dm new file mode 100644 index 000000000000..0ecd3b43e1cb --- /dev/null +++ b/mods/content/fantasy/items/clothing/_overrides.dm @@ -0,0 +1,15 @@ +/obj/item + var/_kobaloi_onmob_icon + var/_hnoll_onmob_icon + +/obj/item/setup_sprite_sheets() + . = ..() + if(_kobaloi_onmob_icon) + LAZYSET(sprite_sheets, BODYTYPE_KOBALOI, _kobaloi_onmob_icon) + if(_hnoll_onmob_icon) + LAZYSET(sprite_sheets, BODYTYPE_HNOLL, _hnoll_onmob_icon) + +/obj/item/clothing/gloves/setup_equip_flags() + . = ..() + if(!isnull(bodytype_equip_flags) && !(bodytype_equip_flags & BODY_EQUIP_FLAG_EXCLUDE)) + bodytype_equip_flags |= BODY_EQUIP_FLAG_HNOLL \ No newline at end of file diff --git a/mods/content/fantasy/items/clothing/jerkin.dm b/mods/content/fantasy/items/clothing/jerkin.dm index 4944bae19765..dc437db931dd 100644 --- a/mods/content/fantasy/items/clothing/jerkin.dm +++ b/mods/content/fantasy/items/clothing/jerkin.dm @@ -2,6 +2,6 @@ name = "jerkin" desc = "A sturdy jerkin, worn on the upper body." icon = 'mods/content/fantasy/icons/clothing/jerkin.dmi' - sprite_sheets = list(BODYTYPE_HNOLL = 'mods/content/fantasy/icons/clothing/jerkin_hnoll.dmi') + _hnoll_onmob_icon = 'mods/content/fantasy/icons/clothing/jerkin_hnoll.dmi' material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC material = /decl/material/solid/organic/leather diff --git a/mods/content/fantasy/items/clothing/loincloth.dm b/mods/content/fantasy/items/clothing/loincloth.dm index 168127ba6add..5cb8288038e1 100644 --- a/mods/content/fantasy/items/clothing/loincloth.dm +++ b/mods/content/fantasy/items/clothing/loincloth.dm @@ -3,7 +3,7 @@ gender = NEUTER desc = "A simple garment that is worn around the legs and lower body." icon = 'mods/content/fantasy/icons/clothing/loincloth.dmi' - sprite_sheets = list(BODYTYPE_HNOLL = 'mods/content/fantasy/icons/clothing/loincloth_hnoll.dmi') + _hnoll_onmob_icon = 'mods/content/fantasy/icons/clothing/loincloth_hnoll.dmi' material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC material = /decl/material/solid/organic/skin/fur diff --git a/mods/content/fantasy/items/clothing/overrides.dm b/mods/content/fantasy/items/clothing/overrides.dm deleted file mode 100644 index 8ca8f71eea1e..000000000000 --- a/mods/content/fantasy/items/clothing/overrides.dm +++ /dev/null @@ -1,4 +0,0 @@ -/obj/item/clothing/gloves/setup_equip_flags() - . = ..() - if(!isnull(bodytype_equip_flags) && !(bodytype_equip_flags & BODY_EQUIP_FLAG_EXCLUDE)) - bodytype_equip_flags |= BODY_EQUIP_FLAG_HNOLL \ No newline at end of file diff --git a/mods/content/fantasy/items/clothing/trousers.dm b/mods/content/fantasy/items/clothing/trousers.dm index 37d757d3abe5..cbe30375bff0 100644 --- a/mods/content/fantasy/items/clothing/trousers.dm +++ b/mods/content/fantasy/items/clothing/trousers.dm @@ -5,9 +5,7 @@ material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC material = /decl/material/solid/organic/leather color = /decl/material/solid/organic/leather::color - sprite_sheets = list( - BODYTYPE_HNOLL = 'mods/content/fantasy/icons/clothing/trousers_hnoll.dmi' - ) + _hnoll_onmob_icon = 'mods/content/fantasy/icons/clothing/trousers_hnoll.dmi' /obj/item/clothing/pants/trousers/jerkin/Initialize() . = ..() @@ -20,6 +18,4 @@ name = "braies" desc = "Some short trousers. Comfortable and easy to wear." icon = 'mods/content/fantasy/icons/clothing/braies.dmi' - sprite_sheets = list( - BODYTYPE_HNOLL = 'mods/content/fantasy/icons/clothing/braies_hnoll.dmi' - ) + _hnoll_onmob_icon = 'mods/content/fantasy/icons/clothing/braies_hnoll.dmi' diff --git a/mods/content/government/away_sites/icarus/icarus-1.dmm b/mods/content/government/away_sites/icarus/icarus-1.dmm index b04503e93339..8779b3ce78de 100644 --- a/mods/content/government/away_sites/icarus/icarus-1.dmm +++ b/mods/content/government/away_sites/icarus/icarus-1.dmm @@ -26,11 +26,11 @@ /turf/floor/plating, /area/icarus/vessel) "aj" = ( -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "ak" = ( /obj/item/stack/material/ore/slag, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "al" = ( /obj/structure/flora/bush/palebush, @@ -38,20 +38,20 @@ /area/icarus/open) "am" = ( /obj/structure/bed/chair/comfy/black, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "an" = ( /obj/structure/bed/chair/comfy/captain, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "ao" = ( /obj/structure/bed/chair/comfy/black, /obj/item/secure_storage/briefcase, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "ap" = ( /obj/random/trash, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aq" = ( /turf/wall/r_wall, @@ -65,21 +65,21 @@ /area/icarus/vessel) "at" = ( /obj/structure/closet/gmcloset, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "au" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flame/fuelled/lighter/zippo/random, /obj/random/smokes, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "av" = ( -/obj/structure/table/woodentable, -/turf/floor/wood, +/obj/structure/table/laminate, +/turf/floor/laminate, /area/icarus/vessel) "aw" = ( /obj/machinery/papershredder, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "ax" = ( /obj/item/stack/material/ore/slag, @@ -87,55 +87,55 @@ /area/icarus/open) "ay" = ( /obj/item/shreddedp, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "az" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/smokes, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aA" = ( /obj/machinery/photocopier, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aB" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 }, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/lunchbox/mars, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aE" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/photo_album, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/drinkbottle, /obj/random/drinkbottle, /obj/random/snack, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aG" = ( /obj/machinery/light, /obj/structure/filing_cabinet/tall, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aH" = ( /obj/structure/filing_cabinet/tall, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aI" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4; level = 2 }, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -144,25 +144,25 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aK" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aL" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/fancy/cigar, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aM" = ( /obj/machinery/door/airlock, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/floor/wood, +/turf/floor/laminate, /area/icarus/vessel) "aN" = ( /obj/structure/ladder, diff --git a/mods/content/government/away_sites/icarus/icarus-2.dmm b/mods/content/government/away_sites/icarus/icarus-2.dmm index e32afe37e27f..394879619f2b 100644 --- a/mods/content/government/away_sites/icarus/icarus-2.dmm +++ b/mods/content/government/away_sites/icarus/icarus-2.dmm @@ -484,12 +484,12 @@ /turf/floor/tiled, /area/icarus/vessel) "bI" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/loot, /turf/floor/tiled, /area/icarus/vessel) "bJ" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /turf/floor/tiled, /area/icarus/vessel) "bK" = ( @@ -647,7 +647,7 @@ /turf/floor/tiled, /area/icarus/vessel) "cl" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/backpack/captain, /obj/machinery/alarm{ alarm_id = "xenobio3_alarm"; @@ -657,7 +657,7 @@ /turf/floor/tiled, /area/icarus/vessel) "cm" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/paper/icarus/crew_roster, /obj/item/folder/blue, /turf/floor/tiled, @@ -751,7 +751,7 @@ /turf/floor/tiled, /area/icarus/vessel) "cA" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/drinks/bottle/whiskey, /turf/floor/tiled, /area/icarus/vessel) @@ -768,12 +768,12 @@ /turf/floor/tiled, /area/icarus/vessel) "cD" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/toy/ship_model, /turf/floor/tiled, /area/icarus/vessel) "cE" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/action_figure, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 @@ -903,7 +903,7 @@ /turf/floor/tiled, /area/icarus/vessel) "cW" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/disk/secret_project/science, /turf/floor/tiled, /area/icarus/vessel) @@ -1075,7 +1075,7 @@ /turf/floor/tiled, /area/icarus/vessel) "du" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/flashlight/lamp, /turf/floor/tiled, /area/icarus/vessel) diff --git a/mods/content/government/icons/banner.dmi b/mods/content/government/icons/banner.dmi deleted file mode 100644 index 88a409948370..000000000000 Binary files a/mods/content/government/icons/banner.dmi and /dev/null differ diff --git a/mods/content/government/icons/banner_symbols.dmi b/mods/content/government/icons/banner_symbols.dmi new file mode 100644 index 000000000000..ae958dd1f6d3 Binary files /dev/null and b/mods/content/government/icons/banner_symbols.dmi differ diff --git a/mods/content/government/items/clutter.dm b/mods/content/government/items/clutter.dm index 2f67c48bb0c5..2608d1ff5067 100644 --- a/mods/content/government/items/clutter.dm +++ b/mods/content/government/items/clutter.dm @@ -18,13 +18,12 @@ /obj/item/banner/solgov name = "\improper SolGov banner" desc = "A banner emblazoned with the solar seal." - icon = 'mods/content/government/icons/banner.dmi' hung_desc = "The banner is emblazoned with a golden SolGov seal." material_alteration = MAT_FLAG_ALTERATION_NONE color = COLOR_NAVY_BLUE + trim_color = COLOR_GOLD decals = list( - "banner_trim" = COLOR_GOLD, - "banner_solgov" = COLOR_WHITE + /decl/banner_symbol/government/sol = COLOR_WHITE ) /obj/structure/banner_frame/virgov @@ -37,10 +36,23 @@ name = "\improper VirGov banner" hung_desc = "The banner is emblazoned with a white VirGov seal." desc = "A banner emblazoned with the VirGov seal." - icon = 'mods/content/government/icons/banner.dmi' material_alteration = MAT_FLAG_ALTERATION_NONE color = COLOR_NAVY_BLUE + trim_color = COLOR_GOLD decals = list( - "banner_trim" = COLOR_GOLD, - "banner_virgov" = COLOR_WHITE + /decl/banner_symbol/government/vir = COLOR_WHITE ) + +/decl/banner_symbol/government + icon = 'mods/content/government/icons/banner_symbols.dmi' + abstract_type = /decl/banner_symbol/government + +/decl/banner_symbol/government/sol + name = "Sol insignia" + icon_state = "sol" + uid = "symbol_government_sol" + +/decl/banner_symbol/government/vir + name = "Vir insignia" + icon_state = "vir" + uid = "symbol_government_vir" diff --git a/mods/content/psionics/system/psionics/faculties/_faculty.dm b/mods/content/psionics/system/psionics/faculties/_faculty.dm index 8c31791010a2..03d9fc7a2363 100644 --- a/mods/content/psionics/system/psionics/faculties/_faculty.dm +++ b/mods/content/psionics/system/psionics/faculties/_faculty.dm @@ -1,11 +1,16 @@ /decl/psionic_faculty var/id var/name - var/associated_intent + var/associated_intent_flag var/list/armour_types = list() var/list/powers = list() +/decl/psionic_faculty/validate() + . = ..() + if(!isnull(associated_intent_flag) && !isnum(associated_intent_flag)) + . += "non-bitflag associated_intent_flag value set" + /decl/psionic_faculty/Initialize() . = ..() for(var/atype in armour_types) - SSpsi.armour_faculty_by_type[atype] = id \ No newline at end of file + SSpsi.armour_faculty_by_type[atype] = id diff --git a/mods/content/psionics/system/psionics/faculties/coercion.dm b/mods/content/psionics/system/psionics/faculties/coercion.dm index 0cddc48bf322..2af44aa9335a 100644 --- a/mods/content/psionics/system/psionics/faculties/coercion.dm +++ b/mods/content/psionics/system/psionics/faculties/coercion.dm @@ -1,7 +1,7 @@ /decl/psionic_faculty/coercion id = PSI_COERCION name = "Coercion" - associated_intent = I_DISARM + associated_intent_flag = I_FLAG_DISARM armour_types = list(PSIONIC) /decl/psionic_power/coercion diff --git a/mods/content/psionics/system/psionics/faculties/energistics.dm b/mods/content/psionics/system/psionics/faculties/energistics.dm index 4deb52912db6..2396a1e71193 100644 --- a/mods/content/psionics/system/psionics/faculties/energistics.dm +++ b/mods/content/psionics/system/psionics/faculties/energistics.dm @@ -1,7 +1,7 @@ /decl/psionic_faculty/energistics id = PSI_ENERGISTICS name = "Energistics" - associated_intent = I_HURT + associated_intent_flag = I_FLAG_HARM armour_types = list(ARMOR_BOMB, ARMOR_LASER, ARMOR_ENERGY) /decl/psionic_power/energistics diff --git a/mods/content/psionics/system/psionics/faculties/psychokinesis.dm b/mods/content/psionics/system/psionics/faculties/psychokinesis.dm index 8ab5976c74fe..8d0dd5c61f88 100644 --- a/mods/content/psionics/system/psionics/faculties/psychokinesis.dm +++ b/mods/content/psionics/system/psionics/faculties/psychokinesis.dm @@ -1,7 +1,7 @@ /decl/psionic_faculty/psychokinesis id = PSI_PSYCHOKINESIS name = "Psychokinesis" - associated_intent = I_GRAB + associated_intent_flag = I_FLAG_GRAB armour_types = list(ARMOR_MELEE, ARMOR_BULLET) /decl/psionic_power/psychokinesis @@ -19,7 +19,7 @@ admin_log = FALSE /decl/psionic_power/psychokinesis/psiblade/invoke(var/mob/living/user, var/mob/living/target) - if((target && user != target) || user.a_intent != I_HURT) + if((target && user != target) || !user.check_intent(I_FLAG_HARM)) return FALSE . = ..() if(.) @@ -43,7 +43,7 @@ admin_log = FALSE /decl/psionic_power/psychokinesis/tinker/invoke(var/mob/living/user, var/mob/living/target) - if((target && user != target) || user.a_intent != I_HELP) + if((target && user != target) || !user.check_intent(I_FLAG_HELP)) return FALSE . = ..() if(.) @@ -64,7 +64,7 @@ ) /decl/psionic_power/psychokinesis/telekinesis/invoke(var/mob/living/user, var/mob/living/target) - if(user.a_intent != I_GRAB) + if(!user.check_intent(I_FLAG_GRAB)) return FALSE . = ..() if(.) diff --git a/mods/content/psionics/system/psionics/faculties/redaction.dm b/mods/content/psionics/system/psionics/faculties/redaction.dm index 97354f41a059..8879259a72ac 100644 --- a/mods/content/psionics/system/psionics/faculties/redaction.dm +++ b/mods/content/psionics/system/psionics/faculties/redaction.dm @@ -1,7 +1,7 @@ /decl/psionic_faculty/redaction id = PSI_REDACTION name = "Redaction" - associated_intent = I_HELP + associated_intent_flag = I_FLAG_HELP armour_types = list(ARMOR_BIO, ARMOR_RAD) /decl/psionic_power/redaction diff --git a/mods/content/psionics/system/psionics/mob/borer_power.dm b/mods/content/psionics/system/psionics/mob/borer_power.dm index b48874f08e89..48f62c8adab6 100644 --- a/mods/content/psionics/system/psionics/mob/borer_power.dm +++ b/mods/content/psionics/system/psionics/mob/borer_power.dm @@ -26,7 +26,7 @@ /mob/living/simple_animal/borer/RangedAttack(atom/A, var/params) . = ..() - if(!. && a_intent == I_DISARM && isliving(A) && !neutered && can_do_special_ranged_attack(FALSE)) + if(!. && check_intent(I_FLAG_DISARM) && isliving(A) && !neutered && can_do_special_ranged_attack(FALSE)) var/mob/living/M = A if(locate(/mob/living/simple_animal/borer) in M.contents) to_chat(src, SPAN_WARNING("You cannot dominate a host who already has a passenger!")) diff --git a/mods/content/psionics/system/psionics/mob/mob_interactions.dm b/mods/content/psionics/system/psionics/mob/mob_interactions.dm index fcc01c79fa63..366adb308823 100644 --- a/mods/content/psionics/system/psionics/mob/mob_interactions.dm +++ b/mods/content/psionics/system/psionics/mob/mob_interactions.dm @@ -25,18 +25,18 @@ return TRUE /datum/ability_handler/psionics/do_grabbed_invocation(mob/user, atom/target) - INVOKE_PSI_POWERS(user, get_grab_powers(SSpsi.faculties_by_intent[user.a_intent]), target) + INVOKE_PSI_POWERS(user, get_grab_powers(SSpsi.get_faculty_by_intent(user.get_intent())), target) /datum/ability_handler/psionics/can_do_melee_invocation(mob/user, atom/target) return TRUE /datum/ability_handler/psionics/do_melee_invocation(mob/user, atom/target) - INVOKE_PSI_POWERS(user, get_melee_powers(SSpsi.faculties_by_intent[user.a_intent]), target) + INVOKE_PSI_POWERS(user, get_melee_powers(SSpsi.get_faculty_by_intent(user.get_intent())), target) /datum/ability_handler/psionics/can_do_ranged_invocation(mob/user, atom/target) return TRUE /datum/ability_handler/psionics/do_ranged_invocation(mob/user, atom/target) - INVOKE_PSI_POWERS(user, get_ranged_powers(SSpsi.faculties_by_intent[user.a_intent]), target) + INVOKE_PSI_POWERS(user, get_ranged_powers(SSpsi.get_faculty_by_intent(user.get_intent())), target) #undef INVOKE_PSI_POWERS \ No newline at end of file diff --git a/mods/content/psionics/system/subsystem_psi.dm b/mods/content/psionics/system/subsystem_psi.dm index 806f911873b5..e6621835ce9d 100644 --- a/mods/content/psionics/system/subsystem_psi.dm +++ b/mods/content/psionics/system/subsystem_psi.dm @@ -5,13 +5,27 @@ PROCESSING_SUBSYSTEM_DEF(psi) priority = SS_PRIORITY_PSYCHICS flags = SS_POST_FIRE_TIMING | SS_BACKGROUND - var/list/faculties_by_id = list() - var/list/faculties_by_name = list() - var/list/all_aura_images = list() - var/list/psi_dampeners = list() - var/list/psi_monitors = list() + var/list/faculties_by_id = list() + var/list/faculties_by_name = list() + var/list/all_aura_images = list() + var/list/psi_dampeners = list() + var/list/psi_monitors = list() var/list/armour_faculty_by_type = list() - var/list/faculties_by_intent = list() + var/list/faculties_by_intent = new(I_FLAG_ALL) + +/datum/controller/subsystem/processing/psi/proc/get_faculty_by_intent(decl/intent/intent) + var/static/list/intent_flags = list( + I_FLAG_HELP, + I_FLAG_DISARM, + I_FLAG_GRAB, + I_FLAG_HARM + ) + . = faculties_by_intent[intent.intent_flags] + if(!.) + for(var/flag in intent_flags) + if(flag & intent.intent_flags) + . = faculties_by_intent[flag] + faculties_by_intent[intent.intent_flags] = . /datum/controller/subsystem/processing/psi/proc/get_faculty(var/faculty) return faculties_by_name[faculty] || faculties_by_id[faculty] @@ -24,7 +38,7 @@ PROCESSING_SUBSYSTEM_DEF(psi) var/decl/psionic_faculty/faculty = faculties[ftype] faculties_by_id[faculty.id] = faculty faculties_by_name[faculty.name] = faculty - faculties_by_intent[faculty.associated_intent] = faculty.id + faculties_by_intent[faculty.associated_intent_flag] = faculty.id var/list/powers = decls_repository.get_decls_of_subtype(/decl/psionic_power) for(var/ptype in powers) diff --git a/mods/content/xenobiology/icons/smartfridge_contents_slime.dmi b/mods/content/xenobiology/icons/smartfridge_contents_slime.dmi new file mode 100644 index 000000000000..c7c8e4acd4da Binary files /dev/null and b/mods/content/xenobiology/icons/smartfridge_contents_slime.dmi differ diff --git a/mods/content/xenobiology/overrides.dm b/mods/content/xenobiology/overrides.dm index a5c39ef27430..015002287b36 100644 --- a/mods/content/xenobiology/overrides.dm +++ b/mods/content/xenobiology/overrides.dm @@ -25,7 +25,7 @@ /obj/machinery/smartfridge/secure/extract name = "\improper Slime Extract Storage" desc = "A refrigerated storage unit for slime extracts." - icon_contents = "slime" + overlay_contents_icon = 'mods/content/xenobiology/icons/smartfridge_contents_slime.dmi' initial_access = list(access_research) /obj/machinery/smartfridge/secure/extract/accept_check(var/obj/item/O) diff --git a/mods/content/xenobiology/slime/_slime.dm b/mods/content/xenobiology/slime/_slime.dm index fe74f0419334..a5b342022c26 100644 --- a/mods/content/xenobiology/slime/_slime.dm +++ b/mods/content/xenobiology/slime/_slime.dm @@ -127,7 +127,7 @@ if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille)) if(nutrition <= get_hunger_nutrition()) if (is_adult || prob(5)) - UnarmedAttack(AM) + UnarmedAttack(AM, Adjacent(AM)) if(ismob(AM)) var/mob/tmob = AM @@ -151,7 +151,7 @@ statpanel("Status") stat(null, "Health: [get_health_percent()]%") - stat(null, "Intent: [a_intent]") + stat(null, "Intent: [get_intent().name]") if (client.statpanel == "Status") stat(null, "Nutrition: [nutrition]/[get_max_nutrition()]") @@ -206,7 +206,7 @@ visible_message(SPAN_NOTICE("\The [user] pokes \the [src].")) return TRUE - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) if(length(contents)) var/atom/movable/AM = pick(contents) AM.dropInto(loc) @@ -240,33 +240,34 @@ playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) return TRUE - switch(user.a_intent) - if(I_HELP) - visible_message(SPAN_NOTICE("\The [user] hugs \the [src] to make it feel better!")) - return TRUE - if(I_DISARM) - if(prob(40)) - visible_message(SPAN_DANGER("\The [user] shoves \the [src] and it wobbles around, disoriented!")) - SET_STATUS_MAX(src, STAT_CONFUSE, 2) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - else - visible_message(SPAN_DANGER("\The [user] shoves \the [src]!")) - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - return TRUE - if(I_HURT) - var/damage = rand(1, 9) - var/datum/mob_controller/slime/slime_ai = ai - if(istype(slime_ai)) - slime_ai.attacked += 10 - slime_ai.adjust_friendship(user, -5) - if(prob(10)) - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message(SPAN_DANGER("\The [user] has attempted to punch \the [src]!")) - return TRUE - playsound(loc, "punch", 25, 1, -1) - visible_message(SPAN_DANGER("\The [user] has punched \the [src]!")) - take_damage(damage) + if(user.check_intent(I_FLAG_HELP)) + visible_message(SPAN_NOTICE("\The [user] hugs \the [src] to make it feel better!")) + return TRUE + + if(user.check_intent(I_FLAG_DISARM)) + if(prob(40)) + visible_message(SPAN_DANGER("\The [user] shoves \the [src] and it wobbles around, disoriented!")) + SET_STATUS_MAX(src, STAT_CONFUSE, 2) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + else + visible_message(SPAN_DANGER("\The [user] shoves \the [src]!")) + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + return TRUE + + if(user.check_intent(I_FLAG_HARM)) + var/damage = rand(1, 9) + var/datum/mob_controller/slime/slime_ai = ai + if(istype(slime_ai)) + slime_ai.attacked += 10 + slime_ai.adjust_friendship(user, -5) + if(prob(10)) + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message(SPAN_DANGER("\The [user] has attempted to punch \the [src]!")) return TRUE + playsound(loc, "punch", 25, 1, -1) + visible_message(SPAN_DANGER("\The [user] has punched \the [src]!")) + take_damage(damage) + return TRUE return ..() @@ -374,6 +375,3 @@ . += "Anomalous slime core amount detected." . += "Growth progress:\t[amount_grown]/10." . = jointext(., "
") - -/mob/living/slime/can_change_intent() - return TRUE diff --git a/mods/content/xenobiology/slime/slime_AI.dm b/mods/content/xenobiology/slime/slime_AI.dm index 993f1debc4b0..7260e124070c 100644 --- a/mods/content/xenobiology/slime/slime_AI.dm +++ b/mods/content/xenobiology/slime/slime_AI.dm @@ -37,13 +37,13 @@ /datum/mob_controller/slime/proc/update_mood() if(!slime || !body) return - body.a_intent_change(I_HELP) + body.set_intent(I_FLAG_HELP) var/new_mood if(HAS_STATUS(body, STAT_CONFUSE)) new_mood = "pout" else if(rabid || attacked) new_mood = "angry" - body.a_intent_change(I_HURT) + body.set_intent(I_FLAG_HARM) else if(current_target) new_mood = "mischevous" @@ -146,22 +146,22 @@ if(prob(1)) for(var/mob/living/slime/frenemy in range(1, body)) if(frenemy != body && body.Adjacent(frenemy)) - body.a_intent_change((frenemy.slime_type == slime.slime_type) ? I_HELP : I_HURT) - body.UnarmedAttack(frenemy) + body.set_intent((frenemy.slime_type == slime.slime_type) ? I_FLAG_HELP : I_FLAG_HARM) + body.UnarmedAttack(frenemy, TRUE) added_delay = 10 else if(slime.Adjacent(current_target)) var/do_attack = FALSE if(issilicon(current_target)) - body.a_intent_change(I_HURT) + body.set_intent(I_FLAG_HARM) do_attack = TRUE else if(current_target.client && !current_target.current_posture.prone && prob(60 + slime.powerlevel * 4)) - body.a_intent_change(I_DISARM) + body.set_intent(I_FLAG_DISARM) do_attack = TRUE else if(slime.check_valid_feed_target(current_target) == FEED_RESULT_VALID) - body.a_intent_change(I_GRAB) + body.set_intent(I_FLAG_GRAB) do_attack = TRUE if(do_attack) - body.UnarmedAttack(current_target) + body.UnarmedAttack(current_target, TRUE) added_delay = 10 else current_target = null diff --git a/mods/content/xenobiology/slime/slime_click.dm b/mods/content/xenobiology/slime/slime_click.dm index 10befbff0c3d..837f4660ea81 100644 --- a/mods/content/xenobiology/slime/slime_click.dm +++ b/mods/content/xenobiology/slime/slime_click.dm @@ -18,14 +18,14 @@ A.attack_generic(src, (is_adult ? rand(20,40) : rand(5,25)), "glomped") // Basic attack. return TRUE - if(a_intent == I_HELP) + if(check_intent(I_FLAG_HELP)) M.visible_message( \ SPAN_NOTICE("\The [src] gently pokes \the [M]."), \ SPAN_NOTICE("\The [src] gently pokes you.")) return TRUE var/power = max(0, min(10, (powerlevel + rand(0, 3)))) - if(a_intent == I_DISARM) + if(check_intent(I_FLAG_DISARM)) var/stun_prob = 1 if(powerlevel > 0 && !isslime(A)) switch(power * 10) @@ -46,10 +46,10 @@ SET_STATUS_MAX(src, STAT_WEAK, (power * 0.5)) return TRUE - if(a_intent == I_GRAB && slime_attach(M)) + if(check_intent(I_FLAG_GRAB) && slime_attach(M)) return TRUE - if(a_intent == I_HURT) + if(check_intent(I_FLAG_HARM)) if(prob(15) && !M.current_posture.prone) M.visible_message( \ SPAN_DANGER("\The [src] pounces at \the [M]!"), \ diff --git a/mods/content/xenobiology/slime/slime_hud.dm b/mods/content/xenobiology/slime/slime_hud.dm index c1dcf1b914a5..2cdd315d671f 100644 --- a/mods/content/xenobiology/slime/slime_hud.dm +++ b/mods/content/xenobiology/slime/slime_hud.dm @@ -1,4 +1,4 @@ /datum/hud/slime/FinalizeInstantiation() - action_intent = new(null, mymob, get_ui_style_data(), get_ui_color(), get_ui_alpha(), UI_ICON_INTENT) + action_intent = new(null, mymob) adding = list(action_intent) ..() diff --git a/mods/gamemodes/cult/mobs/constructs/constructs.dm b/mods/gamemodes/cult/mobs/constructs/constructs.dm index d5b09c3c4382..1f10369a6941 100644 --- a/mods/gamemodes/cult/mobs/constructs/constructs.dm +++ b/mods/gamemodes/cult/mobs/constructs/constructs.dm @@ -11,7 +11,6 @@ response_disarm = "flails at" response_harm = "punches" icon = 'icons/mob/simple_animal/shade.dmi' - a_intent = I_HURT status_flags = CANPUSH universal_speak = FALSE universal_understand = TRUE diff --git a/mods/gamemodes/deity/_defines.dm b/mods/gamemodes/deity/_defines.dm index 285469200ee1..99f85b14f61c 100644 --- a/mods/gamemodes/deity/_defines.dm +++ b/mods/gamemodes/deity/_defines.dm @@ -5,7 +5,7 @@ #define DEITY_TREE_CONJURATION "Conjuration" #define DEITY_TREE_ARTIFACT "Artifacts" #define DEITY_TREE_FIRECONJ "Fire Conjuration" -#define DEITY_TREE_HERALD "Phenomenas" +#define DEITY_TREE_HERALD "Phenomena" #define DEITY_BLOOD_CRAFT "Blood Crafting" #define DEITY_ARMOR_CRAFT "Armor Crafting" diff --git a/mods/gamemodes/deity/forms/narsie/deity_items/basic.dm b/mods/gamemodes/deity/forms/narsie/deity_items/basic.dm index 15613d713118..59e8a7d15865 100644 --- a/mods/gamemodes/deity/forms/narsie/deity_items/basic.dm +++ b/mods/gamemodes/deity/forms/narsie/deity_items/basic.dm @@ -26,9 +26,9 @@ base_cost = 110 boon_path = /spell/aoe_turf/drain_blood -/datum/deity_item/phenomena/exude_blood - name = "Phenomena: Exude Blood" +/datum/deity_item/phenomenon/exude_blood + name = "Phenomenon: Exude Blood" desc = "You extract the raw blood used in your faith and give it to one of your flock." category = "Dark Spells" base_cost = 30 - phenomena_path = /datum/phenomena/exude_blood \ No newline at end of file + phenomenon_path = /datum/phenomenon/exude_blood \ No newline at end of file diff --git a/mods/gamemodes/deity/forms/narsie/deity_items/minions.dm b/mods/gamemodes/deity/forms/narsie/deity_items/minions.dm index 6af873ed6dac..be4c8fe14edc 100644 --- a/mods/gamemodes/deity/forms/narsie/deity_items/minions.dm +++ b/mods/gamemodes/deity/forms/narsie/deity_items/minions.dm @@ -28,10 +28,10 @@ base_cost = 100 boon_path = /spell/tear_veil -/datum/deity_item/phenomena/hellscape - name = "Phenomena: Reveal Hellscape" +/datum/deity_item/phenomenon/hellscape + name = "Phenomenon: Reveal Hellscape" desc = "You show a non-believer what their future will be like." category = DEITY_TREE_DARK_MINION requirements = list(DEITY_TREE_DARK_MINION = 1) base_cost = 110 - phenomena_path = /datum/phenomena/hellscape \ No newline at end of file + phenomenon_path = /datum/phenomenon/hellscape \ No newline at end of file diff --git a/mods/gamemodes/deity/forms/narsie/narsie.dm b/mods/gamemodes/deity/forms/narsie/narsie.dm index 1529c67f6917..8ebf2dfc818b 100644 --- a/mods/gamemodes/deity/forms/narsie/narsie.dm +++ b/mods/gamemodes/deity/forms/narsie/narsie.dm @@ -23,7 +23,7 @@ /datum/deity_item/boon/torment, /datum/deity_item/boon/blood_shard, /datum/deity_item/boon/drain_blood, - /datum/deity_item/phenomena/exude_blood, + /datum/deity_item/phenomenon/exude_blood, /datum/deity_item/sacrifice, /datum/deity_item/boon/sac_dagger, /datum/deity_item/boon/sac_spell, @@ -33,7 +33,7 @@ /datum/deity_item/boon/soul_shard, /datum/deity_item/boon/blood_zombie, /datum/deity_item/boon/tear_veil, - /datum/deity_item/phenomena/hellscape, + /datum/deity_item/phenomenon/hellscape, /datum/deity_item/blood_crafting/narsie, /datum/deity_item/blood_crafting/armored, /datum/deity_item/blood_crafting/space diff --git a/mods/gamemodes/deity/forms/starlight/deity_items/phenomena.dm b/mods/gamemodes/deity/forms/starlight/deity_items/phenomena.dm index 2b982fcf3cc3..37f830d27cbe 100644 --- a/mods/gamemodes/deity/forms/starlight/deity_items/phenomena.dm +++ b/mods/gamemodes/deity/forms/starlight/deity_items/phenomena.dm @@ -1,41 +1,41 @@ -/datum/deity_item/phenomena/herald +/datum/deity_item/phenomenon/herald name = "Choose Herald" desc = "Gives you the ability to choose a herald. Can only be used once so be careful." - phenomena_path = /datum/phenomena/herald + phenomenon_path = /datum/phenomenon/herald base_cost = 100 category = DEITY_TREE_HERALD -/datum/deity_item/phenomena/wisp +/datum/deity_item/phenomenon/wisp name = "Summon Wisp" desc = "Manipulate around a small light." - phenomena_path = /datum/phenomena/movable_object/wisp + phenomenon_path = /datum/phenomenon/movable_object/wisp base_cost = 100 category = DEITY_TREE_HERALD -/datum/deity_item/phenomena/flickering_whisper +/datum/deity_item/phenomenon/flickering_whisper name = "Flickering Whisper" desc = "Send a subtle message to a non-follower, and see what they see for a while." - phenomena_path = /datum/phenomena/flickering_whisper + phenomenon_path = /datum/phenomenon/flickering_whisper base_cost = 50 category = DEITY_TREE_HERALD -/datum/deity_item/phenomena/burning_glare +/datum/deity_item/phenomenon/burning_glare name = "Burning Glare" desc = "Use your divine power to physically burn a person." - phenomena_path = /datum/phenomena/burning_glare + phenomenon_path = /datum/phenomenon/burning_glare base_cost = 200 category = DEITY_TREE_HERALD -/datum/deity_item/phenomena/open_gateway +/datum/deity_item/phenomenon/open_gateway name = "Open Gateway" desc = "Unlocks the ability to open a gateway. Required for rebirth." - phenomena_path = /datum/phenomena/create_gateway + phenomenon_path = /datum/phenomenon/create_gateway base_cost = 250 category = DEITY_TREE_HERALD -/datum/deity_item/phenomena/divine_right +/datum/deity_item/phenomenon/divine_right name = "Divine Right" desc = "Unlocks the ability to possess your Herald, permanently transforming you into a physical god." - phenomena_path = /datum/phenomena/divine_right + phenomenon_path = /datum/phenomenon/divine_right base_cost = 300 category = DEITY_TREE_HERALD \ No newline at end of file diff --git a/mods/gamemodes/deity/forms/starlight/starlight.dm b/mods/gamemodes/deity/forms/starlight/starlight.dm index ba3b75a83e81..1469947fe10a 100644 --- a/mods/gamemodes/deity/forms/starlight/starlight.dm +++ b/mods/gamemodes/deity/forms/starlight/starlight.dm @@ -31,12 +31,12 @@ /datum/deity_item/boon/blood_boil, /datum/deity_item/boon/emp, /datum/deity_item/boon/cure_light, - /datum/deity_item/phenomena/herald, - /datum/deity_item/phenomena/wisp, - /datum/deity_item/phenomena/flickering_whisper, - /datum/deity_item/phenomena/burning_glare, - /datum/deity_item/phenomena/open_gateway, - /datum/deity_item/phenomena/divine_right + /datum/deity_item/phenomenon/herald, + /datum/deity_item/phenomenon/wisp, + /datum/deity_item/phenomenon/flickering_whisper, + /datum/deity_item/phenomenon/burning_glare, + /datum/deity_item/phenomenon/open_gateway, + /datum/deity_item/phenomenon/divine_right ) /datum/god_form/starlight/take_charge(var/mob/living/user, var/charge) diff --git a/mods/gamemodes/deity/forms/tower/deity_items/conjuration.dm b/mods/gamemodes/deity/forms/tower/deity_items/conjuration.dm index dc26893321d9..0d6f820540ba 100644 --- a/mods/gamemodes/deity/forms/tower/deity_items/conjuration.dm +++ b/mods/gamemodes/deity/forms/tower/deity_items/conjuration.dm @@ -33,12 +33,12 @@ boon_path = /spell/aoe_turf/conjure/forcewall/tower requirements = list(DEITY_TREE_CONJURATION = 1) -/datum/deity_item/phenomena/dimensional_locker - name = "Phenomena: Dimensional Locker" +/datum/deity_item/phenomenon/dimensional_locker + name = "Phenomenon: Dimensional Locker" desc = "Gain the ability to move a magical locker around. While it cannot move living things, you can move it around as you please, even disappearing it into the nether." base_cost = 50 category = DEITY_TREE_CONJURATION - phenomena_path = /datum/phenomena/movable_object/dimensional_locker + phenomenon_path = /datum/phenomenon/movable_object/dimensional_locker requirements = list(DEITY_TREE_CONJURATION = 1) //Level 2 @@ -73,13 +73,13 @@ category = DEITY_TREE_CONJURATION requirements = list(DEITY_UNLOCK_ARMS = 1) -/datum/deity_item/phenomena/portals - name = "Phenomena: Portals" +/datum/deity_item/phenomenon/portals + name = "Phenomenon: Portals" desc = "Gain the ability to create portals for your followers to enter through. You will need to create two for it work. Any created past that will delete the oldest portal." base_cost = 75 requirements = list(DEITY_TREE_CONJURATION = 2) category = DEITY_TREE_CONJURATION - phenomena_path = /datum/phenomena/portals + phenomenon_path = /datum/phenomenon/portals //Level 3 /datum/deity_item/boon/single_charge/fireball @@ -98,10 +98,10 @@ category = DEITY_TREE_CONJURATION requirements = list(DEITY_TREE_CONJURATION = 3) -/datum/deity_item/phenomena/banishing_smite - name = "Phenomena: Banishing Smite" +/datum/deity_item/phenomenon/banishing_smite + name = "Phenomenon: Banishing Smite" desc = "Gain the ability to smite an individual, dealing damage to them. If they are weakened enough, this can cause them to temporarily be transported." base_cost = 75 requirements = list(DEITY_TREE_CONJURATION = 3) category = DEITY_TREE_CONJURATION - phenomena_path = /datum/phenomena/banishing_smite \ No newline at end of file + phenomenon_path = /datum/phenomenon/banishing_smite \ No newline at end of file diff --git a/mods/gamemodes/deity/forms/tower/deity_items/transmutation.dm b/mods/gamemodes/deity/forms/tower/deity_items/transmutation.dm index 7151b8895384..5eb1dd34785c 100644 --- a/mods/gamemodes/deity/forms/tower/deity_items/transmutation.dm +++ b/mods/gamemodes/deity/forms/tower/deity_items/transmutation.dm @@ -40,13 +40,13 @@ category = DEITY_TREE_TRANSMUTATION requirements = list(DEITY_TREE_TRANSMUTATION = 2) -/datum/deity_item/phenomena/warp_body - name = "Phenomena: Warp Body" +/datum/deity_item/phenomenon/warp_body + name = "Phenomenon: Warp Body" desc = "Gain the ability to warp the very structure of a target's body, wracking pain and weakness." base_cost = 75 category = DEITY_TREE_TRANSMUTATION requirements = list(DEITY_TREE_TRANSMUTATION = 2) - phenomena_path = /datum/phenomena/warp + phenomenon_path = /datum/phenomenon/warp //Level 3 /datum/deity_item/boon/single_charge/jaunt @@ -88,10 +88,10 @@ requirements = list(DEITY_UNLOCK_HEAL = 1) boon_path = /spell/targeted/heal_target/area/tower -/datum/deity_item/phenomena/rock_form - name = "Phenomena: Rock Form" +/datum/deity_item/phenomenon/rock_form + name = "Phenomenon: Rock Form" desc = "Gain the ability to transform your followers into beings of rock and stone." base_cost = 75 category = DEITY_TREE_TRANSMUTATION requirements = list(DEITY_TREE_TRANSMUTATION = 3) - phenomena_path = /datum/phenomena/rock_form \ No newline at end of file + phenomenon_path = /datum/phenomenon/rock_form \ No newline at end of file diff --git a/mods/gamemodes/deity/forms/tower/tower.dm b/mods/gamemodes/deity/forms/tower/tower.dm index fe165b5c56d7..37f63bce440e 100644 --- a/mods/gamemodes/deity/forms/tower/tower.dm +++ b/mods/gamemodes/deity/forms/tower/tower.dm @@ -21,27 +21,27 @@ /datum/deity_item/boon/single_charge/create_air, /datum/deity_item/boon/single_charge/acid_spray, /datum/deity_item/boon/single_charge/force_wall, - /datum/deity_item/phenomena/dimensional_locker, + /datum/deity_item/phenomenon/dimensional_locker, /datum/deity_item/boon/single_charge/faithful_hound, /datum/deity_item/wizard_armaments, /datum/deity_item/boon/single_charge/sword, /datum/deity_item/boon/single_charge/shield, - /datum/deity_item/phenomena/portals, + /datum/deity_item/phenomenon/portals, /datum/deity_item/boon/single_charge/fireball, /datum/deity_item/boon/single_charge/force_portal, - /datum/deity_item/phenomena/banishing_smite, + /datum/deity_item/phenomenon/banishing_smite, /datum/deity_item/transmutation, /datum/deity_item/boon/single_charge/slippery_surface, /datum/deity_item/boon/single_charge/smoke, /datum/deity_item/boon/single_charge/knock, /datum/deity_item/boon/single_charge/burning_grip, - /datum/deity_item/phenomena/warp_body, + /datum/deity_item/phenomenon/warp_body, /datum/deity_item/boon/single_charge/jaunt, /datum/deity_item/healing_spells, /datum/deity_item/boon/single_charge/heal, /datum/deity_item/boon/single_charge/heal/major, /datum/deity_item/boon/single_charge/heal/area, - /datum/deity_item/phenomena/rock_form + /datum/deity_item/phenomenon/rock_form ) /datum/god_form/wizard/take_charge(var/mob/living/user, var/charge) diff --git a/mods/gamemodes/deity/mobs/deity.dm b/mods/gamemodes/deity/mobs/deity.dm index f26e490c85c6..96fc8fb54da6 100644 --- a/mods/gamemodes/deity/mobs/deity.dm +++ b/mods/gamemodes/deity/mobs/deity.dm @@ -47,8 +47,8 @@ /mob/living/deity/Destroy() - for(var/phenom in phenomenas) - remove_phenomena(phenom) + for(var/phenomenon in phenomena) + remove_phenomenon(phenomenon) if(length(items_by_category)) for(var/cat in items_by_category) diff --git a/mods/gamemodes/deity/mobs/deity_click.dm b/mods/gamemodes/deity/mobs/deity_click.dm index 06fff2230623..aae71fd6257d 100644 --- a/mods/gamemodes/deity/mobs/deity_click.dm +++ b/mods/gamemodes/deity/mobs/deity_click.dm @@ -10,9 +10,9 @@ if(silenced) to_chat(src, SPAN_WARNING("You cannot do that as you are silenced!")) else - var/datum/phenomena/phenomena = get_phenomena(modifiers["shift"], modifiers["ctrl"]) - if(phenomena) - phenomena.Click(A) + var/datum/phenomenon/phenomenon = get_phenomenon(modifiers["shift"], modifiers["ctrl"]) + if(phenomenon) + phenomenon.Click(A) return if(current_boon && is_follower(A)) grant_boon(A) diff --git a/mods/gamemodes/deity/mobs/deity_hud.dm b/mods/gamemodes/deity/mobs/deity_hud.dm index 8a9e3d77d096..12824de99040 100644 --- a/mods/gamemodes/deity/mobs/deity_hud.dm +++ b/mods/gamemodes/deity/mobs/deity_hud.dm @@ -2,7 +2,7 @@ hud_used = /datum/hud/deity /datum/hud/deity/FinalizeInstantiation() - action_intent = new /obj/screen/intent/deity(null, mymob, get_ui_style_data(), get_ui_color(), get_ui_alpha(), UI_ICON_INTENT) + action_intent = new /obj/screen/intent/deity(null, mymob) adding += action_intent ..() var/obj/screen/intent/deity/D = action_intent diff --git a/mods/gamemodes/deity/mobs/deity_phenomena.dm b/mods/gamemodes/deity/mobs/deity_phenomena.dm index 6cb38eec0ece..a5abe64946a2 100644 --- a/mods/gamemodes/deity/mobs/deity_phenomena.dm +++ b/mods/gamemodes/deity/mobs/deity_phenomena.dm @@ -1,29 +1,29 @@ /mob/living/deity var/silenced = 0 - var/list/phenomenas = list() - var/list/intent_phenomenas = list() + var/list/phenomena = list() + var/list/intent_phenomena = list() var/static/list/control_types = list("control", "controlshift", "shift") /mob/living/deity/Initialize() . = ..() - for(var/intent in intents) //Just in case we somehow remove/add a new intent #futureproofing + for(var/decl/intent/intent as anything in decls_repository.get_decls_of_type_unassociated(/decl/intent)) //Just in case we somehow remove/add a new intent #futureproofing populate_intent(intent) - set_phenomena(add_phenomena(/datum/phenomena/communicate), I_HELP, "shift") - set_phenomena(add_phenomena(/datum/phenomena/punish), I_HELP, "control") - set_phenomena(add_phenomena(/datum/phenomena/point), I_HELP, "controlshift") - set_phenomena(add_phenomena(/datum/phenomena/conversion), I_GRAB, "shift") - set_phenomena(add_phenomena(/datum/phenomena/forced_conversion), I_GRAB, "control") + set_phenomenon(add_phenomenon(/datum/phenomenon/communicate), GET_DECL(/decl/intent/disarm), "shift") + set_phenomenon(add_phenomenon(/datum/phenomenon/punish), GET_DECL(/decl/intent/help), "control") + set_phenomenon(add_phenomenon(/datum/phenomenon/point), GET_DECL(/decl/intent/help), "controlshift") + set_phenomenon(add_phenomenon(/datum/phenomenon/conversion), GET_DECL(/decl/intent/grab), "shift") + set_phenomenon(add_phenomenon(/datum/phenomenon/forced_conversion), GET_DECL(/decl/intent/grab), "control") -/mob/living/deity/proc/silence(var/amount) +/mob/living/deity/proc/silence(amount) if(!silenced) - to_chat(src, SPAN_WARNING("You've been silenced! Your phenomenas are disabled!")) + to_chat(src, SPAN_WARNING("You've been silenced! Your phenomena are disabled!")) var/obj/screen/intent/deity/SD = istype(hud_used) && hud_used.action_intent if(istype(SD)) SD.color = "#ff0000" silenced += amount - for(var/phenom in phenomenas) //Also make it so that you don't do cooldowns. - var/datum/phenomena/P = phenomenas[phenom] + for(var/phenom in phenomena) //Also make it so that you don't do cooldowns. + var/datum/phenomenon/P = phenomena[phenom] if(P.refresh_time) P.refresh_time += amount @@ -40,52 +40,49 @@ if(power_per_regen < 0 || power < power_min) adjust_power(power_per_regen) -/mob/living/deity/proc/add_phenomena(var/type) - if(!phenomenas) - phenomenas = list() - for(var/P in phenomenas) - if(istype(phenomenas[P], type)) +/mob/living/deity/proc/add_phenomenon(phenomena_type) + LAZYINITLIST(phenomena) + for(var/P in phenomena) + if(istype(phenomena[P], phenomena_type)) return - var/datum/phenomena/P = new type(src) - phenomenas[P.name] = P + var/datum/phenomenon/P = new phenomena_type(src) + phenomena[P.name] = P return P -/mob/living/deity/proc/remove_phenomena_from_intent(var/intent, var/modifier, var/update = 1) - var/list/intent_list = intent_phenomenas[intent] +/mob/living/deity/proc/remove_phenomena_from_intent(decl/intent/intent, modifier, update = 1) + var/list/intent_list = intent_phenomena[intent] intent_list[modifier] = null if(update) update_phenomena_bindings() -/mob/living/deity/proc/remove_phenomena(var/to_remove) - var/datum/phenomena/P = phenomenas[to_remove] - phenomenas -= to_remove - for(var/intent in intent_phenomenas) - var/list/intent_list = intent_phenomenas[intent] +/mob/living/deity/proc/remove_phenomenon(to_remove) + var/datum/phenomenon/P = phenomena[to_remove] + phenomena -= to_remove // this isn't going to work, is it? + for(var/intent in intent_phenomena) + var/list/intent_list = intent_phenomena[intent] for(var/mod in intent_list) if(intent_list[mod] == P) intent_list[mod] = null var/obj/screen/intent/deity/SD = istype(hud_used) && hud_used.action_intent if(istype(SD)) SD.update_text() - update_phenomenas() + update_phenomena() update_phenomena_bindings() if(selected == to_remove) selected = null qdel(P) -/mob/living/deity/proc/populate_intent(var/intent) - if(!intent_phenomenas[intent]) - intent_phenomenas[intent] = list() - intent_phenomenas[intent] |= control_types +/mob/living/deity/proc/populate_intent(decl/intent/intent) + LAZYDISTINCTADD(intent_phenomena[intent], control_types) -/mob/living/deity/proc/set_phenomena(var/datum/phenomena/phenomena, var/intent, var/modifiers) - if(!intent_phenomenas[intent]) +/mob/living/deity/proc/set_phenomenon(datum/phenomenon/phenomenon, decl/intent/intent, modifiers) + if(!LAZYACCESS(intent_phenomena, intent)) populate_intent(intent) - var/list/intent_list = intent_phenomenas[intent] - intent_list[modifiers] = phenomena + var/list/intent_list = intent_phenomena[intent] + intent_list[modifiers] = phenomenon -/mob/living/deity/proc/get_phenomena(var/shift = 0, var/control = 0) - var/list/intent_list = intent_phenomenas[a_intent] +/mob/living/deity/proc/get_phenomenon(shift = 0, control = 0) + var/list/intent_list = intent_phenomena[get_intent()] if(intent_list) var/type = "" if(shift) diff --git a/mods/gamemodes/deity/mobs/deity_topic.dm b/mods/gamemodes/deity/mobs/deity_topic.dm index 01226e8ddc5e..4ff775043939 100644 --- a/mods/gamemodes/deity/mobs/deity_topic.dm +++ b/mods/gamemodes/deity/mobs/deity_topic.dm @@ -4,9 +4,9 @@ if(type) set_form(type) return TOPIC_HANDLED - if(href_list["select_phenomena"]) + if(href_list["select_phenomenon"]) nano_data["phenomenaMenu"] = 1 - selected = phenomenas[href_list["select_phenomena"]] + selected = phenomena[href_list["select_phenomenon"]] nano_data["selectedPhenomenaName"] = selected.name return TOPIC_HANDLED if(href_list["clear_selected"]) @@ -15,13 +15,18 @@ nano_data["selectedPhenomenaName"] = null return TOPIC_HANDLED if(href_list["select_intent"]) - var/list/intent = intent_phenomenas[href_list["select_intent"]] - if(intent[href_list["select_binding"]]) - remove_phenomena_from_intent(href_list["select_intent"], href_list["select_binding"], 0) + var/decl/intent/intent = locate(href_list["select_intent"]) + if(!istype(intent)) + return TOPIC_NOACTION + var/binding = href_list["select_binding"] + var/list/phenomenon = intent_phenomena[intent] + if(phenomenon[binding]) + remove_phenomena_from_intent(intent, binding, 0) if(selected) - set_phenomena(selected, href_list["select_intent"], href_list["select_binding"]) + set_phenomenon(selected, intent, binding) update_phenomena_bindings() return TOPIC_HANDLED + if(href_list["jump"]) var/atom/a = locate(href_list["jump"]) var/follow = 0 diff --git a/mods/gamemodes/deity/mobs/items/generic.dm b/mods/gamemodes/deity/mobs/items/generic.dm index 01b2001ae6e3..665814e0788b 100644 --- a/mods/gamemodes/deity/mobs/items/generic.dm +++ b/mods/gamemodes/deity/mobs/items/generic.dm @@ -7,15 +7,15 @@ . = new boon_path() D.set_boon(.) -/datum/deity_item/phenomena - var/phenomena_path +/datum/deity_item/phenomenon + var/phenomenon_path max_level = 1 -/datum/deity_item/phenomena/buy(var/mob/living/deity/D) +/datum/deity_item/phenomenon/buy(var/mob/living/deity/D) ..() - if(level == 1 && phenomena_path) - D.add_phenomena(phenomena_path) - D.update_phenomenas() + if(level == 1 && phenomenon_path) + D.add_phenomenon(phenomenon_path) + D.update_phenomena() /datum/deity_item/boon/single_charge/buy(var/mob/living/deity/D) . = ..() diff --git a/mods/gamemodes/deity/mobs/menu/deity_nano.dm b/mods/gamemodes/deity/mobs/menu/deity_nano.dm index 8633706588b0..37f488f5b61b 100644 --- a/mods/gamemodes/deity/mobs/menu/deity_nano.dm +++ b/mods/gamemodes/deity/mobs/menu/deity_nano.dm @@ -1,6 +1,6 @@ /mob/living/deity var/list/nano_data = list() - var/datum/phenomena/selected + var/datum/phenomenon/selected /mob/living/deity/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/uistate = global.self_topic_state) if(!nano_data["categories"]) //If we don't have the categories set yet, we should populate our data. @@ -14,7 +14,7 @@ nano_data["phenomenaMenu"] = 0 //0 Phenoms 1 Bindings set_nano_category(0) update_followers() - update_phenomenas() + update_phenomena() update_phenomena_bindings() else update_category() @@ -55,25 +55,25 @@ follower_data[++follower_data.len] = minion_data nano_data["followers"] = follower_data -/mob/living/deity/proc/update_phenomenas() +/mob/living/deity/proc/update_phenomena() var/list/phenomena_data = list() - for(var/p in phenomenas) - var/datum/phenomena/P = phenomenas[p] - phenomena_data[++phenomena_data.len] = list("name" = p, "description" = P.desc, "cost" = P.cost, "cooldown" = P.cooldown) - nano_data["phenomenas"] = phenomena_data + for(var/p in phenomena) + var/datum/phenomenon/phenomenon = phenomena[p] + phenomena_data[++phenomena_data.len] = list("name" = p, "description" = phenomenon.desc, "cost" = phenomenon.cost, "cooldown" = phenomenon.cooldown) + nano_data["phenomena"] = phenomena_data /mob/living/deity/proc/update_phenomena_bindings() var/list/phenomena_bindings = list() - for(var/intent in intent_phenomenas) + for(var/intent in intent_phenomena) var/list/intent_data = list() - for(var/binding in intent_phenomenas[intent]) - var/datum/phenomena/P = intent_phenomenas[intent][binding] + for(var/binding in intent_phenomena[intent]) + var/datum/phenomenon/P = intent_phenomena[intent][binding] var/list/data = list() if(P) data["phenomena_name"] = P.name data["binding"] = binding intent_data[++intent_data.len] = data - phenomena_bindings[++phenomena_bindings.len] = list("intent" = intent, "intent_data" = intent_data) + phenomena_bindings[++phenomena_bindings.len] = list("intent" = "\ref[intent]", "intent_data" = intent_data) nano_data["bindings"] = phenomena_bindings //Update the hud as well. var/obj/screen/intent/deity/SD = istype(hud_used) && hud_used.action_intent diff --git a/mods/gamemodes/deity/mobs/phenomena/communication.dm b/mods/gamemodes/deity/mobs/phenomena/communication.dm index b3d603bd1c22..2b815ce00ede 100644 --- a/mods/gamemodes/deity/mobs/phenomena/communication.dm +++ b/mods/gamemodes/deity/mobs/phenomena/communication.dm @@ -1,11 +1,11 @@ -/datum/phenomena/communicate +/datum/phenomenon/communicate name = "Direct Communication" desc = "Communicate directly with a mortal being. You may communicate with non-followers, but they will find you easier to ignore." cost = 0 flags = PHENOMENA_FOLLOWER | PHENOMENA_NONFOLLOWER expected_type = /mob/living -/datum/phenomena/communicate/activate(var/mob/living/L) +/datum/phenomenon/communicate/activate(var/mob/living/L) var/text_to_send = sanitize(input(linked, "Subjugate a member to your will", "Message a Believer") as text) if(text_to_send) var/text_size = 4 @@ -15,7 +15,7 @@ to_chat(linked, SPAN_NOTICE("You send the message [text_to_send] to \the [L]")) log_and_message_admins("communicated the message \"[text_to_send]\" to [key_name(L)]", linked) -/datum/phenomena/point +/datum/phenomenon/point name = "Point" desc = "Attract your follower's attentions to something nearby." cost = 0 @@ -23,7 +23,7 @@ expected_type = /atom var/image/arrow -/datum/phenomena/point/activate(var/atom/a) +/datum/phenomenon/point/activate(var/atom/a) ..() if(!arrow) arrow = image('icons/effects/markers.dmi', icon_state = "arrow", layer = POINTER_LAYER) @@ -37,24 +37,24 @@ if((M in view) && M.client) to_chat(M, SPAN_OCCULT("Your attention is eerily drawn to \the [a].")) M.client.images += arrow - events_repository.register(/decl/observ/logged_out, M, src, TYPE_PROC_REF(/datum/phenomena/point, remove_image)) + events_repository.register(/decl/observ/logged_out, M, src, TYPE_PROC_REF(/datum/phenomenon/point, remove_image)) spawn(20) if(M.client) remove_image(M) -/datum/phenomena/point/proc/remove_image(var/mob/living/L) +/datum/phenomenon/point/proc/remove_image(var/mob/living/L) L.client.images -= arrow events_repository.unregister(/decl/observ/logged_out, L, src) -/datum/phenomena/punish +/datum/phenomenon/punish name = "Punish" - desc = "Punish your followers for insubordination, the cost to use this phenomena is based on how deadly you choose the punishment to be." + desc = "Punish your followers for insubordination, the cost to use this phenomenon is based on how deadly you choose the punishment to be." cost = 0 flags = PHENOMENA_FOLLOWER expected_type = /mob/living var/static/list/punishment_list = list("Pain (0)" = 0, "Light Wound (5)" = 5, "Brain Damage (10)" = 10, "Heavy Wounds (20)" = 20) -/datum/phenomena/punish/activate(var/mob/living/L) +/datum/phenomenon/punish/activate(var/mob/living/L) var/pain = input(linked, "Choose their punishment.", "Punishment") as null|anything in punishment_list if(!pain) return diff --git a/mods/gamemodes/deity/mobs/phenomena/conjuration.dm b/mods/gamemodes/deity/mobs/phenomena/conjuration.dm index 5f15cc786aa2..d7dd22f3e269 100644 --- a/mods/gamemodes/deity/mobs/phenomena/conjuration.dm +++ b/mods/gamemodes/deity/mobs/phenomena/conjuration.dm @@ -1,10 +1,10 @@ -/datum/phenomena/movable_object/dimensional_locker +/datum/phenomenon/movable_object/dimensional_locker object_type = /obj/structure/closet name = "Dimensional Locker" cost = 10 desc = "Summon a trans-dimensional locker anywhere within your influence. You may transport objects and things, but not people in it." -/datum/phenomena/movable_object/dimensional_locker/activate(var/atom/a, var/mob/living/deity/user) +/datum/phenomenon/movable_object/dimensional_locker/activate(var/atom/a, var/mob/living/deity/user) var/list/mobs_inside = list() recursive_content_check(object_to_move, mobs_inside, client_check = 0, sight_check = 0, include_objects = 0) @@ -14,7 +14,7 @@ to_chat(M,SPAN_WARNING("You are suddenly flung out of \the [object_to_move]!")) ..() -/datum/phenomena/portals +/datum/phenomenon/portals name = "Portals" desc = "Summon a portal linked to the last portal you've created. The portal will be destroyed if it is not linked when someone crosses it." cost = 30 @@ -22,12 +22,12 @@ expected_type = /atom var/list/portals = list() -/datum/phenomena/portals/activate(var/atom/a, var/mob/living/deity/user) +/datum/phenomenon/portals/activate(var/atom/a, var/mob/living/deity/user) ..() var/obj/effect/portal/P = new(get_turf(a), null, 0) P.failchance = 0 portals += P - events_repository.register(/decl/observ/destroyed, P,src, TYPE_PROC_REF(/datum/phenomena/portals, remove_portal)) + events_repository.register(/decl/observ/destroyed, P,src, TYPE_PROC_REF(/datum/phenomenon/portals, remove_portal)) if(portals.len > 2) var/removed = portals[1] remove_portal(removed) @@ -38,7 +38,7 @@ P1.target = get_turf(P2) P2.target = get_turf(P1) -/datum/phenomena/portals/proc/remove_portal(var/portal) +/datum/phenomenon/portals/proc/remove_portal(var/portal) portals -= portal events_repository.unregister(/decl/observ/destroyed, portal,src) var/turf/T = get_turf(portal) @@ -46,7 +46,7 @@ if(P.target == T) P.target = null -/datum/phenomena/banishing_smite +/datum/phenomenon/banishing_smite name = "Banishing Smite" desc = "Deal a terrible blow to a mortal. If they are hurt enough ,they will find themselves trapped in a rift for 30 seconds." cost = 70 @@ -54,7 +54,7 @@ flags = PHENOMENA_NEAR_STRUCTURE|PHENOMENA_MUNDANE|PHENOMENA_FOLLOWER|PHENOMENA_NONFOLLOWER expected_type = /mob/living -/datum/phenomena/banishing_smite/activate(var/mob/living/L, var/mob/living/deity/user) +/datum/phenomenon/banishing_smite/activate(var/mob/living/L, var/mob/living/deity/user) ..() L.take_overall_damage(rand(5,30),0,0,0,"blunt intrument") //Actual spell does 5d10 but maaaybe too much. playsound(get_turf(L), 'sound/effects/bamf.ogg', 100, 1) diff --git a/mods/gamemodes/deity/mobs/phenomena/conversion.dm b/mods/gamemodes/deity/mobs/phenomena/conversion.dm index 9d4d989d3fbf..1f0954c91350 100644 --- a/mods/gamemodes/deity/mobs/phenomena/conversion.dm +++ b/mods/gamemodes/deity/mobs/phenomena/conversion.dm @@ -1,11 +1,11 @@ -/datum/phenomena/conversion +/datum/phenomenon/conversion name = "Conversion" desc = "Ask a non-follower to convert to your cult. This is completely voluntary. Requires the subject to be close to an altar." cost = 20 flags = PHENOMENA_NONFOLLOWER expected_type = /mob/living -/datum/phenomena/conversion/can_activate(var/atom/target) +/datum/phenomenon/conversion/can_activate(var/atom/target) if(!..()) return 0 var/is_good = 0 @@ -18,7 +18,7 @@ return 0 return 1 -/datum/phenomena/conversion/activate(var/mob/living/L) +/datum/phenomenon/conversion/activate(var/mob/living/L) to_chat(src,SPAN_NOTICE("You give \the [L] a chance to willingly convert. May they choose wisely.")) var/choice = alert(L, "You feel a weak power enter your mind attempting to convert it.", "Conversion", "Allow Conversion", "Deny Conversion") if(choice == "Allow Conversion") @@ -28,14 +28,14 @@ to_chat(L, SPAN_WARNING("With little difficulty you force the intrusion out of your mind. May it stay that way.")) to_chat(src, SPAN_WARNING("\The [L] decides not to convert.")) -/datum/phenomena/forced_conversion +/datum/phenomenon/forced_conversion name = "Forced Conversion" desc = "Force a non-follower to join you. They need to be on top of an altar and conscious for this to work. They may resist, but that will hurt them." cost = 100 flags = PHENOMENA_NONFOLLOWER expected_type = /mob/living -/datum/phenomena/forced_conversion/can_activate(var/mob/living/L) +/datum/phenomenon/forced_conversion/can_activate(var/mob/living/L) if(!..()) return 0 var/obj/structure/deity/altar/A = locate() in get_turf(L) @@ -45,7 +45,7 @@ return 1 -/datum/phenomena/forced_conversion/activate(var/mob/living/L) +/datum/phenomenon/forced_conversion/activate(var/mob/living/L) var/obj/structure/deity/altar/A = locate() in get_turf(L) A.set_target(L) to_chat(linked, SPAN_NOTICE("You imbue \the [A] with your power, setting forth to force \the [L] to your will.")) \ No newline at end of file diff --git a/mods/gamemodes/deity/mobs/phenomena/generic.dm b/mods/gamemodes/deity/mobs/phenomena/generic.dm index 633cd96eb7f2..3163ea42ab54 100644 --- a/mods/gamemodes/deity/mobs/phenomena/generic.dm +++ b/mods/gamemodes/deity/mobs/phenomena/generic.dm @@ -1,26 +1,26 @@ -/datum/phenomena/movable_object +/datum/phenomenon/movable_object var/object_type var/atom/movable/object_to_move flags = PHENOMENA_NEAR_STRUCTURE|PHENOMENA_MUNDANE|PHENOMENA_FOLLOWER|PHENOMENA_NONFOLLOWER expected_type = /atom -/datum/phenomena/movable_object/New() +/datum/phenomenon/movable_object/New() ..() add_object() -/datum/phenomena/movable_object/Destroy() +/datum/phenomenon/movable_object/Destroy() events_repository.unregister(/decl/observ/destroyed, object_to_move,src) if(!object_to_move.loc) QDEL_NULL(object_to_move) . = ..() -/datum/phenomena/movable_object/proc/add_object() +/datum/phenomenon/movable_object/proc/add_object() if(object_to_move) events_repository.unregister(/decl/observ/destroyed, object_to_move,src) object_to_move = new object_type() events_repository.register(/decl/observ/destroyed, object_to_move, src, PROC_REF(add_object)) -/datum/phenomena/movable_object/activate(var/atom/a, var/mob/living/deity/user) +/datum/phenomenon/movable_object/activate(var/atom/a, var/mob/living/deity/user) ..() if(object_to_move == a) object_to_move.forceMove(null) //Move to null space diff --git a/mods/gamemodes/deity/mobs/phenomena/narsie.dm b/mods/gamemodes/deity/mobs/phenomena/narsie.dm index 52e69b66b474..8a94ae441cbf 100644 --- a/mods/gamemodes/deity/mobs/phenomena/narsie.dm +++ b/mods/gamemodes/deity/mobs/phenomena/narsie.dm @@ -1,11 +1,11 @@ -/datum/phenomena/exude_blood +/datum/phenomenon/exude_blood name = "Exhude Blood" desc = "Take pity on a follower, converting a pitance of your power into blood. Don't let them forget your mercy." cost = 20 flags = PHENOMENA_FOLLOWER expected_type = /mob/living/human -/datum/phenomena/exude_blood/can_activate(var/mob/living/human/H) +/datum/phenomenon/exude_blood/can_activate(var/mob/living/human/H) if(!..()) return 0 @@ -14,12 +14,12 @@ return 0 return 1 -/datum/phenomena/exude_blood/activate(var/mob/living/human/H, var/mob/living/deity/user) +/datum/phenomenon/exude_blood/activate(var/mob/living/human/H, var/mob/living/deity/user) H.adjust_blood(30) to_chat(H,SPAN_NOTICE("You feel a rush as new blood enters your system.")) -/datum/phenomena/hellscape +/datum/phenomenon/hellscape name = "Reveal Hellscape" desc = "Show a non-follower what awaits their souls after you are through with them." cost = 60 @@ -30,7 +30,7 @@ "You breathe in ash and decay, your lungs gasping for air as your body gives way to the floor.", "An extreme pressure comes over you, as if an unknown force has marked you.") -/datum/phenomena/hellscape/activate(var/mob/living/L) +/datum/phenomenon/hellscape/activate(var/mob/living/L) to_chat(L, "[pick(creepy_notes)]") L.damageoverlaytemp = 100 sound_to(L, 'sound/hallucinations/far_noise.ogg') diff --git a/mods/gamemodes/deity/mobs/phenomena/phenomena.dm b/mods/gamemodes/deity/mobs/phenomena/phenomena.dm index 169eb499a3f8..8d28ab5fc6e6 100644 --- a/mods/gamemodes/deity/mobs/phenomena/phenomena.dm +++ b/mods/gamemodes/deity/mobs/phenomena/phenomena.dm @@ -1,4 +1,4 @@ -/datum/phenomena +/datum/phenomenon var/name = "Phenomena" var/desc = "This has no desc." var/cost = 0 @@ -8,21 +8,21 @@ var/refresh_time = 0 var/expected_type -/datum/phenomena/New(var/master) +/datum/phenomenon/New(var/master) linked = master ..() -/datum/phenomena/Destroy() - linked.remove_phenomena(src) +/datum/phenomenon/Destroy() + linked.remove_phenomenon(src) return ..() -/datum/phenomena/proc/Click(var/atom/target) +/datum/phenomenon/proc/Click(var/atom/target) if(can_activate(target)) linked.adjust_power(-cost) refresh_time = world.time + cooldown activate(target) -/datum/phenomena/proc/can_activate(var/atom/target) +/datum/phenomenon/proc/can_activate(var/atom/target) if(!linked) return 0 if(refresh_time > world.time) @@ -62,12 +62,12 @@ return 1 -/datum/phenomena/proc/activate(var/target) - to_chat(linked, SPAN_NOTICE("You use the phenomena [name] on \the [target]")) - log_and_message_admins("uses the phenomena [name] on \the [target]", linked, get_turf(target)) +/datum/phenomenon/proc/activate(var/target) + to_chat(linked, SPAN_NOTICE("You use the phenomenon [name] on \the [target]")) + log_and_message_admins("uses the phenomenon [name] on \the [target]", linked, get_turf(target)) return -/datum/phenomena/proc/get_desc() +/datum/phenomenon/proc/get_desc() . = desc if(cooldown) . = "Cooldown: [cooldown/10] seconds. [.]" diff --git a/mods/gamemodes/deity/mobs/phenomena/starlight.dm b/mods/gamemodes/deity/mobs/phenomena/starlight.dm index 72a6f0dbf07f..1351a50a8920 100644 --- a/mods/gamemodes/deity/mobs/phenomena/starlight.dm +++ b/mods/gamemodes/deity/mobs/phenomena/starlight.dm @@ -1,4 +1,4 @@ -/datum/phenomena/herald +/datum/phenomenon/herald name = "Bestow Heraldry" desc = "Turn one of your followers into a herald of your coming." cost = 100 @@ -25,12 +25,12 @@ ) ) -/datum/phenomena/herald/can_activate(var/a) +/datum/phenomenon/herald/can_activate(var/a) if(!..()) return FALSE return valid_for_herald(a) -/datum/phenomena/herald/proc/valid_for_herald(var/a) +/datum/phenomenon/herald/proc/valid_for_herald(var/a) var/mob/living/human/H = a if(!istype(H)) return FALSE @@ -41,13 +41,13 @@ return FALSE return TRUE -/datum/phenomena/herald/proc/equip_slot(var/mob/living/L, var/slot_id, var/new_item) +/datum/phenomenon/herald/proc/equip_slot(var/mob/living/L, var/slot_id, var/new_item) var/equipped = L.get_equipped_slot_for_item(slot_id) if(equipped) L.try_unequip(equipped, get_turf(L)) L.equip_to_slot_if_possible(new_item, slot_id) -/datum/phenomena/herald/Topic(var/href, var/list/href_list) +/datum/phenomenon/herald/Topic(var/href, var/list/href_list) if(..()) return 1 if(usr != linked) @@ -78,10 +78,10 @@ L.add_spell(boon) to_chat(L, "You have been chosen by your master to lead your fellow followers into the next age of rebirth.
You have been granted powerful armor and a powerful spell. Don't lose them, as they are your key to your divinity and leadership.
You also have particular sway over your deity's structures.
") to_chat(linked, SPAN_NOTICE("\The [L] is now your herald!")) - linked.remove_phenomena(name) + linked.remove_phenomenon(name) show_browser(linked, null, "window=herald") -/datum/phenomena/herald/activate(var/mob/living/human/H) +/datum/phenomenon/herald/activate(var/mob/living/human/H) var/list/html = list() html += "

Heralds

" html += "
Pick the type of herald you want.
" @@ -92,14 +92,14 @@ html += "" show_browser(linked, jointext(html,null), "window=herald") -/datum/phenomena/create_gateway +/datum/phenomenon/create_gateway name = "Create Gateway" desc = "Creates a gateway from this world to the next. Gateways syphon absurd amounts of power but can be sacrificed to summon powerful minions." cost = 200 flags = PHENOMENA_NEAR_STRUCTURE expected_type = /atom -/datum/phenomena/create_gateway/can_activate(var/atom/a) +/datum/phenomenon/create_gateway/can_activate(var/atom/a) if(!..()) return 0 if(istype(a, /obj/structure/deity/gateway)) @@ -115,20 +115,20 @@ return 0 return 1 -/datum/phenomena/create_gateway/activate(var/atom/a) +/datum/phenomenon/create_gateway/activate(var/atom/a) ..() if(istype(a, /obj/structure/deity/gateway)) qdel(a) else new /obj/structure/deity/gateway(get_turf(a), linked) -/datum/phenomena/flickering_whisper +/datum/phenomenon/flickering_whisper name = "Flickering Whisper" desc = "Whisper to a non-believer, allowing you to intrude on their thoughts and see what they see." flags = PHENOMENA_NONFOLLOWER expected_type = /mob/living -/datum/phenomena/flickering_whisper/activate(var/mob/living/L) +/datum/phenomenon/flickering_whisper/activate(var/mob/living/L) var/atom/whisper_from for(var/obj/structure/deity/radiant_statue/rs in view(3, L)) whisper_from = rs @@ -142,12 +142,12 @@ events_repository.register(/decl/observ/destroyed, L, src, PROC_REF(deactivate_look)) addtimer(CALLBACK(src, PROC_REF(deactivate_look), L), 30 SECONDS) -/datum/phenomena/flickering_whisper/proc/deactivate_look(var/mob/viewer) +/datum/phenomenon/flickering_whisper/proc/deactivate_look(var/mob/viewer) if(!linked.is_follower(viewer)) //Don't remove if they are follower linked.eyenet.remove_source(viewer) events_repository.unregister(/decl/observ/destroyed, viewer, src) -/datum/phenomena/burning_glare +/datum/phenomenon/burning_glare name = "Burning Glare" desc = "Burn a victim. If they are burnt enough, you'll set them ablaze." cost = 100 @@ -155,7 +155,7 @@ cooldown = 30 SECONDS expected_type = /mob/living -/datum/phenomena/burning_glare/activate(var/mob/living/L) +/datum/phenomenon/burning_glare/activate(var/mob/living/L) ..() to_chat(L, SPAN_DANGER("You feel yourself burn!")) L.take_damage(10, BURN) @@ -163,7 +163,7 @@ L.fire_stacks += 50 L.IgniteMob() -/datum/phenomena/divine_right +/datum/phenomenon/divine_right name = "Divine Right" desc = "Trigger your rebirth into the body of someone wearing a herald's uniform. This takes time, requires 3 open gateways, and if the body is destroyed during the ritual... so are you. But once complete, you become an unstoppable demigod of unnatural power." cost = 300 @@ -171,7 +171,7 @@ flags = PHENOMENA_FOLLOWER|PHENOMENA_NEAR_STRUCTURE expected_type = /mob/living -/datum/phenomena/divine_right/can_activate(var/mob/living/L) +/datum/phenomenon/divine_right/can_activate(var/mob/living/L) if(!..()) return FALSE var/active_gateways = 0 @@ -190,7 +190,7 @@ to_chat(linked, SPAN_WARNING("\The [L] is not wearing a herald's uniform.")) return FALSE -/datum/phenomena/divine_right/activate(var/mob/living/L) +/datum/phenomenon/divine_right/activate(var/mob/living/L) ..() to_chat(L, SPAN_OCCULT("Your soul is ripped from your body as your master prepares to possess it.")) to_chat(linked, SPAN_OCCULT("You prepare the body for possession. Keep it safe. If it is totally destroyed, you will die.")) @@ -209,10 +209,10 @@ else to_chat(player, SPAN_NOTICE("Your Master is being reborn into the body of \the [L]. Protect it at all costs.")) -/datum/phenomena/divine_right/proc/fail_ritual(var/mob/living/L) +/datum/phenomenon/divine_right/proc/fail_ritual(var/mob/living/L) qdel(linked) -/datum/phenomena/divine_right/proc/succeed_ritual(var/mob/living/L) +/datum/phenomenon/divine_right/proc/succeed_ritual(var/mob/living/L) to_chat(linked, SPAN_OCCULT("You have been reborn! Your power is limited here, focused on your body, but in return you are both eternal and physical.")) for(var/mob/living/player in global.player_list) sound_to(player, 'sound/effects/cascade.ogg') @@ -221,12 +221,12 @@ L.SetName("[linked] Incarnate") L.real_name = "[linked] Incarnate" -/datum/phenomena/movable_object/wisp +/datum/phenomenon/movable_object/wisp name = "Wisp" desc = "Creates or moves a small ball of light for your followers to use." cost = 30 object_type = /obj/item/flashlight/slime -/datum/phenomena/movable_object/wisp/add_object() +/datum/phenomenon/movable_object/wisp/add_object() ..() object_to_move.SetName("wisp") \ No newline at end of file diff --git a/mods/gamemodes/deity/mobs/phenomena/transmutation.dm b/mods/gamemodes/deity/mobs/phenomena/transmutation.dm index e86c92ec4d4e..381e885d3187 100644 --- a/mods/gamemodes/deity/mobs/phenomena/transmutation.dm +++ b/mods/gamemodes/deity/mobs/phenomena/transmutation.dm @@ -1,4 +1,4 @@ -/datum/phenomena/warp +/datum/phenomenon/warp name = "Warp Body" desc = "Corrupt a mortal being, causing their DNA to break and their body to fail on them." cost = 90 @@ -6,20 +6,20 @@ flags = PHENOMENA_NEAR_STRUCTURE|PHENOMENA_MUNDANE|PHENOMENA_FOLLOWER|PHENOMENA_NONFOLLOWER expected_type = /mob/living -/datum/phenomena/warp/activate(var/mob/living/L) +/datum/phenomenon/warp/activate(var/mob/living/L) ..() L.take_damage(20, CLONE) SET_STATUS_MAX(L, STAT_WEAK, 2) to_chat(L, SPAN_DANGER("You feel your body warp and change underneath you!")) -/datum/phenomena/rock_form +/datum/phenomenon/rock_form name = "Rock Form" desc = "Convert your mortal followers into immortal stone beings." cost = 300 flags = PHENOMENA_NEAR_STRUCTURE|PHENOMENA_FOLLOWER expected_type = /mob/living/human -/datum/phenomena/rock_form/activate(var/mob/living/human/H) +/datum/phenomenon/rock_form/activate(var/mob/living/human/H) ..() to_chat(H, SPAN_DANGER("You feel your body harden as it rapidly is transformed into living crystal!")) H.change_species(SPECIES_GOLEM) diff --git a/mods/gamemodes/deity/screen/intent.dm b/mods/gamemodes/deity/screen/intent.dm index 80b3a423170e..9f5b18b6aaa8 100644 --- a/mods/gamemodes/deity/screen/intent.dm +++ b/mods/gamemodes/deity/screen/intent.dm @@ -9,24 +9,25 @@ compile_overlays() /obj/screen/intent/deity/proc/sync_to_mob(var/mob) - var/mob/living/deity/D = mob - for(var/i in 1 to D.control_types.len) - var/obj/screen/deity_marker/S = new(null, D) - desc_screens[D.control_types[i]] = S + var/mob/living/deity/deity = mob + for(var/i in 1 to deity.control_types.len) + var/obj/screen/deity_marker/S = new(null, deity) + desc_screens[deity.control_types[i]] = S S.screen_loc = screen_loc //This sets it up right. Trust me. S.maptext_y = 33/2*i - i*i/2 - 10 - D.client.screen += S - + deity.client.screen += S update_text() /obj/screen/intent/deity/proc/update_text() - if(!isdeity(usr)) + var/mob/living/deity/deity = usr + var/mob/owner = owner_ref?.resolve() + if(!istype(deity) || !istype(owner) || owner != deity) return - var/mob/living/deity/D = usr - for(var/i in D.control_types) + var/decl/intent/intent = owner.get_intent() + for(var/i in deity.control_types) var/obj/screen/deity_marker/S = desc_screens[i] - var/datum/phenomena/P = D.intent_phenomenas[intent][i] + var/datum/phenomenon/P = deity.intent_phenomena[intent][i] if(P) S.maptext = "[P.name]" else diff --git a/mods/gamemodes/heist/heist_base.dmm b/mods/gamemodes/heist/heist_base.dmm index cd92f5dc9096..737f150b57eb 100644 --- a/mods/gamemodes/heist/heist_base.dmm +++ b/mods/gamemodes/heist/heist_base.dmm @@ -371,7 +371,7 @@ /turf/unsimulated/floor/freezer, /area/map_template/syndicate_mothership/raider_base) "bo" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/effect/floor_decal/carpet{ dir = 8 }, @@ -380,7 +380,7 @@ /turf/unsimulated/floor/carpet, /area/map_template/syndicate_mothership/raider_base) "bp" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/random/action_figure, /obj/random/contraband, /obj/random/junk, @@ -505,28 +505,28 @@ /turf/unsimulated/floor/carpet, /area/map_template/syndicate_mothership/raider_base) "bJ" = ( -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "bK" = ( -/turf/unsimulated/floor/wood/broken, +/turf/unsimulated/floor/laminate/broken, /area/map_template/syndicate_mothership/raider_base) "bL" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/plate/tray{ pixel_y = 5 }, /obj/item/backpack, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "bM" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/box/glasses/rocks, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "bN" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/machinery/chemical_dispenser/bar_soft/full, -/turf/unsimulated/floor/wood/broken6, +/turf/unsimulated/floor/laminate/broken6, /area/map_template/syndicate_mothership/raider_base) "bO" = ( /obj/effect/decal/cleanable/dirt, @@ -580,33 +580,33 @@ /area/map_template/syndicate_mothership/raider_base) "bV" = ( /obj/item/stool/padded, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "bW" = ( /obj/effect/decal/cleanable/generic, /obj/item/stool/padded, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "bZ" = ( /obj/machinery/acting/changer, /turf/unsimulated/floor/dark, /area/map_template/syndicate_mothership/raider_base) "ca" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/pizzabox/meat, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "cb" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/ashtray, /obj/item/trash/cigbutt/cigarbutt, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "cc" = ( -/obj/structure/table/woodentable, +/obj/structure/table/laminate, /obj/item/chems/glass/rag, /obj/random/loot, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "cd" = ( /obj/machinery/vending/cigarette{ @@ -631,11 +631,11 @@ /turf/unsimulated/floor/dark, /area/map_template/syndicate_mothership/raider_base) "ch" = ( -/turf/unsimulated/floor/wood/broken1, +/turf/unsimulated/floor/laminate/broken1, /area/map_template/syndicate_mothership/raider_base) "ci" = ( /obj/item/stool/padded, -/turf/unsimulated/floor/wood/broken1, +/turf/unsimulated/floor/laminate/broken1, /area/map_template/syndicate_mothership/raider_base) "cj" = ( /mob/living/simple_animal/hostile/parrot/pirate, @@ -664,11 +664,11 @@ icon_state = "plant-25"; name = "Jamie" }, -/turf/unsimulated/floor/wood, +/turf/unsimulated/floor/laminate, /area/map_template/syndicate_mothership/raider_base) "cn" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/unsimulated/floor/wood/broken1, +/turf/unsimulated/floor/laminate/broken1, /area/map_template/syndicate_mothership/raider_base) "co" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller{ diff --git a/mods/gamemodes/ninja/maps/ninja_base.dmm b/mods/gamemodes/ninja/maps/ninja_base.dmm index fcda23c484b0..828d006063ec 100644 --- a/mods/gamemodes/ninja/maps/ninja_base.dmm +++ b/mods/gamemodes/ninja/maps/ninja_base.dmm @@ -407,22 +407,22 @@ /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) "bw" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/machinery/chemical_dispenser/bar_soft/full, /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) "bx" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/box/glasses, /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) "by" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/box/sinpockets, /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) "bz" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/machinery/microwave, /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) @@ -464,7 +464,7 @@ /turf/unsimulated/floor/freezer, /area/map_template/ninja_dojo/dojo) "bF" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/chems/drinks/dry_ramen, /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) @@ -494,7 +494,7 @@ /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) "bL" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/flashlight/lamp, /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) @@ -539,7 +539,7 @@ /turf/unsimulated/floor/carpet, /area/map_template/ninja_dojo/dojo) "bS" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/food/soylentgreen, /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) @@ -560,7 +560,7 @@ /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) "bW" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/toy/figure/wizard, /obj/item/radio/intercom/ninja{ dir = 1; @@ -569,7 +569,7 @@ /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) "bX" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/clothing/shoes/sandal, /obj/item/clothing/mask/balaclava, /turf/unsimulated/floor/wood, @@ -585,7 +585,7 @@ /turf/unsimulated/floor/freezer, /area/map_template/ninja_dojo/dojo) "ca" = ( -/obj/structure/table/woodentable, +/obj/structure/table/wood, /obj/item/flame/candle, /turf/unsimulated/floor/wood, /area/map_template/ninja_dojo/dojo) diff --git a/mods/mobs/borers/mob/borer/borer.dm b/mods/mobs/borers/mob/borer/borer.dm index 5529384f7741..83dc85cd0038 100644 --- a/mods/mobs/borers/mob/borer/borer.dm +++ b/mods/mobs/borers/mob/borer/borer.dm @@ -9,8 +9,6 @@ response_disarm = "prods" response_harm = "stamps on" base_movement_delay = 2 - - a_intent = I_HURT status_flags = CANPUSH natural_weapon = /obj/item/natural_weapon/bite/weak pass_flags = PASS_FLAG_TABLE diff --git a/mods/mobs/borers/mob/borer/borer_attacks.dm b/mods/mobs/borers/mob/borer/borer_attacks.dm index 43358767a9ef..5463f67d7183 100644 --- a/mods/mobs/borers/mob/borer/borer_attacks.dm +++ b/mods/mobs/borers/mob/borer/borer_attacks.dm @@ -4,7 +4,7 @@ if(.) return - if(!isliving(A) || a_intent != I_GRAB) + if(!isliving(A) || !check_intent(I_FLAG_GRAB)) return FALSE if(host || !can_use_borer_ability(requires_host_value = FALSE, check_last_special = FALSE)) diff --git a/mods/mobs/borers/mob/borer/borer_hud.dm b/mods/mobs/borers/mob/borer/borer_hud.dm index 8b9a155e5d43..084bacb7a160 100644 --- a/mods/mobs/borers/mob/borer/borer_hud.dm +++ b/mods/mobs/borers/mob/borer/borer_hud.dm @@ -14,7 +14,7 @@ . = ..() /datum/hud/borer/FinalizeInstantiation() - hud_intent_selector = new(null, mymob, get_ui_style_data(), get_ui_color(), get_ui_alpha(), UI_ICON_INTENT) + hud_intent_selector = new(null, mymob) adding += hud_intent_selector hud_inject_chemicals = new(null, mymob) hud_leave_host = new(null, mymob) diff --git a/mods/mobs/dionaea/icons/ui_intent_overlay.dmi b/mods/mobs/dionaea/icons/ui_intent_overlay.dmi new file mode 100644 index 000000000000..8c3174c773a3 Binary files /dev/null and b/mods/mobs/dionaea/icons/ui_intent_overlay.dmi differ diff --git a/mods/mobs/dionaea/icons/ui_intents.dmi b/mods/mobs/dionaea/icons/ui_intents.dmi index d8aaeba136e2..7a7f29b4d21c 100644 Binary files a/mods/mobs/dionaea/icons/ui_intents.dmi and b/mods/mobs/dionaea/icons/ui_intents.dmi differ diff --git a/mods/mobs/dionaea/mob/_nymph.dm b/mods/mobs/dionaea/mob/_nymph.dm index 4c8b1a9f4967..6ec480cda3be 100644 --- a/mods/mobs/dionaea/mob/_nymph.dm +++ b/mods/mobs/dionaea/mob/_nymph.dm @@ -76,6 +76,18 @@ heal_damage(OXY, rads, do_update_health = FALSE) heal_damage(TOX, rads) +/* +/mob/living/simple_animal/alien/diona/get_default_intent() + return GET_DECL(/decl/intent/help/binary/diona) + +/mob/living/simple_animal/alien/diona/get_available_intents() + var/static/list/available_intents = list( + GET_DECL(/decl/intent/harm/binary/diona), + GET_DECL(/decl/intent/help/binary/diona) + ) + return available_intents +*/ + /decl/bodytype/diona name = "nymph" bodytype_flag = 0 diff --git a/mods/mobs/dionaea/mob/nymph_ui.dm b/mods/mobs/dionaea/mob/nymph_ui.dm index 15ab7bf27eac..cdd3a3f8c6da 100644 --- a/mods/mobs/dionaea/mob/nymph_ui.dm +++ b/mods/mobs/dionaea/mob/nymph_ui.dm @@ -1,14 +1,16 @@ -/obj/screen/intent/diona_nymph - icon_state = "intent_harm" +/* Commented out due to issues with interactions and combined intent flags. +/obj/screen/intent/binary/diona + icon = 'mods/mobs/dionaea/icons/ui_intents.dmi' screen_loc = DIONA_SCREEN_LOC_INTENT -/obj/screen/intent/diona_nymph/on_update_icon() - if(intent == I_HURT || intent == I_GRAB) - intent = I_GRAB - icon_state = "intent_harm" - else - intent = I_DISARM - icon_state = "intent_help" +/decl/intent/harm/binary/diona + icon = 'mods/mobs/dionaea/icons/ui_intent_overlay.dmi' + uid = "intent_harm_binary_diona" + +/decl/intent/help/binary/diona + icon = 'mods/mobs/dionaea/icons/ui_intent_overlay.dmi' + uid = "intent_help_binary_diona" +*/ /decl/ui_style/diona name = "Diona" @@ -17,7 +19,6 @@ override_icons = list( UI_ICON_HEALTH = 'mods/mobs/dionaea/icons/ui_health.dmi', UI_ICON_HANDS = 'mods/mobs/dionaea/icons/ui_hands.dmi', - UI_ICON_INTENT = 'mods/mobs/dionaea/icons/ui_intents.dmi', UI_ICON_INTERACTION = 'mods/mobs/dionaea/icons/ui_interactions.dmi', UI_ICON_INVENTORY = 'mods/mobs/dionaea/icons/ui_inventory.dmi' ) @@ -36,8 +37,8 @@ var/ui_color = get_ui_color() var/ui_alpha = get_ui_alpha() - action_intent = new /obj/screen/intent/diona_nymph(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_INTENT) - mymob.healths = new /obj/screen/diona_health( null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_HEALTH) + action_intent = new /obj/screen/intent( null, mymob) // Swap to /obj/screen/intent/binary/diona when interaction code supports it. + mymob.healths = new /obj/screen/diona_health( null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_HEALTH) src.other = list() src.adding = list(mymob.healths, action_intent) ..() diff --git a/mods/pyrelight/datum/wyrdling/mask.dm b/mods/pyrelight/datum/wyrdling/mask.dm index 25c81889f7b8..a2e8e2e6df0b 100644 --- a/mods/pyrelight/datum/wyrdling/mask.dm +++ b/mods/pyrelight/datum/wyrdling/mask.dm @@ -110,9 +110,9 @@ required_traits = list(/decl/trait/wyrd/wild) available_materials = list( /decl/material/solid/organic/bone, - /decl/material/solid/organic/wood, /decl/material/solid/stone/marble, /decl/material/solid/stone/basalt, + /decl/material/solid/organic/wood/oak, /decl/material/solid/organic/wood/mahogany, /decl/material/solid/organic/wood/maple, /decl/material/solid/organic/wood/ebony, diff --git a/mods/pyrelight/plants/_plants.dm b/mods/pyrelight/plants/_plants.dm index 001cb531a865..f9a75c33d351 100644 --- a/mods/pyrelight/plants/_plants.dm +++ b/mods/pyrelight/plants/_plants.dm @@ -54,7 +54,7 @@ harvest_timer -= harvest_time /obj/structure/flora/growing/attackby(obj/item/O, mob/user) - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) if(!harvest_tool) to_chat(user, "You must use your hands to harvest from \the [src].") return TRUE @@ -67,7 +67,7 @@ return ..() /obj/structure/flora/growing/attack_hand(mob/user) - if(user.a_intent == I_HELP) + if(user.check_intent(I_FLAG_HELP)) if(harvest_tool) var/decl/tool_archetype/tool = GET_DECL(harvest_tool) to_chat(user, SPAN_WARNING("You must use \a [tool] to harvest from \the [src].")) diff --git a/mods/pyrelight/plants/plants_fruit.dm b/mods/pyrelight/plants/plants_fruit.dm index abe2ca352ab7..3fd545216628 100644 --- a/mods/pyrelight/plants/plants_fruit.dm +++ b/mods/pyrelight/plants/plants_fruit.dm @@ -68,7 +68,7 @@ to_chat(user, SPAN_NOTICE("With [comp_ind], you could harvest [english_list(comp_string_comps)].")) /obj/item/food/fruit/attackby(obj/item/W, mob/living/user) - if(user?.a_intent != I_HURT) + if(!user?.check_intent(I_FLAG_HARM)) var/list/fruit_comp = get_composition() for(var/datum/fruit_segment/comp as anything in fruit_comp) var/remaining = comp.dissect_amount - LAZYACCESS(removed_segments, comp) diff --git a/mods/species/ascent/_ascent.dme b/mods/species/ascent/_ascent.dme index 63d6f95300dc..461ef828f3a8 100644 --- a/mods/species/ascent/_ascent.dme +++ b/mods/species/ascent/_ascent.dme @@ -14,6 +14,7 @@ #include "datum\species_bodytypes.dm" #include "datum\traits.dm" #include "effects\razorweb.dm" +#include "items\_overrides.dm" #include "items\cell.dm" #include "items\clothing.dm" #include "items\clustertool.dm" diff --git a/mods/species/ascent/icons/ui_intent_overlay.dmi b/mods/species/ascent/icons/ui_intent_overlay.dmi new file mode 100644 index 000000000000..d49275852d34 Binary files /dev/null and b/mods/species/ascent/icons/ui_intent_overlay.dmi differ diff --git a/mods/species/ascent/icons/ui_intents.dmi b/mods/species/ascent/icons/ui_intents.dmi index 1e027dcfcddd..0e8d07ec2fec 100644 Binary files a/mods/species/ascent/icons/ui_intents.dmi and b/mods/species/ascent/icons/ui_intents.dmi differ diff --git a/mods/species/ascent/items/_overrides.dm b/mods/species/ascent/items/_overrides.dm new file mode 100644 index 000000000000..3cc8b68959b6 --- /dev/null +++ b/mods/species/ascent/items/_overrides.dm @@ -0,0 +1,10 @@ +/obj/item + var/_alate_onmob_icon + var/_gyne_onmob_icon + +/obj/item/setup_sprite_sheets() + . = ..() + if(_alate_onmob_icon) + LAZYSET(sprite_sheets, BODYTYPE_MANTID_SMALL, _alate_onmob_icon) + if(_gyne_onmob_icon) + LAZYSET(sprite_sheets, BODYTYPE_MANTID_LARGE, _gyne_onmob_icon) diff --git a/mods/species/ascent/items/clothing.dm b/mods/species/ascent/items/clothing.dm index 9962664265ae..64641d04adf5 100644 --- a/mods/species/ascent/items/clothing.dm +++ b/mods/species/ascent/items/clothing.dm @@ -22,7 +22,7 @@ desc = "An alien facemask with chunky gas filters and a breathing valve." filter_water = TRUE icon = 'mods/species/ascent/icons/clothing/mask.dmi' - sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/clothing/mask_gyne.dmi') + _gyne_onmob_icon = 'mods/species/ascent/icons/clothing/mask_gyne.dmi' bodytype_equip_flags = BODY_EQUIP_FLAG_GYNE | BODY_EQUIP_FLAG_ALATE filtered_gases = list( /decl/material/gas/nitrous_oxide, @@ -38,9 +38,7 @@ desc = "A set of powerful gripping claws." icon = 'mods/species/ascent/icons/magboots/boots.dmi' bodytype_equip_flags = BODY_EQUIP_FLAG_GYNE | BODY_EQUIP_FLAG_ALATE - sprite_sheets = list( - BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/magboots/boots_gyne.dmi' - ) + _gyne_onmob_icon = 'mods/species/ascent/icons/magboots/boots_gyne.dmi' /obj/item/clothing/jumpsuit/ascent name = "mantid undersuit" @@ -48,9 +46,7 @@ bodytype_equip_flags = BODY_EQUIP_FLAG_GYNE | BODY_EQUIP_FLAG_ALATE icon = 'mods/species/ascent/icons/clothing/under.dmi' color = COLOR_DARK_GUNMETAL - sprite_sheets = list( - BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/clothing/under_gyne.dmi' - ) + _gyne_onmob_icon = 'mods/species/ascent/icons/clothing/under_gyne.dmi' /obj/item/clothing/suit/ascent name = "mantid gear harness" @@ -58,7 +54,7 @@ bodytype_equip_flags = BODY_EQUIP_FLAG_GYNE | BODY_EQUIP_FLAG_ALATE icon_state = ICON_STATE_WORLD icon = 'mods/species/ascent/icons/clothing/under_harness.dmi' - sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/clothing/under_harness_gyne.dmi') + _gyne_onmob_icon = 'mods/species/ascent/icons/clothing/under_harness_gyne.dmi' body_parts_covered = 0 slot_flags = SLOT_OVER_BODY | SLOT_LOWER_BODY storage = /datum/storage/pockets/suit diff --git a/mods/species/ascent/items/guns.dm b/mods/species/ascent/items/guns.dm index 83fdda10ffce..99a76ce53514 100644 --- a/mods/species/ascent/items/guns.dm +++ b/mods/species/ascent/items/guns.dm @@ -20,7 +20,7 @@ list(mode_name="shock", projectile_type = /obj/item/projectile/beam/stun/shock), list(mode_name="lethal", projectile_type = /obj/item/projectile/beam/particle) ) - sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/particle_rifle/inhands_gyne.dmi') + _gyne_onmob_icon = 'mods/species/ascent/icons/particle_rifle/inhands_gyne.dmi' /obj/item/gun/energy/particle/small name = "particle projector" diff --git a/mods/species/ascent/items/rig.dm b/mods/species/ascent/items/rig.dm index 35697954e7b4..214f60caa99a 100644 --- a/mods/species/ascent/items/rig.dm +++ b/mods/species/ascent/items/rig.dm @@ -3,7 +3,6 @@ name = "alate support exosuit" desc = "A powerful support exosuit with integrated power supply, weapon and atmosphere. It's closer to a mech than a rig." icon = 'mods/species/ascent/icons/rig/rig.dmi' - suit_type = "support exosuit" armor = list( ARMOR_MELEE = ARMOR_MELEE_MAJOR, @@ -28,7 +27,7 @@ gloves = /obj/item/clothing/gloves/rig/mantid update_visible_name = TRUE - sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/rig/rig_gyne.dmi') + _gyne_onmob_icon = 'mods/species/ascent/icons/rig/rig_gyne.dmi' initial_modules = list( /obj/item/rig_module/vision/thermal, /obj/item/rig_module/ai_container, @@ -241,7 +240,7 @@ desc = "More like a torpedo casing than a helmet." bodytype_equip_flags = BODY_EQUIP_FLAG_GYNE | BODY_EQUIP_FLAG_ALATE icon = 'mods/species/ascent/icons/rig/rig_helmet.dmi' - sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/rig/rig_helmet_gyne.dmi') + _gyne_onmob_icon = 'mods/species/ascent/icons/rig/rig_helmet_gyne.dmi' /obj/item/clothing/suit/space/rig/mantid desc = "It's closer to a mech than a suit." @@ -255,16 +254,16 @@ /obj/item/stack/medical/resin, /obj/item/chems/drinks/cans/waterbottle/ascent ) - sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/rig/rig_chest_gyne.dmi') + _gyne_onmob_icon = 'mods/species/ascent/icons/rig/rig_chest_gyne.dmi' /obj/item/clothing/shoes/magboots/rig/mantid icon = 'mods/species/ascent/icons/rig/rig_boots.dmi' desc = "It's like a highly advanced forklift." bodytype_equip_flags = BODY_EQUIP_FLAG_GYNE | BODY_EQUIP_FLAG_ALATE - sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/rig/rig_boots_gyne.dmi') + _gyne_onmob_icon = 'mods/species/ascent/icons/rig/rig_boots_gyne.dmi' /obj/item/clothing/gloves/rig/mantid icon = 'mods/species/ascent/icons/rig/rig_gloves.dmi' desc = "They look like a cross between a can opener and a Swiss army knife the size of a shoebox." bodytype_equip_flags = BODY_EQUIP_FLAG_GYNE | BODY_EQUIP_FLAG_ALATE - sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/rig/rig_gloves_gyne.dmi') + _gyne_onmob_icon = 'mods/species/ascent/icons/rig/rig_gloves_gyne.dmi' diff --git a/mods/species/ascent/mobs/nymph/_nymph.dm b/mods/species/ascent/mobs/nymph/_nymph.dm index da48aabf82e1..16447b0c51dc 100644 --- a/mods/species/ascent/mobs/nymph/_nymph.dm +++ b/mods/species/ascent/mobs/nymph/_nymph.dm @@ -51,3 +51,15 @@ /mob/living/simple_animal/alien/kharmaan/get_dexterity(var/silent) return (DEXTERITY_EQUIP_ITEM) + +/* +/mob/living/simple_animal/alien/kharmaan/get_default_intent() + return GET_DECL(/decl/intent/help/binary/ascent) + +/mob/living/simple_animal/alien/kharmaan/get_available_intents() + var/static/list/available_intents = list( + GET_DECL(/decl/intent/harm/binary/ascent), + GET_DECL(/decl/intent/help/binary/ascent) + ) + return available_intents +*/ \ No newline at end of file diff --git a/mods/species/ascent/mobs/nymph/nymph_ui.dm b/mods/species/ascent/mobs/nymph/nymph_ui.dm index 85225fd26a9c..c100c95b4cd2 100644 --- a/mods/species/ascent/mobs/nymph/nymph_ui.dm +++ b/mods/species/ascent/mobs/nymph/nymph_ui.dm @@ -1,15 +1,16 @@ -/obj/screen/intent/ascent_nymph - icon_state = "intent_harm" +/* Commented out due to issues with interactions and combined intent flags. +/obj/screen/intent/binary/ascent + icon = 'mods/species/ascent/icons/ui_intents.dmi' screen_loc = ANYMPH_SCREEN_LOC_INTENT -/obj/screen/intent/ascent_nymph/on_update_icon() - if(intent == I_HURT || intent == I_GRAB) - intent = I_GRAB - icon_state = "intent_harm" - else - intent = I_DISARM - icon_state = "intent_help" +/decl/intent/harm/binary/ascent + icon = 'mods/species/ascent/icons/ui_intent_overlay.dmi' + uid = "intent_harm_binary_ascent" +/decl/intent/help/binary/ascent + icon = 'mods/species/ascent/icons/ui_intent_overlay.dmi' + uid = "intent_help_binary_ascent" +*/ /obj/screen/ascent_nymph_molt name = "molt" icon = 'mods/species/ascent/icons/ui_molt.dmi' @@ -33,7 +34,6 @@ override_icons = list( UI_ICON_HEALTH = 'mods/species/ascent/icons/ui_health.dmi', UI_ICON_HANDS = 'mods/species/ascent/icons/ui_hands.dmi', - UI_ICON_INTENT = 'mods/species/ascent/icons/ui_intents.dmi', UI_ICON_INTERACTION = 'mods/species/ascent/icons/ui_interactions.dmi', UI_ICON_INVENTORY = 'mods/species/ascent/icons/ui_inventory.dmi' ) @@ -51,11 +51,11 @@ var/decl/ui_style/ui_style = get_ui_style_data() var/ui_color = get_ui_color() var/ui_alpha = get_ui_alpha() - molt = new( null, mymob, ui_style, ui_color, ui_alpha) - food = new /obj/screen/food( null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_NUTRITION) - drink = new /obj/screen/drink( null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_HYDRATION) - action_intent = new /obj/screen/intent/ascent_nymph(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_INTENT) - mymob.healths = new /obj/screen/ascent_nymph_health(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_HEALTH) + molt = new( null, mymob, ui_style, ui_color, ui_alpha) + food = new /obj/screen/food( null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_NUTRITION) + drink = new /obj/screen/drink( null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_HYDRATION) + action_intent = new /obj/screen/intent( null) // Swap to /obj/screen/intent/binary/ascent when interaction code supports it. + mymob.healths = new /obj/screen/ascent_nymph_health( null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_HEALTH) src.other = list() src.adding = list(mymob.healths, molt, food, drink, action_intent) ..() diff --git a/mods/species/bayliens/bayliens.dm b/mods/species/bayliens/_bayliens.dm similarity index 77% rename from mods/species/bayliens/bayliens.dm rename to mods/species/bayliens/_bayliens.dm index a1ddf384ed92..68d625b481ff 100644 --- a/mods/species/bayliens/bayliens.dm +++ b/mods/species/bayliens/_bayliens.dm @@ -1,7 +1,12 @@ -#define SPECIES_SKRELL "Skrell" -#define SPECIES_TAJARA "Tajara" -#define SPECIES_LIZARD "Unathi" -#define SPECIES_ADHERENT "Adherent" +#define SPECIES_SKRELL "Skrell" +#define SPECIES_TAJARA "Tajara" +#define SPECIES_LIZARD "Unathi" +#define SPECIES_ADHERENT "Adherent" + +#define BODYTYPE_FELINE "feline body" +#define BODYTYPE_ADHERENT "adherent body" + +#define BODY_EQUIP_FLAG_FELINE BITFLAG(7) /decl/modpack/bayliens name = "Baystation 12 Aliens" diff --git a/mods/species/bayliens/_bayliens.dme b/mods/species/bayliens/_bayliens.dme index e8de7a35d0b6..014aba6cf5d8 100644 --- a/mods/species/bayliens/_bayliens.dme +++ b/mods/species/bayliens/_bayliens.dme @@ -1,7 +1,8 @@ #ifndef MODPACK_BAYLIENS #define MODPACK_BAYLIENS // BEGIN_INCLUDE -#include "bayliens.dm" +#include "_bayliens.dm" +#include "_overrides.dm" #include "adherent\_adherent.dm" #include "adherent\datum\culture.dm" #include "adherent\datum\emotes.dm" diff --git a/mods/species/bayliens/_overrides.dm b/mods/species/bayliens/_overrides.dm new file mode 100644 index 000000000000..5eb6f5a85583 --- /dev/null +++ b/mods/species/bayliens/_overrides.dm @@ -0,0 +1,7 @@ +/obj/item + var/_feline_onmob_icon + +/obj/item/setup_sprite_sheets() + . = ..() + if(_feline_onmob_icon) + LAZYSET(sprite_sheets, BODYTYPE_FELINE, _feline_onmob_icon) diff --git a/mods/species/bayliens/adherent/_adherent.dm b/mods/species/bayliens/adherent/_adherent.dm index 997107674c85..d70f337115d7 100644 --- a/mods/species/bayliens/adherent/_adherent.dm +++ b/mods/species/bayliens/adherent/_adherent.dm @@ -1,6 +1,4 @@ -#define BODYTYPE_ADHERENT "adherent body" #define LANGUAGE_ADHERENT "Protocol" - #define BP_FLOAT "floatation disc" #define BP_JETS "maneuvering jets" #define BP_COOLING_FINS "cooling fins" diff --git a/mods/species/bayliens/tajaran/_tajaran.dm b/mods/species/bayliens/tajaran/_tajaran.dm index b4e664e999bb..151b2b1c8a7a 100644 --- a/mods/species/bayliens/tajaran/_tajaran.dm +++ b/mods/species/bayliens/tajaran/_tajaran.dm @@ -1,6 +1,4 @@ #define LANGUAGE_TAJARA "Siik'maas" -#define BODYTYPE_FELINE "feline body" -#define BODY_EQUIP_FLAG_FELINE BITFLAG(7) /obj/item/clothing/setup_equip_flags() . = ..() diff --git a/mods/species/bayliens/tajaran/machinery/suit_cycler.dm b/mods/species/bayliens/tajaran/machinery/suit_cycler.dm index af8842c7b19b..b6c5366944c3 100644 --- a/mods/species/bayliens/tajaran/machinery/suit_cycler.dm +++ b/mods/species/bayliens/tajaran/machinery/suit_cycler.dm @@ -2,70 +2,53 @@ LAZYDISTINCTADD(available_bodytypes, BODYTYPE_FELINE) . = ..() -/obj/item/clothing/suit/space/void/merc/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/merc/suit.dmi') +/obj/item/clothing/suit/space/void/merc + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/merc/suit.dmi' -/obj/item/clothing/suit/space/void/swat/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/deathsquad/suit.dmi') +/obj/item/clothing/suit/space/void/swat + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/deathsquad/suit.dmi' -/obj/item/clothing/suit/space/void/engineering/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/engineering/suit.dmi') +/obj/item/clothing/suit/space/void/engineering + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/engineering/suit.dmi' -/obj/item/clothing/suit/space/void/mining/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/mining/suit.dmi') +/obj/item/clothing/suit/space/void/mining + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/mining/suit.dmi' -/obj/item/clothing/suit/space/void/medical/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/medical/suit.dmi') +/obj/item/clothing/suit/space/void/medical + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/medical/suit.dmi' -/obj/item/clothing/suit/space/void/security/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/sec/suit.dmi') +/obj/item/clothing/suit/space/void/security + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/sec/suit.dmi' -/obj/item/clothing/suit/space/void/atmos/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/atmos/suit.dmi') +/obj/item/clothing/suit/space/void/atmos + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/atmos/suit.dmi' -/obj/item/clothing/suit/space/void/engineering/alt/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/engineering_alt/suit.dmi') +/obj/item/clothing/suit/space/void/engineering/alt + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/engineering_alt/suit.dmi' -/obj/item/clothing/suit/space/void/mining/alt/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/mining_alt/suit.dmi') +/obj/item/clothing/suit/space/void/mining/alt + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/mining_alt/suit.dmi' -/obj/item/clothing/suit/space/void/medical/alt/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/medical_alt/suit.dmi') +/obj/item/clothing/suit/space/void/medical/alt + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/medical_alt/suit.dmi' -/obj/item/clothing/suit/space/void/security/alt/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/sec_alt/suit.dmi') +/obj/item/clothing/suit/space/void/security/alt + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/sec_alt/suit.dmi' -/obj/item/clothing/suit/space/void/atmos/alt/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/atmos_alt/suit.dmi') +/obj/item/clothing/suit/space/void/atmos/alt + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/atmos_alt/suit.dmi' -/obj/item/clothing/suit/space/void/engineering/salvage/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/salvage/suit.dmi') +/obj/item/clothing/suit/space/void/engineering/salvage + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/salvage/suit.dmi' -/obj/item/clothing/suit/space/void/expedition/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/pilot/suit.dmi') +/obj/item/clothing/suit/space/void/expedition + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/pilot/suit.dmi' -/obj/item/clothing/suit/space/void/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/nasa/suit.dmi') +/obj/item/clothing/suit/space/void + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/nasa/suit.dmi' -/obj/item/clothing/suit/space/void/wizard/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/wizard/suit.dmi') +/obj/item/clothing/suit/space/void/wizard + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/wizard/suit.dmi' -/obj/item/clothing/suit/space/void/excavation/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_FELINE, 'mods/species/bayliens/tajaran/icons/clothing/excavation/suit.dmi') +/obj/item/clothing/suit/space/void/excavation + _feline_onmob_icon = 'mods/species/bayliens/tajaran/icons/clothing/excavation/suit.dmi' diff --git a/mods/species/drakes/_drakes.dme b/mods/species/drakes/_drakes.dme index 44fa41725be3..1143d6a510ee 100644 --- a/mods/species/drakes/_drakes.dme +++ b/mods/species/drakes/_drakes.dme @@ -7,6 +7,7 @@ // BEGIN_INCLUDE #include "_drakes.dm" +#include "_overrides.dm" #include "clothing.dm" #include "culture.dm" #include "drake_abilities.dm" diff --git a/mods/species/drakes/_overrides.dm b/mods/species/drakes/_overrides.dm new file mode 100644 index 000000000000..a4c564def3ce --- /dev/null +++ b/mods/species/drakes/_overrides.dm @@ -0,0 +1,10 @@ +/obj/item + var/_drake_onmob_icon + var/_drake_hatchling_onmob_icon + +/obj/item/backpack/setup_sprite_sheets() + . = ..() + if(_drake_onmob_icon) + LAZYSET(sprite_sheets, BODYTYPE_GRAFADREKA, _drake_onmob_icon) + if(_drake_hatchling_onmob_icon) + LAZYSET(sprite_sheets, BODYTYPE_GRAFADREKA_HATCHLING, _drake_hatchling_onmob_icon) diff --git a/mods/species/drakes/clothing.dm b/mods/species/drakes/clothing.dm index ac23b01ba190..63c803bc1dbe 100644 --- a/mods/species/drakes/clothing.dm +++ b/mods/species/drakes/clothing.dm @@ -1,21 +1,11 @@ +/obj/item/backpack + _drake_onmob_icon = 'mods/species/drakes/icons/clothing/backpack.dmi' + _drake_hatchling_onmob_icon = 'mods/species/drakes/icons/clothing/hatchling_backpack.dmi' -/obj/item/backpack/setup_sprite_sheets() - . = ..() - if(!(BODYTYPE_GRAFADREKA in sprite_sheets)) - LAZYSET(sprite_sheets, BODYTYPE_GRAFADREKA, 'mods/species/drakes/icons/clothing/backpack.dmi') - if(!(BODYTYPE_GRAFADREKA_HATCHLING in sprite_sheets)) - LAZYSET(sprite_sheets, BODYTYPE_GRAFADREKA_HATCHLING, 'mods/species/drakes/icons/clothing/hatchling_backpack.dmi') +/obj/item/card/id + _drake_onmob_icon = 'mods/species/drakes/icons/clothing/id.dmi' + _drake_hatchling_onmob_icon = 'mods/species/drakes/icons/clothing/hatchling_id.dmi' -/obj/item/card/id/setup_sprite_sheets() - . = ..() - if(!(BODYTYPE_GRAFADREKA in sprite_sheets)) - LAZYSET(sprite_sheets, BODYTYPE_GRAFADREKA, 'mods/species/drakes/icons/clothing/id.dmi') - if(!(BODYTYPE_GRAFADREKA_HATCHLING in sprite_sheets)) - LAZYSET(sprite_sheets, BODYTYPE_GRAFADREKA_HATCHLING, 'mods/species/drakes/icons/clothing/hatchling_id.dmi') - -/obj/item/bag/setup_sprite_sheets() - . = ..() - if(!(BODYTYPE_GRAFADREKA in sprite_sheets)) - LAZYSET(sprite_sheets, BODYTYPE_GRAFADREKA, 'mods/species/drakes/icons/clothing/sack.dmi') - if(!(BODYTYPE_GRAFADREKA_HATCHLING in sprite_sheets)) - LAZYSET(sprite_sheets, BODYTYPE_GRAFADREKA_HATCHLING, 'mods/species/drakes/icons/clothing/hatchling_backpack.dmi') +/obj/item/bag + _drake_onmob_icon = 'mods/species/drakes/icons/clothing/sack.dmi' + _drake_hatchling_onmob_icon = 'mods/species/drakes/icons/clothing/hatchling_backpack.dmi' diff --git a/mods/species/drakes/drake_abilities.dm b/mods/species/drakes/drake_abilities.dm index dcd67a13ef74..4303f152a026 100644 --- a/mods/species/drakes/drake_abilities.dm +++ b/mods/species/drakes/drake_abilities.dm @@ -6,7 +6,7 @@ spit_projectile_type = /obj/item/projectile/drake_spit/weak /datum/ability_handler/predator/grafadreka/can_do_ranged_invocation(mob/user, atom/target) - return istype(user) && user.a_intent == I_HURT && !user.incapacitated() && isatom(target) + return istype(user) && user.check_intent(I_FLAG_HARM) && !user.incapacitated() && isatom(target) /datum/ability_handler/predator/grafadreka/do_ranged_invocation(mob/user, atom/target) if(world.time < next_spit) @@ -24,9 +24,9 @@ return TRUE /datum/ability_handler/predator/grafadreka/do_melee_invocation(mob/user, atom/target) - if(user.a_intent == I_HURT) + if(user.check_intent(I_FLAG_HARM)) return ..() // Handled by predator ability handler. // Healing - if(user.a_intent == I_HELP && isliving(target)) + if(user.check_intent(I_FLAG_HELP) && isliving(target)) return handle_wound_cleaning(user, target) return FALSE diff --git a/mods/species/drakes/drake_abilities_friendly.dm b/mods/species/drakes/drake_abilities_friendly.dm index 6a1d8796c137..a224540e9889 100644 --- a/mods/species/drakes/drake_abilities_friendly.dm +++ b/mods/species/drakes/drake_abilities_friendly.dm @@ -86,7 +86,7 @@ var/global/list/_wounds_being_tended_by_drakes = list() // Sivian animals get a heal buff from the modifier, others just // get it to stop friendly drakes constantly licking their wounds. // Organ wounds are closed, but the owners get sifsap injected via open wounds. - friend.add_aura(new /obj/aura/sifsap_salve(null, 60 SECONDS)) + friend.add_aura(new /obj/aura/sifsap_salve(friend, 60 SECONDS)) var/list/friend_organs = friend.get_external_organs() if(length(friend_organs)) for (var/obj/item/organ/external/E in friend_organs) diff --git a/mods/species/neoavians/_neoavians.dme b/mods/species/neoavians/_neoavians.dme index e7c8d5263994..6c5b71cb056f 100644 --- a/mods/species/neoavians/_neoavians.dme +++ b/mods/species/neoavians/_neoavians.dme @@ -2,6 +2,7 @@ #define CONTENT_PACK_NEOAVIANS // BEGIN_INCLUDE #include "_neoavians.dm" +#include "_overrides.dm" #include "clothing.dm" #include "datum\accessory.dm" #include "datum\language.dm" diff --git a/mods/species/neoavians/_overrides.dm b/mods/species/neoavians/_overrides.dm new file mode 100644 index 000000000000..1d745db0a6fd --- /dev/null +++ b/mods/species/neoavians/_overrides.dm @@ -0,0 +1,7 @@ +/obj/item + var/_avian_onmob_icon + +/obj/item/setup_sprite_sheets() + . = ..() + if(_avian_onmob_icon) + LAZYSET(sprite_sheets, BODYTYPE_AVIAN, _avian_onmob_icon) diff --git a/mods/species/neoavians/clothing.dm b/mods/species/neoavians/clothing.dm index 98f5b8dac918..e7d90e623eaa 100644 --- a/mods/species/neoavians/clothing.dm +++ b/mods/species/neoavians/clothing.dm @@ -1,11 +1,9 @@ //Shoes -/obj/item/clothing/shoes/magboots/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/feet/magboots.dmi') +/obj/item/clothing/shoes/magboots + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/feet/magboots.dmi' -/obj/item/clothing/shoes/galoshes/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/feet/galoshes.dmi') +/obj/item/clothing/shoes/galoshes + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/feet/galoshes.dmi' //Gloves /obj/item/clothing/gloves/setup_equip_flags() @@ -13,34 +11,31 @@ if(!isnull(bodytype_equip_flags) && !(bodytype_equip_flags & BODY_EQUIP_FLAG_EXCLUDE)) bodytype_equip_flags |= BODY_EQUIP_FLAG_AVIAN -/obj/item/clothing/gloves/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/gloves.dmi') +/obj/item/clothing/gloves + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/gloves.dmi' + +/obj/item/clothing/gloves/ring + _avian_onmob_icon = null //Backpacks & tanks -/obj/item/backpack/satchel/Initialize() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/satchel.dmi') +/obj/item/backpack/satchel + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/satchel.dmi' //Radsuits (theyre essential?) -/obj/item/clothing/head/radiation/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/head/rad_helm.dmi') +/obj/item/clothing/head/radiation + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/head/rad_helm.dmi' -/obj/item/clothing/suit/radiation/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/suit/rad_suit.dmi') +/obj/item/clothing/suit/radiation + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/suit/rad_suit.dmi' //cloaks -/obj/item/clothing/suit/cloak/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/accessory/cloak.dmi') +/obj/item/clothing/suit/cloak + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/accessory/cloak.dmi' -/obj/item/clothing/suit/cloak/hide/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/accessory/cloak_hide.dmi') +/obj/item/clothing/suit/cloak/hide + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/accessory/cloak_hide.dmi' //clothing /obj/item/clothing/dress/avian_smock @@ -49,6 +44,7 @@ icon = 'mods/species/neoavians/icons/clothing/under/smock.dmi' icon_state = ICON_STATE_WORLD bodytype_equip_flags = BODY_EQUIP_FLAG_AVIAN + _avian_onmob_icon = null /obj/item/clothing/dress/avian_smock/worker name = "worker's smock" @@ -86,6 +82,7 @@ icon = 'mods/species/neoavians/icons/clothing/feet/shoes.dmi' color = COLOR_GRAY bodytype_equip_flags = BODY_EQUIP_FLAG_AVIAN + _avian_onmob_icon = null /obj/item/clothing/shoes/avian/footwraps name = "cloth footwraps" diff --git a/mods/species/neoavians/machinery/suit_cycler.dm b/mods/species/neoavians/machinery/suit_cycler.dm index 9b368c305771..2fd6323e6edc 100644 --- a/mods/species/neoavians/machinery/suit_cycler.dm +++ b/mods/species/neoavians/machinery/suit_cycler.dm @@ -4,86 +4,68 @@ //mining -/obj/item/clothing/suit/space/void/mining/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/mining/suit.dmi') +/obj/item/clothing/suit/space/void/mining + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/mining/suit.dmi' -/obj/item/clothing/head/helmet/space/void/mining/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/mining/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/mining + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/mining/helmet.dmi' //excavation -/obj/item/clothing/suit/space/void/excavation/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/mining/suit.dmi') +/obj/item/clothing/suit/space/void/excavation + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/mining/suit.dmi' -/obj/item/clothing/head/helmet/space/void/excavation/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/mining/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/excavation + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/mining/helmet.dmi' //engineering -/obj/item/clothing/head/helmet/space/void/engineering/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/engineering/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/engineering + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/engineering/helmet.dmi' -/obj/item/clothing/suit/space/void/engineering/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/engineering/suit.dmi') +/obj/item/clothing/suit/space/void/engineering + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/engineering/suit.dmi' -/obj/item/clothing/head/helmet/space/void/atmos/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/atmos/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/atmos + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/atmos/helmet.dmi' -/obj/item/clothing/suit/space/void/atmos/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/atmos/suit.dmi') +/obj/item/clothing/suit/space/void/atmos + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/atmos/suit.dmi' //medical -/obj/item/clothing/suit/space/void/medical/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/medical/suit.dmi') +/obj/item/clothing/suit/space/void/medical + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/medical/suit.dmi' -/obj/item/clothing/head/helmet/space/void/medical/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/medical/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/medical + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/medical/helmet.dmi' //security -/obj/item/clothing/head/helmet/space/void/security/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/sec/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/security + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/sec/helmet.dmi' -/obj/item/clothing/suit/space/void/security/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/sec/suit.dmi') +/obj/item/clothing/suit/space/void/security + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/sec/suit.dmi' //salvage -/obj/item/clothing/head/helmet/space/void/engineering/salvage/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/salvage/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/engineering/salvage + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/salvage/helmet.dmi' -/obj/item/clothing/suit/space/void/engineering/salvage/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/salvage/suit.dmi') +/obj/item/clothing/suit/space/void/engineering/salvage + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/salvage/suit.dmi' //pilot -/obj/item/clothing/head/helmet/space/void/expedition/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/pilot/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/expedition + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/pilot/helmet.dmi' -/obj/item/clothing/suit/space/void/expedition/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/pilot/suit.dmi') +/obj/item/clothing/suit/space/void/expedition + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/pilot/suit.dmi' //merc -/obj/item/clothing/head/helmet/space/void/merc/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/merc/helmet.dmi') +/obj/item/clothing/head/helmet/space/void/merc + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/merc/helmet.dmi' -/obj/item/clothing/suit/space/void/merc/setup_sprite_sheets() - . = ..() - LAZYSET(sprite_sheets, BODYTYPE_AVIAN, 'mods/species/neoavians/icons/clothing/spacesuit/void/merc/suit.dmi') \ No newline at end of file +/obj/item/clothing/suit/space/void/merc + _avian_onmob_icon = 'mods/species/neoavians/icons/clothing/spacesuit/void/merc/suit.dmi' \ No newline at end of file diff --git a/mods/species/vox/organs_vox.dm b/mods/species/vox/organs_vox.dm index ebc0f3cbaed3..7933c8f41a41 100644 --- a/mods/species/vox/organs_vox.dm +++ b/mods/species/vox/organs_vox.dm @@ -26,25 +26,39 @@ name = "gizzard" color = "#0033cc" var/static/list/gains_nutriment_from_inedible_reagents = list( - /decl/material/solid/organic/wood = 3, - /decl/material/liquid/cleaner = 1, - /decl/material/liquid/foaming_agent = 1, - /decl/material/liquid/surfactant = 1, - /decl/material/liquid/paint = 1 + /decl/material/solid/organic/wood/oak = 3, + /decl/material/solid/organic/wood/mahogany = 3, + /decl/material/solid/organic/wood/maple = 3, + /decl/material/solid/organic/wood/ebony = 3, + /decl/material/solid/organic/wood/walnut = 3, + /decl/material/solid/organic/wood/chipboard = 2, + /decl/material/solid/organic/wood/chipboard/mahogany = 2, + /decl/material/solid/organic/wood/chipboard/maple = 2, + /decl/material/solid/organic/wood/chipboard/ebony = 2, + /decl/material/solid/organic/wood/chipboard/walnut = 2, + /decl/material/liquid/cleaner = 1, + /decl/material/liquid/foaming_agent = 1, + /decl/material/liquid/surfactant = 1, + /decl/material/liquid/paint = 1 ) var/static/list/can_digest_matter = list( - /decl/material/solid/organic/wood = TRUE, - /decl/material/solid/organic/wood/mahogany = TRUE, - /decl/material/solid/organic/wood/maple = TRUE, - /decl/material/solid/organic/wood/ebony = TRUE, - /decl/material/solid/organic/wood/walnut = TRUE, - /decl/material/solid/organic/leather = TRUE, - /decl/material/solid/organic/plastic = TRUE, - /decl/material/solid/organic/cardboard = TRUE, - /decl/material/solid/organic/paper = TRUE, - /decl/material/solid/organic/cloth = TRUE, - /decl/material/solid/slag = TRUE, - /decl/material/solid/sodiumchloride = TRUE + /decl/material/solid/organic/wood/oak = TRUE, + /decl/material/solid/organic/wood/mahogany = TRUE, + /decl/material/solid/organic/wood/maple = TRUE, + /decl/material/solid/organic/wood/ebony = TRUE, + /decl/material/solid/organic/wood/walnut = TRUE, + /decl/material/solid/organic/wood/chipboard = TRUE, + /decl/material/solid/organic/wood/chipboard/mahogany = TRUE, + /decl/material/solid/organic/wood/chipboard/maple = TRUE, + /decl/material/solid/organic/wood/chipboard/ebony = TRUE, + /decl/material/solid/organic/wood/chipboard/walnut = TRUE, + /decl/material/solid/organic/leather = TRUE, + /decl/material/solid/organic/plastic = TRUE, + /decl/material/solid/organic/cardboard = TRUE, + /decl/material/solid/organic/paper = TRUE, + /decl/material/solid/organic/cloth = TRUE, + /decl/material/solid/slag = TRUE, + /decl/material/solid/sodiumchloride = TRUE ) var/static/list/can_process_matter = list( /decl/material/solid/glass = TRUE, diff --git a/nano/templates/deity.tmpl b/nano/templates/deity.tmpl index b249a8649600..5d1148e300e2 100644 --- a/nano/templates/deity.tmpl +++ b/nano/templates/deity.tmpl @@ -7,7 +7,7 @@ Deity Menu. Three seperate modes within it, followers, shop, and phenomena. {{:data.name}} the {{:data.form_name}}
- Current Boon: + Current Boon: {{if data.boon_name}} {{:data.boon_name}} {{else}} @@ -78,13 +78,13 @@ Deity Menu. Three seperate modes within it, followers, shop, and phenomena. {{:helper.link('Bindings', 'key', {'switchMenu' : 1, 'menu' : 'phenomenaMenu'}, data.phenomenaMenu == 1 ? 'disabled' : null)}}
{{if data.phenomenaMenu == 0}} - {{for data.phenomenas}} + {{for data.phenomena}}
{{:helper.link(value.name, null, {'select_phenomena' : value.name})}}
- Use Cost: {{:value.cost}} + Use Cost: {{:value.cost}} {{if value.cooldown}} Cooldown: {{:value.cooldown}} {{/if}} diff --git a/nano/templates/design_database.tmpl b/nano/templates/design_database.tmpl index f09a5415a942..db1dd81ea572 100644 --- a/nano/templates/design_database.tmpl +++ b/nano/templates/design_database.tmpl @@ -6,12 +6,16 @@
External storage
- {{if data.disk_tech}} + {{if data.disk_tech || data.disk_error}} - - {{for data.disk_tech}} - - {{/for}} + {{if data.disk_error}} + invalid data format + {{else}} + + {{for data.disk_tech}} + + {{/for}} + {{/if}} {{else}} {{/if}} diff --git a/nebula.dme b/nebula.dme index f83e55937380..f48ac3c7285b 100644 --- a/nebula.dme +++ b/nebula.dme @@ -57,6 +57,7 @@ #include "code\__defines\hud.dm" #include "code\__defines\hydroponics.dm" #include "code\__defines\integrated_circuits.dm" +#include "code\__defines\intent.dm" #include "code\__defines\interactions.dm" #include "code\__defines\inventory_sizes.dm" #include "code\__defines\items_clothing.dm" @@ -897,6 +898,7 @@ #include "code\game\machinery\_machines_base\stock_parts\access_lock.dm" #include "code\game\machinery\_machines_base\stock_parts\building_material.dm" #include "code\game\machinery\_machines_base\stock_parts\card_reader.dm" +#include "code\game\machinery\_machines_base\stock_parts\cupholder.dm" #include "code\game\machinery\_machines_base\stock_parts\disk_reader.dm" #include "code\game\machinery\_machines_base\stock_parts\item_holder.dm" #include "code\game\machinery\_machines_base\stock_parts\legacy_parts.dm" @@ -969,7 +971,6 @@ #include "code\game\machinery\kitchen\gibber.dm" #include "code\game\machinery\kitchen\icecream.dm" #include "code\game\machinery\kitchen\microwave.dm" -#include "code\game\machinery\kitchen\smartfridge.dm" #include "code\game\machinery\kitchen\cooking_machines\_cooker.dm" #include "code\game\machinery\kitchen\cooking_machines\_cooker_output.dm" #include "code\game\machinery\kitchen\cooking_machines\candy.dm" @@ -979,6 +980,16 @@ #include "code\game\machinery\kitchen\cooking_machines\oven.dm" #include "code\game\machinery\pipe\construction.dm" #include "code\game\machinery\pipe\pipelayer.dm" +#include "code\game\machinery\smartfridge\_smartfridge.dm" +#include "code\game\machinery\smartfridge\_smartfridge_secure.dm" +#include "code\game\machinery\smartfridge\chemistry.dm" +#include "code\game\machinery\smartfridge\drinks.dm" +#include "code\game\machinery\smartfridge\drying_oven.dm" +#include "code\game\machinery\smartfridge\foods.dm" +#include "code\game\machinery\smartfridge\medbay.dm" +#include "code\game\machinery\smartfridge\produce.dm" +#include "code\game\machinery\smartfridge\seeds.dm" +#include "code\game\machinery\smartfridge\sheets.dm" #include "code\game\machinery\turrets\_turrets.dm" #include "code\game\machinery\turrets\network_turret.dm" #include "code\game\machinery\turrets\turret_ammo.dm" @@ -1220,6 +1231,7 @@ #include "code\game\objects\items\stacks\medical\medical_resin.dm" #include "code\game\objects\items\stacks\medical\medical_splint.dm" #include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\stacks\tiles\tile_types_wooden.dm" #include "code\game\objects\items\weapons\AI_modules.dm" #include "code\game\objects\items\weapons\autopsy.dm" #include "code\game\objects\items\weapons\balls.dm" @@ -1414,7 +1426,6 @@ #include "code\game\objects\structures\_structure_icon.dm" #include "code\game\objects\structures\_structure_materials.dm" #include "code\game\objects\structures\ai_decoy.dm" -#include "code\game\objects\structures\banners.dm" #include "code\game\objects\structures\barricade.dm" #include "code\game\objects\structures\barsign.dm" #include "code\game\objects\structures\bedsheet_bin.dm" @@ -1820,6 +1831,12 @@ #include "code\modules\backgrounds\location\locations_other.dm" #include "code\modules\backgrounds\religion\_religion.dm" #include "code\modules\backgrounds\religion\religions_human.dm" +#include "code\modules\banners\__banner.dm" +#include "code\modules\banners\_banner_frame.dm" +#include "code\modules\banners\_banner_symbols.dm" +#include "code\modules\banners\banner_frame_definitions.dm" +#include "code\modules\banners\sign.dm" +#include "code\modules\banners\sign_post.dm" #include "code\modules\blob\blob.dm" #include "code\modules\blood\blood.dm" #include "code\modules\blood\blood_types.dm" @@ -1870,6 +1887,8 @@ #include "code\modules\client\preferences_spawnpoints.dm" #include "code\modules\client\preferences_storage.dm" #include "code\modules\client\preferences_toggle.dm" +#include "code\modules\client\mouse_pointer\_mouse_pointer.dm" +#include "code\modules\client\mouse_pointer\mouse_pointer_definitions.dm" #include "code\modules\client\preference_setup\_defines.dm" #include "code\modules\client\preference_setup\preference_setup.dm" #include "code\modules\client\preference_setup\antagonism\01_candidacy.dm" @@ -2783,6 +2802,7 @@ #include "code\modules\mob\mob_genetics.dm" #include "code\modules\mob\mob_grabs.dm" #include "code\modules\mob\mob_helpers.dm" +#include "code\modules\mob\mob_intent.dm" #include "code\modules\mob\mob_layering.dm" #include "code\modules\mob\mob_movement.dm" #include "code\modules\mob\mob_snapshot.dm" diff --git a/tools/map_migrations/4583_tables.txt b/tools/map_migrations/4583_tables.txt new file mode 100644 index 000000000000..72bbd06136d5 --- /dev/null +++ b/tools/map_migrations/4583_tables.txt @@ -0,0 +1,11 @@ +/obj/structure/table/woodentable/@SUBTYPES : /obj/structure/table/wood/@SUBTYPES{@OLD} +/obj/structure/table/woodentable_reinforced/@SUBTYPES : /obj/structure/table/wood/reinforced/@SUBTYPES{@OLD} +/obj/item/stack/tile/wood/@SUBTYPES : /obj/item/stack/tile/wood/oak/@SUBTYPES{@OLD} +/obj/item/stack/tile/mahogany/@SUBTYPES : /obj/item/stack/tile/wood/mahogany/@SUBTYPES{@OLD} +/obj/item/stack/tile/maple/@SUBTYPES : /obj/item/stack/tile/wood/maple/@SUBTYPES{@OLD} +/obj/item/stack/tile/ebony/@SUBTYPES : /obj/item/stack/tile/wood/ebony/@SUBTYPES{@OLD} +/obj/item/stack/tile/walnut/@SUBTYPES : /obj/item/stack/tile/wood/walnut/@SUBTYPES{@OLD} +/obj/item/stack/tile/bamboo/@SUBTYPES : /obj/item/stack/tile/wood/bamboo/@SUBTYPES{@OLD} +/obj/item/stack/tile/yew/@SUBTYPES : /obj/item/stack/tile/wood/yew/@SUBTYPES{@OLD} + +
{{:helper.link(data.disk_name, null, {'eject_disk' : 1})}}
DataStored
{{:value.field}}{{:value.level}}
DataStored
{{:value.field}}{{:value.level}}
{{:data.disk_name}}