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