|
82 | 82 | if(istype(I, /obj/item/cardhand))
|
83 | 83 | var/obj/item/cardhand/cardhand = I
|
84 | 84 | if(cardhand.parentdeck != src)
|
85 |
| - to_chat(user, span_warning("Вы не можете смешивать карты из разных колод.")) |
| 85 | + balloon_alert(user, "карты из разных колод!") |
86 | 86 | return ATTACK_CHAIN_PROCEED
|
87 | 87 | if(LAZYLEN(cardhand.cards) > 1)
|
88 | 88 | var/confirm = tgui_alert(user, "Вы уверены, что хотите вернуть [LAZYLEN(cardhand.cards)] [LAZYLEN(cardhand.cards) < 5 ? "карты" : "карт"] в колоду?", "Вернуть руку?", list("Да", "Нет"))
|
|
100 | 100 |
|
101 | 101 | /obj/item/deck/examine(mob/user)
|
102 | 102 | . = ..()
|
103 |
| - . += span_notice("В ней [LAZYLEN(cards)] [declension_ru(LAZYLEN(cards), "карта", "карты", "карт")].") |
| 103 | + . += span_notice("В колоде [LAZYLEN(cards)] [declension_ru(LAZYLEN(cards), "карта", "карты", "карт")].") |
104 | 104 |
|
105 | 105 | /obj/item/deck/attack_hand(mob/user)
|
106 | 106 | draw_card(user)
|
|
124 | 124 |
|
125 | 125 | /datum/action/item_action/deal_card
|
126 | 126 | name = "Раздать карту"
|
127 |
| - desc = "Раздать одну карту человеку рядом с вами." |
| 127 | + desc = "Раздать одну карту игроку рядом с вами." |
128 | 128 | button_icon_state = "deal_card"
|
129 | 129 | use_itemicon = FALSE
|
130 | 130 |
|
|
138 | 138 |
|
139 | 139 | /datum/action/item_action/deal_card_multi
|
140 | 140 | name = "Раздать несколько карт"
|
141 |
| - desc = "Раздать несколько карт человеку рядом с вами." |
| 141 | + desc = "Раздать несколько карт игроку рядом с вами." |
142 | 142 | button_icon_state = "deal_card_multi"
|
143 | 143 | use_itemicon = FALSE
|
144 | 144 |
|
|
170 | 170 | return
|
171 | 171 |
|
172 | 172 | if(!LAZYLEN(cards))
|
173 |
| - to_chat(user, span_notice("В колоде нет карт.")) |
| 173 | + balloon_alert(user, "в колоде нет карт!") |
174 | 174 | return
|
175 | 175 |
|
176 | 176 | var/obj/item/cardhand/cardhand = user.is_type_in_hands(/obj/item/cardhand)
|
177 | 177 | if(cardhand && (cardhand.parentdeck != src))
|
178 |
| - to_chat(user, span_warning("Вы не можете смешивать карты из разных колод!")) |
| 178 | + balloon_alert(user, "карты из разных колод!") |
179 | 179 | return
|
180 | 180 |
|
181 | 181 | if(!cardhand)
|
|
189 | 189 | cardhand.parentdeck = src
|
190 | 190 | cardhand.update_values()
|
191 | 191 | cardhand.update_appearance(UPDATE_NAME|UPDATE_DESC|UPDATE_OVERLAYS)
|
192 |
| - user.visible_message(span_notice("[user] тянет карту."), span_notice("Вы тянете карту.")) |
193 |
| - to_chat(user, span_notice("Это [play_card].")) |
| 192 | + user.visible_message( |
| 193 | + span_notice("[user] тян[pluralize_ru(user.gender, "ет", "ут")] карту из колоды."), |
| 194 | + span_notice("Вы тянете карту из колоды. Это <b>[play_card]</b>.") |
| 195 | + ) |
194 | 196 |
|
195 | 197 |
|
196 | 198 | /obj/item/deck/proc/deal_card(mob/user)
|
197 | 199 | if(user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user))
|
198 | 200 | return
|
199 | 201 |
|
200 | 202 | if(!LAZYLEN(cards))
|
201 |
| - to_chat(user, span_warning("В колоде нет карт!")) |
| 203 | + balloon_alert(user, "в колоде нет карт!") |
202 | 204 | return
|
203 | 205 |
|
204 | 206 | var/list/players = list()
|
|
207 | 209 | players += player
|
208 | 210 |
|
209 | 211 | if(!LAZYLEN(players))
|
210 |
| - to_chat(user, span_warning("Рядом нет игроков!")) |
| 212 | + balloon_alert(user, "рядом нет игроков!") |
211 | 213 | return
|
212 | 214 |
|
213 | 215 | var/mob/living/carbon/target = tgui_input_list(user, "Кому вы хотите раздать карту?", "Раздать карту", players)
|
214 | 216 | if(!user || !src || !target || !Adjacent(user) || get_dist(user, target) > 3 || target.incapacitated() || HAS_TRAIT(target, TRAIT_HANDS_BLOCKED))
|
215 | 217 | return
|
216 | 218 |
|
217 | 219 | if(!LAZYLEN(cards))
|
218 |
| - to_chat(user, span_warning("Колода пуста!")) |
| 220 | + balloon_alert(user, "колода пуста!") |
219 | 221 | return
|
220 | 222 |
|
221 | 223 | deal_at(user, target, 1)
|
|
226 | 228 | return
|
227 | 229 |
|
228 | 230 | if(!LAZYLEN(cards))
|
229 |
| - to_chat(user, span_warning("В колоде нет карт!")) |
| 231 | + balloon_alert(user, "в колоде нет карт!") |
230 | 232 | return
|
231 | 233 |
|
232 |
| - var/dcard = tgui_input_number(usr, "Сколько карт вы хотите раздать? Вы можете раздать до [LAZYLEN(cards)] [declension_ru(LAZYLEN(cards), "карты", "карт", "карт")].", "Раздать карты", 1, LAZYLEN(cards), 1) |
| 234 | + var/dcard = tgui_input_number(usr, "Сколько карт вы хотите раздать? Вы можете раздать до <b>[LAZYLEN(cards)] [declension_ru(LAZYLEN(cards), "карты", "карт", "карт")]</b>.", "Раздать карты", 1, LAZYLEN(cards), 1) |
233 | 235 | if(isnull(dcard) || !LAZYLEN(cards) || !Adjacent(user) || user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
|
234 | 236 | return
|
235 | 237 |
|
|
241 | 243 | players += player
|
242 | 244 |
|
243 | 245 | if(!LAZYLEN(players))
|
244 |
| - to_chat(user, span_warning("Вы решили раздать <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")], но вокруг нет игроков!")) |
| 246 | + to_chat(user, span_warning("Вы хотите раздать <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")], но вокруг нет игроков!")) |
245 | 247 | return
|
246 |
| - to_chat(user, span_notice("Вы решили раздать <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")].")) |
| 248 | + to_chat(user, span_notice("Вы раздаёте <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")].")) |
247 | 249 |
|
248 | 250 | var/mob/living/carbon/target = tgui_input_list(user, "Кому вы хотите раздать [dcard] [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")]?", "Раздать карты", players)
|
249 | 251 | if(!user || !src || !target || !Adjacent(user) || get_dist(user, target) > 3 || target.incapacitated() || HAS_TRAIT(target, TRAIT_HANDS_BLOCKED))
|
250 | 252 | return
|
251 | 253 |
|
252 | 254 | if(LAZYLEN(cards) < dcard)
|
253 |
| - to_chat(user, span_warning("В колоде больше нет достаточного количества карт!")) |
| 255 | + balloon_alert(user, "в колоде недостаточно карт!") |
254 | 256 | return
|
255 | 257 |
|
256 | 258 | deal_at(user, target, dcard)
|
|
267 | 269 | cardhand.concealed = TRUE
|
268 | 270 | cardhand.update_appearance(UPDATE_NAME|UPDATE_DESC|UPDATE_OVERLAYS)
|
269 | 271 | if(user == target)
|
270 |
| - user.visible_message(span_notice("[user] раздает себе <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")].")) |
| 272 | + user.visible_message( |
| 273 | + span_notice("[user] разда[pluralize_ru(user.gender, "ёт", "ют")] себе <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")]."), |
| 274 | + span_notice("Вы раздаёте себе <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")].") |
| 275 | + ) |
271 | 276 | else
|
272 |
| - user.visible_message(span_notice("[user] раздает <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")] [target].")) |
| 277 | + user.visible_message( |
| 278 | + span_notice("[user] разда[pluralize_ru(user.gender, "ёт", "ют")] [target] <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")]."), |
| 279 | + span_notice("Вы раздаёте [target] <b>[dcard]</b> [declension_ru(LAZYLEN(cards), "карту", "карты", "карт")].") |
| 280 | + ) |
273 | 281 | INVOKE_ASYNC(cardhand, TYPE_PROC_REF(/atom/movable, throw_at), get_step(target, target.dir), 3, 1, user)
|
274 | 282 |
|
275 | 283 |
|
|
288 | 296 |
|
289 | 297 | COOLDOWN_START(src, shuffle_cooldown, 1 SECONDS)
|
290 | 298 | cards = shuffle(cards)
|
291 |
| - user.visible_message(span_notice("[user] тасует [declent_ru(ACCUSATIVE)].")) |
| 299 | + user.visible_message( |
| 300 | + span_notice("[user] тасу[pluralize_ru(user.gender, "ет", "ют")] [declent_ru(ACCUSATIVE)]."), |
| 301 | + span_notice("Вы тасуете [declent_ru(ACCUSATIVE)]."), |
| 302 | + ) |
292 | 303 | playsound(user, 'sound/items/cardshuffle.ogg', 50, TRUE)
|
293 | 304 |
|
294 | 305 |
|
|
303 | 314 |
|
304 | 315 | if(user.put_in_hands(src, ignore_anim = FALSE))
|
305 | 316 | add_fingerprint(user)
|
306 |
| - user.visible_message(span_notice("[user] поднимает [src.declent_ru(ACCUSATIVE)].")) |
| 317 | + user.visible_message( |
| 318 | + span_notice("[user] поднима[pluralize_ru(user.gender, "ет", "ют")] [declent_ru(ACCUSATIVE)]."), |
| 319 | + span_notice("Вы поднимаете [declent_ru(ACCUSATIVE)].") |
| 320 | + ) |
307 | 321 | return TRUE
|
308 | 322 |
|
309 | 323 | return FALSE
|
|
335 | 349 |
|
336 | 350 | /obj/item/cardhand
|
337 | 351 | name = "hand of cards"
|
| 352 | + desc = "Несколько игральных карт." |
338 | 353 | ru_names = list(
|
339 | 354 | NOMINATIVE = "игральные карты",
|
340 | 355 | GENITIVE = "игральных карт",
|
|
343 | 358 | INSTRUMENTAL = "игральными картами",
|
344 | 359 | PREPOSITIONAL = "игральных картах"
|
345 | 360 | )
|
346 |
| - desc = "Несколько игральных карт." |
| 361 | + gender = PLURAL |
347 | 362 | icon = 'icons/obj/playing_cards.dmi'
|
348 | 363 | icon_state = "empty"
|
349 | 364 | w_class = WEIGHT_CLASS_TINY
|
|
380 | 395 | /obj/item/cardhand/attackby(obj/item/I, mob/user, params)
|
381 | 396 | if(is_pen(I))
|
382 | 397 | if(LAZYLEN(cards) > 1)
|
383 |
| - to_chat(user, span_warning("Вы можете писать только на одной карте за раз.")) |
| 398 | + balloon_alert(user, "одна карта за раз!") |
384 | 399 | return ATTACK_CHAIN_PROCEED
|
385 | 400 | var/datum/playingcard/card = cards[1]
|
386 | 401 | if(card.name != "Blank Card")
|
387 |
| - to_chat(user, span_notice("Вы не можете писать на этой карте.")) |
| 402 | + balloon_alert(user, "нельзя писать на этой карте!") |
388 | 403 | return ATTACK_CHAIN_PROCEED
|
389 | 404 | var/rename = rename_interactive(user, card, use_prefix = FALSE, actually_rename = FALSE)
|
390 | 405 | if(rename && card.name == "Blank Card")
|
|
397 | 412 | if(istype(I, /obj/item/cardhand))
|
398 | 413 | var/obj/item/cardhand/cardhand = I
|
399 | 414 | if(cardhand.parentdeck != parentdeck)
|
400 |
| - to_chat(user, span_notice("Вы не можете смешивать карты из других колод!")) |
| 415 | + balloon_alert(user, "карты из разных колод!") |
401 | 416 | return ATTACK_CHAIN_PROCEED
|
402 | 417 | cardhand.concealed = concealed
|
403 | 418 | cards += cardhand.cards
|
|
419 | 434 | /obj/item/cardhand/proc/turn_hand(mob/user)
|
420 | 435 | concealed = !concealed
|
421 | 436 | update_appearance(UPDATE_NAME|UPDATE_DESC|UPDATE_OVERLAYS)
|
422 |
| - user.visible_message(span_notice("[user] [concealed ? "скрывает" : "показывает"] свою руку с картами.")) |
| 437 | + user.visible_message( |
| 438 | + span_notice("[user] [concealed ? "скрыва" : "показыва"][pluralize_ru(user.gender, "ет", "ют")] свою руку с картами."), |
| 439 | + span_notice("Вы [concealed ? "скрыва" : "показыва"]ете свою руку с картами.") |
| 440 | + ) |
423 | 441 |
|
424 | 442 | /obj/item/cardhand/ui_interact(mob/user, datum/tgui/ui = null)
|
425 | 443 | ui = SStgui.try_update_ui(user, src, ui)
|
|
522 | 540 | return
|
523 | 541 |
|
524 | 542 | user.visible_message(
|
525 |
| - span_notice("[user] тянет карту из своей руки."), |
526 |
| - span_notice("Вы берёте [pickedcard] из своей руки."), |
| 543 | + span_notice("[user] тян[pluralize_ru(user.gender, "ет", "ют")] карту из своей руки."), |
| 544 | + span_notice("Вы тянете [pickedcard] из своей руки."), |
527 | 545 | )
|
528 | 546 | pickedcard = null
|
529 | 547 |
|
|
548 | 566 | return
|
549 | 567 |
|
550 | 568 | var/maxcards = min(LAZYLEN(cards), 5)
|
551 |
| - var/discards = tgui_input_number(usr, "Сколько карт вы хотите сбросить? Вы можете сбросить до [maxcards] карт[maxcards == 1 ? "ы" : ""].", "Сбросить карты", max_value = maxcards) |
| 569 | + var/discards = tgui_input_number(usr, "Сколько карт вы хотите сбросить? Вы можете сбросить до <b>[maxcards]</b> карт[maxcards == 1 ? "ы" : ""].", "Сбросить карты", max_value = maxcards) |
552 | 570 | if(discards > maxcards || user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
|
553 | 571 | return
|
554 | 572 |
|
|
582 | 600 | update_appearance(UPDATE_NAME|UPDATE_DESC|UPDATE_OVERLAYS)
|
583 | 601 | if(LAZYLEN(cardhand.cards))
|
584 | 602 | user.visible_message(
|
585 |
| - span_notice("[user] кладёт [discarding]."),, |
| 603 | + span_notice("[user] клад[pluralize_ru(user.gender, "ёт", "ют")] [discarding]."),, |
586 | 604 | span_notice("Вы кладёте [discarding]."),
|
587 | 605 | )
|
588 | 606 | cardhand.loc = get_step(user, user.dir)
|
|
0 commit comments