diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3aad420c6f5..1371374f66e 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1519,11 +1519,11 @@ to_chat(src, span_notice("Вы cхватили [grabbed_human.name][grabbed_by_hands ? " за руки" : ""]!")) else pulled_mob.visible_message( - span_warning("[name] схватил[genderize_ru(gender,"","а","о","и")] [pulled_mob.name]!"), + span_warning("[name] схватил[genderize_ru(gender,"","а","о","и")] [pulled_mob.declent_ru(ACCUSATIVE)]!"), span_warning("[name] схватил[genderize_ru(gender,"","а","о","и")] Вас!"), ignored_mobs = src, ) - to_chat(src, span_notice("Вы схватили [pulled_mob.name]!")) + to_chat(src, span_notice("Вы схватили [pulled_mob.declent_ru(ACCUSATIVE)]!")) if(isliving(pulled_mob)) var/mob/living/pulled_living = pulled_mob diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index d9235339dd7..4d572eb9d80 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -125,8 +125,8 @@ if(nosell_hit) return ..() - visible_message(span_danger("[src.declent_ru(NOMINATIVE)] получа[pluralize_ru(src.gender,"ет","ют")] удар [thrown_item.declent_ru(INSTRUMENTAL)]."), - span_userdanger("[src.declent_ru(NOMINATIVE)] получа[pluralize_ru(src.gender,"ет","ют")] удар [thrown_item.declent_ru(INSTRUMENTAL)].")) + visible_message(span_danger("[capitalize(src.declent_ru(NOMINATIVE))] получа[pluralize_ru(src.gender,"ет","ют")] удар [thrown_item.declent_ru(INSTRUMENTAL)]."), + span_userdanger("[capitalize(src.declent_ru(NOMINATIVE))] получа[pluralize_ru(src.gender,"ет","ют")] удар [thrown_item.declent_ru(INSTRUMENTAL)].")) if(!thrown_item.throwforce) return @@ -169,17 +169,17 @@ else return M.occupant_message("[pluralize_ru(M.occupant.gender,"Ты","Вы")] ударяе[pluralize_ru(M.occupant.gender,"шь","те")] [src.declent_ru(ACCUSATIVE)].") - visible_message("[M.declent_ru(NOMINATIVE)] ударя[pluralize_ru(M.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)]!", "[M.declent_ru(NOMINATIVE)] ударя[pluralize_ru(M.gender,"ет","ют")] [pluralize_ru(src.gender,"тебя","вас")]!") + visible_message("[capitalize(M.declent_ru(NOMINATIVE))] ударя[pluralize_ru(M.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)]!", "[capitalize(M.declent_ru(NOMINATIVE))] ударя[pluralize_ru(M.gender,"ет","ют")] [pluralize_ru(src.gender,"тебя","вас")]!") add_attack_logs(M.occupant, src, "Mecha-meleed with [M]") else if(!is_strong()) step_away(src,M) add_attack_logs(M.occupant, src, "Mecha-pushed with [M]", ATKLOG_ALL) M.occupant_message("[pluralize_ru(M.occupant.gender,"Ты толкаешь","Вы толкаете")] [src.declent_ru(ACCUSATIVE)] в сторону.") - visible_message("[M.declent_ru(NOMINATIVE)] отталкива[pluralize_ru(M.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)] в сторону.") + visible_message("[capitalize(M.declent_ru(NOMINATIVE))] отталкива[pluralize_ru(M.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)] в сторону.") else M.occupant_message("[pluralize_ru(M.occupant.gender,"Ты пытаешься оттолкнуть","Вы пытаетесь оттолкнуть")] [src.declent_ru(ACCUSATIVE)] в сторону, но это не срабатывает.") - visible_message("[M.declent_ru(NOMINATIVE)] безуспешно пытается оттолкнуть [src.declent_ru(ACCUSATIVE)] в сторону.") + visible_message("[capitalize(M.declent_ru(NOMINATIVE))] безуспешно пытается оттолкнуть [src.declent_ru(ACCUSATIVE)] в сторону.") //Mobs on Fire /mob/living/proc/IgniteMob() @@ -445,7 +445,7 @@ if(stat != DEAD) add_attack_logs(M, src, "Slime'd") M.do_attack_animation(src) - visible_message("[M.declent_ru(NOMINATIVE)] поглоща[pluralize_ru(M.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)]!", "[M.declent_ru(NOMINATIVE)] поглоща[pluralize_ru(M.gender,"ет","ют")] [pluralize_ru(src.gender,"тебя","вас")]!") + visible_message("[capitalize(M.declent_ru(NOMINATIVE))] поглоща[pluralize_ru(M.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)]!", "[M.declent_ru(NOMINATIVE)] поглоща[pluralize_ru(M.gender,"ет","ют")] [pluralize_ru(src.gender,"тебя","вас")]!") return TRUE /mob/living/attack_animal(mob/living/simple_animal/M) @@ -462,8 +462,8 @@ if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) M.do_attack_animation(src) - visible_message("[M.declent_ru(NOMINATIVE)] [M.attacktext] [src.declent_ru(ACCUSATIVE)]!", \ - "[M.declent_ru(NOMINATIVE)] [M.attacktext] [src.declent_ru(ACCUSATIVE)]!") + visible_message("[capitalize(M.declent_ru(NOMINATIVE))] [M.attacktext] [src.declent_ru(ACCUSATIVE)]!", \ + "[capitalize(M.declent_ru(NOMINATIVE))] [M.attacktext] [src.declent_ru(ACCUSATIVE)]!") add_attack_logs(M, src, "Animal attacked") SEND_SIGNAL(src, COMSIG_SIMPLE_ANIMAL_ATTACKEDBY, M) return TRUE @@ -482,13 +482,13 @@ L.do_attack_animation(src) if(prob(90)) add_attack_logs(L, src, "Larva attacked") - visible_message("[L.declent_ru(NOMINATIVE)] куса[pluralize_ru(L.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)]!", \ - "[L.declent_ru(NOMINATIVE)] куса[pluralize_ru(L.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)]!") + visible_message("[capitalize(L.declent_ru(NOMINATIVE))] куса[pluralize_ru(L.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)]!", \ + "[capitalize(L.declent_ru(NOMINATIVE))] куса[pluralize_ru(L.gender,"ет","ют")] [src.declent_ru(ACCUSATIVE)]!") playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) return TRUE else - visible_message("[L.declent_ru(NOMINATIVE)] пыта[pluralize_ru(L.gender,"ет","ют")]ся укусить [src.declent_ru(ACCUSATIVE)]!", \ - "[L.declent_ru(NOMINATIVE)] пыта[pluralize_ru(L.gender,"ет","ют")]ся укусить [src.declent_ru(ACCUSATIVE)]!") + visible_message("[capitalize(L.declent_ru(NOMINATIVE))] пыта[pluralize_ru(L.gender,"ет","ют")]ся укусить [src.declent_ru(ACCUSATIVE)]!", \ + "[capitalize(L.declent_ru(NOMINATIVE))] пыта[pluralize_ru(L.gender,"ет","ют")]ся укусить [src.declent_ru(ACCUSATIVE)]!") return FALSE /mob/living/attack_alien(mob/living/carbon/alien/humanoid/M) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index b8b123c184e..6521ec364d4 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -1,22 +1,22 @@ //goat /mob/living/simple_animal/hostile/retaliate/goat name = "goat" - desc = "Not known for their pleasant disposition." + desc = "Не отличаются приятным нравом." icon_state = "goat" icon_living = "goat" icon_dead = "goat_dead" speak = list("EHEHEHEHEH","eh?") - speak_emote = list("brays") - emote_hear = list("brays") - emote_see = list("shakes its head", "stamps a foot", "glares around") + speak_emote = list("блеет") + emote_hear = list("блеет") + emote_see = list("трясёт головой", "бьёт копытом", "грозно зыркает вокруг") tts_seed = "Muradin" speak_chance = 1 turns_per_move = 5 nightvision = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat = 4) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" faction = list("neutral") attack_same = 1 attacktext = "бодает" @@ -31,6 +31,7 @@ blood_volume = BLOOD_VOLUME_NORMAL var/obj/item/udder/udder = null footstep_type = FOOTSTEP_MOB_SHOE + ru_names = list(NOMINATIVE = "козёл", GENITIVE = "козла", DATIVE = "козлу", ACCUSATIVE = "козла", INSTRUMENTAL = "козлом", PREPOSITIONAL = "козле") /mob/living/simple_animal/hostile/retaliate/goat/New() udder = new() @@ -49,7 +50,7 @@ if(enemies.len && prob(10)) enemies = list() LoseTarget() - visible_message("[src] calms down.") + visible_message(span_notice("[capitalize(src.declent_ru(NOMINATIVE))] успокаивается.")) eat_plants() if(!pulledby) @@ -67,7 +68,7 @@ /mob/living/simple_animal/hostile/retaliate/goat/Retaliate() ..() - visible_message("[src] gets an evil-looking gleam in their eye.") + visible_message(span_danger("Глаза [src.declent_ru(GENITIVE)] наливаются красным!")) /mob/living/simple_animal/hostile/retaliate/goat/Move(atom/newloc, direct = NONE, glide_size_override = 0, update_dir = TRUE) . = ..() @@ -100,29 +101,32 @@ if(. && isdiona(target)) var/mob/living/carbon/human/H = target var/obj/item/organ/external/NB = pick(H.bodyparts) - H.visible_message("[src] takes a big chomp out of [H]!", "[src] takes a big chomp out of your [NB.name]!") + H.visible_message(span_warning("[capitalize(src.declent_ru(NOMINATIVE))] отрывает большой кусок от [H]!"), \ + span_userdanger("[capitalize(src.declent_ru(NOMINATIVE))] отрывает от вас большой кусок [NB.declent_ru(GENITIVE)]!")) NB.droplimb() //cow /mob/living/simple_animal/cow name = "cow" - desc = "Known for their milk, just don't tip them over." + desc = "Известны своим молоком. Только не опрокидывайте их." icon_state = "cow" icon_living = "cow" icon_dead = "cow_dead" icon_gib = "cow_gib" speak = list("moo?","moo","MOOOOOO") - speak_emote = list("moos","moos hauntingly") - emote_hear = list("brays") - emote_see = list("shakes its head") + speak_emote = list("мычит","протяжно мычит") + emote_hear = list("ревёт") + emote_see = list("трясёт головой") tts_seed = "Cairne" speak_chance = 1 turns_per_move = 5 nightvision = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 6) - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + food_type = /obj/item/reagent_containers/food/snacks/grown/wheat + var/list/feedMessages = list("довольно мычит","благодарно мычит", "довольно помахивает хвостом") + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" attacktext = "бодает" attack_sound = 'sound/weapons/punch1.ogg' death_sound = 'sound/creatures/cow_death.ogg' @@ -136,6 +140,8 @@ var/obj/item/udder/udder = null gender = FEMALE footstep_type = FOOTSTEP_MOB_SHOE + ru_names = list(NOMINATIVE = "корова", GENITIVE = "коровы", DATIVE = "корове", ACCUSATIVE = "корову", INSTRUMENTAL = "коровой", PREPOSITIONAL = "корове") + COOLDOWN_DECLARE(feeded_cow) /mob/living/simple_animal/cow/Initialize() udder = new() @@ -147,7 +153,18 @@ return ..() /mob/living/simple_animal/cow/attackby(obj/item/O, mob/user, params) - if(stat == CONSCIOUS && istype(O, /obj/item/reagent_containers/glass)) + if(stat == CONSCIOUS && istype(O, food_type)) + if(COOLDOWN_TIMELEFT(src, feeded_cow) < 40 SECONDS) //starting milk mini-factory + user.visible_message(span_notice("[user] скармлива[pluralize_ru(user.gender, "ет", "ют")] пшеницу [src.declent_ru(DATIVE)]! Она [pick(feedMessages)].")) + user.drop_transfer_item_to_loc(O, src) + qdel(O) + COOLDOWN_START(src, feeded_cow, 60 SECONDS) + udder.feeded = TRUE + + else + user.balloon_alert(user, "[src.declent_ru(NOMINATIVE)] не голодна") + + else if(stat == CONSCIOUS && istype(O, /obj/item/reagent_containers/glass)) udder.milkAnimal(O, user) return 1 else @@ -155,45 +172,48 @@ /mob/living/simple_animal/cow/Life(seconds, times_fired) . = ..() + if(udder.feeded && COOLDOWN_FINISHED(src, feeded_cow)) + udder.feeded = FALSE if(stat == CONSCIOUS) udder.generateMilk() -/mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M as mob) +/mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M) if(!stat && M.a_intent == INTENT_DISARM && icon_state != icon_dead) - M.visible_message("[M] tips over [src].","You tip over [src].") + M.visible_message(span_warning("[M] опрокидыва[pluralize_ru(M.gender, "ет", "ют")] [src.declent_ru(ACCUSATIVE)]!"), \ + span_notice("Вы опрокидываете [src.declent_ru(ACCUSATIVE)].")) Weaken(60 SECONDS) icon_state = icon_dead spawn(rand(20,50)) if(!stat && M) icon_state = icon_living - var/list/responses = list( "[src] looks at you imploringly.", - "[src] looks at you pleadingly", - "[src] looks at you with a resigned expression.", - "[src] seems resigned to its fate.") - to_chat(M, pick(responses)) + var/list/responses = list( " смотрит на вас умоляюще.", + " смотрит на вас удручённо.", + " смотрит на вас с покорностью в глазах.", + ", кажется, смирилась со своей участью.") + to_chat(M, span_notice("[capitalize(src.declent_ru(NOMINATIVE))][pick(responses)]")) else ..() /mob/living/simple_animal/chick name = "\improper chick" - desc = "Adorable! They make such a racket though." + desc = "Прелесть! Но они такие шумные." icon_state = "chick" icon_living = "chick" icon_dead = "chick_dead" icon_gib = "chick_gib" gender = FEMALE speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") - speak_emote = list("cheeps") - emote_hear = list("cheeps") - emote_see = list("pecks at the ground","flaps its tiny wings") + speak_emote = list("чирикает") + emote_hear = list("чирикает") + emote_see = list("клюёт землю","хлопает крылышками") tts_seed = "Meepo" density = FALSE speak_chance = 2 turns_per_move = 2 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/bird = 1) - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" attacktext = "клюёт" death_sound = 'sound/creatures/mouse_squeak.ogg' health = 3 @@ -207,6 +227,7 @@ gold_core_spawnable = FRIENDLY_SPAWN footstep_type = FOOTSTEP_MOB_CLAW holder_type = /obj/item/holder/chick + ru_names = list(NOMINATIVE = "цыплёнок", GENITIVE = "цыплёнка", DATIVE = "цыплёнку", ACCUSATIVE = "цыплёнка", INSTRUMENTAL = "цыплёнком", PREPOSITIONAL = "цыплёнке") /mob/living/simple_animal/chick/New() ..() @@ -232,15 +253,15 @@ GLOBAL_VAR_INIT(chicken_count, 0) /mob/living/simple_animal/chicken name = "\improper chicken" - desc = "Hopefully the eggs are good this season." + desc = "Надеюсь, в этом сезоне яйца будут хорошими." gender = FEMALE icon_state = "chicken_brown" icon_living = "chicken_brown" icon_dead = "chicken_brown_dead" speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") - speak_emote = list("clucks","croons") - emote_hear = list("clucks") - emote_see = list("pecks at the ground","flaps its wings viciously") + speak_emote = list("кудахчет","квохчет") + emote_hear = list("кудахчет") + emote_see = list("клюёт землю", "резко встряхивает крыльями") tts_seed = "Windranger" density = FALSE speak_chance = 2 @@ -248,9 +269,9 @@ GLOBAL_VAR_INIT(chicken_count, 0) butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/bird = 2) var/egg_type = /obj/item/reagent_containers/food/snacks/egg food_type = /obj/item/reagent_containers/food/snacks/grown/wheat - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" attacktext = "клюёт" death_sound = 'sound/creatures/chicken_death.ogg' damaged_sound = list('sound/creatures/chicken_damaged1.ogg', 'sound/creatures/chicken_damaged2.ogg') @@ -266,12 +287,12 @@ GLOBAL_VAR_INIT(chicken_count, 0) mob_size = MOB_SIZE_SMALL can_hide = 1 can_collar = 1 - var/list/feedMessages = list("It clucks happily.","It clucks happily.") var/list/layMessage = EGG_LAYING_MESSAGES var/list/validColors = list("brown","black","white") gold_core_spawnable = FRIENDLY_SPAWN footstep_type = FOOTSTEP_MOB_CLAW holder_type = /obj/item/holder/chicken + ru_names = list(NOMINATIVE = "курица", GENITIVE = "курицы", DATIVE = "курице", ACCUSATIVE = "курицу", INSTRUMENTAL = "курицей", PREPOSITIONAL = "курице") /mob/living/simple_animal/chicken/New() ..() @@ -294,14 +315,13 @@ GLOBAL_VAR_INIT(chicken_count, 0) /mob/living/simple_animal/chicken/attackby(obj/item/O, mob/user, params) if(istype(O, food_type)) //feedin' dem chickens if(!stat && eggsleft < 8) - var/feedmsg = "[user] feeds [O] to [name]! [pick(feedMessages)]" - user.visible_message(feedmsg) + user.visible_message(span_notice("[user] скармлива[pluralize_ru(user.gender, "ет", "ют")] пшеницу [src.declent_ru(DATIVE)]. Она радостно [pick(speak_emote)].")) user.drop_transfer_item_to_loc(O, src) qdel(O) eggsleft += rand(1, 4) //world << eggsleft else - to_chat(user, "[name] doesn't seem hungry!") + user.balloon_alert(user, "[src.declent_ru(NOMINATIVE)] не голодна") else ..() @@ -322,7 +342,7 @@ GLOBAL_VAR_INIT(chicken_count, 0) if(isturf(loc)) amount_grown += rand(1,2) if(amount_grown >= 100) - visible_message("[src] hatches with a quiet cracking sound.") + visible_message(span_notice("Яйцо вылупляется с тихим треском.")) new /mob/living/simple_animal/chick(get_turf(src)) STOP_PROCESSING(SSobj, src) qdel(src) @@ -337,17 +357,17 @@ GLOBAL_VAR_INIT(chicken_count, 0) icon_living = "cock" icon_dead = "cock_dead" speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") - speak_emote = list("clucks","croons") - emote_hear = list("clucks") - emote_see = list("pecks at the ground","flaps its wings viciously") + speak_emote = list("кудахчет","квохчет") + emote_hear = list("кудахчет") + emote_see = list("клюёт землю", "резко встряхивает крыльями") tts_seed = "pantheon" density = FALSE speak_chance = 2 turns_per_move = 3 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/bird = 4) - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" melee_damage_type = STAMINA melee_damage_lower = 2 melee_damage_upper = 6 @@ -365,25 +385,26 @@ GLOBAL_VAR_INIT(chicken_count, 0) gold_core_spawnable = FRIENDLY_SPAWN footstep_type = FOOTSTEP_MOB_CLAW holder_type = /obj/item/holder/cock + ru_names = list(NOMINATIVE = "петух", GENITIVE = "петуха", DATIVE = "петуху", ACCUSATIVE = "петуха", INSTRUMENTAL = "петухом", PREPOSITIONAL = "петухе") /mob/living/simple_animal/pig name = "pig" - desc = "Oink oink." + desc = "Хрю-хрю!" icon_state = "pig" icon_living = "pig" icon_dead = "pig_dead" speak = list("oink?","oink","OINK") - speak_emote = list("oinks") + speak_emote = list("хрюкает") tts_seed = "Anubarak" // emote_hear = list("brays") - emote_see = list("rolls around") + emote_see = list("перекатывается по земле") speak_chance = 1 turns_per_move = 5 nightvision = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/ham = 6) - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" attacktext = "лягает" death_sound = 'sound/creatures/pig_death.ogg' talk_sound = list('sound/creatures/pig_talk1.ogg', 'sound/creatures/pig_talk2.ogg') @@ -393,25 +414,26 @@ GLOBAL_VAR_INIT(chicken_count, 0) can_collar = 1 gold_core_spawnable = FRIENDLY_SPAWN blood_volume = BLOOD_VOLUME_NORMAL + ru_names = list(NOMINATIVE = "свинья", GENITIVE = "свиньи", DATIVE = "свинье", ACCUSATIVE = "свинью", INSTRUMENTAL = "свиньёй", PREPOSITIONAL = "свинье") /mob/living/simple_animal/turkey name = "turkey" - desc = "Benjamin Franklin would be proud." + desc = "Бенджамин Франклин мог бы гордиться." icon_state = "turkey" icon_living = "turkey" icon_dead = "turkey_dead" icon_resting = "turkey_rest" speak = list("gobble?","gobble","GOBBLE") - speak_emote = list("gobble") - emote_see = list("struts around") + speak_emote = list("кулдычет") + emote_see = list("важно расхаживает") speak_chance = 1 turns_per_move = 5 nightvision = 6 mobility_flags = MOBILITY_FLAGS_REST_CAPABLE_DEFAULT butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/bird = 4) - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" attacktext = "клюёт" death_sound = 'sound/creatures/duck_quak1.ogg' health = 50 @@ -419,6 +441,7 @@ GLOBAL_VAR_INIT(chicken_count, 0) can_collar = 1 gold_core_spawnable = FRIENDLY_SPAWN footstep_type = FOOTSTEP_MOB_SHOE + ru_names = list(NOMINATIVE = "индейка", GENITIVE = "индейки", DATIVE = "индейке", ACCUSATIVE = "индейку", INSTRUMENTAL = "индейкой", PREPOSITIONAL = "индейке") /mob/living/simple_animal/goose name = "goose" @@ -431,15 +454,15 @@ GLOBAL_VAR_INIT(chicken_count, 0) speak_emote = list("quacks") tts_seed = "pantheon" //Жи есть брат да, я гусь, до тебя доебусь. // emote_hear = list("brays") - emote_see = list("flaps it's wings") + emote_see = list("хлопает крыльями") speak_chance = 1 turns_per_move = 5 nightvision = 6 mobility_flags = MOBILITY_FLAGS_REST_CAPABLE_DEFAULT butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/bird = 6) - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" melee_damage_type = STAMINA melee_damage_lower = 2 melee_damage_upper = 8 @@ -452,10 +475,11 @@ GLOBAL_VAR_INIT(chicken_count, 0) can_collar = 1 gold_core_spawnable = FRIENDLY_SPAWN footstep_type = FOOTSTEP_MOB_CLAW + ru_names = list(NOMINATIVE = "гусь", GENITIVE = "гуся", DATIVE = "гусю", ACCUSATIVE = "гуся", INSTRUMENTAL = "гусём", PREPOSITIONAL = "гусе") /mob/living/simple_animal/goose/gosling name = "gosling" - desc = "Симпатичный гусенок. Скоро он станей грозой всей станции." + desc = "Симпатичный гусёнок. Скоро он станет грозой всей станции." icon_state = "gosling" icon_living = "gosling" icon_dead = "gosling_dead" @@ -465,26 +489,27 @@ GLOBAL_VAR_INIT(chicken_count, 0) melee_damage_upper = 0 health = 20 maxHealth = 20 + ru_names = list(NOMINATIVE = "гусёнок", GENITIVE = "гусёнка", DATIVE = "гусёнку", ACCUSATIVE = "гусёнка", INSTRUMENTAL = "гусёнком", PREPOSITIONAL = "гусёнке") /mob/living/simple_animal/seal name = "seal" - desc = "A beautiful white seal." + desc = "Красивый белый тюлень." icon_state = "seal" icon_living = "seal" icon_dead = "seal_dead" speak = list("Urk?","urk","URK") - speak_emote = list("urks") + speak_emote = list("urks") //idk how to translate it... tts_seed = "Narrator" death_sound = 'sound/creatures/seal_death.ogg' // emote_hear = list("brays") - emote_see = list("flops around") + emote_see = list("хлопает ластами") speak_chance = 1 turns_per_move = 5 nightvision = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat = 6) - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" attacktext = "лягает" health = 50 maxHealth = 50 @@ -492,6 +517,7 @@ GLOBAL_VAR_INIT(chicken_count, 0) gold_core_spawnable = FRIENDLY_SPAWN blood_volume = BLOOD_VOLUME_NORMAL footstep_type = FOOTSTEP_MOB_CLAW + ru_names = list(NOMINATIVE = "тюлень", GENITIVE = "тюленя", DATIVE = "тюленю", ACCUSATIVE = "тюленя", INSTRUMENTAL = "тюленем", PREPOSITIONAL = "тюлене") /mob/living/simple_animal/walrus name = "walrus" @@ -500,44 +526,51 @@ GLOBAL_VAR_INIT(chicken_count, 0) icon_living = "walrus" icon_dead = "walrus_dead" speak = list("Urk?","urk","URK") - speak_emote = list("urks") + speak_emote = list("urks") //idk how to translate it... tts_seed = "Tychus" death_sound = 'sound/creatures/seal_death.ogg' // emote_hear = list("brays") - emote_see = list("flops around") + emote_see = list("хлопает ластами") speak_chance = 1 turns_per_move = 5 nightvision = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat = 6) - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "kicks the" + response_help = "гладит" + response_disarm = "осторожно отодвигает в сторону" + response_harm = "пинает" attacktext = "лягает" health = 50 maxHealth = 50 can_collar = 1 gold_core_spawnable = FRIENDLY_SPAWN blood_volume = BLOOD_VOLUME_NORMAL + ru_names = list(NOMINATIVE = "морж", GENITIVE = "моржа", DATIVE = "моржу", ACCUSATIVE = "моржа", INSTRUMENTAL = "моржом", PREPOSITIONAL = "морже") /obj/item/udder name = "udder" + var/feeded = FALSE /obj/item/udder/New() - create_reagents(50) + create_reagents(80) reagents.add_reagent("milk", 20) . = ..() /obj/item/udder/proc/generateMilk() - if(prob(5)) + var/probability = 5 + if(feeded) + probability = 30 + + if(prob(probability)) reagents.add_reagent("milk", rand(5, 10)) /obj/item/udder/proc/milkAnimal(obj/O, mob/user) var/obj/item/reagent_containers/glass/G = O if(G.reagents.total_volume >= G.volume) - to_chat(user, "[O] is full.") + user.balloon_alert(user, "ёмкость заполнена!") return var/transfered = reagents.trans_to(O, rand(5,10)) if(transfered) - user.visible_message("[user] milks [src] using \the [O].", "You milk [src] using \the [O].") + user.visible_message(span_notice("[user] до[pluralize_ru(user.gender, "ит", "ят")] корову."), \ + span_notice("Вы доите корову.")) else - to_chat(user, "The udder is dry. Wait a bit longer...") + user.balloon_alert(user, "вымя сухое, подождите немного!") diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index aca79da18a1..fa12d739742 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -361,7 +361,7 @@ name = "soda fountain" desc = "A drink fabricating machine, capable of producing many sugary drinks with just one touch." ui_title = "Soda Dispens-o-matic" - dispensable_reagents = list("water", "ice", "milk", "soymilk", "coffee", "tea", "hot_coco", "cola", "spacemountainwind", "dr_gibb", "space_up", + dispensable_reagents = list("water", "ice", "soymilk", "coffee", "tea", "hot_coco", "cola", "spacemountainwind", "dr_gibb", "space_up", "tonic", "sodawater", "lemon_lime", "grapejuice", "sugar", "orangejuice", "lemonjuice", "limejuice", "tomatojuice", "banana", "watermelonjuice", "carrotjuice", "potato", "berryjuice") upgrade_reagents = list("bananahonk", "milkshake", "cafe_latte", "cafe_mocha", "triple_citrus", "icecoffe","icetea") @@ -670,7 +670,7 @@ item_state = "handheld_soda" icon_state = "handheld_soda" is_drink = TRUE - dispensable_reagents = list("water", "ice", "milk", "soymilk", "coffee", "tea", "hot_coco", "cola", "spacemountainwind", "dr_gibb", + dispensable_reagents = list("water", "ice", "soymilk", "coffee", "tea", "hot_coco", "cola", "spacemountainwind", "dr_gibb", "space_up", "tonic", "sodawater", "lemon_lime", "grapejuice", "sugar", "orangejuice", "lemonjuice", "limejuice", "tomatojuice", "banana", "watermelonjuice", "carrotjuice", "potato", "berryjuice", "bananahonk", "milkshake", "cafe_latte", "cafe_mocha", "triple_citrus", "icecoffe", "icetea", "thirteenloko")