diff --git a/code/__DEFINES/~RUtgmc_defines/xeno.dm b/code/__DEFINES/~RUtgmc_defines/xeno.dm
index 06579557f0f..7618e236fea 100644
--- a/code/__DEFINES/~RUtgmc_defines/xeno.dm
+++ b/code/__DEFINES/~RUtgmc_defines/xeno.dm
@@ -17,17 +17,17 @@
//List of weed images
GLOBAL_LIST_INIT(weed_images_list, list(
- WEED = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = WEED),
- STICKY_WEED = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = STICKY_WEED),
- RESTING_WEED = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = RESTING_WEED),
- AUTOMATIC_WEEDING = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = AUTOMATIC_WEEDING)
+ WEED = image('icons/Xeno/actions.dmi', icon_state = WEED),
+ STICKY_WEED = image('icons/Xeno/actions.dmi', icon_state = STICKY_WEED),
+ RESTING_WEED = image('icons/Xeno/actions.dmi', icon_state = RESTING_WEED),
+ AUTOMATIC_WEEDING = image('icons/Xeno/actions.dmi', icon_state = AUTOMATIC_WEEDING)
))
//List of pheromone images
GLOBAL_LIST_INIT(pheromone_images_list, list(
- AURA_XENO_RECOVERY = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = AURA_XENO_RECOVERY),
- AURA_XENO_WARDING = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = AURA_XENO_WARDING),
- AURA_XENO_FRENZY = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = AURA_XENO_FRENZY),
+ AURA_XENO_RECOVERY = image('icons/Xeno/actions.dmi', icon_state = AURA_XENO_RECOVERY),
+ AURA_XENO_WARDING = image('icons/Xeno/actions.dmi', icon_state = AURA_XENO_WARDING),
+ AURA_XENO_FRENZY = image('icons/Xeno/actions.dmi', icon_state = AURA_XENO_FRENZY),
))
//List of plant images
@@ -40,17 +40,17 @@ GLOBAL_LIST_INIT(plant_images_list, list(
//List of resin structure images
GLOBAL_LIST_INIT(resin_images_list, list(
- RESIN_WALL = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = RESIN_WALL),
- STICKY_RESIN = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = STICKY_RESIN),
- RESIN_DOOR = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = RESIN_DOOR),
- ALIEN_NEST = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = ALIEN_NEST)
+ RESIN_WALL = image('icons/Xeno/actions.dmi', icon_state = RESIN_WALL),
+ STICKY_RESIN = image('icons/Xeno/actions.dmi', icon_state = STICKY_RESIN),
+ RESIN_DOOR = image('icons/Xeno/actions.dmi', icon_state = RESIN_DOOR),
+ ALIEN_NEST = image('icons/Xeno/actions.dmi', icon_state = ALIEN_NEST)
))
/* RU TGMC EDIT
//List of puppeteer pheromone images
GLOBAL_LIST_INIT(puppeteer_phero_images_list, list(
- AURA_XENO_BLESSFURY = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = "Fury"),
- AURA_XENO_BLESSWARDING = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = "Warding"),
- AURA_XENO_BLESSFRENZY = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = "Frenzy"),
+ AURA_XENO_BLESSFURY = image('icons/Xeno/actions.dmi', icon_state = "Fury"),
+ AURA_XENO_BLESSWARDING = image('icons/Xeno/actions.dmi', icon_state = "Warding"),
+ AURA_XENO_BLESSFRENZY = image('icons/Xeno/actions.dmi', icon_state = "Frenzy"),
))
RU TGMC EDIT*/
GLOBAL_LIST_INIT(panther_toxin_type_list, list(
diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm
index 65eb16b1b36..8564399cdb8 100644
--- a/code/__HELPERS/matrices.dm
+++ b/code/__HELPERS/matrices.dm
@@ -191,6 +191,8 @@ round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), ro
return output
+
+
//Returns a matrix multiplication of A with B
/proc/color_matrix_multiply(list/A, list/B)
if(!istype(A) || !istype(B))
@@ -207,3 +209,110 @@ round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), ro
for(x in 1 to 4)
output[offset+x] = round(A[offset+1]*B[x] + A[offset+2]*B[x+4] + A[offset+3]*B[x+8] + A[offset+4]*B[x+12]+(y==5?B[x+16]:0), 0.001)
return output
+
+//word of warning: using a matrix like this as a color value will simplify it back to a string after being set
+/proc/color_hex2color_matrix(string)
+ var/length = length(string)
+ if((length != 7 && length != 9) || length != length_char(string))
+ return color_matrix_identity()
+ var/r = hex2num(copytext(string, 2, 4))/255
+ var/g = hex2num(copytext(string, 4, 6))/255
+ var/b = hex2num(copytext(string, 6, 8))/255
+ var/a = 1
+ if(length == 9)
+ a = hex2num(copytext(string, 8, 10))/255
+ if(!isnum(r) || !isnum(g) || !isnum(b) || !isnum(a))
+ return color_matrix_identity()
+ return list(r, 0, 0, 0, 0, g, 0, 0, 0, 0, b, 0, 0, 0, 0, a, 0, 0, 0, 0)
+
+
+///Converts a hex color string to a color matrix.
+/proc/color_matrix_from_string(string)
+ if(!string || !istext(string))
+ return color_matrix_identity()
+
+ var/string_r = hex2num(copytext(string, 2, 4)) / 255
+ var/string_g = hex2num(copytext(string, 4, 6)) / 255
+ var/string_b = hex2num(copytext(string, 6, 8)) / 255
+
+ return list(string_r, 0, 0, 0, 0, string_g, 0, 0, 0, 0, string_b, 0, 0, 0, 0, 1, 0, 0, 0, 0)
+
+
+/*Changing/updating a mob's client color matrices. These render over the map window and affect most things the player sees, except things like inventory,
+text popups, HUD, and some fullscreens. Code based on atom filter code, since these have similar issues with application order - for ex. if you have
+a desaturation and a recolor matrix, you'll get very different results if you desaturate before recoloring, or recolor before desaturating.
+See matrices.dm for the matrix procs.
+If you want to recolor a specific atom, you should probably do it as a color matrix filter instead since that code already exists.
+Apparently color matrices are not the same sort of matrix used by matrix datums and can't be worked with using normal matrix procs.*/
+
+///Adds a color matrix and updates the client. Priority is the order the matrices are applied, lowest first. Will replace an existing matrix of the same name, if one exists.
+/mob/proc/add_client_color_matrix(name, priority, list/params, time, easing)
+ LAZYINITLIST(client_color_matrices)
+
+ //Package the matrices in another list that stores priority.
+ client_color_matrices[name] = list("priority" = priority, "color_matrix" = params.Copy())
+
+ update_client_color_matrices(time, easing)
+
+/**Combines all color matrices and applies them to the client.
+Also used on login to give a client its new body's color matrices.
+Responsible for sorting the matrices.
+Transition is animated but instant by default.**/
+/mob/proc/update_client_color_matrices(time = 0 SECONDS, easing = LINEAR_EASING)
+ if(!client)
+ return
+
+ if(!length(client_color_matrices))
+ animate(client, color = null, time = time, easing = easing)
+ UNSETEMPTY(client_color_matrices)
+ SEND_SIGNAL(src, COMSIG_MOB_RECALCULATE_CLIENT_COLOR)
+ return
+
+ //Sort the matrix packages by priority.
+ client_color_matrices = sortTim(client_color_matrices, GLOBAL_PROC_REF(cmp_filter_data_priority), TRUE)
+
+ var/list/final_matrix
+
+ for(var/package in client_color_matrices)
+ var/list/current_matrix = client_color_matrices[package]["color_matrix"]
+ if(!final_matrix)
+ final_matrix = current_matrix
+ else
+ final_matrix = color_matrix_multiply(final_matrix, current_matrix)
+
+ animate(client, color = final_matrix, time = time, easing = easing)
+ SEND_SIGNAL(src, COMSIG_MOB_RECALCULATE_CLIENT_COLOR)
+
+///Changes a matrix package's priority and updates client.
+/mob/proc/change_client_color_matrix_priority(name, new_priority, time, easing)
+ if(!client_color_matrices || !client_color_matrices[name])
+ return
+
+ client_color_matrices[name]["priority"] = new_priority
+
+ update_client_color_matrices(time, easing)
+
+///Returns the matrix of that name, if it exists.
+/mob/proc/get_client_color_matrix(name)
+ return client_color_matrices[name]["color_matrix"]
+
+///Can take either a single name or a list of several. Attempts to remove target matrix packages and update client.
+/mob/proc/remove_client_color_matrix(name_or_names, time, easing)
+ if(!client_color_matrices)
+ return
+
+ var/found = FALSE
+ var/list/names = islist(name_or_names) ? name_or_names : list(name_or_names)
+
+ for(var/name in names)
+ if(client_color_matrices[name])
+ client_color_matrices -= name
+ found = TRUE
+
+ if(found)
+ update_client_color_matrices(time, easing)
+
+///Removes all matrices and updates client.
+/mob/proc/clear_client_color_matrices(time, easing)
+ client_color_matrices = null
+ update_client_color_matrices(time, easing)
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index ea04b0fe090..47cf638530a 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -1,5 +1,38 @@
#define strip_improper(input_text) replacetext(replacetext(input_text, "\proper", ""), "\improper", "")
+GLOBAL_LIST_INIT(ru_key_to_en_key, list("й" = "q", "ц" = "w", "у" = "e", "к" = "r", "е" = "t", "н" = "y", "г" = "u", "ш" = "i", "щ" = "o", "з" = "p", "х" = "\[", "ъ" = "]",
+ "ф" = "a", "ы" = "s", "в" = "d", "а" = "f", "п" = "g", "р" = "h", "о" = "j", "л" = "k", "д" = "l", "ж" = ";", "э" = "'",
+ "я" = "z", "ч" = "x", "с" = "c", "м" = "v", "и" = "b", "т" = "n", "ь" = "m", "б" = ",", "ю" = "."))
+
+GLOBAL_LIST_INIT(en_key_to_ru_key, list(
+ "q" = "й", "w" = "ц", "e" = "у", "r" = "к", "t" = "е", "y" = "н",
+ "u" = "г", "i" = "ш", "o" = "щ", "p" = "з",
+ "a" = "ф", "s" = "ы", "d" = "в", "f" = "а", "g" = "п", "h" = "р",
+ "j" = "о", "k" = "л", "l" = "д", ";" = "ж", "'" = "э", "z" = "я",
+ "x" = "ч", "c" = "с", "v" = "м", "b" = "и", "n" = "т", "m" = "ь",
+ "," = "б", "." = "ю",
+))
+
+/proc/convert_ru_key_to_en_key(var/_key)
+ var/new_key = lowertext(_key)
+ new_key = GLOB.ru_key_to_en_key[new_key]
+ if(!new_key)
+ return _key
+ return uppertext(new_key)
+
+/proc/convert_ru_string_to_en_string(text)
+ . = ""
+ for(var/i in 1 to length_char(text))
+ . += convert_ru_key_to_en_key(copytext_char(text, i, i+1))
+
+/proc/sanitize_en_key_to_ru_key(char)
+ var/new_char = GLOB.en_key_to_ru_key[lowertext(char)]
+ return (new_char != null) ? new_char : char
+
+/proc/sanitize_en_string_to_ru_string(text)
+ . = ""
+ for(var/i in 1 to length_char(text))
+ . += sanitize_en_key_to_ru_key(copytext_char(text, i, i+1))
/proc/format_table_name(table)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 478f483e98d..bcc049e0372 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1307,3 +1307,141 @@ GLOBAL_LIST_INIT(survivor_outfits, typecacheof(/datum/outfit/job/survivor))
return FALSE
line_count ++
return TRUE
+
+
+
+/proc/get_true_location(atom/loc)
+ var/atom/subLoc = loc
+ while(subLoc.z == 0)
+ if (istype(subLoc.loc, /atom))
+ subLoc = subLoc.loc
+ else
+ return subLoc
+ return subLoc
+
+#define get_true_turf(loc) get_turf(get_true_location(loc))
+
+GLOBAL_LIST_EMPTY(loose_yautja_gear)
+GLOBAL_LIST_EMPTY(tracked_yautja_gear) // list of pred gear with a tracking element attached
+
+GLOBAL_LIST_EMPTY(mainship_yautja_teleports)
+GLOBAL_LIST_EMPTY(mainship_yautja_desc)
+GLOBAL_LIST_EMPTY(yautja_teleports)
+GLOBAL_LIST_EMPTY(yautja_teleport_descs)
+
+GLOBAL_LIST_INIT_TYPED(all_yautja_capes, /obj/item/clothing/yautja_cape, setup_yautja_capes())
+
+/proc/setup_yautja_capes()
+ var/list/cape_list = list()
+ for(var/obj/item/clothing/yautja_cape/cape_type as anything in typesof(/obj/item/clothing/yautja_cape))
+ cape_list[initial(cape_type.name)] = cape_type
+ return cape_list
+
+GLOBAL_VAR_INIT(roles_whitelist, load_role_whitelist())
+
+/proc/load_role_whitelist(filename = "config/role_whitelist.txt")
+ var/L[] = file2list(filename)
+ var/P[]
+ var/W[] = new //We want a temporary whitelist list, in case we need to reload.
+
+ var/i
+ var/r
+ var/ckey
+ var/role
+ for(i in L)
+ if(!i)
+ continue
+ i = trim(i)
+
+ if(!length(i))
+ continue
+
+ else if(copytext(i, 1, 2) == "#")
+ continue
+
+ P = splittext(i, "+")
+
+ if(!P.len)
+ continue
+
+ ckey = ckey(P[1]) //Converting their key to canonical form. ckey() does this by stripping all spaces, underscores and converting to lower case.
+
+ role = NONE
+ r = 1
+ while(++r <= P.len)
+ switch(ckey(P[r]))
+ if("yautja")
+ role |= WHITELIST_YAUTJA
+ if("yautjalegacy")
+ role |= WHITELIST_YAUTJA_LEGACY
+ if("yautjacouncil")
+ role |= WHITELIST_YAUTJA_COUNCIL
+ if("yautjacouncillegacy")
+ role |= WHITELIST_YAUTJA_COUNCIL_LEGACY
+ if("yautjaleader")
+ role |= WHITELIST_YAUTJA_LEADER
+
+ W[ckey] = role
+
+ return W
+
+//yautja ship AI announcement
+/proc/yautja_announcement(message, title = "You receive a message from your ship AI...", sound_to_play = sound('sound/misc/notice1.ogg'))
+ var/list/targets = GLOB.human_mob_list + GLOB.dead_mob_list
+ for(var/mob/M in targets)
+ if(!isobserver(M)) //observers see everything
+ var/mob/living/carbon/human/H = M
+ if(!isyautja(H) || H.stat != CONSCIOUS)
+ continue
+
+ to_chat(M, html = "[title]
[span_alert(message)]")
+ SEND_SOUND(M, sound_to_play)
+
+/// Will attempt to find what's holding this item if it's being contained by something, ie if it's in a satchel held by a human, this'll return the human
+/proc/recursive_holder_check(obj/item/held_item, recursion_limit = 3)
+ if(recursion_limit <= 0)
+ return held_item
+ if(!held_item.loc || isturf(held_item.loc))
+ return held_item
+ recursion_limit--
+ return recursive_holder_check(held_item.loc, recursion_limit)
+
+// returns turf relative to A for a given clockwise angle at set range
+// result is bounded to map size
+/proc/get_angle_target_turf(atom/A, angle, range)
+ if(!istype(A))
+ return null
+ var/x = A.x
+ var/y = A.y
+
+ x += range * sin(angle)
+ y += range * cos(angle)
+
+ //Restricts to map boundaries while keeping the final angle the same
+ var/dx = A.x - x
+ var/dy = A.y - y
+ var/ratio
+
+ if(dy == 0) //prevents divide-by-zero errors
+ ratio = INFINITY
+ else
+ ratio = dx / dy
+
+ if(x < 1)
+ y += (1 - x) / ratio
+ x = 1
+ else if (x > world.maxx)
+ y += (world.maxx - x) / ratio
+ x = world.maxx
+ if(y < 1)
+ x += (1 - y) * ratio
+ y = 1
+ else if (y > world.maxy)
+ x += (world.maxy - y) * ratio
+ y = world.maxy
+
+
+ x = round(x,1)
+ y = round(y,1)
+
+ return locate(x,y,A.z)
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index affca044d8e..ae733fba9be 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -1,14 +1,3 @@
-//Preferences stuff
-/* RUTGMC EDIT EDITION
-GLOBAL_LIST_INIT(ethnicities_list, init_ethnicities())
-
-/// Ethnicity - Initialise all /datum/ethnicity into a list indexed by ethnicity name
-/proc/init_ethnicities()
- . = list()
- for(var/path in subtypesof(/datum/ethnicity))
- var/datum/ethnicity/E = new path()
- .[E.name] = E
-*/
//Hairstyles
GLOBAL_LIST_EMPTY(hair_styles_list) //stores /datum/sprite_accessory/hair indexed by name
GLOBAL_LIST_EMPTY(hair_gradients_list) //stores /datum/sprite_accessory/hair_gradient indexed by name
@@ -23,6 +12,9 @@ GLOBAL_LIST_INIT(undershirt_f, list("None","Black undershirt", "White undershirt
//Mutant Human bits
GLOBAL_LIST_EMPTY(moth_wings_list)
GLOBAL_LIST_EMPTY(tails_list_monkey)
+ //Backpacks
+GLOBAL_LIST_INIT(backpacklist, list("Nothing", "Backpack", "Satchel", "Green Satchel", "Molle Backpack", "Molle Satchel", "Scav Backpack"))
+
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
@@ -79,59 +71,8 @@ GLOBAL_LIST_INIT(ai_core_display_screens, list(
input = pick(GLOB.ai_core_display_screens - "Random")
return "ai-[lowertext(input)]"
- //Backpacks
-//GLOBAL_LIST_INIT(backpacklist, list("Nothing", "Backpack", "Satchel")) // RUTGMC DELETION, moved to modular
-
-
GLOBAL_LIST_INIT(genders, list(MALE, FEMALE, NEUTER))
-/* RUTGMC EDIT BEGIN: Moved to modular_RUtgmc\code\_globalvars\lists\flavor_misc.dm
-GLOBAL_LIST_INIT(playable_icons, list(
- "boiler",
- "bull",
- "captain",
- "carrier",
- "chief_medical",
- "cl",
- "crusher",
- "cse",
- "defender",
- "defiler",
- "drone",
- "fieldcommander",
- "gorger",
- "hivelord",
- "hivemind",
- "hunter",
- "larva",
- "mech_pilot",
- "medical",
- "pilot",
- "praetorian",
- "private",
- "puppeteer",
- "ravager",
- "requisition",
- "researcher",
- "runner",
- "sentinel",
- "spiderling",
- "spitter",
- "st",
- "staffofficer",
- "synth",
- "warlock",
- "warrior",
- "widow",
- "wraith",
- "xenoking",
- "xenominion",
- "xenoqueen",
- "xenoshrike",
- "behemoth",
-))
-RUTGMC EDIT END */
-
//like above but autogenerated when a new squad is created
GLOBAL_LIST_INIT(playable_squad_icons, list(
"private",
@@ -208,15 +149,6 @@ GLOBAL_LIST_INIT(campaign_mission_icon_types, list(
"final_tgmc",
))
-/* RUTGMC DELETION BEGIN, moved to modular
-GLOBAL_LIST_INIT(minimap_icons, init_minimap_icons())
-
-/proc/init_minimap_icons()
- . = list()
- for(var/icon_state in GLOB.playable_icons)
- .[icon_state] = icon2base64(icon('icons/UI_icons/map_blips.dmi', icon_state, frame = 1)) //RUTGMC edit - icon change
-RUTGMC EDIT END */
-
GLOBAL_LIST_INIT(campaign_icons, init_campaign_icons())
/proc/init_campaign_icons()
@@ -234,3 +166,87 @@ GLOBAL_LIST_INIT(campaign_mission_icons, init_campaign_mission_icons())
for(var/icon_state in GLOB.campaign_mission_icon_types)
for(var/colour in colours)
.["[icon_state]_[colour]"] = icon2base64(icon('icons/UI_icons/mission_icons.dmi', "[icon_state]_[colour]", frame = 1))
+
+
+
+GLOBAL_LIST_INIT(playable_icons, list(
+ "behemoth",
+ "boiler",
+ "bull",
+ "captain",
+ "clown",
+ "military_police",
+ "carrier",
+ "chief_medical",
+ "cl",
+ "crusher",
+ "cse",
+ "defender",
+ "defiler",
+ "drone",
+ "facehugger",
+ "fieldcommander",
+ "gorger",
+ "hivelord",
+ "hivemind",
+ "hunter",
+ "larva",
+ "mech_pilot",
+ "medical",
+ "panther",
+ "pilot",
+ "praetorian",
+ "private",
+ "ravager",
+ "requisition",
+ "researcher",
+ "runner",
+ "sentinel",
+ "spitter",
+ "st",
+ "staffofficer",
+ "synth",
+ "warlock",
+ "warrior",
+ "xenoking",
+ "xenominion",
+ "xenoqueen",
+ "xenoshrike",
+ "chimera",
+ "predator",
+ "thrall",
+ "hellhound",
+))
+
+GLOBAL_LIST_EMPTY(human_ethnicities_list)
+GLOBAL_LIST_EMPTY(yautja_ethnicities_list)
+
+GLOBAL_LIST_EMPTY(yautja_hair_styles_list)
+
+GLOBAL_LIST_INIT(ethnicities_list, init_ethnicities())
+
+/// Ethnicity - Initialise all /datum/ethnicity into a list indexed by ethnicity name
+/proc/init_ethnicities()
+ . = list()
+
+ for(var/path in subtypesof(/datum/ethnicity) - /datum/ethnicity/human - /datum/ethnicity/yautja)
+ var/datum/ethnicity/E = new path()
+ .[E.name] = E
+
+ if(istype(E, /datum/ethnicity/human))
+ GLOB.human_ethnicities_list[E.name] = E
+
+ if(istype(E, /datum/ethnicity/yautja))
+ GLOB.yautja_ethnicities_list[E.name] = E
+
+ for(var/path in subtypesof(/datum/sprite_accessory/yautja_hair))
+ var/datum/sprite_accessory/yautja_hair/H = new path()
+ GLOB.yautja_hair_styles_list[H.name] = H
+
+
+GLOBAL_LIST_INIT(minimap_icons, init_minimap_icons())
+
+/proc/init_minimap_icons()
+ . = list()
+ for(var/icon_state in GLOB.playable_icons)
+ .[icon_state] = icon2base64(icon('icons/UI_icons/map_blips.dmi', icon_state, frame = 1)) //RUTGMC edit - icon change
diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm
index 683a9e1023d..3cc2e73a45e 100644
--- a/code/_globalvars/lists/mapping.dm
+++ b/code/_globalvars/lists/mapping.dm
@@ -13,6 +13,9 @@ GLOBAL_LIST_EMPTY(start_landmarks_list) //list of all spawn points created
GLOBAL_LIST_EMPTY(corpse_landmarks_list) //list of all corpse spawner
GLOBAL_LIST_EMPTY(valhalla_button_spawn_landmark) //list of the landmarks used to spawn mobs for the valhalla buttons
+GLOBAL_LIST_EMPTY(start_squad_landmarks_list) //list of all squad roundstart spawn points created
+GLOBAL_LIST_EMPTY(latejoin_squad_landmarks_list) //list of all squad latejoin spawn points created
+
GLOBAL_LIST_EMPTY(spawns_by_job) //2d array of /datum/job => list(turfs)
GLOBAL_LIST_EMPTY(landmarks_round_start) //landmarks that require action at round start
diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm
index 845fe4d2eaa..c64bf246164 100644
--- a/code/_globalvars/lists/mobs.dm
+++ b/code/_globalvars/lists/mobs.dm
@@ -54,8 +54,6 @@ GLOBAL_LIST_INIT_TYPED(xeno_caste_datums, /list/datum/xeno_caste, init_xeno_cast
.[C.caste_type_path] = list()
.[C.caste_type_path][C.upgrade] = C
-//RUTGMC EDIT BEGIN: Moved to modular_RUtgmc\code\_globalvars\lists\mobs.dm
-/*
GLOBAL_LIST_INIT(all_xeno_types, list(
/mob/living/carbon/xenomorph/runner,
/mob/living/carbon/xenomorph/runner/primordial,
@@ -69,6 +67,8 @@ GLOBAL_LIST_INIT(all_xeno_types, list(
/mob/living/carbon/xenomorph/gorger/primordial,
/mob/living/carbon/xenomorph/hunter,
/mob/living/carbon/xenomorph/hunter/primordial,
+ /mob/living/carbon/xenomorph/panther,
+ /mob/living/carbon/xenomorph/panther/primordial,
/mob/living/carbon/xenomorph/warrior,
/mob/living/carbon/xenomorph/warrior/primordial,
/mob/living/carbon/xenomorph/spitter,
@@ -83,8 +83,6 @@ GLOBAL_LIST_INIT(all_xeno_types, list(
/mob/living/carbon/xenomorph/queen/primordial,
/mob/living/carbon/xenomorph/king,
/mob/living/carbon/xenomorph/king/primordial,
- /mob/living/carbon/xenomorph/wraith,
- /mob/living/carbon/xenomorph/wraith/primordial,
/mob/living/carbon/xenomorph/ravager,
/mob/living/carbon/xenomorph/ravager/primordial,
/mob/living/carbon/xenomorph/praetorian,
@@ -95,29 +93,35 @@ GLOBAL_LIST_INIT(all_xeno_types, list(
/mob/living/carbon/xenomorph/defiler/primordial,
/mob/living/carbon/xenomorph/crusher,
/mob/living/carbon/xenomorph/crusher/primordial,
- /mob/living/carbon/xenomorph/widow,
- /mob/living/carbon/xenomorph/widow/primordial,
/mob/living/carbon/xenomorph/shrike,
/mob/living/carbon/xenomorph/shrike/primordial,
/mob/living/carbon/xenomorph/warlock,
/mob/living/carbon/xenomorph/warlock/primordial,
- /mob/living/carbon/xenomorph/puppeteer,
- /mob/living/carbon/xenomorph/puppeteer/primordial,
/mob/living/carbon/xenomorph/behemoth,
/mob/living/carbon/xenomorph/behemoth/primordial,
+ /mob/living/carbon/xenomorph/chimera,
+ /mob/living/carbon/xenomorph/chimera/primordial,
/mob/living/carbon/xenomorph/beetle,
/mob/living/carbon/xenomorph/mantis,
/mob/living/carbon/xenomorph/scorpion,
- /mob/living/carbon/xenomorph/spiderling,
+ /mob/living/carbon/xenomorph/facehugger,
))
-*/
-//RUTGMC EDIT END
+
+GLOBAL_LIST_INIT(forbid_excepts, list(
+ /mob/living/carbon/xenomorph/king,
+ /mob/living/carbon/xenomorph/queen,
+ /mob/living/carbon/xenomorph/shrike,
+ /mob/living/carbon/xenomorph/larva,
+ /mob/living/carbon/xenomorph/drone,
+ ))
+
+GLOBAL_LIST_EMPTY_TYPED(hellhound_list, /mob/living/carbon/xenomorph/hellhound)
+GLOBAL_LIST_EMPTY_TYPED(yautja_mob_list, /mob/living/carbon/human/species/yautja)
+
GLOBAL_LIST_INIT(xeno_types_tier_one, list(/mob/living/carbon/xenomorph/runner, /mob/living/carbon/xenomorph/drone, /mob/living/carbon/xenomorph/sentinel, /mob/living/carbon/xenomorph/defender))
-//RUTGMC EDIT - Moved to modular_RUtgmc\code\_globalvars\lists\mobs.dm
-/*
-GLOBAL_LIST_INIT(xeno_types_tier_two, list(/mob/living/carbon/xenomorph/hunter, /mob/living/carbon/xenomorph/warrior, /mob/living/carbon/xenomorph/spitter, /mob/living/carbon/xenomorph/hivelord, /mob/living/carbon/xenomorph/carrier, /mob/living/carbon/xenomorph/bull, /mob/living/carbon/xenomorph/wraith, /mob/living/carbon/xenomorph/puppeteer))
-GLOBAL_LIST_INIT(xeno_types_tier_three, list(/mob/living/carbon/xenomorph/gorger, /mob/living/carbon/xenomorph/widow, /mob/living/carbon/xenomorph/ravager, /mob/living/carbon/xenomorph/praetorian, /mob/living/carbon/xenomorph/boiler, /mob/living/carbon/xenomorph/defiler, /mob/living/carbon/xenomorph/crusher, /mob/living/carbon/xenomorph/shrike, /mob/living/carbon/xenomorph/behemoth))
-*/
+GLOBAL_LIST_INIT(xeno_types_tier_two, list(/mob/living/carbon/xenomorph/hunter, /mob/living/carbon/xenomorph/panther, /mob/living/carbon/xenomorph/warrior, /mob/living/carbon/xenomorph/spitter, /mob/living/carbon/xenomorph/hivelord, /mob/living/carbon/xenomorph/carrier, /mob/living/carbon/xenomorph/bull))
+GLOBAL_LIST_INIT(xeno_types_tier_three, list(/mob/living/carbon/xenomorph/gorger, /mob/living/carbon/xenomorph/ravager, /mob/living/carbon/xenomorph/praetorian, /mob/living/carbon/xenomorph/boiler, /mob/living/carbon/xenomorph/defiler, /mob/living/carbon/xenomorph/crusher, /mob/living/carbon/xenomorph/shrike, /mob/living/carbon/xenomorph/behemoth, /mob/living/carbon/xenomorph/chimera))
+
GLOBAL_LIST_INIT_TYPED(hive_datums, /datum/hive_status, init_hive_datum_list()) // init by make_datum_references_lists()
/proc/init_hive_datum_list()
@@ -144,7 +148,7 @@ GLOBAL_LIST_INIT(hive_ui_static_data, init_hive_status_lists()) // init by make_
GLOB.hive_ui_caste_index[type_path] = length(.) //Starts from 0.
- var/icon/xeno_minimap = icon('modular_RUtgmc/icons/UI_icons/map_blips.dmi', initial(caste.minimap_icon)) ///RUTGMC edit, icon redirect to module
+ var/icon/xeno_minimap = icon('icons/UI_icons/map_blips.dmi', initial(caste.minimap_icon)) ///RUTGMC edit, icon redirect to module
var/tier = initial(caste.tier)
if(tier == XENO_TIER_MINION)
continue
diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm
index 058cf05a69d..7fc4c191a75 100644
--- a/code/_globalvars/lists/objects.dm
+++ b/code/_globalvars/lists/objects.dm
@@ -1,6 +1,8 @@
GLOBAL_LIST_EMPTY(cable_list) //Index for all cables, so that powernets don't have to look through the entire world all the time
GLOBAL_LIST_INIT(ammo_list, init_ammo_list()) //List of all ammo types. Used by guns to tell the projectile how to act.
+GLOBAL_LIST_EMPTY(xeno_egg_hugger)
+
/proc/init_ammo_list()
. = list()
// Our ammo stuff is initialized here.
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index 08f3ff8af20..60bddaa8302 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -61,12 +61,6 @@
#define ui_ammo3 "EAST-1:28,CENTER+3:29"
#define ui_ammo4 "EAST-1:28,CENTER+4:31"
-/* RUTGMC DELETION
-#define ui_alien_nightvision "EAST-1:28,5:13"
-#define ui_alien_health "EAST-1:28,6:13"
-#define ui_queen_locator "EAST-1:28,7:13"
-#define ui_alienplasmadisplay "EAST-1:28,8:13"
-*/
#define ui_alien_nightvision "EAST-1:28,6:13"
#define ui_alien_health "EAST-1:12,8:13"
#define ui_alien_health_larva "EAST-1:28,8:13"
@@ -75,6 +69,9 @@
#define ui_evolvehud "EAST-1:28,6:13"
#define ui_sunderhud "EAST-1:28,10:13"
+//Upper-middle right (damage indicators)
+#define ui_predator_power "EAST-1:28,CENTER:17"
+
//Pop-up inventory
#define ui_shoes "WEST+1:8,1:5"
@@ -102,3 +99,26 @@
#define ui_ai_bioscan "SOUTH:6,WEST+6"
#define ui_ai_multicam "SOUTH:6,WEST+17"
#define ui_ai_add_multicam "SOUTH:6,WEST+18"
+
+// Какого хрена атомы лежат в дефайнах?!
+// TODO: Уберите предовские атомы в другой И ПОДХОДЯЩИЙ файл, плиз.
+/*
+ | | |
+ | | |
+ v v v
+*/
+/atom/movable/screen/fullscreen/machine/pred
+ alpha = 140
+
+/atom/movable/screen/fullscreen/machine/pred/meson
+ icon_state = "pred_meson"
+ icon = 'modular_RUtgmc/icons/mob/screen/full.dmi'
+
+/atom/movable/screen/fullscreen/machine/pred/night
+ icon_state = "robothalf"
+
+/datum/hud/var/atom/movable/screen/pred_power_icon
+
+/datum/hud/Destroy()
+ pred_power_icon = null
+ return ..()
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 4c222ac915c..e0137729ebe 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -19,6 +19,9 @@
var/atom/movable/screen/action_intent
var/atom/movable/screen/move_intent
var/atom/movable/screen/alien_plasma_display
+ var/atom/movable/screen/alien_evolve_display
+ var/atom/movable/screen/alien_sunder_display
+
var/atom/movable/screen/locate_leader
var/atom/movable/screen/SL_locator
@@ -99,6 +102,7 @@
action_intent = null
move_intent = null
alien_plasma_display = null
+ alien_evolve_display = null
locate_leader = null
module_store_icon = null
diff --git a/code/_onclick/hud/screen_objects/menu_text_objects.dm b/code/_onclick/hud/screen_objects/menu_text_objects.dm
index 1b2db453df4..df300b0e1b7 100644
--- a/code/_onclick/hud/screen_objects/menu_text_objects.dm
+++ b/code/_onclick/hud/screen_objects/menu_text_objects.dm
@@ -35,7 +35,7 @@
. = ..()
if(!(flags_atom & INITIALIZED)) //yes this can happen, fuck me
return
- color = COLOR_ORANGE
+ color = COLOR_RUTGMC_RED
var/mob/new_player/player = usr
player.playsound_local(player, 'sound/effects/menu_click.ogg', 50)
@@ -52,7 +52,7 @@
/atom/movable/screen/text/lobby/clickable/setup_character
- maptext = "CHARACTER: ..."
+ maptext = "ПЕРСОНАЖ: ..."
icon_state = "setup"
///Bool, whether we registered to listen for charachter updates already
var/registered = FALSE
@@ -63,14 +63,14 @@
hud.mymob.client?.prefs.ShowChoices(hud.mymob)
/atom/movable/screen/text/lobby/clickable/setup_character/update_text()
- maptext = "CHARACTER: [hud?.mymob.client ? hud.mymob.client.prefs.real_name : "Unknown User"]"
+ maptext = "ПЕРСОНАЖ: [hud?.mymob.client ? hud.mymob.client.prefs.real_name : "Unknown User"]"
if(registered)
return
RegisterSignal(hud.mymob.client, COMSIG_CLIENT_PREFERENCES_UIACTED, PROC_REF(update_text))
registered = TRUE
/atom/movable/screen/text/lobby/clickable/join_game
- maptext = "JOIN GAME"
+ maptext = "ПРИСОЕДИНИТЬСЯ"
icon_state = "join"
/atom/movable/screen/text/lobby/clickable/join_game/Click()
@@ -80,7 +80,7 @@
/atom/movable/screen/text/lobby/clickable/observe
- maptext = "OBSERVE"
+ maptext = "НАБЛЮДАТЬ"
icon_state = "observe"
/atom/movable/screen/text/lobby/clickable/observe/Click()
@@ -89,12 +89,12 @@
player.try_to_observe()
/atom/movable/screen/text/lobby/clickable/ready
- maptext = "YOU ARE: NOT READY"
+ maptext = "ВЫ: НЕ ГОТОВЫ"
icon_state = "unready"
/atom/movable/screen/text/lobby/clickable/ready/update_text()
var/mob/new_player/player = hud.mymob
- maptext = "YOU ARE: [player.ready ? "" : "NOT "]READY"
+ maptext = "ВЫ: [player.ready ? "" : "НЕ "]ГОТОВЫ"
/atom/movable/screen/text/lobby/clickable/ready/Click()
. = ..()
@@ -104,7 +104,7 @@
update_text()
/atom/movable/screen/text/lobby/clickable/manifest
- maptext = "VIEW MANIFEST"
+ maptext = "МАНИФЕСТ МОРПЕХОВ"
icon_state = "manifest"
/atom/movable/screen/text/lobby/clickable/manifest/Click()
@@ -113,7 +113,7 @@
player.view_manifest()
/atom/movable/screen/text/lobby/clickable/xenomanifest
- maptext = "VIEW HIVE"
+ maptext = "МАНИФЕСТ УЛЬЯ"
icon_state = "manifest"
/atom/movable/screen/text/lobby/clickable/xenomanifest/Click()
@@ -122,7 +122,7 @@
player.view_xeno_manifest()
/atom/movable/screen/text/lobby/clickable/background
- maptext = "BACKGROUND"
+ maptext = "ПРЕДЫСТОРИЯ"
icon_state = "background"
/atom/movable/screen/text/lobby/clickable/background/Click()
@@ -132,7 +132,7 @@
/atom/movable/screen/text/lobby/clickable/changelog
- maptext = "CHANGELOG"
+ maptext = "ЛОГ ИЗМЕНЕНИЙ"
icon_state = "changelog"
/atom/movable/screen/text/lobby/clickable/changelog/Click()
@@ -152,9 +152,9 @@
var/mob/new_player/player = hud.mymob
var/hasnewpolls = player.check_playerpolls()
if(isnull(hasnewpolls))
- maptext = "NO DATABASE!"
+ maptext = "НЕТ БАЗЫ ДАННЫХ!"
return
- maptext = "SHOW POLLS[hasnewpolls ? " (NEW!)" : ""]"
+ maptext = "ПОКАЗАТЬ ОПРОСЫ[hasnewpolls ? " (NEW!)" : ""]"
/atom/movable/screen/text/lobby/clickable/polls/Click()
. = ..()
diff --git a/code/_onclick/hud/screen_objects/screen_objects.dm b/code/_onclick/hud/screen_objects/screen_objects.dm
index 163705af29a..33a4cbd4420 100644
--- a/code/_onclick/hud/screen_objects/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects/screen_objects.dm
@@ -395,9 +395,12 @@
icon = 'icons/mob/screen/health.dmi'
/atom/movable/screen/healths/alien
- icon = 'icons/mob/screen/alien.dmi'
+ icon = 'icons/mob/screen/alien_better.dmi'
screen_loc = ui_alien_health
+/atom/movable/screen/healths/alien/larva
+ screen_loc = ui_alien_health_larva // it's in the position of plasma hud, as larva has no plasma hud as such
+
/atom/movable/screen/stamina_hud
icon = 'icons/mob/screen/health.dmi'
name = "stamina"
diff --git a/code/_onclick/hud/xeno/larva.dm b/code/_onclick/hud/xeno/larva.dm
index f62626f5226..793b6452470 100644
--- a/code/_onclick/hud/xeno/larva.dm
+++ b/code/_onclick/hud/xeno/larva.dm
@@ -1,4 +1,3 @@
-/* RUTGMC DELETION
/datum/hud/larva/New(mob/living/carbon/xenomorph/larva/owner, ui_style, ui_color, ui_alpha = 230)
..()
var/atom/movable/screen/using
@@ -13,11 +12,14 @@
using.alpha = ui_alpha
infodisplay += using
- healths = new /atom/movable/screen/healths/alien()
+ alien_evolve_display = new /atom/movable/screen/alien/evolvehud()
+ alien_evolve_display.alpha = ui_alpha
+ infodisplay += alien_evolve_display
+
+ healths = new /atom/movable/screen/healths/alien/larva()
healths.alpha = ui_alpha
infodisplay += healths
locate_leader = new /atom/movable/screen/alien/queen_locator()
locate_leader.alpha = ui_alpha
infodisplay += locate_leader
-*/
diff --git a/code/_onclick/hud/xeno/xeno.dm b/code/_onclick/hud/xeno/xeno.dm
index efe2f6183c3..e9e8e3cf77e 100644
--- a/code/_onclick/hud/xeno/xeno.dm
+++ b/code/_onclick/hud/xeno/xeno.dm
@@ -1,5 +1,5 @@
/atom/movable/screen/alien
- icon = 'icons/mob/screen/alien.dmi'
+ icon = 'icons/mob/screen/alien_better.dmi'
/atom/movable/screen/alien/Click()
if(!isxeno(usr))
@@ -42,9 +42,26 @@
/atom/movable/screen/alien/plasmadisplay
name = "plasma stored"
- icon_state = "power_display2"
+ icon_state = "power_display_20"
screen_loc = ui_alienplasmadisplay
+/atom/movable/screen/alien/evolvehud
+ name = "Evolve Status"
+ desc = "Click for evolve panel."
+ icon_state = "evolve_empty"
+ screen_loc = ui_evolvehud
+
+/atom/movable/screen/alien/evolvehud/Click()
+ . = ..()
+ if(!.)
+ return
+ var/mob/living/carbon/xenomorph/X = usr
+ X.Evolve()
+
+/atom/movable/screen/alien/sunderhud
+ icon_state = "sunder0"
+ screen_loc = ui_sunderhud
+
/datum/hud/alien/New(mob/living/carbon/xenomorph/owner, ui_style, ui_color, ui_alpha = 230)
..()
var/atom/movable/screen/using
@@ -123,6 +140,14 @@
locate_leader.alpha = ui_alpha
infodisplay += locate_leader
+ alien_evolve_display = new /atom/movable/screen/alien/evolvehud()
+ alien_evolve_display.alpha = ui_alpha
+ infodisplay += alien_evolve_display
+
+ alien_sunder_display = new /atom/movable/screen/alien/sunderhud()
+ alien_sunder_display.alpha = ui_alpha
+ infodisplay += alien_sunder_display
+
pull_icon = new /atom/movable/screen/pull()
pull_icon.icon = 'icons/mob/screen/alien.dmi'
pull_icon.screen_loc = ui_above_movement
diff --git a/modular_RUtgmc/code/_onclick/hud/yautja.dm b/code/_onclick/hud/yautja.dm
similarity index 91%
rename from modular_RUtgmc/code/_onclick/hud/yautja.dm
rename to code/_onclick/hud/yautja.dm
index 75faa710695..c07c96597a3 100644
--- a/modular_RUtgmc/code/_onclick/hud/yautja.dm
+++ b/code/_onclick/hud/yautja.dm
@@ -2,7 +2,7 @@
. = ..()
pred_power_icon = new /atom/movable/screen()
- pred_power_icon.icon = 'modular_RUtgmc/icons/mob/screen/yautja.dmi'
+ pred_power_icon.icon = 'icons/mob/screen/yautja.dmi'
pred_power_icon.icon_state = "powerbar10"
pred_power_icon.name = "bracer power stored"
pred_power_icon.screen_loc = ui_predator_power
diff --git a/code/_onclick/xeno.dm b/code/_onclick/xeno.dm
index f5b3d560a7d..abb2327d679 100644
--- a/code/_onclick/xeno.dm
+++ b/code/_onclick/xeno.dm
@@ -39,3 +39,24 @@
/atom/proc/attack_hivemind(mob/living/carbon/xenomorph/hivemind/attacker)
return
+
+
+
+/mob/living/carbon/xenomorph/facehugger/UnarmedAttack(atom/A, has_proximity, modifiers)
+ if(lying_angle)
+ return FALSE
+ if(isclosedturf(get_turf(src)) && !iswallturf(A)) //If we are on a closed turf (e.g. in a wall) we can't attack anything, except walls (or well, resin walls really) so we can't make ourselves be stuck.
+ balloon_alert(src, "Cannot reach")
+ return FALSE
+ if(!(isopenturf(A) || istype(A, /obj/alien/weeds))) //We don't care about open turfs; they don't trigger our melee click cooldown
+ changeNext_move(xeno_caste ? xeno_caste.attack_delay : CLICK_CD_MELEE)
+ if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED))
+ return FALSE
+
+ var/atom/S = A.handle_barriers(src)
+ S.attack_facehugger(src, xeno_caste.melee_damage * xeno_melee_damage_modifier, isrightclick = islist(modifiers) ? modifiers["right"] : FALSE)
+ GLOB.round_statistics.xeno_unarmed_attacks++
+ SSblackbox.record_feedback("tally", "round_statistics", 1, "xeno_unarmed_attacks")
+
+/atom/proc/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ return
diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm
index 5838c3d6287..57cb1fd0361 100644
--- a/code/controllers/configuration/config_entry.dm
+++ b/code/controllers/configuration/config_entry.dm
@@ -195,3 +195,13 @@
/datum/config_entry/keyed_list/vv_edit_var(var_name, var_value)
return var_name != "splitter" && ..()
+
+/datum/config_entry/number/pred_round
+ config_entry_value = 0
+ min_val = 0
+ max_val = 2
+
+/datum/config_entry/number/pred_round_chance
+ config_entry_value = 0
+ min_val = 0
+ max_val = 100
diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm
index 746170d5ee1..6c0c478e361 100644
--- a/code/controllers/configuration/entries/general.dm
+++ b/code/controllers/configuration/entries/general.dm
@@ -1,3 +1,7 @@
+/datum/config_entry/flag/tgs_event_approval_messaging
+
+/datum/config_entry/flag/tgs_adminless_messaging
+
/*
Basics, the most important.
*/
diff --git a/modular_RUtgmc/code/controllers/subsystem/cellauto.dm b/code/controllers/subsystem/cellauto.dm
similarity index 100%
rename from modular_RUtgmc/code/controllers/subsystem/cellauto.dm
rename to code/controllers/subsystem/cellauto.dm
diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm
index 97c0f36c360..dac7cb16e2f 100644
--- a/code/controllers/subsystem/dbcore.dm
+++ b/code/controllers/subsystem/dbcore.dm
@@ -293,6 +293,7 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table
var/affected
var/last_insert_id
+ var/no_auto_delete = FALSE
var/list/item //list of data values populated by NextRow()
/datum/db_query/New(connection, sql, arguments)
diff --git a/modular_RUtgmc/code/controllers/subsystem/hunt_system.dm b/code/controllers/subsystem/hunt_system.dm
similarity index 100%
rename from modular_RUtgmc/code/controllers/subsystem/hunt_system.dm
rename to code/controllers/subsystem/hunt_system.dm
diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm
index 11f17edc545..8bfbd2c4b69 100644
--- a/code/controllers/subsystem/job.dm
+++ b/code/controllers/subsystem/job.dm
@@ -267,7 +267,12 @@ SUBSYSTEM_DEF(job)
//If we joined at roundstart we should be positioned at our workstation
var/turf/spawn_turf
if(!joined_late || job.job_flags & JOB_FLAG_OVERRIDELATEJOINSPAWN)
- spawn_turf = job.return_spawn_turf()
+ var/datum/job/terragov/squad/marine = job
+ var/mob/living/carbon/human/h = new_character
+ if(!ishuman(new_character) || !h.assigned_squad || !length_char(GLOB.start_squad_landmarks_list))
+ spawn_turf = job.return_spawn_turf(player, player.client)
+ else
+ spawn_turf = marine.spawn_by_squads(h.assigned_squad.id)
if(spawn_turf)
SendToAtom(new_character, spawn_turf)
else
@@ -339,9 +344,14 @@ SUBSYSTEM_DEF(job)
SendToAtom(M, pick(GLOB.latejoinsom))
return
else
- if(length(GLOB.latejoin))
- SendToAtom(M, pick(GLOB.latejoin))
+ var/mob/living/carbon/human/h = M
+ if(h.assigned_squad && length_char(GLOB.latejoin_squad_landmarks_list))
+ SendToAtom(M, pick(GLOB.latejoin_squad_landmarks_list[h.assigned_squad.id]))
return
+ else
+ if(length_char(GLOB.latejoin))
+ SendToAtom(M, pick(GLOB.latejoin))
+ return
message_admins("Unable to send mob [M] to late join!")
CRASH("Unable to send mob [M] to late join!")
diff --git a/code/controllers/subsystem/minimaps.dm b/code/controllers/subsystem/minimaps.dm
index 83e60b714b2..2916771fdc7 100644
--- a/code/controllers/subsystem/minimaps.dm
+++ b/code/controllers/subsystem/minimaps.dm
@@ -629,6 +629,61 @@ SUBSYSTEM_DEF(minimaps)
else
minimap_displayed = FALSE
+/datum/controller/subsystem/minimaps/proc/add_zlevel(zlevel)
+ minimaps_by_z["[zlevel]"] = new /datum/hud_displays
+ var/icon/icon_gen = new('icons/UI_icons/minimap.dmi') //480x480 blank icon template for drawing on the map
+ for(var/xval = 1 to world.maxx)
+ for(var/yval = 1 to world.maxy) //Scan all the turfs and draw as needed
+ var/turf/location = locate(xval,yval,zlevel)
+ if(isspaceturf(location))
+ continue
+ if(location.density)
+ icon_gen.DrawBox(location.minimap_color, xval, yval)
+ continue
+ var/atom/movable/alttarget = (locate(/obj/machinery/door) in location) || (locate(/obj/structure/fence) in location)
+ if(alttarget)
+ icon_gen.DrawBox(alttarget.minimap_color, xval, yval)
+ continue
+ var/area/turfloc = location.loc
+ if(turfloc.minimap_color)
+ icon_gen.DrawBox(BlendRGB(location.minimap_color, turfloc.minimap_color, 0.5), xval, yval)
+ continue
+ icon_gen.DrawBox(location.minimap_color, xval, yval)
+ icon_gen.Scale(480*2,480*2) //scale it up x2 to make it easer to see
+ icon_gen.Crop(1, 1, min(icon_gen.Width(), 480), min(icon_gen.Height(), 480)) //then cut all the empty pixels
+ //generation is done, now we need to center the icon to someones view, this can be left out if you like it ugly and will halve SSinit time
+ //calculate the offset of the icon
+ var/largest_x = 0
+ var/smallest_x = SCREEN_PIXEL_SIZE
+ var/largest_y = 0
+ var/smallest_y = SCREEN_PIXEL_SIZE
+ for(var/xval=1 to SCREEN_PIXEL_SIZE step 2) //step 2 is twice as fast :)
+ for(var/yval=1 to SCREEN_PIXEL_SIZE step 2) //keep in mind 1 wide giant straight lines will offset wierd but you shouldnt be mapping those anyway right???
+ if(!icon_gen.GetPixel(xval, yval))
+ continue
+ if(xval > largest_x)
+ largest_x = xval
+ else if(xval < smallest_x)
+ smallest_x = xval
+ if(yval > largest_y)
+ largest_y = yval
+ else if(yval < smallest_y)
+ smallest_y = yval
+
+ minimaps_by_z["[zlevel]"].x_offset = FLOOR((SCREEN_PIXEL_SIZE-largest_x-smallest_x)/2, 1)
+ minimaps_by_z["[zlevel]"].y_offset = FLOOR((SCREEN_PIXEL_SIZE-largest_y-smallest_y)/2, 1)
+
+ icon_gen.Shift(EAST, minimaps_by_z["[zlevel]"].x_offset)
+ icon_gen.Shift(NORTH, minimaps_by_z["[zlevel]"].y_offset)
+
+ minimaps_by_z["[zlevel]"].hud_image = icon_gen //done making the image!
+
+/datum/action/minimap/yautja
+ minimap_flags = MINIMAP_FLAG_XENO|MINIMAP_FLAG_MARINE|MINIMAP_FLAG_MARINE_SOM|MINIMAP_FLAG_YAUTJA
+ marker_flags = MINIMAP_FLAG_YAUTJA
+
+/datum/action/minimap/observer
+ minimap_flags = MINIMAP_FLAG_XENO|MINIMAP_FLAG_MARINE|MINIMAP_FLAG_MARINE_SOM|MINIMAP_FLAG_EXCAVATION_ZONE|MINIMAP_FLAG_YAUTJA
/datum/action/minimap/xeno
diff --git a/code/controllers/subsystem/points.dm b/code/controllers/subsystem/points.dm
index 9f9168436de..269dacff712 100644
--- a/code/controllers/subsystem/points.dm
+++ b/code/controllers/subsystem/points.dm
@@ -31,6 +31,17 @@ SUBSYSTEM_DEF(points)
var/list/request_shopping_cart = list()
+//Это явно должно быть выше, поправьте если разберётесь.
+/datum/controller/subsystem/points
+ ///Assoc list of personal supply points
+ var/personal_supply_points = list()
+ ///Personal supply points gain modifier
+ var/psp_multiplier = 0.075
+ ///Personal supply points limit
+ var/psp_limit = 600
+ ///Var used to calculate points difference between updates
+ var/supply_points_old = 0
+
/datum/controller/subsystem/points/Recover()
ordernum = SSpoints.ordernum
supply_packs = SSpoints.supply_packs
@@ -78,6 +89,31 @@ SUBSYSTEM_DEF(points)
for(var/key in supply_points)
supply_points[key] += SUPPLY_POINT_RATE / (1 MINUTES / wait)
+ for(var/key in supply_points)
+ for(var/mob/living/account in GLOB.alive_human_list_faction[key])
+ if(account.job.title in GLOB.jobs_marines)
+ personal_supply_points[account.ckey] = min(personal_supply_points[account.ckey] + max(supply_points[key] - supply_points_old, 0) * psp_multiplier, psp_limit)
+ supply_points_old = supply_points[key]
+
+/datum/controller/subsystem/points/proc/buy_using_psp(mob/living/user)
+ var/cost = 0
+ var/list/ckey_shopping_cart = request_shopping_cart[user.ckey]
+ if(!length_char(ckey_shopping_cart))
+ return
+ if(length_char(ckey_shopping_cart) > 20)
+ return
+ for(var/i in ckey_shopping_cart)
+ var/datum/supply_packs/SP = supply_packs[i]
+ cost += SP.cost * ckey_shopping_cart[i]
+ if(cost > personal_supply_points[user.ckey])
+ return
+ var/list/datum/supply_order/orders = process_cart(user, ckey_shopping_cart)
+ for(var/i in 1 to length_char(orders))
+ orders[i].authorised_by = user.real_name
+ LAZYADDASSOCSIMPLE(shoppinglist[user.faction], "[orders[i].id]", orders[i])
+ personal_supply_points[user.ckey] -= cost
+ ckey_shopping_cart.Cut()
+
///Add amount of psy points to the selected hive only if the gamemode support psypoints
/datum/controller/subsystem/points/proc/add_psy_points(hivenumber, amount)
if(!CHECK_BITFIELD(SSticker.mode.flags_round_type, MODE_PSY_POINTS))
diff --git a/modular_RUtgmc/code/controllers/subsystem/predships.dm b/code/controllers/subsystem/predships.dm
similarity index 100%
rename from modular_RUtgmc/code/controllers/subsystem/predships.dm
rename to code/controllers/subsystem/predships.dm
diff --git a/code/controllers/subsystem/processing/resinshaping.dm b/code/controllers/subsystem/processing/resinshaping.dm
index dcb72712ccf..39ba9cb3fe5 100644
--- a/code/controllers/subsystem/processing/resinshaping.dm
+++ b/code/controllers/subsystem/processing/resinshaping.dm
@@ -1,14 +1,27 @@
-/* RUTGMC DELETION
+/// Controls how many quickbuilds each xenomorph gets.
+#define QUICKBUILD_STRUCTURES_PER_XENO 600
+
SUBSYSTEM_DEF(resinshaping)
name = "Resin Shaping"
flags = SS_NO_FIRE
+ /// A list used to count how many buildings were built by player ckey , counter[ckey] = [build_count]
+ var/list/xeno_builds_counter = list()
/// Counter for quickbuild points, as long as this is above 0 building is instant.
var/list/quickbuild_points_by_hive = list()
+ /// Counter for total structures built
+ var/total_structures_built = 0
+ /// Counter for total refunds of structures
+ var/total_structures_refunded = 0
/// Whether or not quickbuild is enabled. Set to FALSE when the game starts.
var/active = TRUE
/datum/controller/subsystem/resinshaping/stat_entry()
- return ..("QUICKBUILD POINTS (NORMAL HIVE)=[quickbuild_points_by_hive[XENO_HIVE_NORMAL]]")
+ if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
+ return "BUILT=[total_structures_built] REFUNDED=[total_structures_refunded]"
+ else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
+ return "QUICKBUILD POINTS (NORMAL HIVE)=[quickbuild_points_by_hive[XENO_HIVE_NORMAL]]"
+ else
+ return "OFFLINE"
/datum/controller/subsystem/resinshaping/proc/toggle_off()
SIGNAL_HANDLER
@@ -16,8 +29,64 @@ SUBSYSTEM_DEF(resinshaping)
UnregisterSignal(SSdcs, list(COMSIG_GLOB_OPEN_SHUTTERS_EARLY, COMSIG_GLOB_OPEN_TIMED_SHUTTERS_LATE,COMSIG_GLOB_OPEN_TIMED_SHUTTERS_XENO_HIVEMIND,COMSIG_GLOB_TADPOLE_LAUNCHED,COMSIG_GLOB_DROPPOD_LANDED))
/datum/controller/subsystem/resinshaping/Initialize()
+ RegisterSignals(SSdcs, list(COMSIG_GLOB_OPEN_SHUTTERS_EARLY, COMSIG_GLOB_OPEN_TIMED_SHUTTERS_LATE,COMSIG_GLOB_OPEN_TIMED_SHUTTERS_XENO_HIVEMIND,COMSIG_GLOB_TADPOLE_LAUNCHED,COMSIG_GLOB_DROPPOD_LANDED), PROC_REF(toggle_off))
for(var/hivenumber in GLOB.hive_datums)
quickbuild_points_by_hive[hivenumber] = SSmapping.configs[GROUND_MAP].quickbuilds
- RegisterSignals(SSdcs, list(COMSIG_GLOB_OPEN_SHUTTERS_EARLY, COMSIG_GLOB_OPEN_TIMED_SHUTTERS_LATE,COMSIG_GLOB_OPEN_TIMED_SHUTTERS_XENO_HIVEMIND,COMSIG_GLOB_TADPOLE_LAUNCHED,COMSIG_GLOB_DROPPOD_LANDED), PROC_REF(toggle_off))
return SS_INIT_SUCCESS
-*/
+
+/// Retrieves a mob's building points using their ckey. Only works for mobs with clients.
+/datum/controller/subsystem/resinshaping/proc/get_building_points(mob/living/carbon/xenomorph/the_builder)
+ if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
+ var/player_key = "[the_builder.client?.ckey]"
+ if(!player_key)
+ return 0
+ return QUICKBUILD_STRUCTURES_PER_XENO - xeno_builds_counter[player_key]
+ else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
+ return quickbuild_points_by_hive[the_builder.get_xeno_hivenumber()]
+
+/// Increments a mob buildings count , using their ckey.
+/datum/controller/subsystem/resinshaping/proc/increment_build_counter(mob/living/carbon/xenomorph/the_builder)
+ if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
+ var/player_key = "[the_builder.client?.ckey]"
+ if(!player_key)
+ return
+ xeno_builds_counter[player_key]++
+ total_structures_built++
+ else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
+ quickbuild_points_by_hive[the_builder.get_xeno_hivenumber()]--
+
+/// Decrements a mob buildings count , using their ckey.
+/datum/controller/subsystem/resinshaping/proc/decrement_build_counter(mob/living/carbon/xenomorph/the_builder)
+ if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
+ var/player_key = "[the_builder.client?.ckey]"
+ if(!player_key)
+ return 0
+ xeno_builds_counter[player_key]--
+ total_structures_refunded++
+ total_structures_built--
+ else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
+ quickbuild_points_by_hive[the_builder.hivenumber]++
+
+/// Returns a TRUE if a structure should be refunded and instant deconstructed , or false if not
+/datum/controller/subsystem/resinshaping/proc/should_refund(atom/structure, mob/living/carbon/xenomorph/the_demolisher)
+ if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
+ var/player_key = "[the_demolisher.client?.ckey]"
+ // could be a AI mob thats demolishing without a player key.
+ if(!player_key || !active)
+ return FALSE
+ if(istype(structure, /obj/alien/resin/sticky) && !istype(structure,/obj/alien/resin/sticky/thin))
+ return TRUE
+ if(istype(structure, /turf/closed/wall/resin))
+ return TRUE
+ if(istype(structure, /obj/structure/mineral_door/resin))
+ return TRUE
+ if(istype(structure, /obj/structure/bed/nest))
+ return TRUE
+ return FALSE
+ else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
+ if(active)
+ return TRUE
+ return FALSE
+
+#undef QUICKBUILD_STRUCTURES_PER_XENO
+
diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm
index 6ccb7b23b09..505969808b3 100644
--- a/code/datums/actions/action.dm
+++ b/code/datums/actions/action.dm
@@ -48,9 +48,9 @@ KEYBINDINGS
visual_references[VREF_MUTABLE_MAPTEXT] = maptext_list
switch(action_type)
if(ACTION_TOGGLE)
- visual_references[VREF_MUTABLE_ACTIVE_FRAME] = mutable_appearance('modular_RUtgmc/icons/mob/actions.dmi', "active", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)
+ visual_references[VREF_MUTABLE_ACTIVE_FRAME] = mutable_appearance('icons/mob/actions.dmi', "active", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)
if(ACTION_SELECT)
- visual_references[VREF_MUTABLE_SELECTED_FRAME] = mutable_appearance('modular_RUtgmc/icons/mob/actions.dmi', "selected_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)
+ visual_references[VREF_MUTABLE_SELECTED_FRAME] = mutable_appearance('icons/mob/actions.dmi', "selected_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)
visual_references[VREF_MUTABLE_ACTION_STATE] = mutable_appearance(action_icon, action_icon_state, HUD_LAYER, HUD_PLANE)
button.add_overlay(visual_references[VREF_MUTABLE_ACTION_STATE])
diff --git a/code/datums/actions/observer_action.dm b/code/datums/actions/observer_action.dm
index ba7c0325a8e..33640aa7f2d 100644
--- a/code/datums/actions/observer_action.dm
+++ b/code/datums/actions/observer_action.dm
@@ -105,3 +105,95 @@
return
mode.player_respawn(owner)
+
+/datum/action/observer_action/find_facehugger_spawn
+ name = "Spawn as Facehugger"
+ action_icon = 'icons/Xeno/actions.dmi'
+ action_icon_state = "hugger_set"
+
+/datum/action/observer_action/find_facehugger_spawn/action_activate()
+ var/mob/dead/observer/dead_owner = owner
+ if(GLOB.key_to_time_of_death[owner.key] + TIME_BEFORE_TAKING_BODY > world.time && !dead_owner.started_as_observer)
+ to_chat(owner, span_warning("You died too recently to be able to take a new mob."))
+ return
+
+ var/list/spawn_point = list()
+ var/list/area_names = list()
+ var/list/area_namecounts = list()
+ var/name
+
+ for(var/mob/living/carbon/xenomorph/potential_xeno AS in GLOB.alive_xeno_list)
+ if(dead_owner.z != potential_xeno.z)
+ continue
+ if(!isxenocarrier(potential_xeno))
+ continue
+
+ var/mob/living/carbon/xenomorph/carrier/selected_carrier = potential_xeno
+ if(selected_carrier.huggers_reserved >= selected_carrier.huggers)
+ continue
+
+ name = selected_carrier.name
+ spawn_point[name] = potential_xeno
+
+ for(var/obj/alien/egg/hugger/potential_egg AS in GLOB.xeno_egg_hugger)
+ if(dead_owner.z != potential_egg.z)
+ continue
+ if(potential_egg.maturity_stage != potential_egg.stage_ready_to_burst)
+ continue
+ if(!potential_egg.hugger_type)
+ continue
+ if(istype(potential_egg, /obj/alien/egg/hugger/forsaken))
+ continue
+
+ var/area_egg = get_area(potential_egg)
+ if(area_egg in area_names)
+ area_namecounts[area_egg]++
+ name = "[potential_egg.name] at [area_egg] ([area_namecounts[area_egg]])"
+ else
+ area_names.Add(area_egg)
+ area_namecounts[area_egg] = 1
+ name = "[potential_egg.name] at [get_area(potential_egg)]"
+
+ spawn_point[name] = potential_egg
+
+ if(!length_char(spawn_point))
+ to_chat(owner, span_warning("There are no spawn points for facehugger on your Z-level."))
+ return
+
+ var/selected = tgui_input_list(usr, "Please select a spawn point:", "Spawn as Facehugger", spawn_point)
+ if(!selected)
+ return
+
+ var/target = spawn_point[selected]
+ dead_owner.abstract_move(get_turf(target))
+
+/datum/action/observer_action/join_predator
+ name = "Join the Hunt"
+ action_icon_state = "pred_ghost"
+
+/datum/action/observer_action/join_predator/give_action(mob/M)
+ var/owner_ckey = M.client?.ckey
+ if(!owner_ckey)
+ return
+
+ if(!(GLOB.roles_whitelist[owner_ckey] & WHITELIST_PREDATOR))
+ return
+
+ if(!SSticker.mode || !(SSticker.mode.flags_round_type & MODE_PREDATOR))
+ RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(handle_button_status_visuals))
+
+ . = ..()
+
+/datum/action/observer_action/join_predator/can_use_action()
+ if(!SSticker.mode || !(SSticker.mode.flags_round_type & MODE_PREDATOR))
+ return FALSE
+ return TRUE
+
+/datum/action/observer_action/join_predator/action_activate()
+ var/mob/dead/observer/activator = owner
+ if(SSticker.current_state < GAME_STATE_PLAYING || !SSticker.mode)
+ to_chat(activator, span_warning("The game hasn't started yet!"))
+ return
+
+ if(SSticker.mode.check_predator_late_join(activator))
+ SSticker.mode.join_predator(activator)
diff --git a/code/datums/jobs/job/xenomorph.dm b/code/datums/jobs/job/xenomorph.dm
index fc911cd9532..cd44a5baa6d 100644
--- a/code/datums/jobs/job/xenomorph.dm
+++ b/code/datums/jobs/job/xenomorph.dm
@@ -53,7 +53,7 @@
/datum/job/xenomorph/after_spawn(mob/living/carbon/xenomorph/xeno, mob/M, latejoin)
. = ..()
- SSminimaps.add_marker(xeno, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, xeno.xeno_caste.minimap_icon)) //RUTGMC edit - icon change
+ SSminimaps.add_marker(xeno, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, xeno.xeno_caste.minimap_icon)) //RUTGMC edit - icon change
/datum/job/xenomorph/queen
title = ROLE_XENO_QUEEN
diff --git a/code/game/objects/effects/landmarks/excavation_site_spawner.dm b/code/game/objects/effects/landmarks/excavation_site_spawner.dm
index 300a60c4f55..68443aa758b 100644
--- a/code/game/objects/effects/landmarks/excavation_site_spawner.dm
+++ b/code/game/objects/effects/landmarks/excavation_site_spawner.dm
@@ -17,7 +17,7 @@
/obj/effect/landmark/excavation_site_spawner/proc/spawn_excavation_site()
rewards_typepath = pick(rewards_datums)
if(initial(rewards_typepath.map_icon))
- SSminimaps.add_marker(src, MINIMAP_FLAG_EXCAVATION_ZONE, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, initial(rewards_typepath.map_icon))) // RU TGMC edit - map blips
+ SSminimaps.add_marker(src, MINIMAP_FLAG_EXCAVATION_ZONE, image('icons/UI_icons/map_blips.dmi', null, initial(rewards_typepath.map_icon))) // RU TGMC edit - map blips
///Perform an excavation and revert the spawner to inactive state
/obj/effect/landmark/excavation_site_spawner/proc/excavate_site()
diff --git a/code/game/objects/machinery/miner.dm b/code/game/objects/machinery/miner.dm
index 6e09369e27e..02eaab59f7a 100644
--- a/code/game/objects/machinery/miner.dm
+++ b/code/game/objects/machinery/miner.dm
@@ -71,7 +71,7 @@
**/
/obj/machinery/miner/proc/init_marker()
var/marker_icon = "miner_[mineral_value >= PLATINUM_CRATE_SELL_AMOUNT ? "platinum" : "phoron"]_on"
- SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, marker_icon)) //RU TGMC edit
+ SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, marker_icon)) //RU TGMC edit
/obj/machinery/miner/update_icon()
switch(miner_status)
@@ -288,7 +288,7 @@
stop_processing()
SSminimaps.remove_marker(src)
var/marker_icon = "miner_[mineral_value >= PLATINUM_CRATE_SELL_AMOUNT ? "platinum" : "phoron"]_off"
- SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, marker_icon)) //RUTGMC edit - icon change
+ SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, marker_icon)) //RUTGMC edit - icon change
return
if(add_tick >= required_ticks)
if(miner_upgrade_type == MINER_AUTOMATED)
diff --git a/code/game/objects/machinery/squad_supply/supply_beacon.dm b/code/game/objects/machinery/squad_supply/supply_beacon.dm
index f4df56df68b..b727095e22c 100644
--- a/code/game/objects/machinery/squad_supply/supply_beacon.dm
+++ b/code/game/objects/machinery/squad_supply/supply_beacon.dm
@@ -63,7 +63,7 @@
marker_flags = MINIMAP_FLAG_MARINE
//RUTGMC EDIT CHANGE BEGIN - ORBITAL_BEACON
//SSminimaps.add_marker(src, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "supply")) RUTGMC EDIT - ORIGINAL
- SSminimaps.add_marker(src, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, beacon_mini_icon, ABOVE_FLOAT_LAYER))
+ SSminimaps.add_marker(src, marker_flags, image('icons/UI_icons/map_blips.dmi', null, beacon_mini_icon, ABOVE_FLOAT_LAYER))
//RUTGMC EDIT CHANGE END
update_icon()
return TRUE
diff --git a/code/modules/events/intel_computer.dm b/code/modules/events/intel_computer.dm
index a8a58cd2913..4a4bdd00d7e 100644
--- a/code/modules/events/intel_computer.dm
+++ b/code/modules/events/intel_computer.dm
@@ -20,6 +20,6 @@
/datum/round_event/intel_computer/proc/activate(obj/machinery/computer/intel_computer/I)
I.active = TRUE
- SSminimaps.add_marker(I, MINIMAP_FLAG_ALL, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "intel", ABOVE_FLOAT_LAYER))
+ SSminimaps.add_marker(I, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, "intel", ABOVE_FLOAT_LAYER))
priority_announce("Our data sifting algorithm has detected valuable classified information on a access point in [get_area(I)]. Should this data be recovered by ground forces, a reward will be given in the form of increased assets.", title = "TGMC Intel Division")
xeno_message("We sense a looming threat from [get_area(I)]. We must keep the hosts away from there.")
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities.dm
index faed0a4052d..238b6766afa 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities.dm
@@ -884,11 +884,11 @@
if(X.layer != XENO_HIDING_LAYER)
X.layer = XENO_HIDING_LAYER
to_chat(X, span_notice("We are now hiding."))
- button.add_overlay(mutable_appearance('modular_RUtgmc/icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // RUTGMC edit - icon change
+ button.add_overlay(mutable_appearance('icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // RUTGMC edit - icon change
else
X.layer = MOB_LAYER
to_chat(X, span_notice("We have stopped hiding."))
- button.cut_overlay(mutable_appearance('modular_RUtgmc/icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // RUTGMC edit - icon change
+ button.cut_overlay(mutable_appearance('icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // RUTGMC edit - icon change
//Neurotox Sting
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm b/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm
index ed117606f63..2098c30db06 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm
@@ -403,11 +403,11 @@
// This is cursed, don't copy this code its the WRONG way to do this.
// TODO: generate this from GLOB.defiler_toxin_type_list
var/static/list/defiler_toxin_images_list = list(
-// DEFILER_NEUROTOXIN = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = DEFILER_NEUROTOXIN), //RUTGMC edit - icon change //NEURO REMOVAL
- DEFILER_HEMODILE = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = DEFILER_HEMODILE), //RUTGMC edit - icon change
- DEFILER_TRANSVITOX = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = DEFILER_TRANSVITOX), //RUTGMC edit - icon change
- DEFILER_OZELOMELYN = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = DEFILER_OZELOMELYN), //RUTGMC edit - icon change
- DEFILER_ACID = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = DEFILER_ACID), //RUTGMC edit - icon change
+// DEFILER_NEUROTOXIN = image('icons/Xeno/actions.dmi', icon_state = DEFILER_NEUROTOXIN), //RUTGMC edit - icon change //NEURO REMOVAL
+ DEFILER_HEMODILE = image('icons/Xeno/actions.dmi', icon_state = DEFILER_HEMODILE), //RUTGMC edit - icon change
+ DEFILER_TRANSVITOX = image('icons/Xeno/actions.dmi', icon_state = DEFILER_TRANSVITOX), //RUTGMC edit - icon change
+ DEFILER_OZELOMELYN = image('icons/Xeno/actions.dmi', icon_state = DEFILER_OZELOMELYN), //RUTGMC edit - icon change
+ DEFILER_ACID = image('icons/Xeno/actions.dmi', icon_state = DEFILER_ACID), //RUTGMC edit - icon change
)
var/toxin_choice = show_radial_menu(owner, owner, defiler_toxin_images_list, radius = 48)
if(!toxin_choice)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm b/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm
index 1c98d43adf8..37bcd6a62f4 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm
@@ -297,7 +297,7 @@ RU TGMC EDIT */
owner.layer = MOB_LAYER
var/datum/action/ability/xeno_action/xenohide/hide_action = owner.actions_by_path[/datum/action/ability/xeno_action/xenohide]
//hide_action?.button?.cut_overlay(mutable_appearance('icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // Removes Hide action icon border // ORIGINAL
- hide_action?.button?.cut_overlay(mutable_appearance('modular_RUtgmc/icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // RUTGMC EDIT
+ hide_action?.button?.cut_overlay(mutable_appearance('icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // RUTGMC EDIT
if(owner.buckled)
owner.buckled.unbuckle_mob(owner)
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(movement_fx))
diff --git a/code/modules/mob/living/carbon/xenomorph/xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/xenomorph.dm
index bbed0e3066a..ba747bb91a1 100644
--- a/code/modules/mob/living/carbon/xenomorph/xenomorph.dm
+++ b/code/modules/mob/living/carbon/xenomorph/xenomorph.dm
@@ -76,7 +76,7 @@
if(CONFIG_GET(flag/xenos_on_strike))
replace_by_ai()
if(z) //Larva are initiated in null space
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, xeno_caste.minimap_icon)) //RUTGMC edit - icon change
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, xeno_caste.minimap_icon)) //RUTGMC edit - icon change
handle_weeds_on_movement()
AddElement(/datum/element/footstep, footstep_type, mob_size >= MOB_SIZE_BIG ? 0.8 : 0.5)
diff --git a/code/modules/mob/living/carbon/xenomorph/xenoprocs.dm b/code/modules/mob/living/carbon/xenomorph/xenoprocs.dm
index 1fcb5053c17..a6d8a35f5fc 100644
--- a/code/modules/mob/living/carbon/xenomorph/xenoprocs.dm
+++ b/code/modules/mob/living/carbon/xenomorph/xenoprocs.dm
@@ -556,9 +556,9 @@
return
SSminimaps.remove_marker(src)
- var/image/blip = image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, xeno_caste.minimap_icon) //RUTGMC edit - icon change
+ var/image/blip = image('icons/UI_icons/map_blips.dmi', null, xeno_caste.minimap_icon) //RUTGMC edit - icon change
if(makeleader)
- blip.overlays += image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, xeno_caste.minimap_leadered_overlay) //RUTGMC edit - icon change
+ blip.overlays += image('icons/UI_icons/map_blips.dmi', null, xeno_caste.minimap_leadered_overlay) //RUTGMC edit - icon change
SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, blip)
///updates the xeno's glow, based on the ability being used
diff --git a/code/modules/power/groundmap_geothermal.dm b/code/modules/power/groundmap_geothermal.dm
index fcb7a3d77fe..6a5fa16eda4 100644
--- a/code/modules/power/groundmap_geothermal.dm
+++ b/code/modules/power/groundmap_geothermal.dm
@@ -60,15 +60,15 @@ GLOBAL_VAR_INIT(generators_on_ground, 0)
//RUTGMC ADDITION BEGIN
SSminimaps.remove_marker(src)
if(!corrupted && !is_on)
- SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "generator_off"))
+ SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, "generator_off"))
if(corrupted)
- SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "generator_corrupt"))
+ SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, "generator_corrupt"))
//RUTGMC ADDITION END
switch(buildstate)
if(GEOTHERMAL_NO_DAMAGE)
if(is_on)
desc = "A thermoelectric generator sitting atop a borehole dug deep in the planet's surface. It generates energy by boiling the plasma steam that rises from the well.\nIt is old technology and has a large failure rate, and must be repaired frequently.\nIt is currently on, and beeping randomly amid faint hisses of steam."
- SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "generator_on")) //RU TGMC edit - map blips
+ SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, "generator_on")) //RU TGMC edit - map blips
switch(power_gen_percent)
if(25)
icon_state = "on25"
diff --git a/code/modules/xenomorph/xeno_structures.dm b/code/modules/xenomorph/xeno_structures.dm
index 80bb255436b..d88d247bd1c 100644
--- a/code/modules/xenomorph/xeno_structures.dm
+++ b/code/modules/xenomorph/xeno_structures.dm
@@ -315,7 +315,7 @@ TUNNEL
for(var/datum/atom_hud/xeno_tactical/xeno_tac_hud in GLOB.huds) //Add to the xeno tachud
xeno_tac_hud.add_to_hud(src)
hud_set_xeno_tunnel()
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "xenotunnel", HIGH_FLOAT_LAYER)) // RU TGMC edit - map blips
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, "xenotunnel", HIGH_FLOAT_LAYER)) // RU TGMC edit - map blips
/obj/structure/xeno/tunnel/Destroy()
var/turf/drop_loc = get_turf(src)
@@ -888,7 +888,7 @@ TUNNEL
///Change minimap icon if silo is under attack or not
/obj/structure/xeno/silo/proc/update_minimap_icon()
SSminimaps.remove_marker(src)
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "silo[warning ? "_warn" : "_passive"]", VERY_HIGH_FLOAT_LAYER)) // RU TGMC edit - map blips
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, "silo[warning ? "_warn" : "_passive"]", VERY_HIGH_FLOAT_LAYER)) // RU TGMC edit - map blips
/obj/structure/xeno/xeno_turret
icon = 'icons/Xeno/acidturret.dmi'
@@ -926,7 +926,7 @@ TUNNEL
///Change minimap icon if its firing or not firing
/obj/structure/xeno/xeno_turret/proc/update_minimap_icon()
SSminimaps.remove_marker(src)
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "xeno_turret[firing ? "_firing" : "_passive"]")) // RU TGMC edit - map blips
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, "xeno_turret[firing ? "_firing" : "_passive"]")) // RU TGMC edit - map blips
/obj/structure/xeno/xeno_turret/Initialize(mapload, _hivenumber)
. = ..()
@@ -1239,7 +1239,7 @@ TUNNEL
/obj/structure/xeno/pherotower/Initialize(mapload, _hivenumber)
. = ..()
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "phero", ABOVE_FLOAT_LAYER)) // RU TGMC edit - map blips
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, "phero", ABOVE_FLOAT_LAYER)) // RU TGMC edit - map blips
GLOB.hive_datums[hivenumber].pherotowers += src
//Pheromone towers start off with recovery.
@@ -1382,7 +1382,7 @@ TUNNEL
///Change minimap icon if spawner is under attack or not
/obj/structure/xeno/spawner/proc/update_minimap_icon()
SSminimaps.remove_marker(src)
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "spawner[warning ? "_warn" : "_passive"]", , ABOVE_FLOAT_LAYER)) // RU TGMC edit - map blips
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, "spawner[warning ? "_warn" : "_passive"]", , ABOVE_FLOAT_LAYER)) // RU TGMC edit - map blips
/obj/structure/xeno/spawner/proc/on_spawn(list/squad)
if(!isxeno(squad[length(squad)]))
diff --git a/icons/UI_Icons/map_blips.dmi b/icons/UI_Icons/map_blips.dmi
index ca03e1e015f..b19a391b8ee 100644
Binary files a/icons/UI_Icons/map_blips.dmi and b/icons/UI_Icons/map_blips.dmi differ
diff --git a/icons/Xeno/actions.dmi b/icons/Xeno/actions.dmi
index 3268e27c2c6..88ae58bd94e 100644
Binary files a/icons/Xeno/actions.dmi and b/icons/Xeno/actions.dmi differ
diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi
index fedac4867e3..c50cd1e6954 100644
Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ
diff --git a/modular_RUtgmc/icons/mob/hunter/r_predator.dmi b/icons/mob/hunter/r_predator.dmi
similarity index 100%
rename from modular_RUtgmc/icons/mob/hunter/r_predator.dmi
rename to icons/mob/hunter/r_predator.dmi
diff --git a/modular_RUtgmc/icons/mob/screen/alien_better.dmi b/icons/mob/screen/alien_better.dmi
similarity index 100%
rename from modular_RUtgmc/icons/mob/screen/alien_better.dmi
rename to icons/mob/screen/alien_better.dmi
diff --git a/icons/mob/screen/health.dmi b/icons/mob/screen/health.dmi
index 550ea22c2ba..1026e92ef2e 100644
Binary files a/icons/mob/screen/health.dmi and b/icons/mob/screen/health.dmi differ
diff --git a/modular_RUtgmc/icons/mob/screen/yautja.dmi b/icons/mob/screen/yautja.dmi
similarity index 100%
rename from modular_RUtgmc/icons/mob/screen/yautja.dmi
rename to icons/mob/screen/yautja.dmi
diff --git a/modular_RUtgmc/code/__HELPERS/matrices.dm b/modular_RUtgmc/code/__HELPERS/matrices.dm
deleted file mode 100644
index 839568c0c5e..00000000000
--- a/modular_RUtgmc/code/__HELPERS/matrices.dm
+++ /dev/null
@@ -1,107 +0,0 @@
-//word of warning: using a matrix like this as a color value will simplify it back to a string after being set
-/proc/color_hex2color_matrix(string)
- var/length = length(string)
- if((length != 7 && length != 9) || length != length_char(string))
- return color_matrix_identity()
- var/r = hex2num(copytext(string, 2, 4))/255
- var/g = hex2num(copytext(string, 4, 6))/255
- var/b = hex2num(copytext(string, 6, 8))/255
- var/a = 1
- if(length == 9)
- a = hex2num(copytext(string, 8, 10))/255
- if(!isnum(r) || !isnum(g) || !isnum(b) || !isnum(a))
- return color_matrix_identity()
- return list(r, 0, 0, 0, 0, g, 0, 0, 0, 0, b, 0, 0, 0, 0, a, 0, 0, 0, 0)
-
-
-///Converts a hex color string to a color matrix.
-/proc/color_matrix_from_string(string)
- if(!string || !istext(string))
- return color_matrix_identity()
-
- var/string_r = hex2num(copytext(string, 2, 4)) / 255
- var/string_g = hex2num(copytext(string, 4, 6)) / 255
- var/string_b = hex2num(copytext(string, 6, 8)) / 255
-
- return list(string_r, 0, 0, 0, 0, string_g, 0, 0, 0, 0, string_b, 0, 0, 0, 0, 1, 0, 0, 0, 0)
-
-
-
-/*Changing/updating a mob's client color matrices. These render over the map window and affect most things the player sees, except things like inventory,
-text popups, HUD, and some fullscreens. Code based on atom filter code, since these have similar issues with application order - for ex. if you have
-a desaturation and a recolor matrix, you'll get very different results if you desaturate before recoloring, or recolor before desaturating.
-See matrices.dm for the matrix procs.
-If you want to recolor a specific atom, you should probably do it as a color matrix filter instead since that code already exists.
-Apparently color matrices are not the same sort of matrix used by matrix datums and can't be worked with using normal matrix procs.*/
-
-///Adds a color matrix and updates the client. Priority is the order the matrices are applied, lowest first. Will replace an existing matrix of the same name, if one exists.
-/mob/proc/add_client_color_matrix(name, priority, list/params, time, easing)
- LAZYINITLIST(client_color_matrices)
-
- //Package the matrices in another list that stores priority.
- client_color_matrices[name] = list("priority" = priority, "color_matrix" = params.Copy())
-
- update_client_color_matrices(time, easing)
-
-/**Combines all color matrices and applies them to the client.
-Also used on login to give a client its new body's color matrices.
-Responsible for sorting the matrices.
-Transition is animated but instant by default.**/
-/mob/proc/update_client_color_matrices(time = 0 SECONDS, easing = LINEAR_EASING)
- if(!client)
- return
-
- if(!length(client_color_matrices))
- animate(client, color = null, time = time, easing = easing)
- UNSETEMPTY(client_color_matrices)
- SEND_SIGNAL(src, COMSIG_MOB_RECALCULATE_CLIENT_COLOR)
- return
-
- //Sort the matrix packages by priority.
- client_color_matrices = sortTim(client_color_matrices, GLOBAL_PROC_REF(cmp_filter_data_priority), TRUE)
-
- var/list/final_matrix
-
- for(var/package in client_color_matrices)
- var/list/current_matrix = client_color_matrices[package]["color_matrix"]
- if(!final_matrix)
- final_matrix = current_matrix
- else
- final_matrix = color_matrix_multiply(final_matrix, current_matrix)
-
- animate(client, color = final_matrix, time = time, easing = easing)
- SEND_SIGNAL(src, COMSIG_MOB_RECALCULATE_CLIENT_COLOR)
-
-///Changes a matrix package's priority and updates client.
-/mob/proc/change_client_color_matrix_priority(name, new_priority, time, easing)
- if(!client_color_matrices || !client_color_matrices[name])
- return
-
- client_color_matrices[name]["priority"] = new_priority
-
- update_client_color_matrices(time, easing)
-
-///Returns the matrix of that name, if it exists.
-/mob/proc/get_client_color_matrix(name)
- return client_color_matrices[name]["color_matrix"]
-
-///Can take either a single name or a list of several. Attempts to remove target matrix packages and update client.
-/mob/proc/remove_client_color_matrix(name_or_names, time, easing)
- if(!client_color_matrices)
- return
-
- var/found = FALSE
- var/list/names = islist(name_or_names) ? name_or_names : list(name_or_names)
-
- for(var/name in names)
- if(client_color_matrices[name])
- client_color_matrices -= name
- found = TRUE
-
- if(found)
- update_client_color_matrices(time, easing)
-
-///Removes all matrices and updates client.
-/mob/proc/clear_client_color_matrices(time, easing)
- client_color_matrices = null
- update_client_color_matrices(time, easing)
diff --git a/modular_RUtgmc/code/__HELPERS/text.dm b/modular_RUtgmc/code/__HELPERS/text.dm
deleted file mode 100644
index ddbd45c4fba..00000000000
--- a/modular_RUtgmc/code/__HELPERS/text.dm
+++ /dev/null
@@ -1,33 +0,0 @@
-GLOBAL_LIST_INIT(ru_key_to_en_key, list("й" = "q", "ц" = "w", "у" = "e", "к" = "r", "е" = "t", "н" = "y", "г" = "u", "ш" = "i", "щ" = "o", "з" = "p", "х" = "\[", "ъ" = "]",
- "ф" = "a", "ы" = "s", "в" = "d", "а" = "f", "п" = "g", "р" = "h", "о" = "j", "л" = "k", "д" = "l", "ж" = ";", "э" = "'",
- "я" = "z", "ч" = "x", "с" = "c", "м" = "v", "и" = "b", "т" = "n", "ь" = "m", "б" = ",", "ю" = "."))
-
-GLOBAL_LIST_INIT(en_key_to_ru_key, list(
- "q" = "й", "w" = "ц", "e" = "у", "r" = "к", "t" = "е", "y" = "н",
- "u" = "г", "i" = "ш", "o" = "щ", "p" = "з",
- "a" = "ф", "s" = "ы", "d" = "в", "f" = "а", "g" = "п", "h" = "р",
- "j" = "о", "k" = "л", "l" = "д", ";" = "ж", "'" = "э", "z" = "я",
- "x" = "ч", "c" = "с", "v" = "м", "b" = "и", "n" = "т", "m" = "ь",
- "," = "б", "." = "ю",
-))
-
-/proc/convert_ru_key_to_en_key(var/_key)
- var/new_key = lowertext(_key)
- new_key = GLOB.ru_key_to_en_key[new_key]
- if(!new_key)
- return _key
- return uppertext(new_key)
-
-/proc/convert_ru_string_to_en_string(text)
- . = ""
- for(var/i in 1 to length_char(text))
- . += convert_ru_key_to_en_key(copytext_char(text, i, i+1))
-
-/proc/sanitize_en_key_to_ru_key(char)
- var/new_char = GLOB.en_key_to_ru_key[lowertext(char)]
- return (new_char != null) ? new_char : char
-
-/proc/sanitize_en_string_to_ru_string(text)
- . = ""
- for(var/i in 1 to length_char(text))
- . += sanitize_en_key_to_ru_key(copytext_char(text, i, i+1))
diff --git a/modular_RUtgmc/code/__HELPERS/unsorted.dm b/modular_RUtgmc/code/__HELPERS/unsorted.dm
deleted file mode 100644
index 723c7dbd476..00000000000
--- a/modular_RUtgmc/code/__HELPERS/unsorted.dm
+++ /dev/null
@@ -1,135 +0,0 @@
-/proc/get_true_location(atom/loc)
- var/atom/subLoc = loc
- while(subLoc.z == 0)
- if (istype(subLoc.loc, /atom))
- subLoc = subLoc.loc
- else
- return subLoc
- return subLoc
-
-#define get_true_turf(loc) get_turf(get_true_location(loc))
-
-GLOBAL_LIST_EMPTY(loose_yautja_gear)
-GLOBAL_LIST_EMPTY(tracked_yautja_gear) // list of pred gear with a tracking element attached
-
-GLOBAL_LIST_EMPTY(mainship_yautja_teleports)
-GLOBAL_LIST_EMPTY(mainship_yautja_desc)
-GLOBAL_LIST_EMPTY(yautja_teleports)
-GLOBAL_LIST_EMPTY(yautja_teleport_descs)
-
-GLOBAL_LIST_INIT_TYPED(all_yautja_capes, /obj/item/clothing/yautja_cape, setup_yautja_capes())
-
-/proc/setup_yautja_capes()
- var/list/cape_list = list()
- for(var/obj/item/clothing/yautja_cape/cape_type as anything in typesof(/obj/item/clothing/yautja_cape))
- cape_list[initial(cape_type.name)] = cape_type
- return cape_list
-
-GLOBAL_VAR_INIT(roles_whitelist, load_role_whitelist())
-
-/proc/load_role_whitelist(filename = "config/role_whitelist.txt")
- var/L[] = file2list(filename)
- var/P[]
- var/W[] = new //We want a temporary whitelist list, in case we need to reload.
-
- var/i
- var/r
- var/ckey
- var/role
- for(i in L)
- if(!i)
- continue
- i = trim(i)
-
- if(!length(i))
- continue
-
- else if(copytext(i, 1, 2) == "#")
- continue
-
- P = splittext(i, "+")
-
- if(!P.len)
- continue
-
- ckey = ckey(P[1]) //Converting their key to canonical form. ckey() does this by stripping all spaces, underscores and converting to lower case.
-
- role = NONE
- r = 1
- while(++r <= P.len)
- switch(ckey(P[r]))
- if("yautja")
- role |= WHITELIST_YAUTJA
- if("yautjalegacy")
- role |= WHITELIST_YAUTJA_LEGACY
- if("yautjacouncil")
- role |= WHITELIST_YAUTJA_COUNCIL
- if("yautjacouncillegacy")
- role |= WHITELIST_YAUTJA_COUNCIL_LEGACY
- if("yautjaleader")
- role |= WHITELIST_YAUTJA_LEADER
-
- W[ckey] = role
-
- return W
-
-//yautja ship AI announcement
-/proc/yautja_announcement(message, title = "You receive a message from your ship AI...", sound_to_play = sound('sound/misc/notice1.ogg'))
- var/list/targets = GLOB.human_mob_list + GLOB.dead_mob_list
- for(var/mob/M in targets)
- if(!isobserver(M)) //observers see everything
- var/mob/living/carbon/human/H = M
- if(!isyautja(H) || H.stat != CONSCIOUS)
- continue
-
- to_chat(M, html = "[title]
[span_alert(message)]")
- SEND_SOUND(M, sound_to_play)
-
-/// Will attempt to find what's holding this item if it's being contained by something, ie if it's in a satchel held by a human, this'll return the human
-/proc/recursive_holder_check(obj/item/held_item, recursion_limit = 3)
- if(recursion_limit <= 0)
- return held_item
- if(!held_item.loc || isturf(held_item.loc))
- return held_item
- recursion_limit--
- return recursive_holder_check(held_item.loc, recursion_limit)
-
-// returns turf relative to A for a given clockwise angle at set range
-// result is bounded to map size
-/proc/get_angle_target_turf(atom/A, angle, range)
- if(!istype(A))
- return null
- var/x = A.x
- var/y = A.y
-
- x += range * sin(angle)
- y += range * cos(angle)
-
- //Restricts to map boundaries while keeping the final angle the same
- var/dx = A.x - x
- var/dy = A.y - y
- var/ratio
-
- if(dy == 0) //prevents divide-by-zero errors
- ratio = INFINITY
- else
- ratio = dx / dy
-
- if(x < 1)
- y += (1 - x) / ratio
- x = 1
- else if (x > world.maxx)
- y += (world.maxx - x) / ratio
- x = world.maxx
- if(y < 1)
- x += (1 - y) * ratio
- y = 1
- else if (y > world.maxy)
- x += (world.maxy - y) * ratio
- y = world.maxy
-
-
- x = round(x,1)
- y = round(y,1)
-
- return locate(x,y,A.z)
diff --git a/modular_RUtgmc/code/_globalvars/lists/flavor_misc.dm b/modular_RUtgmc/code/_globalvars/lists/flavor_misc.dm
deleted file mode 100644
index 38058baae90..00000000000
--- a/modular_RUtgmc/code/_globalvars/lists/flavor_misc.dm
+++ /dev/null
@@ -1,84 +0,0 @@
-//Backpacks
-GLOBAL_LIST_INIT(backpacklist, list("Nothing", "Backpack", "Satchel", "Green Satchel", "Molle Backpack", "Molle Satchel", "Scav Backpack"))
-
-GLOBAL_LIST_INIT(playable_icons, list(
- "behemoth",
- "boiler",
- "bull",
- "captain",
- "clown",
- "military_police",
- "carrier",
- "chief_medical",
- "cl",
- "crusher",
- "cse",
- "defender",
- "defiler",
- "drone",
- "facehugger",
- "fieldcommander",
- "gorger",
- "hivelord",
- "hivemind",
- "hunter",
- "larva",
- "mech_pilot",
- "medical",
- "panther",
- "pilot",
- "praetorian",
- "private",
- "ravager",
- "requisition",
- "researcher",
- "runner",
- "sentinel",
- "spitter",
- "st",
- "staffofficer",
- "synth",
- "warlock",
- "warrior",
- "xenoking",
- "xenominion",
- "xenoqueen",
- "xenoshrike",
- "chimera",
- "predator",
- "thrall",
- "hellhound",
-))
-
-GLOBAL_LIST_EMPTY(human_ethnicities_list)
-GLOBAL_LIST_EMPTY(yautja_ethnicities_list)
-
-GLOBAL_LIST_EMPTY(yautja_hair_styles_list)
-
-GLOBAL_LIST_INIT(ethnicities_list, init_ethnicities())
-
-/// Ethnicity - Initialise all /datum/ethnicity into a list indexed by ethnicity name
-/proc/init_ethnicities()
- . = list()
-
- for(var/path in subtypesof(/datum/ethnicity) - /datum/ethnicity/human - /datum/ethnicity/yautja)
- var/datum/ethnicity/E = new path()
- .[E.name] = E
-
- if(istype(E, /datum/ethnicity/human))
- GLOB.human_ethnicities_list[E.name] = E
-
- if(istype(E, /datum/ethnicity/yautja))
- GLOB.yautja_ethnicities_list[E.name] = E
-
- for(var/path in subtypesof(/datum/sprite_accessory/yautja_hair))
- var/datum/sprite_accessory/yautja_hair/H = new path()
- GLOB.yautja_hair_styles_list[H.name] = H
-
-
-GLOBAL_LIST_INIT(minimap_icons, init_minimap_icons())
-
-/proc/init_minimap_icons()
- . = list()
- for(var/icon_state in GLOB.playable_icons)
- .[icon_state] = icon2base64(icon('modular_RUtgmc/icons/UI_icons/map_blips.dmi', icon_state, frame = 1)) //RUTGMC edit - icon change
diff --git a/modular_RUtgmc/code/_globalvars/lists/mapping.dm b/modular_RUtgmc/code/_globalvars/lists/mapping.dm
deleted file mode 100644
index 6d6d92b58a1..00000000000
--- a/modular_RUtgmc/code/_globalvars/lists/mapping.dm
+++ /dev/null
@@ -1,2 +0,0 @@
-GLOBAL_LIST_EMPTY(start_squad_landmarks_list) //list of all squad roundstart spawn points created
-GLOBAL_LIST_EMPTY(latejoin_squad_landmarks_list) //list of all squad latejoin spawn points created
diff --git a/modular_RUtgmc/code/_globalvars/lists/mobs.dm b/modular_RUtgmc/code/_globalvars/lists/mobs.dm
deleted file mode 100644
index c58e4faec26..00000000000
--- a/modular_RUtgmc/code/_globalvars/lists/mobs.dm
+++ /dev/null
@@ -1,66 +0,0 @@
-GLOBAL_LIST_INIT(all_xeno_types, list(
- /mob/living/carbon/xenomorph/runner,
- /mob/living/carbon/xenomorph/runner/primordial,
- /mob/living/carbon/xenomorph/drone,
- /mob/living/carbon/xenomorph/drone/primordial,
- /mob/living/carbon/xenomorph/sentinel,
- /mob/living/carbon/xenomorph/sentinel/primordial,
- /mob/living/carbon/xenomorph/defender,
- /mob/living/carbon/xenomorph/defender/primordial,
- /mob/living/carbon/xenomorph/gorger,
- /mob/living/carbon/xenomorph/gorger/primordial,
- /mob/living/carbon/xenomorph/hunter,
- /mob/living/carbon/xenomorph/hunter/primordial,
- /mob/living/carbon/xenomorph/panther,
- /mob/living/carbon/xenomorph/panther/primordial,
- /mob/living/carbon/xenomorph/warrior,
- /mob/living/carbon/xenomorph/warrior/primordial,
- /mob/living/carbon/xenomorph/spitter,
- /mob/living/carbon/xenomorph/spitter/primordial,
- /mob/living/carbon/xenomorph/hivelord,
- /mob/living/carbon/xenomorph/hivelord/primordial,
- /mob/living/carbon/xenomorph/carrier,
- /mob/living/carbon/xenomorph/carrier/primordial,
- /mob/living/carbon/xenomorph/bull,
- /mob/living/carbon/xenomorph/bull/primordial,
- /mob/living/carbon/xenomorph/queen,
- /mob/living/carbon/xenomorph/queen/primordial,
- /mob/living/carbon/xenomorph/king,
- /mob/living/carbon/xenomorph/king/primordial,
- /mob/living/carbon/xenomorph/ravager,
- /mob/living/carbon/xenomorph/ravager/primordial,
- /mob/living/carbon/xenomorph/praetorian,
- /mob/living/carbon/xenomorph/praetorian/primordial,
- /mob/living/carbon/xenomorph/boiler,
- /mob/living/carbon/xenomorph/boiler/primordial,
- /mob/living/carbon/xenomorph/defiler,
- /mob/living/carbon/xenomorph/defiler/primordial,
- /mob/living/carbon/xenomorph/crusher,
- /mob/living/carbon/xenomorph/crusher/primordial,
- /mob/living/carbon/xenomorph/shrike,
- /mob/living/carbon/xenomorph/shrike/primordial,
- /mob/living/carbon/xenomorph/warlock,
- /mob/living/carbon/xenomorph/warlock/primordial,
- /mob/living/carbon/xenomorph/behemoth,
- /mob/living/carbon/xenomorph/behemoth/primordial,
- /mob/living/carbon/xenomorph/chimera,
- /mob/living/carbon/xenomorph/chimera/primordial,
- /mob/living/carbon/xenomorph/beetle,
- /mob/living/carbon/xenomorph/mantis,
- /mob/living/carbon/xenomorph/scorpion,
- /mob/living/carbon/xenomorph/facehugger,
- ))
-
-GLOBAL_LIST_INIT(xeno_types_tier_two, list(/mob/living/carbon/xenomorph/hunter, /mob/living/carbon/xenomorph/panther, /mob/living/carbon/xenomorph/warrior, /mob/living/carbon/xenomorph/spitter, /mob/living/carbon/xenomorph/hivelord, /mob/living/carbon/xenomorph/carrier, /mob/living/carbon/xenomorph/bull))
-GLOBAL_LIST_INIT(xeno_types_tier_three, list(/mob/living/carbon/xenomorph/gorger, /mob/living/carbon/xenomorph/ravager, /mob/living/carbon/xenomorph/praetorian, /mob/living/carbon/xenomorph/boiler, /mob/living/carbon/xenomorph/defiler, /mob/living/carbon/xenomorph/crusher, /mob/living/carbon/xenomorph/shrike, /mob/living/carbon/xenomorph/behemoth, /mob/living/carbon/xenomorph/chimera))
-
-GLOBAL_LIST_INIT(forbid_excepts, list(
- /mob/living/carbon/xenomorph/king,
- /mob/living/carbon/xenomorph/queen,
- /mob/living/carbon/xenomorph/shrike,
- /mob/living/carbon/xenomorph/larva,
- /mob/living/carbon/xenomorph/drone,
- ))
-
-GLOBAL_LIST_EMPTY_TYPED(hellhound_list, /mob/living/carbon/xenomorph/hellhound)
-GLOBAL_LIST_EMPTY_TYPED(yautja_mob_list, /mob/living/carbon/human/species/yautja)
diff --git a/modular_RUtgmc/code/_globalvars/lists/objects.dm b/modular_RUtgmc/code/_globalvars/lists/objects.dm
deleted file mode 100644
index f565a991aef..00000000000
--- a/modular_RUtgmc/code/_globalvars/lists/objects.dm
+++ /dev/null
@@ -1 +0,0 @@
-GLOBAL_LIST_EMPTY(xeno_egg_hugger)
diff --git a/modular_RUtgmc/code/_onclick/hud/defines.dm b/modular_RUtgmc/code/_onclick/hud/defines.dm
deleted file mode 100644
index 23084614f90..00000000000
--- a/modular_RUtgmc/code/_onclick/hud/defines.dm
+++ /dev/null
@@ -1,18 +0,0 @@
-//Upper-middle right (damage indicators)
-#define ui_predator_power "EAST-1:28,CENTER:17"
-
-/atom/movable/screen/fullscreen/machine/pred
- alpha = 140
-
-/atom/movable/screen/fullscreen/machine/pred/meson
- icon_state = "pred_meson"
- icon = 'modular_RUtgmc/icons/mob/screen/full.dmi'
-
-/atom/movable/screen/fullscreen/machine/pred/night
- icon_state = "robothalf"
-
-/datum/hud/var/atom/movable/screen/pred_power_icon
-
-/datum/hud/Destroy()
- pred_power_icon = null
- return ..()
diff --git a/modular_RUtgmc/code/_onclick/hud/hud.dm b/modular_RUtgmc/code/_onclick/hud/hud.dm
deleted file mode 100644
index 65068553dc0..00000000000
--- a/modular_RUtgmc/code/_onclick/hud/hud.dm
+++ /dev/null
@@ -1,8 +0,0 @@
-/datum/hud
- var/atom/movable/screen/alien_evolve_display
- var/atom/movable/screen/alien_sunder_display
-
-/datum/hud/Destroy()
- alien_evolve_display = null
-
- return ..()
diff --git a/modular_RUtgmc/code/_onclick/hud/screen_objects/menu_text_objects.dm b/modular_RUtgmc/code/_onclick/hud/screen_objects/menu_text_objects.dm
deleted file mode 100644
index 3701dd4d262..00000000000
--- a/modular_RUtgmc/code/_onclick/hud/screen_objects/menu_text_objects.dm
+++ /dev/null
@@ -1,46 +0,0 @@
-/atom/movable/screen/text/lobby/clickable/MouseEntered(location, control, params)
- . = ..()
- color = COLOR_RUTGMC_RED
-
-/atom/movable/screen/text/lobby/clickable/setup_character
- maptext = "ПЕРСОНАЖ: ..."
-
-/atom/movable/screen/text/lobby/clickable/setup_character/update_text()
- maptext = "ПЕРСОНАЖ: [hud?.mymob.client ? hud.mymob.client.prefs.real_name : "Unknown User"]"
- if(registered)
- return
- RegisterSignal(hud.mymob.client, COMSIG_CLIENT_PREFERENCES_UIACTED, PROC_REF(update_text))
- registered = TRUE
-
-/atom/movable/screen/text/lobby/clickable/join_game
- maptext = "ПРИСОЕДИНИТЬСЯ"
-
-/atom/movable/screen/text/lobby/clickable/observe
- maptext = "НАБЛЮДАТЬ"
-
-/atom/movable/screen/text/lobby/clickable/ready
- maptext = "ВЫ: НЕ ГОТОВЫ"
-
-/atom/movable/screen/text/lobby/clickable/ready/update_text()
- var/mob/new_player/player = hud.mymob
- maptext = "ВЫ: [player.ready ? "" : "НЕ "]ГОТОВЫ"
-
-/atom/movable/screen/text/lobby/clickable/manifest
- maptext = "МАНИФЕСТ МОРПЕХОВ"
-
-/atom/movable/screen/text/lobby/clickable/xenomanifest
- maptext = "МАНИФЕСТ УЛЬЯ"
-
-/atom/movable/screen/text/lobby/clickable/background
- maptext = "ПРЕДЫСТОРИЯ"
-
-/atom/movable/screen/text/lobby/clickable/changelog
- maptext = "ЛОГ ИЗМЕНЕНИЙ"
-
-/atom/movable/screen/text/lobby/clickable/polls/fetch_polls()
- var/mob/new_player/player = hud.mymob
- var/hasnewpolls = player.check_playerpolls()
- if(isnull(hasnewpolls))
- maptext = "НЕТ БАЗЫ ДАННЫХ!"
- return
- maptext = "ПОКАЗАТЬ ОПРОСЫ[hasnewpolls ? " (NEW!)" : ""]"
diff --git a/modular_RUtgmc/code/_onclick/hud/screen_objects/screen_objects.dm b/modular_RUtgmc/code/_onclick/hud/screen_objects/screen_objects.dm
deleted file mode 100644
index 45e62916dca..00000000000
--- a/modular_RUtgmc/code/_onclick/hud/screen_objects/screen_objects.dm
+++ /dev/null
@@ -1,11 +0,0 @@
-/atom/movable/screen/healths
- icon = 'modular_RUtgmc/icons/mob/screen/health.dmi'
-
-/atom/movable/screen/healths/alien
- icon = 'modular_RUtgmc/icons/mob/screen/alien_better.dmi'
-
-/atom/movable/screen/healths/alien/larva
- screen_loc = ui_alien_health_larva // it's in the position of plasma hud, as larva has no plasma hud as such
-
-/atom/movable/screen/stamina_hud
- icon = 'modular_RUtgmc/icons/mob/screen/health.dmi'
diff --git a/modular_RUtgmc/code/_onclick/hud/xeno/larva.dm b/modular_RUtgmc/code/_onclick/hud/xeno/larva.dm
deleted file mode 100644
index 793b6452470..00000000000
--- a/modular_RUtgmc/code/_onclick/hud/xeno/larva.dm
+++ /dev/null
@@ -1,25 +0,0 @@
-/datum/hud/larva/New(mob/living/carbon/xenomorph/larva/owner, ui_style, ui_color, ui_alpha = 230)
- ..()
- var/atom/movable/screen/using
-
- using = new /atom/movable/screen/mov_intent/alien()
- using.alpha = ui_alpha
- using.icon_state = (owner.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
- static_inventory += using
- move_intent = using
-
- using = new /atom/movable/screen/alien/nightvision()
- using.alpha = ui_alpha
- infodisplay += using
-
- alien_evolve_display = new /atom/movable/screen/alien/evolvehud()
- alien_evolve_display.alpha = ui_alpha
- infodisplay += alien_evolve_display
-
- healths = new /atom/movable/screen/healths/alien/larva()
- healths.alpha = ui_alpha
- infodisplay += healths
-
- locate_leader = new /atom/movable/screen/alien/queen_locator()
- locate_leader.alpha = ui_alpha
- infodisplay += locate_leader
diff --git a/modular_RUtgmc/code/_onclick/hud/xeno/xeno.dm b/modular_RUtgmc/code/_onclick/hud/xeno/xeno.dm
deleted file mode 100644
index ad5e4314e5f..00000000000
--- a/modular_RUtgmc/code/_onclick/hud/xeno/xeno.dm
+++ /dev/null
@@ -1,40 +0,0 @@
-/atom/movable/screen/alien/nightvision
- icon = 'modular_RUtgmc/icons/mob/screen/alien_better.dmi'
-
-/atom/movable/screen/alien/queen_locator
- icon = 'modular_RUtgmc/icons/mob/screen/alien_better.dmi'
-
-/atom/movable/screen/alien/plasmadisplay
- name = "plasma stored"
- icon = 'modular_RUtgmc/icons/mob/screen/alien_better.dmi'
- icon_state = "power_display_20"
-
-/atom/movable/screen/alien/evolvehud
- icon = 'modular_RUtgmc/icons/mob/screen/alien_better.dmi'
- name = "Evolve Status"
- desc = "Click for evolve panel."
- icon_state = "evolve_empty"
- screen_loc = ui_evolvehud
-
-/atom/movable/screen/alien/evolvehud/Click()
- . = ..()
- if(!.)
- return
- var/mob/living/carbon/xenomorph/X = usr
- X.Evolve()
-
-/atom/movable/screen/alien/sunderhud
- icon = 'modular_RUtgmc/icons/mob/screen/alien_better.dmi'
- icon_state = "sunder0"
- screen_loc = ui_sunderhud
-
-/datum/hud/alien/New(mob/living/carbon/xenomorph/owner, ui_style, ui_color, ui_alpha = 230)
- ..()
-
- alien_evolve_display = new /atom/movable/screen/alien/evolvehud()
- alien_evolve_display.alpha = ui_alpha
- infodisplay += alien_evolve_display
-
- alien_sunder_display = new /atom/movable/screen/alien/sunderhud()
- alien_sunder_display.alpha = ui_alpha
- infodisplay += alien_sunder_display
diff --git a/modular_RUtgmc/code/_onclick/xeno.dm b/modular_RUtgmc/code/_onclick/xeno.dm
deleted file mode 100644
index 245957c29aa..00000000000
--- a/modular_RUtgmc/code/_onclick/xeno.dm
+++ /dev/null
@@ -1,18 +0,0 @@
-/mob/living/carbon/xenomorph/facehugger/UnarmedAttack(atom/A, has_proximity, modifiers)
- if(lying_angle)
- return FALSE
- if(isclosedturf(get_turf(src)) && !iswallturf(A)) //If we are on a closed turf (e.g. in a wall) we can't attack anything, except walls (or well, resin walls really) so we can't make ourselves be stuck.
- balloon_alert(src, "Cannot reach")
- return FALSE
- if(!(isopenturf(A) || istype(A, /obj/alien/weeds))) //We don't care about open turfs; they don't trigger our melee click cooldown
- changeNext_move(xeno_caste ? xeno_caste.attack_delay : CLICK_CD_MELEE)
- if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED))
- return FALSE
-
- var/atom/S = A.handle_barriers(src)
- S.attack_facehugger(src, xeno_caste.melee_damage * xeno_melee_damage_modifier, isrightclick = islist(modifiers) ? modifiers["right"] : FALSE)
- GLOB.round_statistics.xeno_unarmed_attacks++
- SSblackbox.record_feedback("tally", "round_statistics", 1, "xeno_unarmed_attacks")
-
-/atom/proc/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- return
diff --git a/modular_RUtgmc/code/controllers/configuration/entries.dm b/modular_RUtgmc/code/controllers/configuration/entries.dm
deleted file mode 100644
index 88c1d84bbd6..00000000000
--- a/modular_RUtgmc/code/controllers/configuration/entries.dm
+++ /dev/null
@@ -1,9 +0,0 @@
-/datum/config_entry/number/pred_round
- config_entry_value = 0
- min_val = 0
- max_val = 2
-
-/datum/config_entry/number/pred_round_chance
- config_entry_value = 0
- min_val = 0
- max_val = 100
diff --git a/modular_RUtgmc/code/controllers/configuration/entries/general.dm b/modular_RUtgmc/code/controllers/configuration/entries/general.dm
deleted file mode 100644
index 91894e6d63c..00000000000
--- a/modular_RUtgmc/code/controllers/configuration/entries/general.dm
+++ /dev/null
@@ -1,3 +0,0 @@
-/datum/config_entry/flag/tgs_event_approval_messaging
-
-/datum/config_entry/flag/tgs_adminless_messaging
diff --git a/modular_RUtgmc/code/controllers/subsystem/dbcore.dm b/modular_RUtgmc/code/controllers/subsystem/dbcore.dm
deleted file mode 100644
index d99b50d85a2..00000000000
--- a/modular_RUtgmc/code/controllers/subsystem/dbcore.dm
+++ /dev/null
@@ -1,2 +0,0 @@
-/datum/db_query
- var/no_auto_delete = FALSE
diff --git a/modular_RUtgmc/code/controllers/subsystem/job.dm b/modular_RUtgmc/code/controllers/subsystem/job.dm
deleted file mode 100644
index 64708d21f9c..00000000000
--- a/modular_RUtgmc/code/controllers/subsystem/job.dm
+++ /dev/null
@@ -1,44 +0,0 @@
-//Gives the player the stuff they should have with their rank.
-/datum/controller/subsystem/job/spawn_character(mob/new_player/player, joined_late = FALSE)
- var/mob/living/new_character = player.new_character
- var/datum/job/job = player.assigned_role
-
- new_character.apply_assigned_role_to_spawn(job, player.client, player.assigned_squad)
-
- //If we joined at roundstart we should be positioned at our workstation
- var/turf/spawn_turf
- if(!joined_late || job.job_flags & JOB_FLAG_OVERRIDELATEJOINSPAWN)
- var/datum/job/terragov/squad/marine = job
- var/mob/living/carbon/human/h = new_character
- if(!ishuman(new_character) || !h.assigned_squad || !length_char(GLOB.start_squad_landmarks_list))
- spawn_turf = job.return_spawn_turf(player, player.client)
- else
- spawn_turf = marine.spawn_by_squads(h.assigned_squad.id)
- if(spawn_turf)
- SendToAtom(new_character, spawn_turf)
- else
- SendToLateJoin(new_character, job)
-
- job.radio_help_message(player)
-
- job.after_spawn(new_character, player, joined_late) // note: this happens before new_character has a key!
-
- return new_character
-
-/datum/controller/subsystem/job/SendToLateJoin(mob/M, datum/job/assigned_role)
- switch(assigned_role.faction)
- if(FACTION_SOM)
- if(length(GLOB.latejoinsom))
- SendToAtom(M, pick(GLOB.latejoinsom))
- return
- else
- var/mob/living/carbon/human/h = M
- if(h.assigned_squad && length_char(GLOB.latejoin_squad_landmarks_list))
- SendToAtom(M, pick(GLOB.latejoin_squad_landmarks_list[h.assigned_squad.id]))
- return
- else
- if(length_char(GLOB.latejoin))
- SendToAtom(M, pick(GLOB.latejoin))
- return
- message_admins("Unable to send mob [M] to late join!")
- CRASH("Unable to send mob [M] to late join!")
diff --git a/modular_RUtgmc/code/controllers/subsystem/minimaps.dm b/modular_RUtgmc/code/controllers/subsystem/minimaps.dm
deleted file mode 100644
index 594c098bbfd..00000000000
--- a/modular_RUtgmc/code/controllers/subsystem/minimaps.dm
+++ /dev/null
@@ -1,58 +0,0 @@
-/atom/movable/screen/minimap_locator
- icon = 'modular_RUTGMC/icons/UI_icons/map_blips.dmi'
-
-/datum/controller/subsystem/minimaps/proc/add_zlevel(zlevel)
- minimaps_by_z["[zlevel]"] = new /datum/hud_displays
- var/icon/icon_gen = new('icons/UI_icons/minimap.dmi') //480x480 blank icon template for drawing on the map
- for(var/xval = 1 to world.maxx)
- for(var/yval = 1 to world.maxy) //Scan all the turfs and draw as needed
- var/turf/location = locate(xval,yval,zlevel)
- if(isspaceturf(location))
- continue
- if(location.density)
- icon_gen.DrawBox(location.minimap_color, xval, yval)
- continue
- var/atom/movable/alttarget = (locate(/obj/machinery/door) in location) || (locate(/obj/structure/fence) in location)
- if(alttarget)
- icon_gen.DrawBox(alttarget.minimap_color, xval, yval)
- continue
- var/area/turfloc = location.loc
- if(turfloc.minimap_color)
- icon_gen.DrawBox(BlendRGB(location.minimap_color, turfloc.minimap_color, 0.5), xval, yval)
- continue
- icon_gen.DrawBox(location.minimap_color, xval, yval)
- icon_gen.Scale(480*2,480*2) //scale it up x2 to make it easer to see
- icon_gen.Crop(1, 1, min(icon_gen.Width(), 480), min(icon_gen.Height(), 480)) //then cut all the empty pixels
- //generation is done, now we need to center the icon to someones view, this can be left out if you like it ugly and will halve SSinit time
- //calculate the offset of the icon
- var/largest_x = 0
- var/smallest_x = SCREEN_PIXEL_SIZE
- var/largest_y = 0
- var/smallest_y = SCREEN_PIXEL_SIZE
- for(var/xval=1 to SCREEN_PIXEL_SIZE step 2) //step 2 is twice as fast :)
- for(var/yval=1 to SCREEN_PIXEL_SIZE step 2) //keep in mind 1 wide giant straight lines will offset wierd but you shouldnt be mapping those anyway right???
- if(!icon_gen.GetPixel(xval, yval))
- continue
- if(xval > largest_x)
- largest_x = xval
- else if(xval < smallest_x)
- smallest_x = xval
- if(yval > largest_y)
- largest_y = yval
- else if(yval < smallest_y)
- smallest_y = yval
-
- minimaps_by_z["[zlevel]"].x_offset = FLOOR((SCREEN_PIXEL_SIZE-largest_x-smallest_x)/2, 1)
- minimaps_by_z["[zlevel]"].y_offset = FLOOR((SCREEN_PIXEL_SIZE-largest_y-smallest_y)/2, 1)
-
- icon_gen.Shift(EAST, minimaps_by_z["[zlevel]"].x_offset)
- icon_gen.Shift(NORTH, minimaps_by_z["[zlevel]"].y_offset)
-
- minimaps_by_z["[zlevel]"].hud_image = icon_gen //done making the image!
-
-/datum/action/minimap/yautja
- minimap_flags = MINIMAP_FLAG_XENO|MINIMAP_FLAG_MARINE|MINIMAP_FLAG_MARINE_SOM|MINIMAP_FLAG_YAUTJA
- marker_flags = MINIMAP_FLAG_YAUTJA
-
-/datum/action/minimap/observer
- minimap_flags = MINIMAP_FLAG_XENO|MINIMAP_FLAG_MARINE|MINIMAP_FLAG_MARINE_SOM|MINIMAP_FLAG_EXCAVATION_ZONE|MINIMAP_FLAG_YAUTJA
diff --git a/modular_RUtgmc/code/controllers/subsystem/points.dm b/modular_RUtgmc/code/controllers/subsystem/points.dm
deleted file mode 100644
index 6b3fb3c02d8..00000000000
--- a/modular_RUtgmc/code/controllers/subsystem/points.dm
+++ /dev/null
@@ -1,37 +0,0 @@
-/datum/controller/subsystem/points
- ///Assoc list of personal supply points
- var/personal_supply_points = list()
- ///Personal supply points gain modifier
- var/psp_multiplier = 0.075
- ///Personal supply points limit
- var/psp_limit = 600
- ///Var used to calculate points difference between updates
- var/supply_points_old = 0
-
-/datum/controller/subsystem/points/fire(resumed = FALSE)
- . = ..()
-
- for(var/key in supply_points)
- for(var/mob/living/account in GLOB.alive_human_list_faction[key])
- if(account.job.title in GLOB.jobs_marines)
- personal_supply_points[account.ckey] = min(personal_supply_points[account.ckey] + max(supply_points[key] - supply_points_old, 0) * psp_multiplier, psp_limit)
- supply_points_old = supply_points[key]
-
-/datum/controller/subsystem/points/proc/buy_using_psp(mob/living/user)
- var/cost = 0
- var/list/ckey_shopping_cart = request_shopping_cart[user.ckey]
- if(!length_char(ckey_shopping_cart))
- return
- if(length_char(ckey_shopping_cart) > 20)
- return
- for(var/i in ckey_shopping_cart)
- var/datum/supply_packs/SP = supply_packs[i]
- cost += SP.cost * ckey_shopping_cart[i]
- if(cost > personal_supply_points[user.ckey])
- return
- var/list/datum/supply_order/orders = process_cart(user, ckey_shopping_cart)
- for(var/i in 1 to length_char(orders))
- orders[i].authorised_by = user.real_name
- LAZYADDASSOCSIMPLE(shoppinglist[user.faction], "[orders[i].id]", orders[i])
- personal_supply_points[user.ckey] -= cost
- ckey_shopping_cart.Cut()
diff --git a/modular_RUtgmc/code/controllers/subsystem/processing/resinshaping.dm b/modular_RUtgmc/code/controllers/subsystem/processing/resinshaping.dm
deleted file mode 100644
index b8b2419dcb5..00000000000
--- a/modular_RUtgmc/code/controllers/subsystem/processing/resinshaping.dm
+++ /dev/null
@@ -1,91 +0,0 @@
-/// Controls how many quickbuilds each xenomorph gets.
-#define QUICKBUILD_STRUCTURES_PER_XENO 600
-
-SUBSYSTEM_DEF(resinshaping)
- name = "Resin Shaping"
- flags = SS_NO_FIRE
- /// A list used to count how many buildings were built by player ckey , counter[ckey] = [build_count]
- var/list/xeno_builds_counter = list()
- /// Counter for quickbuild points, as long as this is above 0 building is instant.
- var/list/quickbuild_points_by_hive = list()
- /// Counter for total structures built
- var/total_structures_built = 0
- /// Counter for total refunds of structures
- var/total_structures_refunded = 0
- /// Whether or not quickbuild is enabled. Set to FALSE when the game starts.
- var/active = TRUE
-
-/datum/controller/subsystem/resinshaping/stat_entry()
- if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
- return "BUILT=[total_structures_built] REFUNDED=[total_structures_refunded]"
- else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
- return "QUICKBUILD POINTS (NORMAL HIVE)=[quickbuild_points_by_hive[XENO_HIVE_NORMAL]]"
- else
- return "OFFLINE"
-
-/datum/controller/subsystem/resinshaping/proc/toggle_off()
- SIGNAL_HANDLER
- active = FALSE
- UnregisterSignal(SSdcs, list(COMSIG_GLOB_OPEN_SHUTTERS_EARLY, COMSIG_GLOB_OPEN_TIMED_SHUTTERS_LATE,COMSIG_GLOB_OPEN_TIMED_SHUTTERS_XENO_HIVEMIND,COMSIG_GLOB_TADPOLE_LAUNCHED,COMSIG_GLOB_DROPPOD_LANDED))
-
-/datum/controller/subsystem/resinshaping/Initialize()
- RegisterSignals(SSdcs, list(COMSIG_GLOB_OPEN_SHUTTERS_EARLY, COMSIG_GLOB_OPEN_TIMED_SHUTTERS_LATE,COMSIG_GLOB_OPEN_TIMED_SHUTTERS_XENO_HIVEMIND,COMSIG_GLOB_TADPOLE_LAUNCHED,COMSIG_GLOB_DROPPOD_LANDED), PROC_REF(toggle_off))
- for(var/hivenumber in GLOB.hive_datums)
- quickbuild_points_by_hive[hivenumber] = SSmapping.configs[GROUND_MAP].quickbuilds
- return SS_INIT_SUCCESS
-
-/// Retrieves a mob's building points using their ckey. Only works for mobs with clients.
-/datum/controller/subsystem/resinshaping/proc/get_building_points(mob/living/carbon/xenomorph/the_builder)
- if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
- var/player_key = "[the_builder.client?.ckey]"
- if(!player_key)
- return 0
- return QUICKBUILD_STRUCTURES_PER_XENO - xeno_builds_counter[player_key]
- else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
- return quickbuild_points_by_hive[the_builder.get_xeno_hivenumber()]
-
-/// Increments a mob buildings count , using their ckey.
-/datum/controller/subsystem/resinshaping/proc/increment_build_counter(mob/living/carbon/xenomorph/the_builder)
- if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
- var/player_key = "[the_builder.client?.ckey]"
- if(!player_key)
- return
- xeno_builds_counter[player_key]++
- total_structures_built++
- else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
- quickbuild_points_by_hive[the_builder.get_xeno_hivenumber()]--
-
-/// Decrements a mob buildings count , using their ckey.
-/datum/controller/subsystem/resinshaping/proc/decrement_build_counter(mob/living/carbon/xenomorph/the_builder)
- if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
- var/player_key = "[the_builder.client?.ckey]"
- if(!player_key)
- return 0
- xeno_builds_counter[player_key]--
- total_structures_refunded++
- total_structures_built--
- else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
- quickbuild_points_by_hive[the_builder.hivenumber]++
-
-/// Returns a TRUE if a structure should be refunded and instant deconstructed , or false if not
-/datum/controller/subsystem/resinshaping/proc/should_refund(atom/structure, mob/living/carbon/xenomorph/the_demolisher)
- if(SSticker.mode?.quickbuild_points_flags & MODE_PERSONAL_QUICKBUILD_POINTS)
- var/player_key = "[the_demolisher.client?.ckey]"
- // could be a AI mob thats demolishing without a player key.
- if(!player_key || !active)
- return FALSE
- if(istype(structure, /obj/alien/resin/sticky) && !istype(structure,/obj/alien/resin/sticky/thin))
- return TRUE
- if(istype(structure, /turf/closed/wall/resin))
- return TRUE
- if(istype(structure, /obj/structure/mineral_door/resin))
- return TRUE
- if(istype(structure, /obj/structure/bed/nest))
- return TRUE
- return FALSE
- else if(SSticker.mode?.quickbuild_points_flags & MODE_GENERAL_QUICKBUILD_POINTS)
- if(active)
- return TRUE
- return FALSE
-
-#undef QUICKBUILD_STRUCTURES_PER_XENO
diff --git a/modular_RUtgmc/code/datums/actions/ability_actions.dm b/modular_RUtgmc/code/datums/actions/ability_actions.dm
deleted file mode 100644
index 242abfc10a3..00000000000
--- a/modular_RUtgmc/code/datums/actions/ability_actions.dm
+++ /dev/null
@@ -1,3 +0,0 @@
-/datum/action/ability
- action_icon = 'modular_RUtgmc/icons/Xeno/actions.dmi'
- background_icon = 'modular_RUtgmc/icons/Xeno/actions.dmi'
diff --git a/modular_RUtgmc/code/datums/actions/actions/action.dm b/modular_RUtgmc/code/datums/actions/actions/action.dm
deleted file mode 100644
index 3c2bbef9f7c..00000000000
--- a/modular_RUtgmc/code/datums/actions/actions/action.dm
+++ /dev/null
@@ -1,15 +0,0 @@
-/datum/action
- action_icon = 'modular_RUtgmc/icons/mob/actions.dmi'
- background_icon = 'modular_RUtgmc/icons/mob/actions.dmi'
-
-/datum/action/observer_action/show_hivestatus
- action_icon = 'modular_RUtgmc/icons/Xeno/actions.dmi'
-
-/atom/movable/screen/action_button
- icon = 'modular_RUtgmc/icons/mob/actions.dmi'
-
-/atom/movable/screen/action_button/hide_toggle
- icon = 'modular_RUtgmc/icons/mob/actions.dmi'
-
-/atom/movable/vis_obj/action
- icon = 'modular_RUtgmc/icons/mob/actions.dmi'
diff --git a/modular_RUtgmc/code/datums/actions/observer_action.dm b/modular_RUtgmc/code/datums/actions/observer_action.dm
deleted file mode 100644
index 55f67172f0d..00000000000
--- a/modular_RUtgmc/code/datums/actions/observer_action.dm
+++ /dev/null
@@ -1,91 +0,0 @@
-/datum/action/observer_action/find_facehugger_spawn
- name = "Spawn as Facehugger"
- action_icon = 'modular_RUtgmc/icons/Xeno/actions.dmi'
- action_icon_state = "hugger_set"
-
-/datum/action/observer_action/find_facehugger_spawn/action_activate()
- var/mob/dead/observer/dead_owner = owner
- if(GLOB.key_to_time_of_death[owner.key] + TIME_BEFORE_TAKING_BODY > world.time && !dead_owner.started_as_observer)
- to_chat(owner, span_warning("You died too recently to be able to take a new mob."))
- return
-
- var/list/spawn_point = list()
- var/list/area_names = list()
- var/list/area_namecounts = list()
- var/name
-
- for(var/mob/living/carbon/xenomorph/potential_xeno AS in GLOB.alive_xeno_list)
- if(dead_owner.z != potential_xeno.z)
- continue
- if(!isxenocarrier(potential_xeno))
- continue
-
- var/mob/living/carbon/xenomorph/carrier/selected_carrier = potential_xeno
- if(selected_carrier.huggers_reserved >= selected_carrier.huggers)
- continue
-
- name = selected_carrier.name
- spawn_point[name] = potential_xeno
-
- for(var/obj/alien/egg/hugger/potential_egg AS in GLOB.xeno_egg_hugger)
- if(dead_owner.z != potential_egg.z)
- continue
- if(potential_egg.maturity_stage != potential_egg.stage_ready_to_burst)
- continue
- if(!potential_egg.hugger_type)
- continue
- if(istype(potential_egg, /obj/alien/egg/hugger/forsaken))
- continue
-
- var/area_egg = get_area(potential_egg)
- if(area_egg in area_names)
- area_namecounts[area_egg]++
- name = "[potential_egg.name] at [area_egg] ([area_namecounts[area_egg]])"
- else
- area_names.Add(area_egg)
- area_namecounts[area_egg] = 1
- name = "[potential_egg.name] at [get_area(potential_egg)]"
-
- spawn_point[name] = potential_egg
-
- if(!length_char(spawn_point))
- to_chat(owner, span_warning("There are no spawn points for facehugger on your Z-level."))
- return
-
- var/selected = tgui_input_list(usr, "Please select a spawn point:", "Spawn as Facehugger", spawn_point)
- if(!selected)
- return
-
- var/target = spawn_point[selected]
- dead_owner.abstract_move(get_turf(target))
-
-/datum/action/observer_action/join_predator
- name = "Join the Hunt"
- action_icon_state = "pred_ghost"
-
-/datum/action/observer_action/join_predator/give_action(mob/M)
- var/owner_ckey = M.client?.ckey
- if(!owner_ckey)
- return
-
- if(!(GLOB.roles_whitelist[owner_ckey] & WHITELIST_PREDATOR))
- return
-
- if(!SSticker.mode || !(SSticker.mode.flags_round_type & MODE_PREDATOR))
- RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(handle_button_status_visuals))
-
- . = ..()
-
-/datum/action/observer_action/join_predator/can_use_action()
- if(!SSticker.mode || !(SSticker.mode.flags_round_type & MODE_PREDATOR))
- return FALSE
- return TRUE
-
-/datum/action/observer_action/join_predator/action_activate()
- var/mob/dead/observer/activator = owner
- if(SSticker.current_state < GAME_STATE_PLAYING || !SSticker.mode)
- to_chat(activator, span_warning("The game hasn't started yet!"))
- return
-
- if(SSticker.mode.check_predator_late_join(activator))
- SSticker.mode.join_predator(activator)
diff --git a/modular_RUtgmc/code/datums/actions/xeno_action.dm b/modular_RUtgmc/code/datums/actions/xeno_action.dm
deleted file mode 100644
index c5bcd5c1dac..00000000000
--- a/modular_RUtgmc/code/datums/actions/xeno_action.dm
+++ /dev/null
@@ -1,7 +0,0 @@
-/datum/action/ability/xeno_action
- action_icon = 'modular_RUtgmc/icons/Xeno/actions.dmi'
- background_icon = 'modular_RUtgmc/icons/Xeno/actions.dmi'
-
-/datum/action/bump_attack_toggle
- action_icon = 'modular_RUtgmc/icons/Xeno/actions.dmi'
- background_icon = 'modular_RUtgmc/icons/Xeno/actions.dmi'
diff --git a/modular_RUtgmc/code/datums/jobs/squads.dm b/modular_RUtgmc/code/datums/jobs/squads.dm
index 6e6d1d7e96c..7fe63837b75 100644
--- a/modular_RUtgmc/code/datums/jobs/squads.dm
+++ b/modular_RUtgmc/code/datums/jobs/squads.dm
@@ -6,9 +6,9 @@
tracking_id = SSdirection.init_squad(name, squad_leader)
for(var/state in GLOB.playable_squad_icons)
- var/icon/top = icon('modular_RUtgmc/icons/UI_icons/map_blips.dmi', state, frame = 1)
+ var/icon/top = icon('icons/UI_icons/map_blips.dmi', state, frame = 1)
top.Blend(color, ICON_MULTIPLY)
- var/icon/bottom = icon('modular_RUtgmc/icons/UI_icons/map_blips.dmi', "squad_underlay", frame = 1)
+ var/icon/bottom = icon('icons/UI_icons/map_blips.dmi', "squad_underlay", frame = 1)
top.Blend(bottom, ICON_UNDERLAY)
var/icon_state = lowertext(name) + "_" + state
diff --git a/modular_RUtgmc/code/game/objects/items/radio/headset.dm b/modular_RUtgmc/code/game/objects/items/radio/headset.dm
index 24548d79d10..e237d5b49d1 100644
--- a/modular_RUtgmc/code/game/objects/items/radio/headset.dm
+++ b/modular_RUtgmc/code/game/objects/items/radio/headset.dm
@@ -21,26 +21,26 @@
if(wearer.stat == DEAD)
if(HAS_TRAIT(wearer, TRAIT_UNDEFIBBABLE))
if(issynth(wearer))
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable_synt"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "undefibbable_synt"))
else if(isrobot(wearer))
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable_robo"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "undefibbable_robo"))
else if(ishuman(wearer))
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "undefibbable"))
return
if(!wearer.client)
var/mob/dead/observer/ghost = wearer.get_ghost()
if(!ghost?.can_reenter_corpse)
if(issynth(wearer))
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable_synt"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "undefibbable_synt"))
else if(isrobot(wearer))
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable_robo"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "undefibbable_robo"))
else if(ishuman(wearer))
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "undefibbable"))
return
if(issynth(wearer))
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "defibbable_synt"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "defibbable_synt"))
else if(isrobot(wearer))
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "defibbable_robo"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "defibbable_robo"))
else if(ishuman(wearer))
var/stage
switch(wearer.dead_ticks)
@@ -50,19 +50,19 @@
stage = 2
if(0.8 * TIME_BEFORE_DNR to INFINITY)
stage = 3
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "defibbable[stage]"))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, "defibbable[stage]"))
return
if(wearer.assigned_squad)
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, lowertext(wearer.assigned_squad.name)+"_"+wearer.job.minimap_icon))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, lowertext(wearer.assigned_squad.name)+"_"+wearer.job.minimap_icon))
/* //Выключил ибо у нас свой набор иконок который и так не грейскейл
- var/image/underlay = image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "squad_underlay")
- var/image/overlay = image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, wearer.job.minimap_icon)
+ var/image/underlay = image('icons/UI_icons/map_blips.dmi', null, "squad_underlay")
+ var/image/overlay = image('icons/UI_icons/map_blips.dmi', null, wearer.job.minimap_icon)
overlay.color = wearer.assigned_squad.color
underlay.overlays += overlay
SSminimaps.add_marker(wearer, marker_flags, underlay)
*/
return
- SSminimaps.add_marker(wearer, marker_flags, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, wearer.job.minimap_icon))
+ SSminimaps.add_marker(wearer, marker_flags, image('icons/UI_icons/map_blips.dmi', null, wearer.job.minimap_icon))
/obj/item/radio/headset/mainship/mcom
var/loud = FALSE
diff --git a/modular_RUtgmc/code/game/objects/machinery/miner.dm b/modular_RUtgmc/code/game/objects/machinery/miner.dm
index a3a0c8c4c37..6ca9d42477d 100644
--- a/modular_RUtgmc/code/game/objects/machinery/miner.dm
+++ b/modular_RUtgmc/code/game/objects/machinery/miner.dm
@@ -22,7 +22,7 @@
start_processing()
SSminimaps.remove_marker(src)
var/marker_icon = "miner_[mineral_value >= PLATINUM_CRATE_SELL_AMOUNT ? "platinum" : "phoron"]_on"
- SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, marker_icon))
+ SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, marker_icon))
miner_status = MINER_RUNNING
if(!camera.status)
camera.toggle_cam(null, FALSE)
diff --git a/modular_RUtgmc/code/modules/cm_preds/yaut_bracers.dm b/modular_RUtgmc/code/modules/cm_preds/yaut_bracers.dm
index a28bc9bfda7..3c401e27253 100644
--- a/modular_RUtgmc/code/modules/cm_preds/yaut_bracers.dm
+++ b/modular_RUtgmc/code/modules/cm_preds/yaut_bracers.dm
@@ -809,16 +809,16 @@
SSminimaps.remove_marker(owner)
if(!isyautja(owner))
- SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "bracer_stolen"))
+ SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('icons/UI_icons/map_blips.dmi', null, "bracer_stolen"))
if(owner.stat >= DEAD)
if(HAS_TRAIT(owner, TRAIT_UNDEFIBBABLE))
- SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable"))
+ SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('icons/UI_icons/map_blips.dmi', null, "undefibbable"))
else
- SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "defibbable"))
+ SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('icons/UI_icons/map_blips.dmi', null, "defibbable"))
else
- SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, minimap_icon))
+ SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('icons/UI_icons/map_blips.dmi', null, minimap_icon))
if(owner?.stat >= DEAD)
- SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable"))
+ SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('icons/UI_icons/map_blips.dmi', null, "undefibbable"))
/*
*This is the main proc for checking AND draining the bracer energy. It must have human passed as an argument.
@@ -986,12 +986,12 @@
if(!wearer_turf)
return
- SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, minimap_icon))
+ SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('icons/UI_icons/map_blips.dmi', null, minimap_icon))
if(owner.stat >= DEAD)
if(HAS_TRAIT(owner, TRAIT_UNDEFIBBABLE))
- SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "undefibbable"))
+ SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('icons/UI_icons/map_blips.dmi', null, "undefibbable"))
else
- SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "defibbable"))
+ SSminimaps.add_marker(owner, MINIMAP_FLAG_YAUTJA, image('icons/UI_icons/map_blips.dmi', null, "defibbable"))
/obj/item/clothing/gloves/yautja/hunter
name = "clan bracers"
diff --git a/modular_RUtgmc/code/modules/mob/living/carbon/human/yautja.dm b/modular_RUtgmc/code/modules/mob/living/carbon/human/yautja.dm
index 7254d627719..afbf2b67103 100644
--- a/modular_RUtgmc/code/modules/mob/living/carbon/human/yautja.dm
+++ b/modular_RUtgmc/code/modules/mob/living/carbon/human/yautja.dm
@@ -57,7 +57,7 @@
knock_down_reduction = 4
stun_reduction = 4
- icobase = 'modular_RUtgmc/icons/mob/hunter/r_predator.dmi'
+ icobase = 'icons/mob/hunter/r_predator.dmi'
/datum/species/yautja/handle_death(mob/living/carbon/human/H, gibbed)
if(gibbed)
@@ -188,25 +188,25 @@ var/global/image/hud_icon_hunter_thralled
holder.overlays.Cut()
if(hunter_data.hunted)
if(!hud_icon_hunter_hunted)
- hud_icon_hunter_hunted = image('modular_RUtgmc/icons/mob/screen/yautja.dmi', src, "hunter_hunted")
+ hud_icon_hunter_hunted = image('icons/mob/screen/yautja.dmi', src, "hunter_hunted")
holder.overlays += hud_icon_hunter_hunted
if(hunter_data.dishonored)
if(!hud_icon_hunter_dishonored)
- hud_icon_hunter_dishonored = image('modular_RUtgmc/icons/mob/screen/yautja.dmi', src, "hunter_dishonored")
+ hud_icon_hunter_dishonored = image('icons/mob/screen/yautja.dmi', src, "hunter_dishonored")
holder.overlays += hud_icon_hunter_dishonored
else if(hunter_data.honored)
if(!hud_icon_hunter_honored)
- hud_icon_hunter_honored = image('modular_RUtgmc/icons/mob/screen/yautja.dmi', src, "hunter_honored")
+ hud_icon_hunter_honored = image('icons/mob/screen/yautja.dmi', src, "hunter_honored")
holder.overlays += hud_icon_hunter_honored
if(hunter_data.thralled)
if(!hud_icon_hunter_thralled)
- hud_icon_hunter_thralled = image('modular_RUtgmc/icons/mob/screen/yautja.dmi', src, "hunter_thralled")
+ hud_icon_hunter_thralled = image('icons/mob/screen/yautja.dmi', src, "hunter_thralled")
holder.overlays += hud_icon_hunter_thralled
else if(hunter_data.gear)
if(!hud_icon_hunter_gear)
- hud_icon_hunter_gear = image('modular_RUtgmc/icons/mob/screen/yautja.dmi', src, "hunter_gear")
+ hud_icon_hunter_gear = image('icons/mob/screen/yautja.dmi', src, "hunter_gear")
holder.overlays += hud_icon_hunter_gear
hud_list[HUNTER_HUD] = holder
@@ -221,16 +221,16 @@ var/global/image/hud_icon_hunter_thralled
holder.pixel_y = 20
if(hunter_data.hunted)
if(!hud_icon_hunter_hunted)
- hud_icon_hunter_hunted = image('modular_RUtgmc/icons/mob/screen/yautja.dmi', src, "hunter_hunted")
+ hud_icon_hunter_hunted = image('icons/mob/screen/yautja.dmi', src, "hunter_hunted")
holder.overlays += hud_icon_hunter_hunted
if(hunter_data.dishonored)
if(!hud_icon_hunter_dishonored)
- hud_icon_hunter_dishonored = image('modular_RUtgmc/icons/mob/screen/yautja.dmi', src, "hunter_dishonored")
+ hud_icon_hunter_dishonored = image('icons/mob/screen/yautja.dmi', src, "hunter_dishonored")
holder.overlays += hud_icon_hunter_dishonored
else if(hunter_data.honored)
if(!hud_icon_hunter_honored)
- hud_icon_hunter_honored = image('modular_RUtgmc/icons/mob/screen/yautja.dmi', src, "hunter_honored")
+ hud_icon_hunter_honored = image('icons/mob/screen/yautja.dmi', src, "hunter_honored")
holder.overlays += hud_icon_hunter_honored
hud_list[HUNTER_HUD] = holder
diff --git a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/facehugger/abilities_facehugger.dm b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/facehugger/abilities_facehugger.dm
index 37d880d674b..b209a365018 100644
--- a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/facehugger/abilities_facehugger.dm
+++ b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/facehugger/abilities_facehugger.dm
@@ -76,7 +76,7 @@
if(owner.layer == XENO_HIDING_LAYER) //Xeno is currently hiding, unhide him
owner.layer = MOB_LAYER
var/datum/action/ability/xeno_action/xenohide/hide_action = owner.actions_by_path[/datum/action/ability/xeno_action/xenohide]
- hide_action?.button?.cut_overlay(mutable_appearance('modular_RUtgmc/icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // Removes Hide action icon border
+ hide_action?.button?.cut_overlay(mutable_appearance('icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE)) // Removes Hide action icon border
if(owner.buckled)
owner.buckled.unbuckle_mob(owner)
diff --git a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/hivemind/abilities_hivemind.dm b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/hivemind/abilities_hivemind.dm
index f4b4dd20fab..783bae35c34 100644
--- a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/hivemind/abilities_hivemind.dm
+++ b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/hivemind/abilities_hivemind.dm
@@ -1,11 +1,11 @@
//List of Hivemind resin structure images
GLOBAL_LIST_INIT(hivemind_resin_images_list, list(
- RESIN_WALL = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = RESIN_WALL),
- STICKY_RESIN = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = STICKY_RESIN),
- RESIN_DOOR = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = RESIN_DOOR),
- ALIEN_NEST = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = ALIEN_NEST),
- GROWTH_WALL = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = GROWTH_WALL),
- GROWTH_DOOR = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = GROWTH_DOOR)
+ RESIN_WALL = image('icons/Xeno/actions.dmi', icon_state = RESIN_WALL),
+ STICKY_RESIN = image('icons/Xeno/actions.dmi', icon_state = STICKY_RESIN),
+ RESIN_DOOR = image('icons/Xeno/actions.dmi', icon_state = RESIN_DOOR),
+ ALIEN_NEST = image('icons/Xeno/actions.dmi', icon_state = ALIEN_NEST),
+ GROWTH_WALL = image('icons/Xeno/actions.dmi', icon_state = GROWTH_WALL),
+ GROWTH_DOOR = image('icons/Xeno/actions.dmi', icon_state = GROWTH_DOOR)
))
/datum/action/ability/xeno_action/sow/hivemind
diff --git a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/panther/abilities_panther.dm b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/panther/abilities_panther.dm
index d84c4b01bdb..0c5a5081861 100644
--- a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/panther/abilities_panther.dm
+++ b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/panther/abilities_panther.dm
@@ -497,10 +497,10 @@
// This is cursed, don't copy this code its the WRONG way to do this.
// TODO: generate this from GLOB.panther_toxin_type_list (or wait while offtgmc reworks the defiler code and then copy it )
var/static/list/panther_toxin_images_list = list(
- PANTHER_HEMODILE = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = PANTHER_HEMODILE),
- PANTHER_TRANSVITOX = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = PANTHER_TRANSVITOX),
- PANTHER_OZELOMELYN = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = PANTHER_OZELOMELYN),
- PANTHER_SANGUINAL = image('modular_RUtgmc/icons/Xeno/actions.dmi', icon_state = PANTHER_SANGUINAL),
+ PANTHER_HEMODILE = image('icons/Xeno/actions.dmi', icon_state = PANTHER_HEMODILE),
+ PANTHER_TRANSVITOX = image('icons/Xeno/actions.dmi', icon_state = PANTHER_TRANSVITOX),
+ PANTHER_OZELOMELYN = image('icons/Xeno/actions.dmi', icon_state = PANTHER_OZELOMELYN),
+ PANTHER_SANGUINAL = image('icons/Xeno/actions.dmi', icon_state = PANTHER_SANGUINAL),
)
var/toxin_choice = show_radial_menu(owner, owner, panther_toxin_images_list, radius = 48)
if(!toxin_choice)
diff --git a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/life.dm b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/life.dm
index 5167683cb51..04e98c23280 100644
--- a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/life.dm
+++ b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/life.dm
@@ -43,9 +43,9 @@
amount = round(evolution_stored * 100 / xeno_caste.evolution_threshold, 5)
hud_used.alien_evolve_display.icon_state = "evolve[amount]"
if(!hive.check_ruler() && !isxenolarva(src))
- hud_used.alien_evolve_display.overlays += image('modular_RUtgmc/icons/mob/screen/alien_better.dmi', icon_state = "evolve_cant")
+ hud_used.alien_evolve_display.overlays += image('icons/mob/screen/alien_better.dmi', icon_state = "evolve_cant")
else
- hud_used.alien_evolve_display.overlays -= image('modular_RUtgmc/icons/mob/screen/alien_better.dmi', icon_state = "evolve_cant")
+ hud_used.alien_evolve_display.overlays -= image('icons/mob/screen/alien_better.dmi', icon_state = "evolve_cant")
else
hud_used.alien_evolve_display.icon_state = "evolve_empty"
else
@@ -59,15 +59,15 @@
hud_used.alien_sunder_display.icon_state = "sunder[amount]"
switch(amount)
if(80 to 100)
- hud_used.alien_sunder_display.overlays += image('modular_RUtgmc/icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn0")
+ hud_used.alien_sunder_display.overlays += image('icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn0")
if(60 to 80)
- hud_used.alien_sunder_display.overlays += image('modular_RUtgmc/icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn1")
+ hud_used.alien_sunder_display.overlays += image('icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn1")
if(40 to 60)
- hud_used.alien_sunder_display.overlays += image('modular_RUtgmc/icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn2")
+ hud_used.alien_sunder_display.overlays += image('icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn2")
if(20 to 40)
- hud_used.alien_sunder_display.overlays += image('modular_RUtgmc/icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn3")
+ hud_used.alien_sunder_display.overlays += image('icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn3")
if(0 to 20)
- hud_used.alien_sunder_display.overlays += image('modular_RUtgmc/icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn4")
+ hud_used.alien_sunder_display.overlays += image('icons/mob/screen/alien_better.dmi', icon_state = "sunder_warn4")
else
hud_used.alien_sunder_display.icon_state = "sunder0"
diff --git a/modular_RUtgmc/code/modules/xenomorph/xeno_structures.dm b/modular_RUtgmc/code/modules/xenomorph/xeno_structures.dm
index c8f2a335af0..9d896233487 100644
--- a/modular_RUtgmc/code/modules/xenomorph/xeno_structures.dm
+++ b/modular_RUtgmc/code/modules/xenomorph/xeno_structures.dm
@@ -46,14 +46,14 @@
/obj/structure/xeno/evotower/Initialize(mapload, _hivenumber)
. = ..()
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "tower"))
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, "tower"))
/obj/structure/xeno/evotower/ex_act(severity)
take_damage(severity * 2.5, BRUTE, BOMB)
/obj/structure/xeno/psychictower/Initialize(mapload, _hivenumber)
. = ..()
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "tower"))
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, "tower"))
/obj/structure/xeno/psychictower/ex_act(severity)
take_damage(severity * 2.5, BRUTE, BOMB)
@@ -63,7 +63,7 @@
/obj/structure/xeno/plant/Initialize(mapload, _hivenumber)
. = ..()
- SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('modular_RUtgmc/icons/UI_icons/map_blips.dmi', null, "[mature_icon_state]"))
+ SSminimaps.add_marker(src, MINIMAP_FLAG_XENO, image('icons/UI_icons/map_blips.dmi', null, "[mature_icon_state]"))
/obj/structure/xeno/trap/ex_act(severity)
take_damage(severity, BRUTE, BOMB)
diff --git a/modular_RUtgmc/icons/UI_Icons/map_blips.dmi b/modular_RUtgmc/icons/UI_Icons/map_blips.dmi
deleted file mode 100644
index 567e1e62f96..00000000000
Binary files a/modular_RUtgmc/icons/UI_Icons/map_blips.dmi and /dev/null differ
diff --git a/modular_RUtgmc/icons/Xeno/actions.dmi b/modular_RUtgmc/icons/Xeno/actions.dmi
deleted file mode 100644
index 88ae58bd94e..00000000000
Binary files a/modular_RUtgmc/icons/Xeno/actions.dmi and /dev/null differ
diff --git a/modular_RUtgmc/icons/mob/actions.dmi b/modular_RUtgmc/icons/mob/actions.dmi
deleted file mode 100644
index c50cd1e6954..00000000000
Binary files a/modular_RUtgmc/icons/mob/actions.dmi and /dev/null differ
diff --git a/modular_RUtgmc/icons/mob/screen/health.dmi b/modular_RUtgmc/icons/mob/screen/health.dmi
deleted file mode 100644
index 1026e92ef2e..00000000000
Binary files a/modular_RUtgmc/icons/mob/screen/health.dmi and /dev/null differ
diff --git a/modular_RUtgmc/includes.dm b/modular_RUtgmc/includes.dm
index 70858dbd290..04f08f2ea39 100644
--- a/modular_RUtgmc/includes.dm
+++ b/modular_RUtgmc/includes.dm
@@ -1,30 +1,6 @@
-#include "code\__HELPERS\text.dm"
-#include "code\__HELPERS\unsorted.dm"
-#include "code\_globalvars\lists\flavor_misc.dm"
-#include "code\_globalvars\lists\mapping.dm"
-#include "code\_globalvars\lists\mobs.dm"
-#include "code\_globalvars\lists\objects.dm"
-#include "code\_onclick\xeno.dm"
-#include "code\_onclick\hud\hud.dm"
-#include "code\_onclick\hud\screen_objects\menu_text_objects.dm"
-#include "code\_onclick\hud\screen_objects\screen_objects.dm"
-#include "code\_onclick\hud\xeno\larva.dm"
-#include "code\_onclick\hud\xeno\xeno.dm"
-#include "code\controllers\configuration\entries\general.dm"
-#include "code\controllers\subsystem\cellauto.dm"
-#include "code\controllers\subsystem\job.dm"
-#include "code\controllers\subsystem\predships.dm"
-#include "code\controllers\subsystem\hunt_system.dm"
-#include "code\controllers\subsystem\minimaps.dm"
-#include "code\controllers\subsystem\points.dm"
-#include "code\controllers\subsystem\processing\resinshaping.dm"
#include "code\datums\namepool.dm"
#include "code\datums\shuttles.dm"
#include "code\datums\skills.dm"
-#include "code\datums\actions\ability_actions.dm"
-#include "code\datums\actions\observer_action.dm"
-#include "code\datums\actions\xeno_action.dm"
-#include "code\datums\actions\actions\action.dm"
#include "code\datums\autocells\auto_cell.dm"
#include "code\datums\autocells\explosion.dm"
#include "code\datums\autocells\vomitwave.dm"
@@ -377,9 +353,6 @@
#include "code\modules\projectiles\guns\shotguns.dm"
#include "code\modules\projectiles\guns\smgs.dm"
#include "code\modules\projectiles\guns\specialist.dm"
-#include "code\__HELPERS\matrices.dm"
-#include "code\_onclick\hud\defines.dm"
-#include "code\_onclick\hud\yautja.dm"
#include "code\datums\elements\yautja_tracked_item.dm"
#include "code\datums\jobs\job\job.dm"
#include "code\datums\jobs\job\pred.dm"
@@ -407,8 +380,6 @@
#include "code\modules\vehicles\mecha\mecha_defense.dm"
#include "code\modules\vehicles\powerloader.dm"
#include "code\modules\xenomorph\xeno_structures.dm"
-#include "code\controllers\configuration\entries.dm"
-#include "code\controllers\subsystem\dbcore.dm"
#include "code\game\objects\items\weapons\weapons.dm"
#include "code\modules\client\preferences.dm"
#include "code\modules\projectiles\mounted.dm"
diff --git a/tgmc.dme b/tgmc.dme
index 671703d520f..cd6e10363f8 100644
--- a/tgmc.dme
+++ b/tgmc.dme
@@ -236,6 +236,7 @@
#include "code\_onclick\hud\human.dm"
#include "code\_onclick\hud\movable_screen_objects.dm"
#include "code\_onclick\hud\new_player.dm"
+#include "code\_onclick\hud\yautja.dm"
#include "code\_onclick\hud\parallax.dm"
#include "code\_onclick\hud\picture_in_picture.dm"
#include "code\_onclick\hud\radial.dm"
@@ -269,6 +270,7 @@
#include "code\controllers\subsystem\aura.dm"
#include "code\controllers\subsystem\autofire.dm"
#include "code\controllers\subsystem\blackbox.dm"
+#include "code\controllers\subsystem\cellauto.dm"
#include "code\controllers\subsystem\chat.dm"
#include "code\controllers\subsystem\codex.dm"
#include "code\controllers\subsystem\dbcore.dm"
@@ -296,6 +298,8 @@
#include "code\controllers\subsystem\monitor.dm"
#include "code\controllers\subsystem\npcpool.dm"
#include "code\controllers\subsystem\overlays.dm"
+#include "code\controllers\subsystem\hunt_system.dm"
+#include "code\controllers\subsystem\predships.dm"
#include "code\controllers\subsystem\parallax.dm"
#include "code\controllers\subsystem\pathfinder.dm"
#include "code\controllers\subsystem\persistence.dm"