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")