diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 3fc8587917b..8f7ef81cc09 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -13,31 +13,32 @@
//Human Overlays Indexes/////////
-#define MUTATIONS_LAYER 48 //mutations. Tk headglows, cold resistance glow, etc
-#define CLOAK_BEHIND_LAYER 47
-#define HANDS_BEHIND_LAYER 46
-#define BELT_BEHIND_LAYER 45
-#define BACK_BEHIND_LAYER 44
-#define BODY_BEHIND_LAYER 43 //certain mutantrace features (tail when looking south) that must appear behind the body parts
-#define BODY_UNDER_LAYER 42 // Things under the bodyparts but above the "behind body" layer
-#define BODYPARTS_LAYER 41 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
-#define BODY_ADJ_LAYER 40 //certain mutantrace features (snout, body markings) that must appear above the body parts
-#define BODY_LAYER 39 //underwear, undershirts, socks, eyes, lips(makeup)
-#define FRONT_MUTATIONS_LAYER 38 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
-#define DAMAGE_LAYER 37 //damage indicators (cuts and burns)
-#define LEG_PART_LAYER 36
-#define PANTS_LAYER 35
-#define SHOES_LAYER 34
-#define LEG_DAMAGE_LAYER 33
-#define LEGSLEEVE_LAYER 32
-#define SHOESLEEVE_LAYER 31
-#define SHIRT_LAYER 30
-#define WRISTS_LAYER 29
-#define ARMOR_LAYER 28
-#define TABARD_LAYER 27
-#define BELT_LAYER 26 //only when looking south
-#define UNDER_CLOAK_LAYER 25
-#define HANDS_PART_LAYER 24
+#define MUTATIONS_LAYER 49 //mutations. Tk headglows, cold resistance glow, etc
+#define CLOAK_BEHIND_LAYER 48
+#define HANDS_BEHIND_LAYER 47
+#define BELT_BEHIND_LAYER 46
+#define BACK_BEHIND_LAYER 45
+#define BODY_BEHIND_LAYER 44 //certain mutantrace features (tail when looking south) that must appear behind the body parts
+#define BODY_UNDER_LAYER 43 // Things under the bodyparts but above the "behind body" layer
+#define BODYPARTS_LAYER 42 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
+#define BODY_ADJ_LAYER 41 //certain mutantrace features (snout, body markings) that must appear above the body parts
+#define BODY_LAYER 40 //underwear, undershirts, socks, eyes, lips(makeup)
+#define FRONT_MUTATIONS_LAYER 39 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
+#define DAMAGE_LAYER 38 //damage indicators (cuts and burns)
+#define LEG_PART_LAYER 37
+#define PANTS_LAYER 36
+#define SHOES_LAYER 35
+#define LEG_DAMAGE_LAYER 34
+#define LEGSLEEVE_LAYER 33
+#define SHOESLEEVE_LAYER 32
+#define SHIRT_LAYER 31
+#define WRISTS_LAYER 30
+#define ARMOR_LAYER 29
+#define TABARD_LAYER 28
+#define BELT_LAYER 27 //only when looking south
+#define UNDER_CLOAK_LAYER 26
+#define HANDS_PART_LAYER 25
+#define OVER_HANDS_LAYER 24 // A patch to make some clothing with layers from 35 to 24 use "standart" SS13 icon_states and ignore sleeves code.
#define GLOVES_LAYER 23
#define ARM_DAMAGE_LAYER 22
#define SHIRTSLEEVE_LAYER 21
@@ -61,7 +62,7 @@
#define HALO_LAYER 3 //blood cult ascended halo, because there's currently no better solution for adding/removing
#define FIRE_LAYER 2 //If you're on fire
#define TURF_LAYER 1 //If you're on fire
-#define TOTAL_LAYERS 48 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
+#define TOTAL_LAYERS 49 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
#define BACK_CLOAK_SOUTH_LAYER (BODY_BEHIND_LAYER+1)
diff --git a/code/controllers/subsystem/nightshift.dm b/code/controllers/subsystem/nightshift.dm
index b42e8f2a2ed..df45556507c 100644
--- a/code/controllers/subsystem/nightshift.dm
+++ b/code/controllers/subsystem/nightshift.dm
@@ -78,15 +78,14 @@ SUBSYSTEM_DEF(nightshift)
if(!cmode)
SSdroning.play_area_sound(areal, src.client)
SSdroning.play_loop(areal, src.client)
-
+ if(todd == "day")
+ if(HAS_TRAIT(src, TRAIT_DARKLING) && !HAS_TRAIT(src, TRAIT_NOSTAMINA) && !HAS_TRAIT(src, TRAIT_NOSLEEP))
+ apply_status_effect(/datum/status_effect/debuff/sleepytime)
+ add_stress(/datum/stressevent/sleepytime)
if(todd == "dawn")
try_grow_beard()
if(HAS_TRAIT(src, TRAIT_VAMP_DREAMS))
apply_status_effect(/datum/status_effect/debuff/vamp_dreams)
- if(HAS_TRAIT(src, TRAIT_DARKLING) && !HAS_TRAIT(src, TRAIT_NOSTAMINA) && !HAS_TRAIT(src, TRAIT_NOSLEEP))
- apply_status_effect(/datum/status_effect/debuff/sleepytime)
- add_stress(/datum/stressevent/sleepytime)
-
if(todd == "night")
if(HAS_TRAIT(src, TRAIT_DARKLING))
return ..()
diff --git a/code/datums/components/darkling.dm b/code/datums/components/darkling.dm
index 3bc2e4aa5df..9372cb2a207 100644
--- a/code/datums/components/darkling.dm
+++ b/code/datums/components/darkling.dm
@@ -1,11 +1,12 @@
/datum/component/darkling
var/current_light_stress = 0 ///Currently accumulated light stress for this darkling component
+ var/last_light_stress = 0 ///Value of last light stress tick, used for determining blinding effects
var/max_light_stress = 100 ///Maximum allowed light stress that the darkling can accumulate
var/next_blind ///World time when the darkling is able to be blinded again by bright lights
/datum/component/darkling/Initialize(...)
. = ..()
- if(!ismob(parent))
+ if(!iscarbon(parent))
return COMPONENT_INCOMPATIBLE
ADD_TRAIT(parent, TRAIT_DARKLING, TRAIT_GENERIC) //Makes us sleepy during the day, since we're creatures of the dark
RegisterSignal(parent, COMSIG_LIVING_HEALTH_UPDATE, PROC_REF(update_light_stress)) //Light stress accumulation
@@ -17,59 +18,66 @@
character.put_in_hands(hood, forced = TRUE)
//Proc used for updating light stress, occurs every health update so around once every 2 seconds
-/datum/component/darkling/proc/update_light_stress(var/mob/living/darkling)\
+/datum/component/darkling/proc/update_light_stress(var/mob/living/carbon/darkling)\
//Closing our eyes or being blind/blindfolded lets us recovery very quickly
if(darkling.eyesclosed || darkling.eye_blind)
src.current_light_stress -= 1.5
if(darkling.IsSleeping())
- current_light_stress -= 5 //Sleeping restores us much quicker
+ src.current_light_stress -= 5 //Sleeping restores us much quicker
return
var/incoming_light_stress = get_light_stress_value(darkling)
src.current_light_stress = clamp(current_light_stress + incoming_light_stress, 0, max_light_stress)
- if(incoming_light_stress > 0.5) //Try to blind us if the light is too bright
+ if(incoming_light_stress > 0.2 && incoming_light_stress - last_light_stress > 0.5) //Checks if we've just barreled into the light
try_blind_darkling(darkling)
+ src.last_light_stress = incoming_light_stress
apply_stress_effects(darkling)
//Triggers on movement. This is mostly so that getting blinded by lights is more responsive, instead of having to linger beside them
-/datum/component/darkling/proc/check_light_on_move(var/mob/living/darkling)
+/datum/component/darkling/proc/check_light_on_move(var/mob/living/carbon/darkling)
var/light_stress = get_light_stress_value(darkling)
- if(light_stress > 0.5)
+ if(light_stress > 0.2 && light_stress - last_light_stress > 0.5) //Checks if we've just barreled into the light
try_blind_darkling(darkling)
//Used to blind us when exposed to strong lights. Has a cooldown between blindings.
-/datum/component/darkling/proc/try_blind_darkling(var/mob/living/darkling)
- //So that we aren't spamming people too much when they're in the light
- if(next_blind > world.time)
+/datum/component/darkling/proc/try_blind_darkling(var/mob/living/carbon/darkling)
+ //So that we aren't spamming people too much
+ if(next_blind > world.time || get_face_covered(darkling))
return
//Gives us a nasty bump in light stress
current_light_stress = clamp(current_light_stress + 5, 0, max_light_stress)
darkling.flash_act()
darkling.blur_eyes(8)
next_blind = world.time + (rand(30 SECONDS, 60 SECONDS) * (darkling.STACON/10)) //Con determines how frequently you can get blinded
- to_chat(parent, span_danger("It's too bright! My eyes!"))
+ to_chat(parent, span_danger("Bright lights, too fast! My eyes couldn't adjust."))
//Applies the effects of our current light stress accumulation threshold
-/datum/component/darkling/proc/apply_stress_effects(var/mob/living/darkling)
+/datum/component/darkling/proc/apply_stress_effects(var/mob/living/carbon/darkling)
+ //Small buff when in the dark and fully rested
+ if(src.current_light_stress == 0)
+ var/turf/T = get_turf(parent)
+ var/light_amount = T.get_lumcount()
+ if(light_amount <= 0.1)
+ darkling.apply_status_effect(/datum/status_effect/buff/darkling_darkly)
//Eye strain debuff
- if(src.current_light_stress > 10)
+ if(src.current_light_stress > 15)
darkling.add_stress(/datum/stressevent/darkling_toobright)
darkling.apply_status_effect(/datum/status_effect/debuff/darkling_glare)
- darkling.blur_eyes(3)
//Migraines
- if(src.current_light_stress > 40)
- darkling.blur_eyes(6)
+ if(src.current_light_stress > 50)
+ darkling.blur_eyes(2)
darkling.overlay_fullscreen("painflash", /atom/movable/screen/fullscreen/painflash)
- darkling.overlay_fullscreen("brute", /atom/movable/screen/fullscreen/brute, 4)
+ darkling.overlay_fullscreen("brute", /atom/movable/screen/fullscreen/brute, 1)
darkling.add_stress(/datum/stressevent/darkling_migraine)
darkling.apply_status_effect(/datum/status_effect/debuff/darkling_migraine)
//Calculates incoming light stress based on turf lumcount and character stats
-/datum/component/darkling/proc/get_light_stress_value(var/mob/living/darkling)
+/datum/component/darkling/proc/get_light_stress_value(var/mob/living/carbon/darkling)
var/turf/T = get_turf(parent)
var/light_amount = T.get_lumcount()
var/resistance_multiplier = 1
- resistance_multiplier += darkling.fovangle > 5
+ resistance_multiplier += get_face_covered(darkling)
+ resistance_multiplier += darkling.get_eye_protection()
var/light_resistance = (0.6 * (darkling.STAEND/10)) * resistance_multiplier
var/light_multiplier = 1
if(GLOB.tod == "day" && isturf(darkling.loc))
@@ -78,3 +86,8 @@
light_multiplier += 0.5
var/incoming_light_stress = (light_amount * light_multiplier - light_resistance)
return incoming_light_stress
+
+
+/datum/component/darkling/proc/get_face_covered(var/mob/living/carbon/darkling)
+ if((darkling.wear_mask && (darkling.wear_mask.flags_inv & HIDEFACE)) || (darkling.head && (darkling.head.flags_inv & HIDEFACE)))
+ return 1
diff --git a/code/datums/elements/tipped_item.dm b/code/datums/elements/tipped_item.dm
index abc9307db0e..2f8d4b06d87 100644
--- a/code/datums/elements/tipped_item.dm
+++ b/code/datums/elements/tipped_item.dm
@@ -29,15 +29,20 @@
/datum/element/tipped_item/proc/start_dipping(obj/item/dipper, obj/item/reagent_containers/attacked_container, mob/living/attacker, params)
+ var/reagentlog = attacked_container.reagents
+ attacker.visible_message(span_danger("[attacker] is dipping \the [dipper] in [attacked_container]!"), "You dip \the [dipper] in \the [attacked_container]!", vision_distance = 2)
if(!do_after(attacker, 2 SECONDS, target = attacked_container))
return
attacked_container.reagents.trans_to(dipper, 0.5, transfered_by = attacker)
- attacker.visible_message(span_danger("[attacker] dips [dipper] in [attacked_container]!"), "You dip [dipper] in [attacked_container]!", vision_distance = 2)
+ attacker.visible_message(span_danger("[attacker] dips \the [dipper] in \the [attacked_container]!"), "You dip \the [dipper] in \the [attacked_container]!", vision_distance = 2)
+ log_combat(attacker, dipper, "poisoned", addition="with [reagentlog]")
/datum/element/tipped_item/proc/try_inject(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters)
+ var/reagentlog2 = source.reagents
if(!proximity_flag)
return
if(isliving(target))
+ log_combat(user, target, "poisoned", addition="with [reagentlog2]")
source.reagents.trans_to(target, 1, transfered_by = user)
/datum/element/tipped_item/proc/on_examine(atom/movable/source, mob/user, list/examine_list)
diff --git a/code/datums/status_effects/rogue/debuff.dm b/code/datums/status_effects/rogue/debuff.dm
index bfed79c4203..8c17ade05bd 100644
--- a/code/datums/status_effects/rogue/debuff.dm
+++ b/code/datums/status_effects/rogue/debuff.dm
@@ -318,13 +318,13 @@
/datum/status_effect/debuff/darkling_migraine
id = "darkling_migraine"
alert_type = /atom/movable/screen/alert/status_effect/debuff/darkling_migraine
- effectedstats = list("perception" = -1, "endurance" = -1, "speed" = -1)
- duration = 1 MINUTES
+ effectedstats = list("endurance" = -1, "intelligence" = -1) //Will basically always be stacked with the eye strain penalty
+ duration = 20 SECONDS
/atom/movable/screen/alert/status_effect/debuff/darkling_migraine
name = "Migraine"
icon_state = "muscles"
- desc = "My head is pounding, I need to get away from the light and rest a while!"
+ desc = "My head is pounding, I can barely think. I need to get away from the light and rest a while!"
/// Strengthen undead debuff
/datum/status_effect/debuff/weaken_living
diff --git a/code/datums/status_effects/rogue/roguebuff.dm b/code/datums/status_effects/rogue/roguebuff.dm
index 71f5215f4b1..b1d2bf0e244 100644
--- a/code/datums/status_effects/rogue/roguebuff.dm
+++ b/code/datums/status_effects/rogue/roguebuff.dm
@@ -278,3 +278,15 @@
name = "Seelie Blessing"
desc = "A nearby Seelie has brought me fortune."
icon_state = "stressg"
+
+
+/datum/status_effect/buff/darkling_darkly
+ id = "Darkling"
+ alert_type = /atom/movable/screen/alert/status_effect/buff/darkling_darkly
+ effectedstats = list("perception" = 1)
+ duration = 5 SECONDS
+
+/atom/movable/screen/alert/status_effect/buff/darkling_darkly
+ name = "Darkling"
+ desc = "You are at home in the dark. Unbothered. In your lane. Moisturized."
+ icon_state = "stressg"
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index add59c23fb0..efe2a2f578a 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -154,6 +154,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/e
var/can_assin = FALSE //Weapon: Can Assassinate - Special flag for backstabbing weapons (Extra small, like daggers)
var/can_cdg = FALSE //Weapon: Can Coup de Grace - Special flag for weapons that can be wedged under armor in a fight (short and portable)
+ var/ignore_sleeves_code = FALSE // Use for clothing which has cropped parts for hands and doesn't use sleeved system. They will have layer under gloves
var/sleeved = null
var/sleevetype = null
var/nodismemsleeves = FALSE
diff --git a/code/game/objects/items/rogueweapons/melee/knives.dm b/code/game/objects/items/rogueweapons/melee/knives.dm
index 58e4c9f5ae7..6fc4310166d 100644
--- a/code/game/objects/items/rogueweapons/melee/knives.dm
+++ b/code/game/objects/items/rogueweapons/melee/knives.dm
@@ -29,6 +29,9 @@
smeltresult = /obj/item/ingot/iron
can_cdg = TRUE
+/obj/item/rogueweapon/huntingknife/Initialize()
+ . = ..()
+ AddElement(/datum/element/tipped_item)
/datum/intent/dagger
clickcd = 8
diff --git a/code/game/turfs/open/water.dm b/code/game/turfs/open/water.dm
index c6790f83a10..1add32952d0 100644
--- a/code/game/turfs/open/water.dm
+++ b/code/game/turfs/open/water.dm
@@ -301,6 +301,21 @@
BP.add_embedded_object(I, silent = TRUE)
return .
+/turf/open/water/sea
+ name = "shallows"
+ desc = "Shallow salty seawater, gentle waves lap across the surface"
+ water_level = 2
+ water_color = "#034ea4"
+ water_reagent = /datum/reagent/water/salty
+
+/turf/open/water/sea/deep
+ name = "sea"
+ desc = "Deep salty seawater, who knows what dwells beneath the surface?"
+ water_level = 3
+ water_color = "#02014b"
+ slowdown = 5
+ swim_skill = TRUE
+
/turf/open/water/swamp/deep
name = "murk"
desc = "Deep water with several weeds and algae on the surface."
diff --git a/code/modules/cargo/packsrogue/apparel.dm b/code/modules/cargo/packsrogue/apparel.dm
index 1dd1f0bf92d..69fd591ac01 100644
--- a/code/modules/cargo/packsrogue/apparel.dm
+++ b/code/modules/cargo/packsrogue/apparel.dm
@@ -47,7 +47,7 @@
/datum/supply_pack/rogue/apparel/crosses/silver
name = "Silver Cross"
- cost = 150
+ cost = 60
contains = list(/obj/item/clothing/neck/roguetown/psicross/silver)
/datum/supply_pack/rogue/apparel/crosses/psicross
@@ -57,7 +57,7 @@
/datum/supply_pack/rogue/apparel/gloves/leather
name = "Leather Gloves"
- cost = 15
+ cost = 25
contains = list(
/obj/item/clothing/gloves/roguetown/leather,
/obj/item/clothing/gloves/roguetown/leather,
@@ -66,7 +66,7 @@
/datum/supply_pack/rogue/apparel/boots/leather
name = "Leather Boots"
- cost = 15
+ cost = 25
contains = list(
/obj/item/clothing/shoes/roguetown/armor/leather,
/obj/item/clothing/shoes/roguetown/armor/leather,
@@ -75,7 +75,7 @@
/datum/supply_pack/rogue/apparel/trousers/leather
name = "Leather Trousers"
- cost = 15
+ cost = 25
contains = list(
/obj/item/clothing/under/roguetown/trou/leather,
/obj/item/clothing/under/roguetown/trou/leather,
@@ -92,7 +92,7 @@
)
/datum/supply_pack/rogue/apparel/shirts/tunic
- name = "Shirt"
+ name = "Tunic"
cost = 10
contains = list(
/obj/item/clothing/suit/roguetown/shirt/tunic,
diff --git a/code/modules/cargo/packsrogue/armor.dm b/code/modules/cargo/packsrogue/armor.dm
index 33e34de71d4..8c9f9327b0b 100644
--- a/code/modules/cargo/packsrogue/armor.dm
+++ b/code/modules/cargo/packsrogue/armor.dm
@@ -3,10 +3,10 @@
group = "Armor"
crate_name = "merchant guild's crate"
crate_type = /obj/structure/closet/crate/chest/merchant
-//steel prices are 35 per and cheap armour is 15 per, iron bars are also 20 per
+//steel prices are 25-20 per and cheap armour is 10 per, iron bars are also 15 per
/datum/supply_pack/rogue/armor/helmet
name = "Steel Helmet"
- cost = 70//2 steel
+ cost = 45//2 steel
contains = list(
/obj/item/clothing/head/roguetown/helmet,
/obj/item/clothing/head/roguetown/helmet,
@@ -14,7 +14,7 @@
/datum/supply_pack/rogue/armor/coif
name = "Cloth Coif"
- cost = 30//cheap armour for the masses
+ cost = 20//cheap armour for the masses
contains = list(
/obj/item/clothing/neck/roguetown/coif,
/obj/item/clothing/neck/roguetown/coif,
@@ -22,7 +22,7 @@
/datum/supply_pack/rogue/armor/coif/steel
name = "Steel Coif"
- cost = 70//2 steel
+ cost = 45//2 steel
contains = list(
/obj/item/clothing/neck/roguetown/chaincoif,
/obj/item/clothing/neck/roguetown/chaincoif,
@@ -30,7 +30,7 @@
/datum/supply_pack/rogue/armor/mask/steel
name = "Steel Mask"
- cost = 70//2 steel
+ cost = 45//2 steel
contains = list(
/obj/item/clothing/mask/rogue/facemask/steel,
/obj/item/clothing/mask/rogue/facemask/steel,
@@ -38,7 +38,7 @@
/datum/supply_pack/rogue/armor/mask/steel/hound
name = "Steel Hound Mask"
- cost = 70//2 steel
+ cost = 45//2 steel
contains = list(
/obj/item/clothing/mask/rogue/facemask/steel/hound,
/obj/item/clothing/mask/rogue/facemask/steel/hound,
@@ -46,7 +46,7 @@
/datum/supply_pack/rogue/armor/bracers
name = "Steel Bracers"
- cost = 70//2 steel
+ cost = 45//2 steel
contains = list(
/obj/item/clothing/wrists/roguetown/bracers,
/obj/item/clothing/wrists/roguetown/bracers,
@@ -54,7 +54,7 @@
/datum/supply_pack/rogue/armor/chaingauntlets
name = "Steel Chain Gauntlets"
- cost = 70//2 steel
+ cost = 45//2 steel
contains = list(
/obj/item/clothing/gloves/roguetown/chain,
/obj/item/clothing/gloves/roguetown/chain,
@@ -62,10 +62,10 @@
/datum/supply_pack/rogue/armor/boots
name = "Steel Boots"
- cost = 70//2 steel
+ cost = 45//2 steel
contains = list(
- /obj/item/clothing/shoes/roguetown/armor,
- /obj/item/clothing/shoes/roguetown/armor,
+ /obj/item/clothing/shoes/roguetown/armor/steel,
+ /obj/item/clothing/shoes/roguetown/armor/steel,
)
/datum/supply_pack/rogue/armor/gambeson
@@ -76,9 +76,17 @@
/obj/item/clothing/suit/roguetown/armor/gambeson,
)
+/datum/supply_pack/rogue/armor/gambeson/heavy
+ name = "Padded Gambeson"
+ cost = 50
+ contains = list(
+ /obj/item/clothing/suit/roguetown/armor/gambeson/heavy,
+ /obj/item/clothing/suit/roguetown/armor/gambeson/heavy,
+ )
+
/datum/supply_pack/rogue/armor/leather
name = "Leather Armor"
- cost = 30//cheap armour for the masses
+ cost = 25//cheap armour for the masses
contains = list(
/obj/item/clothing/suit/roguetown/armor/leather,
/obj/item/clothing/suit/roguetown/armor/leather,
@@ -86,7 +94,7 @@
/datum/supply_pack/rogue/armor/leather/studded
name = "Studded Leather Armor"
- cost = 70//2 leather armour and 2 iron, seems a bit high but...
+ cost = 50//2 leather armour and 2 iron, seems a bit high but...
contains = list(
/obj/item/clothing/suit/roguetown/armor/leather/studded,
/obj/item/clothing/suit/roguetown/armor/leather/studded,
@@ -94,15 +102,15 @@
/datum/supply_pack/rogue/armor/chainmaille
name = "Chainmaille"
- cost = 40//2 iron
+ cost = 30//2 iron
contains = list(
/obj/item/clothing/suit/roguetown/armor/chainmail/iron,
/obj/item/clothing/suit/roguetown/armor/chainmail/iron,
)
-/datum/supply_pack/rogue/armor/haubergon
- name = "Haubergon"
- cost = 70//2 steel
+/datum/supply_pack/rogue/armor/haubergeon
+ name = "Haubergeon"
+ cost = 45//2 steel
contains = list(
/obj/item/clothing/suit/roguetown/armor/chainmail,
/obj/item/clothing/suit/roguetown/armor/chainmail,
@@ -110,24 +118,39 @@
/datum/supply_pack/rogue/armor/hauberk
name = "Hauberk"
- cost = 140//2 steel
+ cost = 90//4 steel
contains = list(
/obj/item/clothing/suit/roguetown/armor/chainmail/hauberk,
/obj/item/clothing/suit/roguetown/armor/chainmail/hauberk,
)
+/datum/supply_pack/rogue/armor/hauberk/single
+ name = "Hauberk"
+ cost = 50
+ contains = list(/obj/item/clothing/suit/roguetown/armor/chainmail/hauberk)
+
/datum/supply_pack/rogue/armor/halfplate
- name = "Half-Plate Armor"
- cost = 210//6 steel
+ name = "Steel Cuirass"
+ cost = 90//4 steel
contains = list(
/obj/item/clothing/suit/roguetown/armor/plate/half,
/obj/item/clothing/suit/roguetown/armor/plate/half,
)
+/datum/supply_pack/rogue/armor/halfplate/single
+ name = "Steel Cuirass"
+ cost = 50
+ contains = list(/obj/item/clothing/suit/roguetown/armor/plate/half)
+
/datum/supply_pack/rogue/armor/plate/full
name = "Full Plate"
- cost = 280//8 steel
+ cost = 180//8 steel
contains = list(
/obj/item/clothing/suit/roguetown/armor/plate/full,
/obj/item/clothing/suit/roguetown/armor/plate/full,
)
+
+/datum/supply_pack/rogue/armor/plate/full/single
+ name = "Full Plate"
+ cost = 100
+ contains = list(/obj/item/clothing/suit/roguetown/armor/plate/full)
diff --git a/code/modules/cargo/packsrogue/food.dm b/code/modules/cargo/packsrogue/food.dm
index 29c3ba63276..ff1dcc52c04 100644
--- a/code/modules/cargo/packsrogue/food.dm
+++ b/code/modules/cargo/packsrogue/food.dm
@@ -5,7 +5,7 @@
/datum/supply_pack/rogue/food/lesserhealthpot
name = "Minor Healing Potion"
- cost = 9
+ cost = 25
contains = list(
/obj/item/reagent_containers/glass/bottle/rogue/lesserhealthpot,
/obj/item/reagent_containers/glass/bottle/rogue/lesserhealthpot,
@@ -31,8 +31,8 @@
)
/datum/supply_pack/rogue/food/meat
- name = "Dry Meat"
- cost = 15
+ name = "Coppiettes"
+ cost = 25
contains = list(
/obj/item/reagent_containers/food/snacks/rogue/meat/coppiette,
/obj/item/reagent_containers/food/snacks/rogue/meat/coppiette,
@@ -65,9 +65,9 @@
)
/datum/supply_pack/rogue/food/pepper
- name = "Pepper"
- cost = 120
- contains = list(/obj/item/reagent_containers/food/condiment/peppermill)
+ name = "Pepper mill"
+ cost = 40
+ contains = list(/obj/item/reagent_containers/peppermill)
/datum/supply_pack/rogue/food/butter
name = "Butter"
@@ -86,3 +86,36 @@
/obj/item/reagent_containers/food/snacks/rogue/honey,
/obj/item/reagent_containers/food/snacks/rogue/honey,
)
+
+/datum/supply_pack/rogue/food/veggie
+ name = "Vegetables Pack"
+ cost = 50
+ contains = list(
+ /obj/item/reagent_containers/food/snacks/grown/cabbage,
+ /obj/item/reagent_containers/food/snacks/grown/cabbage,
+ /obj/item/reagent_containers/food/snacks/grown/onion,
+ /obj/item/reagent_containers/food/snacks/grown/onion,
+ /obj/item/reagent_containers/food/snacks/grown/potato,
+ /obj/item/reagent_containers/food/snacks/grown/potato,
+ /obj/item/reagent_containers/food/snacks/grown/beet,
+ )
+
+/datum/supply_pack/rogue/food/grain
+ name = "Grain Pack"
+ cost = 40
+ contains = list(
+ /obj/item/reagent_containers/food/snacks/grown/wheat,
+ /obj/item/reagent_containers/food/snacks/grown/wheat,
+ /obj/item/reagent_containers/food/snacks/grown/oat,
+ /obj/item/reagent_containers/food/snacks/grown/oat,
+ /obj/item/reagent_containers/food/snacks/grown/rice,
+ /obj/item/reagent_containers/food/snacks/grown/rice,
+ )
+
+/datum/supply_pack/rogue/food/tea
+ name = "Tea"
+ cost = 15
+ contains = list(/obj/item/reagent_containers/food/snacks/grown/tea,
+ /obj/item/reagent_containers/food/snacks/grown/tea,
+ /obj/item/reagent_containers/food/snacks/grown/tea,
+ )
diff --git a/code/modules/cargo/packsrogue/luxury.dm b/code/modules/cargo/packsrogue/luxury.dm
index e8d347819bf..3adcd515939 100644
--- a/code/modules/cargo/packsrogue/luxury.dm
+++ b/code/modules/cargo/packsrogue/luxury.dm
@@ -15,6 +15,11 @@
cost = 8
contains = list(/obj/item/clothing/mask/cigarette/rollie/cannabis)
+/datum/supply_pack/rogue/luxury/sshigs
+ name = "Sshig Brand Zigs"
+ cost = 25
+ contains = list(/obj/item/storage/fancy/shhig)
+
/datum/supply_pack/rogue/luxury/perfume
name = "Perfume"
cost = 10 //steward can get these in bulk for 12 per
@@ -80,6 +85,21 @@
cost = 10
contains = list(/obj/item/rogue/instrument/drum)
+/datum/supply_pack/rogue/luxury/deck
+ name = "Deck of cards"
+ cost = 15
+ contains = list(/obj/item/toy/cards/deck)
+
+/datum/supply_pack/rogue/luxury/dice
+ name = "Full bag of dice"
+ cost = 15
+ contains = list(/obj/item/storage/pill_bottle/dice)
+
+/datum/supply_pack/rogue/luxury/psiring
+ name = "Blessed Ring"
+ cost = 40
+ contains = list(/obj/item/clothing/ringP)
+
/datum/supply_pack/rogue/luxury/nomag
name = "Ring of Null Magic"
cost = 300
diff --git a/code/modules/cargo/packsrogue/seeds.dm b/code/modules/cargo/packsrogue/seeds.dm
index fd8c2cdc558..c2ae770b9bf 100644
--- a/code/modules/cargo/packsrogue/seeds.dm
+++ b/code/modules/cargo/packsrogue/seeds.dm
@@ -69,6 +69,26 @@
/obj/item/seeds/beet,
)
+/datum/supply_pack/rogue/seeds/tea
+ name = "Tea"
+ cost = 15
+ contains = list(
+ /obj/item/seeds/tea,
+ /obj/item/seeds/tea,
+ /obj/item/seeds/tea,
+ )
+
+/datum/supply_pack/rogue/seeds/grain
+ name = "Seed Bundle (Grain)"
+ cost = 20
+ contains = list(/obj/item/seeds/wheat,
+ /obj/item/seeds/wheat,
+ /obj/item/seeds/wheat/oat,
+ /obj/item/seeds/wheat/oat,
+ /obj/item/seeds/rice,
+ /obj/item/seeds/rice,
+ )
+
/datum/supply_pack/rogue/seeds/vegetable
name = "Seed Bundle (veg)"
cost = 20
diff --git a/code/modules/cargo/packsrogue/tools.dm b/code/modules/cargo/packsrogue/tools.dm
index 31f0ac9ed7a..49f6aee5a7e 100644
--- a/code/modules/cargo/packsrogue/tools.dm
+++ b/code/modules/cargo/packsrogue/tools.dm
@@ -25,7 +25,7 @@
*/
/datum/supply_pack/rogue/tools/chains
name = "Chains"
- cost = 60 //3 iron
+ cost = 50 //3 iron
contains = list(
/obj/item/rope/chain,
/obj/item/rope/chain,
@@ -34,7 +34,7 @@
/datum/supply_pack/rogue/tools/lockpicks
name = "Lockpicks"
- cost = 30
+ cost = 20
contains = list(/obj/item/lockpickring/mundane)
/datum/supply_pack/rogue/tools/sacks
@@ -109,14 +109,24 @@
/datum/supply_pack/rogue/tools/prarml
name = "Prosthetic Left Wooden Arm"
- cost = 40
+ cost = 20
contains = list(/obj/item/bodypart/l_arm/prosthetic/wood)
/datum/supply_pack/rogue/tools/prarmr
name = "Prosthetic Right Wooden Arm"
- cost = 40
+ cost = 20
contains = list(/obj/item/bodypart/r_arm/prosthetic/wood)
+/datum/supply_pack/rogue/tools/prarmlB
+ name = "Advanced Prosthetic Left Bronze Arm"
+ cost = 60
+ contains = list(/obj/item/bodypart/l_arm/prosthetic/bronze)
+
+/datum/supply_pack/rogue/tools/prarmrB
+ name = "Advanced Prosthetic Right Bronze Arm"
+ cost = 60
+ contains = list(/obj/item/bodypart/r_arm/prosthetic/bronze)
+
/datum/supply_pack/rogue/tools/waterskin
name = "Waterskin"
cost = 10
@@ -143,6 +153,59 @@
/obj/item/needle,
/obj/item/needle)
+/datum/supply_pack/rogue/tools/bandage
+ name = "Bandages"
+ cost = 25
+ contains = list(/obj/item/natural/bundle/cloth/bandage/full)
+
+/datum/supply_pack/rogue/tools/alembic
+ name = "Alembic"
+ cost = 30
+ contains = list(/obj/item/reagent_containers/glass/alembic)
+
+/datum/supply_pack/rogue/tools/ifak
+ name = "Personal Patch Kit"
+ cost = 50
+ contains = list(/obj/item/storage/fancy/ifak)
+
+/datum/supply_pack/rogue/tools/surgery
+ name = "Full Surgery Kit"
+ cost = 90
+ contains = list(/obj/item/storage/fancy/skit)
+
+/datum/supply_pack/rogue/tools/lamptern
+ name = "Lampterns"
+ cost = 50 //3 iron
+ contains = list(/obj/item/flashlight/flare/torch/lantern,
+ /obj/item/flashlight/flare/torch/lantern,
+ /obj/item/flashlight/flare/torch/lantern
+ )
+
+/datum/supply_pack/rogue/tools/smith
+ name = "Tongs & Hammer"
+ cost = 40
+ contains = list(/obj/item/rogueweapon/tongs,
+ /obj/item/rogueweapon/hammer/iron,
+ )
+
+/datum/supply_pack/rogue/tools/farm
+ name = "Farming Tools Set"
+ cost = 50
+ contains = list(/obj/item/rogueweapon/sickle,
+ /obj/item/rogueweapon/hoe,
+ /obj/item/rogueweapon/pitchfork,
+ )
+
+/datum/supply_pack/rogue/tools/skillet
+ name = "Iron skillet"
+ cost = 20
+ contains = list(/obj/item/cooking/pan)
+
+/datum/supply_pack/rogue/tools/scissors
+ name = "Iron scissors"
+ cost = 20
+ contains = list(/obj/item/rogueweapon/huntingknife/scissors)
+
/datum/supply_pack/rogue/tools/shopkeyy
name = "Spare Shopkey"
cost = 10
diff --git a/code/modules/cargo/packsrogue/wardrobe.dm b/code/modules/cargo/packsrogue/wardrobe.dm
index 39baf4d4a49..0a9cee6373b 100644
--- a/code/modules/cargo/packsrogue/wardrobe.dm
+++ b/code/modules/cargo/packsrogue/wardrobe.dm
@@ -36,14 +36,30 @@
/obj/item/clothing/cloak/raincloak/green,
)
-/datum/supply_pack/rogue/wardrobe/gloves/fgloves
- name = "Fingerless Gloves"
- cost = 5
+/datum/supply_pack/rogue/wardrobe/cloaks/fur
+ name = "Fur Cloaks"
+ cost = 70 //needs to be this high, due to it being salvagable into fur
+ contains = list(
+ /obj/item/clothing/cloak/raincloak/furcloak,
+ /obj/item/clothing/cloak/raincloak/furcloak,
+ )
+
+/datum/supply_pack/rogue/wardrobe/gloves/silk
+ name = "Silk Gloves"
+ cost = 12
contains = list(
- /obj/item/clothing/gloves/roguetown/fingerless,
- /obj/item/clothing/gloves/roguetown/fingerless,
+ /obj/item/clothing/gloves/roguetown/shadow,
+ /obj/item/clothing/gloves/roguetown/shadow,
)
+/datum/supply_pack/rogue/wardrobe/gloves/grenzel
+ name = "Grenzelhoftian Gloves"
+ cost = 20
+ contains = list(
+ /obj/item/clothing/gloves/roguetown/grenzelgloves,
+ /obj/item/clothing/gloves/roguetown/grenzelgloves,
+ )
+
/datum/supply_pack/rogue/wardrobe/hat/witchhat
name = "Witch-Hunter's Hats"
cost = 10
@@ -134,7 +150,7 @@
)
/datum/supply_pack/rogue/wardrobe/suits/formal
- name = "Formal Silks"
+ name = "Grenzelhoftian Formal Silks"
cost = 20
contains = list(
/obj/item/clothing/suit/roguetown/shirt/grenzelhoft,
@@ -145,8 +161,8 @@
name = "Formal Pants"
cost = 20
contains = list(
- /obj/item/clothing/under/roguetown/tights/black,
- /obj/item/clothing/under/roguetown/tights/black,
+ /obj/item/clothing/under/roguetown/shadow,
+ /obj/item/clothing/under/roguetown/shadow,
)
/datum/supply_pack/rogue/wardrobe/shoes/noble
diff --git a/code/modules/cargo/packsrogue/weapons.dm b/code/modules/cargo/packsrogue/weapons.dm
index 643caf102f9..2fb6a5b5a93 100644
--- a/code/modules/cargo/packsrogue/weapons.dm
+++ b/code/modules/cargo/packsrogue/weapons.dm
@@ -6,7 +6,7 @@
/datum/supply_pack/rogue/weapons/sword
name = "Iron Swords"
- cost = 60//3 iron
+ cost = 50//3 iron
contains = list(
/obj/item/rogueweapon/sword/iron,
/obj/item/rogueweapon/sword/iron,
@@ -15,7 +15,7 @@
/datum/supply_pack/rogue/weapons/mace
name = "Iron Maces"
- cost = 60//3 iron
+ cost = 50//3 iron
contains = list(
/obj/item/rogueweapon/mace,
/obj/item/rogueweapon/mace,
@@ -24,7 +24,7 @@
/datum/supply_pack/rogue/weapons/dagger
name = "Iron Daggers"
- cost = 60//3 iron
+ cost = 50//3 iron
contains = list(
/obj/item/rogueweapon/huntingknife/idagger,
/obj/item/rogueweapon/huntingknife/idagger,
@@ -33,7 +33,7 @@
/datum/supply_pack/rogue/weapons/axe
name = "Iron Axes"
- cost = 60//3 iron
+ cost = 50//3 iron
contains = list(
/obj/item/rogueweapon/stoneaxe/woodcut,
/obj/item/rogueweapon/stoneaxe/woodcut,
@@ -42,7 +42,7 @@
/datum/supply_pack/rogue/weapons/spear
name = "Iron Spears"
- cost = 60//3 iron
+ cost = 50//3 iron
contains = list(
/obj/item/rogueweapon/spear,
/obj/item/rogueweapon/spear,
@@ -51,7 +51,7 @@
/datum/supply_pack/rogue/weapons/flail
name = "Iron Flails"
- cost = 60//3 iron
+ cost = 50//3 iron
contains = list(
/obj/item/rogueweapon/flail,
/obj/item/rogueweapon/flail,
@@ -60,13 +60,18 @@
/datum/supply_pack/rogue/weapons/daggerss
name = "Steel Daggers"
- cost = 105 //3 steel
+ cost = 80 //3 steel
contains = list(
/obj/item/rogueweapon/huntingknife/idagger/steel,
/obj/item/rogueweapon/huntingknife/idagger/steel,
/obj/item/rogueweapon/huntingknife/idagger/steel,
)
+/datum/supply_pack/rogue/weapons/daggerss/single
+ name = "Steel Dagger"
+ cost = 30
+ contains = list(/obj/item/rogueweapon/huntingknife/idagger/steel)
+
/datum/supply_pack/rogue/weapons/shield
name = "Wooden Shields"
cost = 45
@@ -78,13 +83,18 @@
/datum/supply_pack/rogue/weapons/crossbow
name = "Crossbows"
- cost = 120// 3 steel + misc
+ cost = 90// 3 steel + misc
contains = list(
/obj/item/gun/ballistic/revolver/grenadelauncher/crossbow,
/obj/item/gun/ballistic/revolver/grenadelauncher/crossbow,
/obj/item/gun/ballistic/revolver/grenadelauncher/crossbow,
)
+/datum/supply_pack/rogue/weapons/crossbow/single
+ name = "Crossbow"
+ cost = 30
+ contains = list(/obj/item/gun/ballistic/revolver/grenadelauncher/crossbow)
+
/datum/supply_pack/rogue/weapons/bow
name = "Bows"
cost = 30
@@ -123,6 +133,11 @@
/obj/item/ammo_holder/quiver/arrows,
)
+/datum/supply_pack/rogue/weapons/quivers/arrows/single
+ name = "Quiver of Arrows"
+ cost = 30
+ contains = list(/obj/item/ammo_holder/quiver/arrows)
+
/datum/supply_pack/rogue/weapons/quivers/bolts
name = "Quiver of Bolts"
cost = 60//3 iron
@@ -132,6 +147,10 @@
/obj/item/ammo_holder/quiver/bolts,
)
+/datum/supply_pack/rogue/weapons/quivers/bolts/single
+ name = "Quiver of Bolts"
+ cost = 30
+ contains = list(/obj/item/ammo_holder/quiver/bolts)
/*
/datum/supply_pack/rogue/weapons/Parrows
name = "Poisoned Arrows"
@@ -165,3 +184,27 @@
)
*/
+/datum/supply_pack/rogue/weapons/arquebus
+ name = "Arquebus Rifle"
+ cost = 90
+ contains = list(/obj/item/gun/ballistic/firearm/arquebus)
+
+/datum/supply_pack/rogue/weapons/handgonne
+ name = "Handgonne"
+ cost = 50
+ contains = list(/obj/item/gun/ballistic/firearm/handgonne)
+
+/datum/supply_pack/rogue/weapons/powderflask
+ name = "Powderflask"
+ cost = 20
+ contains = list(/obj/item/powderflask)
+
+/datum/supply_pack/rogue/weapons/bullet
+ name = "Bullet Pouch (lead)"
+ cost = 30
+ contains = list(/obj/item/ammo_holder/bullet/lead)
+
+/datum/supply_pack/rogue/weapons/bullet/grape
+ name = "Bullet Pouch (grape)"
+ cost = 30
+ contains = list(/obj/item/ammo_holder/bullet/grapeshot)
diff --git a/code/modules/clothing/rogueclothes/armor.dm b/code/modules/clothing/rogueclothes/armor.dm
index 4921f2ca557..356c2a8a2fe 100644
--- a/code/modules/clothing/rogueclothes/armor.dm
+++ b/code/modules/clothing/rogueclothes/armor.dm
@@ -111,6 +111,7 @@
prevent_crits = list(BCLASS_CUT, BCLASS_STAB, BCLASS_CHOP, BCLASS_BLUNT, BCLASS_TWIST)
max_integrity = 180 // slightly lower than scale
armor_class = ARMOR_CLASS_MEDIUM
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite. NO CROPS FOR HANDS!
/obj/item/clothing/suit/roguetown/armor/plate/half
slot_flags = ITEM_SLOT_ARMOR
@@ -179,6 +180,7 @@
armor_class = ARMOR_CLASS_HEAVY
w_class = WEIGHT_CLASS_BULKY
clothing_flags = CANT_SLEEP_IN
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/armor/heartfelt/hand
slot_flags = ITEM_SLOT_ARMOR
@@ -198,6 +200,7 @@
armor_class = ARMOR_CLASS_HEAVY
w_class = WEIGHT_CLASS_BULKY
clothing_flags = CANT_SLEEP_IN
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/armor/brigandine
slot_flags = ITEM_SLOT_ARMOR
diff --git a/code/modules/clothing/rogueclothes/hats/hats.dm b/code/modules/clothing/rogueclothes/hats/hats.dm
index 218a5c10a88..400c2fd35ae 100644
--- a/code/modules/clothing/rogueclothes/hats/hats.dm
+++ b/code/modules/clothing/rogueclothes/hats/hats.dm
@@ -128,6 +128,7 @@
else if(adjustable == CADJUSTED)
ResetAdjust(user)
+
/obj/item/clothing/head/roguetown/eoramask
name = "eoran mask"
desc = "A silver opera mask worn by the faithful of Eora, usually during their rituals."
diff --git a/code/modules/clothing/rogueclothes/leather/armor.dm b/code/modules/clothing/rogueclothes/leather/armor.dm
index 83db4f19f47..c762327605a 100644
--- a/code/modules/clothing/rogueclothes/leather/armor.dm
+++ b/code/modules/clothing/rogueclothes/leather/armor.dm
@@ -25,6 +25,7 @@
body_parts_covered = CHEST|GROIN|VITALS|LEGS|ARMS
prevent_crits = list(BCLASS_CUT, BCLASS_BLUNT, BCLASS_TWIST)
armor = list("blunt" = 75, "slash" = 60, "stab" = 30, "bullet" = 10, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
+ // MAKE USE "leather"'s SLEEVE
/obj/item/clothing/suit/roguetown/armor/leather/masterwork
name = "masterwork leather coat"
@@ -33,6 +34,7 @@
max_integrity = 300
prevent_crits = list(BCLASS_CUT, BCLASS_BLUNT, BCLASS_TWIST, BCLASS_CHOP) //we're adding chop here!
armor = list("blunt" = 100, "slash" = 70, "stab" = 40, "bullet" = 10, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
+ // MAKE USE "leather"'s SLEEVE
/obj/item/clothing/suit/roguetown/armor/leather/hide
name = "hide armor"
@@ -116,7 +118,7 @@
/obj/item/clothing/suit/roguetown/armor/leather/cult_robe
name = "cultist robes"
desc = " "
- icon_state = "warlock"
+ icon_state = "warlock" // BROKEN
item_state = "warlock"
armor = list("blunt" = 30, "slash" = 10, "stab" = 20, "bullet" = 5, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
prevent_crits = list(BCLASS_CUT)
@@ -211,4 +213,4 @@
drop_sound = 'sound/foley/dropsound/cloth_drop.ogg'
sewrepair = TRUE
armor_class = ARMOR_CLASS_LIGHT
- salvage_res
+ salvage_result = /obj/item/natural/hide/cured
diff --git a/code/modules/clothing/rogueclothes/robes.dm b/code/modules/clothing/rogueclothes/robes.dm
index 173e9f7a8da..f59cacf95cb 100644
--- a/code/modules/clothing/rogueclothes/robes.dm
+++ b/code/modules/clothing/rogueclothes/robes.dm
@@ -27,6 +27,7 @@
color = null
r_sleeve_status = SLEEVE_NORMAL
l_sleeve_status = SLEEVE_NORMAL
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/shirt/robe/noc
slot_flags = ITEM_SLOT_ARMOR
@@ -41,6 +42,7 @@
color = null
r_sleeve_status = SLEEVE_NORMAL
l_sleeve_status = SLEEVE_NORMAL
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/shirt/robe/necromancer
slot_flags = ITEM_SLOT_ARMOR
@@ -55,6 +57,7 @@
color = null
r_sleeve_status = SLEEVE_NORMAL
l_sleeve_status = SLEEVE_NORMAL
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/shirt/robe/dendor
slot_flags = ITEM_SLOT_ARMOR
@@ -69,6 +72,7 @@
color = null
r_sleeve_status = SLEEVE_NORMAL
l_sleeve_status = SLEEVE_NORMAL
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/shirt/robe/necra
slot_flags = ITEM_SLOT_ARMOR
diff --git a/code/modules/clothing/rogueclothes/shirts.dm b/code/modules/clothing/rogueclothes/shirts.dm
index 840cd97408c..b0d3d50794b 100644
--- a/code/modules/clothing/rogueclothes/shirts.dm
+++ b/code/modules/clothing/rogueclothes/shirts.dm
@@ -32,6 +32,7 @@
sleeved = null
allowed_sex = list(MALE, FEMALE)
allowed_race = NON_DWARVEN_RACE_TYPES
+ // Has sprite without crop for hands AND no sleeves
/obj/item/clothing/suit/roguetown/shirt/undershirt/black
color = CLOTHING_BLACK
@@ -91,6 +92,7 @@
icon_state = "puritan_shirt"
allowed_race = CLOTHED_RACES_TYPES
salvage_result = /obj/item/natural/silk
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/shirt/undershirt/sailor
icon_state = "sailorblues"
@@ -265,6 +267,7 @@
mob_overlay_icon = 'icons/roguetown/clothing/nobledresses/onmob/shirts.dmi'
icon_state = "velvetdress"
item_state = "velvetdress"
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/shirt/dress/velvetdress/black
color = CLOTHING_BLACK
@@ -289,6 +292,7 @@
mob_overlay_icon = 'icons/roguetown/clothing/nobledresses/onmob/shirts.dmi'
icon_state = "nobledress"
item_state = "nobledress"
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/suit/roguetown/shirt/dress/nobledress/black
color = CLOTHING_BLACK
diff --git a/code/modules/clothing/rogueclothes/temp/citywatch.dm b/code/modules/clothing/rogueclothes/temp/citywatch.dm
index 2558fc50e91..aa799095925 100644
--- a/code/modules/clothing/rogueclothes/temp/citywatch.dm
+++ b/code/modules/clothing/rogueclothes/temp/citywatch.dm
@@ -16,6 +16,7 @@
clothing_flags = CANT_SLEEP_IN
anvilrepair = /datum/skill/craft/blacksmithing
sewrepair = FALSE
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/head/roguetown/helmet/citywatch
name = "city watch helmet"
diff --git a/code/modules/clothing/rogueclothes/temp/councillor.dm b/code/modules/clothing/rogueclothes/temp/councillor.dm
index 5ce30cbff08..d55a897f004 100644
--- a/code/modules/clothing/rogueclothes/temp/councillor.dm
+++ b/code/modules/clothing/rogueclothes/temp/councillor.dm
@@ -17,3 +17,4 @@
r_sleeve_status = SLEEVE_NORMAL
l_sleeve_status = SLEEVE_NORMAL
armor_class = ARMOR_CLASS_LIGHT
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
diff --git a/code/modules/clothing/rogueclothes/temp/duchess.dm b/code/modules/clothing/rogueclothes/temp/duchess.dm
index a601dcc87c1..5d86429a0f5 100644
--- a/code/modules/clothing/rogueclothes/temp/duchess.dm
+++ b/code/modules/clothing/rogueclothes/temp/duchess.dm
@@ -7,6 +7,7 @@
mob_overlay_icon = 'icons/roguetown/clothing/licensed-infraredbaron/onmob/duchess.dmi'
icon_state = "duchess"
item_state = "duchess"
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
/obj/item/clothing/head/roguetown/duchess_hood
name = "duchess hood"
diff --git a/code/modules/clothing/rogueclothes/temp/duke.dm b/code/modules/clothing/rogueclothes/temp/duke.dm
index e4d3d072fa0..fb8d5e94204 100644
--- a/code/modules/clothing/rogueclothes/temp/duke.dm
+++ b/code/modules/clothing/rogueclothes/temp/duke.dm
@@ -19,3 +19,4 @@
sleeved = null
armor_class = ARMOR_CLASS_LIGHT
salvage_result = /obj/item/natural/hide/cured
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
diff --git a/code/modules/clothing/rogueclothes/temp/hand.dm b/code/modules/clothing/rogueclothes/temp/hand.dm
index a0f13ea6cc9..2ffa2cb9172 100644
--- a/code/modules/clothing/rogueclothes/temp/hand.dm
+++ b/code/modules/clothing/rogueclothes/temp/hand.dm
@@ -7,3 +7,4 @@
item_state = "hand"
allowed_sex = list(MALE, FEMALE)
slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_ARMOR //ugly hack to make it render over the head
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
diff --git a/code/modules/clothing/rogueclothes/temp/heir.dm b/code/modules/clothing/rogueclothes/temp/heir.dm
index a321452af8d..0c5195c4637 100644
--- a/code/modules/clothing/rogueclothes/temp/heir.dm
+++ b/code/modules/clothing/rogueclothes/temp/heir.dm
@@ -8,3 +8,4 @@
body_parts_covered = CHEST|GROIN|VITALS|LEGS|ARMS
allowed_sex = list(MALE, FEMALE)
slot_flags = ITEM_SLOT_ARMOR
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
diff --git a/code/modules/clothing/rogueclothes/temp/heiress.dm b/code/modules/clothing/rogueclothes/temp/heiress.dm
index 7bbdd99fa18..0b652a75cbd 100644
--- a/code/modules/clothing/rogueclothes/temp/heiress.dm
+++ b/code/modules/clothing/rogueclothes/temp/heiress.dm
@@ -8,3 +8,4 @@
body_parts_covered = CHEST|GROIN|VITALS|LEGS|ARMS
allowed_sex = list(MALE, FEMALE)
slot_flags = ITEM_SLOT_ARMOR
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
diff --git a/code/modules/clothing/rogueclothes/temp/magos.dm b/code/modules/clothing/rogueclothes/temp/magos.dm
index 56ba3c132c9..d1280e43999 100644
--- a/code/modules/clothing/rogueclothes/temp/magos.dm
+++ b/code/modules/clothing/rogueclothes/temp/magos.dm
@@ -7,3 +7,4 @@
item_state = "magos"
allowed_sex = list(MALE, FEMALE)
slot_flags = ITEM_SLOT_ARMOR
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
diff --git a/code/modules/clothing/rogueclothes/temp/steward.dm b/code/modules/clothing/rogueclothes/temp/steward.dm
index 5f377d0e45c..25351e35154 100644
--- a/code/modules/clothing/rogueclothes/temp/steward.dm
+++ b/code/modules/clothing/rogueclothes/temp/steward.dm
@@ -7,4 +7,4 @@
item_state = "steward"
allowed_sex = list(MALE, FEMALE)
slot_flags = ITEM_SLOT_ARMOR
-
+ ignore_sleeves_code = TRUE // No sleeves, otherwise arms will be over the sprite
diff --git a/code/modules/jobs/job_types/roguetown/yeomen/merchant.dm b/code/modules/jobs/job_types/roguetown/yeomen/merchant.dm
index b288dd01bd1..b9c24718158 100644
--- a/code/modules/jobs/job_types/roguetown/yeomen/merchant.dm
+++ b/code/modules/jobs/job_types/roguetown/yeomen/merchant.dm
@@ -46,9 +46,12 @@
shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt/sailor
pants = /obj/item/clothing/under/roguetown/tights/sailor
belt = /obj/item/storage/belt/rogue/leather/rope
- beltl = /obj/item/storage/keyring/merchant
+ beltl = /obj/item/gun/ballistic/firearm/arquebus_pistol //merchant usually gets his pistol from the map, but it's currently broken and doesn't appear, and also gets stolen often when latejoining
beltr = /obj/item/storage/belt/rogue/pouch/coins/rich
+ backl = /obj/item/storage/backpack/rogue/satchel
id = /obj/item/clothing/ring/gold
+ backpack_contents = list(/obj/item/storage/keyring/merchant)
+
if(H.gender == MALE)
shoes = /obj/item/clothing/shoes/roguetown/armor/leather
H.dna.species.soundpack_m = new /datum/voicepack/male/wizard()
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 1f9d2106c0d..1f7769b96f2 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -1194,13 +1194,16 @@ There are several things that need to be remembered:
if(dna && dna.species.sexes)
var/mutable_appearance/shirt_overlay
var/armsindex = get_limbloss_index(ARM_RIGHT, ARM_LEFT)
+ var/target_layer = SHIRT_LAYER
+ if(wear_armor.ignore_sleeves_code)
+ target_layer = OVER_HANDS_LAYER // Cursed, but much of clothing, that uses this varible, doesn't mean to use it with armor
var/racecustom
if(dna.species.custom_clothes)
racecustom = dna.species.clothes_id
if(dna.species.use_f || (gender == FEMALE && !dna.species.use_m))
- shirt_overlay = wear_shirt.build_worn_icon(default_layer = SHIRT_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', female = TRUE, customi = racecustom, sleeveindex = armsindex, boobed_overlay = has_boobed_overlay())
+ shirt_overlay = wear_shirt.build_worn_icon(default_layer = target_layer, default_icon_file = 'icons/mob/clothing/feet.dmi', female = TRUE, customi = racecustom, sleeveindex = armsindex, boobed_overlay = has_boobed_overlay())
else
- shirt_overlay = wear_shirt.build_worn_icon(default_layer = SHIRT_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', female = FALSE, customi = racecustom, sleeveindex = armsindex)
+ shirt_overlay = wear_shirt.build_worn_icon(default_layer = target_layer, default_icon_file = 'icons/mob/clothing/feet.dmi', female = FALSE, customi = racecustom, sleeveindex = armsindex)
if(gender == MALE)
if(OFFSET_SHIRT in dna.species.offset_features)
@@ -1258,15 +1261,18 @@ There are several things that need to be remembered:
var/mutable_appearance/armor_overlay
if(dna.species.custom_clothes)
racecustom = dna.species.clothes_id
+ var/target_layer = ARMOR_LAYER
+ if(wear_armor.ignore_sleeves_code)
+ target_layer = OVER_HANDS_LAYER
var/desired_gender_render = gender
if(dna.species.use_f)
desired_gender_render = FEMALE
if(dna.species.use_m)
desired_gender_render = MALE
if(desired_gender_render == FEMALE)
- armor_overlay = wear_armor.build_worn_icon(default_layer = ARMOR_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', female = TRUE, customi = racecustom, sleeveindex = armsindex, boobed_overlay = has_boobed_overlay())
+ armor_overlay = wear_armor.build_worn_icon(default_layer = target_layer, default_icon_file = 'icons/mob/clothing/feet.dmi', female = TRUE, customi = racecustom, sleeveindex = armsindex, boobed_overlay = has_boobed_overlay())
else
- armor_overlay = wear_armor.build_worn_icon(default_layer = ARMOR_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', female = FALSE, customi = racecustom, sleeveindex = armsindex)
+ armor_overlay = wear_armor.build_worn_icon(default_layer = target_layer, default_icon_file = 'icons/mob/clothing/feet.dmi', female = FALSE, customi = racecustom, sleeveindex = armsindex)
if(gender == MALE)
if(OFFSET_ARMOR in dna.species.offset_features)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index d6f809200fb..c36a218635d 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -93,6 +93,25 @@
M.add_nausea(50)
return ..()
+/datum/reagent/water/salty
+ name = "Salt Water"
+ taste_description = "salt"
+ hydration = -7 //Saltwater makes you thirstier
+
+/datum/reagent/water/salty/on_mob_life(mob/living/carbon/M)
+ M.adjustToxLoss(0.5)
+ M.add_nausea(50)
+
+/datum/reagent/rawsalt
+ name = "Raw Salt"
+ taste_description = "salt"
+ var/hydration = -15 //Don't eat raw salt
+
+/datum/reagent/rawsalt/on_mob_life(mob/living/carbon/M)
+ M.adjustToxLoss(0.5)
+ M.add_nausea(50)
+ M.adjust_hydration(hydration)
+
/*
* Water reaction to turf
*/
diff --git a/code/modules/roguetown/roguejobs/miner/rogueores.dm b/code/modules/roguetown/roguejobs/miner/rogueores.dm
index f7f7792ab8a..2cf8ea8002f 100644
--- a/code/modules/roguetown/roguejobs/miner/rogueores.dm
+++ b/code/modules/roguetown/roguejobs/miner/rogueores.dm
@@ -128,7 +128,7 @@
icon_state = "ingotiron"
smeltresult = /obj/item/ingot/iron
grind_results = list(/datum/reagent/iron = 15)
- sellprice = 25
+ sellprice = 20
/obj/item/ingot/copper
name = "copper bar"
@@ -136,14 +136,14 @@
icon_state = "ingotcop"
smeltresult = /obj/item/ingot/copper
grind_results = list(/datum/reagent/copper = 15)
- sellprice = 25
+ sellprice = 20
/obj/item/ingot/tin
name = "tin bar"
desc = "An ingot of strangely soft and malleable essence."
icon_state = "ingottin"
smeltresult = /obj/item/ingot/tin
- sellprice = 25
+ sellprice = 20
/obj/item/ingot/bronze
name = "bronze bar"
@@ -165,7 +165,7 @@
desc = "This ingot is a stalwart defender of the kingdom."
icon_state = "ingotsteel"
smeltresult = /obj/item/ingot/steel
- sellprice = 40
+ sellprice = 30
/obj/item/ingot/blacksteel
name = "blacksteel bar"
diff --git a/code/modules/roguetown/roguemachine/merchant.dm b/code/modules/roguetown/roguemachine/merchant.dm
index 4fcf5ae2e93..3e329dab06f 100644
--- a/code/modules/roguetown/roguemachine/merchant.dm
+++ b/code/modules/roguetown/roguemachine/merchant.dm
@@ -203,10 +203,9 @@
var/datum/supply_pack/PA = new path
var/cost = PA.cost
var/tax_amt=round(SStreasury.tax_value * cost)
- var/guild_tax_amt = round(SStreasury.queens_tax * cost)
- cost = cost + tax_amt + guild_tax_amt
+ cost = cost + tax_amt
if(upgrade_flags & UPGRADE_NOTAX)
- cost = PA.cost + guild_tax_amt
+ cost = PA.cost
if(budget >= cost)
budget -= cost
if(!(upgrade_flags & UPGRADE_NOTAX))
@@ -342,7 +341,7 @@
pax += PA
for(var/datum/supply_pack/PA in sortList(pax))
var/cost = PA.cost
- var/costy = cost + round(SStreasury.queens_tax * cost)
+ var/costy = cost
if(!(upgrade_flags & UPGRADE_NOTAX))
costy = round(costy + (SStreasury.tax_value * cost))
contents += "[PA.name] [PA.contains.len > 1?"x[PA.contains.len]":""] - ([costy])BUY
"
diff --git a/code/modules/spells/roguetown/acolyte/sawbones.dm b/code/modules/spells/roguetown/acolyte/sawbones.dm
index 440d2745de5..8e43aaae080 100644
--- a/code/modules/spells/roguetown/acolyte/sawbones.dm
+++ b/code/modules/spells/roguetown/acolyte/sawbones.dm
@@ -657,16 +657,21 @@
//---------------------------------------alch reactions----------------------------------------------//
+
+/datum/chemical_reaction/alch
+ name = "debug alch reaction"
+ mix_sound = 'sound/items/fillbottle.ogg'
+ id = /datum/reagent/alch
+ required_container = /obj/item/reagent_containers/glass/alembic
+
/datum/chemical_reaction/alch/lesserhealth
name = "lesser health pot"
- mix_sound = 'sound/items/fillbottle.ogg'
id = /datum/reagent/medicine/lesserhealthpot
results = list(/datum/reagent/medicine/lesserhealthpot = 45) //15 oz
required_reagents = list(/datum/reagent/alch/syrum_meat = 24, /datum/reagent/alch/syrum_ash = 24)
/datum/chemical_reaction/alch/health //purify minor health pot into half a bottle by using essence of clarity (swampweed)
name = "health pot purification"
- mix_sound = 'sound/items/fillbottle.ogg'
id = /datum/reagent/medicine/healthpot
results = list(/datum/reagent/medicine/healthpot = 22.5) //about 7.5 oz
required_reagents = list(/datum/reagent/medicine/lesserhealthpot = 45, /datum/reagent/alch/syrum_swamp_weed = 24)
@@ -674,7 +679,6 @@
/datum/chemical_reaction/alch/greaterhealth //purify health pot into half a bottle of super by using essence of poison (poison berry) which used to be in the old red recipe
name = "greater health pot purification"
- mix_sound = 'sound/items/fillbottle.ogg'
id = /datum/reagent/medicine/greaterhealthpot
results = list(/datum/reagent/medicine/greaterhealthpot = 22.5) //about 7.5 oz
required_reagents = list(/datum/reagent/medicine/healthpot = 45, /datum/reagent/alch/syrum_poison_berry = 24)
@@ -721,6 +725,22 @@ end recipe count: 8 ash, 8 minced meat, 4 swampweed, 2 poisonberry to make 1 bot
for(var/i = 1, i <= created_volume, i++)
new /obj/item/reagent_containers/powder/moondust(location)
+/datum/chemical_reaction/alch/puresalt
+ name = "puresalt"
+ id = "puresalt"
+ required_reagents = list(/datum/reagent/water/salty = 30) //Boil off the water to get pure salt
+ results = list(/datum/reagent/rawsalt = 15)
+
+/datum/chemical_reaction/alch/saltsea
+ name = "saltsea"
+ id = "saltsea"
+ required_reagents = list(/datum/reagent/rawsalt = 15)
+
+/datum/chemical_reaction/alch/saltsea/on_reaction(datum/reagents/holder, created_volume)
+ var/location = get_turf(holder.my_atom)
+ for(var/i = 1, i <= created_volume, i++)
+ new /obj/item/reagent_containers/powder/salt(location)
+
/datum/chemical_reaction/alch/spice
name = "spiceify"
id = "spiceify"
@@ -1244,7 +1264,7 @@ end recipe count: 8 ash, 8 minced meat, 4 swampweed, 2 poisonberry to make 1 bot
/obj/item/reagent_containers/glass/alembic
name = "metal alembic"
- possible_item_intents = list(INTENT_POUR, INTENT_SPLASH)
+ possible_item_intents = list(INTENT_POUR, INTENT_SPLASH, /datum/intent/fill) //It's janky and annoying to need to fill the alembic this way, but also Moricode is stupid and I'll refactor it later.
desc = "so you're an alchemist then?"
icon = 'icons/roguetown/items/surgery.dmi'
icon_state = "alembic_empty"
diff --git a/icons/roguetown/clothing/onmob/helpers/sleeves_shirts.dmi b/icons/roguetown/clothing/onmob/helpers/sleeves_shirts.dmi
index 8648a8b6adb..e5c802ed8d3 100644
Binary files a/icons/roguetown/clothing/onmob/helpers/sleeves_shirts.dmi and b/icons/roguetown/clothing/onmob/helpers/sleeves_shirts.dmi differ
diff --git a/icons/roguetown/clothing/onmob/shirts.dmi b/icons/roguetown/clothing/onmob/shirts.dmi
index cb28919a687..9a9cd994f17 100644
Binary files a/icons/roguetown/clothing/onmob/shirts.dmi and b/icons/roguetown/clothing/onmob/shirts.dmi differ