diff --git a/code/game/objects/items/rogueitems/needle.dm b/code/game/objects/items/rogueitems/needle.dm index fc52eaae6..52f7412a4 100644 --- a/code/game/objects/items/rogueitems/needle.dm +++ b/code/game/objects/items/rogueitems/needle.dm @@ -56,16 +56,18 @@ /obj/item/needle/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/natural/fibers)) - if(maxstring - stringamt < 5) - to_chat(user, span_warning("Not enough room for more thread!")) - return - else - to_chat(user, "I begin threading the needle with additional fibers...") - if(do_after(user, 6 SECONDS - user.mind.get_skill_level(/datum/skill/misc/sewing), target = I)) - stringamt += 5 - to_chat(user, "I replenish the needle's thread!") - qdel(I) + if(infinite || maxstring - stringamt <= 0) //is the needle infinite OR does it have all of its uses left + to_chat(user, span_warning("The needle has no need to be refilled.")) return + + to_chat(user, "I begin threading the needle with additional fibers...") + if(do_after(user, 6 SECONDS - user.mind.get_skill_level(/datum/skill/misc/sewing), target = I)) + var/refill_amount + refill_amount = min(5, (maxstring - stringamt)) + stringamt += refill_amount + to_chat(user, "I replenish the needle's thread by [refill_amount] uses!") + qdel(I) + return return ..() @@ -76,7 +78,7 @@ if(stringamt < 1) to_chat(user, span_warning("The needle has no thread left!")) return - if(I.sewrepair && I.max_integrity && !I.obj_broken) + if(I.sewrepair && I.max_integrity) if(I.obj_integrity == I.max_integrity) to_chat(user, span_warning("This is not broken.")) return @@ -95,6 +97,9 @@ playsound(loc, 'sound/foley/sewflesh.ogg', 100, TRUE, -2) user.visible_message(span_info("[user] repairs [I]!")) I.obj_integrity = I.max_integrity + if(I.obj_broken && istype(I, /obj/item/clothing)) + var/obj/item/clothing/cloth = I + cloth.obj_fix() //Vrell - Part of storage item repair fix if(target_storage) target_storage.being_repaired = FALSE diff --git a/code/game/objects/items/rogueweapons/melee/polearms.dm b/code/game/objects/items/rogueweapons/melee/polearms.dm index 62a7fc005..e80433af2 100644 --- a/code/game/objects/items/rogueweapons/melee/polearms.dm +++ b/code/game/objects/items/rogueweapons/melee/polearms.dm @@ -258,7 +258,7 @@ possible_item_intents = list(/datum/intent/spear/thrust/eaglebeak, SPEAR_BASH) //bash is for nonlethal takedowns, only targets limbs gripped_intents = list(/datum/intent/spear/thrust/eaglebeak, /datum/intent/mace/smash/eaglebeak, SPEAR_BASH) name = "eagle's beak" - desc = "" + desc = "A reinforced pole affixed with an ornate steel eagle's head, of which it's beak is intended to pierce with great harm." icon_state = "eaglebeak" icon = 'icons/roguetown/weapons/64.dmi' pixel_y = -16 @@ -272,9 +272,13 @@ minstr = 11 smeltresult = /obj/item/ingot/steel associated_skill = /datum/skill/combat/polearms + max_blade_int = 300 + max_integrity = 500 blade_dulling = DULLING_BASHCHOP walking_stick = TRUE - wdefense = 6 + wdefense = 5 + wbalance = -1 + sellprice = 60 /obj/item/rogueweapon/eaglebeak/getonmobprop(tag) . = ..() @@ -290,10 +294,14 @@ /obj/item/rogueweapon/eaglebeak/lucerne name = "lucerne" - desc = "A polehammer with a sharp pointy end." + desc = "A polehammer of simple iron. Fracture bone and dissent with simple brute force." + force = 12 + force_wielded = 25 icon_state = "polehammer" smeltresult = /obj/item/ingot/iron - max_blade_int = 200 + max_blade_int = 300 + max_integrity = 300 + sellprice = 40 /datum/intent/spear/thrust/eaglebeak penfactor = 20 @@ -352,3 +360,7 @@ /datum/intent/sword/thrust/zwei reach = 2 + +/obj/item/rogueweapon/greatsword/grenz + name = "steel zweihander" + icon_state = "steelzwei" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 06ee0308d..f386f2cec 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -68,6 +68,7 @@ var/detail_color var/boobed_detail = TRUE var/sleeved_detail = TRUE + var/list/original_armor //For restoring broken armor /obj/item/clothing/New() ..() @@ -319,6 +320,7 @@ /obj/item/clothing/obj_break(damage_flag) if(!damaged_clothes) update_clothes_damaged_state(TRUE) + original_armor = armor var/brokemessage = FALSE for(var/x in armor) if(armor[x] > 0) @@ -329,6 +331,11 @@ to_chat(M, "ARMOR BROKEN..!") ..() +/obj/item/clothing/proc/obj_fix(damage_flag) + obj_broken = FALSE + if(damaged_clothes) + update_clothes_damaged_state(FALSE) + armor = original_armor /obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE) var/index = "[REF(initial(icon))]-[initial(icon_state)]" var/static/list/damaged_clothes_icons = list() diff --git a/code/modules/clothing/rogueclothes/gloves.dm b/code/modules/clothing/rogueclothes/gloves.dm index 9df24546a..90a4a3a41 100644 --- a/code/modules/clothing/rogueclothes/gloves.dm +++ b/code/modules/clothing/rogueclothes/gloves.dm @@ -1,5 +1,4 @@ - /obj/item/clothing/gloves/roguetown slot_flags = ITEM_SLOT_GLOVES body_parts_covered = HANDS @@ -107,3 +106,6 @@ drop_sound = 'sound/foley/dropsound/cloth_drop.ogg' anvilrepair = null sewrepair = TRUE + +/obj/item/clothing/gloves/roguetown/grenzelgloves/blacksmith + name = "forge gauntlets" diff --git a/code/modules/clothing/rogueclothes/hats.dm b/code/modules/clothing/rogueclothes/hats.dm index 053b20233..1c733c432 100644 --- a/code/modules/clothing/rogueclothes/hats.dm +++ b/code/modules/clothing/rogueclothes/hats.dm @@ -231,6 +231,11 @@ icon_state = "bardhat" sewrepair = TRUE +/obj/item/clothing/head/roguetown/smokingcap + name = "smoking cap" + icon_state = "smokingc" + sewrepair = TRUE + /obj/item/clothing/head/roguetown/fancyhat name = "fancy hat" desc = "A fancy looking hat with colorful feathers sticking out of it." @@ -240,8 +245,8 @@ /obj/item/clothing/head/roguetown/hatfur name = "fur hat" - icon_state = "hatfur" desc = "A comfortable warm hat lined with fur." + icon_state = "hatfur" sewrepair = TRUE /obj/item/clothing/head/roguetown/papakha @@ -331,8 +336,8 @@ /obj/item/clothing/head/roguetown/knitcap name = "knit cap" - icon_state = "knitcap" desc = "A simple knitted cap." + icon_state = "knitcap" sewrepair = TRUE //dropshrink = 0.75 @@ -352,7 +357,7 @@ color = CLOTHING_RED /obj/item/clothing/head/roguetown/crown/serpcrown - name = "crown of caustic cove" + name = "crown of azure peak" desc = "" icon_state = "serpcrown" //dropshrink = 0 @@ -366,7 +371,7 @@ SSroguemachine.crown = src /obj/item/clothing/head/roguetown/crown/serpcrown/proc/anti_stall() - src.visible_message(span_warning("The Crown of Caustic Cove crumbles to dust, the ashes spiriting away in the direction of the Keep.")) + src.visible_message(span_warning("The Crown of Azure Peak crumbles to dust, the ashes spiriting away in the direction of the Keep.")) SSroguemachine.crown = null //Do not harddel. qdel(src) //Anti-stall @@ -438,8 +443,8 @@ /obj/item/clothing/head/roguetown/paddedcap name = "padded cap" - icon_state = "armingcap" desc = "A modest arming cap." + icon_state = "armingcap" item_state = "armingcap" sleevetype = null sleeved = null @@ -480,14 +485,14 @@ /obj/item/clothing/head/roguetown/helmet/horned name = "horned cap" - icon_state = "hornedcap" desc = "A helmet with two horns poking out of the sides." + icon_state = "hornedcap" body_parts_covered = HEAD|HAIR /obj/item/clothing/head/roguetown/helmet/winged name = "winged cap" - icon_state = "wingedcap" desc = "A helmet with two wings on its sides." + icon_state = "wingedcap" mob_overlay_icon = 'icons/roguetown/clothing/onmob/64x64/head.dmi' worn_x_dimension = 64 worn_y_dimension = 64 @@ -684,8 +689,6 @@ icon_state = "nochelm" item_state = "nochelm" emote_environment = 3 - flags_inv = HIDEEARS|HIDEFACE|HIDEHAIR - block2add = FOV_RIGHT|FOV_LEFT body_parts_covered = HEAD|HAIR|EARS flags_inv = HIDEEARS|HIDEHAIR block2add = FOV_BEHIND @@ -703,6 +706,7 @@ /obj/item/clothing/head/roguetown/helmet/heavy/dendorhelm name = "dendor helmet" + desc = "Headwear commonly worn by Templars in service to Dendor. Its protrusions almost resemble branches. Take root in the earth, and you will never be moved." icon_state = "dendorhelm" item_state = "dendorhelm" emote_environment = 3 @@ -801,7 +805,7 @@ /obj/item/clothing/head/roguetown/helmet/heavy/frogmouth name = "froggemund helmet" - desc = "A tall and imposing frogmouth-style helm popular in the highest plateaus of the Caustic Cove. Covers not just the head, but the neck as well. Add a cloth to show the colors of your family or allegiance." + desc = "A tall and imposing frogmouth-style helm popular in the highest plateaus of the Azure Peak. Covers not just the head, but the neck as well. Add a cloth to show the colors of your family or allegiance." icon_state = "frogmouth" item_state = "frogmouth" emote_environment = 3 @@ -976,6 +980,12 @@ wise.change_stat("intelligence", -2, "wisehat") to_chat(wise, span_red("I lose wisdom.")) +/obj/item/clothing/head/roguetown/witchhat + name = "witch hat" + desc = "" + icon_state = "witch" + sewrepair = TRUE + /obj/item/clothing/head/roguetown/physician name = "doctor's hat" desc = "My cure is most effective." @@ -1003,6 +1013,7 @@ dynamic_hair_suffix = "" max_integrity = 150 armor = list("blunt" = 15, "slash" = 20, "stab" = 15, "bullet" = 1, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + sewrepair = TRUE var/picked = FALSE /obj/item/clothing/head/roguetown/grenzelhofthat/attack_right(mob/user) diff --git a/code/modules/clothing/rogueclothes/mask.dm b/code/modules/clothing/rogueclothes/mask.dm index 9853490da..0604d3648 100644 --- a/code/modules/clothing/rogueclothes/mask.dm +++ b/code/modules/clothing/rogueclothes/mask.dm @@ -161,3 +161,218 @@ slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_HIP experimental_onhip = TRUE smeltresult = /obj/item/natural/bone +/obj/item/clothing/mask/rogue + name = "" + icon = 'icons/roguetown/clothing/masks.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/onmob/masks.dmi' + body_parts_covered = FACE + slot_flags = ITEM_SLOT_MASK + +/obj/item/clothing/mask/rogue/spectacles + name = "spectacles" + icon_state = "glasses" + break_sound = "glassbreak" + attacked_sound = 'sound/combat/hits/onglass/glasshit.ogg' + max_integrity = 20 + integrity_failure = 0.5 + resistance_flags = FIRE_PROOF + body_parts_covered = EYES + anvilrepair = /datum/skill/craft/armorsmithing +// block2add = FOV_BEHIND + +/obj/item/clothing/mask/rogue/spectacles/golden + name = "golden spectacles" + icon_state = "goggles" + break_sound = "glassbreak" + attacked_sound = 'sound/combat/hits/onglass/glasshit.ogg' + max_integrity = 35 + integrity_failure = 0.5 + resistance_flags = FIRE_PROOF + body_parts_covered = EYES + anvilrepair = /datum/skill/craft/armorsmithing + +/obj/item/clothing/mask/rogue/spectacles/Initialize() + . = ..() + AddComponent(/datum/component/spill, null, 'sound/blank.ogg') + +/obj/item/clothing/mask/rogue/spectacles/Crossed(mob/crosser) + if(isliving(crosser) && !obj_broken) + take_damage(11, BRUTE, "blunt", 1) + ..() + +/obj/item/clothing/mask/rogue/equipped(mob/user, slot) + . = ..() + user.update_fov_angles() + +/obj/item/clothing/mask/rogue/dropped(mob/user) + . = ..() + user.update_fov_angles() + +/obj/item/clothing/mask/rogue/eyepatch + name = "eyepatch" + desc = "An eyepatch, fitted for the right eye." + icon_state = "eyepatch" + max_integrity = 20 + integrity_failure = 0.5 + block2add = FOV_RIGHT + body_parts_covered = EYES + sewrepair = TRUE + +/obj/item/clothing/mask/rogue/eyepatch/left + desc = "An eyepatch, fitted for the left eye." + icon_state = "eyepatch_l" + block2add = FOV_LEFT + +/obj/item/clothing/mask/rogue/lordmask + name = "golden halfmask" + desc = "Half of your face turned gold." + icon_state = "lmask" + sellprice = 50 + anvilrepair = /datum/skill/craft/armorsmithing + +/obj/item/clothing/mask/rogue/lordmask/l + icon_state = "lmask_l" + + +/obj/item/clothing/mask/rogue/wildguard + name = "wild guard" + desc = "A mask shaped after the beasts of dendor." + icon_state = "wildguard" + blocksound = PLATEHIT + break_sound = 'sound/foley/breaksound.ogg' + drop_sound = 'sound/foley/dropsound/armor_drop.ogg' + max_integrity = 100 + resistance_flags = FIRE_PROOF + armor = list("blunt" = 90, "slash" = 100, "stab" = 80, "bullet" = 20, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + prevent_crits = list(BCLASS_CUT, BCLASS_STAB, BCLASS_CHOP, BCLASS_BLUNT) + flags_inv = HIDEFACE + body_parts_covered = FACE + block2add = FOV_BEHIND + slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_HIP + anvilrepair = /datum/skill/craft/armorsmithing + smeltresult = /obj/item/ingot/iron + +/obj/item/clothing/mask/rogue/facemask + name = "iron mask" + icon_state = "imask" + max_integrity = 100 + blocksound = PLATEHIT + break_sound = 'sound/foley/breaksound.ogg' + drop_sound = 'sound/foley/dropsound/armor_drop.ogg' + resistance_flags = FIRE_PROOF + armor = list("blunt" = 90, "slash" = 100, "stab" = 80, "bullet" = 20, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + prevent_crits = list(BCLASS_CUT, BCLASS_STAB, BCLASS_CHOP, BCLASS_BLUNT) + flags_inv = HIDEFACE + body_parts_covered = FACE + block2add = FOV_BEHIND + slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_HIP + experimental_onhip = TRUE + anvilrepair = /datum/skill/craft/armorsmithing + smeltresult = /obj/item/ingot/iron + +/obj/item/clothing/mask/rogue/facemask/prisoner/Initialize() + . = ..() + name = "cursed mask" + ADD_TRAIT(src, TRAIT_NODROP, CURSED_ITEM_TRAIT) + +/obj/item/clothing/mask/rogue/facemask/prisoner/dropped(mob/living/carbon/human/user) + . = ..() + if(QDELETED(src)) + return + qdel(src) + +/obj/item/clothing/mask/rogue/facemask/steel + name = "steel mask" + icon_state = "smask" + max_integrity = 200 + smeltresult = /obj/item/ingot/steel + +/obj/item/clothing/mask/rogue/shepherd + name = "halfmask" + icon_state = "shepherd" + flags_inv = HIDEFACE|HIDEFACIALHAIR + body_parts_covered = NECK|MOUTH + slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_HIP + adjustable = CAN_CADJUST + toggle_icon_state = TRUE + experimental_onhip = TRUE + sewrepair = TRUE + +/obj/item/clothing/mask/rogue/shepherd/AdjustClothes(mob/user) + if(loc == user) + if(adjustable == CAN_CADJUST) + adjustable = CADJUSTED + if(toggle_icon_state) + icon_state = "[initial(icon_state)]_t" + flags_inv = null + body_parts_covered = NECK + if(ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_wear_mask() + else if(adjustable == CADJUSTED) + ResetAdjust(user) + flags_inv = HIDEFACE|HIDEFACIALHAIR + body_parts_covered = NECK|MOUTH + if(user) + if(ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_wear_mask() + +/obj/item/clothing/mask/rogue/physician + name = "plague mask" + desc = "What better laboratory than the blood-soaked battlefield?" + icon_state = "physmask" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + body_parts_covered = FACE|EARS|EYES|MOUTH|NECK + slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_HIP + sewrepair = TRUE + + +/obj/item/clothing/mask/rogue/skullmask + name = "skull mask" + desc = "A mask in the shape of a skull, designed to terrify." + icon_state = "skullmask" + max_integrity = 100 + blocksound = PLATEHIT + break_sound = 'sound/foley/breaksound.ogg' + drop_sound = 'sound/foley/dropsound/gen_drop.ogg' + resistance_flags = FIRE_PROOF + armor = list("blunt" = 10, "slash" = 40, "stab" = 40, "bullet" = 8, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + prevent_crits = null + flags_inv = HIDEFACE + body_parts_covered = FACE + block2add = FOV_BEHIND + slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_HIP + experimental_onhip = TRUE + smeltresult = /obj/item/natural/bone + +/obj/item/clothing/mask/rogue/ragmask + name = "rag mask" + icon_state = "ragmask" + flags_inv = HIDEFACE|HIDEFACIALHAIR + body_parts_covered = NECK|MOUTH + slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_HIP + adjustable = CAN_CADJUST + toggle_icon_state = TRUE + experimental_onhip = TRUE + sewrepair = TRUE + +/obj/item/clothing/mask/rogue/ragmask/AdjustClothes(mob/user) + if(loc == user) + if(adjustable == CAN_CADJUST) + adjustable = CADJUSTED + if(toggle_icon_state) + icon_state = "[initial(icon_state)]_t" + flags_inv = null + body_parts_covered = NECK + if(ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_wear_mask() + else if(adjustable == CADJUSTED) + ResetAdjust(user) + flags_inv = HIDEFACE|HIDEFACIALHAIR + body_parts_covered = NECK|MOUTH + if(user) + if(ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_wear_mask() diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/blacksmith.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/blacksmith.dm index 3ee928e6f..10871f734 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/blacksmith.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/blacksmith.dm @@ -16,7 +16,7 @@ beltl = /obj/item/rogueweapon/tongs neck = /obj/item/storage/belt/rogue/pouch/coins/poor - gloves = /obj/item/clothing/gloves/roguetown/leather + gloves = /obj/item/clothing/gloves/roguetown/grenzelgloves/blacksmith cloak = /obj/item/clothing/cloak/apron/blacksmith mouth = /obj/item/rogueweapon/huntingknife pants = /obj/item/clothing/under/roguetown/trou diff --git a/code/modules/jobs/job_types/roguetown/mercenaries/classes/grenzelhoft.dm b/code/modules/jobs/job_types/roguetown/mercenaries/classes/grenzelhoft.dm index b89071481..881ed14cd 100644 --- a/code/modules/jobs/job_types/roguetown/mercenaries/classes/grenzelhoft.dm +++ b/code/modules/jobs/job_types/roguetown/mercenaries/classes/grenzelhoft.dm @@ -39,7 +39,7 @@ H.change_stat("constitution", 2) H.change_stat("perception", 1) H.change_stat("speed", -1) //They get heavy armor now + sword option; so lower speed. - r_hand = /obj/item/rogueweapon/greatsword/zwei + r_hand = /obj/item/rogueweapon/greatsword/grenz if("Halberdier") H.set_blindness(0) to_chat(H, span_warning("You are a Halberdier from Grenzelhoft, a skilled user of poleamrs and axes. Though you prefer them combined..")) diff --git a/code/modules/jobs/job_types/roguetown/yeomen/blacksmith.dm b/code/modules/jobs/job_types/roguetown/yeomen/blacksmith.dm index 8f8b77cd8..2867038b8 100644 --- a/code/modules/jobs/job_types/roguetown/yeomen/blacksmith.dm +++ b/code/modules/jobs/job_types/roguetown/yeomen/blacksmith.dm @@ -140,6 +140,7 @@ /datum/outfit/job/roguetown/blacksmith/pre_equip(mob/living/carbon/human/H) ..() head = /obj/item/clothing/head/roguetown/hatfur + gloves = /obj/item/clothing/gloves/roguetown/grenzelgloves/blacksmith if(prob(50)) head = /obj/item/clothing/head/roguetown/hatblu if(H.mind) diff --git a/code/modules/mob/living/carbon/human/species_types/roguetown/other/halfelf.dm b/code/modules/mob/living/carbon/human/species_types/roguetown/other/halfelf.dm index 0bbfc8628..5946f6370 100644 --- a/code/modules/mob/living/carbon/human/species_types/roguetown/other/halfelf.dm +++ b/code/modules/mob/living/carbon/human/species_types/roguetown/other/halfelf.dm @@ -75,6 +75,11 @@ /datum/body_marking/tonage, ) + languages = list( + /datum/language/common, + /datum/language/elvish + ) + /datum/species/human/halfelf/get_skin_list() return list( "Timber-Gronn" = SKIN_COLOR_TIMBER_GRONN, diff --git a/code/modules/mob/living/roguetownprocs.dm b/code/modules/mob/living/roguetownprocs.dm index 67f5b1b50..543524f58 100644 --- a/code/modules/mob/living/roguetownprocs.dm +++ b/code/modules/mob/living/roguetownprocs.dm @@ -70,7 +70,7 @@ if(!(mobility_flags & MOBILITY_STAND)) return FALSE if(user.badluck(4)) - var/list/usedp = list("Critical miss!", "Damn! Critical miss!", "No! Critical miss!", "It can't be! Critical miss!", "Betrayed by lady luck! Critical miss!", "Bad luck! Critical miss!", "Curse creation! Critical miss!", "What?! Critical miss!") + var/list/usedp = list("Critical miss!", "Damn! Critical miss!", "No! Critical miss!", "It can't be! Critical miss!", "Xylix laughs at me! Critical miss!", "Bad luck! Critical miss!", "Curse creation! Critical miss!", "What?! Critical miss!") to_chat(user, span_boldwarning("[pick(usedp)]")) flash_fullscreen("blackflash2") user.aftermiss() diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index ba74d46a5..ccd8e71fb 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -14,7 +14,7 @@ taste_description = "alcohol" metabolization_rate = 0.5 * REAGENTS_METABOLISM var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning - hydration_factor = 5 + /* Boozepwr Chart Note that all higher effects of alcohol poisoning will inherit effects for smaller amounts (i.e. light poisoning inherts from slight poisoning) @@ -385,7 +385,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "aleglass" glass_name = "glass of ale" glass_desc = "" - hydration_factor = 10 /datum/reagent/consumable/ethanol/goldschlager name = "Goldschlager" @@ -1842,7 +1841,7 @@ All effects don't start immediately, but rather get worse over time; the rate is generate_data_info(data) /datum/reagent/consumable/ethanol/fruit_wine/proc/generate_data_info(list/data) - // retard compiler shit want constant despite number not being moved anywhere + // silly compiler shit want constant despite number not being moved anywhere var/const/minimum_percent = 0.15 //Percentages measured between 0 and 1. var/list/primary_tastes = list() var/list/secondary_tastes = list() @@ -2230,3 +2229,74 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 50 taste_description = "saintly sweetness" color = "#2C9DAF" + +//AZURE DRINKS +/datum/reagent/consumable/ethanol/beer/jagdtrunk // JÄGERMEISTER!!!! + name = "Jagdtrunk" + boozepwr = 55 // gotta be stronk + taste_description = "spicy herbal remedy" + color = "#331f18" + +/datum/reagent/consumable/ethanol/beer/apfelweinheim + name = "Appelheimer" + boozepwr = 45 + taste_description = "tart crispness and mellow sweetness" + color = "#e0cb55" + +/datum/reagent/consumable/ethanol/beer/rtoper + name = "Rockhill Toper" + boozepwr = 40 + taste_description = "overwhelming tartness" + color = "#e0a400" + +/datum/reagent/consumable/ethanol/beer/nred + name = "Norwardine Red" + boozepwr = 30 + taste_description = "heavy caramel note and slight bitterness" + color = "#543633" + +/datum/reagent/consumable/ethanol/beer/gronnmead + name = "Ragnars brew" + boozepwr = 35 + taste_description = "notes of honey and red berries" //I love red mead ok... + color = "#772C48" + +//Avar boozes + +/datum/reagent/consumable/ethanol/beer/avarmead + name = "Zögiin bal" + boozepwr = 30 + taste_description = "spicy honey" + color = "#e0a400" + +/datum/reagent/consumable/ethanol/beer/avarrice + name = "Makkolir" + boozepwr = 30 + taste_description = "tangy sweetness" + color = "#ddcbc9" + +/datum/reagent/consumable/ethanol/beer/saigamilk //No way, kumys from avar!!! + name = "Bökhiin arkhi" + boozepwr = 15 + taste_description = "bubbly, sour salt" + color = "#dddddd" + +//Kazengun boozes + +/datum/reagent/consumable/ethanol/beer/kgunlager + name = "Yamaguchi Pale" + boozepwr = 10 //A PALE imitation actual beer... + taste_description = "mellow bitterness and a hint of green tea" + color = "#d7dbbc" + +/datum/reagent/consumable/ethanol/beer/kgunsake + name = "Junmai-ginjo" + boozepwr = 50 + taste_description = "dry sweetness" + color = "#ccd7e0" + +/datum/reagent/consumable/ethanol/beer/kgunplum + name = "Umeshu" + boozepwr = 30 + taste_description = "a mix of sweet and sour" + color = "#ddb99b" diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index d5b094daa..d9a8c4387 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -7,7 +7,7 @@ icon_state = "clear_bottle1" amount_per_transfer_from_this = 6 possible_transfer_amounts = list(6) - volume = 45 + volume = 48 fill_icon_thresholds = list(0, 25, 50, 75, 100) dropshrink = 0.5 slot_flags = ITEM_SLOT_HIP|ITEM_SLOT_MOUTH @@ -52,7 +52,8 @@ if(closed) reagent_flags = TRANSPARENT reagents.flags = reagent_flags - desc = "A bottle with a cork." + desc = initial(desc) + playsound(user.loc,'sound/items/uncork.ogg', 50, TRUE) spillable = FALSE else reagent_flags = OPENCONTAINER @@ -439,4 +440,3 @@ /obj/item/reagent_containers/glass/bottle/bromine name = "bromine bottle" list_reagents = list(/datum/reagent/bromine = 30) - diff --git a/code/modules/roguetown/roguecrafting/alchemy.dm b/code/modules/roguetown/roguecrafting/alchemy.dm index c3e499581..8b199507d 100644 --- a/code/modules/roguetown/roguecrafting/alchemy.dm +++ b/code/modules/roguetown/roguecrafting/alchemy.dm @@ -71,7 +71,7 @@ /obj/item/reagent_containers/powder/health, /obj/item/reagent_containers/powder/health, ) - reqs = list(/obj/item/ash = 3, /obj/item/reagent_containers/food/snacks/grown/berries/rogue = 1, /obj/item/reagent_containers/food/snacks/rogue/meat/mince = 2, /obj/item/natural/worms/leech = 2) + reqs = list(/obj/item/ash = 3, /obj/item/reagent_containers/food/snacks/grown/berries/rogue = 1, /obj/item/reagent_containers/food/snacks/rogue/meat/mince = 3, /obj/item/natural/worms/leech = 2) craftdiff = 4 /// bottle craft diff --git a/code/modules/roguetown/roguecrafting/items.dm b/code/modules/roguetown/roguecrafting/items.dm index 5e36d61f2..e69ed095c 100644 --- a/code/modules/roguetown/roguecrafting/items.dm +++ b/code/modules/roguetown/roguecrafting/items.dm @@ -228,6 +228,12 @@ /obj/item/kitchen/spoon) reqs = list(/obj/item/grown/log/tree/small = 1) +/datum/crafting_recipe/roguetown/platter + name = "platter" + result = list(/obj/item/cooking/platter, + /obj/item/cooking/platter) + reqs = list(/obj/item/grown/log/tree/small = 1) + /datum/crafting_recipe/roguetown/rollingpin name = "rollingpin" result = /obj/item/kitchen/rollingpin diff --git a/code/modules/roguetown/roguecrafting/sewing.dm b/code/modules/roguetown/roguecrafting/sewing.dm index 8d1e0183a..ed22c0634 100644 --- a/code/modules/roguetown/roguecrafting/sewing.dm +++ b/code/modules/roguetown/roguecrafting/sewing.dm @@ -349,6 +349,13 @@ craftdiff = 3 sellprice = 30 +/datum/crafting_recipe/roguetown/sewing/ragmask + name = "rag mask" + result = list(/obj/item/clothing/mask/rogue/ragmask) + reqs = list(/obj/item/natural/cloth = 1) + craftdiff = 0 + sellprice = 3 + /datum/crafting_recipe/roguetown/sewing/cape name = "cape" result = list(/obj/item/clothing/cloak/cape) diff --git a/code/modules/roguetown/roguejobs/alchemist/container.dm b/code/modules/roguetown/roguejobs/alchemist/container.dm index 149190718..1d6691c2f 100644 --- a/code/modules/roguetown/roguejobs/alchemist/container.dm +++ b/code/modules/roguetown/roguejobs/alchemist/container.dm @@ -9,7 +9,7 @@ list_reagents = list(/datum/reagent/toxin/killersice = 1) /obj/item/reagent_containers/glass/bottle/rogue/water - list_reagents = list(/datum/reagent/water = 45) + list_reagents = list(/datum/reagent/water = 48) ////////////////////////// /// ALCOHOLIC BOTTLES /// @@ -17,66 +17,111 @@ // BEER - Cheap, Plentiful, Saviours of Family Life /obj/item/reagent_containers/glass/bottle/rogue/beer - list_reagents = list(/datum/reagent/consumable/ethanol/beer = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer = 48) desc = "A bottle that contains a generic housebrewed small-beer. It has an improvised corkseal made of hardened clay." /obj/item/reagent_containers/glass/bottle/rogue/beer/zagul - list_reagents = list(/datum/reagent/consumable/ethanol/beer/zagul = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/zagul = 48) desc = "A bottle with the coastal zagul cork-seal. An extremely cheap lager hailing from a local brewery." /obj/item/reagent_containers/glass/bottle/rogue/beer/blackgoat - list_reagents = list(/datum/reagent/consumable/ethanol/beer/blackgoat = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/blackgoat = 48) desc = "A bottle with the black goat kriek cork-seal. A fruit-sour beer brewed with jackberries for a tangy taste." /obj/item/reagent_containers/glass/bottle/rogue/beer/ratkept - list_reagents = list(/datum/reagent/consumable/ethanol/beer/onion = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/onion = 48) desc = "A bottle with surprisingly no cork-seal. On the glass is carved the word \"ONI-N\", the 'O' seems to have been scratched out completely. Dubious. On the glass is a paper glued to it showing an illustration of rats guarding a cellar filled with bottles against a hoard of beggars." /obj/item/reagent_containers/glass/bottle/rogue/beer/hagwoodbitter - list_reagents = list(/datum/reagent/consumable/ethanol/beer/hagwoodbitter = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/hagwoodbitter = 48) desc = "A bottle with the hagwood bitters cork-seal. The least bitter thing to be exported from the Grenzelhoft occupied state of Zorn." /obj/item/reagent_containers/glass/bottle/rogue/beer/aurorian - list_reagents = list(/datum/reagent/consumable/ethanol/beer/aurorian = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/aurorian = 48) desc = "A bottle with the aurorian brewhouse cork-seal. An Elvish beer brewed from an herbal gruit." /obj/item/reagent_containers/glass/bottle/rogue/beer/fireleaf - list_reagents = list(/datum/reagent/consumable/ethanol/beer/fireleaf= 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/fireleaf= 48) desc = "A bottle with a generic leaf cork-seal. An Elvish beer formed by distilling cabbages. You're pretty sure you can make your own with certainly higher quality." /obj/item/reagent_containers/glass/bottle/rogue/beer/butterhairs - list_reagents = list(/datum/reagent/consumable/ethanol/beer/butterhairs = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/butterhairs = 48) desc = "A bottle with the Dwarven Federation Trade Alliance cork-seal. This beer, known as butterhairs: is widely considered one of the greatest exported by the Dwarves." /obj/item/reagent_containers/glass/bottle/rogue/beer/stonebeardreserve - list_reagents = list(/datum/reagent/consumable/ethanol/beer/stonebeards = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/stonebeards = 48) desc = "A bottle with the House Stoutenson cork-seal. Stonebeards Reserve is one of the most legendary beers in existence, with only a few hundred barrels made every year." /obj/item/reagent_containers/glass/bottle/rogue/beer/voddena - list_reagents = list(/datum/reagent/consumable/ethanol/beer/voddena = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/voddena = 48) desc = "A bottle with the House Stoutenson cork-seal. This strange liquid is considered as the most spicy and alcoholic drink in all the Mountainhomes. Bought by nobles of all ages, mostly those with a deathwish." // WINES - Expensive, Nobleblooded /obj/item/reagent_containers/glass/bottle/rogue/wine - list_reagents = list(/datum/reagent/consumable/ethanol/beer/wine = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/wine = 48) desc = "A bottle that contains a generic red-wine, likely from Zybantia. It has a red-clay cork-seal." /obj/item/reagent_containers/glass/bottle/rogue/wine/sourwine - list_reagents = list(/datum/reagent/consumable/ethanol/beer/sourwine = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/sourwine = 48) desc = "A bottle that contains a Grenzelhoftian classic with a black ink cork-seal.. An extremely sour wine that is watered down with mineral water." /obj/item/reagent_containers/glass/bottle/rogue/redwine - list_reagents = list(/datum/reagent/consumable/ethanol/beer/redwine = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/redwine = 48) desc = "A bottle with the Otavan Merchant Guild cork-seal. This one appears to be labelled as a relatively young red-wine from the coinlord state." /obj/item/reagent_containers/glass/bottle/rogue/whitewine - list_reagents = list(/datum/reagent/consumable/ethanol/beer/whitewine = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/whitewine = 48) desc = "A bottle with the Otavan Merchant Guild cork-seal. This one appears to be labelled as a sweet wine from the colder northern regions." /obj/item/reagent_containers/glass/bottle/rogue/elfred - list_reagents = list(/datum/reagent/consumable/ethanol/beer/elfred = 45) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/elfred = 48) desc = "A bottle gilded with a silver cork-seal. It appears to be labelled as a elvish red wine from Otava. Likely worth more than what an entire village makes!" /obj/item/reagent_containers/glass/bottle/rogue/elfblue - list_reagents = list(/datum/reagent/consumable/ethanol/beer/elfblue = 45) - desc = "A bottle gilded with a golden cork-seal. This is the legendary Valmora Blue from the Vineyard of Valmora, headed by a sainted Dark-Elf swordsmaster. This bottle would swoon Gods over!" \ No newline at end of file + list_reagents = list(/datum/reagent/consumable/ethanol/beer/elfblue = 48) + desc = "A bottle gilded with a golden cork-seal. This is the legendary Valmora Blue from the Vineyard of Valmora, headed by a sainted Dark-Elf swordsmaster. This bottle would swoon Gods over!" + +//AZURE DRINKS +/obj/item/reagent_containers/glass/bottle/rogue/beer/jagdtrunk + list_reagents = list(/datum/reagent/consumable/ethanol/beer/jagdtrunk = 48) + desc = "A bottle with a Saigabuck cork-seal. This dark liquid is the strongest alcohol coming out of Grenzelhoft available. A herbal schnapps, sure to burn out any disease." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/apfelweinheim + list_reagents = list(/datum/reagent/consumable/ethanol/beer/apfelweinheim = 48) + desc = "A bottle with the Apfelweinheim cork-seal. A cider from the Grenzelhoftian town of Apfelweinheim. Well received for its addition of pear, alongside crisp apples." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/rtoper + list_reagents = list(/datum/reagent/consumable/ethanol/beer/rtoper = 48) + desc = "A bottle with the Rockhill-crest cork-seal. An especially tart cider from the kingdom of Rockhill. Myths say the brewers let the barrels age in the bog, which results in that especially stong flavour." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/nred + list_reagents = list(/datum/reagent/consumable/ethanol/beer/nred = 48) + desc = "A bottle with the City of Norwandine cork-seal. A red ale brewed to perfection in the lands of Hammerhold." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/gronnmead + list_reagents = list(/datum/reagent/consumable/ethanol/beer/gronnmead = 48) + desc = "A bottle with a Shieldmaiden Berewrey cork-seal. A deep red honey-wine, refined with the red berries native to Gronns highlands." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/avarmead + list_reagents = list(/datum/reagent/consumable/ethanol/beer/avarmead = 48) + desc = "A bottle with a simple cork-seal. A golden honey-wine brewed in the Avar Steppes. Manages to keep a proper taste while staying strong." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/avarrice + list_reagents = list(/datum/reagent/consumable/ethanol/beer/avarrice = 48) + desc = "A bottle with a simple cork-seal. A murky, white wine made from rice grown in the steppes of Avar." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/saigamilk + list_reagents = list(/datum/reagent/consumable/ethanol/beer/saigamilk = 48) + desc = "A bottle with a Running Saiga cork-seal. A form of alcohol brewed from the milk of a saiga and salt. Common drink of the nomads living in the steppe." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/kgunlager + list_reagents = list(/datum/reagent/consumable/ethanol/beer/kgunlager = 48) + desc = "A bottle with a Yamaguchi Brewery cork-seal. A pale lager brewed in the far-away lands of Kazengun, refined with green tea for an unique flavour-profile. Even lighter than elven-brew!" + +/obj/item/reagent_containers/glass/bottle/rogue/beer/kgunsake + list_reagents = list(/datum/reagent/consumable/ethanol/beer/kgunsake = 48) + desc = "A bottle with a Golden Swan cork-seal. A translucient, pale-blue liquid made from rice. A favourite drink of the warlords and nobles of Kazengun." + +/obj/item/reagent_containers/glass/bottle/rogue/beer/kgunplum + list_reagents = list(/datum/reagent/consumable/ethanol/beer/kgunplum = 48) + desc = "A bottle with a Golden Swan cork-seal. A reddish-golden alcohol made from a fruit commonly found on the Kazengun-isles. A favourite of the commoners." diff --git a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/armor.dm b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/armor.dm index 6bcfc16d5..4a45c2f30 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/armor.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/armor.dm @@ -45,6 +45,12 @@ created_item = /obj/item/clothing/mask/rogue/facemask craftdiff = 0 +/datum/anvil_recipe/armor/wildguard + name = "Wildguard Mask" + req_bar = /obj/item/ingot/iron + created_item = /obj/item/clothing/mask/rogue/wildguard + craftdiff = 0 + /datum/anvil_recipe/armor/ironboot name = "Plated Boots" req_bar = /obj/item/ingot/iron diff --git a/code/modules/roguetown/roguejobs/blacksmith/tools.dm b/code/modules/roguetown/roguejobs/blacksmith/tools.dm index f8490bf83..ab8b9c8e8 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/tools.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/tools.dm @@ -27,9 +27,6 @@ var/obj/item/attacked_item = attacked_object if(!attacked_item.anvilrepair || (attacked_item.obj_integrity >= attacked_item.max_integrity) || !isturf(attacked_item.loc)) return - if(attacked_item.obj_integrity <= 0) - user.visible_message(span_warning("[attacked_item] is broken! I cannot fix it...")) - return if(blacksmith_mind.get_skill_level(attacked_item.anvilrepair) <= 0) if(prob(30)) @@ -54,13 +51,15 @@ to_chat(user, span_warning("You fumble your way into slightly repairing [attacked_item].")) else user.visible_message(span_info("[user] repairs [attacked_item]!")) + if(attacked_item.obj_broken && istype(attacked_item, /obj/item/clothing)) + var/obj/item/clothing/clothing = attacked_item + clothing.obj_fix() blacksmith_mind.add_sleep_experience(attacked_item.anvilrepair, exp_gained/2) //We gain as much exp as we fix divided by 2 if(HAS_TRAIT(user, TRAIT_SQUIRE_REPAIR) && do_after(user, CLICK_CD_MELEE - blacksmith_mind.get_skill_level(attacked_item.anvilrepair), target = attacked_object)) attack_obj(attacked_object, user) return else - user.visible_message(span_warning("[user] damages [attacked_item]!")) - attacked_item.take_damage(5, BRUTE, "blunt") + user.visible_message(span_warning("[user] fumbles trying to repair [attacked_item]!")) return if(isstructure(attacked_object) && !user.cmode) diff --git a/code/modules/roguetown/roguemachine/_withdraw_tab.dm b/code/modules/roguetown/roguemachine/_withdraw_tab.dm index 369bd602f..f2aa3d976 100644 --- a/code/modules/roguetown/roguemachine/_withdraw_tab.dm +++ b/code/modules/roguetown/roguemachine/_withdraw_tab.dm @@ -1,6 +1,7 @@ /datum/withdraw_tab var/stockpile_index = -1 var/budget = 0 + var/compact = FALSE var/obj/structure/roguemachine/parent_structure = null /datum/withdraw_tab/New(stockpile_param, obj/structure/roguemachine/structure_param) @@ -12,22 +13,34 @@ var/contents = "
[title]
" if(show_back) contents += "(back)
" - + contents += "--------------
" - contents += "Stored Mammon: [budget]

" + contents += "Stored Mammon: [budget]
" + contents += "Compact Mode: [compact ? "ENABLED" : "DISABLED"]
" + + if(compact) + for(var/datum/roguestock/stockpile/A in SStreasury.stockpile_datums) + var/remote_stockpile = stockpile_index == 1 ? 2 : 1 + if(!A.withdraw_disabled) + contents += "[A.name]: LCL: [A.held_items[stockpile_index]] at [A.withdraw_price]m /" + contents += "RMT: [A.held_items[remote_stockpile]] at [A.withdraw_price+A.transport_fee]m
" + + else + contents += "[A.name]: Withdrawing Disabled..." + + else + for(var/datum/roguestock/stockpile/A in SStreasury.stockpile_datums) + contents += "[A.name]
" + contents += "[A.desc]
" + contents += "Stockpiled Amount (Local): [A.held_items[stockpile_index]]
" + var/remote_stockpile = stockpile_index == 1 ? 2 : 1 + contents += "Stockpiled Amount (Remote): [A.held_items[remote_stockpile]]
" + if(!A.withdraw_disabled) + contents += "\[Withdraw Local ([A.withdraw_price])\] " + contents += "\[Withdraw Remote ([A.withdraw_price+A.transport_fee])\]

" + else + contents += "Withdrawing Disabled...

" - for(var/datum/roguestock/stockpile/A in SStreasury.stockpile_datums) - contents += "[A.name]
" - contents += "[A.desc]
" - contents += "Stockpiled Amount (Local): [A.held_items[stockpile_index]]
" - var/remote_stockpile = stockpile_index == 1 ? 2 : 1 - contents += "Stockpiled Amount (Remote): [A.held_items[remote_stockpile]]
" - if(!A.withdraw_disabled) - contents += "\[Withdraw Local ([A.withdraw_price])\] " - contents += "\[Withdraw Remote ([A.withdraw_price+A.transport_fee])\]

" - else - contents += "Withdrawing Disabled...

" - return contents /datum/withdraw_tab/proc/perform_action(href, href_list) @@ -59,6 +72,12 @@ I.forceMove(get_turf(user)) playsound(parent_structure.loc, 'sound/misc/hiss.ogg', 100, FALSE, -1) return TRUE + if(href_list["compact"]) + if(!usr.canUseTopic(parent_structure, BE_CLOSE)) + return FALSE + if(ishuman(usr)) + compact = !compact + return TRUE if(href_list["change"]) if(!usr.canUseTopic(parent_structure, BE_CLOSE)) return FALSE diff --git a/code/modules/roguetown/roguemachine/scomm.dm b/code/modules/roguetown/roguemachine/scomm.dm index 4d9fcd737..a9e705379 100644 --- a/code/modules/roguetown/roguemachine/scomm.dm +++ b/code/modules/roguetown/roguemachine/scomm.dm @@ -169,6 +169,9 @@ ring_ring() sleep(30) say("This jabberline's rats are exhausted.", spans = list("info")) + calling.called_by = null + calling = null + update_icon() /obj/structure/roguemachine/scomm/obj_break(damage_flag) ..() @@ -352,27 +355,6 @@ else send_speech(message, 1, src, , spans, message_language=language) -/obj/item/scomstone/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, original_message) - if(speaker == src) - return - if(loc != speaker) - return - if(!ishuman(speaker)) - return - var/mob/living/carbon/human/H = speaker - if(!listening) - return - var/usedcolor = H.voice_color - if(H.voicecolor_override) - usedcolor = H.voicecolor_override - if(raw_message) - for(var/obj/structure/roguemachine/scomm/S in SSroguemachine.scomm_machines) - S.repeat_message(raw_message, src, usedcolor, message_language) - for(var/obj/item/scomstone/S in SSroguemachine.scomm_machines) - S.repeat_message(raw_message, src, usedcolor, message_language) - for(var/obj/item/listenstone/S in SSroguemachine.scomm_machines) - S.repeat_message(raw_message, src, usedcolor, message_language)//make the listenstone hear scomstone scream - /obj/item/scomstone/bad name = "serfstone" desc = "A steel ring with a dull gem shoddily sticking out of it." @@ -380,8 +362,9 @@ listening = FALSE sellprice = 20 -/obj/item/scomstone/bad/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, original_message) +/obj/item/scomstone/bad/attack_right(mob/user) return + //LISTENSTONE LISTENSTONE /obj/item/listenstone name = "emerald choker" diff --git a/code/modules/roguetown/roguemachine/steward.dm b/code/modules/roguetown/roguemachine/steward.dm index 93e43208f..378c1335d 100644 --- a/code/modules/roguetown/roguemachine/steward.dm +++ b/code/modules/roguetown/roguemachine/steward.dm @@ -18,6 +18,7 @@ var/locked = FALSE var/keycontrol = "steward" var/current_tab = TAB_MAIN + var/compact = FALSE /obj/structure/roguemachine/steward/attackby(obj/item/P, mob/user, params) @@ -60,7 +61,8 @@ var/amt = D.get_import_price() SStreasury.treasury_value -= amt SStreasury.log_to_steward("-[amt] imported [D.name]") - scom_announce("Caustic Cove imports [D.name] for [amt] mammon.", ) + if(amt >= 100) //Only announce big spending. + scom_announce("Azure Peak imports [D.name] for [amt] mammon.", ) D.raise_demand() addtimer(CALLBACK(src, PROC_REF(do_import), D.type), 10 SECONDS) if(href_list["export"]) @@ -82,7 +84,8 @@ SStreasury.treasury_value += amt SStreasury.log_to_steward("+[amt] exported [D.name]") - scom_announce("Caustic Cove exports [D.name] for [amt] mammon.") + if(amt >= 100) //Only announce big spending. + scom_announce("Azure Peak exports [D.name] for [amt] mammon.") D.lower_demand() if(href_list["togglewithdraw"]) var/datum/roguestock/D = locate(href_list["togglewithdraw"]) in SStreasury.stockpile_datums @@ -145,7 +148,7 @@ return if(newtax < 1) return - SStreasury.give_money_account(newtax, A) + SStreasury.give_money_account(newtax, A, "NERVE MASTER") break if(href_list["fineaccount"]) var/X = locate(href_list["fineaccount"]) @@ -162,7 +165,7 @@ return if(newtax < 1) return - SStreasury.give_money_account(-newtax, A) + SStreasury.give_money_account(-newtax, A, "NERVE MASTER") break if(href_list["payroll"]) var/list/L = list(GLOB.noble_positions) + list(GLOB.garrison_positions) + list(GLOB.courtier_positions) + list(GLOB.church_positions) + list(GLOB.yeoman_positions) + list(GLOB.peasant_positions) + list(GLOB.youngfolk_positions) @@ -186,7 +189,9 @@ return for(var/mob/living/carbon/human/H in GLOB.human_list) if(H.job == job_to_pay) - SStreasury.give_money_account(amount_to_pay, H) + SStreasury.give_money_account(amount_to_pay, H, "NERVE MASTER") + if(href_list["compact"]) + compact = !compact return attack_hand(usr) /obj/structure/roguemachine/steward/proc/do_import(datum/roguestock/D,number) @@ -234,50 +239,82 @@ contents += "\[Log\]
" contents += "" if(TAB_BANK) - contents += "\[Return\]
" + contents += "\[Return\]" + contents += " \[Compact: [compact? "ENABLED" : "DISABLED"]\]
" contents += "
Bank
" contents += "--------------
" contents += "Treasury: [SStreasury.treasury_value]m

" contents += "\[Pay by Class\]

" - for(var/mob/living/carbon/human/A in SStreasury.bank_accounts) - if(ishuman(A)) - var/mob/living/carbon/human/tmp = A - contents += "[tmp.real_name] ([tmp.advjob ? tmp.advjob : tmp.job]) - [SStreasury.bank_accounts[A]]m
" - else - contents += "[A.real_name] - [SStreasury.bank_accounts[A]]m
" - contents += "\[Give Money\] \[Fine Account\]

" + if(compact) + for(var/mob/living/carbon/human/A in SStreasury.bank_accounts) + if(ishuman(A)) + var/mob/living/carbon/human/tmp = A + contents += "[tmp.real_name] ([tmp.advjob ? tmp.advjob : tmp.job]) - [SStreasury.bank_accounts[A]]m" + else + contents += "[A.real_name] - [SStreasury.bank_accounts[A]]m" + contents += " / \[PAY\] \[FINE\]

" + else + for(var/mob/living/carbon/human/A in SStreasury.bank_accounts) + if(ishuman(A)) + var/mob/living/carbon/human/tmp = A + contents += "[tmp.real_name] ([tmp.advjob ? tmp.advjob : tmp.job]) - [SStreasury.bank_accounts[A]]m
" + else + contents += "[A.real_name] - [SStreasury.bank_accounts[A]]m
" + contents += "\[Give Money\] \[Fine Account\]

" if(TAB_STOCK) - contents += "\[Return\]
" + contents += "\[Return\]" + contents += " \[Compact: [compact? "ENABLED" : "DISABLED"]\]
" contents += "
Stockpile
" contents += "--------------
" - contents += "Treasury: [SStreasury.treasury_value]m
" - contents += "Lord's Tax: [SStreasury.tax_value*100]%
" - contents += "Guild's Tax: [SStreasury.queens_tax*100]%

" - for(var/datum/roguestock/stockpile/A in SStreasury.stockpile_datums) - contents += "[A.name]
" - contents += "[A.desc]
" - contents += "Stockpiled Amount: [A.held_items[1] + A.held_items[2]]
" - contents += "Bounty Price: [A.payout_price]
" - contents += "Withdraw Price: [A.withdraw_price]
" - contents += "Demand: [A.demand2word()]
" - if(A.importexport_amt) - contents += "\[Import [A.importexport_amt] ([A.get_import_price()])\] \[Export [A.importexport_amt] ([A.get_export_price()])\]
" - contents += "\[[A.withdraw_disabled ? "Enable" : "Disable"] Withdrawing\]

" + if(compact) + contents += "Treasury: [SStreasury.treasury_value]m" + contents += " / Lord's Tax: [SStreasury.tax_value*100]%" + contents += " / Guild's Tax: [SStreasury.queens_tax*100]%
" + for(var/datum/roguestock/stockpile/A in SStreasury.stockpile_datums) + contents += "[A.name]:" + contents += " [A.held_items[1] + A.held_items[2]]" + contents += " | SELL: [A.payout_price]m" + contents += " / BUY: [A.withdraw_price]m" + if(A.importexport_amt) + contents += " \[IMP [A.importexport_amt] ([A.get_import_price()])\] \[EXP [A.importexport_amt] ([A.get_export_price()])\]
" + else + contents += "Treasury: [SStreasury.treasury_value]m
" + contents += "Lord's Tax: [SStreasury.tax_value*100]%
" + contents += "Guild's Tax: [SStreasury.queens_tax*100]%
" + for(var/datum/roguestock/stockpile/A in SStreasury.stockpile_datums) + contents += "[A.name]
" + contents += "[A.desc]
" + contents += "Stockpiled Amount: [A.held_items[1] + A.held_items[2]]
" + contents += "Bounty Price: [A.payout_price]
" + contents += "Withdraw Price: [A.withdraw_price]
" + contents += "Demand: [A.demand2word()]
" + if(A.importexport_amt) + contents += "\[Import [A.importexport_amt] ([A.get_import_price()])\] \[Export [A.importexport_amt] ([A.get_export_price()])\]
" + contents += "\[[A.withdraw_disabled ? "Enable" : "Disable"] Withdrawing\]

" if(TAB_IMPORT) - contents += "\[Return\]
" + contents += "\[Return\]" + contents += " \[Compact: [compact? "ENABLED" : "DISABLED"]\]
" contents += "
Imports
" contents += "--------------
" - contents += "Treasury: [SStreasury.treasury_value]m
" - contents += "Lord's Tax: [SStreasury.tax_value*100]%
" - contents += "Guild's Tax: [SStreasury.queens_tax*100]%

" - for(var/datum/roguestock/import/A in SStreasury.stockpile_datums) - contents += "[A.name]
" - contents += "[A.desc]
" - if(!A.stable_price) - contents += "Demand: [A.demand2word()]
" - contents += "\[Import [A.importexport_amt] ([A.get_import_price()])\]

" + if(compact) + contents += "Treasury: [SStreasury.treasury_value]m" + contents += " / Lord's Tax: [SStreasury.tax_value*100]%" + contents += " / Guild's Tax: [SStreasury.queens_tax*100]%
" + for(var/datum/roguestock/import/A in SStreasury.stockpile_datums) + contents += "[A.name]:" + contents += " \[Import [A.importexport_amt] ([A.get_import_price()])\]

" + else + contents += "Treasury: [SStreasury.treasury_value]m
" + contents += "Lord's Tax: [SStreasury.tax_value*100]%
" + contents += "Guild's Tax: [SStreasury.queens_tax*100]%
" + for(var/datum/roguestock/import/A in SStreasury.stockpile_datums) + contents += "[A.name]
" + contents += "[A.desc]
" + if(!A.stable_price) + contents += "Demand: [A.demand2word()]
" + contents += "\[Import [A.importexport_amt] ([A.get_import_price()])\]

" if(TAB_BOUNTIES) - contents += "\[Return\]
" + contents += "\[Return\]" contents += "
Bounties
" contents += "--------------
" contents += "Treasury: [SStreasury.treasury_value]m
" @@ -299,7 +336,7 @@ if(!canread) contents = stars(contents) - var/datum/browser/popup = new(user, "VENDORTHING", "", 370, 800) + var/datum/browser/popup = new(user, "VENDORTHING", "", 500, 800) popup.set_content(contents) popup.open() diff --git a/code/modules/roguetown/roguemachine/withdraw.dm b/code/modules/roguetown/roguemachine/withdraw.dm index ce45144d6..85ccb4412 100644 --- a/code/modules/roguetown/roguemachine/withdraw.dm +++ b/code/modules/roguetown/roguemachine/withdraw.dm @@ -42,6 +42,6 @@ user.changeNext_move(CLICK_CD_MELEE) playsound(loc, 'sound/misc/keyboard_enter.ogg', 100, FALSE, -1) var/contents = withdraw_tab.get_contents("VOMITORIUM", FALSE) - var/datum/browser/popup = new(user, "VENDORTHING", "", 370, 400) + var/datum/browser/popup = new(user, "VENDORTHING", "", 370, 800) popup.set_content(contents) popup.open() diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 7f35fd2f3..80a6b549a 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -220,8 +220,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th newdrain = newdrain + (releasedrain * (diffy * 0.02)) // newdrain = newdrain + (ranged_ability_user.checkwornweight() * 10) if(!ranged_ability_user.check_armor_skill()) - newdrain += 40 - testing("[releasedrain] newdrain [newdrain]") + newdrain += 80 if(newdrain > 0) return newdrain else diff --git a/icons/roguetown/clothing/masks.dmi b/icons/roguetown/clothing/masks.dmi index dcd95bafc..71588531d 100644 Binary files a/icons/roguetown/clothing/masks.dmi and b/icons/roguetown/clothing/masks.dmi differ diff --git a/icons/roguetown/clothing/onmob/masks.dmi b/icons/roguetown/clothing/onmob/masks.dmi index 027bb3348..55de54f85 100644 Binary files a/icons/roguetown/clothing/onmob/masks.dmi and b/icons/roguetown/clothing/onmob/masks.dmi differ diff --git a/icons/roguetown/weapons/32.dmi b/icons/roguetown/weapons/32.dmi index 38645baff..be13fd6dc 100644 Binary files a/icons/roguetown/weapons/32.dmi and b/icons/roguetown/weapons/32.dmi differ diff --git a/icons/roguetown/weapons/64.dmi b/icons/roguetown/weapons/64.dmi index 2b2fe072a..75e0e575c 100644 Binary files a/icons/roguetown/weapons/64.dmi and b/icons/roguetown/weapons/64.dmi differ diff --git a/modular/Neu_Food/code/NeuFood.dm b/modular/Neu_Food/code/NeuFood.dm index 39c8bac58..2b55843e1 100644 --- a/modular/Neu_Food/code/NeuFood.dm +++ b/modular/Neu_Food/code/NeuFood.dm @@ -5,29 +5,10 @@ * * * * * * * * * * * * * **/ - -/* ........ Nutrition defines ................ */ -#define MEAL_FILLING 30 -#define MEAL_GOOD 24 -#define MEAL_AVERAGE 18 -#define MEAL_MEAGRE 15 -#define SNACK_NUTRITIOUS 9 -#define SNACK_DECENT 6 -#define SNACK_POOR 3 - -/* ........ Rotting defines ................ */ -#define SHELFLIFE_EXTREME 90 MINUTES -#define SHELFLIFE_LONG 45 MINUTES -#define SHELFLIFE_DECENT 25 MINUTES -#define SHELFLIFE_SHORT 15 MINUTES -#define SHELFLIFE_TINY 10 MINUTES - - // CONTAINMENT ZONE - marked for death /obj/item/reagent_containers/powder/flour/salt // salt being subtype of flour is terrible for so many reasons repath to /obj/item/reagent_containers/powder/salt - /* ........ Templates / Base items ................ */ /obj/item/reagent_containers // added vars used in neu cooking, might be used for other things too in the future. How it works is in each items attackby code. var/short_cooktime = FALSE // based on cooking skill @@ -227,7 +208,7 @@ /obj/item/cooking/platter name = "platter" - desc = "Made from fired clay." + desc = "For holding meals fit for kings." icon = 'modular/Neu_Food/icons/cooking.dmi' lefthand_file = 'modular/Neu_Food/icons/food_lefthand.dmi' righthand_file = 'modular/Neu_Food/icons/food_righthand.dmi' diff --git a/modular/Neu_Food/code/cooked/NeuFood_meals.dm b/modular/Neu_Food/code/cooked/NeuFood_meals.dm index 494eba1c6..2f0d3d59c 100644 --- a/modular/Neu_Food/code/cooked/NeuFood_meals.dm +++ b/modular/Neu_Food/code/cooked/NeuFood_meals.dm @@ -301,37 +301,45 @@ cooked_type = null bonus_reagents = list(/datum/reagent/consumable/nutriment = MEAL_MEAGRE) rotprocess = SHELFLIFE_DECENT + /obj/item/reagent_containers/food/snacks/rogue/meat/poultry/baked/attackby(obj/item/I, mob/user, params) var/obj/item/reagent_containers/peppermill/mill = I - if (!isturf(src.loc) || \ - !(locate(/obj/structure/table) in src.loc) && \ - !(locate(/obj/structure/table/optable) in src.loc) && \ - !(locate(/obj/item/storage/bag/tray) in src.loc)) - to_chat(user, "I need to use a table.") - return FALSE if(istype(mill)) + if (!isturf(src.loc) || \ + !(locate(/obj/structure/table) in src.loc) && \ + !(locate(/obj/structure/table/optable) in src.loc) && \ + !(locate(/obj/item/storage/bag/tray) in src.loc)) + to_chat(user, "I need to use a table.") + return FALSE + if(!mill.reagents.has_reagent(/datum/reagent/consumable/blackpepper, 1)) to_chat(user, "There's not enough black pepper to make anything with.") - return TRUE + return FALSE + mill.icon_state = "peppermill_grind" to_chat(user, "You start rubbing the bird roast with black pepper.") playsound(get_turf(user), 'modular/Neu_Food/sound/peppermill.ogg', 100, TRUE, -1) if(do_after(user,3 SECONDS, target = src)) + mill.icon_state = "peppermill" if(!mill.reagents.has_reagent(/datum/reagent/consumable/blackpepper, 1)) to_chat(user, "There's not enough black pepper to make anything with.") - return TRUE + return FALSE + mill.reagents.remove_reagent(/datum/reagent/consumable/blackpepper, 1) new /obj/item/reagent_containers/food/snacks/rogue/meat/poultry/baked/spiced(loc) qdel(src) - + else + mill.icon_state = "peppermill" else - to_chat(user, "You need to put [src] on a table to knead in the spice.") + return ..() + /obj/item/reagent_containers/food/snacks/rogue/meat/poultry/baked/spiced desc = "A plump bird, roasted perfection, spiced to taste divine." eat_effect = /datum/status_effect/buff/foodbuff name = "spiced bird-roast" color = "#ffc0c0" tastes = list("spicy birdmeat" = 1) + /obj/item/reagent_containers/food/snacks/rogue/meat/poultry/baked/plated icon_state = "roastchicken_plated" item_state = "plate_food" @@ -356,4 +364,3 @@ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2) trash = /obj/item/cooking/platter rotprocess = SHELFLIFE_LONG -