diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index c3752de253f..4c171487351 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -295,13 +295,18 @@ if(!cont) return 0 if(DULLING_PICK) //cannot deal damage if not a pick item. aka rock walls - if(user.used_intent.blade_class != BCLASS_PICK) if(user.used_intent.blade_class != BCLASS_DRILL) return 0 + if(!(user.mobility_flags & MOBILITY_STAND)) // REDMOON ADD START - economy_fix - копать можно только стоя + return FALSE + if(user.patron?.type == /datum/patron/inhumen/matthios) // Бандиты и другие маттиоситы презирают подобный тяжёлый труд + newforce *= 0.1 + if(prob(2)) + to_chat(user, span_warning(pick("Я служу Маттиосу чтобы заниматься этим дерьмом?..", "А я Малума не разгневаю, что в его камнях копаюсь...", "Я что, лох, чтобы этим заниматься?", "Грабануть было бы легче..."))) // REDMOON ADD END var/mob/living/miner = user var/mineskill = miner.mind.get_skill_level(/datum/skill/labor/mining) - newforce = newforce * (8+(mineskill*1.5)) + newforce = newforce * (1.5+(mineskill*3.65)) // REDMOON EDIT - economy_fix - скилл шахтёров влияет в 5 раза сильнее, чем раньше - WAS: newforce = newforce * (8+(mineskill*1.5)) shake_camera(user, 1, 1) miner.mind.add_sleep_experience(/datum/skill/labor/mining, (miner.STAINT*0.2)) diff --git a/code/game/objects/structures/roguetown/rogueflora.dm b/code/game/objects/structures/roguetown/rogueflora.dm index 0aaf1b7f245..c94572df39f 100644 --- a/code/game/objects/structures/roguetown/rogueflora.dm +++ b/code/game/objects/structures/roguetown/rogueflora.dm @@ -185,10 +185,13 @@ playsound(src, 'sound/misc/woodhit.ogg', 100, TRUE) if(!do_after(user, lumber_time, target = user)) return - lumber_amount = rand(lumber_amount, max(lumber_amount, round(skill_level / 2))) + if(!istype(get_area(loc), /area/rogue/outdoors/bog)) // REDMOON ADD START - economy_fix - деревья в окрестностях Рокхилла приносят мало древисины + lumber_amount = 1 + else // REDMOON ADD END + lumber_amount = rand(lumber_amount, max(lumber_amount, round(skill_level / 2))) var/essense_sound_played = FALSE //This is here so the sound wont play multiple times if the essense itself spawns multiple times for(var/i = 0; i < lumber_amount; i++) - if(prob(skill_level + user.goodluck(2))) + if(prob(skill_level + user.goodluck(2)) && istype(get_area(loc), /area/rogue/outdoors/bog)) // REDMOON EDIT - economy_fix - Дендор не одобряет лесорубство вне болота - WAS: if(prob(skill_level + user.goodluck(2))) new /obj/item/grown/log/tree/small/essence(get_turf(src)) if(!essense_sound_played) essense_sound_played = TRUE diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index b5ab12c600a..07a1033cf0d 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -170,7 +170,7 @@ /turf/closed/mineral/random/Initialize() - mineralSpawnChanceList = typelist("mineralSpawnChanceList", mineralSpawnChanceList) +// mineralSpawnChanceList = typelist("mineralSpawnChanceList", mineralSpawnChanceList) -- REDMOON REMOVAL - economy_fix - не даёт работать функции check_for_bog_area() if (display_icon_state) icon_state = display_icon_state diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index dfc610f7a8c..feb2ddf137c 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -754,9 +754,14 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put var/obj/structure/bed/rogue/bed = locate() in loc if(bed) bed_recovery_modifier = bed.sleepy - if(IsSleeping()) - recovery_amt = (max_energy * 0.10) * bed_recovery_modifier // Example: max energy 1000 -> 100 energy on ground, 300 on bed - else - recovery_amt = (max_energy * 0.02) * bed_recovery_modifier // Example: max energy 1000 -> 20 energy on ground, 60 on bed - + if(IsSleeping()) // REDMOON EDIT - добавлена 1 таблуяция + recovery_amt = (max_energy * 0.015) * bed_recovery_modifier // REDMOON EDIT - 45 секунд в хорошей кровати, около 1.5 минут в плохой с 0 до 100% - WAS: recovery_amt = (max_energy * 0.10) * bed_recovery_modifier // Example: max energy 1000 -> 100 energy on ground, 300 on bed + else // REDMOON EDIT - добавлена 1 таблуяция + recovery_amt = (max_energy * 0.007) * bed_recovery_modifier // REDMOON EDIT - 1.5 минуты за лежание на хорошей кровати, 3 минуты за лежание на убогой кровати - WAS: recovery_amt = (max_energy * 0.02) * bed_recovery_modifier // Example: max energy 1000 -> 20 energy on ground, 60 on bed + else // REDMOON ADD START - сон на полу ЗНАЧИТЕЛЬНО хуже сна в кровати + if(IsSleeping()) + recovery_amt = max_energy * 0.005 // 7.5 минут на полный отдых за сон на земле + else + recovery_amt = max_energy * 0.0035 // REDMOON ADD END - 10 минут на полный отдых за лежание на земле без сна, чтобы был смысл искать кровати + energy_add(recovery_amt) diff --git a/code/modules/roguetown/roguejobs/blacksmith/anvil.dm b/code/modules/roguetown/roguejobs/blacksmith/anvil.dm index 198573be5a3..b7e97a1b2b3 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/anvil.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/anvil.dm @@ -68,6 +68,11 @@ if(!hingot.currecipe) if(!choose_recipe(user)) return + // REDMOON ADD START - economy_fix - проверка на достаточный уровень навыка для продолжения крафта + if(user.mind.get_skill_level(/datum/skill/craft/blacksmithing) < hingot.currecipe.skill_level) + to_chat(user, span_warning(hingot.currecipe.low_skill_message)) + return FALSE + // REDMOON ADD END advance_multiplier = 1 //Manual striking more effective than manual striking. user.doing = FALSE spawn(1) @@ -120,7 +125,7 @@ return ..() -/obj/machinery/anvil/proc/choose_recipe(user) +/obj/machinery/anvil/proc/choose_recipe(mob/user) if(!hingot || !hott) return @@ -151,7 +156,13 @@ appro_recipe -= R if(appro_recipe.len) - var/datum/chosen_recipe = input(user, "Choose A Creation", "Anvil") as null|anything in sortNames(appro_recipe.Copy()) + var/datum/anvil_recipe/chosen_recipe = input(user, "Choose A Creation", "Anvil") as null|anything in sortNames(appro_recipe.Copy()) // REDMOON ADD EDIT - economy_fix - обновлён датум для потребностей следующего изменения - WAS: var/datum/chosen_recipe = input(user, "Choose A Creation", "Anvil") as null|anything in sortNames(appro_recipe.Copy()) + // REDMOON ADD START - economy_fix - проверка на возможность начать крафт с текущми уровнем навыка + if(chosen_recipe) + if(user.mind.get_skill_level(/datum/skill/craft/blacksmithing) < chosen_recipe.skill_level) + to_chat(user, span_warning("This recipe is too hard for me... I need to be more skilled.")) + return FALSE + // REDMOON ADD END if(!hingot.currecipe && chosen_recipe) hingot.currecipe = new chosen_recipe.type(hingot) return TRUE diff --git a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm index f719e30373b..72232325484 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm @@ -96,7 +96,7 @@ req_bar = /obj/item/ingot/steel created_item = /obj/item/rogueweapon/sword/iron/messer/steel -/datum/anvil_recipe/weapons/iron/dagger +/datum/anvil_recipe/weapons/steel/dagger // REDMOON EDIT - фикс пути для крафта стального кинжала - WAS: /datum/anvil_recipe/weapons/iron/dagger name = "Dagger" req_bar = /obj/item/ingot/steel created_item = /obj/item/rogueweapon/huntingknife/idagger/steel diff --git a/code/modules/roguetown/roguejobs/fisher/rod.dm b/code/modules/roguetown/roguejobs/fisher/rod.dm index 9b3221c1a20..56b7b093750 100644 --- a/code/modules/roguetown/roguejobs/fisher/rod.dm +++ b/code/modules/roguetown/roguejobs/fisher/rod.dm @@ -97,6 +97,9 @@ update_icon() return + if(baited.check_for_bait_location()) // REDMOON ADD START - economy_fix - рыбачить не в болоте можно разве что за еду + if(prob(5)) + to_chat(current_fisherman, user.client.prefs.be_russian ? "Здесь я драгоценности не выловлю... В реке у болот шансы выше." : "I will not catch any treasure here, but fish... Bog river would be more fitting.") // REDMOON ADD END var/caught_thing = pickweight(baited.fishloot) new caught_thing(current_fisherman.loc) amt2raise = current_fisherman.STAINT * 2 diff --git a/code/modules/roguetown/roguejobs/tailor/tanning.dm b/code/modules/roguetown/roguejobs/tailor/tanning.dm index 841a8ca49b5..6cbad98e4c3 100644 --- a/code/modules/roguetown/roguejobs/tailor/tanning.dm +++ b/code/modules/roguetown/roguejobs/tailor/tanning.dm @@ -41,7 +41,7 @@ if(anchored) var/skill_level = user.mind.get_skill_level(/datum/skill/craft/hunting) var/work_time = (120 - (skill_level * 15)) - var/pieces_to_spawn = rand(1, min(skill_level + 1, 6)) //Random number from 1 to skill level + var/pieces_to_spawn = skill_level > 3 ? 2 : 1 // REDMOON EDIT - economy_fix - уменьшаем среднее количество добываемой отчищенной кожи - WAS rand(1, min(skill_level + 1, 6)) //Random number from 1 to skill level var/sound_played = FALSE to_chat(user, span_warning("I begin scraping the hide's skin...")) if(!do_after(user, work_time, target = user)) diff --git a/modular_redmoon/modules/economy_fixes/items_prices.dm b/modular_redmoon/modules/economy_fixes/items_prices.dm new file mode 100644 index 00000000000..b3e940f9fb2 --- /dev/null +++ b/modular_redmoon/modules/economy_fixes/items_prices.dm @@ -0,0 +1,20 @@ +/obj/item/reagent_containers/glass/cup/golden + sellprice = 40 // было 50 + +/obj/item/dildo/gold + sellprice = 30 // было 50. Хватит продавать ИХ + +/obj/item/natural/fur + sellprice = 15 // как в стокпайле + +/obj/item/natural/hide + sellprice = 15 // нельзя выгодно продать голым на корабле (в обход казначея) + +/obj/item/natural/hide/cured + sellprice = 10 // нельзя выгодно продать голым на корабле (в обход казначея) + +/obj/item/natural/cured/essence + sellprice = 15 // корм дровосеков + +/obj/item/reagent_containers/powder + sellprice = 1 // Фикс возможности перемолоть камень за 2 маммона в пыль за 10 маммонов diff --git a/modular_redmoon/modules/economy_fixes/mobs_loot.dm b/modular_redmoon/modules/economy_fixes/mobs_loot.dm new file mode 100644 index 00000000000..77511a38da0 --- /dev/null +++ b/modular_redmoon/modules/economy_fixes/mobs_loot.dm @@ -0,0 +1,21 @@ +/mob/living/simple_animal/hostile/retaliate/rogue/goatmale + butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/steak = 3, // на 1 меньше + /obj/item/reagent_containers/food/snacks/fat = 1, + /obj/item/natural/hide = 1, // на 1 меньше + /obj/item/natural/fur = 1) + +/mob/living/simple_animal/hostile/retaliate/rogue/goat + butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/steak = 3, // на 1 меньше + /obj/item/reagent_containers/food/snacks/fat = 2, + /obj/item/natural/hide = 1, // на 1 меньше + /obj/item/natural/fur = 1) + +/mob/living/simple_animal/hostile/retaliate/rogue/saiga + butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/steak = 3, // на 1 меньше + /obj/item/reagent_containers/food/snacks/fat = 2, + /obj/item/natural/hide = 3) // на 1 меньше + +/mob/living/simple_animal/hostile/retaliate/rogue/saigabuck + butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/steak = 3, // на 1 меньше + /obj/item/reagent_containers/food/snacks/fat = 1, + /obj/item/natural/hide = 3) // на 1 меньше diff --git a/modular_redmoon/modules/economy_fixes/sewing.dm b/modular_redmoon/modules/economy_fixes/sewing.dm new file mode 100644 index 00000000000..0eb53c377f1 --- /dev/null +++ b/modular_redmoon/modules/economy_fixes/sewing.dm @@ -0,0 +1,6 @@ +/datum/crafting_recipe/roguetown/sewing/wizrobeblue + name = "robe (wizard) - (4 cloths, 2 silk, 3 fibers; MASTER)" + reqs = list(/obj/item/natural/cloth = 4, + /obj/item/natural/fibers = 3, + /obj/item/natural/silk = 2) + skill_level = 5 diff --git a/modular_redmoon/modules/economy_fixes/shipping.dm b/modular_redmoon/modules/economy_fixes/shipping.dm new file mode 100644 index 00000000000..26ac4a4aaa3 --- /dev/null +++ b/modular_redmoon/modules/economy_fixes/shipping.dm @@ -0,0 +1,2 @@ +/datum/supply_pack/rogue/rawmats/iron + cost = 80 // Стратегический материал (а также, повышает ценность шахтёров) diff --git a/modular_redmoon/modules/economy_fixes/smithing.dm b/modular_redmoon/modules/economy_fixes/smithing.dm new file mode 100644 index 00000000000..54581c87410 --- /dev/null +++ b/modular_redmoon/modules/economy_fixes/smithing.dm @@ -0,0 +1,47 @@ +/datum/anvil_recipe + // Сообщение, выдающееся юзеру, если ему не хватает навыка персонажа для крафта на наковальне + var/low_skill_message = "This recipe is too hard for me... I need to be more skilled." + +/* +* ЗОЛОТО - Золотым вещам в среднем пятый навык, если они идут на продажу из города или стоят 120+ +*/ + +/datum/anvil_recipe/cutlery + low_skill_message = "This recipe is too hard for me... I need to be more skilled to craft golden cutlery." + skill_level = 5 // Роскошь + +/datum/anvil_recipe/valuables/gold + low_skill_message = "This recipe is too hard for me... I need to be more skilled to craft golden valuables." + skill_level = 5 // Роскошь + +/datum/anvil_recipe/gold_dildo + low_skill_message = "This recipe is too hard for me... I need to be more skilled to craft it." + skill_level = 5 // Псайдона четвертовали за вас + +/datum/anvil_recipe/weapons/decsword + skill_level = 4 // Оружие продаётся за себестоимость + +/datum/anvil_recipe/weapons/decsaber + skill_level = 4 // Оружие продаётся за себестоимость + +/datum/anvil_recipe/weapons/decrapier + skill_level = 4 // Оружие продаётся за себестоимость + +/datum/anvil_recipe/weapons/terminus + skill_level = 5 // 2 слитка золота + +/* +* СЕРЕБРО - Серебрянным вещам, если они идут на продажу или как драгоценности, четвертый навык +*/ + +/datum/anvil_recipe/valuables/silver + skill_level = 4 // Роскошь + +/datum/anvil_recipe/cutlery/silver + skill_level = 4 // Роскошь + +/datum/anvil_recipe/silver_dildo + skill_level = 4 // Псайдона четвертовали за вас + +/datum/anvil_recipe/weapons/silver + skill_level = 3 // Оружие продаётся за себестоимость diff --git a/modular_redmoon/modules/economy_fixes/stockpile.dm b/modular_redmoon/modules/economy_fixes/stockpile.dm new file mode 100644 index 00000000000..9bf8f9195cf --- /dev/null +++ b/modular_redmoon/modules/economy_fixes/stockpile.dm @@ -0,0 +1,69 @@ + +/datum/roguestock/stockpile/stone + payout_price = 0 + passive_generation = 15 + +/datum/roguestock/stockpile/gold + payout_price = 15 + withdraw_price = 80 + export_price = 80 + +/datum/roguestock/stockpile/silver // Используется в крафте оружия против нечисти И драгоценностях + payout_price = 15 + withdraw_price = 65 + export_price = 65 + +/datum/roguestock/stockpile/cured + payout_price = 5 + withdraw_price = 10 + export_price = 10 + +/datum/roguestock/stockpile/hide + payout_price = 10 + withdraw_price = 15 + export_price = 15 + +/datum/roguestock/stockpile/fur + payout_price = 10 + withdraw_price = 15 + export_price = 15 + +/datum/roguestock/stockpile/grain + payout_price = 1 + +/datum/roguestock/stockpile/oat + payout_price = 1 + +/datum/roguestock/stockpile/apple + payout_price = 2 + withdraw_price = 5 + +/datum/roguestock/stockpile/meat + payout_price = 5 + withdraw_price = 10 + export_price = 10 + +/datum/roguestock/stockpile/beet + payout_price = 2 + withdraw_price = 6 + export_price = 6 + +/datum/roguestock/stockpile/cabbage + payout_price = 2 + withdraw_price = 6 + export_price = 6 + +/datum/roguestock/stockpile/potato + payout_price = 2 + withdraw_price = 6 + export_price = 6 + +/datum/roguestock/stockpile/onion + payout_price = 2 + withdraw_price = 6 + export_price = 6 + +/datum/roguestock/stockpile/poultry + payout_price = 5 + withdraw_price = 10 + export_price = 10 diff --git a/modular_redmoon/modules/economy_fixes/tailoring.dm b/modular_redmoon/modules/economy_fixes/tailoring.dm new file mode 100644 index 00000000000..569c805ca3a --- /dev/null +++ b/modular_redmoon/modules/economy_fixes/tailoring.dm @@ -0,0 +1,116 @@ + +/datum/crafting_recipe/roguetown/hunting + skill_level = 2 + sellprice = 15 + +// Лёгкие крафты. Не оказывают сильного влияния на игру + +/datum/crafting_recipe/roguetown/hunting/belt + name = "Leather Belt - (1 cured leather; APPRENTICE)" + skill_level = 2 + sellprice = 15 // 1 шкура + +/datum/crafting_recipe/roguetown/hunting/gloves + name = "Leather Gloves - (1 cured leather; APPRENTICE)" + skill_level = 2 + sellprice = 15 // 1 шкура + +/datum/crafting_recipe/roguetown/hunting/lcollar + name = "Leather Collar - (1 cured leather; APPRENTICE)" + skill_level = 2 + sellprice = 15 // 1 шкура + +/datum/crafting_recipe/roguetown/hunting/lleash + name = "Leather Leash - (1 cured leather; APPRENTICE)" + skill_level = 2 + sellprice = 15 // 1 шкура + +/datum/crafting_recipe/roguetown/hunting/bracers + name = "Leather Bracers - (1 cured leather; APPRENTICE)" + skill_level = 2 + sellprice = 15 // 1 шкура + +/datum/crafting_recipe/roguetown/hunting/boots + name = "Leather Boots - (1 cured leather; APPRENTICE)" + skill_level = 2 + sellprice = 15 // 1 шкура + +/datum/crafting_recipe/roguetown/hunting/pouch + name = "Leather Pouch - (1 cured leather, 1 fibre; APPRENTICE)" + skill_level = 2 + sellprice = 15 // 1 шкура + +/datum/crafting_recipe/roguetown/hunting/cloak + name = "Leather Cloak - (2 cured leathers; APPRENTICE)" + skill_level = 2 + sellprice = 30 // 2 шкуры + +/datum/crafting_recipe/roguetown/hunting/pants + name = "Leather Trousers - (2 cured leathers; APPRENTICE)" + skill_level = 2 + sellprice = 30 // 2 шкуры + +/datum/crafting_recipe/roguetown/hunting/quiver + name = "Quiver - (2 cured leathers, 2 fibers; APPRENTICE)" + skill_level = 2 + sellprice = 30 // 2 шкуры + +/datum/crafting_recipe/roguetown/hunting/whip + name = "Leather Whip - (2 cured leathers, 1 stone; APPRENTICE)" + skill_level = 2 + sellprice = 30 // 2 шкуры + +// Крафты уровня опытного + +/datum/crafting_recipe/roguetown/hunting/satchel + name = "Leather Satchel - (2 cured leathers, 1 fiber; JOURNEYMAN)" + skill_level = 3 + sellprice = 30 // 2 шкуры + +/datum/crafting_recipe/roguetown/hunting/waterskin + name = "Waterskin - (1 cured leather, 2 fibers; JOURNEYMAN)" + skill_level = 3 + sellprice = 15 // 1 шкура + +/datum/crafting_recipe/roguetown/hunting/powderflask + name = "Powderflask - (2 cured leathers, 1 fibers, 15 syrum of fire; JOURNEYMAN)" + skill_level = 3 + sellprice = 35 // 2 шкуры и порох + +/datum/crafting_recipe/roguetown/hunting/bulletpouch + name = "Bullet Pouch - (2 cured leathers, 2 fibers; JOURNEYMAN)" + skill_level = 3 + sellprice = 30 // 2 шкуры + +/datum/crafting_recipe/roguetown/hunting/saddle + name = "Saddle - (2 cured leathers; JOURNEYMAN)" + skill_level = 3 + sellprice = 30 // 2 шкуры + +/datum/crafting_recipe/roguetown/hunting/bedroll + name = "Bedroll - (2 cured leathers, 2 clothes, 1 rope; JOURNEYMAN)" + skill_level = 3 + sellprice = 35 // 2 шкуры и допы + +/datum/crafting_recipe/roguetown/hunting/drum + name = "Drum - (1 cured leather, 1 small log; JOURNEYMAN)" + skill_level = 3 + sellprice = 15 // 1 шкура + +// Крафты уровня охотника. То, за счёт чего он может быть особенно полезен + +/datum/crafting_recipe/roguetown/hunting/helmet + name = "Leather Helmet - (2 cured leathers; EXPERT)" + reqs = list(/obj/item/natural/hide/cured = 2) + skill_level = 4 + sellprice = 30 // 2 шкуры + +/datum/crafting_recipe/roguetown/hunting/armor + name = "Leather Armor - (2 cured leathers; EXPERT)" + skill_level = 4 + sellprice = 30 // 2 шкуры + +/datum/crafting_recipe/roguetown/hunting/backpack + name = "Leather Backpack - (2 cured leathers, 1 fiber; EXPERT)" + skill_level = 4 + sellprice = 45 // 3 шкуры diff --git a/modular_redmoon/modules/economy_fixes/towners_should_work_in_bog.dm b/modular_redmoon/modules/economy_fixes/towners_should_work_in_bog.dm new file mode 100644 index 00000000000..158142fcdc9 --- /dev/null +++ b/modular_redmoon/modules/economy_fixes/towners_should_work_in_bog.dm @@ -0,0 +1,243 @@ +// Охота в окрестностях города - бесполезная затея +/obj/item/bait/attack_self(mob/user) + if(!istype(get_area(src), /area/rogue/outdoors/bog)) + to_chat(user, span_warning(user.client.prefs.be_russian ? "В окрестностях Рокхилла не осталось живности... В болотах шансов приманить кого-нибудь больше." : "There will not be enought wildlife here. I should place [src] in the bog...")) + return FALSE + . = ..() + +// С деревьев у рокхилла доходность леса очень сильно падает +/obj/structure/flora/newtree + var/tree_not_in_bog = FALSE // оповещение для дровосека, чтобы шёл рубить болото + +/obj/structure/flora/newtree/Initialize() + if(!is_centcom_level(z)) // Чтобы бандиты и вампиры могли добывать у себя спокойно + if(!istype(get_area(loc), /area/rogue/outdoors/bog)) + static_debris = list(/obj/item/grown/log/tree/small = 1) + tree_not_in_bog = TRUE + desc += " Seems like this tree is very old. The one in the Bog would have better wood." + if(istype(get_turf(src), /turf/open/transparent/openspace)) + static_debris = list() // отсутствие древесины в целом, фармите болото, дровосеки + tree_not_in_bog = FALSE // некому показывать + . = ..() + +/obj/structure/flora/newtree/obj_destruction(damage_flag) + if(tree_not_in_bog) + if(prob(20)) + visible_message(span_info("The tree was too old. The one the Bog have better wood."), vision_distance = 2) + . = ..() + +/obj/structure/flora/roguetree + var/tree_not_in_bog = FALSE // оповещение для дровосека, чтобы шёл рубить болото + +/obj/structure/flora/roguetree/Initialize() + if(!is_centcom_level(z)) // Чтобы бандиты и вампиры могли добывать у себя спокойно + if(!istype(get_area(loc), /area/rogue/outdoors/bog)) + static_debris = list(/obj/item/grown/log/tree/small = 1) + tree_not_in_bog = TRUE + desc += " Seems like this tree is very old. The one in the Bog would have better wood." + stump_type = null + . = ..() + +/obj/structure/flora/roguetree/obj_destruction(damage_flag) + if(tree_not_in_bog) + if(prob(20)) + visible_message(span_info("The tree was too old and rotten. The one the Bog would have better wood."), vision_distance = 2) + + . = ..() + +// Добыча в шахтах рокхилла - не особо прибыльное дело, но кузнец явно скажет спасибо. Золото и другие ценные руды можно добыть за городом +/turf/closed/mineral/random/rogue/Initialize() + check_for_bog_area() + . = ..() + +/turf/closed/mineral/random/rogue + mineralChance = 20 + mineralSpawnChanceList = list( + /turf/closed/mineral/rogue/salt = 5, // 10% + /turf/closed/mineral/rogue/iron = 15, // 30% + /turf/closed/mineral/rogue/copper = 10, // 20% + /turf/closed/mineral/rogue/coal = 20) // 40% + +/turf/closed/mineral/random/rogue/med + mineralChance = 30 // 1430 у лавы, 4097 в пещере, 14400 в шахте, 1254 в месте бойни + mineralSpawnChanceList = list( + /turf/closed/mineral/rogue/salt = 5, // 10% + /turf/closed/mineral/rogue/gold = 3, // 6% + /turf/closed/mineral/rogue/silver = 1, // 2% + /turf/closed/mineral/rogue/iron = 25, // 50% + /turf/closed/mineral/rogue/copper = 5, // 10% + /turf/closed/mineral/rogue/tin = 5, // 10% + /turf/closed/mineral/rogue/coal = 5, // 10% + /turf/closed/mineral/rogue/gem = 1) // 2% + +/turf/closed/mineral/random/rogue/high // 701 у лавы всего, 111 в месте бойни + mineralChance = 50 + mineralSpawnChanceList = list( // ДЕЛИМ ЦИФРЫ БЛОКОВ НА 2, Т.К. ШАНС СПАВНА 50% + /turf/closed/mineral/rogue/gold = 2, // 10% или около 70 блоков у лавы (7000-9100 маммонов через корабль) + /turf/closed/mineral/rogue/silver = 1, // 5% или около 35 блоков у лавы + /turf/closed/mineral/rogue/iron = 10, // 50% или около 350 блоков у лавы + /turf/closed/mineral/rogue/copper = 3, // 15% или около 105 блоков у лавы + /turf/closed/mineral/rogue/tin = 3, // 15% или около 105 блоков у лавы + /turf/closed/mineral/rogue/gem = 1) // 5% или около 35 блоков у лавы + +/turf/closed/mineral/random/proc/check_for_bog_area() + return TRUE + +/turf/closed/mineral/random/rogue/med/check_for_bog_area() + if(SSmapping.config.map_file == "rockhill.dmm") // На тестовой карте можно иметь где угодно + if(!istype(get_area(src), /area/rogue/under/cavewet/bogcaves)) // Только болотные пещеры + mineralChance = 20 + mineralSpawnChanceList = list( + /turf/closed/mineral/rogue/salt = 5, // 10% + /turf/closed/mineral/rogue/iron = 15, // 30% + /turf/closed/mineral/rogue/copper = 10, // 20% + /turf/closed/mineral/rogue/coal = 20) // 40% + +/turf/closed/mineral/random/rogue/high/check_for_bog_area() + if(SSmapping.config.map_file == "rockhill.dmm") + if(!istype(get_area(src), /area/rogue/under/cavewet/bogcaves)) + mineralChance = 20 + mineralSpawnChanceList = list( + /turf/closed/mineral/rogue/salt = 5, // 10% + /turf/closed/mineral/rogue/iron = 15, // 30% + /turf/closed/mineral/rogue/copper = 10, // 20% + /turf/closed/mineral/rogue/coal = 20) // 40% + +/turf/closed/mineral/rogue + var/ore_overlay = null + var/ore_overlay_icon = 'icons/roguetown/items/ore.dmi' + +/turf/closed/mineral/rogue/proc/update_ore_overlay() + var/ore_overlay_icon_state = get_ore_overlay_icon_state() + var/mutable_appearance/M = mutable_appearance(ore_overlay_icon, ore_overlay_icon_state, layer = ABOVE_NORMAL_TURF_LAYER) + M.pixel_y = rand(-12, 12) + M.pixel_x = rand(-12, 12) + + var/matrix/M_matrix = new + M_matrix.Scale(0.3,rand(0.3, 0.6)) + M_matrix.Turn(rand(1,360)) + M.transform = M_matrix + add_overlay(M) + +/turf/closed/mineral/rogue/proc/get_ore_overlay_icon_state() + return "[ore_overlay][rand(1,3)]" + +/turf/closed/mineral/rogue/Initialize() + . = ..() + if(ore_overlay) + update_ore_overlay() + +/turf/closed/mineral/rogue/gold + ore_overlay = "oregold" + +/turf/closed/mineral/rogue/silver + ore_overlay = "oresilv" + +/turf/closed/mineral/rogue/salt + ore_overlay = "salt" + ore_overlay_icon = 'icons/roguetown/items/produce.dmi' + +/turf/closed/mineral/rogue/salt/get_ore_overlay_icon_state() + return ore_overlay // нет рандомных иконок + +/turf/closed/mineral/rogue/copper + ore_overlay = "orecop" + +/turf/closed/mineral/rogue/tin + ore_overlay = "oretin" + +/turf/closed/mineral/rogue/iron + ore_overlay = "oreiron" + +/turf/closed/mineral/rogue/coal + ore_overlay = "orecoal" + +/turf/closed/mineral/rogue/cinnabar + ore_overlay = "orecinnabar" + +/turf/closed/mineral/rogue/cinnabar/get_ore_overlay_icon_state() + return ore_overlay // нет рандомных иконок + +/turf/closed/mineral/rogue/gem + ore_overlay = "saphire" + ore_overlay_icon = 'icons/roguetown/items/gems.dmi' + +/turf/closed/mineral/rogue/gem/get_ore_overlay_icon_state() + return pick("saphire", "ruby", "emerald", "topaz", "diamond", "quartz") // нет рандомных иконок, но есть множество всяких иконок + +// Рыбаку ловить у города для удачного подъёма смысла мало +/obj/item/proc/check_for_bait_location() + return FALSE + +/obj/item/natural/worms/check_for_bait_location() + if(!istype(get_area(src), /area/rogue/outdoors/bog) && !istype(get_area(src), /area/rogue/under/cavewet/bogcaves)) + fishloot = list(\ + /obj/item/trash/applecore = 50, + /obj/item/trash/pearcore = 25, //Pears, in Rockhill? Perish the thought. + /obj/item/natural/fibers = 15, //It's pretty hard to hook a fiber. + /obj/item/grown/log/tree/stick = 2, //Single stick + /obj/item/reagent_containers/food/snacks/fish/carp = 214, + /obj/item/reagent_containers/food/snacks/fish/eel = 214, + /obj/item/reagent_containers/food/snacks/fish/angler = 214, + /obj/item/reagent_containers/food/snacks/fish/shrimp = 180, //Shrimp man gone. Life bad. + /obj/item/reagent_containers/food/snacks/fish/clownfish = 214, + /obj/item/natural/bundle/stick = 15, //Bundle of sticks + /obj/item/natural/stone = 15, //Hard to catch stones! + /obj/item/clothing/head/roguetown/helmet/tricorn = 25, + /obj/item/clothing/head/roguetown/helmet/bandana = 25, + /obj/item/clothing/head/roguetown/roguehood = 25, + /obj/item/clothing/under/roguetown/loincloth/brown = 25, + /obj/item/clothing/shoes/roguetown/sandals = 25, + /obj/item/clothing/shoes/roguetown/simpleshoes = 25, + /obj/item/clothing/gloves/roguetown/fingerless = 25, + /obj/item/clothing/gloves/roguetown/leather = 25, + /obj/item/clothing/shoes/roguetown/armor/leather = 25, + /obj/item/reagent_containers/syringe = 1, //These are terrifyingly powerful. + /obj/item/reagent_containers/glass/cup/wooden = 27, + /obj/item/ammo_casing/caseless/rogue/arrow = 45, + /obj/item/roguecoin/copper = 45, + /obj/item/leash = 15, + /obj/item/customlock = 35, + /obj/item/shard = 1, //Bait is smaller + /obj/item/natural/feather = 15, + /obj/item/natural/cloth = 15, + /obj/item/kitchen/spoon = 1,) + return TRUE + return FALSE + +/obj/item/natural/worms/grubs/check_for_bait_location() + if(!istype(get_area(src), /area/rogue/outdoors/bog) && !istype(get_area(src), /area/rogue/under/cavewet/bogcaves)) + fishloot = list(\ + /obj/item/trash/applecore = 625, + /obj/item/trash/pearcore = 625, + /obj/item/natural/fibers = 625, + /obj/item/grown/log/tree/stick = 625, + /obj/item/reagent_containers/food/snacks/fish/carp = 214, + /obj/item/reagent_containers/food/snacks/fish/eel = 214, + /obj/item/reagent_containers/food/snacks/fish/angler = 214, + /obj/item/reagent_containers/food/snacks/fish/shrimp = 214, + /obj/item/reagent_containers/food/snacks/fish/clownfish = 214, + /obj/item/natural/bundle/stick = 214, + /obj/item/natural/stone = 214, + /obj/item/clothing/head/roguetown/helmet/tricorn = 45, + /obj/item/clothing/head/roguetown/helmet/bandana = 45, + /obj/item/clothing/head/roguetown/roguehood = 45, + /obj/item/clothing/under/roguetown/loincloth/brown = 45, + /obj/item/clothing/shoes/roguetown/sandals = 45, + /obj/item/clothing/shoes/roguetown/simpleshoes = 45, + /obj/item/clothing/gloves/roguetown/fingerless = 45, + /obj/item/clothing/gloves/roguetown/leather = 45, + /obj/item/clothing/shoes/roguetown/armor/leather = 45, + /obj/item/reagent_containers/syringe = 1, + /obj/item/reagent_containers/glass/cup/wooden = 45, + /obj/projectile/bullet/reusable/bolt = 45, + /obj/item/ammo_casing/caseless/rogue/arrow = 45, + /obj/item/roguecoin/copper = 45, + /obj/item/leash = 45, + /obj/item/customlock = 45, + /obj/item/shard = 45, + /obj/item/natural/feather = 45, + /obj/item/natural/cloth = 45, + /obj/item/kitchen/spoon = 45,) + return TRUE + return FALSE diff --git a/roguetown.dme b/roguetown.dme index 547c50e74fb..b857be143e5 100644 --- a/roguetown.dme +++ b/roguetown.dme @@ -2190,7 +2190,15 @@ #include "modular_redmoon\modules\client\preferences.dm" #include "modular_redmoon\modules\client\preferences_savefile.dm" #include "modular_redmoon\modules\cloak_hoods_fix\cloak_hoods_fix.dm" +#include "modular_redmoon\modules\economy_fixes\items_prices.dm" +#include "modular_redmoon\modules\economy_fixes\mobs_loot.dm" +#include "modular_redmoon\modules\economy_fixes\sewing.dm" +#include "modular_redmoon\modules\economy_fixes\shipping.dm" +#include "modular_redmoon\modules\economy_fixes\smithing.dm" +#include "modular_redmoon\modules\economy_fixes\stockpile.dm" #include "modular_redmoon\modules\commend_comments\commend_comments.dm" +#include "modular_redmoon\modules\economy_fixes\tailoring.dm" +#include "modular_redmoon\modules\economy_fixes\towners_should_work_in_bog.dm" #include "modular_redmoon\modules\events\goblininvasion.dm" #include "modular_redmoon\modules\events\haunts.dm" #include "modular_redmoon\modules\events\poltergeist.dm"