Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transfer translations from our skyrat work #49

Merged
merged 15 commits into from
Apr 11, 2024
1 change: 1 addition & 0 deletions .github/workflows/ci_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
branches:
- master
- 'project/**'
- translate # BANDASTATION EDIT ADDITION - check translate branch
merge_group:
branches:
- master
Expand Down
20 changes: 10 additions & 10 deletions code/__DEFINES/antagonists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -78,16 +78,16 @@


// Heretic path defines.
#define PATH_START "Start Path"
#define PATH_SIDE "Side Path"
#define PATH_ASH "Ash Path"
#define PATH_RUST "Rust Path"
#define PATH_FLESH "Flesh Path"
#define PATH_VOID "Void Path"
#define PATH_BLADE "Blade Path"
#define PATH_COSMIC "Cosmic Path"
#define PATH_LOCK "Lock Path"
#define PATH_MOON "Moon Path"
#define PATH_START "Стартовый путь"
#define PATH_SIDE "Вторичный путь"
#define PATH_ASH "Путь пепла"
#define PATH_RUST "Путь ржавчины"
#define PATH_FLESH "Путь плоти"
#define PATH_VOID "Путь пустоты"
#define PATH_BLADE "Путь клинка"
#define PATH_COSMIC "Путь космоса"
#define PATH_LOCK "Путь замка"
#define PATH_MOON "Путь луны"

/// Defines are used in /proc/has_living_heart() to report if the heretic has no heart period, no living heart, or has a living heart.
#define HERETIC_NO_HEART_ORGAN -1
Expand Down
4 changes: 2 additions & 2 deletions code/datums/actions/mobs/open_mob_commands.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/datum/action/cooldown/open_mob_commands
name = "Command Star Gazer"
desc = "Open the command menu for your star gazer."
name = "Приказ звездочету"
desc = "Открывает меню приказов для вашего звездочета."
background_icon_state = "bg_heretic"
overlay_icon_state = "bg_heretic_border"
button_icon = 'icons/mob/actions/actions_ecult.dmi'
Expand Down
56 changes: 28 additions & 28 deletions code/modules/antagonists/heretic/heretic_antag.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
job_rank = ROLE_HERETIC
antag_hud_name = "heretic"
hijack_speed = 0.5
suicide_cry = "THE MANSUS SMILES UPON ME!!"
suicide_cry = "МАНСУС УЛЫБАЕТСЯ МНЕ!!"
preview_outfit = /datum/outfit/heretic
can_assign_self_objectives = TRUE
default_custom_objective = "Turn a department into a testament for your dark knowledge."
Expand Down Expand Up @@ -159,10 +159,10 @@
return
var/confirmed = tgui_alert(
owner.current,
message = "Are you sure? You will no longer be able to Ascend.",
title = "Reject the call?",
buttons = list("Yes", "No"),
) == "Yes"
message = "Вы уверены? Вы не сможете вознестись.",
title = "Отказаться от призыва?",
buttons = list("Да", "Нет"),
) == "Да"
if (!confirmed)
return
return ..()
Expand Down Expand Up @@ -195,7 +195,7 @@

/datum/antagonist/heretic/farewell()
if(!silent)
to_chat(owner.current, span_userdanger("Your mind begins to flare as the otherwordly knowledge escapes your grasp!"))
to_chat(owner.current, span_userdanger("Ваш разум начинает разгораться, когда потусторонние знания ускользают от вас!"))
return ..()

/datum/antagonist/heretic/on_gain()
Expand All @@ -221,7 +221,7 @@

/datum/antagonist/heretic/apply_innate_effects(mob/living/mob_override)
var/mob/living/our_mob = mob_override || owner.current
handle_clown_mutation(our_mob, "Ancient knowledge described to you has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
handle_clown_mutation(our_mob, "Древнее знание, данное вам, позволило преодолеть свою клоунскую натуру, позволяя вам владеть оружием без вреда для себя.")
our_mob.faction |= FACTION_HERETIC

if (!issilicon(our_mob))
Expand Down Expand Up @@ -280,7 +280,7 @@
return

// We shouldn't be able to cast this! Cancel it.
source.balloon_alert(source, "you need a focus!")
source.balloon_alert(source, "нужна фокусировка!")
return SPELL_CANCEL_CAST

/*
Expand Down Expand Up @@ -317,15 +317,15 @@
/datum/antagonist/heretic/proc/try_draw_rune(mob/living/user, turf/target_turf, drawing_time = 20 SECONDS, additional_checks)
for(var/turf/nearby_turf as anything in RANGE_TURFS(1, target_turf))
if(!isopenturf(nearby_turf) || is_type_in_typecache(nearby_turf, blacklisted_rune_turfs))
target_turf.balloon_alert(user, "invalid placement for rune!")
target_turf.balloon_alert(user, "плохое место для руны!")
return

if(locate(/obj/effect/heretic_rune) in range(3, target_turf))
target_turf.balloon_alert(user, "too close to another rune!")
target_turf.balloon_alert(user, "слишком близко к другой руне!")
return

if(drawing_rune)
target_turf.balloon_alert(user, "already drawing a rune!")
target_turf.balloon_alert(user, "уже рисуете руну!")
return

INVOKE_ASYNC(src, PROC_REF(draw_rune), user, target_turf, drawing_time, additional_checks)
Expand All @@ -343,22 +343,22 @@
drawing_rune = TRUE

var/rune_colour = path_to_rune_color[heretic_path]
target_turf.balloon_alert(user, "drawing rune...")
target_turf.balloon_alert(user, "рисуем руну...")
var/obj/effect/temp_visual/drawing_heretic_rune/drawing_effect
if (drawing_time < (10 SECONDS))
drawing_effect = new /obj/effect/temp_visual/drawing_heretic_rune/fast(target_turf, rune_colour)
else
drawing_effect = new(target_turf, rune_colour)

if(!do_after(user, drawing_time, target_turf, extra_checks = additional_checks, hidden = TRUE))
target_turf.balloon_alert(user, "interrupted!")
target_turf.balloon_alert(user, "прервано!")
new /obj/effect/temp_visual/drawing_heretic_rune/fail(target_turf, rune_colour)
qdel(drawing_effect)
drawing_rune = FALSE
return

qdel(drawing_effect)
target_turf.balloon_alert(user, "rune created")
target_turf.balloon_alert(user, "руна создана")
new /obj/effect/heretic_rune/big(target_turf, rune_colour)
drawing_rune = FALSE

Expand Down Expand Up @@ -459,7 +459,7 @@
/datum/antagonist/heretic/proc/passive_influence_gain()
knowledge_points++
if(owner.current.stat <= SOFT_CRIT)
to_chat(owner.current, "[span_hear("You hear a whisper...")] [span_hypnophrase(pick(strings(HERETIC_INFLUENCE_FILE, "drain_message")))]")
to_chat(owner.current, "[span_hear("Вы слышите шепот...")] [span_hypnophrase(pick(strings(HERETIC_INFLUENCE_FILE, "drain_message")))]")
addtimer(CALLBACK(src, PROC_REF(passive_influence_gain)), passive_gain_timer)

/datum/antagonist/heretic/roundend_report()
Expand All @@ -468,26 +468,26 @@
var/succeeded = TRUE

parts += printplayer(owner)
parts += "<b>Sacrifices Made:</b> [total_sacrifices]"
parts += "The heretic's sacrifice targets were: [english_list(all_sac_targets, nothing_text = "No one")]."
parts += "<b>Жертвоприношений сделано:</b> [total_sacrifices]"
parts += "Целями для жертвоприношения были: [english_list(all_sac_targets, nothing_text = "Никто")]."
if(length(objectives))
var/count = 1
for(var/datum/objective/objective as anything in objectives)
if(!objective.check_completion())
succeeded = FALSE
parts += "<b>Objective #[count]</b>: [objective.explanation_text] [objective.get_roundend_success_suffix()]"
parts += "<b>Задача #[count]</b>: [objective.explanation_text] [objective.get_roundend_success_suffix()]"
count++

if(ascended)
parts += span_greentext(span_big("THE HERETIC ASCENDED!"))
parts += span_greentext(span_big("ЕРЕТИК ВОЗНЕССЯ!"))

else
if(succeeded)
parts += span_greentext("The heretic was successful, but did not ascend!")
parts += span_greentext("Еретик преуспел, но не возносся!")
else
parts += span_redtext("The heretic has failed.")
parts += span_redtext("Еретик провалился.")

parts += "<b>Knowledge Researched:</b> "
parts += "<b>Исследованные знания:</b> "

var/list/string_of_knowledge = list()

Expand Down Expand Up @@ -608,13 +608,13 @@
else
string_of_knowledge += knowledge.name

return "<br><b>Research Done:</b><br>[english_list(string_of_knowledge, and_text = ", and ")]<br>"
return "<br><b>Исследованые знания:</b><br>[english_list(string_of_knowledge, and_text = ", and ")]<br>"

/datum/antagonist/heretic/antag_panel_objectives()
. = ..()

. += "<br>"
. += "<i><b>Current Targets:</b></i><br>"
. += "<i><b>Текущие цели:</b></i><br>"
if(LAZYLEN(sac_targets))
for(var/mob/living/carbon/human/target as anything in sac_targets)
. += " - <b>[target.real_name]</b>, the [target.mind?.assigned_role?.title || "human"].<br>"
Expand Down Expand Up @@ -722,7 +722,7 @@

/datum/objective/minor_sacrifice/update_explanation_text()
. = ..()
explanation_text = "Sacrifice at least [target_amount] crewmembers."
explanation_text = "Принесите в жертву не менее [target_amount] членов экипажа."

/datum/objective/minor_sacrifice/check_completion()
var/datum/antagonist/heretic/heretic_datum = owner?.has_antag_datum(/datum/antagonist/heretic)
Expand All @@ -734,7 +734,7 @@
/datum/objective/major_sacrifice
name = "major sacrifice"
target_amount = 1
explanation_text = "Sacrifice 1 head of staff."
explanation_text = "Пожертвуйте главу станции."

/datum/objective/major_sacrifice/check_completion()
var/datum/antagonist/heretic/heretic_datum = owner?.has_antag_datum(/datum/antagonist/heretic)
Expand Down Expand Up @@ -771,7 +771,7 @@

/datum/objective/heretic_research/update_explanation_text()
. = ..()
explanation_text = "Research at least [target_amount] knowledge from the Mansus. You start with [length(GLOB.heretic_start_knowledge)] researched."
explanation_text = "Изучите как минимум [target_amount] знаний Мансуса. Изначально исследовано: [length(GLOB.heretic_start_knowledge)]"

/datum/objective/heretic_research/check_completion()
var/datum/antagonist/heretic/heretic_datum = owner?.has_antag_datum(/datum/antagonist/heretic)
Expand All @@ -782,7 +782,7 @@
/datum/objective/heretic_summon
name = "summon monsters"
target_amount = 2
explanation_text = "Summon 2 monsters from the Mansus into this realm."
explanation_text = "Вызовите двух монстров из Мансуса в этот мир."
/// The total number of summons the objective owner has done
var/num_summoned = 0

Expand Down
2 changes: 1 addition & 1 deletion code/modules/antagonists/heretic/heretic_focus.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
if(!IS_HERETIC(user))
return

examine_list += span_notice("Allows you to cast advanced heretic spells when worn.")
examine_list += span_notice("Позволяет произносить продвинутые заклинания еретиков при ношении.")

/**
* Signal proc for [COMSIG_ITEM_EQUIPPED].
Expand Down
36 changes: 18 additions & 18 deletions code/modules/antagonists/heretic/heretic_knowledge.dm
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@
LAZYREMOVE(created_items, ref)

if(LAZYLEN(created_items) >= limit)
loc.balloon_alert(user, "ritual failed, at limit!")
loc.balloon_alert(user, "ритуал провален, уже лимит!")
return FALSE

return TRUE
Expand Down Expand Up @@ -456,34 +456,34 @@

potential_targets[human_to_check.real_name] = human_to_check

var/chosen_mob = tgui_input_list(user, "Select the victim you wish to curse.", name, sort_list(potential_targets, GLOBAL_PROC_REF(cmp_text_asc)))
var/chosen_mob = tgui_input_list(user, "Выберите жертву, которую вы хотите проклясть.", name, sort_list(potential_targets, GLOBAL_PROC_REF(cmp_text_asc)))
if(isnull(chosen_mob))
return FALSE

var/mob/living/carbon/human/to_curse = potential_targets[chosen_mob]
if(QDELETED(to_curse))
loc.balloon_alert(user, "ritual failed, invalid choice!")
loc.balloon_alert(user, "ритуал провален, некорректный выбор!")
return FALSE

// Yes, you COULD curse yourself, not sure why but you could
if(to_curse == user)
var/are_you_sure = tgui_alert(user, "Are you sure you want to curse yourself?", name, list("Yes", "No"))
if(are_you_sure != "Yes")
var/are_you_sure = tgui_alert(user, "Вы уверены, что хотите проклясть себя?", name, list("Да", "Нет"))
if(are_you_sure != "Да")
return FALSE

var/boosted = (to_curse in boosted_targets)
var/turf/curse_turf = get_turf(to_curse)
if(!boosted && (!is_valid_z_level(curse_turf, loc) || get_dist(curse_turf, loc) > max_range * 1.5)) // Give a bit of leeway on max range for people moving around
loc.balloon_alert(user, "ritual failed, too far!")
loc.balloon_alert(user, "ритуал провален, слишком далеко!")
return FALSE

if(to_curse.can_block_magic(MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, charge_cost = 0))
to_chat(to_curse, span_warning("You feel a ghastly chill, but the feeling passes shortly."))
to_chat(to_curse, span_warning("Вы чувствуете жуткий озноб, но это ощущение вскоре проходит."))
return TRUE

log_combat(user, to_curse, "cursed via heretic ritual", addition = "([boosted ? "Boosted" : ""] [name])")
curse(to_curse, boosted)
to_chat(user, span_hierophant("You cast a[boosted ? "n empowered":""] [name] upon [to_curse.real_name]."))
to_chat(user, span_hierophant("Вы наносите [boosted ? "усиленное":""] [name] на [to_curse.real_name]."))

fingerprints = null
blood_samples = null
Expand Down Expand Up @@ -539,7 +539,7 @@
message_admins("A [summoned.name] is being summoned by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(summoned)].")
var/mob/chosen_one = SSpolling.poll_ghosts_for_target(check_jobban = ROLE_HERETIC, poll_time = 10 SECONDS, checked_target = summoned, ignore_category = poll_ignore_define, alert_pic = summoned, role_name_text = summoned.name)
if(isnull(chosen_one))
loc.balloon_alert(user, "ritual failed, no ghosts!")
loc.balloon_alert(user, "ритуал провален, нет призраков!")
animate(summoned, 0.5 SECONDS, alpha = 0)
QDEL_IN(summoned, 0.6 SECONDS)
return FALSE
Expand Down Expand Up @@ -571,8 +571,8 @@
*/
/datum/heretic_knowledge/knowledge_ritual
name = "Ritual of Knowledge"
desc = "A randomly generated transmutation ritual that rewards knowledge points and can only be completed once."
gain_text = "Everything can be a key to unlocking the secrets behind the Gates. I must be wary and wise."
desc = "Случайно создаваемый ритуал трансмутации, который вознаграждается очками знаний и может быть выполнен только один раз."
gain_text = "Все может стать ключом к разгадке секретов, скрытых за Вратами. Я должен быть осторожным и мудрым."
abstract_parent_type = /datum/heretic_knowledge/knowledge_ritual
mutually_exclusive = TRUE
cost = 1
Expand Down Expand Up @@ -630,15 +630,15 @@

var/list/requirements_string = list()

to_chat(user, span_hierophant("The [name] requires the following:"))
to_chat(user, span_hierophant("Для [name] требуется следующее:"))
for(var/obj/item/path as anything in required_atoms)
var/amount_needed = required_atoms[path]
to_chat(user, span_hypnophrase("[amount_needed] [initial(path.name)]\s..."))
requirements_string += "[amount_needed == 1 ? "":"[amount_needed] "][initial(path.name)]\s"

to_chat(user, span_hierophant("Completing it will reward you [KNOWLEDGE_RITUAL_POINTS] knowledge points. You can check the knowledge in your Researched Knowledge to be reminded."))
to_chat(user, span_hierophant("За его выполнение вы получите [KNOWLEDGE_RITUAL_POINTS] очков знаний. Вы можете проверить знания в ваших \"иследованных знаниях\"."))

desc = "Allows you to transmute [english_list(requirements_string)] for [KNOWLEDGE_RITUAL_POINTS] bonus knowledge points. This can only be completed once."
desc = "Позволяет трансмутировать [english_list(requirements_string)] для получения [KNOWLEDGE_RITUAL_POINTS] бонусных очков знаний. Это можно выполнить только один раз."

/datum/heretic_knowledge/knowledge_ritual/can_be_invoked(datum/antagonist/heretic/invoker)
return !was_completed
Expand All @@ -652,9 +652,9 @@
was_completed = TRUE

var/drain_message = pick(strings(HERETIC_INFLUENCE_FILE, "drain_message"))
to_chat(user, span_boldnotice("[name] completed!"))
to_chat(user, span_boldnotice("[name] завершено!"))
to_chat(user, span_hypnophrase(span_big("[drain_message]")))
desc += " (Completed!)"
desc += " (Завершен!)"
log_heretic_knowledge("[key_name(user)] completed a [name] at [worldtime2text()].")
user.add_mob_memory(/datum/memory/heretic_knowledge_ritual)
return TRUE
Expand Down Expand Up @@ -726,9 +726,9 @@
SSblackbox.record_feedback("tally", "heretic_ascended", 1, route)
log_heretic_knowledge("[key_name(user)] completed their final ritual at [worldtime2text()].")
notify_ghosts(
"[user] has completed an ascension ritual!",
"[user] завершил ритуал вознесения!",
source = user,
header = "A Heretic is Ascending!",
header = "Еретик вознесся!",
)
return TRUE

Expand Down
Loading
Loading