From 894ef3cca8d68b29c8964d27dfb3611c783067b8 Mon Sep 17 00:00:00 2001 From: Drsmail Date: Sun, 19 Jan 2025 22:04:41 +0300 Subject: [PATCH 01/13] Adds mouse hud, ability to eat, and procces food. --- code/modules/food_and_drinks/food_base.dm | 3 + modular_ss220/mobs/_mobs.dme | 47 ++++++ .../mobs/code/simple_animal/friendly/mouse.dm | 138 +++++++++++++++++- .../friendly/screen_hunger_mouse_test.dmi | Bin 0 -> 1712 bytes 4 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi diff --git a/code/modules/food_and_drinks/food_base.dm b/code/modules/food_and_drinks/food_base.dm index a03e2a1f8fc8..26d951b45885 100644 --- a/code/modules/food_and_drinks/food_base.dm +++ b/code/modules/food_and_drinks/food_base.dm @@ -268,6 +268,9 @@ N.visible_message("[N] nibbles away at [src].", "") N.adjustHealth(-2) N.taste(reagents) + // SS220 EDIT - START + N.consume(src) + // SS220 EDIT - END else if(iscaterpillar(M)) var/mob/living/simple_animal/nian_caterpillar/W = M W.taste(reagents) diff --git a/modular_ss220/mobs/_mobs.dme b/modular_ss220/mobs/_mobs.dme index 9618cae7a42c..ef1c265daebe 100644 --- a/modular_ss220/mobs/_mobs.dme +++ b/modular_ss220/mobs/_mobs.dme @@ -37,3 +37,50 @@ #include "code/mob_holder.dm" #include "code/mob_spawner.dm" #include "code/pet_carrier.dm" +// BEGIN_INTERNALS +// END_INTERNALS +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR +// BEGIN_PREFERENCES +// END_PREFERENCES +// BEGIN_INCLUDE +#include "_mobs.dm" +#include "code\mob_holder.dm" +#include "code\mob_spawner.dm" +#include "code\pet_carrier.dm" +#include "code\simple_animal\items.dm" +#include "code\simple_animal\mobs.dm" +#include "code\simple_animal\named_animals.dm" +#include "code\simple_animal\overrides.dm" +#include "code\simple_animal\friendly\butterfly.dm" +#include "code\simple_animal\friendly\crab.dm" +#include "code\simple_animal\friendly\farm_animals.dm" +#include "code\simple_animal\friendly\frog.dm" +#include "code\simple_animal\friendly\hamster.dm" +#include "code\simple_animal\friendly\lizard.dm" +#include "code\simple_animal\friendly\moth.dm" +#include "code\simple_animal\friendly\mouse.dm" +#include "code\simple_animal\friendly\possum.dm" +#include "code\simple_animal\friendly\rat.dm" +#include "code\simple_animal\friendly\snail.dm" +#include "code\simple_animal\hostile\alien.dm" +#include "code\simple_animal\hostile\bear.dm" +#include "code\simple_animal\hostile\bee.dm" +#include "code\simple_animal\hostile\headcrab.dm" +#include "code\simple_animal\hostile\lizard.dm" +#include "code\simple_animal\hostile\snake.dm" +#include "code\simple_animal\hostile\spider.dm" +#include "code\simple_animal\hostile\syndi_rat.dm" +#include "code\simple_animal\hostile\undead.dm" +#include "code\simple_animal\pets\cat.dm" +#include "code\simple_animal\pets\dog.dm" +#include "code\simple_animal\pets\fashion.dm" +#include "code\simple_animal\pets\fox.dm" +#include "code\simple_animal\pets\pet.dm" +#include "code\simple_animal\pets\rouge.dm" +#include "code\simple_animal\pets\security_dogs.dm" +#include "code\simple_animal\pets\slugcat.dm" +#include "code\supplypacks\crittercrate.dm" +#include "code\supplypacks\pack_animals.dm" +// END_INCLUDE diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index f5d8cae71425..acc3bc3208a5 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -1,3 +1,25 @@ +/datum/hud/simple_animal_mouse/New(mob/user) + ..() + + mymob.healths = new /atom/movable/screen/healths() + infodisplay += mymob.healths + + mymob.nutrition_display = new /atom/movable/screen/nutrition() + mymob.nutrition_display.screen_loc = "EAST-1:26,CENTER-1:15" + // "EAST-2:32,CENTER-1:13" + mymob.nutrition_display.icon = 'modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi' // TODO Перерисовать на сыр + infodisplay += mymob.nutrition_display + + var/atom/movable/screen/using + using = new /atom/movable/screen/act_intent/simple_animal() + using.icon_state = mymob.a_intent + static_inventory += using + action_intent = using + + user.overlay_fullscreen("see_through_darkness", /atom/movable/screen/fullscreen/stretch/see_through_darkness) + + + /mob/living/simple_animal/mouse var/non_standard = FALSE // for no "mouse_" with mouse_color icon = 'modular_ss220/mobs/icons/mob/animal.dmi' @@ -7,10 +29,19 @@ blood_volume = BLOOD_VOLUME_SURVIVE butcher_results = list(/obj/item/food/meat/mouse = 1) + // hungry mouse + hud_type = /datum/hud/simple_animal_mouse + nutrition = NUTRITION_LEVEL_HUNGRY + 10 + hunger_drain = HUNGER_FACTOR * 1.5 + var/previous_status + var/busy = FALSE + + + /mob/living/simple_animal/mouse/Initialize(mapload) . = ..() AddComponent(/datum/component/squeak, list("[squeak_sound]" = 1), 100, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) //as quiet as a mouse or whatever - + pixel_x = rand(-6, 6) pixel_y = rand(0, 10) @@ -18,6 +49,11 @@ color_pick() update_appearance(UPDATE_ICON_STATE|UPDATE_DESC) +/mob/living/simple_animal/mouse/Login() + . = ..() + reagents = new() + + /mob/living/simple_animal/mouse/proc/color_pick() if(!mouse_color) mouse_color = pick( list("brown","gray","white") ) @@ -52,6 +88,106 @@ remains.pixel_x = pixel_x remains.pixel_y = pixel_y +/mob/living/simple_animal/mouse/handle_chemicals_in_body() + + var/hunger_rate = hunger_drain + var/new_status + adjust_nutrition(-hunger_rate) + log_debug("\[ANTAG MIX\] nutriment in body: [nutrition]") + + switch(nutrition) + if(NUTRITION_LEVEL_FULL * 1.4 to INFINITY) + nutrition_display.icon_state = "explode" + do_sparks(3, 1, src) + src.gib() + if(NUTRITION_LEVEL_FULL to INFINITY) + nutrition_display.icon_state = "fat" + if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) + nutrition_display.icon_state = "full" + if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) + nutrition_display.icon_state = "well_fed" + if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) + nutrition_display.icon_state = "fed" + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + nutrition_display.icon_state = "hungry" + if(NUTRITION_LEVEL_HYPOGLYCEMIA to NUTRITION_LEVEL_STARVING) + nutrition_display.icon_state = "starving" + // Someting bad + + new_status = nutrition_display.icon_state + + if(previous_status == new_status) + return + + previous_status = new_status + switch(new_status) + if("explode") + visible_message("[src] разарвало от обжорства!.", "Ваши внутренности не выдерживают и лопаются.") + do_sparks(3, 1, src) + src.gib() + if("fat") + name = "жирная [initial(name)]" // Мешаем англиский с русским + desc = "[initial(desc)] Господи! Она же огромная!" + + to_chat(src, "Ты чувствуешь, что в тебя больше не влезет и кусочка") + if("full") + name = initial(name) + desc = initial(desc) + if("well_fed") + to_chat(src, "Ты чувствуешь себя превосходно!") + if("fed") + name = initial(name) + desc = initial(desc) + if("hungr") + name = "костлявая [initial(name)]" + desc = "[initial(desc)] Вы можете видеть рёбра через кожу." + to_chat(src, "Твой живот угрюмо урчит, лучше найти что-то поесть") + if("starving") + nutrition_display.icon_state = "starving" + // Someting bad + + +//Prevents mouse from pulling things +/mob/living/simple_animal/mouse/start_pulling(atom/movable/AM, state, force = pull_force, show_message = FALSE) + if(istype(AM, /obj/item/food)) + // This is stolen from mob/living/start_pulling + // because i can't call it from here ..() + // insted it will call upstream version of mouse/start_pulling + // Let me know if you know how to do it better + if(!(AM.can_be_pulled(src, state, force, show_message))) + return FALSE + if(incapacitated()) + return + if(SEND_SIGNAL(src, COMSIG_LIVING_TRY_PULL, AM, force) & COMSIG_LIVING_CANCEL_PULL) + return FALSE + return + if(show_message) + to_chat(src, "You are too small to pull anything except food.") + return + +/mob/living/simple_animal/mouse/proc/consume(obj/item/food/F) + + if(busy) + to_chat(src, "You need to finish chewing first.") + return + + busy = TRUE + to_chat(src, "You're starting to chew on [F]...") + if(!do_after_once(src, 5 SECONDS, target = F, needhand = FALSE)) + to_chat(src, "You hurry up and stop chewing on [F]!") + busy = FALSE + return + + visible_message("[src] ravenously consumes [F].", "You ravenously devour [F].") + playsound(loc, 'sound/items/eatfood.ogg', 30, FALSE, frequency = 1.5) + var/nutriment = F.reagents.get_reagent_amount("nutriment") * 20 // Human biology is hard, but you get about 20 times more regents. + log_debug("\[ANTAG MIX\] nutriment got: [nutriment]") + adjust_nutrition(nutriment) + F.generate_trash(F) + busy = FALSE + qdel(F) + + // /mob/living/simple_animal/mouse/emote(act, m_type = 1, message = null, force) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi b/modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4d55eacf2ce803cbf88dbfc17d0d11392367b4ad GIT binary patch literal 1712 zcmV;h22c5kP)V=-0C=2@%sUFhFcd`5T5lDD-G}^IH9;n*u(uEd`hwzs^lX#er*M%fDBWB* zOpn`e*AvvJX?3Nh*9?j4;YeajmLnuCXA;q+5P6Tvh8-k2Z@432Q>lpD=2*#-^8000HsNkluttqH?KnD5nGh z2a4+4tR_O75-FETrY#busJ$TBDWr<(a#^!fT=3?w%x1iv{lDvV+4&?S>>clKJa6XB zThDs{7Z(>7S5y^q^P&8Rps?Qm>%Y(D0AR0ryzZq_QQ|u`Kz>9}e*SF-0MPjNr>1LD zx1P3i$nU|pXnaQoFoUy1I^@?tTtvR$rXw``&zDuhcBSokl(y$F*nP4#noi8RVO?~- z?G=z85tP#Qyaw%w%jnPEXlZA3ZR*xjPc!kN@@=gEJ={nH?zb*7-<1n8vOa;+*M!sq zH;BmaEe$|h9{{e6r<(xujOfqaXog=Nhg2>==$)~`M3(=F>z+{^(u-JKDi?5AIfXdp zm2z?UrUuYk-;RjYiLMM?a`gGA@eK`Nwd?EO6MAQGrU;OJ{l4X1c4FqJ@-1BuYiB2Z zuP(>&uKWfAlcgrB1AtUJf|yEL-QH4R@`cm`G-^vNZpKf(r2$wzt|u;|F2}WjVZrNi z9Ci5=SB5U(c>ld+M>>&D?ki?j(Wos2!e>T7M!rwzoq^Ch12L5}jd$yE9Kc8aCyp%| zw(V5@#_|LJbubTJOhHIJ&<1i~vg8}zbOi{P$AM43P+ur-A?-ZUu9+<_GHXeP-T2^6 z;FFmQ00%FoAf}S)J@*T~@eK_i^v;}r;Z4UK_u_Iog-@#|E^7lWW>;HWju*c1gIMgU z_ODbsYPzI8L9xzNa7K0{P+* zO2wA*7AY}3SfRM%O145Rq^MJ7P^NED?6X4_@ z0AGi~ccQb(f&u_tLo23}+_(AwA^jxq{Cw$E9#Xl0>(f7mS|4Dgv&w>!$rX{w6*WT` z$+!A|M)htW`S~nK<$}5z5PW@r9~w<3W=GSB*|W-mqBlrj^#P6A5~SVD!1D8@S9yrp zRa_fiYPr_V`T&-?hE`(wf!=*Ry_U%p0jMj4xTcP-4`7L;gNUglq;dh`m(S6t-fbJ- zt}?meoOP=Xt`9I%U5;xR2?x(^V&L{Kfc$&g_;#d^wz`H^*2${KBQ__^?2QM z1&~w!>$e{Qv8!5USUc+j^!KFG!qtAnaq#RWGh59I-)^NAkd$`|Q*`zw`6$>dw6_Y%EXs!nYg6IBlz!tLFfzc7z0DRO zEI!NK(BWw&S7aUrF%3W;-|0Uznoi6PcAu=#?}a_^VT*P*yRWA;Bj}GoZ9fT{4dh<+ zcpd44?e Date: Mon, 20 Jan 2025 16:44:43 +0300 Subject: [PATCH 02/13] =?UTF-8?q?=D0=9A=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B8=D0=B8,=20=D1=81=D0=BC=D0=B5=D1=80?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BC=D1=8B=D1=88=D0=BA=D0=B8=20=D0=BE=D1=82=20?= =?UTF-8?q?=D0=B3=D0=BE=D0=BB=D0=BE=D0=B4=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modular_ss220/mobs/_mobs.dme | 47 -------------- .../mobs/code/simple_animal/friendly/mouse.dm | 62 ++++++++++++------- 2 files changed, 40 insertions(+), 69 deletions(-) diff --git a/modular_ss220/mobs/_mobs.dme b/modular_ss220/mobs/_mobs.dme index ef1c265daebe..9618cae7a42c 100644 --- a/modular_ss220/mobs/_mobs.dme +++ b/modular_ss220/mobs/_mobs.dme @@ -37,50 +37,3 @@ #include "code/mob_holder.dm" #include "code/mob_spawner.dm" #include "code/pet_carrier.dm" -// BEGIN_INTERNALS -// END_INTERNALS -// BEGIN_FILE_DIR -#define FILE_DIR . -// END_FILE_DIR -// BEGIN_PREFERENCES -// END_PREFERENCES -// BEGIN_INCLUDE -#include "_mobs.dm" -#include "code\mob_holder.dm" -#include "code\mob_spawner.dm" -#include "code\pet_carrier.dm" -#include "code\simple_animal\items.dm" -#include "code\simple_animal\mobs.dm" -#include "code\simple_animal\named_animals.dm" -#include "code\simple_animal\overrides.dm" -#include "code\simple_animal\friendly\butterfly.dm" -#include "code\simple_animal\friendly\crab.dm" -#include "code\simple_animal\friendly\farm_animals.dm" -#include "code\simple_animal\friendly\frog.dm" -#include "code\simple_animal\friendly\hamster.dm" -#include "code\simple_animal\friendly\lizard.dm" -#include "code\simple_animal\friendly\moth.dm" -#include "code\simple_animal\friendly\mouse.dm" -#include "code\simple_animal\friendly\possum.dm" -#include "code\simple_animal\friendly\rat.dm" -#include "code\simple_animal\friendly\snail.dm" -#include "code\simple_animal\hostile\alien.dm" -#include "code\simple_animal\hostile\bear.dm" -#include "code\simple_animal\hostile\bee.dm" -#include "code\simple_animal\hostile\headcrab.dm" -#include "code\simple_animal\hostile\lizard.dm" -#include "code\simple_animal\hostile\snake.dm" -#include "code\simple_animal\hostile\spider.dm" -#include "code\simple_animal\hostile\syndi_rat.dm" -#include "code\simple_animal\hostile\undead.dm" -#include "code\simple_animal\pets\cat.dm" -#include "code\simple_animal\pets\dog.dm" -#include "code\simple_animal\pets\fashion.dm" -#include "code\simple_animal\pets\fox.dm" -#include "code\simple_animal\pets\pet.dm" -#include "code\simple_animal\pets\rouge.dm" -#include "code\simple_animal\pets\security_dogs.dm" -#include "code\simple_animal\pets\slugcat.dm" -#include "code\supplypacks\crittercrate.dm" -#include "code\supplypacks\pack_animals.dm" -// END_INCLUDE diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index acc3bc3208a5..24a9c87e8e0e 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -1,3 +1,11 @@ + +// Коэфицент питательности еды, чтобы полностью не копировать сложную систему питание людей. +#define NUTRITION_COEF 20 +#define MAX_FEADING_TIME 15 SECONDS +#define MIN_FEADING_TIME 3 SECONDS +// Сколько нутриентов должно быть в мыше, перед тем как мы её гибнем +#define GIB_FEED_LEVEL NUTRITION_LEVEL_FULL * 1.35 + /datum/hud/simple_animal_mouse/New(mob/user) ..() @@ -31,8 +39,13 @@ // hungry mouse hud_type = /datum/hud/simple_animal_mouse + // Стартовый уровень голода nutrition = NUTRITION_LEVEL_HUNGRY + 10 - hunger_drain = HUNGER_FACTOR * 1.5 + // Скорость с которой снижается наш голод + // Мышка тратит 1800 nutrition в час, при hunger_drain = 1. Одно блюдо сополняет где-то 100 nutrition + // Вычесиление голода для 3 блюд в час. На 66% больше чем голод у человека (HUNGER_FACTOR * 1.66). Да мыши очень голодные + hunger_drain = 3/(1800/100) + var/previous_status var/busy = FALSE @@ -49,8 +62,10 @@ color_pick() update_appearance(UPDATE_ICON_STATE|UPDATE_DESC) +// Отслеживаем, что призрак попал в мышку. /mob/living/simple_animal/mouse/Login() . = ..() + // Теперь мышка будет обрабатыватся в цикле life, обычные мышки не будут обрабатывать голод. reagents = new() @@ -88,6 +103,7 @@ remains.pixel_x = pixel_x remains.pixel_y = pixel_y +// Вызывается цикилически из модуля live. Отвечает за обработку голода /mob/living/simple_animal/mouse/handle_chemicals_in_body() var/hunger_rate = hunger_drain @@ -96,11 +112,11 @@ log_debug("\[ANTAG MIX\] nutriment in body: [nutrition]") switch(nutrition) - if(NUTRITION_LEVEL_FULL * 1.4 to INFINITY) - nutrition_display.icon_state = "explode" + if(GIB_FEED_LEVEL to INFINITY) + visible_message("[src] разарвало от обжорства!.", "Ваши внутренности не выдерживают и лопаются.") do_sparks(3, 1, src) src.gib() - if(NUTRITION_LEVEL_FULL to INFINITY) + if(NUTRITION_LEVEL_FULL to GIB_FEED_LEVEL) nutrition_display.icon_state = "fat" if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) nutrition_display.icon_state = "full" @@ -112,7 +128,11 @@ nutrition_display.icon_state = "hungry" if(NUTRITION_LEVEL_HYPOGLYCEMIA to NUTRITION_LEVEL_STARVING) nutrition_display.icon_state = "starving" - // Someting bad + adjustHealth(0.02) + else + // we are below 0 that's realy bad. Let's kill us + adjustHealth(0.05) + new_status = nutrition_display.icon_state @@ -121,14 +141,9 @@ previous_status = new_status switch(new_status) - if("explode") - visible_message("[src] разарвало от обжорства!.", "Ваши внутренности не выдерживают и лопаются.") - do_sparks(3, 1, src) - src.gib() if("fat") name = "жирная [initial(name)]" // Мешаем англиский с русским desc = "[initial(desc)] Господи! Она же огромная!" - to_chat(src, "Ты чувствуешь, что в тебя больше не влезет и кусочка") if("full") name = initial(name) @@ -138,13 +153,15 @@ if("fed") name = initial(name) desc = initial(desc) - if("hungr") + if("hungry") name = "костлявая [initial(name)]" desc = "[initial(desc)] Вы можете видеть рёбра через кожу." to_chat(src, "Твой живот угрюмо урчит, лучше найти что-то поесть") if("starving") + to_chat(src, "Ты смертельно голоден!") nutrition_display.icon_state = "starving" - // Someting bad + else + CRASH("Не известный статус [new_status]") //Prevents mouse from pulling things @@ -165,6 +182,7 @@ to_chat(src, "You are too small to pull anything except food.") return +// Вызывается, когда мышка кликает на еду, можно кушать только одну еду за раз. /mob/living/simple_animal/mouse/proc/consume(obj/item/food/F) if(busy) @@ -172,29 +190,23 @@ return busy = TRUE + // liniar scale from (MIN_FEADING_TIME, to MAX_FEADING_TIME) + var/eat_time = MIN_FEADING_TIME + (MAX_FEADING_TIME - MIN_FEADING_TIME) * (nutrition / GIB_FEED_LEVEL) to_chat(src, "You're starting to chew on [F]...") - if(!do_after_once(src, 5 SECONDS, target = F, needhand = FALSE)) + if(!do_after_once(src, eat_time, target = F, needhand = FALSE)) to_chat(src, "You hurry up and stop chewing on [F]!") busy = FALSE return visible_message("[src] ravenously consumes [F].", "You ravenously devour [F].") playsound(loc, 'sound/items/eatfood.ogg', 30, FALSE, frequency = 1.5) - var/nutriment = F.reagents.get_reagent_amount("nutriment") * 20 // Human biology is hard, but you get about 20 times more regents. + var/nutriment = F.reagents.get_reagent_amount("nutriment") * NUTRITION_COEF log_debug("\[ANTAG MIX\] nutriment got: [nutriment]") adjust_nutrition(nutriment) F.generate_trash(F) busy = FALSE qdel(F) - - -// /mob/living/simple_animal/mouse/emote(act, m_type = 1, message = null, force) - -// if("help") -// to_chat(src, "scream, squeak") -// playsound(src, damaged_sound, 40, 1) - /mob/living/simple_animal/mouse/brown/tom maxHealth = 10 health = 10 @@ -212,3 +224,9 @@ butcher_results = list(/obj/item/stack/sheet/metal = 1) maxHealth = 20 health = 20 + + +#undef NUTRITION_COEF +#undef MAX_FEADING_TIME +#undef MIN_FEADING_TIME +#undef GIB_FEED_LEVEL From 3e78cbd0cf7d5b67e6f1b5ea7c6b75ee4f9f2bbc Mon Sep 17 00:00:00 2001 From: Drsmail Date: Tue, 21 Jan 2025 21:41:22 +0300 Subject: [PATCH 03/13] Text formating --- .../mobs/code/simple_animal/friendly/mouse.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index 24a9c87e8e0e..2a7d4122f24b 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -113,7 +113,7 @@ switch(nutrition) if(GIB_FEED_LEVEL to INFINITY) - visible_message("[src] разарвало от обжорства!.", "Ваши внутренности не выдерживают и лопаются.") + visible_message("[src] разорвало от обжорства!", "Ваши внутренности не выдерживают и лопаются.") do_sparks(3, 1, src) src.gib() if(NUTRITION_LEVEL_FULL to GIB_FEED_LEVEL) @@ -149,19 +149,19 @@ name = initial(name) desc = initial(desc) if("well_fed") - to_chat(src, "Ты чувствуешь себя превосходно!") + to_chat(src, "Ты чувствуешь себя превосходно!") if("fed") name = initial(name) desc = initial(desc) if("hungry") name = "костлявая [initial(name)]" desc = "[initial(desc)] Вы можете видеть рёбра через кожу." - to_chat(src, "Твой живот угрюмо урчит, лучше найти что-то поесть") + to_chat(src, "Твой живот угрюмо урчит, лучше найти что-то поесть") if("starving") to_chat(src, "Ты смертельно голоден!") nutrition_display.icon_state = "starving" else - CRASH("Не известный статус [new_status]") + CRASH("Неизвестный статус [new_status]") //Prevents mouse from pulling things @@ -192,9 +192,9 @@ busy = TRUE // liniar scale from (MIN_FEADING_TIME, to MAX_FEADING_TIME) var/eat_time = MIN_FEADING_TIME + (MAX_FEADING_TIME - MIN_FEADING_TIME) * (nutrition / GIB_FEED_LEVEL) - to_chat(src, "You're starting to chew on [F]...") + to_chat(src, "You're starting to chew on [F]...") if(!do_after_once(src, eat_time, target = F, needhand = FALSE)) - to_chat(src, "You hurry up and stop chewing on [F]!") + to_chat(src, "You hurry up and stop chewing on [F]!") busy = FALSE return From d5aa1f56e9a4b81111d9e173dbb36721ee08a531 Mon Sep 17 00:00:00 2001 From: Drsmail Date: Wed, 22 Jan 2025 19:05:53 +0300 Subject: [PATCH 04/13] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modular_ss220/mobs/code/simple_animal/friendly/mouse.dm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index 2a7d4122f24b..945fbebbeb15 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -42,9 +42,8 @@ // Стартовый уровень голода nutrition = NUTRITION_LEVEL_HUNGRY + 10 // Скорость с которой снижается наш голод - // Мышка тратит 1800 nutrition в час, при hunger_drain = 1. Одно блюдо сополняет где-то 100 nutrition - // Вычесиление голода для 3 блюд в час. На 66% больше чем голод у человека (HUNGER_FACTOR * 1.66). Да мыши очень голодные - hunger_drain = 3/(1800/100) + // Мышка тратит 1800 nutrition в час, при hunger_drain = 1. Одно блюдо восполняет где-то 100-200 nutrition + hunger_drain = HUNGER_FACTOR * 1.66 var/previous_status var/busy = FALSE @@ -109,7 +108,6 @@ var/hunger_rate = hunger_drain var/new_status adjust_nutrition(-hunger_rate) - log_debug("\[ANTAG MIX\] nutriment in body: [nutrition]") switch(nutrition) if(GIB_FEED_LEVEL to INFINITY) @@ -201,7 +199,6 @@ visible_message("[src] ravenously consumes [F].", "You ravenously devour [F].") playsound(loc, 'sound/items/eatfood.ogg', 30, FALSE, frequency = 1.5) var/nutriment = F.reagents.get_reagent_amount("nutriment") * NUTRITION_COEF - log_debug("\[ANTAG MIX\] nutriment got: [nutriment]") adjust_nutrition(nutriment) F.generate_trash(F) busy = FALSE From 15ede3ae5596b19d61ef513e52bfaca34b9f9d75 Mon Sep 17 00:00:00 2001 From: Drsmail Date: Fri, 24 Jan 2025 19:09:19 +0300 Subject: [PATCH 05/13] =?UTF-8?q?=D0=92=D0=BD=D1=91=D1=81=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=B4=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobs/code/simple_animal/friendly/mouse.dm | 80 ++++++++++++------- 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index 945fbebbeb15..ea3cf8e3eb7d 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -1,10 +1,16 @@ // Коэфицент питательности еды, чтобы полностью не копировать сложную систему питание людей. #define NUTRITION_COEF 20 -#define MAX_FEADING_TIME 15 SECONDS +#define MAX_FEADING_TIME 7 SECONDS #define MIN_FEADING_TIME 3 SECONDS // Сколько нутриентов должно быть в мыше, перед тем как мы её гибнем #define GIB_FEED_LEVEL NUTRITION_LEVEL_FULL * 1.35 +#define STATUS_FAT 0 +#define STATUS_FULL 1 +#define STATUS_WELL_FED 2 +#define STATUS_FED 3 +#define STATUS_HUNGRY 4 +#define STATUS_STARVING 5 /datum/hud/simple_animal_mouse/New(mob/user) ..() @@ -45,6 +51,7 @@ // Мышка тратит 1800 nutrition в час, при hunger_drain = 1. Одно блюдо восполняет где-то 100-200 nutrition hunger_drain = HUNGER_FACTOR * 1.66 + var/const/bitesize = 2 var/previous_status var/busy = FALSE @@ -105,61 +112,63 @@ // Вызывается цикилически из модуля live. Отвечает за обработку голода /mob/living/simple_animal/mouse/handle_chemicals_in_body() - var/hunger_rate = hunger_drain var/new_status - adjust_nutrition(-hunger_rate) + adjust_nutrition(-hunger_drain) + // log_debug("\[MOUSE BUFF\] nutriment in body: [nutrition]") + switch(nutrition) if(GIB_FEED_LEVEL to INFINITY) visible_message("[src] разорвало от обжорства!", "Ваши внутренности не выдерживают и лопаются.") - do_sparks(3, 1, src) src.gib() if(NUTRITION_LEVEL_FULL to GIB_FEED_LEVEL) nutrition_display.icon_state = "fat" + new_status = STATUS_FAT if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) nutrition_display.icon_state = "full" + new_status = STATUS_FULL if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) nutrition_display.icon_state = "well_fed" + new_status = STATUS_WELL_FED if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) nutrition_display.icon_state = "fed" + new_status = STATUS_FED if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) nutrition_display.icon_state = "hungry" + new_status = STATUS_HUNGRY if(NUTRITION_LEVEL_HYPOGLYCEMIA to NUTRITION_LEVEL_STARVING) nutrition_display.icon_state = "starving" + new_status = STATUS_STARVING adjustHealth(0.02) else // we are below 0 that's realy bad. Let's kill us adjustHealth(0.05) - - new_status = nutrition_display.icon_state - if(previous_status == new_status) return previous_status = new_status switch(new_status) - if("fat") + if(STATUS_FAT) name = "жирная [initial(name)]" // Мешаем англиский с русским desc = "[initial(desc)] Господи! Она же огромная!" - to_chat(src, "Ты чувствуешь, что в тебя больше не влезет и кусочка") - if("full") + to_chat(src, span_userdanger("Ты чувствуешь, что в тебя больше не влезет и кусочка")) + if(STATUS_FULL) name = initial(name) desc = initial(desc) - if("well_fed") - to_chat(src, "Ты чувствуешь себя превосходно!") - if("fed") + if(STATUS_WELL_FED) + to_chat(src, span_notice("Ты чувствуешь себя превосходно!")) + if(STATUS_FED) name = initial(name) desc = initial(desc) - if("hungry") + if(STATUS_HUNGRY) name = "костлявая [initial(name)]" desc = "[initial(desc)] Вы можете видеть рёбра через кожу." - to_chat(src, "Твой живот угрюмо урчит, лучше найти что-то поесть") - if("starving") - to_chat(src, "Ты смертельно голоден!") - nutrition_display.icon_state = "starving" + to_chat(src, span_warning("Твой живот угрюмо урчит, лучше найти что-то поесть")) + if(STATUS_STARVING) + to_chat(src, span_userdanger("Ты смертельно голоден!")) else - CRASH("Неизвестный статус [new_status]") + CRASH("Unknown status: [new_status]") //Prevents mouse from pulling things @@ -177,32 +186,39 @@ return FALSE return if(show_message) - to_chat(src, "You are too small to pull anything except food.") + to_chat(src, span_warning("You are too small to pull anything except food.")) return // Вызывается, когда мышка кликает на еду, можно кушать только одну еду за раз. /mob/living/simple_animal/mouse/proc/consume(obj/item/food/F) if(busy) - to_chat(src, "You need to finish chewing first.") + to_chat(src, span_warning("You need to finish chewing first.")) return busy = TRUE // liniar scale from (MIN_FEADING_TIME, to MAX_FEADING_TIME) var/eat_time = MIN_FEADING_TIME + (MAX_FEADING_TIME - MIN_FEADING_TIME) * (nutrition / GIB_FEED_LEVEL) - to_chat(src, "You're starting to chew on [F]...") + to_chat(src, span_notice("You're starting to chew on [F]...")) if(!do_after_once(src, eat_time, target = F, needhand = FALSE)) - to_chat(src, "You hurry up and stop chewing on [F]!") + to_chat(src, span_notice("You hurry up and stop chewing on [F]!")) busy = FALSE return - visible_message("[src] ravenously consumes [F].", "You ravenously devour [F].") - playsound(loc, 'sound/items/eatfood.ogg', 30, FALSE, frequency = 1.5) - var/nutriment = F.reagents.get_reagent_amount("nutriment") * NUTRITION_COEF - adjust_nutrition(nutriment) - F.generate_trash(F) busy = FALSE - qdel(F) + playsound(loc, 'sound/items/eatfood.ogg', 30, FALSE, frequency = 1.5) + var/nutriment = F.reagents.get_reagent_amount("nutriment") + // Добовляю только нутриенты т.к. яды и другие вещества не обрабатываются по умолчанию. + if(nutriment > bitesize) + F.reagents.remove_reagent("nutriment", bitesize, TRUE) + adjust_nutrition(bitesize * NUTRITION_COEF) + else + visible_message("[src] ravenously consumes [F].", "You ravenously devour [F].") + F.reagents.remove_reagent("nutriment", nutriment, TRUE) + adjust_nutrition(nutriment * NUTRITION_COEF) + F.generate_trash(F) + qdel(F) + /mob/living/simple_animal/mouse/brown/tom maxHealth = 10 @@ -227,3 +243,9 @@ #undef MAX_FEADING_TIME #undef MIN_FEADING_TIME #undef GIB_FEED_LEVEL +#undef STATUS_FAT +#undef STATUS_FULL +#undef STATUS_WELL_FED +#undef STATUS_FED +#undef STATUS_HUNGRY +#undef STATUS_STARVING From c3092b0ca166c3f629ca9c75bf29e3015f2cc4c5 Mon Sep 17 00:00:00 2001 From: Drsmail Date: Sat, 25 Jan 2025 19:12:56 +0300 Subject: [PATCH 06/13] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B9=D1=82=20=D0=B4=D0=BB=D1=8F=20=D1=81?= =?UTF-8?q?=D1=8B=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../friendly/screen_hunger_mouse_test.dmi | Bin 1712 -> 2908 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi b/modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi index 4d55eacf2ce803cbf88dbfc17d0d11392367b4ad..9fb421fe1b63ee44ec642a65429e9a6a39f30571 100644 GIT binary patch delta 2745 zcmV;q3P$y?4cr!xzkdpcNklsy0m!woJ55*(Aiq*dG&YNZVix#3Z1kfr4l?m@0}&SG3X1w$C2*y;h2@DdjFg&1k@CiGiYoYHMp%$M1V{m@8L4$=Y>4$jAum8y&(cM-BrJ551_`x8b&DRNEg< zm2I-y7l;b$^b1Zw}*K@fhFz{+($XAlcyc zAPHiZA+o{muyO%<;w$0r9b|c}OC`P|80U(`tBDcQd>8 zZf0reWY;R6YojgXHuI-6faLuE^Kbel!#`P|693PqAC-TvU30xE^f-cX4jnwh_}ho@qe zF31eZoe>r{U#r^=sP;K3A0Qrl=rhZ27=o0c$A398$fCZGN_=k!yq}7{&wS#hYIz5a zV4M%0>tf*KsOns=Kl%;~ni!c5l->v8lvfT=>5+?@uT>9zK`Y^&P8{C$^vH9-pE5q| z{dO+{)pIER-)x&V1pRLfva-&_#{{|Q&fhWm_Ol#1ct-ByE-fZJ6+<{NAGnxupy@&z zgMUHvI)HFbC#U?=xL0S5K4bor1~}4k9)Oo)e*-Rgy<6P(!N3Jp*0~sc`&rd7qcJa| z6VP1ap#Q{0=3Ra{ljfP{-x@%c;Wjld@pY#7Y1VH0t8TiywPZ@riYXHVMj}w67@4pW~@b^DUMyCtC%tDI0 z6A>rFJtwGMw@c-90O8;m?n;kkJ|(0DR4>)Ei(l6OuWf>5buctIz*zSIc3&r2`hV7V znW+n(js0q@sI6fuexb8>()8W1UW_ewMwo~=Wy9zVej?&zA~MaAni4MbpEXOTKF_7| zx|_GEG8sGh4YQ!>XcXt!0RY~6w@+OEqT9`^DD)VUQ{o@D{5=ldQF+`!z>9# zvDe{k$Kh?qUFk`hZ%;(TnJ2|x_kZg9lhNt&Z-2ZE5XC(C>INK@56D7RuiIrCf6@>% zv?Rdhi+|;+>baa9?Z?}C7oqnLQBk}IfIuL?Y5(PNe{Ie$i65Vd%WWSG`Y}5L91B`u z?v3JxFhuz9Bl5mv(_5M~l3?kq0Wj;y04HDFfV_1$F*Ry~tibHa{();5xaU65RNme#*q2Wd7!QpMcB=`%KjswyTIYuaV zMr6U=&07;fPA2^NA?VU8Mu4M7`sF`8gvQ1b9yd%*MVXwM%{v`)98_N^8pccr0-$J_ z{4*R>KTFbXCu=wAYZl5-BY%l+Cx6-xYJ5H)%_BjPL=k!>r=qgg1G4ZEtb`y?FK7*| zJ}&g1mAz4$Y3PLoccmxcIlWnE&nGR!cJe0}z|(z?0Pv@ayE$I*uH1fWT;26tY=rRC zY;2#3P6Ob)5!{z~ID2?f7XPC`KPzf$3@;)Xl(+WEsV#ZdDgU(L&3{hEy?cQ4-c(86 z?y9en)6s13C!GObz5WJ{|64S|x!4F5#fvx>8)14{6niQv8lZGu38nMY7cm+A1eh;- z{8sz|V9EO-c|4UCNLPK8s$V9;DLc*Vl{oR*|(|>PZ=oBGN$)ZbwTNNH*DCur@rH94MRlux~>=It$S7u$=;!l_X z#W&Owd$%7?MI{Fg?vvY3&lMkimXwH|UQxV=im$_oe|lum0Xp~03T;_*i^z)bIp$9g z$kTm~@I>7cOpiCnZMVjYRX1PKeZbz{GsKQZRifJg<-1qO3xBl>o-}B%U-(?|CkXd& zw?|l9Cx(^j@dip3^f5i&kgy2v?G^8S@A}PHR=iwK1W5EY$d1S7ieFber4fb)M5|Yv zPVAR0@g?Zh-{dmP405GTK>7-7cRtVDbFo*9c z!}@r;5PoAl;hs*ex#M|D_4&ERjDL&J)Ut!7mL0MojDL{Q0A}ms@J0C9#$p(&{W@?D>=2dNyyUFjj*(}{b{ZsLKvbH;BLO)Wb% zrS6r)0Dq~n4sDym+s=&OApFiB63&%wZKe?>B2Kv?;pEO+sJ{Jei2N&O{AQrdw&v74 zy-k`GO)Wb%t@61x9t&L9mUIS4Z~d>i{Xr;NCRc{#sy<%}sY*^-Y{lzva&qS_s%kX} znedy;n z-^qlv(${oloU%S%i}2w`s9v{AB#fWr^q!w5c$$8F{2uIpl1ne=cUO9th)idV-)@+j z0g8nWkZUF*ib7c>?5fXC1)~s?DZe(0k>Yixef5yi0LqUPr0EahqD#Mi>7L#7`DW2^ z?|&Y)Ki*~wzu7FtYF{nVx(^5k$8hO*mEOV|4vyifuS)OglJJ{dVAJKd;>DRfU$XQl zLP|OHG7e?Cwk_TId?Og~8}+rD-%gmG0p-pJ!#yX|A&C33R-c~=+5SGj4wy+#QyM@j z!&Zt9;=-2g`g|>v1+f6X{b_4X`K`cgdViYI0NOz-(^GA>kM`*ZX;TH>_(F~gz-)Rq8<#TOZS~}UKY|FRs`Gzvw96fl4Yy|CVP}6t9$%H%>xUdbME3vJB1TqwK z$swedEi?Wtf|UY*%>SWV0YGMV!vz%Z<;DL2jtl@>!L+8j00000NkvXXu0mjf+|Y3U delta 1539 zcmV+e2K@Ql7O)MFzkdbWNkluttqH?KnD5nGh2a4+4tR_O75-FETrY#busJ$TBDWr<(a#^!f zT=3?w%x1iv{lDvV+4&?S>>clKJa6XBThDs{7Z(>7S5y^q^M9fIh@i0E|Lecc<^W)? zdc5wXQ&HkOHb8zvP=5Yx2LRCc_ot?7Q@5VBbja_)xM+Mw1~7xOL^|ZxKwLz=;HD!q z{LhzF!*-?Zd6c&2G1z^wHkwY%x?x>(zU>u|9}$$&_Phq|iOcBE-e_rObZzR^Q%^JT zqVjF606pAD1b^)#W4XK!mhA!cF|Gi~LI+0KAD`r>Gs4WG; zXGTFrzE9|#fzUexF_kopck6N-z(@Zljx8Ft?Nt88@&o{NFb`f#K}bE&26AAs;HWju*c1gIMgU_ODbsYPzI4D88p3;{y5O5#yU0Kpb1tW`X|Enn2xx?I;R-!y`%h z0DqcZih66i1zRa9eA6>wR{l#nmwD9rTwGjSTwGjSTwDRE^H%MUh0gc)cq}|QH^7Exvd5GCnTpM3%xz^750G7IjR$}^r-hDm2 zmdOBQ__^?2QM1&~w!>$e{Qv8!5USUc+j^!KFG z!qtAnaq#RWGh59I-)^NAk}L_`UG)iGWG6heGyqA%rUxHT zH@0@v2hgGuVgca0Z^qlocOtvtsigt*Uz!e2_0dL?q From 5b52494abe6870f1ef76128cb7cdae5d15557a2b Mon Sep 17 00:00:00 2001 From: Drsmail Date: Sat, 25 Jan 2025 22:55:12 +0300 Subject: [PATCH 07/13] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B2=D0=B7=D0=B0=D0=B8=D0=BC=D0=BE=D0=B4=D0=B5=D0=B9?= =?UTF-8?q?=D1=81=D1=82=D0=B2=D0=B8=D0=B5=20=D1=81=20=D1=81=D1=8B=D1=80?= =?UTF-8?q?=D0=BE=D0=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modular_ss220/mobs/code/simple_animal/friendly/mouse.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index ea3cf8e3eb7d..2fedecec1fe4 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -209,6 +209,11 @@ playsound(loc, 'sound/items/eatfood.ogg', 30, FALSE, frequency = 1.5) var/nutriment = F.reagents.get_reagent_amount("nutriment") // Добовляю только нутриенты т.к. яды и другие вещества не обрабатываются по умолчанию. + + if(istype(F, /obj/item/food/cheesewedge) || istype(F, /obj/item/food/sliceable/cheesewheel)) + Druggy(2 SECONDS) + emote(pick("дёргается","быстро вертит хвостиком","издаёт продолжительный писк")) + if(nutriment > bitesize) F.reagents.remove_reagent("nutriment", bitesize, TRUE) adjust_nutrition(bitesize * NUTRITION_COEF) From d4ce56d1b1a41a83b3c384d1e27fd22c1297d7e5 Mon Sep 17 00:00:00 2001 From: Drsmail Date: Sat, 25 Jan 2025 23:04:07 +0300 Subject: [PATCH 08/13] =?UTF-8?q?=D0=9F=D0=BE=D0=BC=D0=B5=D0=BD=D1=8F?= =?UTF-8?q?=D0=BB=20=D0=B8=D0=BC=D1=8F=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ouse_test.dmi => screen_hunger_ui_for_mouse.dmi} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename modular_ss220/mobs/code/simple_animal/friendly/{screen_hunger_mouse_test.dmi => screen_hunger_ui_for_mouse.dmi} (100%) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi b/modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_ui_for_mouse.dmi similarity index 100% rename from modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi rename to modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_ui_for_mouse.dmi From a29c9031599256cf1b60ae853b0056ed4d7078ce Mon Sep 17 00:00:00 2001 From: Drsmail Date: Mon, 27 Jan 2025 04:59:46 +0300 Subject: [PATCH 09/13] Fix dmi path after rename --- modular_ss220/mobs/code/simple_animal/friendly/mouse.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index 2fedecec1fe4..b93f916ff21b 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -21,7 +21,8 @@ mymob.nutrition_display = new /atom/movable/screen/nutrition() mymob.nutrition_display.screen_loc = "EAST-1:26,CENTER-1:15" // "EAST-2:32,CENTER-1:13" - mymob.nutrition_display.icon = 'modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_mouse_test.dmi' // TODO Перерисовать на сыр + mymob.nutrition_display.icon = 'modular_ss220/mobs/code/simple_animal/friendly/screen_hunger_ui_for_mouse.dmi' + infodisplay += mymob.nutrition_display var/atom/movable/screen/using From bb03eb8992cc4baaef38f1463309b06bb02c6bf3 Mon Sep 17 00:00:00 2001 From: Drsmail Date: Mon, 27 Jan 2025 05:14:25 +0300 Subject: [PATCH 10/13] =?UTF-8?q?=D0=9F=D0=BE=D0=BC=D0=B5=D0=BD=D1=8F?= =?UTF-8?q?=D0=BB=20=D0=BF=D1=83=D1=82=D1=8C=20=D1=83=20=D1=81=D1=8B=D1=80?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modular_ss220/mobs/code/simple_animal/friendly/mouse.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index b93f916ff21b..53df6ed92891 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -211,7 +211,7 @@ var/nutriment = F.reagents.get_reagent_amount("nutriment") // Добовляю только нутриенты т.к. яды и другие вещества не обрабатываются по умолчанию. - if(istype(F, /obj/item/food/cheesewedge) || istype(F, /obj/item/food/sliceable/cheesewheel)) + if(istype(F, /obj/item/food/sliced/cheesewedge) || istype(F, /obj/item/food/sliceable/cheesewheel)) Druggy(2 SECONDS) emote(pick("дёргается","быстро вертит хвостиком","издаёт продолжительный писк")) From e4164844759603a20a5b312ab6159591d3747f91 Mon Sep 17 00:00:00 2001 From: Drsmail <60036448+Drsmail@users.noreply.github.com> Date: Mon, 27 Jan 2025 19:47:47 +0300 Subject: [PATCH 11/13] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5=20=D0=BE=D1=82=D1=81=D1=82?= =?UTF-8?q?=D1=83=D0=BF=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Aylong <69762909+AyIong@users.noreply.github.com> --- .../mobs/code/simple_animal/friendly/mouse.dm | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index 53df6ed92891..ff2e04ba8047 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -33,8 +33,6 @@ user.overlay_fullscreen("see_through_darkness", /atom/movable/screen/fullscreen/stretch/see_through_darkness) - - /mob/living/simple_animal/mouse var/non_standard = FALSE // for no "mouse_" with mouse_color icon = 'modular_ss220/mobs/icons/mob/animal.dmi' @@ -43,7 +41,6 @@ damaged_sound = list('modular_ss220/mobs/sound/creatures/rat_wound.ogg') blood_volume = BLOOD_VOLUME_SURVIVE butcher_results = list(/obj/item/food/meat/mouse = 1) - // hungry mouse hud_type = /datum/hud/simple_animal_mouse // Стартовый уровень голода @@ -56,8 +53,6 @@ var/previous_status var/busy = FALSE - - /mob/living/simple_animal/mouse/Initialize(mapload) . = ..() AddComponent(/datum/component/squeak, list("[squeak_sound]" = 1), 100, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) //as quiet as a mouse or whatever @@ -75,7 +70,6 @@ // Теперь мышка будет обрабатыватся в цикле life, обычные мышки не будут обрабатывать голод. reagents = new() - /mob/living/simple_animal/mouse/proc/color_pick() if(!mouse_color) mouse_color = pick( list("brown","gray","white") ) @@ -112,11 +106,8 @@ // Вызывается цикилически из модуля live. Отвечает за обработку голода /mob/living/simple_animal/mouse/handle_chemicals_in_body() - var/new_status adjust_nutrition(-hunger_drain) - // log_debug("\[MOUSE BUFF\] nutriment in body: [nutrition]") - switch(nutrition) if(GIB_FEED_LEVEL to INFINITY) @@ -171,7 +162,6 @@ else CRASH("Unknown status: [new_status]") - //Prevents mouse from pulling things /mob/living/simple_animal/mouse/start_pulling(atom/movable/AM, state, force = pull_force, show_message = FALSE) if(istype(AM, /obj/item/food)) @@ -192,7 +182,6 @@ // Вызывается, когда мышка кликает на еду, можно кушать только одну еду за раз. /mob/living/simple_animal/mouse/proc/consume(obj/item/food/F) - if(busy) to_chat(src, span_warning("You need to finish chewing first.")) return @@ -244,7 +233,6 @@ maxHealth = 20 health = 20 - #undef NUTRITION_COEF #undef MAX_FEADING_TIME #undef MIN_FEADING_TIME From b4aab9c08ba1dc5ff46565a33969a19266ea3b11 Mon Sep 17 00:00:00 2001 From: Drsmail Date: Mon, 27 Jan 2025 20:21:10 +0300 Subject: [PATCH 12/13] =?UTF-8?q?=D0=A3=D0=BD=D0=B8=D1=84=D0=B8=D1=86?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D1=8F=D0=B7=D1=8B=D0=BA?= =?UTF-8?q?=20=D0=B2=D0=BD=D1=83=D1=82=D1=80=D0=B8=D0=B8=D0=B3=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D1=8B=D1=85=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobs/code/simple_animal/friendly/mouse.dm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index 53df6ed92891..b04b79e43516 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -120,7 +120,7 @@ switch(nutrition) if(GIB_FEED_LEVEL to INFINITY) - visible_message("[src] разорвало от обжорства!", "Ваши внутренности не выдерживают и лопаются.") + visible_message("[src] разорвало от обжорства!", "Ваши внутренности не выдерживают и лопаются!") src.gib() if(NUTRITION_LEVEL_FULL to GIB_FEED_LEVEL) nutrition_display.icon_state = "fat" @@ -187,22 +187,22 @@ return FALSE return if(show_message) - to_chat(src, span_warning("You are too small to pull anything except food.")) + to_chat(src, span_warning("Ты слишком крохотный, чтобы тянуть что-то кроме еды.")) return // Вызывается, когда мышка кликает на еду, можно кушать только одну еду за раз. /mob/living/simple_animal/mouse/proc/consume(obj/item/food/F) if(busy) - to_chat(src, span_warning("You need to finish chewing first.")) + to_chat(src, span_warning("Сначала доешь, то что уже жуёшь.")) return busy = TRUE // liniar scale from (MIN_FEADING_TIME, to MAX_FEADING_TIME) var/eat_time = MIN_FEADING_TIME + (MAX_FEADING_TIME - MIN_FEADING_TIME) * (nutrition / GIB_FEED_LEVEL) - to_chat(src, span_notice("You're starting to chew on [F]...")) + to_chat(src, span_notice("Ты начинаешь употреблять [F].")) if(!do_after_once(src, eat_time, target = F, needhand = FALSE)) - to_chat(src, span_notice("You hurry up and stop chewing on [F]!")) + to_chat(src, span_notice("Не доедая, ты перестаёшь жевать [F]!")) busy = FALSE return @@ -217,9 +217,10 @@ if(nutriment > bitesize) F.reagents.remove_reagent("nutriment", bitesize, TRUE) + visible_message("[src] употребляет часть [F].", "Ты съедаешь часть [F].") adjust_nutrition(bitesize * NUTRITION_COEF) else - visible_message("[src] ravenously consumes [F].", "You ravenously devour [F].") + visible_message("[src] заканчивает есть [F].", "Ты доедаешь [F].") F.reagents.remove_reagent("nutriment", nutriment, TRUE) adjust_nutrition(nutriment * NUTRITION_COEF) F.generate_trash(F) From e31858dd2d6d2f9b0f9a24f93658d8a309a6d03e Mon Sep 17 00:00:00 2001 From: Drsmail <60036448+Drsmail@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:00:44 +0300 Subject: [PATCH 13/13] Update modular_ss220/mobs/code/simple_animal/friendly/mouse.dm Co-authored-by: Mikhail Dzianishchyts --- modular_ss220/mobs/code/simple_animal/friendly/mouse.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm index 14345d86a2b7..992c1fb45ce7 100644 --- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm +++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm @@ -206,7 +206,7 @@ if(nutriment > bitesize) F.reagents.remove_reagent("nutriment", bitesize, TRUE) - visible_message("[src] употребляет часть [F].", "Ты съедаешь часть [F].") + visible_message("[src] съедает часть [F].", "Ты съедаешь часть [F].") adjust_nutrition(bitesize * NUTRITION_COEF) else visible_message("[src] заканчивает есть [F].", "Ты доедаешь [F].")