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

mommy #46

Open
wants to merge 24 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -239,3 +239,5 @@ define_sanity_output.txt
# ezdb
/db/
/config/ezdb.txt

TODO
2 changes: 1 addition & 1 deletion code/__DEFINES/basketball.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/// You hit exhaustion when you use 100 stamina
#define STAMINA_COST_SHOOTING 10 //! shooting with RMB drains stamina (but LMB does not)
#define STAMINA_COST_SHOOTING 10 //! shooting with ПКМ drains stamina (but LMB does not)
#define STAMINA_COST_DUNKING 20 //! dunking is more strenous than shooting
#define STAMINA_COST_DUNKING_MOB 30 //! dunking another person is harder
#define STAMINA_COST_SPINNING 15 //! spin emote uses stamina while holding ball
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/combat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ GLOBAL_LIST_INIT(arm_zones, list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
// Defines for combo attack component
/// LMB Attack
#define LEFT_ATTACK "Left Attack"
/// RMB Attack
/// ПКМ Attack
#define RIGHT_ATTACK "Right Attack"
/// Steps for the combo
#define COMBO_STEPS "steps"
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/dcs/signals/signals_screentips.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/// A "Type-A" contextual screentip interaction.
/// These are used for items that are defined by their behavior. They define their contextual text within *themselves*,
/// not in their targets.
/// Examples include syringes (LMB to inject, RMB to draw) and health analyzers (LMB to scan health/wounds, RMB for chems)
/// Examples include syringes (LMB to inject, ПКМ to draw) and health analyzers (LMB to scan health/wounds, ПКМ for chems)
/// Items can override `add_item_context()`, and call `register_item_context()` in order to easily connect to this.
/// Called on /obj/item with a mutable screentip context list, the hovered target, and the mob hovering.
/// A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,8 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list(

#define isstack(A) (istype(A, /obj/item/stack))

#define isstacksheet(A) (istype(A, /obj/item/stack/sheet))

#define isgrenade(A) (istype(A, /obj/item/grenade))

#define islandmine(A) (istype(A, /obj/effect/mine))
Expand Down
16 changes: 16 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,22 @@
#define NUTRITION_LEVEL_START_MIN 250
#define NUTRITION_LEVEL_START_MAX 400

//Humans get thirsty
#define HYDRATION_LEVEL_OVERHYDRATED 300
#define HYDRATION_LEVEL_NORMAL 40
#define HYDRATION_LEVEL_THIRSTY 20
#define HYDRATION_LEVEL_DEHYDRATED 0
#define HYDRATION_LEVEL_START_MIN 150
#define HYDRATION_LEVEL_START_MAX 200
#define HYDRATION_LEVEL_MIN_CAP -10
#define HYDRATION_LOSS_PER_LIFE 0.15
#define HYDRATION_LOSS_PER_MOVE 0.0025
#define DRINK_HYDRATION_FACTOR_HIGH 1.5
#define DRINK_HYDRATION_FACTOR_MEDIUM 1
#define DRINK_HYDRATION_FACTOR_LOW 0.5
#define DRINK_HYDRATION_FACTOR_SALTY -1
#define HYDRATION_STUTTER_RATE 15

//Disgust levels for humans
#define DISGUST_LEVEL_MAXEDOUT 150
#define DISGUST_LEVEL_DISGUSTED 75
Expand Down
12 changes: 6 additions & 6 deletions code/__DEFINES/screentips.dm
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
/// Context applied to LMB actions
#define SCREENTIP_CONTEXT_LMB "LMB"

/// Context applied to RMB actions
#define SCREENTIP_CONTEXT_RMB "RMB"
/// Context applied to ПКМ actions
#define SCREENTIP_CONTEXT_RMB "ПКМ"

/// Context applied to Shift-LMB actions
#define SCREENTIP_CONTEXT_SHIFT_LMB "Shift-LMB"

/// Context applied to Ctrl-LMB actions
#define SCREENTIP_CONTEXT_CTRL_LMB "Ctrl-LMB"

/// Context applied to Ctrl-RMB actions
#define SCREENTIP_CONTEXT_CTRL_RMB "Ctrl-RMB"
/// Context applied to Ctrl-ПКМ actions
#define SCREENTIP_CONTEXT_CTRL_RMB "Ctrl-ПКМ"

/// Context applied to Alt-LMB actions
#define SCREENTIP_CONTEXT_ALT_LMB "Alt-LMB"

/// Context applied to Alt-RMB actions
#define SCREENTIP_CONTEXT_ALT_RMB "Alt-RMB"
/// Context applied to Alt-ПКМ actions
#define SCREENTIP_CONTEXT_ALT_RMB "Alt-ПКМ"

/// Context applied to Ctrl-Shift-LMB actions
#define SCREENTIP_CONTEXT_CTRL_SHIFT_LMB "Ctrl-Shift-LMB"
Expand Down
4 changes: 3 additions & 1 deletion code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NO_AUGMENTS "no_augments"
/// This carbon doesn't get hungry
#define TRAIT_NOHUNGER "no_hunger"
/// This carbon doesn't get thirsty
#define TRAIT_NOHYDRATION "no_hydration"
/// This carbon doesn't bleed
#define TRAIT_NOBLOOD "noblood"
/// This just means that the carbon will always have functional liverless metabolism
Expand Down Expand Up @@ -1347,4 +1349,4 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai

/// Adminabuse
#define TRAIT_ULTRA "trait_ultra"
#define ULTRA_TRAIT_LIST list(TRAIT_ULTRA, TRAIT_NO_SLIP_ALL, TRAIT_RESISTHEAT, TRAIT_RESISTCOLD, TRAIT_RESISTHEATHANDS, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_NOHUNGER, TRAIT_NOBREATH, TRAIT_NOFIRE, TRAIT_RADIMMUNE)
#define ULTRA_TRAIT_LIST list(TRAIT_ULTRA, TRAIT_NO_SLIP_ALL, TRAIT_LAVA_IMMUNE, TRAIT_RESISTHEAT, TRAIT_RESISTCOLD, TRAIT_RESISTHEATHANDS, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_NOHUNGER, TRAIT_NOHYDRATION, TRAIT_NOBREATH, TRAIT_NOFIRE, TRAIT_RADIMMUNE)
8 changes: 8 additions & 0 deletions code/__HELPERS/reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@

///Returns a list of chemical_reaction datums that have the input STRING as a product
/proc/get_reagent_type_from_product_string(string)
var/input = lowertext(string)
var/input_reagent = replacetext(lowertext(string), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name
if (isnull(input_reagent))
return
Expand All @@ -164,6 +165,13 @@
input_reagent = shortcuts[input_reagent]
else
input_reagent = find_reagent(input_reagent)

if (!input_reagent)
input_reagent = find_reagent_object_from_type(input)

if (!input_reagent)
return

return input_reagent

///Returns reagent datum from typepath
Expand Down
20 changes: 20 additions & 0 deletions code/__HELPERS/text.dm
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,26 @@
. = copytext_char(t, 1, 2)
return uppertext(.) + copytext_char(t, 2)

/proc/uncapitalize(t)
. = t
if(isatom(t))
var/atom/A = t
t = A.name
. = copytext_char(t, 1, 2)
return lowertext(.) + copytext_char(t, 2)

/proc/get_ending(amount, list/endings)
if (length(endings) != 3)
throw("get_ending requires a list of 3 endings")

if (amount % 10 == 1 && amount % 100 != 11)
return endings[1]

if (amount % 10 >= 2 && amount % 10 <= 4 && (amount % 100 < 10 || amount % 100 >= 20))
return endings[2]

return endings[3]

///Returns a string with the first letter of each word capitialized
/proc/full_capitalize(input)
var/regex/first_letter = new(@"[^A-z]*?([A-z]*)", "g")
Expand Down
2 changes: 1 addition & 1 deletion code/_globalvars/lists/reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -190,4 +190,4 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagentlist())
for (var/datum/reagent/R as anything in subtypesof(/datum/reagent))
var/name = initial(R.name)
if (length(name))
.[ckey(name)] = R
.[lowertext(name)] = R
5 changes: 0 additions & 5 deletions code/_globalvars/phobias.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ GLOBAL_LIST_INIT(phobia_types, sort_list(list(
"doctors",
"falling",
"greytide",
"guns",
"heresy",
"insects",
"lizards",
"robots",
Expand All @@ -37,11 +35,8 @@ GLOBAL_LIST_INIT(phobia_regexes, list(
"doctors" = construct_phobia_regex("doctors"),
"falling" = construct_phobia_regex("falling"),
"greytide" = construct_phobia_regex("greytide"),
"guns" = construct_phobia_regex("guns"),
"heresy" = construct_phobia_regex("heresy"),
"insects" = construct_phobia_regex("insects"),
"lizards" = construct_phobia_regex("lizards"),
"ocky icky" = construct_phobia_regex("ocky icky"),
"robots" = construct_phobia_regex("robots"),
"security" = construct_phobia_regex("security"),
"skeletons" = construct_phobia_regex("skeletons"),
Expand Down
15 changes: 15 additions & 0 deletions code/_onclick/hud/alert.dm
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,21 @@
desc = "СОВЕРШЕННО ОТВРАТИТЕЛЬНО'"
icon_state = "gross3"

/atom/movable/screen/alert/overhydrated
name = "Перепил"
desc = "Слишком много воды!"
icon_state = "overhydrated"

/atom/movable/screen/alert/thirsty
name = "Жажда"
desc = "Хочется пить."
icon_state = "thirsty"

/atom/movable/screen/alert/dehydrated
name = "Иссушение"
desc = "Надо срочно найти воды."
icon_state = "dehydrated"

/atom/movable/screen/alert/hot
name = "Слишком жарко"
desc = "Я почти горю от жара! Стоит перейти в более прохладное место и снять любую изолирующую одежду, например, пожарный костюм."
Expand Down
12 changes: 6 additions & 6 deletions code/controllers/subsystem/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,7 @@ SUBSYSTEM_DEF(job)
JobDebug("Player rejected :[player]")
unassigned -= player
if(!run_divide_occupation_pure)
to_chat(player, "<span class='infoplain'><b>You have failed to qualify for any job you desired.</b></span>")
to_chat(player, "<b>Вас не приняли ни на одну должность, которую вы хотели занять.</b>")
player.ready = PLAYER_NOT_READY


Expand Down Expand Up @@ -792,12 +792,12 @@ SUBSYSTEM_DEF(job)
)

/obj/item/paper/paperslip/corporate/fluff/spare_id_safe_code
name = "Nanotrasen-Approved Spare ID Safe Code"
desc = "Proof that you have been approved for Captaincy, with all its glory and all its horror."
name = "Запасные коды от сейфа"
desc = "Доказательство того, что вы точно заслужили должность Капитана этой станции."

/obj/item/paper/paperslip/corporate/fluff/spare_id_safe_code/Initialize(mapload)
var/safe_code = SSid_access.spare_id_safe_code
default_raw_text = "Captain's Spare ID safe code combination: [safe_code ? safe_code : "\[REDACTED\]"]<br><br>The spare ID can be found in its dedicated safe on the bridge.<br><br>If your job would not ordinarily have Head of Staff access, your ID card has been specially modified to possess it."
default_raw_text = "Комбинацией является: [safe_code ? safe_code : "\[ДАННЫЕ УДАЛЕНЫ\]"]<br><br>Сейф может быть обнаружен на мостике, либо в каюте капитана.<br><br>Если должность не позволяет пройти туда, будет добавлен специальный доступ."
return ..()

/obj/item/paper/paperslip/corporate/fluff/emergency_spare_id_safe_code
Expand Down Expand Up @@ -825,9 +825,9 @@ SUBSYSTEM_DEF(job)
var/where = new_captain.equip_in_one_of_slots(paper, slots, FALSE, indirect_action = TRUE) || "at your feet"

if(acting_captain)
to_chat(new_captain, span_notice("Due to your position in the chain of command, you have been promoted to Acting Captain. You can find in important note about this [where]."))
to_chat(new_captain, span_notice("Учитывая мою должность на станции, меня назначили её Капитаном. Важный документ подкинули в [ru_parse_zone(where)]."))
else
to_chat(new_captain, span_notice("You can find the code to obtain your spare ID from the secure safe on the Bridge [where]."))
to_chat(new_captain, span_notice("Сейф можно найти в капитанской каюте, либо на мостике. Важный документ положили в [ru_parse_zone(where)]."))
new_captain.add_mob_memory(/datum/memory/key/captains_spare_code, safe_code = SSid_access.spare_id_safe_code)

// Force-give their ID card bridge access.
Expand Down
8 changes: 0 additions & 8 deletions code/datums/components/crafting/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,6 @@
result = /obj/item/paper_bin/bundlenatural
category = CAT_MISC

/datum/crafting_recipe/skeleton_key
name = "Скелетный ключ"
time = 3 SECONDS
reqs = list(/obj/item/stack/sheet/bone = 5)
result = /obj/item/skeleton_key
always_available = FALSE
category = CAT_MISC

/datum/crafting_recipe/coffee_cartridge
name = "Картридж Бутлег-кофе"
result = /obj/item/coffee_cartridge/bootleg
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/manual_heart.dm
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@

///Action to pump your heart. Cooldown will always be set to 1 second less than the pump delay.
/datum/action/cooldown/manual_heart
name = "Pump your blood"
name = "Качать кровь"
cooldown_time = 2 SECONDS
check_flags = NONE
button_icon = 'icons/obj/medical/organs/organs.dmi'
Expand Down
10 changes: 7 additions & 3 deletions code/datums/components/material/material_container.dm
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,11 @@

//insert the item
var/item_name = target.name
var/item_skloname
if (isstacksheet(target))
var/obj/item/stack/sheet/target_ = target
item_skloname = target_.skloname

var/inserted = insert_item(target, 1, mat_container_flags, context)
if(inserted > 0)
. += inserted
Expand All @@ -354,11 +359,10 @@
//was this the original item in the players hand? put what's left back in the player's hand
if(!isnull(original_item))
user.put_in_active_hand(original_item)
message = "Only [inserted] sheets of [item_name] was consumed by [parent]."

message = "Всего [inserted] лист[get_ending(inserted, list("", "а", "ов"))] [(isstacksheet(target)) ? item_skloname : item_name] было поглощено [parent]."
//collect all messages to print later
if(!message)
message = "[item_name] worth [inserted] sheets of material was consumed by [parent]."
message = "[inserted] лист[get_ending(inserted, list("", "а", "ов"))] [(isstacksheet(target)) ? item_skloname : item_name] был[inserted == 1 ? "" : "о"] поглощено [parent]."
if(inserts[message])
inserts[message] += 1
else
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/material/remote_materials.dm
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ handles linking back and forth.
silo.updateUsrDialog()
mat_container = new_container
RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, TYPE_PROC_REF(/datum/component/remote_materials, SiloAttackBy))
to_chat(user, span_notice("Подключаю [parent] к [silo] используя буффер мультитула."))
to_chat(user, span_notice("Подключаю [parent] к [silo] используя буфер мультитула."))
return COMPONENT_BLOCK_TOOL_ATTACK

/// returns TRUE if this connection put on hold by the silo
Expand Down
Loading
Loading