From aaa9b748c64552c2d50400e161e1856de766e19d Mon Sep 17 00:00:00 2001 From: quotefox <49098813+quotefox@users.noreply.github.com> Date: Fri, 18 Oct 2019 22:00:04 +0100 Subject: [PATCH 01/10] another fix. --- interface/menu.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/interface/menu.dm b/interface/menu.dm index 0d1313b0..59371cd1 100644 --- a/interface/menu.dm +++ b/interface/menu.dm @@ -81,14 +81,16 @@ GLOBAL_LIST_EMPTY(menulist) default = /datum/verbs/menu/Settings/FPS/verb/high /datum/verbs/menu/Settings/FPS/verb/low() - set name = "LowFPS" + set name = "Low-end FPS" set desc = "&20 fps" + set category = "Preferences" usr.client.prefs.clientfps = 20 usr.client.prefs.parent.fps = 20 /datum/verbs/menu/Settings/FPS/verb/high() - set name = "HighFPS" + set name = "High-end FPS" set desc = "&30 fps (High-end machines)" + set category = "Preferences" usr.client.prefs.clientfps = 30 usr.client.prefs.parent.fps = 30 From c830acdf1eeb6f67862bb29722d9510460da5086 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Sat, 19 Oct 2019 11:11:14 -0700 Subject: [PATCH 02/10] And this is how I lost my medical license --- code/modules/surgery/coronary_bypass.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index 5aeeb322..a98f419a 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -15,7 +15,7 @@ //an incision but with greater bleed, and a 90% base success chance /datum/surgery_step/incise_heart name = "incise heart" - implements = list(TOOL_SCALPEL = 90, /obj/item/melee/transforming/energy/sword = 45, /obj/item/kitchen/knife = 45, + implements = list(/obj/item/scalpel = 100, /obj/item/melee/transforming/energy/sword = 45, /obj/item/kitchen/knife = 45, /obj/item/shard = 25) time = 16 From 5d1ed71dc28fef685bbc2cea9d84772567271a11 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Sat, 19 Oct 2019 12:02:31 -0700 Subject: [PATCH 03/10] Code work to port carpets from citadel --- .../game/objects/items/stacks/sheets/glass.dm | 1 + .../objects/items/stacks/sheets/mineral.dm | 1 + .../items/stacks/sheets/sheet_types.dm | 4 + code/game/objects/items/stacks/stack.dm | 1 + .../objects/items/stacks/tiles/tile_types.dm | 109 +++++++++++-- code/game/objects/structures/table_frames.dm | 116 +++----------- code/game/objects/structures/tables_racks.dm | 149 ++++++++++++++--- .../game/turfs/simulated/floor/fancy_floor.dm | 40 +++++ code/modules/cargo/packs.dm | 28 +++- .../chemistry/reagents/other_reagents.dm | 150 ++++++++++++++++-- .../reagents/chemistry/recipes/others.dm | 80 +++++++++- 11 files changed, 526 insertions(+), 153 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 44b39265..83b14a1a 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -25,6 +25,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ merge_type = /obj/item/stack/sheet/glass grind_results = list("silicon" = 20) point_value = 1 + tableVariant = /obj/structure/table/glass /obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to slice [user.p_their()] neck with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 7df16546..46c0d473 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -232,6 +232,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \ grind_results = list("silver" = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/silver + tableVariant = /obj/structure/table/optable GLOBAL_LIST_INIT(silver_recipes, list ( \ new/datum/stack_recipe("silver door", /obj/structure/mineral_door/silver, 10, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 8c808d0e..c0853068 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -107,6 +107,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ merge_type = /obj/item/stack/sheet/metal grind_results = list("iron" = 20) point_value = 2 + tableVariant = /obj/structure/table /obj/item/stack/sheet/metal/ratvar_act() new /obj/item/stack/tile/brass(loc, amount) @@ -168,6 +169,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ merge_type = /obj/item/stack/sheet/plasteel grind_results = list("iron" = 20, "plasma" = 20) point_value = 23 + tableVariant = /obj/structure/table/reinforced /obj/item/stack/sheet/plasteel/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.plasteel_recipes @@ -474,6 +476,7 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ novariants = FALSE grind_results = list("iron" = 5, "teslium" = 15, "holyoil" = 1) merge_type = /obj/item/stack/tile/brass + tableVariant = /obj/structure/table/reinforced/brass /obj/item/stack/tile/brass/narsie_act() new /obj/item/stack/sheet/runed_metal(loc, amount) @@ -526,6 +529,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ novariants = FALSE grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing merge_type = /obj/item/stack/tile/bronze + tableVariant = /obj/structure/table/bronze /obj/item/stack/tile/bronze/attack_self(mob/living/user) if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 4217a58f..4233887c 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -22,6 +22,7 @@ var/full_w_class = WEIGHT_CLASS_NORMAL //The weight class the stack should have at amount > 2/3rds max_amount var/novariants = TRUE //Determines whether the item should update it's sprites based on amount. //NOTE: When adding grind_results, the amounts should be for an INDIVIDUAL ITEM - these amounts will be multiplied by the stack size in on_grind() + var/obj/structure/table/tableVariant // we tables now (stores table variant to be built from this stack) /obj/item/stack/on_grind() for(var/i in 1 to grind_results.len) //This should only call if it's ground, so no need to check if grind_results exists diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 3b28c304..790cfa3d 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -100,33 +100,118 @@ turf_type = /turf/open/floor/carpet resistance_flags = FLAMMABLE -/obj/item/stack/tile/carpet/fifty - amount = 50 +tableVariant = /obj/structure/table/wood/fancy /obj/item/stack/tile/carpet/black name = "black carpet" icon_state = "tile-carpet-black" turf_type = /turf/open/floor/carpet/black + tableVariant = /obj/structure/table/wood/fancy/black + +/obj/item/stack/tile/carpet/blackred + name = "red carpet" + icon_state = "tile-carpet-blackred" + turf_type = /turf/open/floor/carpet/blackred + tableVariant = /obj/structure/table/wood/fancy/blackred + +/obj/item/stack/tile/carpet/monochrome + name = "monochrome carpet" + icon_state = "tile-carpet-monochrome" + turf_type = /turf/open/floor/carpet/monochrome + tableVariant = /obj/structure/table/wood/fancy/monochrome + +/obj/item/stack/tile/carpet/blue + name = "blue carpet" + icon_state = "tile-carpet-blue" + item_state = "tile-carpet-blue" + turf_type = /turf/open/floor/carpet/blue + tableVariant = /obj/structure/table/wood/fancy/blue + +/obj/item/stack/tile/carpet/cyan + name = "cyan carpet" + icon_state = "tile-carpet-cyan" + item_state = "tile-carpet-cyan" + turf_type = /turf/open/floor/carpet/cyan + tableVariant = /obj/structure/table/wood/fancy/cyan + +/obj/item/stack/tile/carpet/green + name = "green carpet" + icon_state = "tile-carpet-green" + item_state = "tile-carpet-green" + turf_type = /turf/open/floor/carpet/green + tableVariant = /obj/structure/table/wood/fancy/green + +/obj/item/stack/tile/carpet/orange + name = "orange carpet" + icon_state = "tile-carpet-orange" + item_state = "tile-carpet-orange" + turf_type = /turf/open/floor/carpet/orange + tableVariant = /obj/structure/table/wood/fancy/orange + +/obj/item/stack/tile/carpet/purple + name = "purple carpet" + icon_state = "tile-carpet-purple" + item_state = "tile-carpet-purple" + turf_type = /turf/open/floor/carpet/purple + tableVariant = /obj/structure/table/wood/fancy/purple + +/obj/item/stack/tile/carpet/red + name = "red carpet" + icon_state = "tile-carpet-red" + item_state = "tile-carpet-red" + turf_type = /turf/open/floor/carpet/red + tableVariant = /obj/structure/table/wood/fancy/red + +/obj/item/stack/tile/carpet/royalblack + name = "royal black carpet" + icon_state = "tile-carpet-royalblack" + item_state = "tile-carpet-royalblack" + turf_type = /turf/open/floor/carpet/royalblack + tableVariant = /obj/structure/table/wood/fancy/royalblack + +/obj/item/stack/tile/carpet/royalblue + name = "royal blue carpet" + icon_state = "tile-carpet-royalblue" + item_state = "tile-carpet-royalblue" + turf_type = /turf/open/floor/carpet/royalblue + tableVariant = /obj/structure/table/wood/fancy/royalblue + +/obj/item/stack/tile/carpet/fifty + amount = 50 /obj/item/stack/tile/carpet/black/fifty amount = 50 -/obj/item/stack/tile/carpet/blackred - name = "red carpet" - icon_state = "tile-carpet-blackred" - turf_type = /turf/open/floor/carpet/blackred - /obj/item/stack/tile/carpet/blackred/fifty amount = 50 -/obj/item/stack/tile/carpet/monochrome - name = "monochrome carpet" - icon_state = "tile-carpet-monochrome" - turf_type = /turf/open/floor/carpet/monochrome - /obj/item/stack/tile/carpet/monochrome/fifty amount = 50 +/obj/item/stack/tile/carpet/blue/fifty + amount = 50 + +/obj/item/stack/tile/carpet/cyan/fifty + amount = 50 + +/obj/item/stack/tile/carpet/green/fifty + amount = 50 + +/obj/item/stack/tile/carpet/orange/fifty + amount = 50 + +/obj/item/stack/tile/carpet/purple/fifty + amount = 50 + +/obj/item/stack/tile/carpet/red/fifty + amount = 50 + +/obj/item/stack/tile/carpet/royalblack/fifty + amount = 50 + +/obj/item/stack/tile/carpet/royalblue/fifty + amount = 50 + /obj/item/stack/tile/fakespace name = "astral carpet" singular_name = "astral carpet" diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index e979d4f1..f62bed87 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -22,84 +22,22 @@ var/framestackamount = 2 /obj/structure/table_frame/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/wrench)) + if(I.tool_behaviour == TOOL_WRENCH) to_chat(user, "You start disassembling [src]...") I.play_tool_sound(src) if(I.use_tool(src, user, 30)) - playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE) deconstruct(TRUE) - else if(istype(I, /obj/item/stack/sheet/plasteel)) - var/obj/item/stack/sheet/plasteel/P = I - if(P.get_amount() < 1) - to_chat(user, "You need one plasteel sheet to do this!") + return + + var/obj/item/stack/material = I + if (istype(I, /obj/item/stack) && material?.tableVariant) + if(material.get_amount() < 1) + to_chat(user, "You need one [material.name] sheet to do this!") return - to_chat(user, "You start adding [P] to [src]...") - if(do_after(user, 50, target = src) && P.use(1)) - make_new_table(/obj/structure/table/reinforced) - else if(istype(I, /obj/item/stack/sheet/metal)) - var/obj/item/stack/sheet/metal/M = I - if(M.get_amount() < 1) - to_chat(user, "You need one metal sheet to do this!") - return - to_chat(user, "You start adding [M] to [src]...") - if(do_after(user, 20, target = src) && M.use(1)) - make_new_table(/obj/structure/table) - else if(istype(I, /obj/item/stack/sheet/glass)) - var/obj/item/stack/sheet/glass/G = I - if(G.get_amount() < 1) - to_chat(user, "You need one glass sheet to do this!") - return - to_chat(user, "You start adding [G] to [src]...") - if(do_after(user, 20, target = src) && G.use(1)) - make_new_table(/obj/structure/table/glass) - else if(istype(I, /obj/item/stack/sheet/mineral/silver)) - var/obj/item/stack/sheet/mineral/silver/S = I - if(S.get_amount() < 1) - to_chat(user, "You need one silver sheet to do this!") - return - to_chat(user, "You start adding [S] to [src]...") - if(do_after(user, 20, target = src) && S.use(1)) - make_new_table(/obj/structure/table/optable) - else if(istype(I, /obj/item/stack/tile/carpet/black)) - var/obj/item/stack/tile/carpet/black/C = I - if(C.get_amount() < 1) - to_chat(user, "You need one black carpet sheet to do this!") - return - to_chat(user, "You start adding [C] to [src]...") - if(do_after(user, 20, target = src) && C.use(1)) - make_new_table(/obj/structure/table/wood/fancy/black) - else if(istype(I, /obj/item/stack/tile/carpet/blackred)) - var/obj/item/stack/tile/carpet/blackred/C = I - if(C.get_amount() < 1) - to_chat(user, "You need one red carpet sheet to do this!") - return - to_chat(user, "You start adding [C] to [src]...") - if(do_after(user, 20, target = src) && C.use(1)) - make_new_table(/obj/structure/table/wood/fancy/blackred) - else if(istype(I, /obj/item/stack/tile/carpet/monochrome)) - var/obj/item/stack/tile/carpet/monochrome/C = I - if(C.get_amount() < 1) - to_chat(user, "You need one monochrome carpet sheet to do this!") - return - to_chat(user, "You start adding [C] to [src]...") - if(do_after(user, 20, target = src) && C.use(1)) - make_new_table(/obj/structure/table/wood/fancy/monochrome) - else if(istype(I, /obj/item/stack/tile/carpet)) - var/obj/item/stack/tile/carpet/C = I - if(C.get_amount() < 1) - to_chat(user, "You need one carpet sheet to do this!") - return - to_chat(user, "You start adding [C] to [src]...") - if(do_after(user, 20, target = src) && C.use(1)) - make_new_table(/obj/structure/table/wood/fancy) - else if(istype(I, /obj/item/stack/tile/bronze)) - var/obj/item/stack/tile/bronze/B = I - if(B.get_amount() < 1) - to_chat(user, "You need one bronze sheet to do this!") - return - to_chat(user, "You start adding [B] to [src]...") - if(do_after(user, 20, target = src) && B.use(1)) - make_new_table(/obj/structure/table/bronze) + to_chat(user, "You start adding [material] to [src]...") + if(do_after(user, 20, target = src) && material.use(1)) + make_new_table(material.tableVariant) else return ..() @@ -135,23 +73,21 @@ resistance_flags = FLAMMABLE /obj/structure/table_frame/wood/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/stack/sheet/mineral/wood)) - var/obj/item/stack/sheet/mineral/wood/W = I - if(W.get_amount() < 1) - to_chat(user, "You need one wood sheet to do this!") - return - to_chat(user, "You start adding [W] to [src]...") - if(do_after(user, 20, target = src) && W.use(1)) - make_new_table(/obj/structure/table/wood) - return - else if(istype(I, /obj/item/stack/tile/carpet)) - var/obj/item/stack/tile/carpet/C = I - if(C.get_amount() < 1) - to_chat(user, "You need one carpet sheet to do this!") - return - to_chat(user, "You start adding [C] to [src]...") - if(do_after(user, 20, target = src) && C.use(1)) - make_new_table(/obj/structure/table/wood/poker) + if (istype(I, /obj/item/stack)) + var/obj/item/stack/material = I + var/toConstruct // stores the table variant + if(istype(I, /obj/item/stack/sheet/mineral/wood)) + toConstruct = /obj/structure/table/wood + else if(istype(I, /obj/item/stack/tile/carpet)) + toConstruct = /obj/structure/table/wood/poker + + if (toConstruct) + if(material.get_amount() < 1) + to_chat(user, "You need one [material.name] sheet to do this!") + return + to_chat(user, "You start adding [material] to [src]...") + if(do_after(user, 20, target = src) && material.use(1)) + make_new_table(toConstruct) else return ..() diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index e262c5cf..7d2480b4 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -21,6 +21,7 @@ anchored = TRUE layer = TABLE_LAYER climbable = TRUE + obj_flags = CAN_BE_HIT|SHOVABLE_ONTO pass_flags = LETPASSTHROW //You can throw objects over this, despite it's density.") var/frame = /obj/structure/table_frame var/framestack = /obj/item/stack/rods @@ -115,6 +116,9 @@ log_combat(user, pushed_mob, "placed") /obj/structure/table/proc/tablepush(mob/living/user, mob/living/pushed_mob) + if(HAS_TRAIT(user, TRAIT_PACIFISM)) + to_chat(user, "Throwing [pushed_mob] onto the table might hurt them!") + return var/added_passtable = FALSE if(!pushed_mob.pass_flags & PASSTABLE) added_passtable = TRUE @@ -125,14 +129,23 @@ if(pushed_mob.loc != loc) //Something prevented the tabling return pushed_mob.Knockdown(40) - pushed_mob.visible_message("[user] pushes [pushed_mob] onto [src].", \ - "[user] pushes [pushed_mob] onto [src].") - log_combat(user, pushed_mob, "pushed") + pushed_mob.visible_message("[user] slams [pushed_mob] onto [src]!", \ + "[user] slams you onto [src]!") + log_combat(user, pushed_mob, "tabled", null, "onto [src]") if(!ishuman(pushed_mob)) return var/mob/living/carbon/human/H = pushed_mob SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table) +/obj/structure/table/shove_act(mob/living/target, mob/living/user) + if(!target.resting) + target.Knockdown(SHOVE_KNOCKDOWN_TABLE) + user.visible_message("[user.name] shoves [target.name] onto \the [src]!", + "You shove [target.name] onto \the [src]!", null, COMBAT_MESSAGE_RANGE) + target.forceMove(src.loc) + log_combat(user, target, "shoved", "onto [src] (table)") + return TRUE + /obj/structure/table/attackby(obj/item/I, mob/user, params) if(!(flags_1 & NODECONSTRUCT_1)) if(istype(I, /obj/item/screwdriver) && deconstruction_ready) @@ -258,6 +271,53 @@ for(var/obj/item/shard/S in debris) S.color = NARSIE_WINDOW_COLOUR +/* + * Plasmaglass tables + */ +/obj/structure/table/plasmaglass + name = "plasmaglass table" + desc = "A glasstable, but it's pink and more sturdy. What will Nanotrasen design next with plasma?" + icon = 'icons/obj/smooth_structures/plasmaglass_table.dmi' + icon_state = "plasmaglass_table" + climbable = TRUE + buildstack = /obj/item/stack/sheet/plasmaglass + canSmoothWith = null + max_integrity = 270 + resistance_flags = ACID_PROOF + armor = list("melee" = 10, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) + var/list/debris = list() + +/obj/structure/table/plasmaglass/New() + . = ..() + debris += new frame + debris += new /obj/item/shard/plasma + +/obj/structure/table/plasmaglass/Destroy() + QDEL_LIST(debris) + . = ..() + +/obj/structure/table/plasmaglass/proc/check_break(mob/living/M) + return + +/obj/structure/table/plasmaglass/deconstruct(disassembled = TRUE, wrench_disassembly = 0) + if(!(flags_1 & NODECONSTRUCT_1)) + if(disassembled) + ..() + return + else + var/turf/T = get_turf(src) + playsound(T, "shatter", 50, 1) + for(var/X in debris) + var/atom/movable/AM = X + AM.forceMove(T) + debris -= AM + qdel(src) + +/obj/structure/table/plasmaglass/narsie_act() + color = NARSIE_WINDOW_COLOUR + for(var/obj/item/shard/S in debris) + S.color = NARSIE_WINDOW_COLOUR + /* * Wooden tables */ @@ -298,44 +358,83 @@ frame = /obj/structure/table_frame framestack = /obj/item/stack/rods buildstack = /obj/item/stack/tile/carpet - canSmoothWith = list(/obj/structure/table/wood/fancy, /obj/structure/table/wood/fancy/black, /obj/structure/table/wood/fancy/blackred, /obj/structure/table/wood/fancy/monochrome) + canSmoothWith = list(/obj/structure/table/wood/fancy, + /obj/structure/table/wood/fancy/black, + /obj/structure/table/wood/fancy/blackred, + /obj/structure/table/wood/fancy/monochrome, + /obj/structure/table/wood/fancy/blue, + /obj/structure/table/wood/fancy/cyan, + /obj/structure/table/wood/fancy/green, + /obj/structure/table/wood/fancy/orange, + /obj/structure/table/wood/fancy/purple, + /obj/structure/table/wood/fancy/red, + /obj/structure/table/wood/fancy/royalblack, + /obj/structure/table/wood/fancy/royalblue) + var/smooth_icon = 'icons/obj/smooth_structures/fancy_table.dmi' // see Initialize() -/obj/structure/table/wood/fancy/New() - // New() is used so that the /black subtype can override `icon` easily and - // the correct value will be used by the smoothing subsystem. +/obj/structure/table/wood/fancy/Initialize() . = ..() // Needs to be set dynamically because table smooth sprites are 32x34, // which the editor treats as a two-tile-tall object. The sprites are that // size so that the north/south corners look nice - examine the detail on // the sprites in the editor to see why. - icon = 'icons/obj/smooth_structures/fancy_table.dmi' + icon = smooth_icon /obj/structure/table/wood/fancy/black icon_state = "fancy_table_black" buildstack = /obj/item/stack/tile/carpet/black + smooth_icon = 'icons/obj/smooth_structures/fancy_table_black.dmi' /obj/structure/table/wood/fancy/blackred - icon = 'icons/obj/structures.dmi' - icon_state = "fancy_table_blackred" - buildstack = /obj/item/stack/tile/carpet/blackred - -/obj/structure/table/wood/fancy/blackred/New() - . = ..() - icon = 'icons/obj/smooth_structures/fancy_table_blackred.dmi' + icon_state = "fancy_table_blackred" + buildstack = /obj/item/stack/tile/carpet/blackred + smooth_icon = 'icons/obj/smooth_structures/fancy_table_blackred.dmi' /obj/structure/table/wood/fancy/monochrome - icon = 'icons/obj/structures.dmi' - icon_state = "fancy_table_monochrome" - buildstack = /obj/item/stack/tile/carpet/monochrome + icon_state = "fancy_table_monochrome" + buildstack = /obj/item/stack/tile/carpet/monochrome + smooth_icon = 'icons/obj/smooth_structures/fancy_table_monochrome.dmi' -/obj/structure/table/wood/fancy/monochrome/New() - . = ..() - icon = 'icons/obj/smooth_structures/fancy_table_monochrome.dmi' +/obj/structure/table/wood/fancy/blue + icon_state = "fancy_table_blue" + buildstack = /obj/item/stack/tile/carpet/blue + smooth_icon = 'icons/obj/smooth_structures/fancy_table_blue.dmi' + +/obj/structure/table/wood/fancy/cyan + icon_state = "fancy_table_cyan" + buildstack = /obj/item/stack/tile/carpet/cyan + smooth_icon = 'icons/obj/smooth_structures/fancy_table_cyan.dmi' + +/obj/structure/table/wood/fancy/green + icon_state = "fancy_table_green" + buildstack = /obj/item/stack/tile/carpet/green + smooth_icon = 'icons/obj/smooth_structures/fancy_table_green.dmi' + +/obj/structure/table/wood/fancy/orange + icon_state = "fancy_table_orange" + buildstack = /obj/item/stack/tile/carpet/orange + smooth_icon = 'icons/obj/smooth_structures/fancy_table_orange.dmi' + +/obj/structure/table/wood/fancy/purple + icon_state = "fancy_table_purple" + buildstack = /obj/item/stack/tile/carpet/purple + smooth_icon = 'icons/obj/smooth_structures/fancy_table_purple.dmi' + +/obj/structure/table/wood/fancy/red + icon_state = "fancy_table_red" + buildstack = /obj/item/stack/tile/carpet/red + smooth_icon = 'icons/obj/smooth_structures/fancy_table_red.dmi' + +/obj/structure/table/wood/fancy/royalblack + icon_state = "fancy_table_royalblack" + buildstack = /obj/item/stack/tile/carpet/royalblack + smooth_icon = 'icons/obj/smooth_structures/fancy_table_royalblack.dmi' + +/obj/structure/table/wood/fancy/royalblue + icon_state = "fancy_table_royalblue" + buildstack = /obj/item/stack/tile/carpet/royalblue + smooth_icon = 'icons/obj/smooth_structures/fancy_table_royalblue.dmi' -/obj/structure/table/wood/fancy/black/New() - . = ..() - // Ditto above. - icon = 'icons/obj/smooth_structures/fancy_table_black.dmi' /* * Reinforced tables */ diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 7b45aa1f..ed6e2790 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -209,6 +209,46 @@ icon_state = "tile-carpet-monochrome" canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) +/turf/open/floor/carpet/blue + icon = 'icons/turf/floors/carpet_blue.dmi' + floor_tile = /obj/item/stack/tile/carpet/blue + canSmoothWith = list(/turf/open/floor/carpet/blue) + +/turf/open/floor/carpet/cyan + icon = 'icons/turf/floors/carpet_cyan.dmi' + floor_tile = /obj/item/stack/tile/carpet/cyan + canSmoothWith = list(/turf/open/floor/carpet/cyan) + +/turf/open/floor/carpet/green + icon = 'icons/turf/floors/carpet_green.dmi' + floor_tile = /obj/item/stack/tile/carpet/green + canSmoothWith = list(/turf/open/floor/carpet/green) + +/turf/open/floor/carpet/orange + icon = 'icons/turf/floors/carpet_orange.dmi' + floor_tile = /obj/item/stack/tile/carpet/orange + canSmoothWith = list(/turf/open/floor/carpet/orange) + +/turf/open/floor/carpet/purple + icon = 'icons/turf/floors/carpet_purple.dmi' + floor_tile = /obj/item/stack/tile/carpet/purple + canSmoothWith = list(/turf/open/floor/carpet/purple) + +/turf/open/floor/carpet/red + icon = 'icons/turf/floors/carpet_red.dmi' + floor_tile = /obj/item/stack/tile/carpet/red + canSmoothWith = list(/turf/open/floor/carpet/red) + +/turf/open/floor/carpet/royalblack + icon = 'icons/turf/floors/carpet_royalblack.dmi' + floor_tile = /obj/item/stack/tile/carpet/royalblack + canSmoothWith = list(/turf/open/floor/carpet/royalblack) + +/turf/open/floor/carpet/royalblue + icon = 'icons/turf/floors/carpet_royalblue.dmi' + floor_tile = /obj/item/stack/tile/carpet/royalblue + canSmoothWith = list(/turf/open/floor/carpet/royalblue) + /turf/open/floor/carpet/narsie_act(force, ignore_mobs, probability = 20) . = (prob(probability) || force) for(var/I in src) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 1087f1eb..fa28da74 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1762,15 +1762,31 @@ /obj/item/stack/tile/carpet/black/fifty) crate_name = "premium carpet crate" -/datum/supply_pack/service/carpet2 - name = "Premium Carpet Crate #2" - desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together. Contains red, and monochrome" - cost = 1000 - contains = list(/obj/item/stack/tile/carpet/blackred/fifty, +/datum/supply_pack/service/carpet_exotic + name = "Exotic Carpet Crate" + desc = "Exotic carpets straight from Space Russia, for all your decorating needs. Contains 100 tiles each of 10 different flooring patterns." + cost = 4000 + contains = list(/obj/item/stack/tile/carpet/blue/fifty, + /obj/item/stack/tile/carpet/blue/fifty, + /obj/item/stack/tile/carpet/cyan/fifty, + /obj/item/stack/tile/carpet/cyan/fifty, + /obj/item/stack/tile/carpet/green/fifty, + /obj/item/stack/tile/carpet/green/fifty, + /obj/item/stack/tile/carpet/orange/fifty, + /obj/item/stack/tile/carpet/orange/fifty, + /obj/item/stack/tile/carpet/purple/fifty, + /obj/item/stack/tile/carpet/purple/fifty, + /obj/item/stack/tile/carpet/red/fifty, + /obj/item/stack/tile/carpet/red/fifty, + /obj/item/stack/tile/carpet/royalblue/fifty, + /obj/item/stack/tile/carpet/royalblue/fifty, + /obj/item/stack/tile/carpet/royalblack/fifty, + /obj/item/stack/tile/carpet/royalblack/fifty, + /obj/item/stack/tile/carpet/blackred/fifty, /obj/item/stack/tile/carpet/blackred/fifty, /obj/item/stack/tile/carpet/monochrome/fifty, /obj/item/stack/tile/carpet/monochrome/fifty) - crate_name = "premium carpet crate #2" + crate_name = "exotic carpet crate" /datum/supply_pack/service/lightbulbs name = "Replacement Lights" diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index fe309b42..b97e0e62 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1537,20 +1537,6 @@ taste_description = "metal" pH = 4.5 -/datum/reagent/carpet - name = "Carpet" - id = "carpet" - description = "For those that need a more creative way to roll out a red carpet." - reagent_state = LIQUID - color = "#b51d05" - taste_description = "carpet" // Your tounge feels furry. - -/datum/reagent/carpet/reaction_turf(turf/T, reac_volume) - if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) - var/turf/open/floor/F = T - F.PlaceOnTop(/turf/open/floor/carpet) - ..() - /datum/reagent/bromine name = "Bromine" id = "bromine" @@ -1704,6 +1690,142 @@ qdel(O) new /obj/item/clothing/shoes/galoshes/dry(t_loc) +// Liquid Carpets +/datum/reagent/carpet + name = "Liquid Carpet" + id = "carpet" + description = "For those that need a more creative way to roll out a carpet." + reagent_state = LIQUID + color = "#b51d05" + taste_description = "carpet" // Your tounge feels furry. + +/datum/reagent/carpet/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet) + ..() + +/datum/reagent/carpet/black + name = "Liquid Black Carpet" + id = "blackcarpet" + color = "#363636" + +/datum/reagent/carpet/black/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/black) + ..() + +/datum/reagent/carpet/blackred + name = "Liquid Red Black Carpet" + id = "blackredcarpet" + color = "#342125" + +/datum/reagent/carpet/blackred/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/blackred) + ..() + +/datum/reagent/carpet/monochrome + name = "Liquid Monochrome Carpet" + id = "monochromecarpet" + color = "#b4b4b4" + +/datum/reagent/carpet/monochrome/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/monochrome) + ..() + +/datum/reagent/carpet/blue + name = "Liquid Blue Carpet" + id = "bluecarpet" + color = "#1256ff" + +/datum/reagent/carpet/blue/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/blue) + ..() + +/datum/reagent/carpet/cyan + name = "Liquid Cyan Carpet" + id = "cyancarpet" + color = "#3acfb9" + +/datum/reagent/carpet/cyan/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/cyan) + ..() + +/datum/reagent/carpet/green + name = "Liquid Green Carpet" + id = "greencarpet" + color = "#619b62" + +/datum/reagent/carpet/green/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/green) + ..() + +/datum/reagent/carpet/orange + name = "Liquid Orange Carpet" + id = "orangecarpet" + color = "#cc7900" + +/datum/reagent/carpet/orange/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/orange) + ..() + +/datum/reagent/carpet/purple + name = "Liquid Purple Carpet" + id = "purplecarpet" + color = "#6d3392" + +/datum/reagent/carpet/purple/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/purple) + ..() + +/datum/reagent/carpet/red + name = "Liquid Red Carpet" + id = "redcarpet" + color = "#871515" + +/datum/reagent/carpet/red/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/red) + ..() + +/datum/reagent/carpet/royalblack + name = "Liquid Royal Black Carpet" + id = "royalblackcarpet" + color = "#483d05" + +/datum/reagent/carpet/royalblack/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/royalblack) + ..() + +/datum/reagent/carpet/royalblue + name = "Liquid Royal Blue Carpet" + id = "royalbluecarpet" + color = "#24227e" + +/datum/reagent/carpet/royalblue/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/carpet/royalblue) + ..() + // Virology virus food chems. /datum/reagent/toxin/mutagen/mutagenvirusfood diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index e34f3467..a1e17e51 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -488,12 +488,6 @@ results = list("acetone" = 3) required_reagents = list("oil" = 1, "welding_fuel" = 1, "oxygen" = 1) -/datum/chemical_reaction/carpet - name = "carpet" - id = "carpet" - results = list("carpet" = 2) - required_reagents = list("space_drugs" = 1, "blood" = 1) - /datum/chemical_reaction/oil name = "Oil" id = "oil" @@ -635,3 +629,77 @@ results = list("shadowmutationtoxin" = 1) required_reagents = list("liquid_dark_matter" = 5, "synaptizine" = 10, "oculine" = 10, "stablemutationtoxin" = 1) required_temp = 600 + +// Liquid Carpets + +/datum/chemical_reaction/carpet + name = "carpet" + id = "carpet" + results = list("carpet" = 2) + required_reagents = list("space_drugs" = 1, "blood" = 1) + +/datum/chemical_reaction/carpet/black + name = "liquid black carpet" + id = "blackcarpet" + results = list("blackcarpet" = 2) + required_reagents = list("carpet" = 1, "carbon" = 1) + +/datum/chemical_reaction/carpet/blackred + name = "liquid red black carpet" + id = "blackredcarpet" + results = list("blackredcarpet" = 2) + required_reagents = list("carpet" = 1, "charcoal" = 1) + +/datum/chemical_reaction/carpet/monochrome + name = "liquid monochrome carpet" + id = "monochromecarpet" + results = list("monochromecarpet" = 2) + required_reagents = list("carpet" = 1, "oil" = 1) + +/datum/chemical_reaction/carpet/blue + name = "liquid blue carpet" + id = "bluecarpet" + results = list("bluecarpet" = 2) + required_reagents = list("carpet" = 1, "tonic" = 1) + +/datum/chemical_reaction/carpet/cyan + name = "liquid cyan carpet" + id = "cyancarpet" + results = list("cyancarpet" = 2) + required_reagents = list("carpet" = 1, "ice" = 1) + +/datum/chemical_reaction/carpet/green + name = "liquid green carpet" + id = "greencarpet" + results = list("greencarpet" = 2) + required_reagents = list("carpet" = 1, "sacid" = 1) + +/datum/chemical_reaction/carpet/orange + name = "liquid orange carpet" + id = "orangecarpet" + results = list("orangecarpet" = 2) + required_reagents = list("carpet" = 1, "orangejuice" = 1) + +/datum/chemical_reaction/carpet/purple + name = "liquid purple carpet" + id = "purplecarpet" + results = list("purplecarpet" = 2) + required_reagents = list("carpet" = 1, "stable_plasma" = 1) + +/datum/chemical_reaction/carpet/red + name = "liquid red carpet" + id = "redcarpet" + results = list("redcarpet" = 2) + required_reagents = list("carpet" = 1, "welding_fuel" = 1) + +/datum/chemical_reaction/carpet/royalblack + name = "liquid royal black carpet" + id = "royalblackcarpet" + results = list("royalblackcarpet" = 2) + required_reagents = list("carpet" = 1, "blackpepper" = 1) + +/datum/chemical_reaction/carpet/royalblue + name = "liquid royal blue carpet" + id = "royalbluecarpet" + results = list("royalbluecarpet" = 2) + required_reagents = list("carpet" = 1, "clonexadone" = 1) \ No newline at end of file From 8c8b95efb45802c054e832a37c3ee0dd7ba26d67 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Sat, 19 Oct 2019 13:04:54 -0700 Subject: [PATCH 04/10] sprites and similar fixes --- code/game/objects/items/stacks/stack.dm | 2 +- .../objects/items/stacks/tiles/tile_types.dm | 3 +-- code/game/objects/structures/tables_racks.dm | 4 ++-- icons/mob/inhands/misc/tiles_lefthand.dmi | Bin 0 -> 7092 bytes icons/mob/inhands/misc/tiles_righthand.dmi | Bin 0 -> 7373 bytes .../smooth_structures/fancy_table_blue.dmi | Bin 0 -> 3400 bytes .../smooth_structures/fancy_table_cyan.dmi | Bin 0 -> 3545 bytes .../smooth_structures/fancy_table_green.dmi | Bin 0 -> 3266 bytes .../smooth_structures/fancy_table_orange.dmi | Bin 0 -> 3208 bytes .../smooth_structures/fancy_table_purple.dmi | Bin 0 -> 3185 bytes .../obj/smooth_structures/fancy_table_red.dmi | Bin 0 -> 3195 bytes .../fancy_table_royalblack.dmi | Bin 0 -> 3252 bytes .../fancy_table_royalblue.dmi | Bin 0 -> 3296 bytes icons/obj/smooth_structures/plasma_window.dmi | Bin 1945 -> 6337 bytes .../smooth_structures/plasmaglass_table.dmi | Bin 0 -> 2363 bytes .../smooth_structures/reinforced_window.dmi | Bin 2445 -> 9138 bytes .../obj/smooth_structures/rplasma_window.dmi | Bin 2292 -> 9413 bytes icons/obj/smooth_structures/table.dmi | Bin 847 -> 670 bytes icons/obj/smooth_structures/window.dmi | Bin 2088 -> 5063 bytes icons/obj/structures.dmi | Bin 160981 -> 166559 bytes icons/obj/tiles.dmi | Bin 12842 -> 16012 bytes icons/turf/floors/carpet_blue.dmi | Bin 0 -> 7368 bytes icons/turf/floors/carpet_cyan.dmi | Bin 0 -> 2675 bytes icons/turf/floors/carpet_green.dmi | Bin 0 -> 8705 bytes icons/turf/floors/carpet_orange.dmi | Bin 0 -> 7950 bytes icons/turf/floors/carpet_purple.dmi | Bin 0 -> 6957 bytes icons/turf/floors/carpet_red.dmi | Bin 0 -> 8171 bytes icons/turf/floors/carpet_royalblack.dmi | Bin 0 -> 7139 bytes icons/turf/floors/carpet_royalblue.dmi | Bin 0 -> 3522 bytes 29 files changed, 4 insertions(+), 5 deletions(-) create mode 100644 icons/mob/inhands/misc/tiles_lefthand.dmi create mode 100644 icons/mob/inhands/misc/tiles_righthand.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_blue.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_cyan.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_green.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_orange.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_purple.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_red.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_royalblack.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_royalblue.dmi create mode 100644 icons/obj/smooth_structures/plasmaglass_table.dmi create mode 100644 icons/turf/floors/carpet_blue.dmi create mode 100644 icons/turf/floors/carpet_cyan.dmi create mode 100644 icons/turf/floors/carpet_green.dmi create mode 100644 icons/turf/floors/carpet_orange.dmi create mode 100644 icons/turf/floors/carpet_purple.dmi create mode 100644 icons/turf/floors/carpet_red.dmi create mode 100644 icons/turf/floors/carpet_royalblack.dmi create mode 100644 icons/turf/floors/carpet_royalblue.dmi diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 4233887c..155d1f16 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -22,7 +22,7 @@ var/full_w_class = WEIGHT_CLASS_NORMAL //The weight class the stack should have at amount > 2/3rds max_amount var/novariants = TRUE //Determines whether the item should update it's sprites based on amount. //NOTE: When adding grind_results, the amounts should be for an INDIVIDUAL ITEM - these amounts will be multiplied by the stack size in on_grind() - var/obj/structure/table/tableVariant // we tables now (stores table variant to be built from this stack) + var/obj/structure/table/tableVariant // we tables now (stores table variant to be built from this stack) /obj/item/stack/on_grind() for(var/i in 1 to grind_results.len) //This should only call if it's ground, so no need to check if grind_results exists diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 790cfa3d..b98c4f79 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -99,8 +99,7 @@ icon_state = "tile-carpet" turf_type = /turf/open/floor/carpet resistance_flags = FLAMMABLE - -tableVariant = /obj/structure/table/wood/fancy + tableVariant = /obj/structure/table/wood/fancy /obj/item/stack/tile/carpet/black name = "black carpet" diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 7d2480b4..cc653184 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -21,7 +21,6 @@ anchored = TRUE layer = TABLE_LAYER climbable = TRUE - obj_flags = CAN_BE_HIT|SHOVABLE_ONTO pass_flags = LETPASSTHROW //You can throw objects over this, despite it's density.") var/frame = /obj/structure/table_frame var/framestack = /obj/item/stack/rods @@ -137,6 +136,7 @@ var/mob/living/carbon/human/H = pushed_mob SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table) +/* /obj/structure/table/shove_act(mob/living/target, mob/living/user) if(!target.resting) target.Knockdown(SHOVE_KNOCKDOWN_TABLE) @@ -145,6 +145,7 @@ target.forceMove(src.loc) log_combat(user, target, "shoved", "onto [src] (table)") return TRUE +*/ /obj/structure/table/attackby(obj/item/I, mob/user, params) if(!(flags_1 & NODECONSTRUCT_1)) @@ -290,7 +291,6 @@ /obj/structure/table/plasmaglass/New() . = ..() debris += new frame - debris += new /obj/item/shard/plasma /obj/structure/table/plasmaglass/Destroy() QDEL_LIST(debris) diff --git a/icons/mob/inhands/misc/tiles_lefthand.dmi b/icons/mob/inhands/misc/tiles_lefthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d7903fcd4831e167deb0923cf5f744e13cee5270 GIT binary patch literal 7092 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 literal 0 HcmV?d00001 diff --git a/icons/mob/inhands/misc/tiles_righthand.dmi b/icons/mob/inhands/misc/tiles_righthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9295ac73444da628a5b2cfe0031eb6c834c182c2 GIT binary patch literal 7373 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 literal 0 HcmV?d00001 diff --git a/icons/obj/smooth_structures/fancy_table_cyan.dmi b/icons/obj/smooth_structures/fancy_table_cyan.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4f1a90e33b2c6c4f68aa86169332745529c1c3b1 GIT binary patch literal 3545 zcmZu!2Q*yU8a{&|ndm`;QHK~MBEe{JwNXPbj7}nYqW2m@luVEy!bLFSPPpn2L9{5* zLWHOzhJ-}#(fga+wcc9y-FMeI`~3Ucd;fc#b@umv=Q~)V+u95eE(ibs47xf<6eZ#) zt@s=*-Wk{`h^_;-KwO$`|~+*QMu?;2Q)(mrsGsKa%K+;;Q-% zj?zCQ58iaj=DA!<*kE@_c!s6d{WR*Dw-$D$Pt6JDWZ)E~8ZbfV3E>Le38W}qy6vKae7%D7TC@Svq;zXm=f3thYFCl*nl`Xw(a#@zB4;Uyvj?lE5YL@h-G3;WJNCC#<8Uv@U36 zo=$6PHq%e`*{7Vad9q)aL@$+q-F=nFhs;L{YKEL+OLzdQKXb}(A@gIa&+WUD&3rxA zUa=cjnWH&wWKv&E!6;vka+iqr?~@-qv+V8ViO4gcvgvkY+%`;CRJgMM9h-{PpTh{6 z#%u601MedDE(L`+Om^-Q;*tUyIz;E{?Z;9=EKVi88!AG=QGT@%$7AvKnVL@@i>pSW zYbrhE$QxG67cFeBFE6|)6&vNs8@DLeeY_pL#JpARij8TI@N`F{`_+bIpoP2bh&oM9 zLO-z}hIJS765yLzZJQs>qz-!X)Vr}J;Rf~wZ|$afy#|hsZ3JEKEMwlm(&p6wzo?9} zYL7;Qazl;T@>(8*Eo-r*=;8pdaqwIiw+o)$C6jZY-Vf0;WjIhw?+z|evu4uKsinLX zQ@E-iJ0w{rmP!a^fAek*&YSQ@jBo(g(_zsIDyO8~q}wKzw4UnLwz0NlVnY{HnMiR} zWQJD|w!6SocP2c@G0bBxT~`?10$70^kXW-;&SEuCD09k3Lpm-@TlR&4 zz@X%bXKK_H+c&W*M+%8|1}iFOw~21>9>nDk=?lQyy+iI=;<{Nsq$bbBxI6=YJV%w- zA@kGOOo2%UH2T4AQv0wEJb&5kUVdf7GD~_gjggm+CnHrgG$I1n*W- z0$>JT@kv1#v>NA5lM{m(_R7~_C&(o0elgBpeBW*{NRvDP0Jy|GPcuGxDpLXB%0DlzF%r9_N%34N)S8?p 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 B7_tBW literal 0 HcmV?d00001 diff --git a/icons/obj/smooth_structures/fancy_table_orange.dmi b/icons/obj/smooth_structures/fancy_table_orange.dmi new file mode 100644 index 0000000000000000000000000000000000000000..fe0375ddbb8ba440491ee1e754824b75862821d8 GIT binary patch literal 3208 zcmZ`+c{r5YAAc=H)@09G!>vTfHjNnjZWtp=vSpvFVVYD!N~rADWFK4hJsH{MS_)$i zF`)$$gF@CZzqk9(@43%&?;qzq=Q;0L-uHVx%lE`uA`Cg%PO||3z-erxX9d=|U@2og z4nAe9^-RI4In3HFM9(AG?Y2)~h);k&0ARD?hHBZmB>AEi>p%_zhQ>sb~hrBvczyC5n(G%uguLA{JX@_ zs~(wR!exaU{9dmTVmXXScyGemJ-Qi_&@mxSp$m+|C{+`w++yECXoNV+)}MEjYases zk&IS9uL@Qv)$^A|b>0N7)U z^|Y;`X;XVqpLg1AW=LQ6D2jHNbNlI`KFrs2ubzEe z2X?D#ROy55y0<}s6NBC*`u>W9DCKmFPEsJDwl=HTW`Ac6*BB_``qZHn`MNeMc(l~# zs?4l5#z&mm^CR_WZN+xIXFvQ8vi{Z9J3H6aYUsbZpgZt}l@IJ4uB-(RO6cNu8z*_S z3Y6?M&ygBLYrw)pvld%(+3IM^(q7r(%l8$U>n=oo8~YG_Sj3vSeHUz^YeO6IwXCW$ z0F{T<^xo1fi%dh9ySZKIMJk*v8sMdj*E`v8S6q3!8>fo=d~N-j^N{6kQN-p*^%#vA z2n#MZh=*zu0>aSZWT`c-|5`;uoKl+}1k&6(XQ#O!XiPrN`72jS+2 zwPs%Z{HshQe=VrYdH8q1W<606^v-E$0`BP?EKnYL+8{ncPumSJ=3_F-7t%V_4J4mm zJHds04RL%a=QE2b45GPh?m*^7f~x!b7Y#$22xo)&A|Ugu#61OTYlR5$0V4JDeaV>$ zjj{m!%Ms#-8H%63)_FcJaRE5XMEa_QAza$Z>MvR{6vtr($C$ho4$ib*AI?7tW80{j zy#G0EMd(n=@jM?HNLx$io*bht2w z>;{^wXEZ3Ms=mo=7ooJEA_gC2lgKWX_J`hX+VjPW4P_R8vl z;H#2`p-baM6&_xeeuOjG86WzQY!D{z68HT8t`Zg#xjRi7g(zBh>KorDsP~7f91%(( zO-m40>6Bp=8JS#goe4}De|%4?3y{!%mjw{G91M^Q)w=7%WUIcqI4uo@?>kO;guyha zaO6NosyN>;<=2)4Jf!PP-23P{A+4^Y2l*0xQ3Il~Gs4dmI-aSm*ES}1eYX*RcJa!b zAl(%O+5T+8WsyVfP4U`6!hPS?iM4XEr(dDn*3o#FAITt!J*tU`8kmimL@m0;@4ND{ zG|SNd!`L#a3-RSGl+q2+>2olw;ja@pa9NYoy9`V*M=SZ5FLrR3%o+Vw9~4XQ4!W|= zLmgUY;WEwj3tjossq&h@#W1ajJhXb9MecViRFYjo0l^6U`1w<#`maVa_VQ40{}x{y zGXOGTq#q2y+~K$=e|;FMbiCEiW*4tk%i#5q^6WBnvtT-2RtNrg8J_ksdplBTO7Vg) zJTO~zD1mYAy2Oi3(vCC#_C5#x9J?1;D!)(oK&8V&Zo$Ob;qA+~dsh+rbf`b={yDuV zuYnDi)Dxv~E>|Ebj{NoX2&Sg|CJ@z~_b&9$pp~VE-hX5Bc%q(Sgw#_8DI|wv?9G3` z7JQ{&ByIAYJ*BrBQ~x87`QOL<$Mh1T;~V_};ccOnCd8m@e;p|%tjM`nEpaP)40}{U zcuT138?de15F76JIcH&$(%NiCe!o%;Z8W=~c`Ek1Z4$ z@obzzhJ%36rT$w~z(1A=n!t#|gM18sLLA$bDRc?L-&7wp(r)J_0m;=08Hz$$O&zPb zK6b?q+lmK((PN(Tk^bIB@fs~`#E{-roDWXI7&_$_^)uD)bs zzI5%28t0cg28T!-_=6!X{vHG|dT%;?m~DHky1IBJgOL5uLmf+-DXpp=qf!Q+ziC?w zKa_%LYBUErl|befF+5uIZZGg8K{B;qH^qUPzsXDA)+#nsicy$2U>}TaKuFx2AKdg5)wQ z(zh9hU$|bebA90#F6Jx1$!E z+r#dBQ*F&e_uhuHhECpH^x5%1Dwg$>d=TZ=rHhajP4xJV|GD^qxurL^765IU?u~Z_H-v!ti|4Hrooz$ew!-V}3lTg}LbjS8$Q} z)8dZeSgTjQ8Jm42(@>EQl)r{7VH8I0+$%p-Do`2)r5ULye>jxzetRv_s~cRGmf|+* z&PIjiW&|Um)ujq;P0sH~_v!s1rnOTvx$3FueS`jFVop?y+wIoAuBK7~K@Yh57qiDCh6Rs>C&J0Y_;g&%nX<(15p( zK27IgH$)jG7Ds8F`742RxtZF&XG`j57QIzSi(}+?i?6CbD;qO+&r8GOjSI{ej##1t zZZ37Mt2PRn0ZUKLxc*Zux)h|)?!cp~9Jsn3c>+vGHsLujb<8T-(wRK08@ratY<=c_GU{XtqvE0~Ka+~{0MO4%+)o)5CohK# zmWH$%b|Z*O_om;ZcZMDi9sCH2&kH%JkF75Y5}&RqWc1^yE;x+m$+Azw38iDy&N{KV zgWPv2$Nq28mk`;W(_8|!w-u@j5asrW!K9k4+<9Sx;B*O-vmGjo;-G69fi|b{mf@eC zObca~sQ|tC>RpTk=*ot)niKt)Ek9ZJMay?mTbGmanRX9ddBB<0GhV-wjf-i$8{ebN zMOPa_I?TS;JtE`V%m!;fvM$eyO`ikJTWE?6*Gy7Ej`aPaH z-=_)6&lK2ROlVr|(;P{$C@Y1^&Wvc=K%{sSpj?fwoC3jw13P`l3Sg}p3tn7IXKvdo z-Lrp{zE&ZKUL-|(sDmGoJ4Vg>xc0+NGW)lA115lp`pPk{8aJ!UxOtdg&U%~g^46Ez kpZ1Q*^V?cGFY_F669t1C5Fgv+!EXX0PrEqO>CKa zF>^iVJi@FhS4=FJ+new!j=?6kg4_eW{e!*zd;uV=AdQSa8VeOh&$dLRNapycu1<6r z^0K{Qt+FlWvZvT5`>iAAJhUdIi3R(w%k6@EBc8WqwL4oL2)s|%m(rfx&+$B4t}@`U z=oh4Dd~q`q74qk^^tYk~Y5Iz1!P@zygtm2tx(HGjsevr#G$a!*%d_aw%~JTj1sIYK zFh@elIn8YhQv|V@=})=LCt%!A31|l2=uZ0Tt$@zG)a9Q$Xlx$wX{*mJDE7!yco{6# z699Pp5hmxagcYpf+I=LwCA!;X(iFsF*%EE<#G4Pa${!K+95>C2bLVkzZAPnJv+S*R zkq~OGzu$pXz_e+Q`ZYanxO^trUw1y;Jk}zA4A%2PEs)#lWQC*8)^f@Z`W|j5RlW`$ z?oqQ2O7*0Q_rvQJsuvk*WI7R$V>#F)w?%nNa^`ZXlj7&+DCptCR+`6*LLIUI8yb`>6~pj&+pNBh;2hR8KFGvR?cW=a!v^g=r$ zIw6AuMuixYL;%4zOlk`HiQoE@#eyh z`>!#aq(yd$nB?1^1A+Ei?$G z5?z&0)T7%b0@sWlu$enI@Q};j2YyzLVK5v1g`~lf8or^}74{uPxR=wxhEup~eav+)(z- zCYL$jr z&k;ZAbKw60uJ~Xuec!ucBw!mB=y~o@?Z}>pIM(0w&>|014j7Ax>0*D%aUl{|c{gZV zwT)b&H-#gDLNo&kFP&$R_`0IXOOIyN2kFg- zlTSEzM$&Zjw|s~p=dA@9z`C?{otEb~ApuWd@EAeIRl4kLW z?Gyqt|Lp{&4>h_;<&qPS)27s9f7*Ngo}>67q(f+t+}+MAG(lpwlrmHJ-VyGNn!XdM zl@&+!Nbw52{%qS?PzY-}lYETYS@Rp_$(NDxBe8>+TgWbtB1BYE4u8@_iThmRr$C-l z;CL_wzYG*{b2)&|ft~XL=wHg)y8~7|4T_25ev6^ zbh?jGC&?^cdgyOVr zpEU1F2c9UMqqmoa2g}|*947NOBeSFE)cA+H8yR*O7^JIc`uT>6klmS%#2w5@(NN<1 znP=rU7v$~;_%4atR}wj8nm8ZIpEmUurqGmLN}5RoQNIK%8fJm{c8dXH8`CV6!i>F* z1c64qs;gYw{+zlI3Q|NJtCdbkGp9S1fWdjni5Vybsr#=l^Pn6+)K+O0CmD<(w%>9- zo7p@aXBPv;BG}z+V*UiwV-?q8j&P^*BDo>VCc=3~MVf*Op;w4YVP}3Y{VJIkQQzHu ze%qFJx2$|B+M8*H9n|pwYK!bPJ_kQtNK9iW24ILukkGO-@B)jMW0%h%Vao zyq|8Cda&CM3BS3f4I$y$d;m@tM!S+c{Wfxv8yOVUv0ELq==T?Sn1-noa=&`;kK&Pl z%ilzx`8|9E%tFFTHR`<3UvoU_q24mMsg(B8m}|KqxAdS6Q>Ag&T5!dh`_OT3x&wK) z0U`#=+GR?ang)aAIr#_W!kwfY4s|lcCa1FW-LNf|GQXvLF1x1_FSY;a;OgY)+N)qS z_l41|)Q`RG)cw1%s8X4Yu7*bdd`Rz2Xev`oOa(_cK3W^aZx2`VH|juK;q+%GzAl*A zoyag5uUVN0ciKT2w7QKNO@8*8VIc+6Kb0{L5!$=d7?(weB(OZLAVXpl-5P*kNW5e z?1`m}b?1JxGidc*j9Qd_egX7HUspv`GMx-OOTEW8K8~XJwQGm~%#2yhub6mt!zo(? zBNE98dY}fk+n`pZsl+iI+BxpbCHJRb(rci?_-(fWlSQ5Ws{cnt|0uCcyzv7u zjE0Q&;laD6BAN6g!D`@Rb1yho70(6jx4>b01oDBn1|QobaH`|O8N@&%f|4w~!#AwK zzaRy^tvS%?P-$miywoVv23V07^EaIOd$s4)Gp%*;JcECF)_u(%8ZMB^uv8LS23-jn zP#!wHAW9h5?zy6_#$p}#$qFl@xW;02K+8U~{!RmzBoR_3!=1YM6YpbN^$?slS@(Aa z{A^zsdljTx?U<&SJ4`?X=H`ID*5t<@GfL_))Y=IQQ2taJ zI59de8y%UJ&KwlnPOk|{nruy& zAh4p2tRY9z@!EVmwf>VXO9zsDP7Qhr!S(fJO0Rvl>A(PG^RZ1N>xc1c!r>erJOY_P zq7$W=!Nc%xn@oX+9LzQZon8;e%-f`zeDR6@ozOzDH#J^M_mP|xAMrCJCZ@91$>mch z629PlMEX(}YfRf~l_(&G>S~kcL&xZvk5*-YeHLB z;|eYHE5VPy$^Y7o^I=}rofzHkV3`*c#)O6Ke?9Ulbg^k8wp+%arQ}hS`0+en5#Y%-#p$r-hOOGcu`$@kxb8^$?-9n0dhj-s(Y$F)Asw;|*@u0O;ra2A Q`G)`yrq(7ejF7Sa0Vs(2;Q#;t literal 0 HcmV?d00001 diff --git a/icons/obj/smooth_structures/fancy_table_red.dmi b/icons/obj/smooth_structures/fancy_table_red.dmi new file mode 100644 index 0000000000000000000000000000000000000000..8bca0ca8c94d0b8f7e7b2d2ac1fd775df1a5c93d GIT binary patch literal 3195 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%0Db9&^GcvC+MN2H`595^wJuU*; z+lP$?L`N*|YY~wc!cn685yWI7LefYnewD6?P{sQ5v)xHJRr(t1YAo8(Wwd&QOT?GO zckS)R-vB_c5@o1w6_B%-`^j^}M1o2tK|FgCjznyY(L}Vyh>G$0W15Ju%81Bod@b-P zk(u+{@b40tWM>IJA64=8-)mreo$tlkL}v6(Df`aQj*=)xzY)$0@p&o~sdzN*BYyt! zrrsraBw4p|y_0@~{SfR_(s$UCrElS$UE&yT?Se$;tsLt80 z19>{3cC;*&q@qF36N~=rc0c=Tbv~e)jD~@weaCi2FYE4F%?2d#SB_$(Pbw%_4LUC7 z^fUb%LJdWST9k$P0V&VXAMD}H=IYkl96xVAq1gJFRIoWc(zEFk4&LFNmj!BL<#@f>q$ix<38wff_40_Rcp>$UfpBoxrx1R?nm2Ze1V?%!f>K+Lff zf#aDs-*PpSingsEU`RwHwl38jA^-!^T=LD_D8g9pTK~*@=GG!H8gYBWZt_IXLwP_Z z>&@xnXl@1XfB^pHrXmlR=}U1h*C*3-wFx96a=zZ%9-1`aq$K%`c9<$Z${aBUd)+x$ z6q+}ET}e^~ZTad$`=ywO`TCVmY2c5S6B;X8iY#NreG4nci}n|JW7O+qrB{bm(D-ro3)G?C^WskuNYWYyx>n2h7H#wDiJyvm%)MHj}bOeZy2 zdM(Zew$DBL{bneVxU#Sz*2I?U49+0?W^lC!>&aA2N>h4Bt`!-;4TlxZ0njN_1#~_V zz9PO^PHq_)fu&+((MzNKl~Q$IJimT?b%k?lYc+DV8v4R*PAr4-_7NddQ&Zl{JLd#c zFBSkPSGwazuV~f2<^ci%&KSa|03O=#3cw@dxQUQ)jVKJ*0s^vt#Imyb{UKgFQ6wrZ zA^Kj`tsP3@;l=^`!iQj=6X~ic#^HCC?xm|@AMN9|U%XkJo zZL|YbMoZVEdvBD)#1eaWxCcf?a(WHo3z0oc#kfKlp%wr*o7*jAA$vK3bXuro zOpladpscE&azlzd9=-C_u(`qxl!}Tm;1aX=uLR{r6q@4=A>c>9(?C*GD*z14wohC>lVlfO~v%FZ=h*E3y2d}6OI7B>l zyTAAgyMJBkZ+^=XxSx-CjaXEjb|2T!7H1@ zrVL7Db7)sg(Yu$6Q1rzNWBG?_=(TN*nTf4CcE2(Fq9+J2>PNCL--FmS(pVrI->H*0 zp&|QSf{}8heEz+k{g0pQo4YPjTTRInCp_n@jRzEr46#>tGSDgk`pkqrhE?JI}^oL2D)=_BZAS z91MXX3=`k6e*O%@Iua1u`s%H&L2dDIwtLxj+GDzVdG-$ivvLNfD5 zw144>V+e=V8;>&n@jfIMQPaevv@~4DG9E~slV#meymz;ttRiy2X5QJQ?8(y`(8Kn7 znA*z@W!wWTRg8Tp zoqbW_;Jt5?z3M!AFkzZsigI!W?-G*ka6A?% zWGqt{Q|$WqfIx*QC$v$2rq2I|#?l4Hi`#22K(l2CHWf(c~J5Q*Gq9NS4T69|D^i2S#z|BD$??e4VvSfxs* zZC>bxii0$|hLs`#7hX3V^;hGdF4i9wFnO2pXSK&|FX=)P^!Uw1@{^(tLKD2Ry-RTv z{>~^pv$i&#^oLHlaxmHtEI31cFy>>-A+u#)FVO*;g*FvyG^}h1Z(G15h&0NAG zV--PQbD5>fji+TO^0Z@$v+_7P4a}c7f-gApc@0HKFpDTHz7Y0Cn$q&BP7u=|yCg(Zj*hX05+wS0mUbW$tq;Mgin20F=M4FIo^q^zs^G@N{IcXZv< z@KCG5BR`14LiyDFz`sfOn@EDG{0E#6(JIdg6P}7OA@HIIddKoY{y5Gq!+>j=;7e@X zz1^!_tq77zAMajmHLr|#5+)c>NhX3$%Rh6++5f5E+p>?$+Jghu8y{|OlXGmjOsY75 z@9OG0c=9dhk+8VSVU_nvLO?!!wo!gqznC6qd98T5MX8g%GPfIjUGf92(*nl}tc0sx XctO88OIGK6LjaV~CBt$9r~Cf|SaKa$ literal 0 HcmV?d00001 diff --git a/icons/obj/smooth_structures/fancy_table_royalblue.dmi b/icons/obj/smooth_structures/fancy_table_royalblue.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9d0eba7265ee3727c49cdac68702e2a6ea2b4566 GIT binary patch literal 3296 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 QPT+Lh)HjA#=%OP23z6`+7XSbN delta 1739 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 Zttj;647~0W)MNsp<$S;$UE%1T_y;X2OR@j} diff --git a/icons/obj/smooth_structures/rplasma_window.dmi b/icons/obj/smooth_structures/rplasma_window.dmi index e0ef705ecccb1a035819315efe07045ed575ac97..c64f42c7f5a3b491bff07a96ad6f8a40e2c5d577 100644 GIT binary patch literal 9413 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 LDN0sL7zh0?Gni{+ literal 2292 zcmb7Gc{tnY7XC#LRALzyC81SZONq6kmTEipSSwMg#1i|UgN8vxQTtX!7;Ck)wT-Qo zT8dU}EwQy}Yc1E-(1L zF}T8trN@VhlXa(%y_8s?F&u3lV&D<%9^`W)#3wKS0Ky8>$aOrgPVx8B9ZKd+JW**R zWtsb0(lyp`c}CvmHa^asKb1PtC%?{->20|Iucj?0GI9x#gRU7k6D+9^;i{~7@(RN1 zF(0|H5T#5CQ=2dm5F1{~R6Chfs5IbzSV*vdXz+MzjF39h@K0KKhVQVwlOR+n7=q7&MAFf#0nfHLUuF$gHOFL7x zgYuhf`HIn+O63z5<6oUkYc*J($e*+t4cQ3TY^K>6>z@w^++EoByX);4D9e1$zy|JJ z_BikbxDpCRM?Z47$VT2w`c%beZr9Ob&X&Z6OHu_JZJ+Baq&S}L%nj09F1AM$IkAfG zDE=E5+0-AngB-bM0dqQOg6Bsah`yQbzgXrI!Z?8H&Kpq*DO z?kKDLAA-c%38O%N3z-zB?!0t8?nkZU`I;o|spsknQHX3rrh#g-w3*_OOt!7Mb&&yf zW1X4`z5KdexX{*W=whQ^&G;8r0Q#w&0FKgQLT(6>_8~7CH8IxYr33NI{K(Tbmaj#- zc%C&i3(b6>Mk1IYew+N9Bhho!9O~2LJMko5>dcE@k2n()RTDrOmEIMu5cEqRSGA21 zT;+z~-{^JD1ZkAwh=0O!OC4CtDi~J_0of1a+BChY1uM7$DL1~&AS;<$%Y6<=-7_V;>Ra~}kC9#_G^d)MYSp*>B__vfp)6V|KxD$$`HJG~?EJ&WS@ zZM)zCg=$`Ko>xfEUi^$wyM6G5Vs4PiIlQFe)d>^g=e!(6U)BrT$_uPT1JOjJq`TUI zeJii6?6}XWV76Qd_rVgejc-eTb{rk+=xEE)uoxhT{b70>4Q?(%<=A!7;yyFu!^b)x z29o;k_CJE|6lKuRztxGZ>bYR#%PZfL0iNKk7M(L_>N4`Qbn^e`Ap|xl>#6Bp9a>h@ zoK4?iE{WhT3cd!i#e=RIAg@cL8)Bs9W0T899miMqHqL40X97cva`k2s)Oy_)N5hO zpa&V)TBN;7$s~^$!0SZ+8ZlfwF%!a3d~5!^KV4qh^(QV(z}r7imB80wm*bXhwqDWf zRkkya~))_4|w5#NQm!Z|rzq8gYRNOI-JRqS*7GM`x~XcVLCNXSu~V^*yM3hay#u9j%w>VhF#V zH~bhj_q31p{8dfr7!ZfwE({K`KvktaI_09hi`%6?Mon0HEZmlZPl@{}CJ+pay@;zi zS~yo#&&bA?-*L$(5y;)9T4AKw%@PikEqizpH0}$_t}ID4pstm~P)4*fX&P!|9Iu*h zN!GX@wM<#g=PxNRuMmL!nDVq{F?mA)NwHKGCClDY#^g|_#9qnne^Bi&1}(}nt0~>z zhp7|+3{`|sz_|*s&hb5nBCu^4t0dJw1&b9=E^jd-qr6Z+?5*xfq8BVH`0SAYoMl@g zCG$S&YQ4Fzz3(={Cy1Ok8uUH-rpI;NsDa>@MpBrEe8q#AV#fIy=c0)}XH$(VJZ< zI#~nG)e9Yjt@t%@W=336=(~HwEq{J39x+1sna?Evxw1%?#7XuYB3o9RGg%;<`xGMv zo%*0Aesn!%E&9chJ@Bhj=C;;hcvp;aKdVhT=LYk^&)vG(oFlVvsEcwWQ+>667Jek4 zi--`^-k%};sLsu&;{I)?@&=Qx1JYvPxJxvXue{HBAF6A3%vN5370{O44AM5sSax?=g zk@bxMObsm!NS9q=eh2m|Gadi{ diff --git a/icons/obj/smooth_structures/table.dmi b/icons/obj/smooth_structures/table.dmi index 17f5be5684e4414da4d24452153cf3cb28f4e40b..ffd88a84fc7aacfa166c1b32e9415aca155202a4 100644 GIT binary patch delta 447 zcmV;w0YLuG2A&0wBq113OjJd{z`#L4L413Asi~>R$jFe8kX~M1z`(#IFjpv%PRV}( zdPzhj-7$+gp|3A9)O9f4# zgvX;dQ(n{U2w+^p+x=hFfFZ5n?Y8RE09N{7tIhxc0=x@oe1rOe0B->IR zU`o>WlGL?e&eEMj>Hq-(yafEs4c0OM0RjYg3V8Shyum1g`~OO%B!T5Rv6-AD(6ILk z5Fo%qz}`<#v;#OGxGd8CU|BEQF;KmSP)RZ8sCPLksm+S!yg1lBC>-qWLk@oq*N0(v zu=zZtchms_1PJi%p!N;w3j!P#Y_A7*g6*};PO!bpu^0UD2E7Mm9={Kp&v!2eTb}<9 z@D+(99$rW!9uM)SOyam{3lJbcfB@aWg~SD>8p$ka6 p&;=wTYdTNJL(dSNdY(|3H&zpK;BpQk(mwzI002ovPDHLkV1jko$?gCE delta 625 zcmV-%0*?Kj1(Yk}js@a~c#oG+>^ za9o>}IZ2q8;2w0e*@b2xSX&M-BqnpoyCVbIcmR!?>LSJP;5-#;c zc_ImC`l3up!h7vi$ty)T8QC$}Y^H)ipN>3*X*%}JQF2>hCNbu=!b)PyZG}RNeRGtY zg)C%$;Yox&=dd4SAq!c^!ea;z{Q_w^CbT+X{7sgXdf@`^6OB~W*cyWOiALnw@BZS@_dWL+_tK!o1ww zP+Er%7K$DgvXF%=RD_{to8a?dF?{4OGxmDbL+U3)!cE;n>L-L;sH@(40HN$Jr1uj% zV&Sg8kl0U%ghC;Ra5)r()K7?nv!N!WenKQ1`U{EugphRa!)W*hk7XjIyEN<`00000 LNkvXXu0mjfMLa6z diff --git a/icons/obj/smooth_structures/window.dmi b/icons/obj/smooth_structures/window.dmi index f184eb8d3c51420b51e164f4ea9946e16b90c4b3..b680e44fa9012524705c6634da18cf673cf2648d 100644 GIT binary patch delta 4888 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 delta 1889 zcmb7Ec{JPk7XJl#c|;e}6jfWPmWt5wC|VKA5c^g_sF>ok2Ej8zfl4qa`ESgpI@P%1a^P~M#uc6;_%k?XlT>IxyXv<-sNJ^Rzz z*u}oBd|%JaU%#-|{?*lX!ZjE-<-VvV|1%G`Qi;o}T9kaKy63tm~_rD~3+Iq!FfB>U^UX z*n+L4F87LN+OhQ1wc&AQb6c{)c-3&%6wl`Bi${6LRH>cCZ~meOu}1|QHM8V2IKY=# zhg(K(xNBSgBd914sS((0IQ}<4)wAhoTMSWH)i-zarAMwZ|Kp_L^O%KPH{B7CX_nnt z8YU6)kN5`!WElFX2Ns~&aB9ps?#0ajlc~3%@dJ#SipEA4(`>zP`j>FskzasGOu@;0 zt#gUx+{LKT)bwsbEa_>rbwEO@N7sU??QNPq*{%XmD3HM#sj-2TyLO5bO)|1gz=Rq^ffZMueE1b| zrW@>^rBjwvTHv{bHU}HK>v@zwWW-)U)<@RHpRES1>+OaeSX+gh89;$aHDiMbYHE}c zVv9d;cFtGhq5=7)Kt*#-*bf9z?{(~Z6JGr+#aFgD^jePa-HeD%Q#K$U_P<*gw0l3h z5GD4)3R~IgCw35ugqUT^6rcHH77&n!CH;He{pO{|<`7&kRB1nM;F-H=B;a$#ZUVks+3( z=*QQ-@<|P7$lY}Z@XI?(E{&Ebi;`H8Ugm_{OC{@tfD0c1ZPsXH>*M$`z{S4rRqUN4 z>67AG8GX|DPvP{JV5B+>>cv}UiXjR#_S+-M>;a1!3r%y(1_k%J}gEUTV|8`GaTKLl!i`XdG60r@}^Jd5-_Rw_Rd*8VJ zT9s^PdNTg>OO#G^SuiV;V52Q=_4D<9M0Nj(Pzw40|9$j1gY8Oj=PZgRR&rmWhgPPy z$+%NqYl+Z=n2f9!P5U|g^s;!gwwWMJp3oMU@EB&*@D8ppRu79i$Iav46((0$f%Z|` z>zZ|~c)JGXS$7jq4R_DKF;9RF#+pwILpZB50Q&r=#2vDT+U zZeGI9Zj9oIMNq^_u&aqyXmbrO@OtM9<9XUPZY>frRBTf^Oed5!0GGXf9+Dj3o=Q3C TGhB8N*bA(qhr>fVLdL%U(%OXY diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index 2e1fdfa7a80d7972cc0bff9ecdc982b8c30bdd20..8650e7be3525a1200eba6c56275c96f55c99bdc2 100644 GIT binary patch delta 19483 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

0O zlK>kPRgTHf2yJO`ChJ8*KNg0KF@xCRCuL6&+*iBe;0;>&JRR zoYHqo6+T@d#|16d{=)yCK8U#knlna?%^N>HwD2l+bfuNBLxJ zEzW|!J=jg5r^l^t^7Tz1GV7P@cRy!tyR(dl(MWJ7npg^8f+)C< zlW9>TKUldCi4fsZy_b8!m1m^^MHAalf-tqFQ9(i*-fUQEz9kWJkd5vaJKe%x?Sagg zA1dh8e@NIHUs0^lCSLZbVZKpCr|mkaEp?q7A=1|1`1#4UoI6s|=?{DM_m{JeH2`%& zRzCu`SpUOxg^bPyD6jY}{F$OBG-&Pl(ex=}(cSvfYzv6uIUv|)Ih%;qx;Mu$D{r=r zgej1_9uzCCIXy}&IGLPX)5aO_Sf9tew?&)`7TOS<=ZyLI^e`)85bHtvJ#hfX(mQ%EVMf6=h27{Lo-k zW;jp}EcIBs56TRDdcGRUK+b98o<3V3PY8v4m)< zD;N^9!$u-;My8r%S-fq>s2OHc0T!bI9IR4|1eHJEJ_5Vd>zqk&6D5qM|qq zVfjIq2xlY>zx9NK%V;!JrjglKAEwAg6rcS5*$vm5QTH_!3l;+$mcd^+lQ{Dr#7!4@ zC_7<~e{LtP=c_5Ro}S+M_=pcRWvBmvmp>S61YsUKkd6Vk)8}3-#jo5*pz{!0s~c+q zwg4A4o9-38yE~OJh$%T!Ii1pmegmP=go*CQSW^S+I~{!=RERXel_N3Es`VUF$jEqY z8YFPEHjeiN0XGn;N3cYpQA+)~#UF{%B=&+4jUu#5qT=rYd$q4sI*_k&AuoB^u0ih5 zDGGW8s>Yk!cyq4;4o>Cftoc7L!GIvPGB~+qGF1TjQ*JfyvfFKdi{~2OOGO!+4TN&| zp!^OrWs@C@@!`o0ov(6Wa+DGj_}4~d&g{PuNvSp+F57`WHAMLKSoZVahqMp>22rFc zqIt(}nv6UGrsIx6F|B70C!ZhE6|D(pb$}XIDzUixs~B6NLfEphVAbgI>gLm|4sV5` zcvBP9Sg6oE6%%^}TLr1=U$s@{FF9v}*_|FeS<#mf@n>h?tA^{T;WaG%hTCyqXl3~F zY+;@q?Cv_Kl>!d)w|d+)p70ZwdhpEkYBYY0(IaLa2Jh9@?ccoc71~QlJtVj}0K@y_ zsksg~bc$IRB^f9Iy$bB-p*^swn(+DeSsuzmgmA}I@{{HlDe!c1xQc4sgfP|R;vAhh zqR?XFJ9rD>Yk(YUC2K{#>CRy}z7(@gDS1%BJK!W#pyDCemT5#3s^UAMp%0@i*ue6^ zlNFAcQG)%;$lhqlG5h6fVS3sQ(CKihbNj&SDfPffP?3UYIN=ACX`QR9`}(ow1J!jw z8Uzkb)eGnm>oQ^qF5RuCG~kVLZeHOP=1#%S$%KC8Fx@hbGDT6PtwxR--&jGLF+w9*ClV~!>LBJ^nE*hTl_ zn%5Q4@eG~01vKLT^>y+g;0T!QB}nDD4cm*u+w45;8~!oi(A3aC^{idVOjfNPso;1P zcS9uiTA7f|Vtc$QdZ`%-Ze3?qS@8$w9N=w&6VCip=N78jmJ81SFX9aTcu{nCv(Y~1 z_Hp5w=Jtx(qt2U>4$-82;AZ@caE63VG2{NzHx{Ut&BA&`O+rKfN(_;qP*npi<%5PU zt!#>zng*u)bxE7&{0rGtRVPdm3ruWKDXOor7p|-53+=J*MI#92BXF8&+5StRn41F+ zH598vF^onHk$KOcBQF|7MV?X(d4O=h%QnA+NwUXTqG_3Y=^|xg*<>64fF!J{I^>;t zlWlU^tkpE;W!M{F;MF2b3QUz|Nd(a&{|d~o=T-WGrrUvPw46r7xysjiHp!7)N5?PG zBP6;YU6TRHSAN1s&bM@1H=$Al1%>x0hGz(#MNa!`md_?<8zol*$8e{ajk=w$nx_L> zS`*OoPuSLhCFY$jo63+{e&i;M&Q@+XJbU{RG;y+o0e)>R* z>Ii!U_>bCbF!PbkKiL1kL;1@7#~hB;t^IE+Z&lnbLZ6GH{&4Tg2_#RTR(#*Ii-R)Yd$aHpOBsoT$YaQ>k?p7Q+ckAK@;(i7S`pqVk% z(DO4GqW@Iu>pwRO2^MmV{ch^PHY zrD%3TDew(m@-VG#Hq`opm5Ho5Q(b$rI4mW_8QK^>`Q$USRXFBHI2zOP^E>d(58FPK z+!f?Ez`NJamQ?RD@-|WI;p=M7Dt;?N21*cuR8?|gC`a0T3?j#Kfr^?x<3x7~`8wd% zVcZ(&07{X0h|piNoI7!&Z`iee5kEBF!y2hv=Op|SL*R-Q%H;X2gS~Ix|BCnMKScq< zU+AFLay}Z#$Z_oh{1<`k07l%SYLvww)mdBCt*zu38K{4v*!PGLm2DjZ_$Wn=tgfpl zcus+IiP~4Qsvwi(%Eu1OT;t|iKI&xWPUvMv@qaH9K>9Hsb_}Y~_Ynn4_^tgc(*%Au z86)>U9!YqB2+u?*MYNTV>cffu4&rZ5eyu+VU~OHkDflq=6aF_6BB!2ED7O~{0}F@y zE0l_1iOs4XJ*KG}z)xAHg{FxVO94mojViYosXZ!{nChL6vJNLHv`E;gH8(@K=F7>Q zV%%6VG+6Ix@FNBfBz`)JOLrEZ_(4LL{|zD)fO#4uiW}TX9}78XmQb(i zD^*{CW3RxVq7iG#4Bd6%keFgHh%-kq)RB&nq3m>OL>bvN3H`3tL_CP!a{jbUaOz>& zOcMK<8(DjML4u$o(O5?`SuN*P(}4MZ;(LyAt(<2oav514s{Syuq=#T7NpISaEDwfR z13#OPkF2;-=e2d%5U6S5dS>|>Fgm-pm@0BFVw3)N?C14Q&UkaZEa|5u#h{lJroj;L$%^LTWP0lKs-aag%C zV7K|8?NghKghTfmP;H$?E6&#Ep_N; zMT1vu$p&nJCIWpjumII0p^q77s5xg-Hd|Aca#Oa0#ydl&ciEA&*ynC%QvUv=bcQZ? zd-E_TZx{wYRT0jVH?gH%o9@a7|#etvh71e5kq?&vUX90OpN##H7}D z52yUJpD9%N8%P37q450A_|+|)`Z3VM%ttl}@Kq=00gli6(d4MegK53&EO`ZI@5||T zTDK5_dTK4(!D-J=;4kzomxdQ1Vw(%yE8rf(jtf=a4(0$%1`^v?IM%UTud` zR~!Uwf;vlvkwJNi4eFU>K%{(hWitO03j)EQoc0WvU|Sr@E26id6>*8hP+NvStG4q< zHftt-h&~kyJX64hAZJGLkj6B25A0@P#2|J;kXV-nyaa%xk!qTdtDtqrp7VL`-qD|7 zt8QVT8}{N&WomB}3{O1iC>5PUBwza@@=uawHq)A3-G&6DQpC z7A}?)Rg?hcJytICK<#^B@IN^qSDSDzbnT8+AO6WkirP7;C-6^<2|g#0@sZQYJ}^)l zV%TTV6B?Bu@`(=XJrlMxccM6dT2IbC8I&ok@6U`eh^k3*V-4UmfY{(`=$CKejyhj$K?g|;NpvDln!uI}? z0MIRNpKbn$M_X`Xh>VMXZV5{U0*mdbV9z6bHZa0AQ9_&C-x5lMXxF99&E(Yvop~Zi zK$tPeKCxj(5qK&FI&&-cD%S7M0rfhN11oEr)b9kJzjGjbq8yHTAVKW?@+~W4T>iJ3 z@~9Qh4 z)uqnGnY!6M%YMUrNoUlCT~C^s#|0my+UCcAD8XnffB|17uwI>|Row3d9b5Y67NHAK zj1Vf7u`5tG0C3=;1!=%z_SCfZif-79m>Ukt*1}Ho)&`(+M>ylzFuo@0z!}@byWB^Z zzmR-Frw0Dq2Yg_GdU2}Ag&9k1L=G6y`uFE=Qv zvA@YreXZYhpdUANL=nFBHX*+PW9C+JwXoO!Ht1LSCP*rzse@r%wX zQa{aa$@D70^@c&#`GzJS{2EMxZz=m1G@+nSlj+Sot=Pm?V5<3BcCi+AKT#uw$s{+# zNDr9gW-06=g7hNH3K(@hDjgr&|5+i>%H# zAxt4IsCTZnh=b?fX(43&)op@lw*noTKqf(h-#bSSR5foPA<{0~^*D-KA{Q|%ygXB9 zfFZrK`8f1<;npvs=_cisG2IG-8TQuC8-+ZQRhy3SIXGC0G@uCyQh+yem6lY6Q{Z>r z>>Td2Md2Pj1c=Zn66M)QC8#%RdL4pf25pBOfP@$n_sm?Ne3C=uY%7Ne8OkMgmYJr= zw(XH?@*!cNP>!2E5of_)$^ECV(&#SsaRjH+tyoYY%R^Tb*gdRau@~I(ijCCJ`Z@Ok zLJkDC72cAbz%0b&W7spiqwQdqEE&G$$}+3PHiwPHIu1D1Hc`cT(}=k}m>@Hjn7#=! zv2k;YZH*G|*G<9x(IUetwh`Zi>Mg@h8-+j}VOozjZw}oj<+{WW!^+BZBz^Okn0$&1 zqU_(7)mi;3R#UT*ywwQLZCQ->R)i4qh$sVmLmVuK959ch-G*4q5|7pmk7m^q=iU=H zs)Cy+dT(%!tfayhNw<+dYXrcEcHdigO|?7*1DaEaqq?GukhHywb^bJYvnPFg@%H$F z(+wfmr;IjNH1gC0bM4TEd(K-;drZNOcg}Ycm2nxNbX2tvCzfh&_C+PX7-c0Y_oj@YJ7_-07Ml{Yfd9|?2Y(p?kH`0Ej*|}+ zFW1L0kbJnNYvOS{(;WUkr#R4VU*Ar1eBm%HNcv3fSH!0@rS0&H`z_@U&k_>lCv)dd z5Akkyo=Wuyik3cY4C+BZr_k-&z+io;`kia+zc|b{7f7M6uu@dP7KJQ6fwPonuhCNT zro~ie0wMD*X#BZycI)QUpL%DKcNH+GtFNDL^&p6?TLTZxyOkcuFNi?|7)CEdD5f^c(PI4<+0(nW+8N=eV(;TTG|G%6= ze>Z}Xi;etQfDS_lVm{6nMUxS7cb~GcHk=qDzF`H&bG(;a@t- zUAL}nm;8n$nDpr=n_`@5@TQ2J_a#AO-*#l5StRWiME@~MP(Q_!5BYK~qkAR;_A-7J z`VqNy?~bXL6YhVJiT18hbd%*q3kR4qsz~M0qXG=D#uO#G?|oIzD#hR1vmUnB>oJZC z-oH0>vyD3N?}j)`P^^`>1Vhuo?_!K_%@>+rhrYpHH8xX3#r6OMdD zA4Ikx(N|_vhT5(tj>ntf_u!ZZ))zeg$&-JH@i+OM#_OgIN1Qptbd#VIIsY}?=H1-! z5Yt_2x93!mH&DBqvW3ghG51fdu@700CC30uTG9)nQcaBkb{2jZn`Tc!$n}pBx*rvs zB7%y)=3tYpN0yoNB1x3R6~;RKn$Wj>?zK|l;oR81d;o+F?n=|(i}T}4(Gd4C-u;9! z-e{mUh;(?jMZYZQXW<)>+csTkQk`q60(zb-zC@PG#|+-&Ajs^-JhZi)P}PosuTGy2 zuD-Hy-+Iq~gt76tu?bEiCGKem8Ra9(4-C0b{CHA%#^3JcKpf}TDP`0|Pi+W${}9|x zm3c%2jRb%)7%eao)TDJcwj2xLIo@OEhnYuwh`!KlfqRR;2+4smh#m%>td$$pu^>-E zWF>ir`}#=ao>BWtga%8G--F@VxcP$r|1^aRh9Fx`^F)7Hs-I5Bs`AbdD2swKh^F-4 ze)zIClmA=q*Ft_JAcI3K5(@4Ur_lYe!p^4X>z985b;i%c43zxDw0~xX9mvobAfdo`x4tY(W+^jLd zvBLy$^)*jxxDEn5F%E6ZCn0n8>u0&sr9}YhCpI7*X5z{5rAkScWaZ1$>YrUiwaH?q ziVSrp+>lQ=bHfmKnz%(p(w)yoKtki1k%W1VCBj&TncdZ5a*a#V^IJN#q*QKCt=aF_ z`{cD|M|D&<)a9Ma6ms*JaD*n2`%}f z&aXAf$RADl7YF5f7ohy_GUc7%#h^1$)5;aE5>oP^TMO)sZ*3JT0q7y=UR`z!~+*oyWm9*!#8D@05l!u3G^zhoPo@3A9p0JF5X9rn znYG*JihndNRcg4;Kr3;=mfito0#<_|*r$!~x6775%*}qmOqFX2ZoZ}m$QooIyXIWP z^lvlG4E1*|DVX`n<=@Zd$4f%MCKUfBK|rf@s(iF+=1QyV5rp~~{0ol$+Z9oQLXYfk zDTwv@78E1f>yCP}(N;NshGRBa=yU3HfNy|Pz5Y%T)r=Ro60%UX#H&(tqO6|Kyc6+H1P<8#!cT!REa|BqUqDD^!(j1 zjmk+uC6cwCC*RKbvna5;*9geN1`qm9_sP54oY``4Qm{wCqv^H2W4#N2yHG{?og@R8 z{AKDOPEqq715_wvi4DUskCKyTWc&+OOrf-ofEY@`>rgHOv3vNyogzg{Q$sjzdgLnu z9EkDUg{<=;#(RM3oso{kAcSfgoghO9AquZ8f zQ~Q2%9YTo)AfF0CzJc>RgFj|%gtmU^Bej9h&yV&x*L#SD;I+Fv5|k1`0NF8tAKZnn zT9B{~#k=*qt0UI$#X>B)l?#Sq&2u@sZzXt;ett%12>jsxd`F-}esRS<2#xF%v#ULL z(i2hq@M`i;_4?7@*a7S<_O4hdj|$`KKas|Ox*vp;kpKcKjPIb$nN(DE8b-eU+Kwxr zDWXyPJh=t|1g~bw4zL)>{~>I ziD`X7CR~&Y$zBWDazVRaG$hkC-o9 zawBY(oPo<3xwhA(BUq50o<1RnKl^vI5#;7FI*5PHorN9h^&hsM1Rivg%vQnB3I3xG z3Y@rjd4NMqGa44vO*iG#eB`=^dTs4lN14Yk+gLq-tLb&7MgcVRp;^$TPIUv6g@9im6H&6kiZ zTz%TfXwU35+wv7pN;-~YCPxVrNS&P-y4v*@sHy+bWW$i9gNKG@k`oFND)h1%>jgpW z8G9l~zPM}d+PI!wC4e@dHPb9h1n^8yYx#|Le=B^tY|A1m#z94WntR2sci_VvzyzYC zH|39^i1*F6`kB@IKT(SXwJZ_alT7GK;HctN_9Q}d#vCHtlY&b{{QVd*VOPBZlF#2qz{A(zfHzjb7)L8h z#n;5c^L_rhczrzZ453va|By(cIjBE^5=)8(6Ea7C_@M;3yK&$OIU;rwTy;d<8~oBa zyo$JZ8a}owC5R6kXZLCf1^Ec#vnzw~kmgCS$&=$oUsff>4 zgAo1euX(_@qs)LSSqr2dlxMi?_Qu%O-#e&iiUFPb&SJ1q8%RD zsGi+yRfvAqltn(mOTC3ByoC#F4>0j;j0XJ0gHK2Uei$koShNxTVCmg-0tLP@$R)kf zI{1-o%)v$U2Du5MMf4^%5}DTOT(kRYi>B2l2zRc=9ZKhXRS;S-Fj~mI@gd(1V8aVr z)lF#XMDeilU;7ve2^&NYPR!M(8U0e*cG@1@iUCo8YbQ~k zthl%~_Q09w0D~+K<~{DqfB_kd1HA14|L0cnawnHzU@)9YW!5dmEK5%HNI2xwnyFtai;vnKZhCj+kn65%{TcU+uZM>Dw2LL z$NplnzAx>hi4aq7sphE1Mk1PHh6m!FitV&Cu!1ov+Y+4LQuX3y{m@l#L5#h9DQ-!- z_E&;~w4!3ZOtEZ}2hT^DF1Kedy~8CpvCxq8&smmNaC`z8JWS2gLqr#0uQAyZQ9%?x zm70>1$m?5;*46W-mGdS;$j9j&DWc4`$UgH($!)|i>c~MHequPmZ(@K|X#U$Cr|&Ym zX6iUuo!%cwy*IwNdv}VdhrGLiQ);{QMGVTp^vlO2NDRUpn3>P-Xn;3AZ2wepRnV=E z0`NoNNvxO(#&b8B+Y`(JIn~0pcI|StnIq-`4$Xp3Nv56f7PWrDInA9uhUeV_oL%P1 z0OSr=cm(MC^nuWb1Py@Q&0f84Nz#9{#h)m-A#r%sF8(u9F*7JTdAA*^00{R zAx&5WjFY37lRJ~hUUWz+{OLi-jEPp;?uZnC3yh&>vjA<>Uf$hukEkT<6$khoeI$?d z?{lWXf&c7C`|`U?R*sX2!b};;WYHqvbv7lpHv(=G0isQQ7Y$Jyw^)OwskzCM*pHr# zDr}6>aFU~ps%tNvz0WWppEFTsgX33y0sDC%@3fO>y2>16;(3LqVB@5|W?NWmf8TGZ z(z75#vOgsZx~%-(Y1CZwoe&R`v-t1v>Ai%=!B^<C&Qm)2mBQDJI(9U{@6W1A?`#Bpw7>Dq_=x{J{%$tg%1#J9jZa$o)z=?L zP?;U}MRpYJy+vQIkyv{B1$D~$HH22~Lr&Nx^SH-$KA2Nle^u_He!r;(>jm)kukYBp zi9XAP+z+4L$JC0|VF`bHoWjp|y(chse%sJ_`Lmux>H&^Yfz_07qmDNZ@sdubj*bf zRsk4q@!bh8eNU(Q4;}G4i;cmSqM309WeT~yTP5Lj9e6=ihJ^3x99OEvT2s2K)F~Ib zj~bS7)a-`T7N8938sV#dF9#Dr{+@b$@tosvJh*&h3xgq;R*fO^kUGmY^O2>jzdKuwwf_SN zz0v;Z^Ey4YAUN#oU7$v6!t7p`r91zH52~x)G{0IfScj$*X^2HnNb`O=3RYy<4(fA1 zOlJIcIWyg#^2~Mbm~pDU!|MmY-2Ih4z#aA-HEOQC$0t{Q5Y5g027AsVWfGDrqgm&Bd)BcxVyHg<@;1842pDQ(0 zyTd;2UEBQHc94Yc;(MJ5H1@xhdwB+L-snTwK_te`=KDbujOV$IOuP(x)bu7%pq+Tm znU5-rHm}ycCcYIb3UULJz5A~}NByf?43qF3xzZ#x1uUWz)n^)Hp5kCxq4*!vsBGLk z|6d2!0u5E$g^!S*Lj5IW#9u0X(IjGAQz*)<($~eMaVg|BCU=8FB_yWweW8)5{;%X` z3`v8@3<{rIrimyfW89ex!!TEK{^NVsS?}6wpLO2#zUS=c-Fxl*yoX=@ze9T7Ytvh= z(i7o`)&H}an>ug9ex;xA#`w|A=%nVgG_OCtOyo>wL@M)^Ib#%x1qVki&vx3Ige2pt z-i{kFmNNISeG&Jh=330qcb>Z6P=oh4UzWhM`}&#Y30BdwbbuMU9X{AF8><5g^rkvh zbh0Vryh!Q+Kdqp^T1`kYt@mlnC~70%o7ST}8c)q#Lc>DrAYl{?8eTYhLt>sPVh_oj zed~Y4B#pCUEI4Z6>}7Vr`yf4$7@cjxsx>swQ5SOPTLLVD-6mu&wg97G$3omF22mkh zq)$h*{z{aKA-;tn4Og!NTXr(*Kr^YBl7OXf*cc-GWM{U-dW&$nZ1LZbz!qW5dC?dN zQ8OboeM!@(M;tKVEjaWKX4sEReVW$8Pv?PgXEeIBjPT47voc{4JIq%xs@S^*3l*gk&g+YJp?(y{cl zj)>4mtiyz26S+pMi(2pBFz%*h%e|d#as)qlY;==`O4uO(1HrISB&BeMypOFN%J}k^ zH8M27G4#UjYmsjL;wh&Q5!e{KSEi!4j)^DVgx;UQxsZMZ!$fw%h_wRLa!5CKUtD2h zdZ^-aieIucQ8w$Gg*7g4$}Ll~F;InX@;wLLK7n*Wz=()A!fSP`XqY+H*h#-Nj+Jq} zQlL^p+r`SN)BCm!WR}5$0QU0$z*;lVKQ8q{M%WF6iDJ^6Oao+scx}13MrO%^yg_qS zhAlHwamVMM6Hi|)zy6&h;?&wUtlh!KJ(sBN3NSC*HCfv~UMB7;K9#oa9JtD)ii$g2L6p<@ zd4bbj+u&N~?8aZl0HBOp|1m)u)AD3UQ7+@31fjr~oB|4(&A5NNkEaDi#EFHqO26DOIE`GJ=@dZ-Q6W zM#5zs^xE25zm$x!zMHY}@$V6oSnE8ey&3S;+uIut)N>4BX8bdcapyv>R2~MhVrD@S zkU-Bty~k1{IB990m`oQF9H;1so!YVTI#1{V5jPn^V`V{Vl>7Sh4zPZ~et@)$=IBYp z5aY+=IQiw57m2u>{gCY03Q5G{aQS1Tl=I)Gz+Wf&JJ4MTnrKbHGS1(Ny5%7j)b`l@ zy+4ZOl&ZloaboC-5)203C2+KKbAcNA;QoS6 zI>=n{pb{lSky1Jl!>rmro11?rP>T%wUa!J`b@HZjsL*n~pi(Q$`cCMgG;}RZqE!n5mwQVZT(20kmB5A%dx((U5@rlPl_f4qTk7imX|gLsBf4wy zdvVuFYDlV)1|})dMdnqQmQ)zc%(a3oGaBXA&ZLz7>QR>1F9e20^dBxP*D^{LPIoJ$ zflH6~@Q*YJJE(VauXT%aDhh*K^EZSK%ru(Rx(#_O$W2#~|S?rS! z9Jxkwy>hm#q^Gdq91h-@RfCE_F$!8hL z$>A}I+mH!BQPFvU<(Jp78$C+}>N(H=U!D3O7w_?-vZ#oIeevv%xrP(YQaR!MqVxI` z(vvUGRK3`#>WR?RKlKMOcNUgUCGk^SLk4Ov&#>5f_>dumC^F! z#0)BLZj#DH2Gb>TTgNHrRCAx?1^kNm$%u6PxQvAU;ETbmjZJPYL|X>R>SYcCvX7IJ zlpcHEkt~SUMOaw{sYfuuly`XjqjI02j#?@C=^I7@^!qmHBADEIwrQ;Plce3o&=5zfdSTb%;AJ;j&D$jT%4(cOV+MHUguD-Vd zM7Ux?jdc^xwR@)*rq(Rvk)uex6zh4IhGv85UI)0%VnUA=JRQ`_Ha)7qLBiopi*FQH zOKm?m(*V%L^-CY~vZ56Dw7feX2wX>-Mj7nM zhFfhWDGV;X^mOP;+E$1My`+l~xCMY6=6+A+@=|QAMOEl?^G|V0Hk_GUC>^i1Jdk&J zV&;C?QJ8SQQS19{{rXnF$~CuJ)?vKi)=@jS$SJhx%BZoNF?U6AbKB|l${`}M)vOv{zFdw1yX`Ra zhUfsp1vaM~n}z*PGq3e{?Q-6B2K$q=hP6LuT7VG||L~-%?psABWg;Y)cyTM=xJ{bT zpwG_Ev^p4QHZp>VQSOZ{(%t8TS7wZh){+`4lft>@N_w3YViZcqvT^y+JlmgAk5hg@tRAOKNSqX>OiDZxr%XXi5O4H~SR>vDpeIg_H)2Mv zS5f-^9~x8)nUVkB@Z7bokr{7!pGUyo-Rte2F_hoxy8#L!2i9%nw0|n{!2G*j{er*z z&l{gEg4*arjP^qJ?qYyX>Dy@@KM8~1Q%O1;toQiQW95)yTw=mv7QF!y0SV24#MvT4 z*~2N0g3IF6pSPdnt$aUzt?RHatn2WAUjgtd%6uhle#B}8Nn_?&_N=0z@2F#4{%Heu z@8pjz-RWmC%!m$}Tt3ETN(&p$ZA0=~dcQ2ReNbHzsIIK~1Eb^Jqi-N+AiwAMLOVCk z0QYC!;mnVhTqT6}s!_k{Me@DUbma=&Q6IEn7;Gg(Rkc61w|0!tzTb=pibwvw6Ceuf zqq&3X?=T8`p-{IF8Lv1ajmfX+g^4~s^zUsBo`i00%x&FM_$2U;p<-ap29hC#k|BW` z$&e7RM1f3C54FLxA^?3!lF;nvlk7HB1 z^KFIWkxUx*V_V)V(;E2(r#6~15`)1@EeP*#nv&==7&kI!<&R9it@Fl ztBUh{o(}6#R|~h_i*J16+!vY_9fjckxD|9;#q)N)%fFN)Cbg+~8REQIjj44huc~MZ zv;Zn+%IcWPv77mRv|_${<5|}zyUpdVv31%x`gGSsN+C?LVhS($%RlIIGY)zYeS4dD zdp%pDDx+ZIm>8jiU7+t!Q0Hmz#k7vc{j)r`jM@F4K?>^+xxqXl1%45OH$;)?{XIlu zPLY#kX?1<(8@FTf+lJSupxH9*1oBZ>|1N+?Eh(@J>oq%X(5$jrikz=I>c=VP(pyw` za8_#!x9(NHlIi6*eNZ&OjvWlNeG@5034Q1Nb=xD?Fzl-evni53-c1TnRuqL##R_RZe}cO7*O%+>;GN%p;}0yzYt0+@ej0J}FDw8Fi*?u5)3c zlkfepp=#GD&OPn1_h`)?sgEkFnh2ox_0W^mC-6);P(1P(`SC+Ti>EjlL~dzYmbRxI z)gJ1$wHxaTt>T`mV+wA+8nD@J9|l$ru`B41tZqTieWu>v}Nq`8A zG8lk8k}5fm=G0%>m@od3ig&H?in1n{nhkfdkl#BOJZW>GIlLymzVR7TIt6ZgRy7TL z@q_WwvfWH$WboF0s9|waK(r@&<}fcJcDr}6Q$h`J(#Co6YZfQMT^qn%VTWRvH!05} zal+ktIG!;?1dNR-Sf+F`cg!nK*xI1T zDt$S?!tm`I^9zQLn;H*lJOFlG9Viur%KlScfCSO>wfh$Oc=wja7#PA_D-*`Y*IS$M zi_k@2*g1lQ7lFGE?q35Z7VSU^OU2+=6*AqF_y7Ts=2Z< zFvtnoU!AXWTm-}S=>Jyv#;q~oNcHX4w5KwjQ`FiCp!_2dU zd5P0(h%minPRibtW%&7t+UQAzYQhI~mxN9Mm>Lnt^!`sj;Dp8#=)USn|Hf_+Ni0lx z&t-VlBIhQsTy(;tS}S?~7yFgt=ABPRo^i!#dQ41=A6NF_Y9y;SPR^Q>K?<#1jRrtNX@TmI#lhrt>e(6GkZ(PnWQN^P~L+ zLo?!p3!_{PjJc$<;THe{Pk1t@uH)FJ!)l67moHlSgE>$gAx!c9UZuJw()@!t`Gc8k zC`o7M$Zk5oWAn4WrVeq^;6CouB$53N9fT@+;SPNxpq{AV=4|zR=tZu9&ppq5uN~$o zVeA7+5ae4)L}UuvpP>Z0J=#D%K2gs8ke(*4-M793{@M#vgKh z722@Wn{{9{30|N6Vxbp=aKNSg67*5@hV+_cPLFLXh1ai`C!xT2hCN2(gL$>rcYmVj zbYQASrh3lMobcR_O_wJnICe6|0b@#}^F_!DfX2sfqX(ywQ}36#Zz8B``S*TCLH+BT zS#cUUmfHtEsk}_b)|FEap?5`7XraA)-p979ClfI-SR)zyFGRAj!=(`X#X$P{`ktFE zRv*@$kDzCRd33`|givSRRgul~Rh0AV`2fR>Vla>xn>{R=J2Z{}&=c&#_Gk3qYvgjg zYI*JFxg|G1K8$)XbQC)aJlGh>>V)QHh~zv(NAt*dV@<>w07c}2pPhMpi%}eW&+D!i zcS=8jOmnU(5bIW_T5DcTZNB|&8e&EQs;hZsQk$$eUPtj;EtlNclN^C$4kBaB z=IWG5vJ0rGzta^jBF2SU=@ZZacCpdNE4Dm|$t7p)WFtLgt0&?bzZ!d%;o7&06Cldr zT5V9ezuxM5n>;jkI7Ych4s?=j$_>N{+Be_bC)gO+Hf<%h-g)?9alau~W4Sc@*m79q zeH+0jFvb7vtrln8me1;%M^6|9!up(NOMU3&JSz>eIg0b(Q}d_+C)a1d)t+=1wi79u zifzfr6Bj(^u+&h#oj%w-Acx;ETQ6DO%wpCyJ;yZ)qD3f!Z2B4dMca)2O+F-Z#HQw3Jlj?GtoXQy5(=4qLG(7F^p-GL#c6jl2g8gXaa z8SM-55}eHC6p_agC+_LFahYdcLgU7c(X2{YJ{QZ`N0MX=GNy+B$N%le|jD6P;~fr)==c+#D2|c@9z%qK+a_!vnpmMv6NdrZ9LdqE{i3BSp2{ z;~-dJZKi&NIZPf2ovN6&&<4=aM!}SeU{0GQ8cC6?cE6T8%ZER8B>%X3B{#rs zaGyI(L!di16nsu-%kx@CBq#XrYVe&k8)~HJyv=--QE!;F2r6kKIq4hQ{cCR}*loz| zqaOvo-|GP6+ChaL{1>^`ofm9O%*L0{yX(P3lu<`qPvGeUMy3Fo`kx><2h0_Mf~^ zeEmyrOe6=heRy85l0uX4qbU1cTAp=+J!Z|3sPE82?sY}|mhNVeD2}Q99k~gX#u)rHi?kEkXpqTY<*os`quf6~aPySSyWra1@+MF$4$(fMkSJ7Qm z)@b`|~kvh(WaW2Q@B4zl6r2U zLNh&GaNH;FemoxwlQ8_Mg@uQLSc?=FWv~j1=iGL_0^3c-#wjj)SfGGrdN#91>xVUW zHf25`g5bo5LwWM4o;9GQ=H*5cjyIwCXzmve(hTbFAKISlB*m9>GTNF_^CRsx@c^K- zYqrie4?mdMVPLVpJG^lVCCE<|BP+)KR(~u;?a1vbhU)eFA^OHg(Ii9FyVU}TXEZeQ#YWQxfT;X_EvvE}*zw!Xk*PX{d2NgE{CNEc8)PpqpYXC> ztg{jWZ~KV+OdpoW{^5_5bAV_q`d08!teSOz$#0_talmkzzPasnHNu*h_sWSM1CV5G1>PP^OS_raTk zJ-Fho$BZeUEp~|HoUNG|JM!}1&kI*O7op+=u}n!2u%F+I-H%Di_L;!qH*f(fZo1M zwe$1~mS%4?)9U?7`JHHVZt18|!KAl_CS&{Y#7poFik>>!bD~=6HNZOmI`=fREvt&AHyu;KCOWJ8j z(4o@O`P@#v${UMT!ElU}D1%2>;0+X^y?qolKhZ6@mzdq+Ud05l_hN&^$cI5gDR3ol z@(Rpa^!x>sb1h(ex8`2{j(8-M6R}tgW5IS-#86E>=rLP&Zwph@7e9g{UEEtnuo5U{ z`-w0lW#1j?C5fL=dMuzW=^*!x5QG;&fr(Ox(9h+7ycv3V-W&yZ_NBc0d}K~`!>YqS z!5jefIWti%+nwP5xKkmLaA2(GFwFUCh>xoO!2*tleH7nzC%i7^oNG>nwOFY!DS{6X z3uc6_2q_?G9gjL{G29(4ZCbzmiGb+zapSE5u#-avIVE3ie*8@Zf{#W?VI-9d}tQK;aR8_3rfl`a`t$rn!t?1TXBquO$aE+r2;>K z;&1{JnU%?pfl3<^Uro`T7Yd2UsGQtE-ivZs4Se*Dhx2_jJ24`gCWR6Y@bxoh=fOmU zuNy(0x3@5LIFnc8Tr25V){$pphiGJWPr9VHNbn6RP7^^Mw=-qoNE>fiw#S3o$1BCZ zVC8R(aCgXRU++VPk*}X%X?81nv?8KHp-_Zcv~#Bo^AYkDyYv3gd&&P2EBU!Ztv9<54uVzJI7mrjD~Fw!O#}V7_;bA zX?VgkkP^k1(u%#m@ls|ccy4?cH`sDRUBvBnAq+Q*S;#mX19(vRBY}u2sBS$Jv~$i*xX!PY+q8HWDr^$*mWNMVLN5pAg=fuPn8w#uXSDclpM}}{j&b5QVc$P z6{`J$-*VK1DM?n>1?5+!NIFlN0=B~N^;FGQrcmr}X2R;Q^pL|^0kR4;(n6`%-3eZ} z3$_G_D)8JD5Tl&v9BS*Ozu0Xy+HZ+zXn2DZDBiSU50QX`OF=lPeGmzD`{NPR#Oj!k zv)-31spoq|srl(F;fi7?3$3?{&PPO0#JL7a-fKmgX=&iGGJT9UNoy;o{3n`BzMlkR zGaxP}^u_ir7T|}(Z6bl#XxZgQ9UmA_PSaS*_<=HK&83qf)ss{K^xRKdJkN;@@`uYk z!Vxg)kJEqH4r31L{b#nQ(x@3@`zSb$k(G`lR5wAp?D!{cLa^>8;-vybdHTfTZM7gW zOzY+|0V(^{1BYGBZB%ptwq-LhCTXGkn_h1%>}7jihJtr=39vitQHrWw%w%P(4d%j>zW5!PhJWw}e1&gT8NP(lVuz2?9*d(RU zN2zRdP%$tU155Dq@a=u4)gDtXn9vJ202SiIeQ*)1*a5MeS6X>STK0|Bw)Nk)Ab{le zibnU?#4d#3wTvBp$2^FHc=%rn-8I*)`+QE+(_S4sjPYr0>lZfe4|0pav|?spl5s%i z3r)V{xuWJ#EP!(D&?Tq3+B~E*oXqp+<@J5P3mD}S#jmpryAJ5hp~bF7#m9NX955)= zo+9Q|#yJhu*TTE& zj5VQ6l(sQntgt=_qqBAiyW5)zy4iiP_k9T>Gbx2vBpc>Pyp4rEl7W(U#stN{D*2z~Esk(-Ey zgWYq{`t$1BN%FO7o2830T*J;2_Lsup9=z4hu0jQqo;M7{&ad`VpFz!tsF-L$hBTg}b!Khs)jqxqv89Eg0*Se@#w zXV&Bme78!tpq|uAadEX+16l^82QVNjmRofaM3;~xWJF=ov;HXo1(SwE&?uwG3Z_qK3)D%-tYNmp*0 zs;2>E_#KwL*(y0end0x_N9@v0?iJRi4L#k^hB9xifGQu%&qlL-Q3I z9$H?g_prY!=w>IQPKF`L4*L+OXuY_-KOFolThOJo<_y=)*idUEDXOnqNoq~Ez8wsG zZez`Q0mPus)q}>+oqPUjINi#yBZ(wV=C;7fpW!}kXy%Torzc&OMUPhOW zk$LPWA%c8-$5V_!OhCq#!P8<&ykdo~liGmhT2l#&`C!@X)7&7)f^aHCjs z4Kr_HGHM8lekp%gtcriXLg5Yzli2@3G4?|xx+&mXn9auTT32|XvBRS~d(?a=TJ+;j zNuE5U-DdqDNV?@Lmo=0m^yybX$~S1K!UxAdRKw(m@9>a30nTsQiq)8o%82W*?zK=I zw_!bM{CT;}T}wDs8O!g1AOWY% zQoM(GR62}XDV*@G=3meG>romY*zGTe9WxHFU@1S-miNb1LEoA5!#@gsib!SNdcPn3 z7G@#A>o8_k)Bfy{J$mw%Ad{#0LXJ##ZDN2Av~T^MvW+qo0lMbbv7p-cO(%4r91~>h zP-N*5ENb#~h3_=Dw$3;=7Ccdm;)pfy>G+q>Qc~ul|N9|KcIl)R8)mcnVai93IhG%1 z!!|x&6I);Wv^<9qIt*s6d6I895`iWrCZMyk8bXi#OK0w1)+AU6dI2A6o=5w0-76qN zirQa{5+tqc_-mRmsMko>QO7kq+47<2@}zszrGHT{MrN=P<>K#i1cT%(1#HA3qoY-y zGq|glye(w5fCMW^h<}Sj0BxY4PI-oKae$&6_d(ph@(hVl!sPWsAjTjNuSX06O)qf{ z3~d9&B0{3|+ZRaIPU1JTKV*Ev07oJ08$n*uGZ4HwK?uMb3ic0YCT6s}743&@>XB$+ zBxBJwCjz26Tcxvl?&gCPc2k4Hhc(N1t6M$Sq7(C4wOzG%iYFcce!mgjtL8Vzrvb_+ z-j94a`t|q1_DW~xXZsx{6*rN4bVfQ}Gpx@Ji?FlLMm@&sxIuMfBIR#@k36p|z7pk< z%l@)Qi_aHS^h&SDN}|F;0Z*GaylEw*&ls)Nk~Xe=XftPBp!DzRgcD>tRB2U7d%ysu+4FI z6L|Xv1g%_Ys2T^F>iZQ3@(D-iOP_uZ{bi8e1K+FnhI{9a16lj9vzI0hi+;0BTb-{* z9`#c+x4K4NOJiW5Oftm;;LhrHSgy6>$th7hpKrE|ShX{dK;zppevcXivF!V+KKs`a zJd`PhRgVLs6@yey`!i5bT12-z9YjbTM>`Q@v3%#KVhWdG`wkCDF@I^W`8DEbbcF}n!O z;xiXlR1=X`h9Zh7wph&DL%gYfI$u+lHq!#bF6*bt_NDuMbmRoN~g z#9RQ6qV4j^>0!4#OLefDpAQvHJiBKxg!s9MmyC{LBNoh$Uhlr` zrr*-+UT`i4m}sjCFMI8kgtG!z(Xgz?L|v6t6A#0l!*Pu2)*8Z6jza;?vAOy%AGq2X zPh!q}y0|!bSgDgpy#5g06;5tI9S5Is2fe}1_hwM_H}3wnv1{nOnmf0^vU(ma z^>_K2bhPLbcDlSSaC$_5LX>2UI1m$6;3nY78WKGV!fjDZ2tlCMVSdgfjhB1@uuD>-P5FNt6_KNyXTcD`9px0>T;gblX4?6xZ-jdq?{omFOB*Uf53Z6x>P&;1%PvI{BKXV=vk z@k*dj33YtS5)?Rwc?>HW5uvR5T+y$~+xk;1-$T0mdv(dh-Cz43oAz9w9h+Td=ybFc zCs$gR?97d)^#OAunSGi(Gk<7#kcO=plBYq;bc|Xml2v>o)lCuk4TTu4Ge*<1LCU)7 z;lD~Srq$3RpHqcNzfI=k;`u?eDA+nNxiGV5{>{3Qys>ZZf!FG4E+hL|ruwi`FAwTE z0RJu7!p{^Kz3~L_T07LJ4x`xn=ue$Xt{?bBPhySd09~8+e?6Nz4g|gJncag&KrYh9 z=m3>!X*O9pbTl+Po;45d6s{a5CNVxf`8W#zZ$Uv_xr@K*F8stF3JsLhlZO03bsSp@ zqR;lhC>7D|MbBN&FtRFt#W>JB5lQx~6f2N3&Yw0BO8hJl;`BAm$x%WKbe{h`UZ>o7 zQ4nbDA_~n@aioj)fg4IzspEgXHwNAxeblA}&$_iHHMdbnNF`I#WcJMPH#%ajr6IFK zIoLJorVX=>-=j79{$7m_`l{L_ut#9OfsJQi+h}n#vNLS{rVfwl0Iy=Kc{aU&Q|_OE zX@=RB<}?{<6c_+&_I-5T$92$cIm3%~fMY@@RUgmHi`z2oid@ zSWt-WqT44ojOVr$;>FbWg=qeefjlf8+~~X-6V&e+x_=x((!d#=KM_*{rU2Z}k_C z(P>+fL>0%dqdx_QPg-c=pu22e$nevtOCg#s((oG}f>!dU7)cPqIvIX0q$&Rx7i4_K zhemZZN3>^ofC9oIUkL?VCb{8D;%MD+jmzaeeAnDdQPLRtjn7nyQCe3f6sDJJh=N*x zRKLN*1U7K|G?SkXwo*{V7nJ)Qgkdzl*g4N#N4uj~7tdTh1jj zb~b00sqsC|&`kyZhn}yUl(~w7<~!b8ejJV&glB{Pqu7Aa5QPuQUA8ymObxfy@6k?h zs`+s8i)`PRaaKfRuV^BKV@#Z(AF*@ZSW$09 zZCEjrKR^|tJ^W=aM7+$lxVfG@+zm{*zKquxlrw9KFAai55T`5(j-*hpKBGdqd-V*& zIZlqQ4YXdHe*Id$21k##G-5I>1CF)X`Sk^p(r_&&6jwu1!SD^V5M7Q;`_DSgie3={+zQ>-jc*yxWF+~n8bivS{&|GyW}aJJBVs~| zk@IgNyb{WF6xna>;$x$|5_ot|hYh*zJOb{=WFA|9&dAX+ zDwZMf37&Bx28AN?){U{twCw;x!%w5#_tI|aWCDxcd37U&{~iQx_*b8AJoWXdKYhuR z7>M?i)MqMEkoF8SwocDubC}5oOQH=xIq92tAT)R%fUjnO?Bje*TCb4MS0&`eSG`w&`P=e@*7RBhI7BW!HvmzJ& zcjqCq&>#Gg?$lsNz~^y?D@%Hh^M!0E)Nm;D#NUWREl6TQZ4~b-w#gYhkkPu2={url zvhQ6y)Kb#$cR-rmV5)aiSkH+=z+%&8ey0tWW1Gr#uAc&Mfq?X?eHGJiWhYn|ltC@S zJhaM)8lw9Y<-#JF!dI>6-7bO-&zIGDS$n;ln6ePo=T}&Q|F@*~%}V)`46sDAR1(pc zV=08zY*!S$nePp+vp(l1k5!Rf5$5v7GVe}$%Ar+NRA6f6_AQB zTk`_w(p~x5yYJVPKx{}m4Xj^+O&CmIz+T7mk!EBUfi8vuH$ z_RM54GzREmiL8=zb#46>EtytNejaj>tJaUYm>;7hyNMBAKZR+h!({)%^>=Tv>q}lo ztp`8sqsUCK3kjm*q)ChgN8>i0hjo<#u>f|iAqe%2u&KigoUb^Nmmi7GnrS778QJvk=3Nd-+Vz-XJDYUJlw}yI_|?Q#H*i4f@De) zm*J|9r77hvb5DovBOB-g%Kiy6bL+p;xDZz}CL4@?n1?pZ!V6Z7nlA9 z7mGB$$0ih;5~di+@6p6xDfV0l)--l9GfS*TEnVhifGdS=^`R1`(jQ#Bf>nq{y1Mts z2|_M2mgvq@TVh`k+W)8=%uuEOS)s>ZJmzmEM5oZg3{3ygcj4RPOO6Oyq7Db4!F;JD-=jIBAR?ds8Si`*A7AK5i-dL?NUb;o_*)IV z@T|V#ZoCXvOt=29@MFZzJ!FT5?svA74#Bz}nISb^6xVqb4kX+yz3^i9s?{i`qHxhi zfrIzoRj^EVv%$uT8ZK~xfj_{RF24zx#2)%m{sIf5^OqRb3nc~y`HfLKFIh(8Gx)KV zJ*1)AoxqMR;r_Bj^EpRrb8YmE^(Z68mcDM9sg`g_GNl^*OR7a^gS%T=no`VshAxQg zu(oaH&H3XOZn*p<))0mDH1}HdH^Wt6uDy<<7ImHDv7?StN5;=8cp~7b^{|e)7r`U< zV*P&$wB2{46F$Ar__NLqd?5GmV!r7WZ6TbtZC=2o=bP-GST)F^eQb)m zGDHKXRSAE}fDTZ+YD#W?zONR$*U6Au&7D-xZ}{;D4F_1@OEQO#uTOVrLmqI>;Az_A zEV;C|1>s-)0~c_?>2PJIp_%J_ERZ4S&gQV9$A;Q9qLHV`=eH2|{N=O5^d7j7(TFnE zGSO)Gi5rs)TmCZ=ixTaiugW*4Q=168)A<7KB7pzy!_Nb|Yph_*uqo$P^7$+4-qE}W z6z9qTRoNYy4=;TGEz;NTPXqFc4N!bI@ST4Erm@99dcdH8;dR23Kk4x;g~xX28uDHt zeNl6lZ9Eb(M4keaR#WzsuoI#f-bLzTa0_`^$UJVtLN#oXjum=eP#C zz${piFJNvbo*)j^q&{)rRTpkn1NsZ9CbN$`XtahXwRRb9sd;#y#F&?!XPG^gkFwZV z|8l4c!;Tv#h7tFXBlfpcW7REI;%$$MCYFMvGAniKpBpC1Z)TS_`qt(aqZ}k`2TyG5 z-ZW0g4W`#t))SAN)Zk_R=Umf-4I<;so=ptv%67xFAU8lxzC>x>my^m`2wUhn=eu>f zf{YqYzyxkgo`s+^bsE&jaod@{4;Ou;SOs!{>PW?n`ts#VEx6z*PnEL6}?~1Qs(&vowB_rG5&y(_$7Y1Rv24VNWOqrG zV!TKn{89CfOowM+e9 zrl8dB4|zuiMnEWG=n>0OX=^?Zhl1oBI#D&AT&Y<61ILAt#L(2#)w`V~;KKfW*Tn-; zP_FOy6I9f}+|k$^CZZst+b|RrROov-fb)D&SINnz_4K~1gnJL%&dLooPkkAqRY_Q! zhc@}6sY)GT&oZ{ZJB{j74I`9ZJye>PPFDUzY2y{i@iMx|Iij!qyVq%Wyl+{H1&oxO z3j@W9(>niOdYu$|yPcr886$WMjhEBSeBI6Wf_kE?R_JtD(v9~koPq(&K$pH3=vr5A zGs3%bL?;eM8TB@C$WvV_NT z!uDAOci@-(DxR+-(TuKsl34d|bv`!fMR7(~G`So$JpkE$&O5^Pu;5+jH~e~O21gDI zs5Ub?Rm-(0jtxCp-1hlR&Y^&h2nF0-@TC3W=YJ{=L59Ff$U?gzM;QF%DSVrE%FXl< zLFt9!bFT1?9=tVMQBkqE7KQ$QHI6>9OcDna)T*cEY$zl`ll-9~A1l#h&SXv6i~+C| z-P4=?=;k^ot$|}atgpdnCML(pwnXU|Hnb^YPOdO^;C4 zm!*Ab>BuXslm%CGw@O%VrUoIs@t5rr5kIRg7-)j8HE!>-q?sA*>$E7=E|!+o*0Y4z zxs8rdPQk6~hf93e@|0b}glvJzRR#bT{*EWLC;{D+n`ccAt{)DCpRaM``!{CU(-sV@ zwVpG!JsS0Ef2nj z$3G&Ue$Hku(615#tdHNn4I1P%ZsfFL-Nl4W9Wh7UUq1<|8LkQT9G<6#v>5gO&mc~v z{Flmxe^jOi6`_!v+E&sCiEig-QaA_w37lxTRuPH=T9XZ#y&KCnE@D$3QeUi~%Azd_ z2nG}Fnqzu_?p}@5*>AdCj|$T-$?$kzeWyP>OG+UE;G1*QA`ODg3Sf&|*X^%QL&*8)lp8cI6jecxz^l7ES!1!U{ z?zRuuSU|0UTMFvBb9kuBRA-5LdejxQvmhylRUX|Cr|+&T(m$TKJ>bqQpH8;j$lPB7 zT8F>x9t~!MwGhr8E5)C6OV`5ZzU}Ko;e?G`WqMiAgVsr96gF!Um~Q(-H!BD8OdtPm zhnN5PX?4kRK^ymcuH`KP3v_6vxjwsyV076RSX;(>q8>bxWIxNXwt zEQ|JRKpg!v+l1jwWOYk%Oyuv9`Sms3vgyC6tsqq)VHoiL0h?~-UjP6A diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 9305e4b7bc284eb51238114f939c53e0dfa6e21d..3aa6912da73c2b6acf57756e0b224cb5659b213b 100644 GIT binary patch literal 16012 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 diff --git a/icons/turf/floors/carpet_blue.dmi b/icons/turf/floors/carpet_blue.dmi new file mode 100644 index 0000000000000000000000000000000000000000..f797be9745a628dd7b8ae9d58da66df63465187b GIT binary patch literal 7368 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 literal 0 HcmV?d00001 diff --git a/icons/turf/floors/carpet_cyan.dmi b/icons/turf/floors/carpet_cyan.dmi new file mode 100644 index 0000000000000000000000000000000000000000..feca351ca925de74d85304b194a01b5658bf2b9e GIT binary patch literal 2675 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 T^+Ec<0|3-L4EJW&aL#`Lg&v*> literal 0 HcmV?d00001 diff --git a/icons/turf/floors/carpet_green.dmi b/icons/turf/floors/carpet_green.dmi new file mode 100644 index 0000000000000000000000000000000000000000..fdd1f071f70fb1f77a6744a8ad5ae34252d6ae46 GIT binary patch literal 8705 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 literal 0 HcmV?d00001 diff --git a/icons/turf/floors/carpet_orange.dmi b/icons/turf/floors/carpet_orange.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ddf239b63b20e5df880c98bf49242783c2c6b711 GIT binary patch literal 7950 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 K|BJeH`2PV8C9)s@ literal 0 HcmV?d00001 diff --git a/icons/turf/floors/carpet_purple.dmi b/icons/turf/floors/carpet_purple.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c1f40ec7fa82be8d8ec33ee9b953d976514e8a03 GIT binary patch literal 6957 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 BcO?J- literal 0 HcmV?d00001 diff --git a/icons/turf/floors/carpet_royalblue.dmi b/icons/turf/floors/carpet_royalblue.dmi new file mode 100644 index 0000000000000000000000000000000000000000..841e49e957b69b02f0e7853edfe0f6679a8327cc GIT binary patch literal 3522 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 literal 0 HcmV?d00001 From 388db87515e1df21502540ab2bf79359fef98845 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Sat, 19 Oct 2019 13:54:30 -0700 Subject: [PATCH 05/10] fixes sprites again --- code/game/objects/structures/tables_racks.dm | 2 +- icons/obj/smooth_structures/plasma_window.dmi | Bin 6337 -> 1945 bytes .../smooth_structures/reinforced_window.dmi | Bin 9138 -> 2445 bytes .../obj/smooth_structures/rplasma_window.dmi | Bin 9413 -> 2292 bytes icons/obj/smooth_structures/table.dmi | Bin 670 -> 847 bytes icons/obj/smooth_structures/window.dmi | Bin 5063 -> 2088 bytes 6 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index cc653184..bec51dce 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -136,7 +136,7 @@ var/mob/living/carbon/human/H = pushed_mob SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table) -/* +/* You don't shove people onto a table frame. /obj/structure/table/shove_act(mob/living/target, mob/living/user) if(!target.resting) target.Knockdown(SHOVE_KNOCKDOWN_TABLE) diff --git a/icons/obj/smooth_structures/plasma_window.dmi b/icons/obj/smooth_structures/plasma_window.dmi index 3d57d156f01ee387039ced2296453ff901813391..5014c2a6ac365e6d0cf2cb97d6eb9184f4fa7a6a 100644 GIT binary patch delta 1739 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 QPT+Lh)HjA#=%OP23z6`+7XSbN diff --git a/icons/obj/smooth_structures/reinforced_window.dmi b/icons/obj/smooth_structures/reinforced_window.dmi index a1f60f0677ab6e9d3fcf6f438df428ecaa5f3bb0..d1e72b55275b89ef5e3459d625b37a9bec420739 100644 GIT binary patch delta 2242 zcmaJ?c{tSV8vYG4)+`5Q$%4!x*Ymvh{k+%v-uLtTekeux-Z&_g z;f!{`#^!Q{970r%YfA9U&U^?^mTo?9^W08O`VIZ+Os6_Za@R>~t9wO~zcKSvC@)^J zT#wNEa4sn-({76K7P1y6F7I)?kSy5h%gXAHiyU;{UbJTzqO0t5#c%hgNj)yH(AHb zW9F=2jTSi^RCO(OPPjbZI^dvUC{q;HTFDEEQP-lYheuGj1UhfUyuzg6_mAMhYrfOH zc{#vb_F)dO@lD#1$2J~DZYJk^B&-{>89^3#oR0}mRv3s-M?U+6E(ls11Ua{6zO;|7 zKG(kMwteJfG(y+#(EJ>7-9K){zAC!WT|B$a%8yg-zkr&sJjv?aoyU1=8KjkSKGfox zh+wbPt^K?V@8_)ermrnrENwi6)2?dGe&Bbai~3-&Ll2iKXQZ^*l7uORCAr8MVIy8f zjs&w&JsmkAVhDF}c3*2&43bsvNfbaOkH-`}J7WO4DyJ?-4u{oOTt5|ltkbQ_| zgW$Z19cSdt@ROsw!PV;+w{aGv{cx@@dLdY|Ua)K6ba-wUSk_y&8E--m!JT3jN#6?j zYd^FlsnTDtNA-JBvBwn(vfr1&?BY-LpL+zqa;pE}Z9y&Xu$=dybqvE!2zeW9!?-ni zJ(MkjEe9}!AG;N928xMA9yRA)aIhS;Um^+~oz8|(VQq*WC}uXFfWj#&hNMtQ8q5Pj z)chUqr9r7WqO8}c@Pk;7Ko%q@5go}@R=f$yl)1Vs9Q&)Hn7KJ~tGk1or+DuxFtT(^pxKe2;ix~n zQu=rIY6JM|mKF(q*M!@-?W`<&C^J*;qB@WP0T8>=dY+`&@v>|>4r5y73QFnmYW)SZ ztod+5)8SX$yJtN6HTp-G&c>XMFKB5eFIq!^4t^lNQ^9iE2_}d8sT%oMhp&s?5JZuL z%FbWfx?PVXb+27}NhdScMoGF_lkT-83siD33tS zBl&5*4O4%;?N2B8t?u2UI-v_9$6p}*9``L)J;?S80(;hVHD^P; zOzPpK39>+H)J)pr&zTXelOn+F8BW380vMo0e*`GZQ=E%_fXd{h>GA}6+`H;+0@>Ks zF{|VoQ6+VKaCt-y*TzH4U_XpwHY&2VKCIoZc?lc7MW3X^jPG9(4lT&uQo=}wP;og> zFyGF{S6e+g2?ubbt%A51;XJ-eGrp%mD7@Pxo@ zQoE|Xj(jvoOg)nTUJ9LeCXa6gz6IXzuGblzE^VATHvW%$5jy~aFubP24_}Dc2T~+e zBhl9NoxfU~_z7)MXPOl6CX4xJcFm z)u&gbJZaec2Fc0Y2i;RYss1Y(9pRLdgy&?2DuhdHu3jTIK#RuSC62DBN&!P(c%4a> zErKl%zHhDXOQJWB&Rf!9O;tpr3foFb)Zi*6-8chIsp~_Rl}o01sqSLia_pK;vGi~S zdq=;wSb6&PY(Bn3pIWN0o;00NsbH>2;awc`NqtGZP?}d(Co-doOj5$kI)ZkJ5l4O| z2B0PCuaI$t6(SQltr{=h%Rs=2eX}wk=Pk|6Qo%B736}!qtTUloTb#vfwNxpdVg@II ziUX;1+d}x^7aug3_NrHm`?sPEe94C73M3)%dsF-__Sa}i(4A^n`&9YRebcXk@A|$I z#S>|6?w_AtRszdl_wPoztbJ(qXlrMLL?XwYN;d~f*3@K&c%+}Np>i`FWtvQqT5Lz)-oFk4Sa^O3SYyk-7<3NZ@bK^j??BghBNldY7+^ Zttj;647~0W)MNsp<$S;$UE%1T_y;X2OR@j} literal 9138 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 dQVIYguZ)M)6I7C>yllb&WF!>DD@Bch{s)5gnL zF}T8trN@VhlXa(%y_8s?F&u3lV&D<%9^`W)#3wKS0Ky8>$aOrgPVx8B9ZKd+JW**R zWtsb0(lyp`c}CvmHa^asKb1PtC%?{->20|Iucj?0GI9x#gRU7k6D+9^;i{~7@(RN1 zF(0|H5T#5CQ=2dm5F1{~R6Chfs5IbzSV*vdXz+MzjF39h@K0KKhVQVwlOR+n7=q7&MAFf#0nfHLUuF$gHOFL7x zgYuhf`HIn+O63z5<6oUkYc*J($e*+t4cQ3TY^K>6>z@w^++EoByX);4D9e1$zy|JJ z_BikbxDpCRM?Z47$VT2w`c%beZr9Ob&X&Z6OHu_JZJ+Baq&S}L%nj09F1AM$IkAfG zDE=E5+0-AngB-bM0dqQOg6Bsah`yQbzgXrI!Z?8H&Kpq*DO z?kKDLAA-c%38O%N3z-zB?!0t8?nkZU`I;o|spsknQHX3rrh#g-w3*_OOt!7Mb&&yf zW1X4`z5KdexX{*W=whQ^&G;8r0Q#w&0FKgQLT(6>_8~7CH8IxYr33NI{K(Tbmaj#- zc%C&i3(b6>Mk1IYew+N9Bhho!9O~2LJMko5>dcE@k2n()RTDrOmEIMu5cEqRSGA21 zT;+z~-{^JD1ZkAwh=0O!OC4CtDi~J_0of1a+BChY1uM7$DL1~&AS;<$%Y6<=-7_V;>Ra~}kC9#_G^d)MYSp*>B__vfp)6V|KxD$$`HJG~?EJ&WS@ zZM)zCg=$`Ko>xfEUi^$wyM6G5Vs4PiIlQFe)d>^g=e!(6U)BrT$_uPT1JOjJq`TUI zeJii6?6}XWV76Qd_rVgejc-eTb{rk+=xEE)uoxhT{b70>4Q?(%<=A!7;yyFu!^b)x z29o;k_CJE|6lKuRztxGZ>bYR#%PZfL0iNKk7M(L_>N4`Qbn^e`Ap|xl>#6Bp9a>h@ zoK4?iE{WhT3cd!i#e=RIAg@cL8)Bs9W0T899miMqHqL40X97cva`k2s)Oy_)N5hO zpa&V)TBN;7$s~^$!0SZ+8ZlfwF%!a3d~5!^KV4qh^(QV(z}r7imB80wm*bXhwqDWf zRkkya~))_4|w5#NQm!Z|rzq8gYRNOI-JRqS*7GM`x~XcVLCNXSu~V^*yM3hay#u9j%w>VhF#V zH~bhj_q31p{8dfr7!ZfwE({K`KvktaI_09hi`%6?Mon0HEZmlZPl@{}CJ+pay@;zi zS~yo#&&bA?-*L$(5y;)9T4AKw%@PikEqizpH0}$_t}ID4pstm~P)4*fX&P!|9Iu*h zN!GX@wM<#g=PxNRuMmL!nDVq{F?mA)NwHKGCClDY#^g|_#9qnne^Bi&1}(}nt0~>z zhp7|+3{`|sz_|*s&hb5nBCu^4t0dJw1&b9=E^jd-qr6Z+?5*xfq8BVH`0SAYoMl@g zCG$S&YQ4Fzz3(={Cy1Ok8uUH-rpI;NsDa>@MpBrEe8q#AV#fIy=c0)}XH$(VJZ< zI#~nG)e9Yjt@t%@W=336=(~HwEq{J39x+1sna?Evxw1%?#7XuYB3o9RGg%;<`xGMv zo%*0Aesn!%E&9chJ@Bhj=C;;hcvp;aKdVhT=LYk^&)vG(oFlVvsEcwWQ+>667Jek4 zi--`^-k%};sLsu&;{I)?@&=Qx1JYvPxJxvXue{HBAF6A3%vN5370{O44AM5sSax?=g zk@bxMObsm!NS9q=eh2m|Gadi{ literal 9413 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 LDN0sL7zh0?Gni{+ diff --git a/icons/obj/smooth_structures/table.dmi b/icons/obj/smooth_structures/table.dmi index ffd88a84fc7aacfa166c1b32e9415aca155202a4..17f5be5684e4414da4d24452153cf3cb28f4e40b 100644 GIT binary patch delta 625 zcmV-%0*?Kj1(Yk}js@a~c#oG+>^ za9o>}IZ2q8;2w0e*@b2xSX&M-BqnpoyCVbIcmR!?>LSJP;5-#;c zc_ImC`l3up!h7vi$ty)T8QC$}Y^H)ipN>3*X*%}JQF2>hCNbu=!b)PyZG}RNeRGtY zg)C%$;Yox&=dd4SAq!c^!ea;z{Q_w^CbT+X{7sgXdf@`^6OB~W*cyWOiALnw@BZS@_dWL+_tK!o1ww zP+Er%7K$DgvXF%=RD_{to8a?dF?{4OGxmDbL+U3)!cE;n>L-L;sH@(40HN$Jr1uj% zV&Sg8kl0U%ghC;Ra5)r()K7?nv!N!WenKQ1`U{EugphRa!)W*hk7XjIyEN<`00000 LNkvXXu0mjfMLa6z delta 447 zcmV;w0YLuG2A&0wBq113OjJd{z`#L4L413Asi~>R$jFe8kX~M1z`(#IFjpv%PRV}( zdPzhj-7$+gp|3A9)O9f4# zgvX;dQ(n{U2w+^p+x=hFfFZ5n?Y8RE09N{7tIhxc0=x@oe1rOe0B->IR zU`o>WlGL?e&eEMj>Hq-(yafEs4c0OM0RjYg3V8Shyum1g`~OO%B!T5Rv6-AD(6ILk z5Fo%qz}`<#v;#OGxGd8CU|BEQF;KmSP)RZ8sCPLksm+S!yg1lBC>-qWLk@oq*N0(v zu=zZtchms_1PJi%p!N;w3j!P#Y_A7*g6*};PO!bpu^0UD2E7Mm9={Kp&v!2eTb}<9 z@D+(99$rW!9uM)SOyam{3lJbcfB@aWg~SD>8p$ka6 p&;=wTYdTNJL(dSNdY(|3H&zpK;BpQk(mwzI002ovPDHLkV1jko$?gCE diff --git a/icons/obj/smooth_structures/window.dmi b/icons/obj/smooth_structures/window.dmi index b680e44fa9012524705c6634da18cf673cf2648d..f184eb8d3c51420b51e164f4ea9946e16b90c4b3 100644 GIT binary patch delta 1889 zcmb7Ec{JPk7XJl#c|;e}6jfWPmWt5wC|VKA5c^g_sF>ok2Ej8zfl4qa`ESgpI@P%1a^P~M#uc6;_%k?XlT>IxyXv<-sNJ^Rzz z*u}oBd|%JaU%#-|{?*lX!ZjE-<-VvV|1%G`Qi;o}T9kaKy63tm~_rD~3+Iq!FfB>U^UX z*n+L4F87LN+OhQ1wc&AQb6c{)c-3&%6wl`Bi${6LRH>cCZ~meOu}1|QHM8V2IKY=# zhg(K(xNBSgBd914sS((0IQ}<4)wAhoTMSWH)i-zarAMwZ|Kp_L^O%KPH{B7CX_nnt z8YU6)kN5`!WElFX2Ns~&aB9ps?#0ajlc~3%@dJ#SipEA4(`>zP`j>FskzasGOu@;0 zt#gUx+{LKT)bwsbEa_>rbwEO@N7sU??QNPq*{%XmD3HM#sj-2TyLO5bO)|1gz=Rq^ffZMueE1b| zrW@>^rBjwvTHv{bHU}HK>v@zwWW-)U)<@RHpRES1>+OaeSX+gh89;$aHDiMbYHE}c zVv9d;cFtGhq5=7)Kt*#-*bf9z?{(~Z6JGr+#aFgD^jePa-HeD%Q#K$U_P<*gw0l3h z5GD4)3R~IgCw35ugqUT^6rcHH77&n!CH;He{pO{|<`7&kRB1nM;F-H=B;a$#ZUVks+3( z=*QQ-@<|P7$lY}Z@XI?(E{&Ebi;`H8Ugm_{OC{@tfD0c1ZPsXH>*M$`z{S4rRqUN4 z>67AG8GX|DPvP{JV5B+>>cv}UiXjR#_S+-M>;a1!3r%y(1_k%J}gEUTV|8`GaTKLl!i`XdG60r@}^Jd5-_Rw_Rd*8VJ zT9s^PdNTg>OO#G^SuiV;V52Q=_4D<9M0Nj(Pzw40|9$j1gY8Oj=PZgRR&rmWhgPPy z$+%NqYl+Z=n2f9!P5U|g^s;!gwwWMJp3oMU@EB&*@D8ppRu79i$Iav46((0$f%Z|` z>zZ|~c)JGXS$7jq4R_DKF;9RF#+pwILpZB50Q&r=#2vDT+U zZeGI9Zj9oIMNq^_u&aqyXmbrO@OtM9<9XUPZY>frRBTf^Oed5!0GGXf9+Dj3o=Q3C TGhB8N*bA(qhr>fVLdL%U(%OXY delta 4888 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 From ecd768fdc4724f80fa6ce372d30dca8c4db87e5a Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Sun, 20 Oct 2019 15:34:02 -0700 Subject: [PATCH 06/10] more surgery fixes --- code/modules/surgery/advanced/toxichealing.dm | 2 +- code/modules/surgery/embalming.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/surgery/advanced/toxichealing.dm b/code/modules/surgery/advanced/toxichealing.dm index 998ca47b..ae43b3d5 100644 --- a/code/modules/surgery/advanced/toxichealing.dm +++ b/code/modules/surgery/advanced/toxichealing.dm @@ -17,7 +17,7 @@ /datum/surgery_step/toxichealing name = "rejuvenate body" - implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) + implements = list(/obj/item/hemostat = 100, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) repeatable = TRUE time = 25 diff --git a/code/modules/surgery/embalming.dm b/code/modules/surgery/embalming.dm index d65abc9d..d0829bde 100644 --- a/code/modules/surgery/embalming.dm +++ b/code/modules/surgery/embalming.dm @@ -11,9 +11,9 @@ /datum/surgery_step/embalming name = "embalming body" - implements = list(/obj/item/reagent_containers/syringe = 100, /obj/item/pen = 30) + implements = list(/obj/item/reagent_containers/syringe = 100) time = 10 - chems_needed = list("drying_agent", "sterilizine") + chems_needed = list("drying_agent", "sterilizine","Formaldehyde") require_all_chems = FALSE /datum/surgery_step/embalming/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) From ac75adb2296a10d0acb79db68a32f04139272554 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Sun, 20 Oct 2019 16:00:25 -0700 Subject: [PATCH 07/10] fixes to embalming --- code/modules/surgery/embalming.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/surgery/embalming.dm b/code/modules/surgery/embalming.dm index d0829bde..45f02af5 100644 --- a/code/modules/surgery/embalming.dm +++ b/code/modules/surgery/embalming.dm @@ -11,9 +11,9 @@ /datum/surgery_step/embalming name = "embalming body" - implements = list(/obj/item/reagent_containers/syringe = 100) + implements = list(/obj/item/hemostat = 100) time = 10 - chems_needed = list("drying_agent", "sterilizine","Formaldehyde") + chems_needed = list("drying_agent","formaldehyde") require_all_chems = FALSE /datum/surgery_step/embalming/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) From 1544eafb4ff8f116be3b2ec537821273101f1784 Mon Sep 17 00:00:00 2001 From: Azarak Date: Mon, 4 Nov 2019 23:20:16 +0100 Subject: [PATCH 08/10] TG GENETICS AAAAAAAA aaaaaaaa --- code/__DEFINES/DNA.dm | 86 ++- code/__DEFINES/misc.dm | 2 +- code/__DEFINES/status_effects.dm | 2 + code/__DEFINES/traits.dm | 2 + code/__HELPERS/dna.dm | 12 + code/_globalvars/genetics.dm | 7 +- code/_onclick/telekinesis.dm | 6 +- code/controllers/subsystem/atoms.dm | 23 +- code/datums/datacore.dm | 1 - .../diseases/advance/symptoms/genetics.dm | 6 +- code/datums/dna.dm | 293 +++++++-- code/datums/mutations.dm | 136 ++-- code/datums/mutations/actions.dm | 169 +++++ code/datums/mutations/antenna.dm | 107 +++ code/datums/mutations/body.dm | 135 +++- code/datums/mutations/chameleon.dm | 5 +- code/datums/mutations/cold_resistance.dm | 31 +- code/datums/mutations/combined.dm | 24 + code/datums/mutations/hulk.dm | 11 +- code/datums/mutations/radioactive.dm | 19 + code/datums/mutations/sight.dm | 41 +- code/datums/mutations/speech.dm | 20 +- code/datums/mutations/telekinesis.dm | 14 +- code/datums/status_effects/debuffs.dm | 23 + .../weather/weather_types/radiation_storm.dm | 4 +- code/game/machinery/cloning.dm | 8 +- code/game/machinery/computer/cloning.dm | 2 +- code/game/machinery/computer/dna_console.dm | 618 ++++++++++++++---- code/game/machinery/exp_cloner.dm | 6 +- .../game/mecha/equipment/tools/other_tools.dm | 4 +- code/game/objects/items/chromosome.dm | 92 +++ .../circuitboards/machine_circuitboards.dm | 2 +- code/game/objects/items/devices/scanners.dm | 64 +- code/game/objects/items/dna_injector.dm | 244 ++++--- .../changeling/powers/chameleon_skin.dm | 11 +- code/modules/antagonists/revenant/revenant.dm | 2 +- .../revenant/revenant_abilities.dm | 29 +- .../antagonists/wishgranter/wishgranter.dm | 2 +- .../awaymissions/mission_code/wildwest.dm | 2 +- code/modules/client/asset_cache.dm | 8 + code/modules/events/disease_outbreak.dm | 2 +- code/modules/jobs/job_types/medical.dm | 1 + .../mining/lavaland/necropolis_chests.dm | 57 +- code/modules/mob/living/carbon/carbon.dm | 8 + .../mob/living/carbon/human/species.dm | 11 +- .../human/species_types/lizardpeople.dm | 1 + .../carbon/human/species_types/podpeople.dm | 4 +- code/modules/mob/living/carbon/life.dm | 7 +- code/modules/mob/living/carbon/monkey/life.dm | 2 +- code/modules/mob/transform_procs.dm | 10 +- .../chemistry/reagents/medicine_reagents.dm | 2 +- .../chemistry/reagents/toxin_reagents.dm | 4 +- .../research/designs/medical_designs.dm | 10 + code/modules/research/techweb/_techweb.dm | 1 + code/modules/research/techweb/all_nodes.dm | 2 +- code/modules/spells/spell_types/genetic.dm | 2 +- code/modules/spells/spell_types/telepathy.dm | 30 + .../spells/spell_types/touch_attacks.dm | 6 +- .../surgery/bodyparts/dismemberment.dm | 2 +- html/browser/scannernew.css | 21 + html/dna_discovered.gif | Bin 0 -> 48972 bytes html/dna_extra.gif | Bin 0 -> 48105 bytes html/dna_undiscovered.gif | Bin 0 -> 48198 bytes icons/effects/genetics.dmi | Bin 20768 -> 22667 bytes icons/mob/actions/actions_genetic.dmi | Bin 0 -> 413 bytes icons/mob/actions/actions_spells.dmi | Bin 21667 -> 24828 bytes icons/obj/chromosomes.dmi | Bin 0 -> 1090 bytes icons/obj/device.dmi | Bin 46646 -> 48379 bytes .../code/game/machinery/wishgranter.dm | 2 +- tgstation.dme | 7 + 70 files changed, 1963 insertions(+), 502 deletions(-) create mode 100644 code/__HELPERS/dna.dm create mode 100644 code/datums/mutations/actions.dm create mode 100644 code/datums/mutations/antenna.dm create mode 100644 code/datums/mutations/combined.dm create mode 100644 code/datums/mutations/radioactive.dm create mode 100644 code/game/objects/items/chromosome.dm create mode 100644 code/modules/spells/spell_types/telepathy.dm create mode 100644 html/dna_discovered.gif create mode 100644 html/dna_extra.gif create mode 100644 html/dna_undiscovered.gif create mode 100644 icons/mob/actions/actions_genetic.dmi create mode 100644 icons/obj/chromosomes.dmi diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 39f70246..068a5e3c 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -2,32 +2,45 @@ #define CHECK_DNA_AND_SPECIES(C) if((!(C.dna)) || (!(C.dna.species))) return -//Defines copying names of mutations in all cases, make sure to change this if you change mutation's name -#define HULK "Hulk" -#define XRAY "X Ray Vision" -#define COLDRES "Cold Resistance" -#define TK "Telekinesis" -#define NERVOUS "Nervousness" -#define EPILEPSY "Epilepsy" -#define MUTATE "Unstable DNA" -#define COUGH "Cough" -#define DWARFISM "Dwarfism" -#define CLOWNMUT "Clumsiness" -#define TOURETTES "Tourettes Syndrome" -#define DEAFMUT "Deafness" -#define BLINDMUT "Blindness" -#define RACEMUT "Monkified" -#define BADSIGHT "Near Sightness" -#define LASEREYES "Laser Eyes" -#define CHAMELEON "Chameleon" -#define WACKY "Wacky" -#define MUT_MUTE "Mute" -#define SMILE "Smile" -#define STONER "Stoner" -#define UNINTELLIGIBLE "Unintelligible" -#define SWEDISH "Swedish" -#define CHAV "Chav" -#define ELVIS "Elvis" +//Defines copying names of mutations in all cases, make sure to change this if you change mutation's type +#define HULK /datum/mutation/human/hulk +#define XRAY /datum/mutation/human/thermal/x_ray +#define SPACEMUT /datum/mutation/human/space_adaptation +#define TK /datum/mutation/human/telekinesis +#define NERVOUS /datum/mutation/human/nervousness +#define EPILEPSY /datum/mutation/human/epilepsy +#define MUTATE /datum/mutation/human/bad_dna +#define COUGH /datum/mutation/human/cough +#define DWARFISM /datum/mutation/human/dwarfism +#define CLOWNMUT /datum/mutation/human/clumsy +#define TOURETTES /datum/mutation/human/tourettes +#define DEAFMUT /datum/mutation/human/deaf +#define BLINDMUT /datum/mutation/human/blind +#define RACEMUT /datum/mutation/human/race +#define BADSIGHT /datum/mutation/human/nearsight +#define LASEREYES /datum/mutation/human/laser_eyes +#define CHAMELEON /datum/mutation/human/chameleon +#define WACKY /datum/mutation/human/wacky +#define MUT_MUTE /datum/mutation/human/mute +#define SMILE /datum/mutation/human/smile +#define STONER /datum/mutation/human/stoner +#define UNINTELLIGIBLE /datum/mutation/human/unintelligible +#define SWEDISH /datum/mutation/human/swedish +#define CHAV /datum/mutation/human/chav +#define ELVIS /datum/mutation/human/elvis +#define RADIOACTIVE /datum/mutation/human/radioactive +#define GLOWY /datum/mutation/human/glow +#define TELEPATHY /datum/mutation/human/telepathy +#define FIREBREATH /datum/mutation/human/firebreath +#define VOID /datum/mutation/human/void +#define STRONG /datum/mutation/human/strong +#define FIRESWEAT /datum/mutation/human/fire +#define THERMAL /datum/mutation/human/thermal +#define INSULATED /datum/mutation/human/insulated +#define SHOCKTOUCH /datum/mutation/human/shock +#define ANTENNA /datum/mutation/human/antenna +#define PARANOIA /datum/mutation/human/paranoia +#define MINDREAD /datum/mutation/human/mindreader #define UI_CHANGED "ui changed" #define UE_CHANGED "ue changed" @@ -39,10 +52,13 @@ //Types of usual mutations #define POSITIVE 1 #define NEGATIVE 2 -#define MINOR_NEGATIVE 3 +#define MINOR_NEGATIVE 4 -//Mutations that cant be taken from genetics and are not in SE -#define NON_SCANNABLE -1 + +//Mutation classes. Normal being on them, extra being additional mutations with instability and other being stuff you dont want people to fuck with like wizard mutate +#define MUT_NORMAL 1 +#define MUT_EXTRA 2 +#define MUT_OTHER 3 //DNA - Because fuck you and your magic numbers being all over the codebase. #define DNA_BLOCK_SIZE 3 @@ -63,7 +79,8 @@ #define DNA_MUTANTMARKING_BLOCK 13 #define DNA_TAUR_BLOCK 14 -#define DNA_STRUC_ENZYMES_BLOCKS 18 +#define DNA_SEQUENCE_LENGTH 4 +#define DNA_MUTATION_BLOCKS 8 #define DNA_UNIQUE_ENZYMES_LEN 32 //Transformation proc stuff @@ -126,4 +143,11 @@ ////organ defines #define STANDARD_ORGAN_THRESHOLD 100 #define STANDARD_ORGAN_HEALING 0.001 -#define STANDARD_ORGAN_DECAY 0.00222 //designed to fail organs when left to decay for ~15 minutes \ No newline at end of file +#define STANDARD_ORGAN_DECAY 0.00222 //designed to fail organs when left to decay for ~15 minutes + + + +//used for the can_chromosome var on mutations +#define CHROMOSOME_NEVER 0 +#define CHROMOSOME_NONE 1 +#define CHROMOSOME_USED 2 \ No newline at end of file diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 97886591..98d630b7 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -82,7 +82,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define HANDS_LAYER 3 #define BODY_FRONT_LAYER 2 #define FIRE_LAYER 1 //If you're on fire -#define TOTAL_LAYERS 30 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; +#define TOTAL_LAYERS 31 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; //Human Overlay Index Shortcuts for alternate_worn_layer, layers //Because I *KNOW* somebody will think layer+1 means "above" diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index fb4718d4..f5256122 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -91,3 +91,5 @@ #define STATUS_EFFECT_RAINBOWPROTECTION /datum/status_effect/rainbow_protection //Invulnerable and pacifistic #define STATUS_EFFECT_SLIMESKIN /datum/status_effect/slimeskin //Increased armor + +#define STATUS_EFFECT_DNA_MELT /datum/status_effect/dna_melt //usually does something horrible to you when you hit 100 genetic instability diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index ed000713..4cb885db 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -153,6 +153,8 @@ #define TRAIT_FRIENDLY "friendly" #define TRAIT_ASSBLASTUSA "assblastusa" #define TRAIT_CULT_EYES "cult_eyes" +#define TRAIT_XRAY_VISION "xray_vision" +#define TRAIT_THERMAL_VISION "thermal_vision" // common trait sources diff --git a/code/__HELPERS/dna.dm b/code/__HELPERS/dna.dm new file mode 100644 index 00000000..b366f9c4 --- /dev/null +++ b/code/__HELPERS/dna.dm @@ -0,0 +1,12 @@ +////////////////////////////////////////////////////////// +//A bunch of helpers to make genetics less of a headache// +////////////////////////////////////////////////////////// + +#define GET_INITIALIZED_MUTATION(A) GLOB.all_mutations[A] +#define GET_GENE_STRING(A, B) (B.mutation_index[A]) +#define GET_SEQUENCE(A) (GLOB.full_sequences[A]) + +#define GET_MUTATION_STABILIZER(A) ((A.stabilizer_coeff < 0) ? 1 : A.stabilizer_coeff) +#define GET_MUTATION_SYNCHRONIZER(A) ((A.synchronizer_coeff < 0) ? 1 : A.synchronizer_coeff) +#define GET_MUTATION_POWER(A) ((A.power_coeff < 0) ? 1 : A.power_coeff) +#define GET_MUTATION_ENERGY(A) ((A.energy_coeff < 0) ? 1 : A.energy_coeff) \ No newline at end of file diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm index 7016415d..3b16a4ad 100644 --- a/code/_globalvars/genetics.dm +++ b/code/_globalvars/genetics.dm @@ -21,8 +21,11 @@ GLOBAL_LIST(op_se_blocks) GLOBAL_VAR(NULLED_SE) GLOBAL_VAR(NULLED_UI) -GLOBAL_LIST_EMPTY(global_mutations) // list of hidden mutation things +GLOBAL_LIST_EMPTY(all_mutations) +GLOBAL_LIST_EMPTY(full_sequences) GLOBAL_LIST_EMPTY(bad_mutations) GLOBAL_LIST_EMPTY(good_mutations) -GLOBAL_LIST_EMPTY(not_good_mutations) \ No newline at end of file +GLOBAL_LIST_EMPTY(not_good_mutations) + +GLOBAL_LIST_EMPTY(mutation_recipes) \ No newline at end of file diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 12b1ca27..71ef48bb 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -1,12 +1,10 @@ /* Telekinesis - This needs more thinking out, but I might as well. */ /* Telekinetic attack: - By default, emulate the user's unarmed attack */ @@ -45,7 +43,6 @@ /* This is similar to item attack_self, but applies to anything that you can grab with a telekinetic grab. - It is used for manipulating things at range, for example, opening and closing closets. There are not a lot of defaults at this time, add more where appropriate. */ @@ -59,7 +56,6 @@ /* TK Grab Item (the workhorse of old TK) - * If you have not grabbed something, do a normal tk attack * If you have something, throw it at the target. If it is already adjacent, do a normal attackby() * If you click what you are holding, or attack_self(), do an attack_self_tk() on it. @@ -196,4 +192,4 @@ return (OXYLOSS) -#undef TK_MAXRANGE +#undef TK_MAXRANGE \ No newline at end of file diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index d94526e6..3aaa4a11 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -16,7 +16,7 @@ SUBSYSTEM_DEF(atoms) /datum/controller/subsystem/atoms/Initialize(timeofday) GLOB.fire_overlay.appearance_flags = RESET_COLOR - setupGenetics() //to set the mutations' place in structural enzymes, so monkey.initialize() knows where to put the monkey mutation. + setupGenetics() //to set the mutations' sequence initialized = INITIALIZATION_INNEW_MAPLOAD InitializeAtoms() return ..() @@ -108,16 +108,19 @@ SUBSYSTEM_DEF(atoms) BadInitializeCalls = SSatoms.BadInitializeCalls /datum/controller/subsystem/atoms/proc/setupGenetics() - var/list/avnums = new /list(DNA_STRUC_ENZYMES_BLOCKS) - for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++) - avnums[i] = i - CHECK_TICK - - for(var/A in subtypesof(/datum/mutation/human)) - var/datum/mutation/human/B = new A() - if(B.dna_block == NON_SCANNABLE) + var/list/mutations = subtypesof(/datum/mutation/human) + shuffle_inplace(mutations) + for(var/A in subtypesof(/datum/generecipe)) + var/datum/generecipe/GR = A + GLOB.mutation_recipes[initial(GR.required)] = initial(GR.result) + for(var/i in 1 to LAZYLEN(mutations)) + var/path = mutations[i] //byond gets pissy when we do it in one line + var/datum/mutation/human/B = new path () + B.alias = "Mutation #[i]" + GLOB.all_mutations[B.type] = B + GLOB.full_sequences[B.type] = generate_gene_sequence(B.blocks) + if(B.locked) continue - B.dna_block = pick_n_take(avnums) if(B.quality == POSITIVE) GLOB.good_mutations |= B else if(B.quality == NEGATIVE) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 3a2efb9d..8cfb84cb 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -277,7 +277,6 @@ L.fields["sex"] = H.gender L.fields["blood_type"] = H.dna.blood_type L.fields["b_dna"] = H.dna.unique_enzymes - L.fields["enzymes"] = H.dna.struc_enzymes L.fields["identity"] = H.dna.uni_identity L.fields["species"] = H.dna.species.type L.fields["features"] = H.dna.features diff --git a/code/datums/diseases/advance/symptoms/genetics.dm b/code/datums/diseases/advance/symptoms/genetics.dm index 7f21b03d..49b229e5 100644 --- a/code/datums/diseases/advance/symptoms/genetics.dm +++ b/code/datums/diseases/advance/symptoms/genetics.dm @@ -58,12 +58,12 @@ Bonus symptom_delay_max = 60 if(A.properties["resistance"] >= 8) //mutate twice power = 2 - possible_mutations = (GLOB.bad_mutations | GLOB.not_good_mutations) - GLOB.mutations_list[RACEMUT] + possible_mutations = (GLOB.bad_mutations | GLOB.not_good_mutations) - GLOB.all_mutations[RACEMUT] var/mob/living/carbon/M = A.affected_mob if(M) if(!M.has_dna()) return - archived_dna = M.dna.struc_enzymes + archived_dna = M.dna.mutation_index // Give them back their old DNA when cured. /datum/symptom/genetic_mutation/End(datum/disease/advance/A) @@ -74,5 +74,5 @@ Bonus if(M && archived_dna) if(!M.has_dna()) return - M.dna.struc_enzymes = archived_dna + M.dna.mutation_index = archived_dna M.domutcheck() diff --git a/code/datums/dna.dm b/code/datums/dna.dm index fe4b2dbe..e6f33680 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -2,7 +2,6 @@ /////////////////////////// DNA DATUM /datum/dna var/unique_enzymes - var/struc_enzymes var/uni_identity var/blood_type var/datum/species/species = new /datum/species/human //The type of mutant race the player is if applicable (i.e. potato-man) @@ -11,10 +10,13 @@ var/nameless = FALSE var/custom_species //siiiiigh I guess this is important var/list/mutations = list() //All mutations are from now on here - var/list/temporary_mutations = list() //Timers for temporary mutations + var/list/temporary_mutations = list() //Temporary changes to the UE var/list/previous = list() //For temporary name/ui/ue/blood_type modifications var/mob/living/holder var/delete_species = TRUE //Set to FALSE when a body is scanned by a cloner to fix #38875 + var/mutation_index[DNA_MUTATION_BLOCKS] //List of which mutations this carbon has and its assigned block + var/stability = 100 + var/scrambled = FALSE //Did we take something like mutagen? In that case we cant get our genes scanned to instantly cheese all the powers. /datum/dna/New(mob/living/new_holder) if(istype(new_holder)) @@ -53,11 +55,11 @@ H.give_genitals(TRUE)//This gives the body the genitals of this DNA. Used for any transformations based on DNA destination.flavor_text = destination.dna.features["flavor_text"] //Update the flavor_text to use new dna text if(transfer_SE) - destination.dna.struc_enzymes = struc_enzymes + destination.dna.mutation_index = mutation_index /datum/dna/proc/copy_dna(datum/dna/new_dna) new_dna.unique_enzymes = unique_enzymes - new_dna.struc_enzymes = struc_enzymes + new_dna.mutation_index = mutation_index new_dna.uni_identity = uni_identity new_dna.blood_type = blood_type new_dna.features = features.Copy() @@ -67,26 +69,32 @@ new_dna.custom_species = custom_species new_dna.mutations = mutations.Copy() -/datum/dna/proc/add_mutation(mutation_name) - var/datum/mutation/human/HM = GLOB.mutations_list[mutation_name] - HM.on_acquiring(holder) +//See mutation.dm for what 'class' does. 'time' is time till it removes itself in decimals. 0 for no timer +/datum/dna/proc/add_mutation(mutation, class = MUT_OTHER, time) + var/mutation_type = mutation + if(istype(mutation, /datum/mutation/human)) + var/datum/mutation/human/HM = mutation + mutation_type = HM.type + if(get_mutation(mutation_type)) + return + return force_give(new mutation_type (class, time, copymut = mutation)) -/datum/dna/proc/remove_mutation(mutation_name) - var/datum/mutation/human/HM = GLOB.mutations_list[mutation_name] - HM.on_losing(holder) +/datum/dna/proc/remove_mutation(mutation_type) + return force_lose(get_mutation(mutation_type)) -/datum/dna/proc/check_mutation(mutation_name) - var/datum/mutation/human/HM = GLOB.mutations_list[mutation_name] - return mutations.Find(HM) +/datum/dna/proc/check_mutation(mutation_type) + return get_mutation(mutation_type) -/datum/dna/proc/remove_all_mutations() - remove_mutation_group(mutations) +/datum/dna/proc/remove_all_mutations(list/classes = list(MUT_NORMAL, MUT_EXTRA, MUT_OTHER), mutadone = FALSE) + remove_mutation_group(mutations, classes, mutadone) + scrambled = FALSE -/datum/dna/proc/remove_mutation_group(list/group) +/datum/dna/proc/remove_mutation_group(list/group, list/classes = list(MUT_NORMAL, MUT_EXTRA, MUT_OTHER), mutadone = FALSE) if(!group) return for(var/datum/mutation/human/HM in group) - HM.force_lose(holder) + if((HM.class in classes) && !(HM.mutadone_proof && mutadone)) + force_lose(HM) /datum/dna/proc/generate_uni_identity() . = "" @@ -128,19 +136,49 @@ . += random_string(DNA_BLOCK_SIZE,GLOB.hex_characters) return . -/datum/dna/proc/generate_struc_enzymes() - var/list/sorting = new /list(DNA_STRUC_ENZYMES_BLOCKS) - var/result = "" - for(var/datum/mutation/human/A in GLOB.good_mutations + GLOB.bad_mutations + GLOB.not_good_mutations) - if(A.name == RACEMUT && ismonkey(holder)) - sorting[A.dna_block] = num2hex(A.lowest_value + rand(0, 256 * 6), DNA_BLOCK_SIZE) - mutations |= A - else - sorting[A.dna_block] = random_string(DNA_BLOCK_SIZE, list("0","1","2","3","4","5","6")) +/datum/dna/proc/generate_dna_blocks() + var/bonus + if(species && species.inert_mutation) + bonus = GET_INITIALIZED_MUTATION(species.inert_mutation) + var/list/mutations_temp = GLOB.good_mutations + GLOB.bad_mutations + GLOB.not_good_mutations + bonus + if(!LAZYLEN(mutations_temp)) + return + mutation_index.Cut() + shuffle_inplace(mutations_temp) + if(ismonkey(holder)) + mutations |= new RACEMUT(MUT_NORMAL) + mutation_index[RACEMUT] = GET_SEQUENCE(RACEMUT) + else + mutation_index[RACEMUT] = create_sequence(RACEMUT, FALSE) + for(var/i in 2 to DNA_MUTATION_BLOCKS) + var/datum/mutation/human/M = mutations_temp[i] + mutation_index[M.type] = create_sequence(M.type, FALSE,M.difficulty) + shuffle_inplace(mutation_index) - for(var/B in sorting) - result += B - return result +//Used to generate original gene sequences for every mutation +/proc/generate_gene_sequence(length=4) + var/static/list/active_sequences = list("AT","TA","GC","CG") + var/sequence + for(var/i in 1 to length*DNA_SEQUENCE_LENGTH) + sequence += pick(active_sequences) + return sequence + +//Used to create a chipped gene sequence +/proc/create_sequence(mutation, active, difficulty) + if(!difficulty) + var/datum/mutation/human/A = GET_INITIALIZED_MUTATION(mutation) //leaves the possibility to change difficulty mid-round + if(!A) + return + difficulty = A.difficulty + difficulty += rand(-2,4) + var/sequence = GET_SEQUENCE(mutation) + if(active) + return sequence + while(difficulty) + var/randnum = rand(1, length(sequence)) + sequence = copytext(sequence, 1, randnum) + "X" + copytext(sequence, randnum+1, length(sequence)+1) + difficulty-- + return sequence /datum/dna/proc/generate_unique_enzymes() . = "" @@ -185,12 +223,57 @@ if(DNA_TAUR_BLOCK) construct_block(GLOB.taur_list.Find(features["taur"]), GLOB.taur_list.len) +//Please use add_mutation or activate_mutation instead +/datum/dna/proc/force_give(datum/mutation/human/HM) + if(holder && HM) + if(HM.class == MUT_NORMAL) + set_se(1, HM) + . = HM.on_acquiring(holder) + if(.) + qdel(HM) + update_instability() + +//Use remove_mutation instead +/datum/dna/proc/force_lose(datum/mutation/human/HM) + if(holder && (HM in mutations)) + set_se(0, HM) + . = HM.on_losing(holder) + update_instability(FALSE) + return + /datum/dna/proc/is_same_as(datum/dna/D) - if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name && nameless == D.nameless && custom_species == D.custom_species) + if(uni_identity == D.uni_identity && mutation_index == D.mutation_index && real_name == D.real_name && nameless == D.nameless && custom_species == D.custom_species) if(species.type == D.species.type && features == D.features && blood_type == D.blood_type) return 1 return 0 +/datum/dna/proc/update_instability(alert=TRUE) + stability = 100 + for(var/datum/mutation/human/M in mutations) + if(M.class == MUT_EXTRA) + stability -= M.instability * GET_MUTATION_STABILIZER(M) + if(holder) + var/message + if(alert) + switch(stability) + if(70 to 90) + message = "You shiver." + if(60 to 69) + message = "You feel cold." + if(40 to 59) + message = "You feel sick." + if(20 to 39) + message = "It feels like your skin is moving." + if(1 to 19) + message = "You can feel your cells burning." + if(-INFINITY to 0) + message = "You can feel your DNA exploding, we need to do something fast!" + if(stability <= 0) + holder.apply_status_effect(STATUS_EFFECT_DNA_MELT) + if(message) + to_chat(holder, message) + + //used to update dna UI, UE, and dna.real_name. /datum/dna/proc/update_dna_identity() uni_identity = generate_uni_identity() @@ -201,7 +284,7 @@ blood_type = newblood_type unique_enzymes = generate_unique_enzymes() uni_identity = generate_uni_identity() - struc_enzymes = generate_struc_enzymes() + generate_dna_blocks() features = random_features() @@ -265,7 +348,7 @@ return dna -/mob/living/carbon/human/proc/hardset_dna(ui, se, newreal_name, newblood_type, datum/species/mrace, newfeatures) +/mob/living/carbon/human/proc/hardset_dna(ui, list/mutation_index, newreal_name, newblood_type, datum/species/mrace, newfeatures) if(newfeatures) dna.features = newfeatures @@ -287,8 +370,8 @@ dna.uni_identity = ui updateappearance(icon_update=0) - if(se) - dna.struc_enzymes = se + if(LAZYLEN(mutation_index)) + dna.mutation_index = mutation_index domutcheck() if(mrace || newfeatures || ui) @@ -331,19 +414,63 @@ /mob/proc/domutcheck() return -/mob/living/carbon/domutcheck(force_powers=0) //Set force_powers to 1 to bypass the power chance +/mob/living/carbon/domutcheck() if(!has_dna()) return - for(var/datum/mutation/human/A in GLOB.good_mutations | GLOB.bad_mutations | GLOB.not_good_mutations) - if(ismob(A.check_block(src, force_powers))) + for(var/mutation in dna.mutation_index) + if(ismob(dna.check_block(mutation))) return //we got monkeyized/humanized, this mob will be deleted, no need to continue. update_mutations_overlay() +/datum/dna/proc/check_block(mutation) + var/datum/mutation/human/HM = get_mutation(mutation) + if(check_block_string(mutation)) + if(!HM) + . = add_mutation(mutation, MUT_NORMAL) + return + return force_lose(HM) + +//Return the active mutation of a type if there is one +/datum/dna/proc/get_mutation(A) + for(var/datum/mutation/human/HM in mutations) + if(HM.type == A) + return HM + +/datum/dna/proc/check_block_string(mutation) + if((LAZYLEN(mutation_index) > DNA_MUTATION_BLOCKS) || !(mutation in mutation_index)) + return 0 + return is_gene_active(mutation) + +/datum/dna/proc/is_gene_active(mutation) + return (mutation_index[mutation] == GET_SEQUENCE(mutation)) + +/datum/dna/proc/set_se(on=TRUE, datum/mutation/human/HM) + if(!HM || !(HM.type in mutation_index) || (LAZYLEN(mutation_index) < DNA_MUTATION_BLOCKS)) + return + . = TRUE + if(on) + mutation_index[HM.type] = GET_SEQUENCE(HM.type) + else if(GET_SEQUENCE(HM.type) == mutation_index[HM.type]) + mutation_index[HM.type] = create_sequence(HM.type, FALSE, HM.difficulty) + +/datum/dna/proc/activate_mutation(mutation) //note that this returns a boolean and not a new mob + if(!mutation) + return FALSE + var/mutation_type = mutation + if(istype(mutation, /datum/mutation/human)) + var/datum/mutation/human/M = mutation + mutation_type = M.type + if(!mutation_in_sequence(mutation_type)) //cant activate what we dont have, use add_mutation + return FALSE + add_mutation(mutation, MUT_NORMAL) + return TRUE + /////////////////////////// DNA HELPER-PROCS ////////////////////////////// + /proc/getleftblocks(input,blocknumber,blocksize) if(blocknumber > 1) return copytext(input,1,((blocksize*blocknumber)-(blocksize-1))) @@ -360,29 +487,47 @@ return 0 return getleftblocks(istring, blocknumber, blocksize) + replacement + getrightblocks(istring, blocknumber, blocksize) +/datum/dna/proc/mutation_in_sequence(mutation) + if(!mutation) + return + if(istype(mutation, /datum/mutation/human)) + var/datum/mutation/human/HM = mutation + if(HM.type in mutation_index) + return TRUE + else if(mutation in mutation_index) + return TRUE + /mob/living/carbon/proc/randmut(list/candidates, difficulty = 2) if(!has_dna()) return - var/datum/mutation/human/num = pick(candidates) - . = num.force_give(src) + var/mutation = pick(candidates) + . = dna.add_mutation(mutation) -/mob/living/carbon/proc/randmutb() +/mob/living/carbon/proc/easy_randmut(quality = POSITIVE + NEGATIVE + MINOR_NEGATIVE, scrambled = TRUE, sequence = TRUE, exclude_monkey = TRUE) if(!has_dna()) return - var/datum/mutation/human/HM = pick((GLOB.bad_mutations | GLOB.not_good_mutations) - GLOB.mutations_list[RACEMUT]) - . = HM.force_give(src) + var/list/mutations = list() + if(quality & POSITIVE) + mutations += GLOB.good_mutations + if(quality & NEGATIVE) + mutations += GLOB.bad_mutations + if(quality & MINOR_NEGATIVE) + mutations += GLOB.not_good_mutations + var/list/possible = list() + for(var/datum/mutation/human/A in mutations) + if((!sequence || dna.mutation_in_sequence(A.type)) && !dna.get_mutation(A.type)) + possible += A.type + if(exclude_monkey) + possible.Remove(RACEMUT) + if(LAZYLEN(possible)) + var/mutation = pick(possible) + . = dna.activate_mutation(mutation) + if(scrambled) + var/datum/mutation/human/HM = dna.get_mutation(mutation) + if(HM) + HM.scrambled = TRUE + return TRUE -/mob/living/carbon/proc/randmutg() - if(!has_dna()) - return - var/datum/mutation/human/HM = pick(GLOB.good_mutations) - . = HM.force_give(src) - -/mob/living/carbon/proc/randmutvg() - if(!has_dna()) - return - var/datum/mutation/human/HM = pick((GLOB.good_mutations) - GLOB.mutations_list[HULK] - GLOB.mutations_list[DWARFISM]) - . = HM.force_give(src) /mob/living/carbon/proc/randmuti() if(!has_dna()) @@ -405,9 +550,9 @@ if(!M.has_dna()) return 0 if(se) - for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++) + for(var/i=1, i<=DNA_MUTATION_BLOCKS, i++) if(prob(probability)) - M.dna.struc_enzymes = setblock(M.dna.struc_enzymes, i, random_string(DNA_BLOCK_SIZE, GLOB.hex_characters)) + M.dna.generate_dna_blocks() M.domutcheck() if(ui) for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) @@ -434,3 +579,41 @@ return value /////////////////////////// DNA HELPER-PROCS + +/mob/living/carbon/human/proc/something_horrible() + if(!has_dna()) //shouldn't ever happen anyway so it's just in really weird cases + return + if(dna.stability > 0) + return + var/instability = -dna.stability + dna.remove_all_mutations() + dna.stability = 100 + if(prob(max(70-instability,0))) + switch(rand(0,3)) //not complete and utter death + if(0) + monkeyize() + if(1) + gain_trauma(/datum/brain_trauma/severe/paralysis) + if(2) + corgize() + if(3) + to_chat(src, "Oh, we actually feel quite alright!") + else + switch(rand(0,3)) + if(0) + gib() + if(1) + dust() + + if(2) + death() + petrify(INFINITY) + if(3) + if(prob(90)) + var/obj/item/bodypart/BP = get_bodypart(pick(BODY_ZONE_CHEST,BODY_ZONE_HEAD)) + if(BP) + BP.dismember() + else + gib() + else + set_species(/datum/species/dullahan) \ No newline at end of file diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index efa248b4..9234e124 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -1,58 +1,55 @@ -GLOBAL_LIST_EMPTY(mutations_list) - /datum/mutation var/name -/datum/mutation/New() - GLOB.mutations_list[name] = src - /datum/mutation/human - var/dna_block + name = "mutation" + var/desc = "A mutation." + var/locked var/quality var/get_chance = 100 var/lowest_value = 256 * 8 var/text_gain_indication = "" var/text_lose_indication = "" var/list/mutable_appearance/visual_indicators = list() + var/obj/effect/proc_holder/spell/power var/layer_used = MUTATIONS_LAYER //which mutation layer to use var/list/species_allowed = list() //to restrict mutation to only certain species var/health_req //minimum health required to acquire the mutation var/limb_req //required limbs to acquire this mutation var/time_coeff = 1 //coefficient for timed mutations + var/datum/dna/dna + var/mob/living/carbon/human/owner + var/instability = 0 //instability the holder gets when the mutation is not native + var/blocks = 4 //Amount of those big blocks with gene sequences + var/difficulty = 8 //Amount of missing sequences. Sometimes it removes an entire pair for 2 points + var/timed = FALSE //Boolean to easily check if we're going to self destruct + var/alias //'Mutation #49', decided every round to get some form of distinction between undiscovered mutations + var/scrambled = FALSE //Wheter we can read it if it's active. To avoid cheesing with mutagen + var/class //Decides player accesibility, sorta + //MUT_NORMAL - A mutation that can be activated and deactived by completing a sequence + //MUT_EXTRA - A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before it's name in the mutation section of the dna console + //MUT_OTHER Cannot be interacted with by players through normal means. I.E. wizards mutate -/datum/mutation/human/proc/force_give(mob/living/carbon/human/owner) - set_block(owner) - . = on_acquiring(owner) + var/can_chromosome = CHROMOSOME_NONE //can we take chromosomes? 0: CHROMOSOME_NEVER never, 1:CHROMOSOME_NONE yeah, 2: CHROMOSOME_USED no, already have one + var/chromosome_name //purely cosmetic + var/modified = FALSE //ugly but we really don't want chromosomes and on_acquiring to overlap and apply double the powers + var/mutadone_proof = FALSE -/datum/mutation/human/proc/force_lose(mob/living/carbon/human/owner) - set_block(owner, 0) - . = on_losing(owner) + //Chromosome stuff - set to -1 to prevent people from changing it. Example: It'd be a waste to decrease cooldown on mutism + var/stabilizer_coeff = 1 //genetic stability coeff + var/synchronizer_coeff = -1 //makes the mutation hurt the user less + var/power_coeff = -1 //boosts mutation strength + var/energy_coeff = -1 //lowers mutation cooldown -/datum/mutation/human/proc/set_se(se_string, on = 1) - if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) - return - var/before = copytext(se_string, 1, ((dna_block - 1) * DNA_BLOCK_SIZE) + 1) - var/injection = num2hex(on ? rand(lowest_value, (256 * 16) - 1) : rand(0, lowest_value - 1), DNA_BLOCK_SIZE) - var/after = copytext(se_string, (dna_block * DNA_BLOCK_SIZE) + 1, 0) - return before + injection + after - -/datum/mutation/human/proc/set_block(mob/living/carbon/owner, on = 1) - if(owner && owner.has_dna()) - owner.dna.struc_enzymes = set_se(owner.dna.struc_enzymes, on) - -/datum/mutation/human/proc/check_block_string(se_string) - if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) - return 0 - if(hex2num(getblock(se_string, dna_block)) >= lowest_value) - return 1 - -/datum/mutation/human/proc/check_block(mob/living/carbon/human/owner, force_powers=0) - if(check_block_string(owner.dna.struc_enzymes)) - if(prob(get_chance)||force_powers) - . = on_acquiring(owner) - else - . = on_losing(owner) +/datum/mutation/human/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) + . = ..() + class = class_ + if(timer) + addtimer(CALLBACK(src, .proc/remove), timer) + timed = TRUE + if(copymut && istype(copymut, /datum/mutation/human)) + copy_mutation(copymut) /datum/mutation/human/proc/on_acquiring(mob/living/carbon/human/owner) if(!owner || !istype(owner) || owner.stat == DEAD || (src in owner.dna.mutations)) @@ -63,7 +60,8 @@ GLOBAL_LIST_EMPTY(mutations_list) return TRUE if(limb_req && !owner.get_bodypart(limb_req)) return TRUE - owner.dna.mutations.Add(src) + dna = owner.dna + dna.mutations += src if(text_gain_indication) to_chat(owner, text_gain_indication) if(visual_indicators.len) @@ -75,6 +73,10 @@ GLOBAL_LIST_EMPTY(mutations_list) owner.overlays_standing[layer_used] = mut_overlay owner.apply_overlay(layer_used) + grant_spell(owner) + if(!modified) + addtimer(CALLBACK(src, .proc/modify, 5)) //gonna want children calling ..() to run first + /datum/mutation/human/proc/get_visual_indicator(mob/living/carbon/human/owner) return @@ -102,26 +104,80 @@ GLOBAL_LIST_EMPTY(mutations_list) mut_overlay.Remove(get_visual_indicator(owner)) owner.overlays_standing[layer_used] = mut_overlay owner.apply_overlay(layer_used) + if(power) + owner.RemoveSpell(power) + qdel(src) return 0 return 1 +/datum/mutation/human/proc/say_mod(message) + if(message) + return message + +/datum/mutation/human/proc/get_spans() + return list() + /mob/living/carbon/proc/update_mutations_overlay() return /mob/living/carbon/human/update_mutations_overlay() for(var/datum/mutation/human/CM in dna.mutations) if(CM.species_allowed.len && !CM.species_allowed.Find(dna.species.id)) - CM.force_lose(src) //shouldn't have that mutation at all + dna.force_lose(CM) //shouldn't have that mutation at all continue if(CM.visual_indicators.len) var/list/mut_overlay = list() if(overlays_standing[CM.layer_used]) mut_overlay = overlays_standing[CM.layer_used] - var/mutable_appearance/V = CM.get_visual_indicator(src) + var/mutable_appearance/V = CM.get_visual_indicator() if(!mut_overlay.Find(V)) //either we lack the visual indicator or we have the wrong one remove_overlay(CM.layer_used) - for(var/mutable_appearance/MA in CM.visual_indicators) + for(var/mutable_appearance/MA in CM.visual_indicators[CM.type]) mut_overlay.Remove(MA) mut_overlay |= V overlays_standing[CM.layer_used] = mut_overlay apply_overlay(CM.layer_used) + + +/datum/mutation/human/proc/modify() //called when a genome is applied so we can properly update some stats without having to remove and reapply the mutation from someone + if(modified || !power || !owner) + return + power.charge_max *= GET_MUTATION_ENERGY(src) + power.charge_counter *= GET_MUTATION_ENERGY(src) + modified = TRUE + +/datum/mutation/human/proc/copy_mutation(datum/mutation/human/HM) + if(!HM) + return + chromosome_name = HM.chromosome_name + stabilizer_coeff = HM.stabilizer_coeff + synchronizer_coeff = HM.synchronizer_coeff + power_coeff = HM.power_coeff + energy_coeff = HM.energy_coeff + mutadone_proof = HM.mutadone_proof + can_chromosome = HM.can_chromosome + +/datum/mutation/human/proc/remove_chromosome() + stabilizer_coeff = initial(stabilizer_coeff) + synchronizer_coeff = initial(synchronizer_coeff) + power_coeff = initial(power_coeff) + energy_coeff = initial(energy_coeff) + mutadone_proof = initial(mutadone_proof) + can_chromosome = initial(can_chromosome) + chromosome_name = null + +/datum/mutation/human/proc/remove() + if(dna) + dna.force_lose(src) + else + qdel(src) + +/datum/mutation/human/proc/grant_spell(mob/living/carbon/human/owner) + if(!ispath(power) || !owner) + return FALSE + + power = new power() + power.action_background_icon_state = "bg_tech_blue_on" + power.panel = "Genetic" + owner.AddSpell(power) + return TRUE \ No newline at end of file diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm new file mode 100644 index 00000000..44187cc9 --- /dev/null +++ b/code/datums/mutations/actions.dm @@ -0,0 +1,169 @@ +/datum/mutation/human/telepathy + name = "Telepathy" + desc = "A rare mutation that allows the user to telepathically communicate to others." + quality = POSITIVE + text_gain_indication = "You can hear your own voice echoing in your mind!" + text_lose_indication = "You don't hear your mind echo anymore." + difficulty = 12 + power = /obj/effect/proc_holder/spell/targeted/telepathy/genetic + instability = 10 + energy_coeff = 1 + +/datum/mutation/human/telepathy/on_acquiring(mob/living/carbon/human/owner) + . = ..() + +/datum/mutation/human/telepathy/on_losing(mob/living/carbon/human/owner) + . = ..() + +/obj/effect/proc_holder/spell/targeted/telepathy/genetic + magic_check = FALSE + +/datum/mutation/human/firebreath + name = "Fire Breath" + desc = "An ancient mutation that gives lizards breath of fire." + quality = POSITIVE + difficulty = 12 + locked = TRUE + text_gain_indication = "Your throat is burning!" + text_lose_indication = "Your throat is cooling down." + power = /obj/effect/proc_holder/spell/aimed/firebreath + instability = 30 + energy_coeff = 1 + power_coeff = 1 + +/datum/mutation/human/firebreath/modify() + if(power) + var/obj/effect/proc_holder/spell/aimed/firebreath/S = power + S.strength = GET_MUTATION_POWER(src) + +/obj/effect/proc_holder/spell/aimed/firebreath + name = "Fire Breath" + desc = "You can breathe fire at a target." + school = "evocation" + charge_max = 1200 + clothes_req = FALSE + range = 20 + projectile_type = /obj/item/projectile/magic/aoe/fireball/firebreath + base_icon_state = "fireball" + action_icon_state = "fireball0" + sound = 'sound/magic/demon_dies.ogg' //horrifying lizard noises + active_msg = "You built up heat in your mouth." + deactive_msg = "You swallow the flame." + var/strength = 1 + +/obj/effect/proc_holder/spell/aimed/firebreath/before_cast(list/targets) + . = ..() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + if(C.is_mouth_covered()) + C.adjust_fire_stacks(2) + C.IgniteMob() + to_chat(C,"Something in front of your mouth caught fire!") + return FALSE + +/obj/effect/proc_holder/spell/aimed/firebreath/ready_projectile(obj/item/projectile/P, atom/target, mob/user, iteration) + if(!istype(P, /obj/item/projectile/magic/aoe/fireball)) + return + var/obj/item/projectile/magic/aoe/fireball/F = P + switch(strength) + if(1 to 3) + F.exp_light = strength-1 + if(4 to INFINITY) + F.exp_heavy = strength-3 + F.exp_fire += strength + + +/obj/item/projectile/magic/aoe/fireball/firebreath + name = "fire breath" + exp_heavy = 0 + exp_light = 0 + exp_flash = 0 + exp_fire= 4 + +/datum/mutation/human/void + name = "Void Magnet" + desc = "A rare genome that attracts odd forces not usually observed." + quality = MINOR_NEGATIVE //upsides and downsides + text_gain_indication = "You feel a heavy, dull force just beyond the walls watching you." + instability = 30 + power = /obj/effect/proc_holder/spell/self/void + energy_coeff = 1 + synchronizer_coeff = 1 + +/datum/mutation/human/void/on_life(mob/living/carbon/human/owner) + if(!isturf(owner.loc)) + return + if(prob((0.5+((100-dna.stability)/20))) * GET_MUTATION_SYNCHRONIZER(src)) //very rare, but enough to annoy you hopefully. +0.5 probability for every 10 points lost in stability + new /obj/effect/immortality_talisman/void(get_turf(owner), owner) + +/obj/effect/proc_holder/spell/self/void + name = "Convoke Void" //magic the gathering joke here + desc = "A rare genome that attracts odd forces not usually observed. May sometimes pull you in randomly." + school = "evocation" + clothes_req = FALSE + charge_max = 600 + invocation = "DOOOOOOOOOOOOOOOOOOOOM!!!" + invocation_type = "shout" + action_icon_state = "void_magnet" + var/in_use = FALSE //so it doesnt cast while you are already deep innit + +/obj/effect/proc_holder/spell/self/void/can_cast(mob/user = usr) + . = ..() + if(!isturf(user.loc)) + return FALSE + +/obj/effect/proc_holder/spell/self/void/cast(mob/user = usr) + . = ..() + new /obj/effect/immortality_talisman/void(get_turf(user), user) + +/datum/mutation/human/shock + name = "Shock Touch" + desc = "The affected can channel excess electricity through their hands without shocking themselves, allowing them to shock others." + quality = POSITIVE + locked = TRUE + difficulty = 16 + text_gain_indication = "You feel power flow through your hands." + text_lose_indication = "The energy in your hands subsides." + power = /obj/effect/proc_holder/spell/targeted/touch/shock + instability = 30 + +/obj/effect/proc_holder/spell/targeted/touch/shock + name = "Shock Touch" + desc = "Channel electricity to your hand to shock people with." + drawmessage = "You channel electricity into your hand." + dropmessage = "You let the electricity from your hand dissipate." + hand_path = /obj/item/melee/touch_attack/shock + charge_max = 400 + clothes_req = FALSE + action_icon_state = "zap" + +/obj/item/melee/touch_attack/shock + name = "\improper shock touch" + desc = "This is kind of like when you rub your feet on a shag rug so you can zap your friends, only a lot less safe." + catchphrase = null + on_use_sound = 'sound/weapons/zapbang.ogg' + icon_state = "zapper" + item_state = "zapper" + +/obj/item/melee/touch_attack/shock/afterattack(atom/target, mob/living/carbon/user, proximity) + if(!proximity || !isliving(target)) + return + if(iscarbon(target)) + var/mob/living/carbon/C = target + if(C.electrocute_act(15, user, 1, stun = 0))//doesnt stun. never let this stun + C.dropItemToGround(C.get_active_held_item()) + C.dropItemToGround(C.get_inactive_held_item()) + C.confused += 10 + C.visible_message("[user] electrocutes [target]!","[user] electrocutes you!") + return ..() + else + user.visible_message("[user] fails to electrocute [target]!") + return ..() + else if(isliving(target)) + var/mob/living/L = target + L.electrocute_act(15, user, 1, stun = 0) + L.visible_message("[user] electrocutes [target]!","[user] electrocutes you!") + return ..() + else + to_chat(user,"The electricity doesn't seem to affect [target]...") + return ..() \ No newline at end of file diff --git a/code/datums/mutations/antenna.dm b/code/datums/mutations/antenna.dm new file mode 100644 index 00000000..7e06a917 --- /dev/null +++ b/code/datums/mutations/antenna.dm @@ -0,0 +1,107 @@ +/datum/mutation/human/antenna + name = "Antenna" + desc = "The affected person sprouts an antenna. This is known to allow them to access common radio channels passively." + quality = POSITIVE + text_gain_indication = "You feel an antenna sprout from your forehead." + text_lose_indication = "Your antenna shrinks back down." + instability = 5 + difficulty = 8 + var/obj/item/implant/radio/antenna/linked_radio + +/obj/item/implant/radio/antenna + name = "internal antenna organ" + desc = "The internal organ part of the antenna. Science has not yet given it a good name." + icon = 'icons/obj/radio.dmi'//maybe make a unique sprite later. not important + icon_state = "walkietalkie" + +/obj/item/implant/radio/antenna/Initialize(mapload) + ..() + radio.name = "internal antenna" + +/datum/mutation/human/antenna/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + linked_radio = new(owner) + linked_radio.implant(owner, null, TRUE, TRUE) + +/datum/mutation/human/antenna/on_losing(mob/living/carbon/human/owner) + if(..()) + return + if(linked_radio) + linked_radio.Destroy() + +/datum/mutation/human/antenna/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) + ..() + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "antenna", -FRONT_MUTATIONS_LAYER+1))//-MUTATIONS_LAYER+1 + +/datum/mutation/human/antenna/get_visual_indicator(mob/living/carbon/human/owner) + return visual_indicators[type][1] + +/datum/mutation/human/mindreader + name = "Mind Reader" + desc = "The affected person can look into the recent memories of others." + quality = POSITIVE + text_gain_indication = "You hear distant voices at the corners of your mind." + text_lose_indication = "The distant voices fade." + power = /obj/effect/proc_holder/spell/targeted/mindread + instability = 40 + difficulty = 8 + locked = TRUE + +/obj/effect/proc_holder/spell/targeted/mindread + name = "Mindread" + desc = "Read the target's mind." + charge_max = 300 + range = 7 + clothes_req = FALSE + action_icon_state = "mindread" + +/obj/effect/proc_holder/spell/targeted/mindread/cast(list/targets, mob/living/carbon/human/user = usr) + for(var/mob/living/M in targets) + if(usr.anti_magic_check(FALSE, FALSE, TRUE, 0) || M.anti_magic_check(FALSE, FALSE, TRUE, 0)) + to_chat(usr, "As you reach out with your mind, you're suddenly stopped by a vision of a massive tinfoil wall that streches beyond visible range. It seems you've been foiled.") + return + if(M.stat == DEAD) + to_chat(user, "[M] is dead!") + return + if(M.mind) + to_chat(user, "You plunge into [M]'s mind...") + if(prob(20)) + to_chat(M, "You feel something foreign enter your mind.")//chance to alert the read-ee + var/list/recent_speech = list() + var/list/say_log = list() + var/log_source = M.logging + for(var/log_type in log_source)//this whole loop puts the read-ee's say logs into say_log in an easy to access way + var/nlog_type = text2num(log_type) + if(nlog_type & LOG_SAY) + var/list/reversed = log_source[log_type] + if(islist(reversed)) + say_log = reverseRange(reversed.Copy()) + break + if(LAZYLEN(say_log)) + for(var/spoken_memory in say_log) + if(recent_speech.len >= 3)//up to 3 random lines of speech, favoring more recent speech + break + if(prob(50)) + recent_speech[spoken_memory] = say_log[spoken_memory] + if(recent_speech.len) + to_chat(user, "You catch some drifting memories of their past conversations...") + for(var/spoken_memory in recent_speech) + to_chat(user, "[recent_speech[spoken_memory]]") + if(iscarbon(M)) + var/mob/living/carbon/human/H = M + to_chat(user, "You find that their intent is to [H.a_intent]...") + var/datum/dna/the_dna = H.has_dna() + if(the_dna) + to_chat(user, "You uncover that [H.p_their()] true identity is [the_dna.real_name].") + else + to_chat(user, "You can't find a mind to read inside of [M]!") + +/datum/mutation/human/mindreader/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) + ..() + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "antenna", -FRONT_MUTATIONS_LAYER+1)) + +/datum/mutation/human/mindreader/get_visual_indicator(mob/living/carbon/human/owner) + return visual_indicators[type][1] \ No newline at end of file diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index a32220aa..a64f4afd 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -3,16 +3,19 @@ //Epilepsy gives a very small chance to have a seizure every life tick, knocking you unconscious. /datum/mutation/human/epilepsy name = "Epilepsy" + desc = "A genetic defect that sporadically causes seizures." quality = NEGATIVE text_gain_indication = "You get a headache." + synchronizer_coeff = 1 + power_coeff = 1 /datum/mutation/human/epilepsy/on_life(mob/living/carbon/human/owner) - if(prob(1) && owner.stat == CONSCIOUS) + if(prob(1 * GET_MUTATION_SYNCHRONIZER(src)) && owner.stat == CONSCIOUS) owner.visible_message("[owner] starts having a seizure!", "You have a seizure!") - owner.Unconscious(200) - owner.Jitter(1000) + owner.Unconscious(200 * GET_MUTATION_POWER(src)) + owner.Jitter(1000 * GET_MUTATION_POWER(src)) SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "epilepsy", /datum/mood_event/epilepsy) - addtimer(CALLBACK(src, .proc/jitter_less, owner), 90) + addtimer(CALLBACK(src, .proc/jitter_less), 90) /datum/mutation/human/epilepsy/proc/jitter_less(mob/living/carbon/human/owner) if(owner) @@ -22,19 +25,23 @@ //Unstable DNA induces random mutations! /datum/mutation/human/bad_dna name = "Unstable DNA" + desc = "Strange mutation that causes the holder to randomly mutate." quality = NEGATIVE text_gain_indication = "You feel strange." + locked = TRUE /datum/mutation/human/bad_dna/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return to_chat(owner, text_gain_indication) var/mob/new_mob if(prob(95)) if(prob(50)) - new_mob = owner.randmutb() + new_mob = owner.easy_randmut(NEGATIVE + MINOR_NEGATIVE) else new_mob = owner.randmuti() else - new_mob = owner.randmutg() + new_mob = owner.easy_randmut(POSITIVE) if(new_mob && ismob(new_mob)) owner = new_mob . = owner @@ -44,21 +51,31 @@ //Cough gives you a chronic cough that causes you to drop items. /datum/mutation/human/cough name = "Cough" + desc = "A chronic cough." quality = MINOR_NEGATIVE text_gain_indication = "You start coughing." + synchronizer_coeff = 1 + power_coeff = 1 /datum/mutation/human/cough/on_life(mob/living/carbon/human/owner) - if(prob(5) && owner.stat == CONSCIOUS) + if(prob(5 * GET_MUTATION_SYNCHRONIZER(src)) && owner.stat == CONSCIOUS) owner.drop_all_held_items() owner.emote("cough") + if(GET_MUTATION_POWER(src) > 1) + var/cough_range = GET_MUTATION_POWER(src) * 4 + var/turf/target = get_ranged_target_turf(owner, turn(owner.dir, 180), cough_range) + owner.throw_at(target, cough_range, GET_MUTATION_POWER(src)) + //Dwarfism shrinks your body and lets you pass tables. /datum/mutation/human/dwarfism name = "Dwarfism" + desc = "A mutation believed to be the cause of dwarfism." quality = POSITIVE - get_chance = 15 - lowest_value = 256 * 12 + difficulty = 16 + instability = 5 + locked = TRUE // Default intert species for now, so locked from regular pool. /datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -78,6 +95,7 @@ //Clumsiness has a very large amount of small drawbacks depending on item. /datum/mutation/human/clumsy name = "Clumsiness" + desc = "A genome that inhibits certain brain functions, causing the holder to appear clumsy. Honk" quality = MINOR_NEGATIVE text_gain_indication = "You feel lightheaded." @@ -95,11 +113,13 @@ //Tourettes causes you to randomly stand in place and shout. /datum/mutation/human/tourettes name = "Tourette's Syndrome" + desc = "A chronic twitch that forces the user to use colorful language." quality = NEGATIVE text_gain_indication = "You twitch." + synchronizer_coeff = 1 /datum/mutation/human/tourettes/on_life(mob/living/carbon/human/owner) - if(prob(10) && owner.stat == CONSCIOUS && !owner.IsStun()) + if(prob(10 * GET_MUTATION_SYNCHRONIZER(src)) && owner.stat == CONSCIOUS && !owner.IsStun()) owner.Stun(200) switch(rand(1, 3)) if(1) @@ -117,6 +137,7 @@ //Deafness makes you deaf. /datum/mutation/human/deaf name = "Deafness" + desc = "The holder of this genome is completely deaf." quality = NEGATIVE text_gain_indication = "You can't seem to hear anything." @@ -134,8 +155,10 @@ //Monified turns you into a monkey. /datum/mutation/human/race name = "Monkified" + desc = "A strange genome, believing to be what differentiates monkeys from humans." quality = NEGATIVE time_coeff = 2 + locked = TRUE //Species specific, keep out of actual gene pool /datum/mutation/human/race/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -145,3 +168,95 @@ /datum/mutation/human/race/on_losing(mob/living/carbon/monkey/owner) if(owner && istype(owner) && owner.stat != DEAD && (owner.dna.mutations.Remove(src))) . = owner.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) + + +/datum/mutation/human/glow + name = "Glowy" + desc = "You permanently emit a light with a random color and intensity." + quality = POSITIVE + text_gain_indication = "Your skin begins to glow softly." + instability = 5 + var/obj/effect/dummy/luminescent_glow/glowth //shamelessly copied from luminescents + var/glow = 1.5 + power_coeff = 1 + +/datum/mutation/human/glow/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + glowth = new(owner) + glowth.set_light(glow, glow, dna.features["mcolor"]) + +/datum/mutation/human/glow/modify(mob/living/carbon/human/owner) + if(glowth) + glowth.set_light(glow + GET_MUTATION_POWER(src) , glow + GET_MUTATION_POWER(src), dna.features["mcolor"]) + +/datum/mutation/human/glow/on_losing(mob/living/carbon/human/owner) + if(..()) + return + qdel(glowth) + +/datum/mutation/human/strong + name = "Strength" + desc = "The user's muscles slightly expand." + quality = POSITIVE + text_gain_indication = "You feel strong." + difficulty = 16 + +/datum/mutation/human/fire + name = "Fiery Sweat" + desc = "The user's skin will randomly combust, but is generally alot more resilient to burning." + quality = NEGATIVE + text_gain_indication = "You feel hot." + text_lose_indication = "You feel a lot cooler." + difficulty = 14 + synchronizer_coeff = 1 + power_coeff = 1 + +/datum/mutation/human/fire/on_life(mob/living/carbon/human/owner) + if(prob((1+(100-dna.stability)/10)) * GET_MUTATION_SYNCHRONIZER(src)) + owner.adjust_fire_stacks(2 * GET_MUTATION_POWER(src)) + owner.IgniteMob() + +/datum/mutation/human/fire/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.physiology.burn_mod *= 0.5 + +/datum/mutation/human/fire/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.physiology.burn_mod *= 2 + +/datum/mutation/human/insulated + name = "Insulated" + desc = "The affected person does not conduct electricity." + quality = POSITIVE + text_gain_indication = "Your fingertips go numb." + text_lose_indication = "Your fingertips regain feeling." + difficulty = 16 + instability = 25 + +/datum/mutation/human/insulated/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + ADD_TRAIT(owner, TRAIT_SHOCKIMMUNE, "genetics") + +/datum/mutation/human/insulated/on_losing(mob/living/carbon/human/owner) + if(..()) + return + REMOVE_TRAIT(owner, TRAIT_SHOCKIMMUNE, "genetics") + +/datum/mutation/human/paranoia + name = "Paranoia" + desc = "Subject is easily terrified, and may suffer from hallucinations." + quality = NEGATIVE + text_gain_indication = "You feel screams echo through your mind..." + text_lose_indication = "The screaming in your mind fades." + +/datum/mutation/human/paranoia/on_life(mob/living/carbon/human/owner) + if(prob(5) && owner.stat == CONSCIOUS) + owner.emote("scream") + owner.jitteriness = min(max(0, owner.jitteriness + 5), 30) + if(prob(25)) + to_chat(owner,"You feel someone creeping in on you...") + owner.hallucination += 20 \ No newline at end of file diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm index da105109..7682351e 100644 --- a/code/datums/mutations/chameleon.dm +++ b/code/datums/mutations/chameleon.dm @@ -1,12 +1,13 @@ //Chameleon causes the owner to slowly become transparent when not moving. /datum/mutation/human/chameleon name = "Chameleon" + desc = "A genome that causes the holder's skin to become transparent over time." quality = POSITIVE - get_chance = 20 - lowest_value = 256 * 12 + difficulty = 16 text_gain_indication = "You feel one with your surroundings." text_lose_indication = "You feel oddly exposed." time_coeff = 5 + instability = 25 /datum/mutation/human/chameleon/on_acquiring(mob/living/carbon/human/owner) if(..()) diff --git a/code/datums/mutations/cold_resistance.dm b/code/datums/mutations/cold_resistance.dm index 3d8fbaba..4b6beb7b 100644 --- a/code/datums/mutations/cold_resistance.dm +++ b/code/datums/mutations/cold_resistance.dm @@ -1,32 +1,29 @@ //Cold Resistance gives your entire body an orange halo, and makes you immune to the effects of vacuum and cold. -/datum/mutation/human/cold_resistance - name = "Cold Resistance" +/datum/mutation/human/space_adaptation + name = "Space Adaptation" + desc = "A strange mutation that renders the host immune to the vacuum if space. Will still need an oxygen supply." quality = POSITIVE - get_chance = 25 - lowest_value = 256 * 12 + difficulty = 16 text_gain_indication = "Your body feels warm!" time_coeff = 5 + instability = 30 -/datum/mutation/human/cold_resistance/New() +/datum/mutation/human/space_adaptation/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) ..() - visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "fire", -MUTATIONS_LAYER) + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "fire", -MUTATIONS_LAYER)) -/datum/mutation/human/cold_resistance/get_visual_indicator(mob/living/carbon/human/owner) - return visual_indicators[1] +/datum/mutation/human/space_adaptation/get_visual_indicator(mob/living/carbon/human/owner) + return visual_indicators[type][1] -/datum/mutation/human/cold_resistance/on_acquiring(mob/living/carbon/human/owner) +/datum/mutation/human/space_adaptation/on_acquiring(mob/living/carbon/human/owner) if(..()) return ADD_TRAIT(owner, TRAIT_RESISTCOLD, "cold_resistance") -// ADD_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, "cold_resistance") CITADEL CHANGE + ADD_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, "cold_resistance") -/datum/mutation/human/cold_resistance/on_losing(mob/living/carbon/human/owner) +/datum/mutation/human/space_adaptation/on_losing(mob/living/carbon/human/owner) if(..()) return REMOVE_TRAIT(owner, TRAIT_RESISTCOLD, "cold_resistance") -// REMOVE_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, "cold_resistance") CITADEL CHANGE - -/datum/mutation/human/cold_resistance/on_life(mob/living/carbon/human/owner) - if(owner.getFireLoss()) - if(prob(1)) - owner.heal_bodypart_damage(0,1) //Is this really needed? + REMOVE_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, "cold_resistance") diff --git a/code/datums/mutations/combined.dm b/code/datums/mutations/combined.dm new file mode 100644 index 00000000..c166b013 --- /dev/null +++ b/code/datums/mutations/combined.dm @@ -0,0 +1,24 @@ +/datum/generecipe + var/required = "" //it hurts so bad but initial is not compatible with lists + var/result = null + +/proc/get_mixed_mutation(mutation1, mutation2) + if(!mutation1 || !mutation2) + return FALSE + if(mutation1 == mutation2) //this could otherwise be bad + return FALSE + for(var/A in GLOB.mutation_recipes) + if(findtext(A, "[mutation1]") && findtext(A, "[mutation2]")) + return GLOB.mutation_recipes[A] + +/datum/generecipe/x_ray + required = "/datum/mutation/human/thermal; /datum/mutation/human/radioactive" + result = /datum/mutation/human/thermal/x_ray + +/datum/generecipe/shock + required = "/datum/mutation/human/insulated; /datum/mutation/human/radioactive" + result = SHOCKTOUCH + +/datum/generecipe/mindread + required = "/datum/mutation/human/antenna; /datum/mutation/human/paranoia" + result = MINDREAD \ No newline at end of file diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 85cecca4..b6987959 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -1,12 +1,15 @@ //Hulk turns your skin green, and allows you to punch through walls. /datum/mutation/human/hulk name = "Hulk" + desc = "A poorly understood genome that causes the holder's muscles to expand, inhibit speech and gives the person a bad skin condition." quality = POSITIVE - get_chance = 15 - lowest_value = 256 * 12 + locked = TRUE + difficulty = 16 text_gain_indication = "Your muscles hurt!" species_allowed = list("human") //no skeleton/lizard hulk health_req = 25 + instability = 40 + locked = TRUE /datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -17,11 +20,11 @@ SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "hulk", /datum/mood_event/hulk) RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) -/datum/mutation/human/hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity) +/datum/mutation/human/hulk/on_attack_hand(atom/target, proximity) if(proximity) //no telekinetic hulk attack return target.attack_hulk(owner) -/datum/mutation/human/hulk/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/hulk/on_life() if(owner.health < 0) on_losing(owner) to_chat(owner, "You suddenly feel very weak.") diff --git a/code/datums/mutations/radioactive.dm b/code/datums/mutations/radioactive.dm new file mode 100644 index 00000000..88b276a8 --- /dev/null +++ b/code/datums/mutations/radioactive.dm @@ -0,0 +1,19 @@ +/datum/mutation/human/radioactive + name = "Radioactivity" + desc = "A volatile mutation that causes the host to sent out deadly beta radiation. This affects both the hosts and their surroundings." + quality = NEGATIVE + text_gain_indication = "You can feel it in your bones!" + time_coeff = 5 + instability = 5 + difficulty = 8 + +/datum/mutation/human/radioactive/on_life(mob/living/carbon/human/owner) + radiation_pulse(owner, 20) + +/datum/mutation/human/radioactive/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) + ..() + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "radiation", -MUTATIONS_LAYER)) + +/datum/mutation/human/radioactive/get_visual_indicator() + return visual_indicators[type][1] \ No newline at end of file diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index 1f23a929..c8bc1a15 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -1,6 +1,7 @@ //Nearsightedness restricts your vision by several tiles. /datum/mutation/human/nearsight name = "Near Sightness" + desc = "The holder of this mutation has poor eyesight." quality = MINOR_NEGATIVE text_gain_indication = "You can't see very well." @@ -18,6 +19,7 @@ //Blind makes you blind. Who knew? /datum/mutation/human/blind name = "Blindness" + desc = "Renders the subject completely blind." quality = NEGATIVE text_gain_indication = "You can't seem to see anything." @@ -32,43 +34,58 @@ owner.cure_blind(GENETIC_MUTATION) -//X-ray Vision lets you see through walls. -/datum/mutation/human/x_ray - name = "X Ray Vision" +///Thermal Vision lets you see mobs through walls +/datum/mutation/human/thermal + name = "Thermal Vision" + desc = "The user of this genome can visually percieve the unique human thermal signature." quality = POSITIVE - get_chance = 25 - lowest_value = 256 * 12 - text_gain_indication = "The walls suddenly disappear!" + difficulty = 18 + text_gain_indication = "You can see the heat rising off of your skin..." time_coeff = 2 + instability = 25 + var/visionflag = TRAIT_THERMAL_VISION -/datum/mutation/human/x_ray/on_acquiring(mob/living/carbon/human/owner) +/datum/mutation/human/thermal/on_acquiring(mob/living/carbon/human/owner) if(..()) return + ADD_TRAIT(owner, visionflag, GENETIC_MUTATION) owner.update_sight() -/datum/mutation/human/x_ray/on_losing(mob/living/carbon/human/owner) +/datum/mutation/human/thermal/on_losing(mob/living/carbon/human/owner) if(..()) return + REMOVE_TRAIT(owner, visionflag, GENETIC_MUTATION) owner.update_sight() +///X-ray Vision lets you see through walls. +/datum/mutation/human/thermal/x_ray + name = "X Ray Vision" + desc = "A strange genome that allows the user to see between the spaces of walls." //actual x-ray would mean you'd constantly be blasting rads, wich might be fun for later //hmb + text_gain_indication = "The walls suddenly disappear!" + instability = 35 + locked = TRUE + visionflag = TRAIT_XRAY_VISION + //Laser Eyes lets you shoot lasers from your eyes! /datum/mutation/human/laser_eyes name = "Laser Eyes" + desc = "Reflects concentrated light back from the eyes." quality = POSITIVE - dna_block = NON_SCANNABLE + locked = TRUE + difficulty = 16 text_gain_indication = "You feel pressure building up behind your eyes." layer_used = FRONT_MUTATIONS_LAYER limb_req = BODY_ZONE_HEAD -/datum/mutation/human/laser_eyes/New() +/datum/mutation/human/laser_eyes/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) ..() visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "lasereyes", -FRONT_MUTATIONS_LAYER) -/datum/mutation/human/laser_eyes/get_visual_indicator(mob/living/carbon/human/owner) +/datum/mutation/human/laser_eyes/get_visual_indicator() return visual_indicators[1] -/datum/mutation/human/laser_eyes/on_ranged_attack(mob/living/carbon/human/owner, atom/target, mouseparams) +/datum/mutation/human/laser_eyes/on_ranged_attack(atom/target, mouseparams) if(owner.a_intent == INTENT_HARM) owner.LaserEyes(target, mouseparams) diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index f02b7f18..5716b259 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -3,6 +3,7 @@ /datum/mutation/human/nervousness name = "Nervousness" + desc = "Causes the holder to stutter." quality = MINOR_NEGATIVE text_gain_indication = "You feel nervous." @@ -13,6 +14,7 @@ /datum/mutation/human/wacky name = "Wacky" + desc = "Unknown." quality = MINOR_NEGATIVE text_gain_indication = "You feel an off sensation in your voicebox." text_lose_indication = "The off sensation passes." @@ -34,6 +36,7 @@ /datum/mutation/human/mute name = "Mute" + desc = "Completely inhibits the vocal section of the brain." quality = NEGATIVE text_gain_indication = "You feel unable to express yourself at all." text_lose_indication = "You feel able to speak freely again." @@ -53,8 +56,8 @@ /datum/mutation/human/smile name = "Smile" + desc = "Causes the user to be in constant mania." quality = MINOR_NEGATIVE - dna_block = NON_SCANNABLE text_gain_indication = "You feel so happy. Nothing can be wrong with anything. :)" text_lose_indication = "Everything is terrible again. :(" @@ -120,8 +123,8 @@ /datum/mutation/human/unintelligible name = "Unintelligible" + desc = "Partially inhibits the vocal center of the brain, severely distorting speech." quality = NEGATIVE - dna_block = NON_SCANNABLE text_gain_indication = "You can't seem to form any coherent thoughts!" text_lose_indication = "Your mind feels more clear." @@ -140,8 +143,9 @@ /datum/mutation/human/swedish name = "Swedish" + desc = "A horrible mutation originating from the distant past. Thought to be eradicated after the incident in 2037." quality = MINOR_NEGATIVE - dna_block = NON_SCANNABLE + locked = TRUE text_gain_indication = "You feel Swedish, however that works." text_lose_indication = "The feeling of Swedishness passes." @@ -172,8 +176,8 @@ /datum/mutation/human/chav name = "Chav" + desc = "Unknown" quality = MINOR_NEGATIVE - dna_block = NON_SCANNABLE text_gain_indication = "Ye feel like a reet prat like, innit?" text_lose_indication = "You no longer feel like being rude and sassy." @@ -219,12 +223,13 @@ /datum/mutation/human/elvis name = "Elvis" + desc = "A terrifying mutation named after its 'patient-zero'." quality = MINOR_NEGATIVE - dna_block = NON_SCANNABLE + locked = TRUE text_gain_indication = "You feel pretty good, honeydoll." text_lose_indication = "You feel a little less conversation would be great." -/datum/mutation/human/elvis/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/elvis/on_life() switch(pick(1,2)) if(1) if(prob(15)) @@ -265,8 +270,9 @@ /datum/mutation/human/stoner name = "Stoner" + desc = "A common mutation that severely decreases intelligence." quality = NEGATIVE - dna_block = NON_SCANNABLE + locked = TRUE text_gain_indication = "You feel...totally chill, man!" text_lose_indication = "You feel like you have a better sense of time." diff --git a/code/datums/mutations/telekinesis.dm b/code/datums/mutations/telekinesis.dm index a5b15eac..b03ac040 100644 --- a/code/datums/mutations/telekinesis.dm +++ b/code/datums/mutations/telekinesis.dm @@ -1,18 +1,20 @@ //Telekinesis lets you interact with objects from range, and gives you a light blue halo around your head. /datum/mutation/human/telekinesis name = "Telekinesis" + desc = "A strange mutation that allows the holder to interact with objects through thought." quality = POSITIVE - get_chance = 20 - lowest_value = 256 * 12 + difficulty = 18 text_gain_indication = "You feel smarter!" limb_req = BODY_ZONE_HEAD + instability = 30 -/datum/mutation/human/telekinesis/New() +/datum/mutation/human/telekinesis/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) ..() - visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "telekinesishead", -MUTATIONS_LAYER) + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "telekinesishead", -MUTATIONS_LAYER)) /datum/mutation/human/telekinesis/get_visual_indicator(mob/living/carbon/human/owner) - return visual_indicators[1] + return visual_indicators[type][1] /datum/mutation/human/telekinesis/on_ranged_attack(mob/living/carbon/human/owner, atom/target) - target.attack_tk(owner) + target.attack_tk(owner) \ No newline at end of file diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index a470f814..c4a80c19 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -643,3 +643,26 @@ datum/status_effect/pacify addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, raw_message), 10) addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it qdel(src) + +/datum/status_effect/dna_melt + id = "dna_melt" + duration = 600 + status_type = STATUS_EFFECT_REPLACE + alert_type = /obj/screen/alert/status_effect/dna_melt + var/kill_either_way = FALSE //no amount of removing mutations is gonna save you now + +/datum/status_effect/dna_melt/on_creation(mob/living/new_owner, set_duration, updating_canmove) + . = ..() + to_chat(new_owner, "My body can't handle the mutations! I need to get my mutations removed fast!") + +/datum/status_effect/dna_melt/on_remove() + if(!ishuman(owner)) + owner.gib() //fuck you in particular + return + var/mob/living/carbon/human/H = owner + H.something_horrible(kill_either_way) + +/obj/screen/alert/status_effect/dna_melt + name = "Genetic Breakdown" + desc = "I don't feel so good. Your body can't handle the mutations! You have one minute to remove your mutations, or you will be met with a horrible fate." + icon_state = "dna_melt" \ No newline at end of file diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index f3b81180..d0fff8da 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -38,9 +38,9 @@ H.randmuti() if(prob(50)) if(prob(90)) - H.randmutb() + H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) else - H.randmutg() + H.easy_randmut(POSITIVE) H.domutcheck() L.rad_act(20) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index cc796fdc..5b7eff2b 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -80,6 +80,8 @@ name = "cloning data disk" icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk. var/list/fields = list() + var/list/mutations = list() + var/max_mutations = 6 var/read_only = 0 //Well,it's still a floppy disk //Disk stuff. @@ -127,7 +129,7 @@ return examine(user) //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, se, mindref, datum/species/mrace, list/features, factions, list/quirks) +/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, mutation_index, mindref, datum/species/mrace, list/features, factions, list/quirks) if(panel_open) return FALSE if(mess || attempting) @@ -161,10 +163,10 @@ var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) - H.hardset_dna(ui, se, H.real_name, null, mrace, features) + H.hardset_dna(ui, mutation_index, H.real_name, null, mrace, features) if(prob(50 - efficiency*10)) //Chance to give a bad mutation. - H.randmutb() //100% bad mutation. Can be cured with mutadone. + H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) //100% bad mutation. Can be cured with mutadone. H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment. occupant = H diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 47556c09..eceb6042 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -486,7 +486,7 @@ R.fields["id"] = copytext(md5(mob_occupant.real_name), 2, 6) R.fields["UE"] = dna.unique_enzymes R.fields["UI"] = dna.uni_identity - R.fields["SE"] = dna.struc_enzymes + R.fields["SE"] = dna.mutation_index R.fields["blood_type"] = dna.blood_type R.fields["features"] = dna.features R.fields["factions"] = mob_occupant.faction diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 9d495743..59c96299 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -1,14 +1,16 @@ #define INJECTOR_TIMEOUT 100 -#define REJUVENATORS_INJECT 15 -#define REJUVENATORS_MAX 90 #define NUMBER_OF_BUFFERS 3 +#define SCRAMBLE_TIMEOUT 600 +#define JOKER_TIMEOUT 12000 //20 minutes +#define JOKER_UPGRADE 1800 #define RADIATION_STRENGTH_MAX 15 -#define RADIATION_STRENGTH_MULTIPLIER 1 //larger has a more range +#define RADIATION_STRENGTH_MULTIPLIER 1 //larger has more range #define RADIATION_DURATION_MAX 30 #define RADIATION_ACCURACY_MULTIPLIER 3 //larger is less accurate + #define RADIATION_IRRADIATION_MULTIPLIER 1 //multiplier for how much radiation a test subject receives #define SCANNER_ACTION_SE 1 @@ -23,22 +25,33 @@ icon_keyboard = "med_key" density = TRUE circuit = /obj/item/circuitboard/computer/scan_consolenew - var/radduration = 2 - var/radstrength = 1 - var/list/buffer[NUMBER_OF_BUFFERS] - - var/injectorready = 0 //world timer cooldown var - var/current_screen = "mainmenu" - var/obj/machinery/dna_scannernew/connected = null - var/obj/item/disk/data/diskette = null - var/list/delayed_action = null use_power = IDLE_POWER_USE idle_power_usage = 10 active_power_usage = 400 - light_color = LIGHT_COLOR_BLUE + var/datum/techweb/stored_research + var/max_storage = 6 + var/combine + var/radduration = 2 + var/radstrength = 1 + var/max_chromosomes = 6 + + var/list/buffer[NUMBER_OF_BUFFERS] + var/list/stored_mutations = list() + var/list/stored_chromosomes = list() + + var/injectorready = 0 //world timer cooldown var + var/jokerready = 0 + var/scrambleready = 0 + var/current_screen = "mainmenu" + var/current_mutation //what block are we inspecting? only used when screen = "info" + var/current_storage //what storage block are we looking at? + var/obj/machinery/dna_scannernew/connected = null + var/obj/item/disk/data/diskette = null + var/list/delayed_action = null + /obj/machinery/computer/scan_consolenew/attackby(obj/item/I, mob/user, params) if (istype(I, /obj/item/disk/data)) //INSERT SOME DISKETTES if (!src.diskette) @@ -48,6 +61,28 @@ to_chat(user, "You insert [I].") src.updateUsrDialog() return + if (istype(I, /obj/item/chromosome)) + if(LAZYLEN(stored_chromosomes) < max_chromosomes) + I.forceMove(src) + stored_chromosomes += I + to_chat(user, "You insert [I].") + else + to_chat(user, "You cannot store any more chromosomes!") + return + if(istype(I, /obj/item/dnainjector/activator)) + var/obj/item/dnainjector/activator/A = I + if(A.used) + to_chat(user,"Recycled [I].") + if(A.research) + var/c_typepath = generate_chromosome() + var/obj/item/chromosome/CM = new c_typepath (drop_location()) + to_chat(user,"Recycled [I].") + if((LAZYLEN(stored_chromosomes) < max_chromosomes) && prob(60)) + CM.forceMove(src) + stored_chromosomes += CM + to_chat(user,"[capitalize(CM.name)] added to storage.") + qdel(I) + return else return ..() @@ -58,12 +93,26 @@ if(!isnull(connected)) break injectorready = world.time + INJECTOR_TIMEOUT + scrambleready = world.time + SCRAMBLE_TIMEOUT + jokerready = world.time + JOKER_TIMEOUT + + stored_research = SSresearch.science_tech + +/obj/machinery/computer/scan_consolenew/examine(mob/user) + ..() + if(jokerready < world.time) + to_chat(user, "JOKER algorithm available.") + else + to_chat(user, "JOKER algorithm available in about [round(0.00166666667 * (jokerready - world.time))] minutes.") /obj/machinery/computer/scan_consolenew/ui_interact(mob/user, last_change) . = ..() if(!user) return var/datum/browser/popup = new(user, "scannernew", "DNA Modifier Console", 800, 630) // Set up the popup browser window + if(user.client) + var/datum/asset/simple/assets = get_asset_datum(/datum/asset/simple/genetics) + assets.send(user.client) if(!(in_range(src, user) || issilicon(user))) popup.close() return @@ -88,8 +137,6 @@ occupant_status += "" occupant_status += "

Health:
[viable_occupant.health] %
" occupant_status += "
Radiation Level:
[viable_occupant.radiation/(RAD_MOB_SAFE/100)] %
" - var/rejuvenators = viable_occupant.reagents.get_reagent_amount("potass_iodide") - occupant_status += "
Rejuvenators:
[rejuvenators] units
" occupant_status += "
Unique Enzymes :
[viable_occupant.dna.unique_enzymes]
" occupant_status += "
Last Operation:
[last_change ? last_change : "----"]
" else @@ -147,28 +194,53 @@ buttons += "[connected.locked ? "Unlock" : "Lock"] Scanner" else buttons += "Open Scanner Lock Scanner" - if(viable_occupant) - buttons += "Inject Rejuvenators" + if(viable_occupant && (scrambleready < world.time)) + buttons += "Scramble DNA" else - buttons += "Inject Rejuvenators" + buttons += "Scramble DNA" if(diskette) - buttons += "Eject Disk" + buttons += "Disk" else - buttons += "Eject Disk" - if(current_screen == "buffer") - buttons += "Radiation Emitter Menu" + buttons += "Disk" + if(current_screen == "mutations") + buttons += "Mutations" else - buttons += "Buffer Menu" + buttons += "Mutations" + if((current_screen == "mainmenu") || !current_screen) + buttons += "Genetic Sequencer" + else + buttons += "Genetic Sequencer" + if(current_screen == "ui") + buttons += "Unique Identifiers" + else + buttons += "Unique Identifiers" switch(current_screen) if("working") temp_html += status temp_html += "

System Busy

" temp_html += "Working ... Please wait ([DisplayTimeText(radduration*10)])" - if("buffer") + if("ui") temp_html += status temp_html += buttons - temp_html += "

Buffer Menu

" + temp_html += "

Unique Identifiers

" + temp_html += "-- Output Level ++" + temp_html += "
-- Pulse Duration ++" + temp_html += "

Irradiate Subject

" + temp_html += "
Unique Identifier:
" + var/max_line_len = 7*DNA_BLOCK_SIZE + if(viable_occupant) + temp_html += "
1
" + var/len = length(viable_occupant.dna.uni_identity) + for(var/i=1, i<=len, i++) + temp_html += "[copytext(viable_occupant.dna.uni_identity,i,i+1)]" + if ((i % max_line_len) == 0) + temp_html += "
" + if((i % DNA_BLOCK_SIZE) == 0 && i < len) + temp_html += "
[(i / DNA_BLOCK_SIZE) + 1]
" + else + temp_html += "---------" + temp_html += "

Buffer Menu

" if(istype(buffer)) for(var/i=1, i<=buffer.len, i++) @@ -188,7 +260,6 @@ temp_html += "Save to Disk" else var/ui = buffer_slot["UI"] - var/se = buffer_slot["SE"] var/ue = buffer_slot["UE"] var/name = buffer_slot["name"] var/label = buffer_slot["label"] @@ -234,19 +305,6 @@ temp_html += "UI+UE Injector" else temp_html += "UI+UE Injector" - if(se) - temp_html += "
\tSE: [se] " - if(viable_occupant) - temp_html += "Occupant" - else - temp_html += "Occupant" - temp_html += "Occupant:Delayed" - if(injectorready < world.time ) - temp_html += "Injector" - else - temp_html += "Injector" - else - temp_html += "
\tSE: No Data" if(viable_occupant) temp_html += "
Save to Buffer" else @@ -260,48 +318,197 @@ temp_html += "Save to Disk" else temp_html += "Save to Disk" + if("disk") + temp_html += status + temp_html += buttons + if(diskette) + temp_html += "

[diskette.name]


" + temp_html += "Eject Disk
" + if(LAZYLEN(diskette.mutations)) + temp_html += "" + for(var/datum/mutation/human/A in diskette.mutations) + temp_html += "" + temp_html += "" + if(LAZYLEN(stored_mutations) < max_storage) + temp_html += "" + else + temp_html += "" + temp_html += "" + temp_html += "
[A.name]DeleteImportImport
" + else + temp_html += "
Load diskette to start ----------" + if("info") + if(LAZYLEN(stored_mutations)) + if(LAZYLEN(stored_mutations) >= current_storage) + var/datum/mutation/human/HM = stored_mutations[current_storage] + if(HM) + temp_html += display_sequence(HM.type, current_storage) + else + current_screen = "mainmenu" + if("mutations") + temp_html += status + temp_html += buttons + temp_html += "

Mutation Storage:

" + temp_html += "" + for(var/datum/mutation/human/HM in stored_mutations) + var/i = stored_mutations.Find(HM) + temp_html += "" + temp_html += "" + temp_html += "" + if(combine == HM.type) + temp_html += "" + else + temp_html += "" + temp_html += "
[HM.name]ExportDeleteCombine
Combine

" + temp_html += "

Chromosome Storage:

" + temp_html += "" + for(var/i in 1 to stored_chromosomes.len) + var/obj/item/chromosome/CM = stored_chromosomes[i] + temp_html += "
" + temp_html += "
[CM.name]
" else temp_html += status temp_html += buttons - temp_html += "

Radiation Emitter Menu

" - - temp_html += "-- Output Level ++" - temp_html += "
-- Pulse Duration ++" - - temp_html += "

Irradiate Subject

" - temp_html += "
Unique Identifier:
" - - var/max_line_len = 7*DNA_BLOCK_SIZE + temp_html += "
Genetic Sequence:

" if(viable_occupant) - temp_html += "
1
" - var/len = length(viable_occupant.dna.uni_identity) - for(var/i=1, i<=len, i++) - temp_html += "[copytext(viable_occupant.dna.uni_identity,i,i+1)]" - if ((i % max_line_len) == 0) - temp_html += "
" - if((i % DNA_BLOCK_SIZE) == 0 && i < len) - temp_html += "
[(i / DNA_BLOCK_SIZE) + 1]
" + if(viable_occupant) + for(var/A in get_mutation_list()) + temp_html += display_inactive_sequence(A) + temp_html += "
" + else + temp_html += "----" + if(viable_occupant && (current_mutation in get_mutation_list(viable_occupant))) + temp_html += display_sequence(current_mutation) + temp_html += "

" else - temp_html += "----" - temp_html += "

" - - temp_html += "
Structural Enzymes:
" - if(viable_occupant) - temp_html += "
1
" - var/len = length(viable_occupant.dna.struc_enzymes) - for(var/i=1, i<=len, i++) - temp_html += "[copytext(viable_occupant.dna.struc_enzymes,i,i+1)]" - if ((i % max_line_len) == 0) - temp_html += "
" - if((i % DNA_BLOCK_SIZE) == 0 && i < len) - temp_html += "
[(i / DNA_BLOCK_SIZE) + 1]
" - else - temp_html += "----" - temp_html += "
" + temp_html += "----------" popup.set_content(temp_html.Join()) popup.open() +/obj/machinery/computer/scan_consolenew/proc/display_inactive_sequence(mutation) + var/temp_html = "" + var/class = "unselected" + var/mob/living/carbon/viable_occupant = get_viable_occupant() + if(!viable_occupant) + return + + var/location = viable_occupant.dna.mutation_index.Find(mutation) //We do this because we dont want people using sysexp or similair tools to just read the mutations. + + if(!location) //Do this only when needed, dont make a list with mutations for every iteration if you dont need to + var/list/mutations = get_mutation_list(TRUE) + if(mutation in mutations) + location = mutations.Find(mutation) + if(mutation == current_mutation) + class = "selected" + if(location > DNA_MUTATION_BLOCKS) + temp_html += "Extra Mutation" + else if(mutation in stored_research.discovered_mutations) + temp_html += "Discovered Mutation" + else + temp_html += "Undiscovered" + return temp_html + +/obj/machinery/computer/scan_consolenew/proc/display_sequence(mutation, storage_slot) //Storage slot is for when viewing from the stored mutations + var/temp_html = "" + if(!mutation) + temp_html += "ERR-" + return + var/mut_name = "Unknown gene" + var/mut_desc = "No information available." + var/alias + var/discovered = FALSE + var/active = FALSE + var/scrambled = FALSE + var/instability + var/mob/living/carbon/viable_occupant = get_viable_occupant() + var/datum/mutation/human/HM = get_valid_mutation(mutation) + + if(viable_occupant) + var/datum/mutation/human/M = viable_occupant.dna.get_mutation(mutation) + if(M) + scrambled = M.scrambled + active = TRUE + var/datum/mutation/human/A = GET_INITIALIZED_MUTATION(mutation) + alias = A.alias + if(active && !scrambled) + discover(mutation) + if(stored_research && (mutation in stored_research.discovered_mutations)) + mut_name = A.name + mut_desc = A.desc + discovered = TRUE + instability = A.instability + var/extra + if(viable_occupant && !(storage_slot || viable_occupant.dna.mutation_in_sequence(mutation))) + extra = TRUE + + if(discovered && !scrambled) + var/mutcolor + switch(A.quality) + if(POSITIVE) + mutcolor = "good" + if(MINOR_NEGATIVE) + mutcolor = "average" + if(NEGATIVE) + mutcolor = "bad" + if(HM) + instability *= GET_MUTATION_STABILIZER(HM) + temp_html += "
[mut_name] ([alias])
" + temp_html += "
Instability : [round(instability)]
" + else + temp_html += "
[alias]
" + temp_html += "
[mut_desc]
" + if(active && !storage_slot) + if(HM?.can_chromosome && (HM in viable_occupant.dna.mutations)) + var/i = viable_occupant.dna.mutations.Find(HM) + var/chromosome_name = "----" + if(HM.chromosome_name) + chromosome_name = HM.chromosome_name + temp_html += "
Chromosome status: [chromosome_name]
" + temp_html += "
Sequence:

" + if(!scrambled) + for(var/block in 1 to A.blocks) + var/whole_sequence = get_valid_gene_string(mutation) + var/sequence = copytext(whole_sequence, 1+(block-1)*(DNA_SEQUENCE_LENGTH*2),(DNA_SEQUENCE_LENGTH*2*block+1)) + temp_html += "
" + for(var/i in 1 to DNA_SEQUENCE_LENGTH) + var/num = 1+(i-1)*2 + var/genenum = num+(DNA_SEQUENCE_LENGTH*2*(block-1)) + temp_html += "" + temp_html += "" + for(var/i in 1 to DNA_SEQUENCE_LENGTH) + temp_html += "" + temp_html += "" + for(var/i in 1 to DNA_SEQUENCE_LENGTH) + var/num = i*2 + var/genenum = num+(DNA_SEQUENCE_LENGTH*2*(block-1)) + temp_html += "" + temp_html += "
|
" + temp_html += "




" + else + temp_html = "
Sequence unreadable due to unpredictable mutation.
" + if((active || storage_slot) && (injectorready < world.time) && !scrambled) + temp_html += "Print Activator" + temp_html += "Print Mutator" + else + temp_html += "Print Activator" + temp_html += "Print Mutator" + temp_html += "
" + if(storage_slot) + temp_html += "Delete" + if((LAZYLEN(stored_mutations) < max_storage) && diskette && !diskette.read_only) + temp_html += "Export" + else + temp_html += "Export" + temp_html += "Back" + else if(active && !scrambled) + temp_html += "Store" + if(extra || scrambled) + temp_html += "Nullify" + else + temp_html += "Nullify" + temp_html += "
" + return temp_html /obj/machinery/computer/scan_consolenew/Topic(href, href_list) if(..()) @@ -340,13 +547,16 @@ radstrength = WRAP(num, 1, RADIATION_STRENGTH_MAX+1) if("screen") current_screen = href_list["text"] - if("rejuv") - if(viable_occupant && viable_occupant.reagents) - var/potassiodide_amount = viable_occupant.reagents.get_reagent_amount("potass_iodide") - var/can_add = max(min(REJUVENATORS_MAX - potassiodide_amount, REJUVENATORS_INJECT), 0) - viable_occupant.reagents.add_reagent("potass_iodide", can_add) + if("scramble") + if(viable_occupant && (scrambleready < world.time)) + viable_occupant.dna.remove_all_mutations(list(MUT_NORMAL, MUT_EXTRA)) + viable_occupant.dna.generate_dna_blocks() + scrambleready = world.time + SCRAMBLE_TIMEOUT + to_chat(usr,"DNA scrambled.") + viable_occupant.radiation += RADIATION_STRENGTH_MULTIPLIER*50/(connected.damage_coeff ** 2) + if("setbufferlabel") - var/text = sanitize(input(usr, "Input a new label:", "Input an Text", null) as text|null) + var/text = sanitize(input(usr, "Input a new label:", "Input a Text", null) as text|null) if(num && text) num = CLAMP(num, 1, NUMBER_OF_BUFFERS) var/list/buffer_slot = buffer[num] @@ -358,7 +568,6 @@ buffer[num] = list( "label"="Buffer[num]:[viable_occupant.real_name]", "UI"=viable_occupant.dna.uni_identity, - "SE"=viable_occupant.dna.struc_enzymes, "UE"=viable_occupant.dna.unique_enzymes, "name"=viable_occupant.real_name, "blood_type"=viable_occupant.dna.blood_type @@ -372,8 +581,6 @@ if("transferbuffer") if(num && viable_occupant) switch(href_list["text"]) //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove - if("se") - apply_buffer(SCANNER_ACTION_SE,num) if("ui") apply_buffer(SCANNER_ACTION_UI,num) if("ue") @@ -387,28 +594,6 @@ if(istype(buffer_slot)) var/obj/item/dnainjector/timed/I switch(href_list["text"]) - if("se") - if(buffer_slot["SE"]) - I = new /obj/item/dnainjector/timed(loc) - var/powers = 0 - for(var/datum/mutation/human/HM in GLOB.good_mutations + GLOB.bad_mutations + GLOB.not_good_mutations) - if(HM.check_block_string(buffer_slot["SE"])) - I.add_mutations.Add(HM) - if(HM in GLOB.good_mutations) - powers += 1 - if(HM in GLOB.bad_mutations + GLOB.not_good_mutations) - powers -= 1 //To prevent just unlocking everything to get all powers to a syringe for max tech - else - I.remove_mutations.Add(HM) - var/time_coeff - for(var/datum/mutation/human/HM in I.add_mutations) - if(!time_coeff) - time_coeff = HM.time_coeff - continue - time_coeff = min(time_coeff,HM.time_coeff) - if(connected) - I.duration = I.duration * time_coeff * connected.damage_coeff - I.damage_coeff = connected.damage_coeff if("ui") if(buffer_slot["UI"]) I = new /obj/item/dnainjector/timed(loc) @@ -447,7 +632,7 @@ if("setdelayed") if(num) delayed_action = list("action"=text2num(href_list["delayaction"]),"buffer"=num) - if("pulseui","pulsese") + if("pulseui") if(num && viable_occupant && connected) radduration = WRAP(radduration, 1, RADIATION_DURATION_MAX+1) radstrength = WRAP(radstrength, 1, RADIATION_STRENGTH_MAX+1) @@ -459,7 +644,7 @@ ui_interact(usr) sleep(radduration*10) - current_screen = "mainmenu" + current_screen = "ui" if(viable_occupant && connected && connected.occupant==viable_occupant) viable_occupant.radiation += (RADIATION_IRRADIATION_MULTIPLIER*radduration*radstrength)/(connected.damage_coeff ** 2) //Read comment in "transferbuffer" section above for explanation @@ -480,35 +665,173 @@ viable_occupant.dna.uni_identity = copytext(viable_occupant.dna.uni_identity, 1, num) + hex + copytext(viable_occupant.dna.uni_identity, num+1, 0) viable_occupant.updateappearance(mutations_overlay_update=1) - if("pulsese") - var/len = length(viable_occupant.dna.struc_enzymes) - num = WRAP(num, 1, len+1) - num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) - - var/block = round((num-1)/DNA_BLOCK_SIZE)+1 - var/subblock = num - block*DNA_BLOCK_SIZE - last_change = "SE #[block]-[subblock]; " - - var/hex = copytext(viable_occupant.dna.struc_enzymes, num, num+1) - last_change += "[hex]" - hex = scramble(hex, radstrength, radduration) - last_change += "->[hex]" - - viable_occupant.dna.struc_enzymes = copytext(viable_occupant.dna.struc_enzymes, 1, num) + hex + copytext(viable_occupant.dna.struc_enzymes, num+1, 0) - viable_occupant.domutcheck() else current_screen = "mainmenu" if(connected) connected.locked = locked_state + if("inspect") + if(viable_occupant) + var/list/mutations = get_mutation_list(TRUE) + if(current_mutation == mutations[num]) + current_mutation = null + else + current_mutation = mutations[num] + + if("inspectstorage") + current_storage = num + current_screen = "info" + if("savemut") + if(viable_occupant) + var/succes + if(LAZYLEN(stored_mutations) < max_storage) + var/mutation = text2path(href_list["path"]) + if(ispath(mutation, /datum/mutation/human)) //sanity checks + var/datum/mutation/human/HM = viable_occupant.dna.get_mutation(mutation) + if(HM) + var/datum/mutation/human/A = new HM.type() + A.copy_mutation(HM) + succes = TRUE + stored_mutations += A + to_chat(usr,"Mutation succesfully stored.") + if(!succes) //we can exactly return here + to_chat(usr,"Mutation storage is full.") + if("deletemut") + var/datum/mutation/human/HM = stored_mutations[num] + if(HM) + stored_mutations.Remove(HM) + qdel(HM) + current_screen = "mutations" + if("activator") + if(injectorready < world.time) + var/mutation = text2path(href_list["path"]) + if(ispath(mutation, /datum/mutation/human)) + var/datum/mutation/human/HM = get_valid_mutation(mutation) + if(HM) + var/obj/item/dnainjector/activator/I = new /obj/item/dnainjector/activator(loc) + I.add_mutations += new HM.type (copymut = HM) + I.name = "[HM.name] activator" + I.research = TRUE + if(connected) + I.damage_coeff = connected.damage_coeff*4 + injectorready = world.time + INJECTOR_TIMEOUT * (1 - 0.1 * connected.precision_coeff) //precision_coeff being the matter bin rating + else + injectorready = world.time + INJECTOR_TIMEOUT + if("mutator") + if(injectorready < world.time) + var/mutation = text2path(href_list["path"]) + if(ispath(mutation, /datum/mutation/human)) + var/datum/mutation/human/HM = get_valid_mutation(mutation) + if(HM) + var/obj/item/dnainjector/activator/I = new /obj/item/dnainjector/activator(loc) + I.add_mutations += new HM.type (copymut = HM) + I.doitanyway = TRUE + I.name = "[HM.name] injector" + if(connected) + I.damage_coeff = connected.damage_coeff + injectorready = world.time + INJECTOR_TIMEOUT * 5 * (1 - 0.1 * connected.precision_coeff) + else + injectorready = world.time + INJECTOR_TIMEOUT * 5 + if("nullify") + if(viable_occupant) + var/datum/mutation/human/A = viable_occupant.dna.get_mutation(current_mutation) + if(A && (!viable_occupant.dna.mutation_in_sequence(current_mutation) || A.scrambled)) + viable_occupant.dna.remove_mutation(current_mutation) + current_screen = "mainmenu" + current_mutation = null + if("pulsegene") + if(current_screen != "info") + var/path = text2path(href_list["path"]) + if(viable_occupant && num && (path in viable_occupant.dna.mutation_index)) + var/list/genes = list("A","T","G","C","X") + if(jokerready < world.time) + genes += "JOKER" + var/sequence = GET_GENE_STRING(path, viable_occupant.dna) + var/original = sequence[num] + var/new_gene = input("From [original] to-", "New block", original) as null|anything in genes + if(!new_gene) + new_gene = original + if(viable_occupant == get_viable_occupant()) //No cheesing + if((new_gene == "JOKER") && (jokerready < world.time)) + var/true_genes = GET_SEQUENCE(current_mutation) + new_gene = true_genes[num] + jokerready = world.time + JOKER_TIMEOUT - (JOKER_UPGRADE * (connected.precision_coeff-1)) + sequence = copytext(sequence, 1, num) + new_gene + copytext(sequence, num+1, length(sequence)+1) + viable_occupant.dna.mutation_index[path] = sequence + viable_occupant.radiation += RADIATION_STRENGTH_MULTIPLIER/connected.damage_coeff + viable_occupant.domutcheck() + if("exportdiskmut") + if(diskette && !diskette.read_only) + var/path = text2path(href_list["path"]) + if(ispath(path, /datum/mutation/human)) + var/datum/mutation/human/A = get_valid_mutation(path) + if(A && diskette && (LAZYLEN(diskette.mutations) < diskette.max_mutations)) + var/datum/mutation/human/HM = new A.type() + diskette.mutations += HM + HM.copy_mutation(A) + to_chat(usr, "Succesfully written [A.name] to [diskette.name].") + if("deletediskmut") + if(diskette && !diskette.read_only) + if(num && (LAZYLEN(diskette.mutations) >= num)) + var/datum/mutation/human/A = diskette.mutations[num] + diskette.mutations.Remove(A) + qdel(A) + if("importdiskmut") + if(diskette && (LAZYLEN(diskette.mutations) >= num)) + if(LAZYLEN(stored_mutations) < max_storage) + var/datum/mutation/human/A = diskette.mutations[num] + var/datum/mutation/human/HM = new A.type() + HM.copy_mutation(A) + stored_mutations += HM + to_chat(usr,"Succesfully written [A.name] to storage.") + if("combine") + if(num && (LAZYLEN(stored_mutations) >= num)) + if(LAZYLEN(stored_mutations) < max_storage) + var/datum/mutation/human/A = stored_mutations[num] + var/path = A.type + if(combine) + var/result_path = get_mixed_mutation(combine, path) + if(result_path) + stored_mutations += new result_path() + to_chat(usr, "Succes! New mutation has been added to storage") + discover(result_path) + combine = null + else + to_chat(usr, "Failed. No mutation could be created.") + combine = null + else + combine = path + to_chat(usr,"Selected [A.name] for combining") + else + to_chat(usr, "Not enough space to store potential mutation.") + if("ejectchromosome") + if(LAZYLEN(stored_chromosomes) <= num) + var/obj/item/chromosome/CM = stored_chromosomes[num] + CM.forceMove(drop_location()) + adjust_item_drop_location(CM) + stored_chromosomes -= CM + if("applychromosome") + if(viable_occupant && (LAZYLEN(viable_occupant.dna.mutations) <= num)) + var/datum/mutation/human/HM = viable_occupant.dna.mutations[num] + var/list/chromosomes = list() + for(var/obj/item/chromosome/CM in stored_chromosomes) + if(CM.can_apply(HM)) + chromosomes += CM + if(chromosomes.len) + var/obj/item/chromosome/CM = input("Select a chromosome to apply", "Apply Chromosome") as null|anything in sortNames(chromosomes) + if(CM) + to_chat(usr, "You apply [CM] to [HM.name].") + stored_chromosomes -= CM + CM.apply(HM) + ui_interact(usr,last_change) -/obj/machinery/computer/scan_consolenew/proc/scramble(input,rs,rd) +/obj/machinery/computer/scan_consolenew/proc/scramble(input,rs,rd) //hexadecimal genetics. dont confuse with scramble button var/length = length(input) var/ran = gaussian(0, rs*RADIATION_STRENGTH_MULTIPLIER) if(ran == 0) - ran = pick(-1,1) //hacky, statistically should almost never happen. 0-change makes people mad though + ran = pick(-1,1) //hacky, statistically should almost never happen. 0-chance makes people mad though else if(ran < 0) ran = round(ran) //negative, so floor it else @@ -537,10 +860,6 @@ //Each laser level reduces damage by lvl^2, so no effect on 1 lvl, 4 times less damage on 2 and 9 times less damage on 3 //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove switch(action) - if(SCANNER_ACTION_SE) - if(buffer_slot["SE"]) - viable_occupant.dna.struc_enzymes = buffer_slot["SE"] - viable_occupant.domutcheck() if(SCANNER_ACTION_UI) if(buffer_slot["UI"]) viable_occupant.dna.uni_identity = buffer_slot["UI"] @@ -562,15 +881,54 @@ viable_occupant.dna.blood_type = buffer_slot["blood_type"] /obj/machinery/computer/scan_consolenew/proc/on_scanner_close() - if(delayed_action && connected) + if(delayed_action && get_viable_occupant()) to_chat(connected.occupant, "[src] activates!") apply_buffer(delayed_action["action"],delayed_action["buffer"]) delayed_action = null //or make it stick + reset button ? +/obj/machinery/computer/scan_consolenew/proc/get_valid_mutation(mutation) + var/mob/living/carbon/C = get_viable_occupant() + if(C) + var/datum/mutation/human/HM = C.dna.get_mutation(mutation) + if(HM) + return HM + for(var/datum/mutation/human/A in stored_mutations) + if(A.type == mutation) + return A + + +/obj/machinery/computer/scan_consolenew/proc/get_mutation_list(include_storage) //Returns a list of the mutation index types and any extra mutations + var/mob/living/carbon/viable_occupant = get_viable_occupant() + var/list/paths = list() + if(viable_occupant) + for(var/A in viable_occupant.dna.mutation_index) + paths += A + for(var/datum/mutation/human/A in viable_occupant.dna.mutations) + if(A.class == MUT_EXTRA) + paths += A.type + if(include_storage) + for(var/datum/mutation/human/A in stored_mutations) + paths += A.type + return paths + +/obj/machinery/computer/scan_consolenew/proc/get_valid_gene_string(mutation) + var/mob/living/carbon/C = get_viable_occupant() + if(C && (mutation in C.dna.mutation_index)) + return GET_GENE_STRING(mutation, C.dna) + else if(C && (LAZYLEN(C.dna.mutations))) + for(var/datum/mutation/human/A in C.dna.mutations) + if(A.type == mutation) + return GET_SEQUENCE(mutation) + for(var/datum/mutation/human/A in stored_mutations) + if(A.type == mutation) + return GET_SEQUENCE(mutation) + +/obj/machinery/computer/scan_consolenew/proc/discover(mutation) + if(stored_research && !(mutation in stored_research.discovered_mutations)) + stored_research.discovered_mutations += mutation + return TRUE /////////////////////////// DNA MACHINES #undef INJECTOR_TIMEOUT -#undef REJUVENATORS_INJECT -#undef REJUVENATORS_MAX #undef NUMBER_OF_BUFFERS #undef RADIATION_STRENGTH_MAX diff --git a/code/game/machinery/exp_cloner.dm b/code/game/machinery/exp_cloner.dm index e8364d22..ffe66e68 100644 --- a/code/game/machinery/exp_cloner.dm +++ b/code/game/machinery/exp_cloner.dm @@ -26,9 +26,9 @@ var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) H.dna.remove_mutation_group(unclean_mutations) if(efficiency > 5 && prob(20)) - H.randmutvg() + H.easy_randmut(POSITIVE) if(efficiency < 3 && prob(50)) - var/mob/M = H.randmutb() + var/mob/M = H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) if(ismob(M)) H = M @@ -292,6 +292,6 @@ temp = "Cloning cycle already in progress." playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else - pod.growclone(null, mob_occupant.real_name, dna.uni_identity, dna.struc_enzymes, clone_species, dna.features, mob_occupant.faction) + pod.growclone(null, mob_occupant.real_name, dna.uni_identity, dna.mutation_index, clone_species, dna.features, mob_occupant.faction) temp = "[mob_occupant.real_name] => Cloning data sent to pod." playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index a8ba9850..56bd36a0 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -284,12 +284,12 @@ if(equip_ready) //disabled return var/area/A = get_area(chassis) - var/pow_chan = get_power_channel(A) + var/pow_chan = GET_MUTATION_POWER_channel(A) if(pow_chan) return 1000 //making magic -/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/proc/get_power_channel(var/area/A) +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/proc/GET_MUTATION_POWER_channel(var/area/A) var/pow_chan if(A) for(var/c in use_channels) diff --git a/code/game/objects/items/chromosome.dm b/code/game/objects/items/chromosome.dm new file mode 100644 index 00000000..01c22bb4 --- /dev/null +++ b/code/game/objects/items/chromosome.dm @@ -0,0 +1,92 @@ +/obj/item/chromosome + name = "blank chromosome" + icon = 'icons/obj/chromosomes.dmi' + icon_state = "" + desc = "A tube holding chromosomic data." + force = 0 + w_class = WEIGHT_CLASS_SMALL + + var/stabilizer_coeff = 1 //lower is better, affects genetic stability + var/synchronizer_coeff = 1 //lower is better, affects chance to backfire + var/power_coeff = 1 //higher is better, affects "strength" + var/energy_coeff = 1 //lower is better. affects recharge time + + var/weight = 5 + +/obj/item/chromosome/proc/can_apply(datum/mutation/human/HM) + if(!HM || !(HM.can_chromosome == CHROMOSOME_NONE)) + return FALSE + if((stabilizer_coeff != 1) && (HM.stabilizer_coeff != -1)) //if the chromosome is 1, we dont change anything. If the mutation is -1, we cant change it. sorry + return TRUE + if((synchronizer_coeff != 1) && (HM.synchronizer_coeff != -1)) + return TRUE + if((power_coeff != 1) && (HM.power_coeff != -1)) + return TRUE + if((energy_coeff != 1) && (HM.energy_coeff != -1)) + return TRUE + +/obj/item/chromosome/proc/apply(datum/mutation/human/HM) + if(HM.stabilizer_coeff != -1) + HM.stabilizer_coeff = stabilizer_coeff + if(HM.synchronizer_coeff != -1) + HM.synchronizer_coeff = synchronizer_coeff + if(HM.power_coeff != -1) + HM.power_coeff = power_coeff + if(HM.energy_coeff != -1) + HM.energy_coeff = energy_coeff + HM.can_chromosome = 2 + HM.chromosome_name = name + HM.modify() + qdel(src) + +/proc/generate_chromosome() + var/static/list/chromosomes + if(!chromosomes) + chromosomes = list() + for(var/A in subtypesof(/obj/item/chromosome)) + var/obj/item/chromosome/CM = A + if(!initial(CM.weight)) + break + chromosomes[A] = initial(CM.weight) + return pickweight(chromosomes) + + +/obj/item/chromosome/stabilizer + name = "stabilizer chromosome" + desc = "A chromosome that adjusts to the body to reduce genetic damage by 20%." + icon_state = "stabilizer" + stabilizer_coeff = 0.8 + weight = 1 + +/obj/item/chromosome/synchronizer + name = "synchronizer chromosome" + desc = "A chromosome that gives the mind more controle over the mutation, reducing knockback and downsides by 50%." + icon_state = "synchronizer" + synchronizer_coeff = 0.5 + +/obj/item/chromosome/power + name = "power chromosome" + desc = "A power chromosome for boosting certain mutation's power by 50%." + icon_state = "power" + power_coeff = 1.5 + +/obj/item/chromosome/energy + name = "energetic chromosome" + desc = "A chromosome that reduces cooldown on action based mutations by 50%." + icon_state = "energy" + energy_coeff = 0.5 + +/obj/item/chromosome/reinforcer + name = "reinforcement chromosome" + desc = "Renders the mutation immune to mutadone." + icon_state = "reinforcer" + weight = 3 + +/obj/item/chromosome/reinforcer/can_apply(datum/mutation/human/HM) + if(!HM || !(HM.can_chromosome == CHROMOSOME_NONE)) + return FALSE + return !HM.mutadone_proof + +/obj/item/chromosome/reinforcer/apply(datum/mutation/human/HM) + HM.mutadone_proof = TRUE + ..() \ No newline at end of file diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 0496b282..dcf3cd12 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -65,7 +65,7 @@ build_path = /obj/machinery/dna_scannernew req_components = list( /obj/item/stock_parts/scanning_module = 1, - /obj/item/stock_parts/manipulator = 1, + /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/glass = 1, /obj/item/stack/cable_coil = 2) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 5bc03ab5..fb6eda84 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -6,6 +6,8 @@ T-RAY HEALTH ANALYZER GAS ANALYZER SLIME SCANNER +NANITE SCANNER +GENE SCANNER */ /obj/item/t_scanner @@ -291,7 +293,8 @@ SLIME SCANNER var/ldamage = H.return_liver_damage() if(ldamage > 10) msg += "\t[ldamage > 45 ? "Severe" : "Minor"] liver damage detected.\n" - + if(advanced && H.has_dna()) + to_chat(user, "\tGenetic Stability: [H.dna.stability]%.") // Body part damage report if(iscarbon(M) && mode == 1) var/mob/living/carbon/C = M @@ -757,3 +760,62 @@ SLIME SCANNER var/response = SEND_SIGNAL(M, COMSIG_NANITE_SCAN, user, TRUE) if(!response) to_chat(user, "No nanites detected in the subject.") + +/obj/item/sequence_scanner + name = "genetic sequence scanner" + icon = 'icons/obj/device.dmi' + icon_state = "gene" + item_state = "healthanalyzer" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + desc = "A hand-held scanner able to swiftly scan someone for potential mutations. Hold near a DNA console to update from their database." + flags_1 = CONDUCT_1 + item_flags = NOBLUDGEON + slot_flags = ITEM_SLOT_BELT + throwforce = 3 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=200) + var/list/discovered = list() //hit a dna console to update the scanners database + +/obj/item/sequence_scanner/attack(mob/living/M, mob/living/carbon/human/user) + user.visible_message("[user] has analyzed [M]'s genetic sequence.") + + add_fingerprint(user) + + gene_scan(M, user, src) + +/obj/item/sequence_scanner/afterattack(obj/O, mob/user, proximity) + . = ..() + if(!istype(O) || !proximity) + return + + if(istype(O, /obj/machinery/computer/scan_consolenew)) + var/obj/machinery/computer/scan_consolenew/C = O + if(C.stored_research) + to_chat(user, "[name] database updated.") + discovered = C.stored_research.discovered_mutations + else + to_chat(user,"No database to update from.") + +/proc/gene_scan(mob/living/carbon/C, mob/living/user, obj/item/sequence_scanner/G) + if(!iscarbon(C) || !C.has_dna()) + return + to_chat(user, "[C.name]'s potential mutations.") + for(var/A in C.dna.mutation_index) + var/datum/mutation/human/HM = GET_INITIALIZED_MUTATION(A) + var/mut_name + if(G && (A in G.discovered)) + mut_name = "[HM.name] ([HM.alias])" + else + mut_name = HM.alias + var/temp = GET_GENE_STRING(HM.type, C.dna) + var/display + for(var/i in 0 to length(temp) / DNA_MUTATION_BLOCKS-1) + if(i) + display += "-" + display += copytext(temp, 1 + i*DNA_MUTATION_BLOCKS, DNA_MUTATION_BLOCKS*(1+i) + 1) + + + to_chat(user, "- [mut_name] > [display]") \ No newline at end of file diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index a03447c0..8849ac51 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -14,33 +14,25 @@ var/list/add_mutations = list() var/list/remove_mutations = list() - var/list/add_mutations_static = list() - var/list/remove_mutations_static = list() - var/used = 0 /obj/item/dnainjector/attack_paw(mob/user) return attack_hand(user) -/obj/item/dnainjector/proc/prepare() - for(var/mut_key in add_mutations_static) - add_mutations.Add(GLOB.mutations_list[mut_key]) - for(var/mut_key in remove_mutations_static) - remove_mutations.Add(GLOB.mutations_list[mut_key]) - /obj/item/dnainjector/proc/inject(mob/living/carbon/M, mob/user) - prepare() - if(M.has_dna() && !HAS_TRAIT(M, TRAIT_RADIMMUNE) && !HAS_TRAIT(M, TRAIT_NOCLONE)) M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" - for(var/datum/mutation/human/HM in remove_mutations) - HM.force_lose(M) - for(var/datum/mutation/human/HM in add_mutations) - if(HM.name == RACEMUT) + for(var/HM in remove_mutations) + M.dna.remove_mutation(HM) + for(var/HM in add_mutations) + if(HM == RACEMUT) message_admins("[ADMIN_LOOKUPFLW(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") log_msg += " (MONKEY)" - HM.force_give(M) + if(M.dna.mutation_in_sequence(HM)) + M.dna.activate_mutation(HM) + else + M.dna.add_mutation(HM, MUT_EXTRA) if(fields) if(fields["name"] && fields["UE"] && fields["blood_type"]) M.real_name = fields["name"] @@ -90,123 +82,123 @@ /obj/item/dnainjector/antihulk name = "\improper DNA injector (Anti-Hulk)" desc = "Cures green skin." - remove_mutations_static = list(HULK) + remove_mutations = list(HULK) /obj/item/dnainjector/hulkmut name = "\improper DNA injector (Hulk)" desc = "This will make you big and strong, but give you a bad skin condition." - add_mutations_static = list(HULK) + add_mutations = list(HULK) /obj/item/dnainjector/xraymut name = "\improper DNA injector (X-ray)" desc = "Finally you can see what the Captain does." - add_mutations_static = list(XRAY) + add_mutations = list(XRAY) /obj/item/dnainjector/antixray name = "\improper DNA injector (Anti-X-ray)" desc = "It will make you see harder." - remove_mutations_static = list(XRAY) + remove_mutations = list(XRAY) ///////////////////////////////////// /obj/item/dnainjector/antiglasses name = "\improper DNA injector (Anti-Glasses)" desc = "Toss away those glasses!" - remove_mutations_static = list(BADSIGHT) + remove_mutations = list(BADSIGHT) /obj/item/dnainjector/glassesmut name = "\improper DNA injector (Glasses)" desc = "Will make you need dorkish glasses." - add_mutations_static = list(BADSIGHT) + add_mutations = list(BADSIGHT) /obj/item/dnainjector/epimut name = "\improper DNA injector (Epi.)" desc = "Shake shake shake the room!" - add_mutations_static = list(EPILEPSY) + add_mutations = list(EPILEPSY) /obj/item/dnainjector/antiepi name = "\improper DNA injector (Anti-Epi.)" desc = "Will fix you up from shaking the room." - remove_mutations_static = list(EPILEPSY) + remove_mutations = list(EPILEPSY) //////////////////////////////////// /obj/item/dnainjector/anticough name = "\improper DNA injector (Anti-Cough)" desc = "Will stop that awful noise." - remove_mutations_static = list(COUGH) + remove_mutations = list(COUGH) /obj/item/dnainjector/coughmut name = "\improper DNA injector (Cough)" desc = "Will bring forth a sound of horror from your throat." - add_mutations_static = list(COUGH) + add_mutations = list(COUGH) /obj/item/dnainjector/antidwarf name = "\improper DNA injector (Anti-Dwarfism)" desc = "Helps you grow big and strong." - remove_mutations_static = list(DWARFISM) + remove_mutations = list(DWARFISM) /obj/item/dnainjector/dwarf name = "\improper DNA injector (Dwarfism)" desc = "It's a small world after all." - add_mutations_static = list(DWARFISM) + add_mutations = list(DWARFISM) /obj/item/dnainjector/clumsymut name = "\improper DNA injector (Clumsy)" desc = "Makes clown minions." - add_mutations_static = list(CLOWNMUT) + add_mutations = list(CLOWNMUT) /obj/item/dnainjector/anticlumsy name = "\improper DNA injector (Anti-Clumsy)" desc = "Apply this for Security Clown." - remove_mutations_static = list(CLOWNMUT) + remove_mutations = list(CLOWNMUT) /obj/item/dnainjector/antitour name = "\improper DNA injector (Anti-Tour.)" desc = "Will cure Tourette's." - remove_mutations_static = list(TOURETTES) + remove_mutations = list(TOURETTES) /obj/item/dnainjector/tourmut name = "\improper DNA injector (Tour.)" desc = "Gives you a nasty case of Tourette's." - add_mutations_static = list(TOURETTES) + add_mutations = list(TOURETTES) /obj/item/dnainjector/stuttmut name = "\improper DNA injector (Stutt.)" desc = "Makes you s-s-stuttterrr." - add_mutations_static = list(NERVOUS) + add_mutations = list(NERVOUS) /obj/item/dnainjector/antistutt name = "\improper DNA injector (Anti-Stutt.)" desc = "Fixes that speaking impairment." - remove_mutations_static = list(NERVOUS) + remove_mutations = list(NERVOUS) /obj/item/dnainjector/antifire name = "\improper DNA injector (Anti-Fire)" desc = "Cures fire." - remove_mutations_static = list(COLDRES) + remove_mutations = list(SPACEMUT) /obj/item/dnainjector/firemut name = "\improper DNA injector (Fire)" desc = "Gives you fire." - add_mutations_static = list(COLDRES) + add_mutations = list(SPACEMUT) /obj/item/dnainjector/blindmut name = "\improper DNA injector (Blind)" desc = "Makes you not see anything." - add_mutations_static = list(BLINDMUT) + add_mutations = list(BLINDMUT) /obj/item/dnainjector/antiblind name = "\improper DNA injector (Anti-Blind)" desc = "IT'S A MIRACLE!!!" - remove_mutations_static = list(BLINDMUT) + remove_mutations = list(BLINDMUT) /obj/item/dnainjector/antitele name = "\improper DNA injector (Anti-Tele.)" desc = "Will make you not able to control your mind." - remove_mutations_static = list(TK) + remove_mutations = list(TK) /obj/item/dnainjector/telemut name = "\improper DNA injector (Tele.)" desc = "Super brain man!" - add_mutations_static = list(TK) + add_mutations = list(TK) /obj/item/dnainjector/telemut/darkbundle name = "\improper DNA injector" @@ -215,100 +207,171 @@ /obj/item/dnainjector/deafmut name = "\improper DNA injector (Deaf)" desc = "Sorry, what did you say?" - add_mutations_static = list(DEAFMUT) + add_mutations = list(DEAFMUT) /obj/item/dnainjector/antideaf name = "\improper DNA injector (Anti-Deaf)" desc = "Will make you hear once more." - remove_mutations_static = list(DEAFMUT) + remove_mutations = list(DEAFMUT) /obj/item/dnainjector/h2m name = "\improper DNA injector (Human > Monkey)" desc = "Will make you a flea bag." - add_mutations_static = list(RACEMUT) + add_mutations = list(RACEMUT) /obj/item/dnainjector/m2h name = "\improper DNA injector (Monkey > Human)" desc = "Will make you...less hairy." - remove_mutations_static = list(RACEMUT) + remove_mutations = list(RACEMUT) /obj/item/dnainjector/antichameleon name = "\improper DNA injector (Anti-Chameleon)" - remove_mutations_static = list(CHAMELEON) + remove_mutations = list(CHAMELEON) /obj/item/dnainjector/chameleonmut name = "\improper DNA injector (Chameleon)" - add_mutations_static = list(CHAMELEON) + add_mutations = list(CHAMELEON) /obj/item/dnainjector/antiwacky name = "\improper DNA injector (Anti-Wacky)" - remove_mutations_static = list(WACKY) + remove_mutations = list(WACKY) /obj/item/dnainjector/wackymut name = "\improper DNA injector (Wacky)" - add_mutations_static = list(WACKY) + add_mutations = list(WACKY) /obj/item/dnainjector/antimute name = "\improper DNA injector (Anti-Mute)" - remove_mutations_static = list(MUT_MUTE) + remove_mutations = list(MUT_MUTE) /obj/item/dnainjector/mutemut name = "\improper DNA injector (Mute)" - add_mutations_static = list(MUT_MUTE) + add_mutations = list(MUT_MUTE) /obj/item/dnainjector/antismile name = "\improper DNA injector (Anti-Smile)" - remove_mutations_static = list(SMILE) + remove_mutations = list(SMILE) /obj/item/dnainjector/smilemut name = "\improper DNA injector (Smile)" - add_mutations_static = list(SMILE) + add_mutations = list(SMILE) /obj/item/dnainjector/unintelligiblemut name = "\improper DNA injector (Unintelligible)" - add_mutations_static = list(UNINTELLIGIBLE) + add_mutations = list(UNINTELLIGIBLE) /obj/item/dnainjector/antiunintelligible name = "\improper DNA injector (Anti-Unintelligible)" - remove_mutations_static = list(UNINTELLIGIBLE) + remove_mutations = list(UNINTELLIGIBLE) /obj/item/dnainjector/swedishmut name = "\improper DNA injector (Swedish)" - add_mutations_static = list(SWEDISH) + add_mutations = list(SWEDISH) /obj/item/dnainjector/antiswedish name = "\improper DNA injector (Anti-Swedish)" - remove_mutations_static = list(SWEDISH) + remove_mutations = list(SWEDISH) /obj/item/dnainjector/chavmut name = "\improper DNA injector (Chav)" - add_mutations_static = list(CHAV) + add_mutations = list(CHAV) /obj/item/dnainjector/antichav name = "\improper DNA injector (Anti-Chav)" - remove_mutations_static = list(CHAV) + remove_mutations = list(CHAV) /obj/item/dnainjector/elvismut name = "\improper DNA injector (Elvis)" - add_mutations_static = list(ELVIS) + add_mutations = list(ELVIS) /obj/item/dnainjector/antielvis name = "\improper DNA injector (Anti-Elvis)" - remove_mutations_static = list(ELVIS) + remove_mutations = list(ELVIS) /obj/item/dnainjector/lasereyesmut name = "\improper DNA injector (Laser Eyes)" - add_mutations_static = list(LASEREYES) + add_mutations = list(LASEREYES) /obj/item/dnainjector/antilasereyes name = "\improper DNA injector (Anti-Laser Eyes)" - remove_mutations_static = list(LASEREYES) + remove_mutations = list(LASEREYES) + +/obj/item/dnainjector/thermalmut + name = "\improper DNA injector (Thermal Vision)" + add_mutations = list(THERMAL) + +/obj/item/dnainjector/antithermal + name = "\improper DNA injector (Anti-Thermal Vision)" + remove_mutations = list(THERMAL) + +/obj/item/dnainjector/telepathymut + name = "\improper DNA injector (Telepathy)" + add_mutations = list(TELEPATHY) + +/obj/item/dnainjector/antitelepathy + name = "\improper DNA injector (Anti-Telepathy)" + remove_mutations = list(TELEPATHY) + +/obj/item/dnainjector/voidmut + name = "\improper DNA injector (Void Magnet)" + add_mutations = list(VOID) + +/obj/item/dnainjector/antivoid + name = "\improper DNA injector (Anti-Void Magnet)" + remove_mutations = list(VOID) + +/obj/item/dnainjector/firebreathmut + name = "\improper DNA injector (Firebreath)" + add_mutations = list(FIREBREATH) + +/obj/item/dnainjector/antifirebreath + name = "\improper DNA injector (Anti-Firebreath)" + remove_mutations = list(FIREBREATH) + +/obj/item/dnainjector/insulatedmut + name = "\improper DNA injector (Insulated)" + add_mutations = list(INSULATED) + +/obj/item/dnainjector/antiinsulated + name = "\improper DNA injector (Anti-Insulated)" + remove_mutations = list(INSULATED) + +/obj/item/dnainjector/shocktouchmut + name = "\improper DNA injector (Shock Touch)" + add_mutations = list(SHOCKTOUCH) + +/obj/item/dnainjector/antishocktouch + name = "\improper DNA injector (Anti-Shock Touch)" + remove_mutations = list(SHOCKTOUCH) + +/obj/item/dnainjector/antenna + name = "\improper DNA injector (Antenna)" + add_mutations = list(ANTENNA) + +/obj/item/dnainjector/antiantenna + name = "\improper DNA injector (Anti-Antenna)" + remove_mutations = list(ANTENNA) + +/obj/item/dnainjector/paranoia + name = "\improper DNA injector (Paranoia)" + add_mutations = list(PARANOIA) + +/obj/item/dnainjector/antiparanoia + name = "\improper DNA injector (Anti-Paranoia)" + remove_mutations = list(PARANOIA) + +/obj/item/dnainjector/mindread + name = "\improper DNA injector (Mindread)" + add_mutations = list(MINDREAD) + +/obj/item/dnainjector/antimindread + name = "\improper DNA injector (Anti-Mindread)" + remove_mutations = list(MINDREAD) /obj/item/dnainjector/timed var/duration = 600 /obj/item/dnainjector/timed/inject(mob/living/carbon/M, mob/user) - prepare() if(M.stat == DEAD) //prevents dead people from having their DNA changed to_chat(user, "You can't modify [M]'s DNA while [M.p_theyre()] dead.") return FALSE @@ -317,23 +380,22 @@ M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" var/endtime = world.time+duration - for(var/datum/mutation/human/HM in remove_mutations) - if(HM.name == RACEMUT) + for(var/mutation in remove_mutations) + if(mutation == RACEMUT) if(ishuman(M)) continue - M = HM.force_lose(M) + M = M.dna.remove_mutation(mutation) else - HM.force_lose(M) - for(var/datum/mutation/human/HM in add_mutations) - if((HM in M.dna.mutations) && !(M.dna.temporary_mutations[HM.name])) + M.dna.remove_mutation(mutation) + for(var/mutation in add_mutations) + if(M.dna.get_mutation(mutation)) continue //Skip permanent mutations we already have. - if(HM.name == RACEMUT && ishuman(M)) + if(mutation == RACEMUT && ishuman(M)) message_admins("[ADMIN_LOOKUPFLW(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") log_msg += " (MONKEY)" - M = HM.force_give(M) + M = M.dna.add_mutation(mutation, MUT_OTHER, endtime) else - HM.force_give(M) - M.dna.temporary_mutations[HM.name] = endtime + M.dna.add_mutation(mutation, MUT_OTHER, endtime) if(fields) if(fields["name"] && fields["UE"] && fields["blood_type"]) if(!M.dna.previous["name"]) @@ -361,9 +423,41 @@ /obj/item/dnainjector/timed/hulk name = "\improper DNA injector (Hulk)" desc = "This will make you big and strong, but give you a bad skin condition." - add_mutations_static = list(HULK) + add_mutations = list(HULK) /obj/item/dnainjector/timed/h2m name = "\improper DNA injector (Human > Monkey)" desc = "Will make you a flea bag." - add_mutations_static = list(RACEMUT) + add_mutations = list(RACEMUT) + +/obj/item/dnainjector/activator + name = "\improper DNA activator" + desc = "Activates the current mutation on injection, if the subject has it." + var/doitanyway = FALSE + var/research = FALSE //Set to true to get expended and filled injectors for chromosomes + var/filled = FALSE + +/obj/item/dnainjector/activator/inject(mob/living/carbon/M, mob/user) + if(M.has_dna() && !HAS_TRAIT(M, TRAIT_RADIMMUNE) && !HAS_TRAIT(M,TRAIT_NOCLONE)) + M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) + var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" + for(var/mutation in add_mutations) + var/datum/mutation/human/HM = mutation + if(istype(HM, /datum/mutation/human)) + mutation = HM.type + if(!M.dna.activate_mutation(HM)) + if(!doitanyway) + log_msg += "(FAILED)" + else + M.dna.add_mutation(HM, MUT_EXTRA) + name = "expended [name]" + else if(research && M.client) + filled = TRUE + name = "filled [name]" + else + name = "expended [name]" + log_msg += "([mutation])" + log_attack("[log_msg] [loc_name(user)]") + return TRUE + return FALSE + diff --git a/code/modules/antagonists/changeling/powers/chameleon_skin.dm b/code/modules/antagonists/changeling/powers/chameleon_skin.dm index b7545353..03f3aab4 100644 --- a/code/modules/antagonists/changeling/powers/chameleon_skin.dm +++ b/code/modules/antagonists/changeling/powers/chameleon_skin.dm @@ -13,17 +13,14 @@ var/mob/living/carbon/human/H = user //SHOULD always be human, because req_human = 1 if(!istype(H)) // req_human could be done in can_sting stuff. return - var/datum/mutation/human/HM = GLOB.mutations_list[CHAMELEON] - if(HM in H.dna.mutations) - HM.force_lose(H) + if(H.dna.get_mutation(CHAMELEON)) + H.dna.remove_mutation(CHAMELEON) else - HM.force_give(H) + H.dna.add_mutation(CHAMELEON) return TRUE /obj/effect/proc_holder/changeling/chameleon_skin/on_refund(mob/user) action.Remove(user) if(user.has_dna()) var/mob/living/carbon/C = user - var/datum/mutation/human/HM = GLOB.mutations_list[CHAMELEON] - if(HM in C.dna.mutations) - HM.force_lose(C) \ No newline at end of file + C.dna.remove_mutation(CHAMELEON) \ No newline at end of file diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 87794993..8da0546b 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -69,7 +69,7 @@ /mob/living/simple_animal/revenant/Initialize(mapload) . = ..() AddSpell(new /obj/effect/proc_holder/spell/targeted/night_vision/revenant(null)) - AddSpell(new /obj/effect/proc_holder/spell/targeted/revenant_transmit(null)) + AddSpell(new /obj/effect/proc_holder/spell/targeted/telepathy/revenant(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/defile(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/overload(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/blight(null)) diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index 112a31f4..0cbe3102 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -104,35 +104,14 @@ action_background_icon_state = "bg_revenant" //Transmit: the revemant's only direct way to communicate. Sends a single message silently to a single mob -/obj/effect/proc_holder/spell/targeted/revenant_transmit - name = "Transmit" - desc = "Telepathically transmits a message to the target." +/obj/effect/proc_holder/spell/targeted/telepathy/revenant + name = "Revenant Transmit" panel = "Revenant Abilities" - charge_max = 0 - clothes_req = 0 - range = 7 - include_user = 0 action_icon = 'icons/mob/actions/actions_revenant.dmi' action_icon_state = "r_transmit" action_background_icon_state = "bg_revenant" - -/obj/effect/proc_holder/spell/targeted/revenant_transmit/cast(list/targets, mob/living/simple_animal/revenant/user = usr) - for(var/mob/living/M in targets) - var/msg = stripped_input(usr, "What do you wish to tell [M]?", null, "") - if(!msg) - charge_counter = charge_max - return - log_directed_talk(user, M, msg, LOG_SAY, "revenant whisper") - to_chat(user, "You transmit to [M]: [msg]") - if(!M.anti_magic_check(FALSE, TRUE)) //hear no evil - to_chat(M, "You hear something behind you talking... [msg]") - for(var/ded in GLOB.dead_mob_list) - if(!isobserver(ded)) - continue - var/follow_rev = FOLLOW_LINK(ded, user) - var/follow_whispee = FOLLOW_LINK(ded, M) - to_chat(ded, "[follow_rev] [user] Revenant Transmit: \"[msg]\" to [follow_whispee] [M]") - + notice = "revennotice" + boldnotice = "revenboldnotice" /obj/effect/proc_holder/spell/aoe_turf/revenant diff --git a/code/modules/antagonists/wishgranter/wishgranter.dm b/code/modules/antagonists/wishgranter/wishgranter.dm index 318de51e..196ce955 100644 --- a/code/modules/antagonists/wishgranter/wishgranter.dm +++ b/code/modules/antagonists/wishgranter/wishgranter.dm @@ -26,5 +26,5 @@ return H.dna.add_mutation(HULK) H.dna.add_mutation(XRAY) - H.dna.add_mutation(COLDRES) + H.dna.add_mutation(SPACEMUT) H.dna.add_mutation(TK) \ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index ac1a4077..505b9a1e 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -94,7 +94,7 @@ to_chat(user, "Your wish is granted, but at a terrible cost...") to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") user.dna.add_mutation(LASEREYES) - user.dna.add_mutation(COLDRES) + user.dna.add_mutation(SPACEMUT) user.dna.add_mutation(XRAY) user.set_species(/datum/species/shadow) if("Wealth") diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 0ff87c03..0b83304f 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -677,3 +677,11 @@ GLOBAL_LIST_EMPTY(asset_datums) Insert(initial(D.id), I) return ..() + + +/datum/asset/simple/genetics + assets = list( + "dna_discovered.gif" = 'html/dna_discovered.gif', + "dna_undiscovered.gif" = 'html/dna_undiscovered.gif', + "dna_extra.gif" = 'html/dna_extra.gif' +) \ No newline at end of file diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index 96b5c8e2..4800b61f 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -57,7 +57,7 @@ var/datum/disease/dnaspread/DS = D DS.strain_data["name"] = H.real_name DS.strain_data["UI"] = H.dna.uni_identity - DS.strain_data["SE"] = H.dna.struc_enzymes + DS.strain_data["SE"] = H.dna.mutation_index else D = new virus_type() else diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 9373b5ad..d57615d2 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -164,6 +164,7 @@ Geneticist shoes = /obj/item/clothing/shoes/sneakers/white suit = /obj/item/clothing/suit/toggle/labcoat/genetics suit_store = /obj/item/flashlight/pen + l_pocket = /obj/item/sequence_scanner backpack = /obj/item/storage/backpack/genetics satchel = /obj/item/storage/backpack/satchel/gen diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index f12b6b7e..a25ce336 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -453,7 +453,7 @@ /obj/item/immortality_talisman/Initialize() . = ..() - AddComponent(/datum/component/anti_magic, TRUE, TRUE) + AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE) /datum/action/item_action/immortality name = "Immortality" @@ -462,30 +462,45 @@ if(cooldown < world.time) SSblackbox.record_feedback("amount", "immortality_talisman_uses", 1) cooldown = world.time + 600 - user.visible_message("[user] vanishes from reality, leaving a hole in [user.p_their()] place!") - var/obj/effect/immortality_talisman/Z = new(get_turf(src.loc)) - Z.name = "hole in reality" - Z.desc = "It's shaped an awful lot like [user.name]." - Z.setDir(user.dir) - user.forceMove(Z) - user.notransform = 1 - user.status_flags |= GODMODE - addtimer(CALLBACK(src, .proc/return_to_reality, user, Z), 100) + new /obj/effect/immortality_talisman(get_turf(user), user) else to_chat(user, "[src] is not ready yet!") -/obj/item/immortality_talisman/proc/return_to_reality(mob/user, obj/effect/immortality_talisman/Z) - user.status_flags &= ~GODMODE - user.notransform = 0 - user.forceMove(get_turf(Z)) - user.visible_message("[user] pops back into reality!") - Z.can_destroy = TRUE - qdel(Z) - /obj/effect/immortality_talisman + name = "hole in reality" + desc = "It's shaped an awful lot like a person." icon_state = "blank" icon = 'icons/effects/effects.dmi' - var/can_destroy = FALSE + var/vanish_description = "vanishes from reality" + var/can_destroy = TRUE + +/obj/effect/immortality_talisman/Initialize(mapload, mob/new_user) + . = ..() + if(new_user) + vanish(new_user) + +/obj/effect/immortality_talisman/proc/vanish(mob/user) + user.visible_message("[user] [vanish_description], leaving a hole in [user.p_their()] place!") + + desc = "It's shaped an awful lot like [user.name]." + setDir(user.dir) + + user.forceMove(src) + user.notransform = TRUE + user.status_flags |= GODMODE + + can_destroy = FALSE + + addtimer(CALLBACK(src, .proc/unvanish, user), 10 SECONDS) + +/obj/effect/immortality_talisman/proc/unvanish(mob/user) + user.status_flags &= ~GODMODE + user.notransform = FALSE + user.forceMove(get_turf(src)) + + user.visible_message("[user] pops back into reality!") + can_destroy = TRUE + qdel(src) /obj/effect/immortality_talisman/attackby() return @@ -502,6 +517,10 @@ else . = ..() +/obj/effect/immortality_talisman/void + vanish_description = "is dragged into the void" + + //Shared Bag diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a118dc78..89a7ec25 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -603,6 +603,14 @@ sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) see_in_dark = max(see_in_dark, 8) + if(HAS_TRAIT(src, TRAIT_THERMAL_VISION)) + sight |= (SEE_MOBS) + lighting_alpha = min(lighting_alpha, LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE) + + if(HAS_TRAIT(src, TRAIT_XRAY_VISION)) + sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) + see_in_dark = max(see_in_dark, 8) + if(see_override) see_invisible = see_override . = ..() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 33b419de..eb91858b 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -44,6 +44,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/siemens_coeff = 1 //base electrocution coefficient var/damage_overlay_type = "human" //what kind of damage overlays (if any) appear on our species when wounded? var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"] + var/inert_mutation = DWARFISM //special mutation that can be found in the genepool. Dont leave empty or changing species will be a headache var/list/special_step_sounds //Sounds to override barefeet walkng var/grab_sound //Special sound for grabbing @@ -317,6 +318,14 @@ GLOBAL_LIST_EMPTY(roundstart_races) for(var/X in inherent_traits) REMOVE_TRAIT(C, X, SPECIES_TRAIT) + //If their inert mutation is not the same, swap it out + if((inert_mutation != new_species.inert_mutation) && LAZYLEN(C.dna.mutation_index) && (inert_mutation in C.dna.mutation_index)) + C.dna.remove_mutation(inert_mutation) + //keep it at the right spot, so we can't have people taking shortcuts + var/location = C.dna.mutation_index.Find(inert_mutation) + C.dna.mutation_index[location] = new_species.inert_mutation + C.dna.mutation_index[new_species.inert_mutation] = create_sequence(new_species.inert_mutation) + SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) @@ -1270,7 +1279,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(radiation > RAD_MOB_MUTATE) if(prob(1)) to_chat(H, "You mutate!") - H.randmutb() + H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) H.emote("gasp") H.domutcheck() diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 9b2e2ad5..8d448592 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -20,6 +20,7 @@ exotic_bloodtype = "L" disliked_food = GRAIN | DAIRY liked_food = GROSS | MEAT + inert_mutation = FIREBREATH /datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H) H.grant_language(/datum/language/draconic) diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 0da4073f..fbe18a6c 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -60,9 +60,9 @@ H.Knockdown(100) H.visible_message("[H] writhes in pain as [H.p_their()] vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.") if(prob(80)) - H.randmutb() + H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) else - H.randmutg() + H.easy_randmut(POSITIVE) H.domutcheck() else H.adjustFireLoss(rand(5,15)) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index de542754..1c2234bb 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -419,7 +419,6 @@ /mob/living/carbon/handle_mutations_and_radiation() if(dna && dna.temporary_mutations.len) - var/datum/mutation/human/HM for(var/mut in dna.temporary_mutations) if(dna.temporary_mutations[mut] < world.time) if(mut == UI_CHANGED) @@ -442,9 +441,9 @@ dna.previous.Remove("blood_type") dna.temporary_mutations.Remove(mut) continue - HM = GLOB.mutations_list[mut] - HM.force_lose(src) - dna.temporary_mutations.Remove(mut) + for(var/datum/mutation/human/HM in dna.mutations) + if(HM && HM.timed) + dna.remove_mutation(HM.type) radiation -= min(radiation, RAD_LOSS_PER_TICK) if(radiation > RAD_MOB_SAFE) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index e0386bcd..be7d90c1 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -38,7 +38,7 @@ if(radiation > RAD_MOB_MUTATE) if(prob(1)) to_chat(src, "You mutate!") - randmutb() + easy_randmut(NEGATIVE+MINOR_NEGATIVE) emote("gasp") domutcheck() diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index e6f79198..65947711 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -50,9 +50,8 @@ O.updateappearance(icon_update=0) if(tr_flags & TR_KEEPSE) - O.dna.struc_enzymes = dna.struc_enzymes - var/datum/mutation/human/race/R = GLOB.mutations_list[RACEMUT] - O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=1)//we don't want to keep the race block inactive + O.dna.mutation_index = dna.mutation_index + O.dna.set_se(1, GET_INITIALIZED_MUTATION(RACEMUT)) if(suiciding) O.suiciding = suiciding @@ -210,9 +209,8 @@ O.name = O.real_name if(tr_flags & TR_KEEPSE) - O.dna.struc_enzymes = dna.struc_enzymes - var/datum/mutation/human/race/R = GLOB.mutations_list[RACEMUT] - O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=0)//we don't want to keep the race block active + O.dna.mutation_index = dna.mutation_index + O.dna.set_se(0, GET_INITIALIZED_MUTATION(RACEMUT)) O.domutcheck() if(suiciding) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 0ad83652..b85de2e7 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -913,7 +913,7 @@ /datum/reagent/medicine/mutadone/on_mob_life(mob/living/carbon/M) M.jitteriness = 0 if(M.has_dna()) - M.dna.remove_all_mutations() + M.dna.remove_all_mutations(mutadone = TRUE) if(!QDELETED(M)) //We were a monkey, now a human ..() diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 2b50ecc0..c38bbfed 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -43,9 +43,9 @@ if((method==VAPOR && prob(min(33, reac_volume))) || method==INGEST || method==PATCH || method==INJECT) M.randmuti() if(prob(98)) - M.randmutb() + M.easy_randmut(NEGATIVE+MINOR_NEGATIVE) else - M.randmutg() + M.easy_randmut(POSITIVE) M.updateappearance() M.domutcheck() ..() diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 580f9c87..5a8fc03d 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -162,6 +162,16 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/genescanner + name = "Genetic Sequence Analyzer" + desc = "A handy hand-held analyzers for quickly determining mutations and collecting the full sequence." + id = "genescanner" + build_path = /obj/item/sequence_scanner + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 500) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + /datum/design/healthanalyzer_advanced name = "Advanced Health Analyzer" desc = "A hand-held body scanner able to distinguish vital signs of the subject with high accuracy." diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index da3fec61..42cd5ff1 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -19,6 +19,7 @@ var/largest_bomb_value = 0 var/organization = "Third-Party" //Organization name, used for display. var/list/last_bitcoins = list() //Current per-second production, used for display only. + var/list/discovered_mutations = list() //Mutations discovered by genetics, this way they are shared and cant be destroyed by destroying a single console var/list/tiers = list() //Assoc list, datum = number, 1 is available, 2 is all reqs are 1, so on /datum/techweb/New() diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 5f848ce8..1349fd23 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -60,7 +60,7 @@ display_name = "Biological Technology" description = "What makes us tick." //the MC, silly! prereq_ids = list("base") - design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag") + design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag","genescanner") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/spells/spell_types/genetic.dm b/code/modules/spells/spell_types/genetic.dm index b670d93f..c3bdc74e 100644 --- a/code/modules/spells/spell_types/genetic.dm +++ b/code/modules/spells/spell_types/genetic.dm @@ -4,7 +4,7 @@ var/list/active_on = list() var/list/traits = list() //disabilities - var/list/mutations = list() //mutation strings + var/list/mutations = list() //mutation defines var/duration = 100 //deciseconds /* Disabilities diff --git a/code/modules/spells/spell_types/telepathy.dm b/code/modules/spells/spell_types/telepathy.dm new file mode 100644 index 00000000..db7e284e --- /dev/null +++ b/code/modules/spells/spell_types/telepathy.dm @@ -0,0 +1,30 @@ +/obj/effect/proc_holder/spell/targeted/telepathy + name = "Telepathy" + desc = "Telepathically transmits a message to the target." + charge_max = 0 + clothes_req = 0 + range = 7 + include_user = 0 + action_icon = 'icons/mob/actions/actions_revenant.dmi' + action_icon_state = "r_transmit" + action_background_icon_state = "bg_spell" + var/notice = "notice" + var/boldnotice = "boldnotice" + var/magic_check = TRUE + +/obj/effect/proc_holder/spell/targeted/telepathy/cast(list/targets, mob/living/simple_animal/revenant/user = usr) + for(var/mob/living/M in targets) + var/msg = stripped_input(usr, "What do you wish to tell [M]?", null, "") + if(!msg) + charge_counter = charge_max + return + log_directed_talk(user, M, msg, LOG_SAY, "[name]") + to_chat(user, "You transmit to [M]: [msg]") + if(!magic_check || !M.anti_magic_check(FALSE, TRUE)) //hear no evil + to_chat(M, "You hear something behind you talking... [msg]") + for(var/ded in GLOB.dead_mob_list) + if(!isobserver(ded)) + continue + var/follow_rev = FOLLOW_LINK(ded, user) + var/follow_whispee = FOLLOW_LINK(ded, M) + to_chat(ded, "[follow_rev] [user] [name]: \"[msg]\" to [follow_whispee] [M]") \ No newline at end of file diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm index 0ffe02ce..f0a9735c 100644 --- a/code/modules/spells/spell_types/touch_attacks.dm +++ b/code/modules/spells/spell_types/touch_attacks.dm @@ -1,6 +1,8 @@ /obj/effect/proc_holder/spell/targeted/touch var/hand_path = /obj/item/melee/touch_attack var/obj/item/melee/touch_attack/attached_hand = null + var/drawmessage = "You channel the power of the spell to your hand." + var/dropmessage = "You draw the power out of your hand." invocation_type = "none" //you scream on connecting, not summoning include_user = 1 range = -1 @@ -21,7 +23,7 @@ /obj/effect/proc_holder/spell/targeted/touch/cast(list/targets,mob/user = usr) if(!QDELETED(attached_hand)) remove_hand(TRUE) - to_chat(user, "You draw the power out of your hand.") + to_chat(user, "[dropmessage]") return for(var/mob/living/carbon/C in targets) @@ -43,7 +45,7 @@ remove_hand(TRUE) to_chat(user, "Your hands are full!") return FALSE - to_chat(user, "You channel the power of the spell to your hand.") + to_chat(user, "[drawmessage]") return TRUE diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 9341fb6c..4e2b81dc 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -108,7 +108,7 @@ for(var/X in C.dna.mutations) //some mutations require having specific limbs to be kept. var/datum/mutation/human/MT = X if(MT.limb_req && MT.limb_req == body_zone) - MT.force_lose(C) + C.dna.force_lose(MT) for(var/X in C.internal_organs) //internal organs inside the dismembered limb are dropped. var/obj/item/organ/O = X diff --git a/html/browser/scannernew.css b/html/browser/scannernew.css index 0e809a67..6746a61a 100644 --- a/html/browser/scannernew.css +++ b/html/browser/scannernew.css @@ -16,3 +16,24 @@ float: left; } +img.selected +{ + border: 1px solid blue; +} +img.unselected +{ + border: 2px solid black; +} +div>table { + float: left; +} +td +{ + text-align: center; +} +a.clean +{ + background: none; + border: none; + marging: none; +} \ No newline at end of file diff --git a/html/dna_discovered.gif b/html/dna_discovered.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc6b75f2f984fd761f9877d80e0f46c9abd2dc27 GIT binary patch literal 48972 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 E0I&Wb&Hw-a literal 0 HcmV?d00001 diff --git a/html/dna_extra.gif b/html/dna_extra.gif new file mode 100644 index 0000000000000000000000000000000000000000..c92218a6613373a1b1f03ae379cbc0fb1f135519 GIT binary patch literal 48105 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 EFWx(-M*si- literal 20768 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 diff --git a/icons/mob/actions/actions_genetic.dmi b/icons/mob/actions/actions_genetic.dmi new file mode 100644 index 0000000000000000000000000000000000000000..72bd87f97ebb5494980bd7cd46d0337223ff2a5b GIT binary patch literal 413 zcmV;O0b>4%P)OhBM-Bu2;Ctd zd=9|k4C#|C$adh^cmO^@!qWsIq&ODfIAtmm9E0Q`3!o5;PM)8{(xbA8VorcU=F%fv zEEk*hSg-lBrYYd9YFfv*FWD~}gr<0C=bYAR*n5Rl5AmD6M~pFCg|xs800000NkvXX Hu0mjf#PYOQ literal 0 HcmV?d00001 diff --git a/icons/mob/actions/actions_spells.dmi b/icons/mob/actions/actions_spells.dmi index 30927d36084c556b6b82a9c1d0df9bdbf2860118..5617e228bbc5203b14f2c3b98b402963e3f7d074 100644 GIT binary patch literal 24828 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

DOk_OL=m!H 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 V_AReJ{`YeO69bEz)q2pF{{fWRF600J literal 21667 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 literal 0 HcmV?d00001 diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index d604d02ec4af6d25a0262efe2ce91b43fe419990..8a634be1cc8bfa4d3c4e008d7f9f862c2300ab23 100644 GIT binary patch literal 48379 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 Date: Fri, 8 Nov 2019 20:35:12 +0100 Subject: [PATCH 09/10] fixes conflict hopefully title --- icons/obj/device.dmi | Bin 48379 -> 49396 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 8a634be1cc8bfa4d3c4e008d7f9f862c2300ab23..8fc8545174bd8e1f2d601c639ce454c633d56a5c 100644 GIT binary patch delta 9231 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 JD3h}Y{vUfi-aP;S delta 8217 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 H8~Xki43uJ% From d7a3df9e6d6eb5098eb0d594f3ed23088d6bf6d6 Mon Sep 17 00:00:00 2001 From: Azarak Date: Fri, 8 Nov 2019 20:53:55 +0100 Subject: [PATCH 10/10] Perhaps this will work --- icons/obj/device.dmi | Bin 49396 -> 48379 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 8fc8545174bd8e1f2d601c639ce454c633d56a5c..8a634be1cc8bfa4d3c4e008d7f9f862c2300ab23 100644 GIT binary patch delta 8217 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 H8~Xki43uJ% delta 9231 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 JD3h}Y{vUfi-aP;S