diff --git a/code/__DEFINES/icon_smoothing_defines.dm b/code/__DEFINES/icon_smoothing_defines.dm index 525ccd6b9f0..0fc60109b58 100644 --- a/code/__DEFINES/icon_smoothing_defines.dm +++ b/code/__DEFINES/icon_smoothing_defines.dm @@ -114,6 +114,7 @@ DEFINE_BITFIELD(smoothing_flags, list( #define SMOOTH_GROUP_GLASS_TABLES S_OBJ(55) ///obj/structure/table/glass #define SMOOTH_GROUP_REINFORCED_TABLES S_OBJ(56) ///obj/structure/table/reinforced, /obj/structure/table/glass/reinforced #define SMOOTH_GROUP_CULT_TABLES S_OBJ(57) ///obj/structire/table/reinforced/cult +#define SMOOTH_GROUP_FLOCK_TABLES S_OBJ(58) /// obj/structure/table/reinforced/flock #define SMOOTH_GROUP_ALIEN_RESIN S_OBJ(60) ///obj/structure/alien/resin #define SMOOTH_GROUP_ALIEN_WALLS S_OBJ(61) ///obj/structure/alien/resin/wall, diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 0ab1b79ed5a..29c3d93e8b5 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -141,6 +141,8 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( GLOBAL_LIST_INIT(gnesis_recipes, list ( new /datum/stack_recipe("flock chair", /obj/structure/chair/comfy/flock, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("flock table", /obj/structure/table/reinforced/flock, 2, time = 5.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("flock shelf", /obj/structure/shelf/flock, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("flock closet", /obj/structure/closet/flock, 2, time = 10 SECONDS, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("flock grille", /obj/structure/grille/flock, 1, time = 5 SECONDS, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("flock door", /obj/machinery/door/flock, 10, time = 10 SECONDS, one_per_turf = TRUE, on_floor = TRUE), diff --git a/code/game/objects/structures/shelves.dm b/code/game/objects/structures/shelves.dm index 151b1daf991..68c622c57e8 100644 --- a/code/game/objects/structures/shelves.dm +++ b/code/game/objects/structures/shelves.dm @@ -85,6 +85,10 @@ GLOBAL_LIST_INIT(shelf_colors, list("basic", "sci", "sup", "serv", "med", "sec", new build_stack_type(get_turf(src), 5) return ..() +/obj/structure/shelf/try_flock_convert(datum/flock/flock, force) + new /obj/structure/shelf/flock(loc) + qdel(src) + /obj/structure/shelf/engineering icon_state = "shelf_engi" shelf_style = "engi" diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 355f0ab12bf..eb5a2061dde 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -105,6 +105,10 @@ new /obj/structure/table/reinforced/cult(loc) qdel(src) +/obj/structure/table/try_flock_convert(datum/flock/flock, force) + new /obj/structure/table/reinforced/flock(loc) + qdel(src) + /obj/structure/table/start_climb(mob/living/user) . = ..() item_placed(user) diff --git a/code/modules/antagonists/flockmind/flock_structure/flock_shelf.dm b/code/modules/antagonists/flockmind/flock_structure/flock_shelf.dm new file mode 100644 index 00000000000..cf12a7baa30 --- /dev/null +++ b/code/modules/antagonists/flockmind/flock_structure/flock_shelf.dm @@ -0,0 +1,26 @@ +/obj/structure/shelf/flock + name = "strange shelf" + desc = "A shelf (most likely), made of a strange material." + icon_state = "shelf_flock" + shelf_style = "flock" + build_stack_type = /obj/item/stack/sheet/gnesis + +/obj/structure/shelf/flock/Initialize(mapload, datum/flock/join_flock) + . = ..() + AddComponent(/datum/component/flock_protection, FALSE, TRUE, FALSE, FALSE) + ADD_TRAIT(src, TRAIT_FLOCK_EXAMINE, INNATE_TRAIT) + ADD_TRAIT(src, TRAIT_FLOCK_THING, INNATE_TRAIT) + +/obj/structure/shelf/flock/examine(mob/user) + if(!isflockmob(user)) + return ..() + + . = list( + SPAN_FLOCKSAY("###=- Ident confirmed, data packet received."), + SPAN_FLOCKSAY("ID: Vertical material storage rack."), + SPAN_FLOCKSAY("System Integrity: [get_integrity_percentage()]%"), + SPAN_FLOCKSAY("###=-") + ) + +/obj/structure/shelf/flock/try_flock_convert(datum/flock/flock, force) + return diff --git a/code/modules/antagonists/flockmind/flock_structure/flock_table.dm b/code/modules/antagonists/flockmind/flock_structure/flock_table.dm new file mode 100644 index 00000000000..a0c8eb25404 --- /dev/null +++ b/code/modules/antagonists/flockmind/flock_structure/flock_table.dm @@ -0,0 +1,43 @@ +/obj/structure/table/reinforced/flock + name = "odd slab" + desc = "It's a flat surface made of a strange material. Despite its alien appearance, there's not many things this could be except a table." + icon = 'icons/obj/smooth_structures/tables/flock_table.dmi' + icon_state = "flock_table-0" + base_icon_state = "flock_table" + buildstack = /obj/item/stack/sheet/gnesis + buildstackamount = 2 + framestack = null + frame = null + framestackamount = 0 + armor = list(MELEE = -20, BULLET = -20, LASER = 80, ENERGY = 80, BOMB = 0, RAD = 100, FIRE = 80, ACID = 100) + smoothing_groups = list(SMOOTH_GROUP_FLOCK_TABLES) + canSmoothWith = list(SMOOTH_GROUP_FLOCK_TABLES) + +/obj/structure/table/reinforced/flock/Initialize(mapload, datum/flock/join_flock) + . = ..() + AddComponent(/datum/component/flock_protection, FALSE, TRUE, FALSE, FALSE) + ADD_TRAIT(src, TRAIT_FLOCK_EXAMINE, INNATE_TRAIT) + ADD_TRAIT(src, TRAIT_FLOCK_THING, INNATE_TRAIT) + +/obj/structure/table/reinforced/flock/examine(mob/user) + if(!isflockmob(user)) + return ..() + + . = list( + SPAN_FLOCKSAY("###=- Ident confirmed, data packet received."), + SPAN_FLOCKSAY("ID: Table."), + SPAN_FLOCKSAY("System Integrity: [get_integrity_percentage()]%"), + SPAN_FLOCKSAY("###=-") + ) + +/obj/structure/table/reinforced/flock/screwdriver_act() + return + +/obj/structure/table/reinforced/flock/deconstruct(disassembled = TRUE, wrench_disassembly = FALSE) + if(!(flags & NODECONSTRUCT)) + var/turf/T = get_turf(src) + new buildstack(T, buildstackamount) + qdel(src) + +/obj/structure/table/reinforced/flock/try_flock_convert(datum/flock/flock, force) + return diff --git a/icons/obj/smooth_structures/tables/flock_table.dmi b/icons/obj/smooth_structures/tables/flock_table.dmi new file mode 100644 index 00000000000..e20381d8078 Binary files /dev/null and b/icons/obj/smooth_structures/tables/flock_table.dmi differ diff --git a/icons/obj/structures/shelves.dmi b/icons/obj/structures/shelves.dmi index f772e038a87..c8048148f3f 100644 Binary files a/icons/obj/structures/shelves.dmi and b/icons/obj/structures/shelves.dmi differ diff --git a/paradise.dme b/paradise.dme index 0ab033058ce..656b6ea2ca8 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1887,6 +1887,8 @@ #include "code\modules\antagonists\flockmind\flock_structure\flock_relay.dm" #include "code\modules\antagonists\flockmind\flock_structure\flock_rift.dm" #include "code\modules\antagonists\flockmind\flock_structure\flock_sentinel.dm" +#include "code\modules\antagonists\flockmind\flock_structure\flock_shelf.dm" +#include "code\modules\antagonists\flockmind\flock_structure\flock_table.dm" #include "code\modules\antagonists\flockmind\flock_structure\flock_tealprint.dm" #include "code\modules\antagonists\flockmind\flock_structure\flock_turret.dm" #include "code\modules\antagonists\flockmind\flock_structure\flock_window.dm" @@ -2141,8 +2143,8 @@ #include "code\modules\awaymissions\mission_code\ruins\nian_freighter.dm" #include "code\modules\awaymissions\mission_code\ruins\oldstation.dm" #include "code\modules\awaymissions\mission_code\ruins\processing_facility.dm" -#include "code\modules\awaymissions\mission_code\ruins\ragnarok_ship.dm" #include "code\modules\awaymissions\mission_code\ruins\providence_wreck.dm" +#include "code\modules\awaymissions\mission_code\ruins\ragnarok_ship.dm" #include "code\modules\awaymissions\mission_code\ruins\sieged_lab.dm" #include "code\modules\awaymissions\mission_code\ruins\snowbiodome.dm" #include "code\modules\awaymissions\mission_code\ruins\syndiecakesfactory.dm"