From df8fef119d252cd6cab00123c400b52c99644ea2 Mon Sep 17 00:00:00 2001
From: chuga-git <98280110+chuga-git@users.noreply.github.com>
Date: Sun, 7 Apr 2024 04:38:10 -0500
Subject: [PATCH] Ports TG bamboo and Punji Sticks (#24497)
* adds most things
* STOP BECOMING CRLF
* half the sprites ported
* adds floor turfs, hopefully
* adds bamboo stack recipes and parameter documentation for datum/stack_recipe
* adds the crude syringe and sprite
* Revert "adds the crude syringe and sprite"
This reverts commit d949332055e0c6073c44090568be7b41fd621127.
* adds crude syringe and sprite
* nevermind, goon license moment
* bamboo walls, false walls, and sprites
* caltrops check for shoe thickmaterial flag
* added spear and fixed filepaths
* smoothing and caltrops are even more broken
* Fixes sprite smoothing and caltrop weirdness
* whitespace
* fixes tile stacking
* Henri review
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
* royal blue and red carpets no longer smooth
* henri review
* actual henri review, thanks git
* Henri review electric boogaloo
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
* removes bamboo walls (rip)
* Update code/game/turfs/simulated/floor/fancy_floor.dm
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
---------
Co-authored-by: cybercapitalism <98280110+cybercapitalism@users.noreply.github.com>
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
---
code/__DEFINES/icon_smoothing_defines.dm | 6 +-
code/datums/components/caltrop.dm | 90 +++++++++++-------
.../machinery/vendors/departmental_vendors.dm | 1 +
.../items/stacks/sheets/sheet_types.dm | 46 ++++++++-
.../game/objects/items/stacks/stack_recipe.dm | 29 +++++-
.../objects/items/stacks/tiles/tile_types.dm | 46 +++++++++
code/game/objects/items/weapons/twohanded.dm | 7 ++
code/game/objects/structures/girders.dm | 3 +
.../structures/stool_bed_chair_nest/chairs.dm | 6 +-
.../game/turfs/simulated/floor/fancy_floor.dm | 66 ++++++++++++-
code/modules/hydroponics/grown/misc_seeds.dm | 26 +++++
code/modules/hydroponics/grown/towercap.dm | 20 ++++
code/modules/mining/lavaland/ash_flora.dm | 2 -
code/modules/projectiles/guns/syringe_gun.dm | 14 +++
.../reagents/reagent_containers/syringes.dm | 1 +
.../research/designs/biogenerator_designs.dm | 8 --
icons/mob/inhands/chairs_lefthand.dmi | Bin 855 -> 1135 bytes
icons/mob/inhands/chairs_righthand.dmi | Bin 794 -> 1100 bytes
icons/mob/inhands/guns_lefthand.dmi | Bin 72549 -> 72775 bytes
icons/mob/inhands/guns_righthand.dmi | Bin 83432 -> 83711 bytes
icons/mob/inhands/sheet_lefthand.dmi | Bin 13327 -> 13640 bytes
icons/mob/inhands/sheet_righthand.dmi | Bin 13405 -> 13737 bytes
icons/mob/inhands/weapons_lefthand.dmi | Bin 77415 -> 78153 bytes
icons/mob/inhands/weapons_righthand.dmi | Bin 75738 -> 76384 bytes
icons/obj/chairs.dmi | Bin 66435 -> 67280 bytes
icons/obj/guns/projectile.dmi | Bin 47828 -> 48272 bytes
icons/obj/hydroponics/equipment.dmi | Bin 25844 -> 25146 bytes
icons/obj/hydroponics/growing.dmi | Bin 72155 -> 73225 bytes
icons/obj/hydroponics/harvest.dmi | Bin 59668 -> 60447 bytes
icons/obj/stacks/organic.dmi | Bin 16935 -> 18720 bytes
icons/obj/tiles.dmi | Bin 15596 -> 16548 bytes
icons/obj/weapons/spears.dmi | Bin 1670 -> 1926 bytes
icons/turf/floors/bamboo_mat.dmi | Bin 0 -> 16771 bytes
33 files changed, 311 insertions(+), 60 deletions(-)
create mode 100644 icons/turf/floors/bamboo_mat.dmi
diff --git a/code/__DEFINES/icon_smoothing_defines.dm b/code/__DEFINES/icon_smoothing_defines.dm
index 0d2fdaf958a..882a2c4b2cc 100644
--- a/code/__DEFINES/icon_smoothing_defines.dm
+++ b/code/__DEFINES/icon_smoothing_defines.dm
@@ -57,11 +57,13 @@ DEFINE_BITFIELD(smoothing_flags, list(
#define SMOOTH_GROUP_CARPET_CYAN S_TURF(13)
#define SMOOTH_GROUP_CARPET_GREEN S_TURF(14)
#define SMOOTH_GROUP_CARPET_ROYALBLACK S_TURF(15)
-#define SMOOTH_GROUP_CARPET_ROYALBLUE S_TURF(17)
+#define SMOOTH_GROUP_CARPET_ROYALBLUE S_TURF(16)
#define SMOOTH_GROUP_CARPET_RED S_TURF(17)
#define SMOOTH_GROUP_CARPET_ORANGE S_TURF(18)
#define SMOOTH_GROUP_CARPET_PURPLE S_TURF(19)
+#define SMOOTH_GROUP_BAMBOO S_TURF(20) ///turf/simulated/floor/bamboo
+
#define SMOOTH_GROUP_SIMULATED_TURFS S_TURF(24) ///turf/simulated
#define SMOOTH_GROUP_MATERIAL_WALLS S_TURF(25) ///turf/simulated/wall/material
#define SMOOTH_GROUP_SYNDICATE_WALLS S_TURF(26) ///turf/simulated/wall/r_wall/syndicate, /turf/simulated/indestructible/syndicate
@@ -91,6 +93,7 @@ DEFINE_BITFIELD(smoothing_flags, list(
#define SMOOTH_GROUP_IRON_WALLS S_OBJ(9) ///turf/simulated/wall/mineral/iron, /obj/structure/falsewall/iron
#define SMOOTH_GROUP_ABDUCTOR_WALLS S_OBJ(10) ///turf/simulated/wall/mineral/abductor, /obj/structure/falsewall/abductor
#define SMOOTH_GROUP_TITANIUM_WALLS S_OBJ(11) ///turf/simulated/wall/mineral/titanium, /obj/structure/falsewall/titanium
+#define SMOOTH_GROUP_ASTEROID_WALLS S_OBJ(12) ///turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
#define SMOOTH_GROUP_PLASTITANIUM_WALLS S_OBJ(13) ///turf/simulated/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium
#define SMOOTH_GROUP_SURVIVAL_TIANIUM_POD S_OBJ(14) ///turf/simulated/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod
#define SMOOTH_GROUP_HIERO_WALL S_OBJ(15) ///obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall
@@ -98,7 +101,6 @@ DEFINE_BITFIELD(smoothing_flags, list(
#define SMOOTH_GROUP_REGULAR_WALLS S_OBJ(17) ///turf/simulated/wall, /obj/structure/falsewall
#define SMOOTH_GROUP_REINFORCED_WALLS S_OBJ(18) ///turf/simulated/wall/r_wall, /obj/structure/falsewall/reinforced
#define SMOOTH_GROUP_CULT_WALLS S_OBJ(19) ///turf/simulated/wall/cult
-#define SMOOTH_GROUP_ASTEROID_WALLS S_OBJ(12) ///turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
#define SMOOTH_GROUP_WINDOW_FULLTILE S_OBJ(21) ///turf/simulated/indestructible/fakeglass, /obj/structure/window/full/basic, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /obj/structure/window/full/reinforced
#define SMOOTH_GROUP_WINDOW_FULLTILE_BRASS S_OBJ(22) ///obj/structure/window/brass/fulltile
diff --git a/code/datums/components/caltrop.dm b/code/datums/components/caltrop.dm
index 4446dde3a26..f9bd2931c64 100644
--- a/code/datums/components/caltrop.dm
+++ b/code/datums/components/caltrop.dm
@@ -1,18 +1,30 @@
/datum/component/caltrop
+ ///Minimum damage when crossed
var/min_damage
+
+ ///Maximum damage when crossed
var/max_damage
+
+ ///Probability of stunning and doing daamge
var/probability
+
+ ///Duration of weaken when crossed
+ var/weaken_duration
+
+ ///Shoebypassing, walking interaction, silence
var/flags
var/cooldown = 0
-/datum/component/caltrop/Initialize(_min_damage = 0, _max_damage = 0, _probability = 100, _flags = NONE)
- min_damage = _min_damage
- max_damage = max(_min_damage, _max_damage)
- probability = _probability
- flags = _flags
+/datum/component/caltrop/Initialize(_min_damage = 0, _max_damage = 0, _probability = 100, _weaken_duration = 6 SECONDS, _flags = NONE)
+ src.min_damage = _min_damage
+ src.max_damage = max(_min_damage, _max_damage)
+ src.probability = _probability
+ src.weaken_duration = _weaken_duration
+ src.flags = _flags
- RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED), PROC_REF(Crossed))
+/datum/component/caltrop/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, PROC_REF(Crossed))
/datum/component/caltrop/proc/Crossed(datum/source, atom/movable/AM)
var/atom/A = parent
@@ -22,41 +34,51 @@
if(!prob(probability))
return
- if(ishuman(AM))
- var/mob/living/carbon/human/H = AM
- if(HAS_TRAIT(H, TRAIT_PIERCEIMMUNE))
- return
+ if(!ishuman(AM))
+ return
- if((flags & CALTROP_IGNORE_WALKERS) && H.m_intent == MOVE_INTENT_WALK)
- return
+ var/mob/living/carbon/human/H = AM
- var/picked_def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
- var/obj/item/organ/external/O = H.get_organ(picked_def_zone)
- if(!istype(O))
- return
- if(O.is_robotic())
- return
+ if(HAS_TRAIT(H, TRAIT_PIERCEIMMUNE))
+ return
- var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET))
+ if((flags & CALTROP_IGNORE_WALKERS) && H.m_intent == MOVE_INTENT_WALK)
+ return
- if(!(flags & CALTROP_BYPASS_SHOES) && (H.shoes || feetCover))
- return
+ var/picked_def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
+ var/obj/item/organ/external/O = H.get_organ(picked_def_zone)
- if(H.flying || H.floating || H.buckled)
- return
+ if(!istype(O))
+ return
- if(IS_HORIZONTAL(H) && HAS_TRAIT(H, TRAIT_CONTORTED_BODY))
- return TRUE
+ if(O.is_robotic())
+ return
- var/damage = rand(min_damage, max_damage)
+ var/feet_cover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET))
+ var/bypass_shoes = flags & CALTROP_BYPASS_SHOES
- H.apply_damage(damage, BRUTE, picked_def_zone)
+ // doesn't penetrate if feet are covered
+ if(!bypass_shoes && (H.shoes || feet_cover))
+ return
- if(cooldown < world.time - 10) //cooldown to avoid message spam.
- if(!H.incapacitated(ignore_restraints = TRUE))
- H.visible_message("[H] steps on [A].", "You step on [A]!")
- else
- H.visible_message("[H] slides on [A]!", "You slide on [A]!")
+ // doesn't penetrate shoes if feet are extra covered
+ if(bypass_shoes && (H.shoes && (H.shoes.flags & THICKMATERIAL)))
+ return
- cooldown = world.time
- H.Weaken(6 SECONDS)
+ if(H.flying || H.floating || H.buckled)
+ return
+
+ if(IS_HORIZONTAL(H) && HAS_TRAIT(H, TRAIT_CONTORTED_BODY))
+ return TRUE
+
+ var/damage = rand(min_damage, max_damage)
+ H.apply_damage(damage, BRUTE, picked_def_zone)
+
+ if(cooldown < world.time - 10) //cooldown to avoid message spam.
+ if(!H.incapacitated(ignore_restraints = TRUE))
+ H.visible_message("[H] steps on [A].", "You step on [A]!")
+ else
+ H.visible_message("[H] slides on [A]!", "You slide on [A]!")
+
+ cooldown = world.time
+ H.Weaken(weaken_duration)
diff --git a/code/game/machinery/vendors/departmental_vendors.dm b/code/game/machinery/vendors/departmental_vendors.dm
index 9da207c6d01..815fcce26c9 100644
--- a/code/game/machinery/vendors/departmental_vendors.dm
+++ b/code/game/machinery/vendors/departmental_vendors.dm
@@ -208,6 +208,7 @@
/obj/item/seeds/wheat/rice = 3,
/obj/item/seeds/soya = 3,
/obj/item/seeds/sugarcane = 3,
+ /obj/item/seeds/bamboo = 3,
/obj/item/seeds/sunflower = 3,
/obj/item/seeds/tea = 3,
/obj/item/seeds/tobacco = 3,
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index ba66cfd4ce4..8f15849d83f 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -233,11 +233,6 @@ GLOBAL_LIST_INIT(wood_recipes, list(
new /datum/stack_recipe("pew (left)", /obj/structure/chair/sofa/pew/left, 5, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("pew (right)", /obj/structure/chair/sofa/pew/right, 5, one_per_turf = TRUE, on_floor = TRUE),
)),
- new /datum/stack_recipe_list("bamboo benches", list(
- new /datum/stack_recipe("bamboo bench (middle)", /obj/structure/chair/sofa/bamboo, 2, one_per_turf = TRUE, on_floor = TRUE),
- new /datum/stack_recipe("bamboo bench (left)", /obj/structure/chair/sofa/bamboo/left, 2, one_per_turf = TRUE, on_floor = TRUE),
- new /datum/stack_recipe("bamboo bench (right)", /obj/structure/chair/sofa/bamboo/right, 2, one_per_turf = TRUE, on_floor = TRUE),
- )),
null,
new /datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 1.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 4 SECONDS),
@@ -270,6 +265,47 @@ GLOBAL_LIST_INIT(wood_recipes, list(
recipes = GLOB.wood_recipes
return ..()
+/*
+ * Bamboo
+ */
+GLOBAL_LIST_INIT(bamboo_recipes, list(
+ new /datum/stack_recipe("punji sticks trap", /obj/structure/punji_sticks, req_amount = 5, time = 3 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
+ new /datum/stack_recipe("bamboo spear", /obj/item/spear/bamboo, req_amount = 25, time = 9 SECONDS),
+ new /datum/stack_recipe("blow gun", /obj/item/gun/syringe/blowgun, req_amount = 10, time = 7 SECONDS),
+ new /datum/stack_recipe("rice hat", /obj/item/clothing/head/rice_hat, req_amount = 10, time = 7 SECONDS),
+ null,
+ new /datum/stack_recipe("bamboo mat piece", /obj/item/stack/tile/bamboo, req_amount = 1, res_amount = 4, max_res_amount = 20),
+ new /datum/stack_recipe_list("tatami mats", list(
+ new /datum/stack_recipe("green tatami", /obj/item/stack/tile/bamboo/tatami, req_amount = 1, res_amount = 4, max_res_amount = 20),
+ new /datum/stack_recipe("purple tatami", /obj/item/stack/tile/bamboo/tatami/purple, req_amount = 1, res_amount = 4, max_res_amount = 20),
+ new /datum/stack_recipe("black tatami", /obj/item/stack/tile/bamboo/tatami/black, req_amount = 1, res_amount = 4, max_res_amount = 20),
+ )),
+ null,
+ new /datum/stack_recipe_list("bamboo benches", list(
+ new /datum/stack_recipe("bamboo bench (middle)", /obj/structure/chair/sofa/bamboo, req_amount = 3, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
+ new /datum/stack_recipe("bamboo bench (left)", /obj/structure/chair/sofa/bamboo/left, req_amount = 3, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
+ new /datum/stack_recipe("bamboo bench (right)", /obj/structure/chair/sofa/bamboo/right, req_amount = 3, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE)
+ )),
+ ))
+
+/obj/item/stack/sheet/bamboo
+ name = "bamboo cuttings"
+ desc = "Finely cut bamboo sticks."
+ singular_name = "cut bamboo stick"
+ icon = 'icons/obj/stacks/organic.dmi'
+ icon_state = "sheet-bamboo"
+ item_state = "sheet-bamboo"
+ resistance_flags = FLAMMABLE
+ sheettype = "bamboo"
+ merge_type = /obj/item/stack/sheet/bamboo
+
+/obj/item/stack/sheet/bamboo/New(loc, amount=null)
+ recipes = GLOB.bamboo_recipes
+ return ..()
+
+/obj/item/stack/sheet/bamboo/fifty
+ amount = 50
+
/*
* Cloth
*/
diff --git a/code/game/objects/items/stacks/stack_recipe.dm b/code/game/objects/items/stacks/stack_recipe.dm
index 13acf7b06e4..2558b2dc017 100644
--- a/code/game/objects/items/stacks/stack_recipe.dm
+++ b/code/game/objects/items/stacks/stack_recipe.dm
@@ -3,19 +3,40 @@
* Recipe datum
*/
/datum/stack_recipe
+ /// Visible title of recipe
var/title = "ERROR"
+
+ /// Resulting typepath of crafted atom
var/result_type
+
+ /// Required stack amount to make
var/req_amount = 1
+
+ /// Amount of atoms made
var/res_amount = 1
+
+ /// Maximum amount of atoms made
var/max_res_amount = 1
+
+ /// Time to make
var/time = 0
- var/one_per_turf = 0
- var/on_floor = 0
- var/on_floor_or_lattice = 0
+
+ /// Only one resulting atom is allowed per turf
+ var/one_per_turf = FALSE
+
+ /// Requires a floor underneath to make
+ var/on_floor = FALSE
+
+ /// Requires a floor OR lattice underneath to make
+ var/on_floor_or_lattice = FALSE
+
+ /// Requires a valid window location to make
var/window_checks = FALSE
+
+ /// Resulting atom is a cult structure
var/cult_structure = FALSE
-/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = 0, on_floor = 0, on_floor_or_lattice = 0, window_checks = FALSE, cult_structure = FALSE)
+/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = FALSE, on_floor = FALSE, on_floor_or_lattice = FALSE, window_checks = FALSE, cult_structure = FALSE)
src.title = title
src.result_type = result_type
src.req_amount = req_amount
diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm
index d299e7a0eb9..47adcccace0 100644
--- a/code/game/objects/items/stacks/tiles/tile_types.dm
+++ b/code/game/objects/items/stacks/tiles/tile_types.dm
@@ -68,6 +68,52 @@
energy_type = /datum/robot_storage/energy/wood_tile
is_cyborg = TRUE
+
+//Bamboo
+/obj/item/stack/tile/bamboo
+ name = "bamboo mat pieces"
+ singular_name = "bamboo mat piece"
+ gender = PLURAL
+ desc = "A piece of a bamboo mat with a decorative trim."
+ icon_state = "tile_bamboo"
+ turf_type = /turf/simulated/floor/bamboo
+ merge_type = /obj/item/stack/tile/bamboo
+ parent_stack = TRUE
+ resistance_flags = FLAMMABLE
+
+/obj/item/stack/tile/bamboo/twenty
+ amount = 20
+
+/obj/item/stack/tile/bamboo/tatami
+ name = "tatami with green rim"
+ singular_name = "green tatami floor tile"
+ icon_state = "tile_tatami_green"
+ turf_type = /turf/simulated/floor/bamboo/tatami
+ merge_type = /obj/item/stack/tile/bamboo/tatami
+
+/obj/item/stack/tile/bamboo/tatami/twenty
+ amount = 20
+
+/obj/item/stack/tile/bamboo/tatami/purple
+ name = "tatami with purple rim"
+ singular_name = "purple tatami floor tile"
+ icon_state = "tile_tatami_purple"
+ turf_type = /turf/simulated/floor/bamboo/tatami/purple
+ merge_type = /obj/item/stack/tile/bamboo/tatami/purple
+
+/obj/item/stack/tile/bamboo/tatami/purple/twenty
+ amount = 20
+
+/obj/item/stack/tile/bamboo/tatami/black
+ name = "tatami with black rim"
+ singular_name = "black tatami floor tile"
+ icon_state = "tile_tatami_black"
+ turf_type = /turf/simulated/floor/bamboo/tatami/black
+ merge_type = /obj/item/stack/tile/bamboo/tatami/black
+
+/obj/item/stack/tile/bamboo/tatami/black/twenty
+ amount = 20
+
//Carpets
/obj/item/stack/tile/carpet
name = "carpet"
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index d2f28de7e2a..fe099a83823 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -321,6 +321,13 @@
throwforce = 22
armour_penetration_percentage = 15 //Enhanced armor piercing
+//Blatant imitation of spear, but all natural. Also not valid for explosive modification.
+/obj/item/spear/bamboo
+ name = "bamboo spear"
+ desc = "A haphazardly-constructed bamboo stick with a sharpened tip, ready to poke holes into unsuspecting people."
+ base_icon_state = "bamboo_spear"
+ icon_state = "bamboo_spear0"
+ throwforce = 22
//GREY TIDE
/obj/item/spear/grey_tide
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index d38b69822c9..3bff273939c 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -86,6 +86,9 @@
if(istype(W, /obj/item/stack/sheet/runed_metal))
to_chat(user, "You can't seem to make the metal bend.")
return
+ if(istype(W, /obj/item/stack/sheet/bamboo)) // pending wall resprite(tm)
+ to_chat(user, "The bamboo doesn't seem to fit around the girder.")
+ return
if(istype(W,/obj/item/stack/rods))
var/obj/item/stack/rods/S = W
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index 6f01518ae99..e472f9b19e7 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -424,7 +424,7 @@
resistance_flags = FLAMMABLE
max_integrity = 70
buildstackamount = 2
- buildstacktype = /obj/item/stack/sheet/wood
+ buildstacktype = /obj/item/stack/sheet/bamboo
/obj/structure/chair/sofa/bamboo/left
icon_state = "bamboo_sofaend_left"
@@ -453,7 +453,7 @@
resistance_flags = FLAMMABLE
max_integrity = 70
buildstackamount = 2
- buildstacktype = /obj/item/stack/sheet/wood
+ buildstacktype = /obj/item/stack/sheet/bamboo
/obj/item/chair
name = "chair"
@@ -497,8 +497,8 @@
/obj/item/chair/stool/bamboo
name = "bamboo stool"
desc = "Not the most comfortable, but vegan!"
- item_state = "bamboo_stool"
icon_state = "bamboo_stool_toppled"
+ item_state = "stool_bamboo"
origin_type = /obj/structure/chair/stool/bamboo
/obj/item/chair/attack_self(mob/user)
diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm
index 5f448fb6075..5a025355fa5 100644
--- a/code/game/turfs/simulated/floor/fancy_floor.dm
+++ b/code/game/turfs/simulated/floor/fancy_floor.dm
@@ -53,6 +53,7 @@
oxygen = 8
temperature = 500
+// Grass
/turf/simulated/floor/grass
name = "grass patch"
icon = 'icons/turf/floors/grass.dmi'
@@ -102,7 +103,6 @@
transform = null
//Carpets
-
/turf/simulated/floor/carpet
name = "carpet"
icon = 'icons/turf/floors/carpet.dmi'
@@ -204,9 +204,71 @@
oxygen = 0
nitrogen = 0
temperature = TCMB
-
//End of carpets
+// Bamboo mats
+/turf/simulated/floor/bamboo
+ name = "bamboo"
+ icon = 'icons/turf/floors/bamboo_mat.dmi'
+ icon_state = "mat-0"
+ base_icon_state = "mat"
+ floor_tile = /obj/item/stack/tile/bamboo
+ prying_tool_list = list(TOOL_SCREWDRIVER)
+ broken_states = list("bamboo-damaged")
+ smoothing_flags = SMOOTH_BITMASK
+ smoothing_groups = list(SMOOTH_GROUP_TURF, SMOOTH_GROUP_BAMBOO)
+ canSmoothWith = list(SMOOTH_GROUP_BAMBOO)
+ footstep = FOOTSTEP_WOOD
+ barefootstep = FOOTSTEP_WOOD_BAREFOOT
+ clawfootstep = FOOTSTEP_WOOD_CLAW
+ heavyfootstep = FOOTSTEP_GENERIC_HEAVY
+
+/turf/simulated/floor/bamboo/Initialize(mapload)
+ . = ..()
+ update_icon()
+
+/turf/simulated/floor/bamboo/update_icon_state()
+ if(!broken && !burnt)
+ if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK))
+ QUEUE_SMOOTH(src)
+ else
+ make_plating()
+ if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK))
+ QUEUE_SMOOTH_NEIGHBORS(src)
+
+/turf/simulated/floor/bamboo/break_tile()
+ broken = TRUE
+ update_icon()
+
+/turf/simulated/floor/bamboo/burn_tile()
+ burnt = TRUE
+ update_icon()
+
+/turf/simulated/floor/bamboo/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
+ return FALSE
+
+/turf/simulated/floor/bamboo/airless
+ oxygen = 0
+ nitrogen = 0
+ temperature = TCMB
+
+// Bamboo tatami mat
+/turf/simulated/floor/bamboo/tatami
+ desc = "A traditional Japanese floor mat."
+ icon_state = "bamboo-green"
+ broken_states = list("tatami-damaged")
+ floor_tile = /obj/item/stack/tile/bamboo/tatami
+ smoothing_flags = NONE
+
+/turf/simulated/floor/bamboo/tatami/purple
+ icon_state = "bamboo-purple"
+ floor_tile = /obj/item/stack/tile/bamboo/tatami/purple
+
+/turf/simulated/floor/bamboo/tatami/black
+ icon_state = "bamboo-black"
+ floor_tile = /obj/item/stack/tile/bamboo/tatami/black
+// End of bamboo
+
/turf/simulated/floor/fakespace
icon = 'icons/turf/space.dmi'
icon_state = "0"
diff --git a/code/modules/hydroponics/grown/misc_seeds.dm b/code/modules/hydroponics/grown/misc_seeds.dm
index 6e4bf03af16..30bf347ab55 100644
--- a/code/modules/hydroponics/grown/misc_seeds.dm
+++ b/code/modules/hydroponics/grown/misc_seeds.dm
@@ -83,6 +83,32 @@
tastes = list("sugarcane" = 1)
distill_reagent = "rum"
+/obj/item/seeds/bamboo
+ name = "pack of bamboo seeds"
+ desc = "A plant known for its flexible and resistant logs."
+ icon_state = "seed-bamboo"
+ species = "bamboo"
+ plantname = "Bamboo"
+ product = /obj/item/grown/log/bamboo
+ lifespan = 80
+ endurance = 70
+ maturation = 15
+ production = 2
+ yield = 5
+ potency = 50
+ growthstages = 3
+ growing_icon = 'icons/obj/hydroponics/growing.dmi'
+ icon_dead = "bamboo-dead"
+ genes = list(/datum/plant_gene/trait/repeated_harvest)
+ mutatelist = null
+
+/obj/item/grown/log/bamboo
+ seed = /obj/item/seeds/bamboo
+ name = "bamboo log"
+ desc = "A long and resistant bamboo log."
+ icon_state = "bamboo"
+ plank_type = /obj/item/stack/sheet/bamboo // this needs to get datumized :)
+ plank_name = "bamboo sticks"
// Gatfruit
/obj/item/seeds/gatfruit
diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm
index aeed24e7541..6364f1629b0 100644
--- a/code/modules/hydroponics/grown/towercap.dm
+++ b/code/modules/hydroponics/grown/towercap.dm
@@ -102,6 +102,26 @@
/obj/item/grown/log/steel/CheckAccepted(obj/item/I)
return FALSE
+/*
+ * Punji sticks
+ */
+/obj/structure/punji_sticks
+ name = "punji sticks"
+ desc = "Don't step on this."
+ icon = 'icons/obj/hydroponics/equipment.dmi'
+ icon_state = "punji"
+ resistance_flags = FLAMMABLE
+ max_integrity = 30
+ anchored = TRUE
+
+/obj/structure/punji_sticks/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/caltrop, 20, 30, 100, 6 SECONDS, CALTROP_BYPASS_SHOES)
+
+/obj/structure/punji_sticks/spikes
+ name = "wooden spikes"
+ icon_state = "woodspike"
+
/////////BONFIRES//////////
/obj/structure/bonfire
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index c8f0a1e584e..cf5db27e82b 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -145,10 +145,8 @@
/obj/structure/flora/ash/cacti/Initialize(mapload)
. = ..()
- // min dmg 3, max dmg 6, prob(70)
AddComponent(/datum/component/caltrop, 3, 6, 70)
-
/*********
* Rocks *
*********/
diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm
index 39a292da958..8095a203e9d 100644
--- a/code/modules/projectiles/guns/syringe_gun.dm
+++ b/code/modules/projectiles/guns/syringe_gun.dm
@@ -399,3 +399,17 @@
/obj/item/gun/syringe/rapidsyringe/preloaded/beaker_blaster/attack_self(mob/living/user)
// no printing infinite syringes.
return
+
+/// craftable bamboo syringe gun
+/obj/item/gun/syringe/blowgun
+ name = "blowgun"
+ desc = "Fire syringes at a short distance."
+ icon_state = "blowgun"
+ item_state = "gun"
+
+/obj/item/gun/syringe/blowgun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
+ visible_message("[user] shoots the blowgun!")
+
+ user.adjustStaminaLoss(20, FALSE)
+ user.adjustOxyLoss(20)
+ return ..()
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index b2ec803cffa..ff2a5af0b70 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -271,3 +271,4 @@
amount_per_transfer_from_this = 50
volume = 50
list_reagents = list("toxin" = 15, "pancuronium" = 10, "cyanide" = 5, "facid" = 10, "fluorine" = 10)
+
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index e3d556355a9..8ceaabe419d 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -210,11 +210,3 @@
materials = list(MAT_BIOMASS = 400)
build_path = /obj/item/clothing/accessory/holster
category = list("initial","Leather and Cloth")
-
-/datum/design/rice_hat
- name = "Rice hat"
- id = "rice_hat"
- build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 300)
- build_path = /obj/item/clothing/head/rice_hat
- category = list("initial","Leather and Cloth")
diff --git a/icons/mob/inhands/chairs_lefthand.dmi b/icons/mob/inhands/chairs_lefthand.dmi
index 7377787a63e422fc9b3a649277c8700af7426bf3..6744dd8fa3045170be26cf9e04e3de7d3d67e89a 100644
GIT binary patch
delta 1036
zcmV+n1oQjX2JZ-eiBL{Q4GJ0x0000DNk~Le0001>0001h2m=5B0K2`CDF6TfKTu3m
zMF0Q*9v&XIx3`UrjZ+K+Sy@@M3{3+?u-MPD2
z12UH{I5{5YuvMi}sZ=V}H&$IwzsG}-W){^y>iKmz7;9&cwLECN56e#I3=bKnf-)0s
zb_a~pAz2B1GqHa$6p)dyzSKeML@@7+P_dEB7NKAg)=kr(=YNhrL7PXmg)@!8Va@f1
z69$va?>WX4;ndGt!3ra^8Mj>w`%aXH=_|SPQdil|1QR;*-BAFTB#aG-(B=v);kt6Q
ze-J7WwRTY}xE%5C$(Bg0w1$GIKA}Z$KFUFn&>TEtkv@MfCWHb6MiM?TVTL;iJ@Cw(
z1R2g>LD`Hdl}e>jsZ^?j+IIRaSM9HMew8ZARxY6Y_0CcIrauG@I1@H84Vocc!lG5!Q?e7@UMN0Jmy0K(abw}O>VIKTe@
zSJCpx>VJPp!o`TJ|JjV&uCjdx=b@{^iJs+C#kz5nJ!sy6VXWZ5$Y6oo
z-E~#TR13)+$J)RigT*s>z|8Ht4
zGrZg+{i`1@%oDvhQTP@d@Vy3>$%R-&)7yW)%QB1~+pN7@!alKvW8cizQzL&*L}6P9@2{IM~-ABWwz@
zdv_q1?mZ|!QK+OrgE{>N6j}+5;o&(6k(My{gpukC=r4OL74=d#0rLO=002ovPDBK*
GLSTY28`@j|
delta 752
zcmV~S+VMN-7Nk?=isnH`oxzJ(|X
z2)IV5bUb7pw_em^l1{iWQjcy6J-AWR_dCdgOX#>+6n`_%B?xK~#ZEH`k{L%)Guuot
z!F|dG{Yj!=27odlGf(`j?R2Q;D^WZ~w3dk~|;jH9$Gkx00_5~Jaj
zsOTUdAb%hr;1BRnm?qA#xsdb4v+tl5YvZzf#RTPh*N-J}NfoPZ9-35X==&
z*S7t_1ba!mcSa{vc5+|cK@CYQ`-yKqSY6Ez$%44$Rca>A8u(as#;C7>mCOwO`vWn7xX=p=7vjsr
iPY4FT>IM8Wd;`U|a44$0?Ee4&002ovP6b4+LSTaPcTIQz
diff --git a/icons/mob/inhands/chairs_righthand.dmi b/icons/mob/inhands/chairs_righthand.dmi
index f04962de189b1b88bdbe3829826e73f14525615e..0809a7c0628883363ba3fb095f6af9d3c5040010 100644
GIT binary patch
delta 1000
zcmV0001h2m=5B0K2`CDF6TfKTu3m
zMgRZ*9v&XIx3`UrjZ+K+Sy@?)69u#k111?0mTX3cN+4h)3X+RbRa`4xgg~RiWo2MD
zhp19|mPmvH2D428pnT(%o*C(Zjm>)H^z8zKowxVYKT
z>9jvQAEV8J}@?JCn&|GMWBwIrk0CS-sBVm%bb8&FeKDHQijktqA#i+Yn0lwjh-8
zRTJ*T-AD&Mlfr+as$0r8T|+N`eN`7{7R6v%vAxJcNTko;>M4^-B2M0rPVxM}d#@
zf2<3CmE*|Q)l6#$uQIXrk&p79d-?ki9#73f&FvE(K4$r(6rYoYaAHhg-YR(x8gc6>UomVBezhuE#yu>=xNavrY72JFgCLs%StIs$&~;KBOtE2Dzl
z{)}IIxJl&rDgT2>98xdxmG8*Y_|$_cKIgxZr2G#gr1{eN@>e;Iq;^Gm&i9$;oKNI+
ztd{W!_91_Fe7@@)Qin@lcC(N8oD>??%KyaYgW0!U{-^jW$mm)#|I-kz&9^pTxnte@
zPjLsu9VU~>WHOmd@1yK#phZk4Ql5*n%}L67<@s5J5KWPgOlH_(%>uI&2+3rDFEsgK
zkdTB5J|u!F65>xB-MB{$U|mfslIIJAWV-if@0{L4rYud@nH&IUasxN{&Qt-lTXB
zO854T%%P^IQH+B~O5)LrZ|pH4Q@oc)Q|>Vfev;D~!mG^42KMZ`2o4*&@pnj{7$6o-
zc2V~hEvJ9U@c_V8`LGumnKMAUjgj#Q{-XfReOObd_h2JoBtL~v^-0oH#3xBZ3X{oX
zGMRr&CX?w6wMKyUo$|-6326D_X=?;hbjEiH()liMIUx0-N6h%pt6d)k9@nD2gQ`P-
z>(PUp&r|8-&UyqWYT^N@0A^jbP@Z1rQ`grBe
zJcHmd5ucCQ^#;2__2G6`dCW6v2(d1>ey<}`>|m@1tKYk}gi^k0!qqzPnQHh+zf
Wr4}t_cZEp+0000XgY_D0
zum(Av3!0!iXksLrA)KzeYe8xk+FYw&(Yi$oQgvz<$U4sv+39F|wT68By`ztXco>?(
zNz@B(rXB+p!acypfJG25SpWvc3g{r9q~dRg!C){LZb7w0KeF3Qp9qf%miDqo_k%+>
zF#nu+QhzW5ZymZH>|Xyq1j3_&8-VwNYWUiCKd7<=Zout2d_UOziWY=Z_Jh1fxQ1DB6~?dW469tK_zj%6+s_!zJd?g2gqEP{B+0x&REKnFeGSYa?23^ziI
z!V^*|9u=AlnVfd%`
Y20jgN@zb>RIsgCw07*qoM6N<$f~^lL8vpQS*F(wlUV-bI?!*yvSC
z=tSud0+Nt~gp@nc_xtX5|8@U={VW#YOy-=KvuDrqJbUk%ui4%9d3UtXj^UUKy1P@f
zoUg@rJ3~MIq$6ec8VIGWyZoAm9}o4`a_=8A5sRz6necM)V1@CwnEBF%h*EaR>DQ`w
z;oY%v=b~xvPgcu}-zi-D@Q4^c{R=+hi0jNpqT02X$Vbvv(6un|@$m5he-U@F&?92p5{b(D
zPDPxw6my5)_*Q!SFl9VNd8}s-?m`+=T6*ko+S6!n6Q2C%f})47UOm`G>fI%#mlai`J@_JA-$Gd)q!{}cbE-<1m>U*qe}ArYQh*>6
zed~#ddrbN24QKo()#Dpa+{aIRUJ(5Vdm$Owsrjen;l1jw4=V*D;zo^2FWIzLnt7qD
z{s{I@!nkO!WyxK8;OZ&c^UpFpdgz{C7t30;7kw=6LaI6A+FCFA$Nvm!*WMU*zV;&W
zkxI?6ULM(Rl-s9&)A~u*YE*z(glh6Q#JKrPUaih~e4+FkT;v}!I56`11Cehuw&mkR
zgn#qhNIpI$WrK`h3g;2b4r(0xN!#Bd4cC-7{MM-WY;a&m2z7S34+-bHzN5bIn%w@0
z&uO>%xgpn7AGNQiMONP$DqPiE-KCs$@9nR}vCCSib_oPdFUIPzdvlJL`=3jlTxv_c
z{4=G{SQ#yn5_^?sr}KgLK&D!>9$m;b_ygC0Ol>ip&7Ir!CDMF_q1J~z6_20Vp)Au-
zH2lR}@0@?qu8vgT6@#jHlf8H;y^yCJi2Ha^xJEjZP%mH~O=^{`zFjqDPT)T|&6YY>
z%l-bTZECYw%D~)vAsnt(=%c%Q%f|{qYC4e(e2~taLu0G21Us`w!c??%o&2Bae&U
zirq9&K%RhaR8Q_WSu@ldesiJD8P?dX_%Zjm0|j};WjW&QA2Y2UJ2!X~k*0+HLny7D
zt4JLD3cb1Fp{!!|bK^X3$x
z+<7I)cTrVK>DFxI)(^(yIZbwa_)NUq9^H*&nKRNR&~s$MQY?~tQ{cT^p~kB@e8y}j
zR$irGa>KE6`fT*>!smj4#9z2rotWc|oIk%e9zNC`$n$l{rlQ;_WZ|gY=5B9OrQ=zO
zy)pZz#v(PG%JilyIq=eOqZ&-8Ku=hF=yMwh%4x^w{IO_H0jY}vu3yk8lh*4JR&SU&
zp?I!wHRxJaP=Uyaw;tow8DrkE!?xwLks
z{F(WZ(R|nD@_@VZM
`FZ
zGQ&TLi9AXGcERP>UY*6h;TeN89ASi{&u|N&dZoO9-
zRY~8Y`Wu?fE?N(YLbW+h>X+yVYaBlpw^!rd$+Z1X3*9b@J-@T*JT_CRqG}m7JnWrN
zjej*f<;y=6xIWEZeetvPNa^!<>~QrS2Zq`plUGN
zTGu=z^@JUJ)1B%8VDM%AeX=ETd1L}H66%NYvuJyRHH@1hA(vhS5U?W%o|RfeG@PP4hbW_1
z+E%|2u3bSruUM9;Ez735}DeOOs=5evS
z5|Li3M?nyBTO#qO1>Nvnnb1vK*#Z(GzNFFf(+F^C0&*|4`!^wnlVZUF9NZC{Q`NOF2(u$
zL646+fBXG0S>EntX;{xYiSN(9-yftV_Z{NZu-Nz1rf*Cfz2gzq@d_mI`_X7O_&&kq
zSq?ex)(E%9Gg?O`txJ-5UtZk0e&~m-#Nf~Vdke!u_Llpl3C_-XTI!);Ew&EJ1G&q!
z?0O9Oq1ES@?RW`DFnQlzNY<9Yq1~z-QrcB>*4g(PFd>BJS7Xc>GUkv5YqdE{C1MD8
z2+bM;t#@Lk&Om^)URznolD
zblI!*jH7mJ0MwurD-B$#zgvl8rxbDFtyJ%R3J#DtYvOWHZm=G5q|BOI(YIteL(w!&
zR8*!sPg8-Y-`QPU_;arFW|OjCS!*P3v2}wl^niDy&lSC@ag-V_!7NU^G8_@hcbZ1J
zM1h}M*3>Z-w_X{kcdaz9Y>Z9KN}oAh`^
z#6=r4OO%;cYFb-cbDuu_hc@H?A~x4SWapF!%L|e;7<21-@3+B+AtSa^8e&uRmx}GK
zahvGwv_#6pR^ic>J>aTj@Q(d1uN34FgTk?}&_fvx*dMbK$Ntb4gBm*32U2;-QM@~?47;4C`oeow&);rcH51N>aAEy+7
z*0-7rS$?_Biz0^shld1pD$MjM9eM^{9_ESH6ZXom6gn>9M3y2Fi7QxaoRW%rht^B~
z!1~e)x`|5-7`i)^^!Ck&Aj{ye{u+D_rZVaY02RVo{*~K-P+-FmewC6J>|Em(g%z61bZZ5@J_(;86BV9anr
z#J}Fa9e|T}V0cv4jJ1sl8X7DuYuyuslEo`MQzrJ;a!}~M`eI$0D6Y`=6_1suJCl4d
z0L`GMHNU^p;0pRK09zJHkno4-5_3B+@)_J=50;IvP&wR%8a(~~f;+HUT4|KC8PmG)aRq>e*0t*~V~}JQfR4(?8#DK7;qn>l
z^A_ctPRjVZ2=E38=b6CyEeWejOBcgvI5bwnA}VMk={~1Ly>}saz~33>`AjFeeRHr_
zbo+Y=CTm{r?L@@|nJ#I27W}o59Ya%+;}FC32aP}aZ4AxgAEvOth-m=Xy{$p^rJ!n%
za_OyG)mJ9|-4jOZfc68t9A;PChE&S_3#B9r_qoJq{~!sdt~_;Ub*^TLCWJdkxwhxBE!NKQs-h|l3g1xx1vNEu>F?+Z2Vc%;m
z@dyopJcplr5&Uo)04#6XW?8*{c0`4Mt;bchSH!b$Buq^C)7H#6{~Vf}>u9tL^DvKW
z{2j*FijRP9l-L|X<9avh9`Y1B7xX{yN^6A_AyoSR7p;afLm`n#0$K)i`PCJ7u$RT}Z
zKK!I!Qo2zk=Y;_gykCI^z^o$)+L`T`tp9;^J10drquL_&a=g(4+kKg5WW{jcTK%rA2)jd!X|MVlcv_ob&qHG2nphC|ANhfQYvi2Fk;K4~CD`w?oL0KRu-VhbyFUvL|ZMoa#Cb73q*eKKG-
zv++4*J6!eb(q2{Y2E4qyWw4$86$NuIw1tfNmu#lvMVHUOK2<>iI|Q*{%?
zJc6#Kg`k?7n^nbjp7gxVdKrMC_SD-y1LC!XhK7f8A4;c;*lJVhlU9280kGWF_8rGt
zpuZ4eJ4>295AJ9Q=Snpbb4V03|3Kd+XL_ctt*u3;PIM1vGzAV1^}jEMHRyqfQM`4-
z7kbkQf1bMJ&S95-YTXc4BOt1*c~w$IM*3mjbdx)>sK5l%pb||neE3k3
zFmXl3rVk=EVS8vbx;@Wd=0U0?C+WFNUdlEnr6H77DF{IVkY6<9>ps6u-5H$|opa02
zueQd0>axzt(o(xqtl*@IH@-Xe1K;F$3=4(<3LnfCAU)ieX;EO(2*8IuZ4T)mCO=ly
z)Ns2@+QQu53dd*{06PKVF)}qxiWG_~6F;aaaLh|6`Hm@MngrxvF0h;Nsn$do!e*1J
zS8&&^Eb($wSrQ^p-xT4S98%|BN#a$=>4_75(1cmgiK|-gKTr20I9LadJ=l{{+Q8bi
zn|w{QahGvC6{{e5^;hxY4He|`;&p4Juwk;&Y9NPfpBQy^yi5-BSUoOZkK`)Sy3&`5
zY?Odjw?kHdyZ%+g4N)|D1g!%&Zh3jRTvy0i+7c*A_oLfaHUBiw)uoBmX}8n{3c97gqnFntEJvf4_am=8rge-0qTQ
zzoxnmwz0_=-{t<`5YHQvTQfa9!Y+%8Z{FyXF@-Ny!vfTkV7Bz?!L|FryIZ~gUzA))MM2G
zNo&JhAyVy?PHeg#xz4xS?&v+T?$q#wA+@D02->=+UZ
z>C7QRf>9zAOIBkeW1CFGghxFw4~PGUbkxHIcw}8qZ_Hi=oa;LJ@&3d6f_zb;)G!@Q
z5jfQcPlY%Co%(VNl)JPKN`eJAFWFi6a;a-tOnzKLMqvHGeQ(c5X#zU~N>C5ePy+_L
ztHjs0&8-P8fJ$av3&flr*K~%lT&{%uBUg%#TZ-t!cu5O?I!{CjK!ii$Z_Gw^cX~tE
z09o|6)_h9~Z+B^DVDAf6>%XpBkD(XFARnK}Se6bL62vZ=)>NN?Z?*?~@12jhO6+mN
zr68Ak2naqdE+RC5Bb7@l+yW7$H9T>{Q@(zk4*Bs5C36a;gp)3=$-rU?6
zKYHedWb)bZ8sf-X(mDpoJ9)~}-KHJrs_V-?@$+3hoQ6v0m$Rjw=6t0rMnl@vhxfI)
z8*6SMk>xgzfA7Hzr(Lc#DCTo|3`^6--Jot!RB9&s>s*t^{Fb6aK6%*X)xAr3WTt=k
zaLO&ye1!Y7(rStfgnkhR`TcrATAeBexMTFPjg;W#<}f3_xWwS6yWO1H3|1tcOsG9_uN^LTeT4&%qz1$&M8v_@ne(xburOZ~PkLjsZl22r
zvk_T&|C;W8T)5-}ErMl%)tI{tKGs5tlzdFHnOC3IicEA#c_~&_{!Cwe-kp`lJ6579
z%GmAc9eCgZFMGB-YifqzJaF&r58bj*Hh`_8fztG6b;3lD}j~-wNG{WtXq{*%AS!t%|W#K&^nq7^sj})2jH`|<8fbz5emO7*`
z*$cl&KmRu*2azCZ8_Fo>%e6v@#4~PZ0@k`Ec1r3$k%m!U?A1#n#}3B-T=9`~hz_(*
zKW3L+XiHzF>QO8qxM5Rp#o~IRwva8pPz1Bh)%C+;wi{qUZd|zx;5vE9t4HfUmG;o=
zXIrzF78tm{T%0Fwmg<>O8xgy`by|b4cP=5u8&4T?bg9kWiC0zl$nur2HmJx^PDS2z
znv*-Fd(5u)3{_!2YV5TBO6sN}l0TMM_gLiFILnP88RO~IkzRsx2TG5yZZ?s-UiOwn
z1}OFGI1UQOUQxrp!x(W9>f6h_z+Ja_q?ohU87ym`aLe!p{%&tAj?v@4qC!b9a
zcUQpY)-f9gpVH`xHs_;JP@Cv(JbC@`3snY#mxGPXaHI9^bUUgs2J#nV;x!rb5wsm_
zamPU<`6R6rK>Q`r*|c|HlP%O*J2z%9!7`;%+>%njB0XIleAo_G#FK%@+edNKVlXrq
zYv-7&?HC~Sc>l7uaX%j3Q+gn`EC1O4!Fq?fcg^(3P4~}Tic=0eYDxDeM994i#u)yU
ze5}ZKI)oqE6Ze)Y^k_x;|z&+@8nm#&|
z$)ce0-FYODU}7H!>#0eAh0+(H)nPAP0j6Df23Ch*0^O8>GMIv*uNL8ysJAqF6f4F{
zUqoK1FA&1ZL0r~ztWJ~dm^i5?EPkW8uV+LHm2Q)Q1MUwi*O+`~4d3{2g|E7-**YAC
z(nE*->TIi5v*{ibUDQv_Ye_=np@(ZH%BCVW8EJBEDLminBS8@9#DG+gZaVYKMFP4$
z1#*U-#iFM8%!u^wUZP-j&|~*p0OHU;6emy(85BY0y>rka1+xL;NVvoBqjjm5Eo6>o
zzMn(Z?lTE?Y5x2{2#+ANoMf?TTM{L|OwBz1iFtA27Xbcs%y^1|8S
zVJ+`9f8)&`cFe2$Dn3mCwEe|{TkKILCi?g{eLk;_#@{l(f<=G
zx_DUWBp7mzBkt#kw@|c>mscf#j5k@ixw*f5xa?B1&oc+67aq2ws%quA@i3fQX-e?nk3g
ztbgDXF6Y3xbr>rsHG~*1#%-D@fuGpCsmu8;t-miRc+R~>PkV=EhviPg&K@ZS&)eMG
z{4A#vb@uUGZC2<$4uvvBE*E6|*Rx8GZ%G|7ynXF#;#}15uOV8*<+D8^#E|RV7^kVa
zt3`hxhFqsP;}V(Oo^b@*`=ajl+`81?Q5kc64AjVkEfWKQ)fQoT_90?HAgym{nF`X^
z!XsSYtL3Kdm26wu-N?QTop1;ptoMo;7lf09ecbC*&b+;RQviY?b{hrGwN3w_0ZF{6
z)V^`AeX=079n%&1Wr&YbA@^^fMrNSkt##%qvmufWF=r@HEKxW?SE}S&W5_OIY+OC$
zbu6AQm-KZlJd5~kfjs`n!^qEIc3+N`64RdnOtmO!C_>)gDRyDhUG;>SYWlBC8M(AuPYO8E>1Q;ik$qdreezoH*6&x;nKbkI#g6>D#>UyEHvaSRxSFb}cff;INV;6h
z`zCDeUW3k>7#c<$4||^PwW$Vb6UO-l!(YBUNwoIPTJy&{MexWOq{<u>Q+t{H%I)+vRacBFiH8UDU1^ZG{83G^iPa$rPRMuMU{{7TViyE$4
zQ}1=Gij|zq=iB|9;W0OI)+<}@sIMzd8@|8Y#P7;8^xwoP3o#%P6VLUp@0Fb|HW}^Z
z%%ZE;5wwaN*v<#Vid;`uZ+m$WUgwA8x;Qy`%zIyg|G8T9_sv2j%1qngr)L9R(Eh*w
z-5GaGC>r{s29n1BG;S&V&03rNch=e%w1d24#@XE_CMKTuG>A^j5aq&In4W}p09;PIbWVO^8xlQ`^H33BD!RCj@{NoGrMGU1zv}hITk>657
zexs6CDsT^yP(FV|Sb1kRH#exYXV=#-PLaJc=lXH=m4&6HGN842=>UZTcprxmBSVZe
zQfjl4mbK#ksw0nR_vi-!%ICnFOT1vg8%PeLuF~G2gsNc{_MILQ_Qs}3r)sJ@
zu=S-38zQA|`x9zJ%UNIk%F9O2&DUjxWicZ@+fArpy9s@W)yQ;DS`iL1w;92;F?{{}
zIOr2*)p{re&mSAee5t8&P=sOX1YG2fFqyNgwXUwNUNF^)d}uc;NhFhBHBKg4FH;ah
zOat?UOv5SPVKh1=oQm1-VX)V?#Xn$BhTKenCC&Slh1Y4y=4=Y|%|V&jKPPzQJvB5>
zMnXU&pdMW-si~1292}gT7E<>76@z(sgimSd^O}1=a}gWc$sQez>vyb9-(|VGGl12D
zufE69JY?Be_?v`e#Kw;{$d$K5zrS+UjoE`#LhN=%RJDt_x(w!lNE@^?jy@N~n;+W1
zertU=9Ze2b1;*%+8I}o{UpfZCUi#^)gr5(w7;V3SZ^vf9cHWJ0lk?$hE+J!Zc-zNX
zC85y_2ICe4LE24y*hW#l*tn?YIT`v#g~Bvug6Uhj=kt9g9uOB<--OUEAkNYpJDG)j
z%C{0Jilq}*is6RAYda8&%&wfx|LtcO-)gpph2NDDKK*osyUNPSYxXhA|g3eXXu(DAWJb&$DLXd|Djvlb-ee`uXPR%9>1#
z_`rzvw4s*FIp9c}e~hzOeQ%4{_+QMKUaYQgHaFO(j{e%yTJ*rCuV3-VN{x#d6p-oX
z_0W%{s!{6%@+!A#n1;aSW-Elyjs@>)5jc3bhPwiQIlyOwSojP~(_E`^7&6yZlo*BXYb#xo%6ox-TAfWb8;({@iSX1m~cDk_PklGb^fL!
z^OW36pTm?)4N$p5mEif01NsH{3!p)mJAym=Ajq@!jHkL^6}0Bc$<1vkXWkpeJ)iwbnMIHiB`{ho1#!G%PEp
zHU5yTETM>iqxSTmd-u-$*(VD;So-SKb55K8MQd>oWr2h3B9cz0XNm2*o@J!86{lG`
zk;o}x@H~KlE7q?+Yh8A3lz$w47X7W8%s&R5hjBf9HqO5l
zUd*lv;2l&3{XcP*85S;%85Z=5TJ
zA9vh&9$qHSW)3Mru_wY?hR|q-$w`UiYaX`ee0NTjDW;B(TMVMn3*i~j%ya+Z2sPJm
zaCE|oU?}&X^Mq93Ht7rRm%6N5)qT^=%5$|Z5=}v}^T;MYD7Fs9Uow7cNg#YbBkp@b
zAxdw8@O>s~@WoLVkJ+*WLQ_UwKHvCeNr?A|PZmGwHJ
z7FR~Euk?M`gLCj4yfgUoC-i%%$*JYd$$Ufi6z5ao56N^dm4v(GHz!4V|9C2jnv`7o
zzG5iNUHV8N(uG|WZJ-UfumFXE1F$CoR-2!T|1*RU-m4=J^B4hV7_~c1`I^%y_ZO!I
zqEK_;>2R=gSQK#jm0%l))&m#qqNStVl7=(kjD<{!0uu!(Qj;DeqXz47pQr>sE#`n6
z#d7c7y=uEa(POS6N98ji+#mLQvTl_TE#wx23v5R0_G}=zu37n_D8G7Pm;J@$tE|gw
z62kRUWnV<{DRV1;(?4JVi9N_5Yls+u`Z-!*_rUR3L4Cc#?6;TvDrkGHW_Coj4$e^Q
zl(C;5RGa#};RAMDJS*swnnET$Bh5y!V3cZewt2tzNGHYltm)#4xoRPu;=g{x#~K?I
z)u|5*C3NX{p;SzY^Na6}*g7V;3x4ekmJ3vbLmzFq-f%8D88&n{0=p12m1seRWzdJW
zZQTEU9b61YG3ndu^1N-ta8(Zf`K)NbjU&L1Co$)#^
z$M%kINxaMS<+U|*Z@OaeSdtYOC4gZuc&*I9uQUznoH2}6nHkzn7e8N2$|SGdTK~Fh
zMftI6#Ow;5Th15?nQl-IhSf{BkoDeNjMwAauT1auip@z(T*!KHzCl<{A24H2Y)*cr
zzd^^`)BchL=#;Ut!&@xD#~5s^gy~H3v?9qP->$Bn&AYR(9Z+wTly_(E|E6A_A}%4}+A*h@F{Mb5~ui
zTpsc(klbKsn0`n1{(bd-KOK&&5GIv*1K1L1#%ZN%SmH`
z{M}JiTb$B$SAxb8rukhIL*lV&+OwbQvnI^Q6}xdT8y3hFV8_2gg+!)Z-{o0v2~lH+
zY7>uy#is)k@J1m@(iQz&C_bhWHiwcYrH92(YtFdII?J|ME=V+4>1b?@a#P^RBbhi{
zj`go9_XdOIzI~1v{Wn$qe{!0T{5&(cVmm=e7^nEz
zkW&OQxMOFRjV`rxWX!-A-$+VrZOr$W=260LnGq|mtWB)xVoz#5dvA~~HuL6I5!%~*
zD5Iy|2df9}vI*L_ft#o`G;VEDtkOqS^qLh0G1Z5M(FKke75(&Uw`05WrW$-Umwskt
zRP|-Jc
zr-x#h^;n9FK2__}O9u0PaH;Booi8i%^HYaZi>O
z|FAq_>lq)kdLUiNu4Q$4P-=!&B4x>HU@f0|lu8k+E$4UUx;H!<<;TKmN)$Z4c`%AaMK5$D5hH|>>Tw5cAtR=3
zUszOTsuv@n&G&G`d>d6WRu`xzkYzVypqW5^%<~_4)idUpS=!pFsWVV?w|Hn`LR69c
zJX)YlFiPn|@HWYb@i{a$XRg987{w+uZyG3Tf`ClQZNzm}aJXT`^+rLI71L2@cz9Si
zz}GCyZ?Ci?-k!CN%G;#nLUBtq);GjJQ1lEjxRa(*)qZLwHDmW5134DgOkv=c|9uk
z8UmG((%E^_jxL95LuVR@k7nM2#N&bfYpF*Gwb`BE`OD)VTNOzQElwkFy!yUSo|NH;
zwt)|V@_mXA7JUZW{V}G*vbI-=G-{VuT|LZde<;0@ih7j5E>i6{2sAWnGg(+#_Kag4
zQ&2VmHt(rM*4A!UTwNuB{qllIu3p$h6~~;fQkL%YNoY}Tdv#2hDBF@z&LcUTh7)|0
z3@Rr;ukmeU8*IEXq?_lh=Q6~!`I&gN8ipC1>=h*tqacM_n9vh4aztZlRc4h&FtyV;
z(`C)gy=2F2dt(H`FD1PmcXQp)I@o%&wC+^*MaAnEY6*@Vj*ES_~%Y}W_gv?t5a&{@
z$*+PW!X*;x=*$BF?g(IP1=nLaL#O05V+%ECV3*lG+cUhM%h1x1!%$6bSU0)(Z}076O0`4w52E4aO!KXIB6IT3f#CJE
zMKvC%BJRck9q?fcVH&pU`s;pkX1p~-?Ot9N=T?s`1ox}|8vsCbuD+I&did$trL(_zPaSZ
zCURu(WH|2H{dt5n!Apm-2tEj^^Q_cTE*Vq|p0W}i9f-?)G?X9NE3%jLOp0aect`#n
zy22dKBimp=wKP=I>Wkgh53zJwBEqlQcWttCb|X9iFtN@+#&i>O@KqnlxxUQ9f)&6o
zhD!A*h0wOvrzT(W#CGh;+N#m_pXbNaT#BYB0v&G*$g^4P@3GttR1oU~7h`?}dGsGn
z2_9Z6I2*j}mQHv9D=5O=&`*{$PnAP`mX
zCkT0gh;Z*6b2C`!eXy!WmjF~mF)>_r$39SWAm6(q<=Qmt#_>UluZT
zr|RCO7lMK+KS2BW6sVp_{0^5=^u55FS%|MjF~J$YTH4!6E7#6i4BHd@@0ByE=-y1B
zzNQMEl(LvSc@B;6t3yr!ST_^-wUEk4VD
z@+E5UweF^uDN!c1*30w*MhpY1YFg0u8BlDVzSv&)p)$o%PhSZ7AX-L4Qtfra9fCdA
zE=^1U@LI_2NhOXNGSszVb=-mOZ8s|NgWeGME+_*?1$e-(}2(7{=^3(h89U6)WT
zEX)(07!jO;X|oV2dRv{rf1Y`rRSg8L3TL?tTrPJM#PGL1;HPvBtQZ(%E#SzE=#!9>
zYuhC}ECP4!1|zqEH@_VvU9&4LX0PDsC%0)3oEYgcF(*W1p^VNA1C27Zd(ZwCQ8L{vmNNH39(UIQXTY80hO
z2)&mGgkBtF^~B
zs^@KthXZtjhC`pEtoj!{n+AWpSNw~1wpTq)uG24+RyKT_el${4VBDF{EPCzgo>-1E
z(f&Jv2y7+!CEd9WGCB{ZO8Sv)461sHg%9SJ7s5^T|*EzrX|8)e*
z#%Ebv^+P%q^$9`|PW)tELs*Kf9=}c4G1B
zhkfMJ(7hMF(NWhe9FK^W{f4<%AcA^ngZmDz`cFET4coTxpAz|yT
zAD7n?>ThYAbKN?_-=&?pYmk0$St~O<>*Eo+wRG8t<)`78X3gcofn(wXV2L`de^4>W&od2pYW!(fKea6EXQ!$^b69!-Sb4JyjPAlx_voB+a4ReM=9ekYH&os
z^eq|+;%xU3-D`S78gWgcBkKO0-C2DXHSifoB=h+;X*5dX-V3pdxZRChV&{&9?=yjH
z)9-anzlvYeWb^%Q-o?4!caKG#Hz(2U#kl7K*TYgrlBj-n!i>XojU0MbUUM%`^cc(o23Sh<*Mo
z+w5l{)pCT~+irHM`m-PDFZI@rAY-LvA$I)5?z2egd37~c-O$4YGb$~qO9~SYR<~4a
zTo2z0de9hCU$f?QA^R44M(F$_)i;05Rzz5Olniy+2ikI4dF=JjS3a6~2^aI1*>L0y
z`+_^>6&&lIlywvE!Gf1V-$%SMm+;}Wi_U9`{wO4MzUT3m2AS&G39HWpI6HWed*m7<
zpIO%rw4UZwd@kYT-AStco#4R969W?vGhBL~UnES)xDF>G`;Hf##k_nb$Tpx**){X`
zA&-ZTJ?|e%o8md}!d=j6=hLG(+|Mt)E4Wp;dTALO-+yw%v>e7c3Zkzzfa;xN^{9dW_&
zBK|})_rU3t{RmskGi^_a^r+!!()G<>40|TxLhjRoO3qd8ie3BECZVjXLLxm1
z)9f&I)h>3r6}uvdRzQJ{3(wKi|g4;P5J
z7xpr5sm8Ojbfr9ln9);HVo+{TQgxDQ^Wb6lTj||rEiKup@K#Y#@z^-VBJ@V%wmKqYFr~h%UI&~&V?(`q514YB8%BnP
zs^*THjhm`52x=VoLRXxKoK!QczrSCEKPuJ7eeNWw`C{+zuswl!y351dJ6*!H
zSdui0lUaK{miFvsWwM;N%lXyaZc`r*O1Vx@lPhVSf6MzU9T0xu5Op*!mV|ipTy<#>C6^u%VawPii^SYYDp&nGQOwK%%&N`bwDg&?
z!IKViqlvsDRNgi{CT`j-!m;8S81Oo4z*>UP`Z?AYgFf<3Re{ab+1Xj-WJC%WaZSq5
zShc&h^hp_KBo+JXYPS2|JR50@DZU-(fLW-5)vMZlZre>KdU@jgqPdVckY^mEK8p~{
zi@#);azpTuA}?=;dSxY*YZvP$x1zjT_$YgY+suz;v&!n
zm?mr`Y_jB5^5VCU2|CPgtw?$slHL)@NLVJ?sjmJr@-X$!^PSDsMMH0FvARr(%
zd*Jl}nSrZ6>#E&58ebm>;iuH%4?!yFs*4oq-Fjwb&Uckoq&0Q%#7)guE-_P{WJAJL
z%hHK7uMztrqlb5aceG*LNQMJ8z9ijALDUmx}
zCShFmJ=vPR42V2Pigc7pl<_DRn?qB_{DB7--8eI5;?yT~*I^MSJZt*Qcu4k^s?1
z%ZI2OXP|Y|ce>PNvzopeS@+MzX^wl1I^zRkNo3@{*1
zBum&9N2zfbxy)5gmL+QycF}k4i0`;134Bo6(Y0atR?kSPt1LM4Ft{6csKdTtuY7^6
z_>XKI0`Y$GMkrn7Vw`FWM#HA(+&U%y&h`x^zrGrB$Br2>T5wqsM|0V)tY)_bPHGgM
zNA@(l#`|p_0TF05^n%{vdXP67-ip{6*L^G+vP?@_%h=I;oN6e$&Jn8D?6+$N_+0A{
zj?-*|gVhdS{1!yN#7ng@D$jf^v9Xp^Q4$~suaD>Q5-b`1)A0uoe#>m@;+NM^PEDKgQ-e3$G=-1mmX_Xa=23yD
zgt$_4rN@FUXXp*-D_1^bWMrt#&C8)={2uxJmJ&j~iW17Q%wQ|ffDt6g#lF8KEDbUJ
zohRyy7d&cyRyRGCh$GAQc6EJVG6OICoKAR5Nb>$L`mp@*>jp|a(Z;p&3ElSw6Bzl~
z5rc9nn-{y0V9XU_z+%NBG(X=JBc$;O48ZV`K0qTGjYz)x8X6%Jv_8A|Tf)~W7UwE$
z#hr+H;0^#l$Kv4#6_tVh_^AIzrwxCYraprwF^DGr8=XW~^={~9=jCZAc`Zi^C$EqW
zq>P?N2$VB^cHVzd-{b^+TX;5$mTpjCK?8i$`CB6$_DC7nCNFiIz*pmoEiePfjizOrY}HqId%jWdA|eON*~%R);i
zXNG86I7#=WuFnAE;z6^i+tMKaxLd;5^_g}JIz4o)*zifcxiz`9umQl!B@JeJdV1;X
z@bIuP7qzxzFszv0crft@=fi5Z9H7D3aN?M&t@n7WYoo2#;N{<^00xb#-E1~HjSc6Y
z?9U%QFiLwb1qmesUzKwJzS?}NYGCH!&fm&)o5kCNL*1ojKBU1?v)p!`{{=_s=AVb*
ziqB$$f1YG5$uaP_JZVY&1$OsnxSvVVm2o&L+P9u3M??063|xNrofL;t`x*E&*Up;@
zG1{$&8&tMu>_cyRqs$?Or*?|8CXz;;R(!hYlQQlZ=HZqEh7Db2oo|n!1O~G;<2JUJ
zP;;jSZT|qtk7O7C%c8F)DtV?0!>V*m8S0JEi{o|3tHRO=K%ROA;I(ZHk30oqc$nt1ol)&hVRE+h=C3|$0PiMPWPe<|zsdGULLmInq(;OHfJOm~
zgp(R`TJFuER*2qQw)4O7Fso0Jh@V98eV3<{KW!Ko9!?JUVBP4}JLqK9zoeeT8o2m6
zY6yVxjvWs^FVh|y`AV7Kx9(dgkl)f<><*d$3=L;t=xgY&b5awWU$$-u9~I#WOTHmE
zx#a$Zxb{+a(dSK$I15f+tXly+#lT@|eDiPAM7gAZV>O8H+FPD~?3IzIL65@hh&j*p
z9#+@$C3GyJJ;(-hJfFpin_#8eQD7!(_22D5QwY)Gl7
zs2o9{jq?L&l%neL`-bLjp$=L1Necr8ms8|)tS;-a#wZH@B3+#IjktsM7Yv3i^PBm!
zopo?=>T6)o7!!S;A9_=A@694A%ZEi>FhhG(U{7yX$*@szSv}rV==yM8c{CJAa0N`r
zMxE1OdI>@hXb7Ak(so5>zs#u8Ko>
zEhoa8%Qe~)#RseBGKwBt)c*x$IrS#1q@+WBI+8NgYy=D&$Vvv#4j}WTCyFbh|5yS=
zYV_KBLV(?wbm}6Jh_HX;L|*KlW;XkHJiYRf5pTHB*e<^GLrbh1Rps0pB!};-TIeOI
zx{PitDE^vF-R`e)u33-Ox-D%2v9vR+;yXE$SPAa)@Oau)IH)cm@M>vw!rB&_CNbqm
zL1TF-bCo8j`t3r{a%AXkcrS9$JOJ|iKIpu7s2FlvCxTrFk@)sVH|f
zqSyWGii%$O1N#)3E6p9?z=Udmvm`%6Z*dsEwsKkCKOwe%D#c>OkiA&jXh}
znF~}s(zi(C$SjEHuywGipmt|P9sk5xwz{f4`>}Ar_8G0|TNJg;M$@V(BvlKC>$K7D
z4S==p*+L&7n$`6v7F+!Zl3l4NsOP;pa|tOOL?CYDnUdzn2t|wq9Avs{;5XMZfo1^&
zLb-R6|2d`P74Bnu$IdQqxZEm))v~(kGS{A)nfX3J2EzT5o?S?K+W^=-GcW%eK4Dho#vN
zaeD`ovM+a1m4}sU1N=@WKA@HW0&DHgI)Z|DeK+FTV`nKein_4t^o>gX+0io7Y
zB<}A-xVab_&j=`>+Xv}VG|mM2_~w^_PWtS`$5uQzs;zr(gGL`1O<^G3YJEv-5@D4D%=59o+{_cZ$1RD<{k97raM#%b9W4Gad_Rgq@KaA&-4URd*f#5K$`ycLw?*Pu=eh-b
zzhou-s(r~0(_=5{`_lY+O(!N+MVa%<&&T|0Dm|ay|6YCWUTKRGrQ#Wvtm^nkVa4<_
z((>j?%K4ybrsyUxpBecag{%
z9}#f5Z?w--le<(}@Vc3~%Vj(e6)rK2ej3G?8RqlnkkGKbxoVESDS*HP+V
z_+ftKdA_j(HhwVy=
z6!dJ<@2d2)nm>;j4qILe3vi)kI`&_5|Jfl&j=OB)*3r~=Gm8a_ecQeahtaAdl;USD
zP#T?fJ>(Oxx>Kk4-n%KI#a&(HdU1+c6y{I1X>%eEi;0bV326zwv)?No;Q#I&p2PNK
zMbYyHCN^ah1T4|`_5LI7?xpq9?mn+7|@6>x<#nd1DZj0@u;}KWL
zAz;<=BOT+u<2v&-yB_r0Svw)R5|u=?xImqI3|Ou^lvYcqIrq-pHICD+{UA*LjIDZZ
z1xCQ*N9bD}<8ISt4kHle?&3FRRie`{N)+dH$qaX$0_@tgK7r{m?pEr#b}#_}31a)`
zs1!WBHHj2R9OiPx`quwt6*ZfNZnb6_12#w-e5E9JAZ=vG31T%S9T2-REbz~xIOCSS
zX4`3c(INBZ{f3dzCtZb^(xeOUPNX@2uvBD-eSBcVOJFqZ`n&nyg9jzpg|O5ZSRLI~e6g>byY1
zzK%|7`VS10FR&g6486+67^6b48_S
zdOGvHBeRaFVaSdG>4j6&(J0oEw0_Q2?DGfFbvbUx^zU2DyAZt<5iRwC^=x_|-0)V|
znT}KO-Q27-EqPM{Uhf0`_EoJKT*ho1RnU3aF0c@}N22pXnv`Evf`xDB$iVnwjhEa<
znmcZJIPl<-5+Fhp6(+0m{WC-`~d_6%N5#;>l+vesK}w!n%a<3
z`_X>~scZQLaCYXotI#Zd(0|53fowCldNXM|P8^y;4-zbr{y>%>jK#!(aR9x>XJAO9
zj_cxglD4md2tNkg=#0Ztw7vvlAPWMEe7%UiXWa4;B^HeJz3B>TqAE|}Ub18v@Sx*0-muS#39FYKTizinnqD3n@2ltNN=xBqEOc)4CA8dhg8V?NrQkkg{0-u8+)9=-+=UNZ(pDH$_dPPe
zWRczQc5v3i&xHvrvsD4W*b3b`I|q*za*(+N(rz-3ryyuhd^!SHH!DL4|7f@9xhIr{
zurkX_2-towME!q5gW;wBi5O=&M?$}G|0h($N3c>!hH=rc0dZyfjzX8)^&V{USR=Q|SxvNg-5qb0%~!HxPt#AV)O;BjFsPV(vxGH^Qpq$CHy434A6B7M
z9uz@1)5I0WMCp$%h`Sy8wW8c+@W)Vz_w^^}5rud3>LwOP*4yGSdT0x3NT$Xxl@cJP
z-?fAxx?j-r8c5LbVkUdi7~AM-Rt8|0D#uV>y$I(bTS`hVBTcDFp0s4lipt5$kbC_)
z#Iz7!a%{KzMDHN46G;$akIG3LhU~AYz6_(Gftr!^6F3Z`BKGzt*!2+@2GJhIH?m$1
z{iMNMo9C6_hQ7?kO;|TXc-YuPb(m^5utH-ZbyVIRQ!4PETKk-=?DJ7|dtNBOe$s!O
zJj7X8QqmtL-tfG~%f!T_1DKEJQd9dzaJu+~lM#hz2yIyK;9{4;zB8a|VO(Kr|Mcm-
zA~AUjmdr$SGK!r?tB&hy4Y4wpL;|LQtS-Y)R<&gYAhql#!%7AQ6Lf5uCMHz{3v>I}8^sGZ5>jWx9967OzaxQcEDLbE>CtfK-CIj66bwN6mGCTp>IK67W0r
z+`R(7XJCRNp5@~H?a*NI73K2r)+<146)gu)!}{5mC$xtI|aFZ;>Uu!)!aL
zi()r^59|-;b}}v2{?%9g!&_Az2E#&MWH}5Gxvc)d-;-PLy^4dq{Rwg(%BiHJq#;er
zCisH`yNPI2D}rx&-)s6e3732SpTACue|s;sI?s9Rkd`gd#*M0+j`BuCn`
zw`N^ak+7<&mbGm;tZ>^EM};3bh2
zH$`(yEEzERQ0M1soR?j7bUJ?_FZUO1EM;k^z+Q@j(}hJvVMyy2Q)|!l%ROuL4GrxA
z12*!j9-w-@d{Gl_b*_$2hxhJwHMC|n^{p6~nWa}-{&X%PS@cMi3zEchUC@h*i`dwV
zQ1v;1)?Hl%c^QQO<`(C>vm^`Gp}x1+7WJ(Am1uP8#DqC4aw7UV2Sdzl>(`@BPwvM2
zAAG9R@$!ltJC6O*ym9q`zma5|-xUM(WJpHtU#vJlL
zl5aIES@Egf%%rxqlGXBZSBl?qp5Xe*IS
zL4ov{w}Um~ZrkoS8;)BD=Evh~aP>MwCsFjRndVDg?F*gLNKEG<9U3B&-(m5N<1Pve
z>Z8HIFdQO!?+0gSv`QWDfsEsTC~&F+syvc~lGG@iPMlh+;h7SBDqjk;9xhe7l2$_*
z_o~&UQD~}xn^T>usKP{MCHbHZ4=z7}T!yz4ZHP-Hn%(W%dKFPq@sm`Kv
zRf*JkHQ9$d?7F9iVp@dExqtU_wyPmb_XTKo{!nY~G^J|_1gN(}D)YC|%}?`^r<&LV
z7yWLU6dE4)xI*9?b1E=DzHu;kI@1Mxb0d#<0ui#w&7w;aBxFh10T%2r=c?$CZfxH%
z)ZiQ5QuqGfESNGyjuoC;11NShAsDfsLlVngy=F}T)MPzJ+_W50D2x9g#LCBi^s}~d
z1&an!Vx9OKc{`5R{a|uJI*ca1%jR`MlyW^9#S!m}Mt<6|%KE^4-HD7^2x^6kN_vqN
zKI*5Z;VrTux$qb?v=zwiEAiccH4iG@^Hj|urt>drx}&eb#ej|YFU^$2Y^@`QUBu@t
z=d*)T+eqOgvQ|Q<4Gcw`;sB8Q!(iN&yb@99-;M}ZNs+RPtX{}XHSHwkrn>C!IDxQQ^V@kPyuMo2!0;(kHmzeS1fFp}
z^=MhUBRldX3BBl)Ac#%!OeIo73gzPFPE;04;0|eNDDj+JVQ5mJV1qmIegIY9QI0;O!0I?a!#tbxE9nI5q0I|J!4_Xp^g(=YHuG{u>3Z
z_^-*mn-9K^wtry5Rh5ByB7L&ZFOUFI*d4{j71HwZ`6Z*~KTQ6`F`#@p#wvf707T_O
z1e$_UzG5K#^F#n;9NT$W&(JV0C}?LowBeF+Tf3g~l^ho|cmJEwAl!~|hASEg0iSS>qV
z#Gdy$BaA(8At%W%iMIQ9+dGdyy$YEFyUn>TG}e9Y_L$z~J||_!rU+l5ux-jW5qB;v
zEFEh7d3!!`%0Ft{ld+stW|NmnZ((C`24(pcxLQ~%&)vgbYfbMob#8#WT*v|5w9f-Sn__bn
z9tQODjaPd;vkX(a3kl=)TzlqkvcnDXVhUe~xs_jEKfYCMCFwl!>E805Z8L9GFqT}<
z_%0(F{`=1wLf0vbzM@w^wM$iS&owS{G@L*DlYXyognN19c)4@tOin{U%=O(Gpvo%k
zK6__+knSX()fAyS7vtzBE6RLs_SZ8mxmD9z`FZ<&i$Nti3mV?$(=2qJWHhu=
zX3PHC)9J6WJ3lYaZmTn4QU76&R5!^r&rPMYrlw{~bKiOXD8u6>XcI6rTg}cJ&IRT<
zz>F?=ePS64lAcc2L%`PRvle&8U4Stq_jMxdJ(=l=cMDqSVFjZlH8qO8J`2Z+))TXz
zNIU$~olk9dH-Hu*^(or}!IxCsE68jLSNl~{lnlllnd@o#-$oDl`niaje(uVi;C}#0
z4j_TVWTwI&lBMiYz~|*`Vtv`8b{lN~29u7`IN3CHZSEWCB9o`U02rok-m>PrvvrvL1P{;Kg9i`Z=%a)O4v{^56wWG>(4miFZ|A6XMPc~X
z9->X|LaZwbEf!Ue=Rj5iPZbB-61FqCk%@=^4d&pe7Km9T2-Y~P
z+n8%Z_=j;AE3mUcQeK`%6B9QO;_Y8B|2i5-gf}MpvN&8z4pR#p%;-E-v??Pov352G
zugT#mm+yT1@zOv^48UgfNIr#sGBWrBmQwLuc!(q*ZQmnYZM>(jprEa~?9n$HZI@%U
zzhn}yOi%_VZ)|Kq3U%T&s0scHwr8@J3ZTS6Keh-obMB_tE?}$WDI$Y3UoK!Ff!%16
zal_GP1!Li}#y4Xhm-})SmE4#1&COt9Fxy#)<$=^b6e9d)=Y!&^o8?A~U!MbUgRaS*
z@Ops-^f#gE_vNSCq!5JvuZF>A{uuU+GH!vl`9$ahFeCjgTy%wdMUJn&rQU(Gkecz6
z-N*(zI^T%JpA{bKNK7pwzy&9Ciio)wJ>REaNY`3{6jaFHlp2KXpFEp^mEEI`vng7w
zWo`Pe8hN5LIS%K8uDyA-$}5y#4Ntj(gcnTk^f$nWz#f_R6bTs_8QY$0NK=7Zwy|tW
zNYig~IrO>lmK(_WgA&_Fg%G$p^&`R?B4hB-lGU
z#|W#e5qfXuaj4ItKczq^p_~Co6!IM)n`LGl%v2JfC?)_bI+y;=|Eb?qrR(Qb#_nX;
zrJ)3rys(9O>7IV>586eu^!#(+{q}f?9KY$h*Cxp2De0D1NshvQ9>Xoa_h
zt8n4T+;|ky>?xCT!YAOlDDM)l_8HIGgL#b07pa(&h=J5P}cff!%w60_LH>*{^Ti
zt)|}`&@mr+%9N29?euyE5lmh@!_hBz1c_KcY0sROyEl>qU9)Wf!nzM|WAYbQ=R6i{
z+R1cO4f(q`Kf*q;J;5VMCs0x0@v~_LWr8|HKqxWG<$AWCDm(o8r~0P8Yl8)&djZ;9
zgWdGdCRrPKw(AQmh|Ok+Q{;*_YODo6P!G=>#u)F#Tbwz26j%}Y@>f#P=(p}l8-l!&8aSw_VZ*oHMO
z&anPeZHm(mg-&pkOhycL-E(COt5T(<`;b#$_5G2ihrcI4b}T(B)qMBf@Csew-7wYN
zdU?+qE~=jfb5b2*UT?)Kt#hDm8pAlXT;~U;zpdyeb-u=Ymv$*U8
z$xgJI>q=wQ=ll8HTn%FvDa;S_4p(~_mO5DPR?2|R%#plXNaDXwSf+49j;}=^%X=ulXYu~4zfu)s(=*#z`f-O(n`c)IaqGeiHthG8qNT>}B
zT^u*4=4vo4d<({RtoGKC0rg1T4y9rS*mtA$y6A=a;omX!e;?xT$ATb9QInoWwg3sh
zKAI!qQ5OFe5QXF255($GQe+(O9&l4~94J=kSkO`CN9}hrG2e=YTdrlm1y^0pk;wOR
zsif`BtX<}CUJN{c@ia66lgbzjFz*L%Pjpm-3pYI`H|PJr0+Hbc>%wI)IsH8P$wtM2
z&rKo3+>#t((d&{S)NEqQJW}x^kuGGbpT90%<$`u2+tvN6hD5LkrS9JG;wdZU&uclR
z2`JRTNI@n-4XhY=K@$+19>rFE
zN<5A3=m4E5*kb)0DWr!%AUIuSMq^I>iDPqE3z;25os_+&H2^!gDf?t@E)N&=51KCc
z+C5>x;C9NTO1n<;Q#$7PfaGt)Zjx6FrG0Jh^^zk%K18tqA&?Qcy*Awf|D2PhN8c5A
zC+zKV`65ifm4NiM7K`8n*3tWaZ*v8ufewiEy7pc&H7l84j}Y-GT>4X%+j0ro<6i&(
z!uf;FqnrP1t}dPOOvSlYr8Py!2?QF+aGrA@HcYev#E8A?BUA#fyW;{$EKHtTjPfa>
z06^aU5=G?>1`BH?xF~Y7i1zaJ-Z|u0wLV9`>?>LL+M<~CvMB>P1Ni|6HFN+LcA5{Y
z09uEsal#}6;)R8c%+^#6L@`$C@y*(T>5pem3E`Z4NRuICrXSHCu!zY_xHAoh6lOdt
zqij&{esfkXOJ0uenSDuLCp4>;>3iS9_PC)lZJ5IE)WMN7_P#OBLVMQA
z+=hxF284Jp`T;8?I7T4yjb*gL9(K#1dyg1`?7e00{egNE3#<4f89@cU|^
zPYW5^BBZ&KCl`0uDwiAszdFx=#|<+IT=S#0Wd=X6_G*GJ#`{qxrk%%-s)R5Uqekho
zy0Ghk8GjLj8q9aerT}lvmF4QSNrdGBK33|J5Y_Y9E340$dr9;vXJ5iOxFBoclULp6
z5@FyGz#;d$v+DJKGQ@58RJUagu-i-zSe?#x$6(}~#T6=3b!58nyEb68Y6Jm3M?k!y
zAK;v2M#D(fnoj(V!X{YszAt!u+FQ4=CQh%=XLLefT|8>#xjJ*E{1mDcqg*w8oSN9;
i6_>eBnCHqHm}BtRUpF)EzO-VwucrFl8>QDQU;ZCIq~P}e
diff --git a/icons/mob/inhands/guns_righthand.dmi b/icons/mob/inhands/guns_righthand.dmi
index bbbda0e17cdd525b0c63d2b2af0c7e4be7ebf4b5..6993a2881f08aba7d9ecc7663a301945de120059 100644
GIT binary patch
delta 3981
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
delta 3675
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