From cca8dc3a36bd794f25052c587c7e2e43a223fe76 Mon Sep 17 00:00:00 2001 From: zerothebigboy Date: Mon, 21 Dec 2020 18:25:33 -0500 Subject: [PATCH 001/192] pogbox --- code/game/objects/items/storage/toolbox.dm | 24 ++++++++++++++++++ .../uplink/uplink_items/uplink_roles.dm | 8 ++++++ icons/obj/storage.dmi | Bin 73576 -> 74372 bytes 3 files changed, 32 insertions(+) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 73246276c2..a9d5f262de 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -103,6 +103,30 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/storage/toolbox/mechanical/old/heirloom/PopulateContents() return +/obj/item/storage/toolbox/mechanical/old/clean // the assistant traitor toolbox, damage scales with TC inside + name = "toolbox" + desc = "An old, blue toolbox, it menaces with a sickening miasma of robust energies. You sure about this, Brain?" + icon_state = "toolbox_blue_clean" + force = 19 + throwforce = 22 + wound_bonus = 10 + bare_wound_bonus = 10 + +/obj/item/storage/toolbox/mechanical/old/clean/proc/calc_damage() + var/power = 0 + for (var/obj/item/stack/telecrystal/TC in GetAllContents()) + power += TC.amount + force = 19 + power + throwforce = 22 + power + +/obj/item/storage/toolbox/mechanical/old/clean/attack(mob/target, mob/living/user) + calc_damage() // one damage for one telecrystal equals about thirty four damage if you pour ALL your tc + ..() + +/obj/item/storage/toolbox/mechanical/old/clean/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + calc_damage() + ..() + /obj/item/storage/toolbox/electrical name = "electrical toolbox" icon_state = "yellow" diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index b384106396..f7a2117df3 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -142,6 +142,14 @@ cost = 4 // Has syndie tools + gloves + a robust weapon restricted_roles = list("Assistant", "Curator") //Curator due to this being made of gold - It fits the theme +/datum/uplink_item/role_restricted/oldtoolboxclean // this is the fourth item relating to toolboxes to be placed into this godforsaken bloated uplink + name = "Ancient Toolbox" + desc = "An iconic toolbox design notorious with Assistants everywhere, this design was especially made to become more robust the more telecrystals it has inside it! Tools and insulated gloves included." + item = /obj/item/storage/toolbox/mechanical/old/clean + cost = 2 // with eighteen telecrystals you are still weaker than a desword and without any of its defenses -- the scary part comes from collaborating with allies for a fifty eight force toolbox oh fuck + restricted_roles = list("Assistant") + surplus = 0 + /datum/uplink_item/role_restricted/mimery name = "Guide to Advanced Mimery Series" desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 1f1709a10cffaa0a6b708c4eab1f3fa230bf6a15..b0e542f618a8bfd3bb102ef4e1edcf151094711a 100644 GIT binary patch delta 32266 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 delta 31464 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

LNGs_RKN5dJg@LD_oJc##7D2PkuHY{c^Wa}e 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 CdW>xV From dcecd6f03ae08f86ec26e938bdf928e539e2d4ce Mon Sep 17 00:00:00 2001 From: zerothebigboy Date: Mon, 21 Dec 2020 18:28:52 -0500 Subject: [PATCH 002/192] pogbox --- code/game/objects/items/storage/toolbox.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index a9d5f262de..26d772d6e4 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -105,7 +105,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/storage/toolbox/mechanical/old/clean // the assistant traitor toolbox, damage scales with TC inside name = "toolbox" - desc = "An old, blue toolbox, it menaces with a sickening miasma of robust energies. You sure about this, Brain?" + desc = "An old, blue toolbox. It menaces with a sickening miasma of robust energies. You sure about this, Brain?" icon_state = "toolbox_blue_clean" force = 19 throwforce = 22 From 21da7ef6198588111ef043eb05e5cb802929620b Mon Sep 17 00:00:00 2001 From: Putnam Date: Wed, 23 Dec 2020 00:01:59 -0800 Subject: [PATCH 003/192] Actually made it adjustable properly. --- code/modules/clothing/under/miscellaneous.dm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 2a5d6974ef..a9dd19e925 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -171,12 +171,17 @@ can_adjust = TRUE body_parts_covered = CHEST|GROIN -/obj/item/clothing/under/misc/gear_harness/toggle_jumpsuit_adjust() - adjusted = !adjusted - if(adjusted) - body_parts_covered = NONE - else +/obj/item/clothing/under/misc/gear_harness/rolldown() + if(!body_parts_covered) + to_chat(usr, "Your gear harness is now covering your chest and groin.") body_parts_covered = CHEST|GROIN + else + to_chat(usr, "Your gear harness is no longer covering anything.") + body_parts_covered = NONE + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + H.update_inv_w_uniform() + H.update_body() /obj/item/clothing/under/misc/durathread name = "durathread jumpsuit" From 3f36b95f92ddf603da2ca1bdbb04bfba2b213a2a Mon Sep 17 00:00:00 2001 From: zeroisthebiggay <43571008+zeroisthebiggay@users.noreply.github.com> Date: Wed, 23 Dec 2020 09:42:10 -0500 Subject: [PATCH 004/192] a a --- code/game/objects/items/storage/toolbox.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 26d772d6e4..30b01d46e0 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -126,6 +126,15 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/storage/toolbox/mechanical/old/clean/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) calc_damage() ..() + +/obj/item/storage/toolbox/mechanical/old/clean/PopulateContents() + new /obj/item/screwdriver(src) + new /obj/item/wrench(src) + new /obj/item/weldingtool(src) + new /obj/item/crowbar(src) + new /obj/item/wirecutters(src) + new /obj/item/multitool(src) + new /obj/item/clothing/gloves/color/yellow(src) /obj/item/storage/toolbox/electrical name = "electrical toolbox" From 6ecfda12562f16e78c94937c6732a83aca26c6ec Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 23 Dec 2020 23:14:08 +0000 Subject: [PATCH 005/192] Update preferences.dm --- code/modules/client/preferences.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 2de91f172d..0578b85799 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -183,6 +183,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/loadout_slot = 1 //goes from 1 to MAXIMUM_LOADOUT_SAVES var/gear_category var/gear_subcategory + var/list/loadout_progress = list() var/screenshake = 100 var/damagescreenshake = 2 From c05c57acf97bfd798dfa8c2a679d16484dc36679 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 25 Dec 2020 15:49:55 -0800 Subject: [PATCH 006/192] persistent module --- .../_persistence.dm} | 329 +++--------------- .../subsystem/persistence/panic_bunker.dm | 26 ++ .../subsystem/persistence/poly_parrot.dm | 11 + .../subsystem/persistence/recent_votes_etc.dm | 107 ++++++ .../subsystem/persistence/secret_satchels.dm | 79 +++++ .../subsystem/persistence/trophies.dm | 84 +++++ tgstation.dme | 7 +- 7 files changed, 370 insertions(+), 273 deletions(-) rename code/controllers/subsystem/{persistence.dm => persistence/_persistence.dm} (51%) create mode 100644 code/controllers/subsystem/persistence/panic_bunker.dm create mode 100644 code/controllers/subsystem/persistence/poly_parrot.dm create mode 100644 code/controllers/subsystem/persistence/recent_votes_etc.dm create mode 100644 code/controllers/subsystem/persistence/secret_satchels.dm create mode 100644 code/controllers/subsystem/persistence/trophies.dm diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm similarity index 51% rename from code/controllers/subsystem/persistence.dm rename to code/controllers/subsystem/persistence/_persistence.dm index e39242aac3..edecba311b 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -5,18 +5,9 @@ SUBSYSTEM_DEF(persistence) name = "Persistence" init_order = INIT_ORDER_PERSISTENCE flags = SS_NO_FIRE - var/list/satchel_blacklist = list() //this is a typecache - var/list/new_secret_satchels = list() //these are objects - var/list/old_secret_satchels = list() var/list/obj/structure/chisel_message/chisel_messages = list() var/list/saved_messages = list() - var/list/saved_modes = list(1,2,3) - var/list/saved_dynamic_rules = list(list(),list(),list()) - var/list/saved_storytellers = list("foo","bar","baz") - var/list/average_dynamic_threat = 50 - var/list/saved_maps - var/list/saved_trophies = list() var/list/spawned_objects = list() var/list/antag_rep = list() var/list/antag_rep_change = list() @@ -28,62 +19,71 @@ SUBSYSTEM_DEF(persistence) var/list/paintings = list() /datum/controller/subsystem/persistence/Initialize() - LoadSatchels() - LoadPoly() - LoadChiselMessages() - LoadTrophies() - LoadRecentModes() - LoadRecentStorytellers() - LoadRecentRulesets() - LoadRecentMaps() - LoadPhotoPersistence() + LoadServerPersistence() + LoadGamePersistence() + LoadMapPersistence() + return ..() + +/datum/controller/subsystem/persistence/proc/CollectData() + SaveServerPersistence() + SaveGamePersistence() + SaveMapPersistence() + +/** + * Loads persistent data relevant to the server: Configurations, past gamemodes, votes, etc + */ +/datum/controller/subsystem/persistence/proc/LoadServerPersistence() for(var/client/C in GLOB.clients) LoadSavedVote(C.ckey) if(CONFIG_GET(flag/use_antag_rep)) LoadAntagReputation() + +/** + * Saves persistent data relevant to the server: Configurations, past gamemodes, votes, etc + */ +/datum/controller/subsystem/persistence/proc/SaveServerPersistence() + if(CONFIG_GET(flag/use_antag_rep)) + CollectAntagReputation() + +/** + * Loads persistent data relevant to the game in general: Trophies, antag reputation, etc + * + * Legacy map persistence systems also use this. + */ +/datum/controller/subsystem/persistence/proc/LoadGamePersistence() + LoadChiselMessages() + LoadPhotoPersistence() LoadRandomizedRecipes() - LoadPanicBunker() - return ..() -/datum/controller/subsystem/persistence/proc/LoadSatchels() - var/placed_satchel = 0 - var/path +/** + * Saves persistent data relevant to the game in general: Trophies, antag reputation, etc + * + * Legacy map persistence systems also use this. + */ +/datum/controller/subsystem/persistence/proc/SaveGamePersistence() + SaveRandomizedRecipes() + CollectChiselMessages() + SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. + SavePaintings() + SaveScars() - var/json_file = file("data/npc_saves/SecretSatchels[SSmapping.config.map_name].json") - var/list/json = list() - if(fexists(json_file)) - json = json_decode(file2text(json_file)) +/** + * Loads persistent data relevant to the current map: Objects, etc. + * + * @params + * data_directory - The data directory to use. Each map with a persistence key has its own, and this is based on the persistence key. + */ +/datum/controller/subsystem/persistence/proc/LoadMapPersistence(data_directory) + return - old_secret_satchels = json["data"] - var/obj/item/storage/backpack/satchel/flat/F - if(old_secret_satchels && old_secret_satchels.len >= 10) //guards against low drop pools assuring that one player cannot reliably find his own gear. - var/pos = rand(1, old_secret_satchels.len) - F = new() - old_secret_satchels.Cut(pos, pos+1 % old_secret_satchels.len) - F.x = old_secret_satchels[pos]["x"] - F.y = old_secret_satchels[pos]["y"] - F.z = SSmapping.station_start - path = text2path(old_secret_satchels[pos]["saved_obj"]) - - if(F) - if(isfloorturf(F.loc) && !isplatingturf(F.loc)) - F.hide(1) - if(ispath(path)) - var/spawned_item = new path(F) - spawned_objects[spawned_item] = TRUE - placed_satchel++ - var/free_satchels = 0 - for(var/turf/T in shuffle(block(locate(TRANSITIONEDGE,TRANSITIONEDGE,SSmapping.station_start), locate(world.maxx-TRANSITIONEDGE,world.maxy-TRANSITIONEDGE,SSmapping.station_start)))) //Nontrivially expensive but it's roundstart only - if(isfloorturf(T) && !isplatingturf(T)) - new /obj/item/storage/backpack/satchel/flat/secret(T) - free_satchels++ - if((free_satchels + placed_satchel) == 10) //ten tiles, more than enough to kill anything that moves - break - -/datum/controller/subsystem/persistence/proc/LoadPoly() - for(var/mob/living/simple_animal/parrot/Poly/P in GLOB.alive_mob_list) - twitterize(P.speech_buffer, "polytalk") - break //Who's been duping the bird?! +/** + * Saves persistent data relevant to the current map: Objects, etc. + * + * @params + * data_directory - The data directory to use. Each map with a persistence key has its own, and this is based on the persistence key. + */ +/datum/controller/subsystem/persistence/proc/SaveMapPersistence(data_directory) + return /datum/controller/subsystem/persistence/proc/LoadChiselMessages() var/list/saved_messages = list() @@ -130,63 +130,6 @@ SUBSYSTEM_DEF(persistence) log_world("Loaded [saved_messages.len] engraved messages on map [SSmapping.config.map_name]") -/datum/controller/subsystem/persistence/proc/LoadTrophies() - if(fexists("data/npc_saves/TrophyItems.sav")) //legacy compatability to convert old format to new - var/savefile/S = new /savefile("data/npc_saves/TrophyItems.sav") - var/saved_json - S >> saved_json - if(!saved_json) - return - saved_trophies = json_decode(saved_json) - fdel("data/npc_saves/TrophyItems.sav") - else - var/json_file = file("data/npc_saves/TrophyItems.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_trophies = json["data"] - SetUpTrophies(saved_trophies.Copy()) - -/datum/controller/subsystem/persistence/proc/LoadRecentModes() - var/json_file = file("data/RecentModes.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_modes = json["data"] - -/datum/controller/subsystem/persistence/proc/LoadRecentRulesets() - var/json_file = file("data/RecentRulesets.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_dynamic_rules = json["data"] - -/datum/controller/subsystem/persistence/proc/LoadRecentStorytellers() - var/json_file = file("data/RecentStorytellers.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_storytellers = json["data"] - if(saved_storytellers.len > 3) - average_dynamic_threat = saved_storytellers[4] - saved_storytellers.len = 3 - -/datum/controller/subsystem/persistence/proc/LoadRecentMaps() - var/json_file = file("data/RecentMaps.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_maps = json["maps"] /datum/controller/subsystem/persistence/proc/LoadAntagReputation() var/json = file2text(FILE_ANTAG_REP) @@ -207,59 +150,6 @@ SUBSYSTEM_DEF(persistence) return saved_votes[ckey] = json["data"] -/datum/controller/subsystem/persistence/proc/SetUpTrophies(list/trophy_items) - for(var/A in GLOB.trophy_cases) - var/obj/structure/displaycase/trophy/T = A - if (T.showpiece) - continue - T.added_roundstart = TRUE - - var/trophy_data = pick_n_take(trophy_items) - - if(!islist(trophy_data)) - continue - - var/list/chosen_trophy = trophy_data - - if(!chosen_trophy || isemptylist(chosen_trophy)) //Malformed - continue - - var/path = text2path(chosen_trophy["path"]) //If the item no longer exist, this returns null - if(!path) - continue - - T.showpiece = new /obj/item/showpiece_dummy(T, path) - T.trophy_message = chosen_trophy["message"] - T.placer_key = chosen_trophy["placer_key"] - T.update_icon() - -/datum/controller/subsystem/persistence/proc/CollectData() - CollectChiselMessages() - CollectSecretSatchels() - CollectTrophies() - CollectRoundtype() - if(istype(SSticker.mode, /datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode - CollectStoryteller(mode) - CollectRulesets(mode) - RecordMaps() - SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. - if(CONFIG_GET(flag/use_antag_rep)) - CollectAntagReputation() - SaveRandomizedRecipes() - SavePanicBunker() - SavePaintings() - SaveScars() - -/datum/controller/subsystem/persistence/proc/LoadPanicBunker() - var/bunker_path = file("data/bunker_passthrough.json") - if(fexists(bunker_path)) - var/list/json = json_decode(file2text(bunker_path)) - GLOB.bunker_passthrough = json["data"] - for(var/ckey in GLOB.bunker_passthrough) - if(daysSince(GLOB.bunker_passthrough[ckey]) >= CONFIG_GET(number/max_bunker_days)) - GLOB.bunker_passthrough -= ckey - /datum/controller/subsystem/persistence/proc/GetPhotoAlbums() var/album_path = file("data/photo_albums.json") if(fexists(album_path)) @@ -329,35 +219,6 @@ SUBSYSTEM_DEF(persistence) WRITE_FILE(frame_path, frame_json) -/datum/controller/subsystem/persistence/proc/CollectSecretSatchels() - satchel_blacklist = typecacheof(list(/obj/item/stack/tile/plasteel, /obj/item/crowbar)) - var/list/satchels_to_add = list() - for(var/A in new_secret_satchels) - var/obj/item/storage/backpack/satchel/flat/F = A - if(QDELETED(F) || F.z != SSmapping.station_start || F.invisibility != INVISIBILITY_MAXIMUM) - continue - var/list/savable_obj = list() - for(var/obj/O in F) - if(is_type_in_typecache(O, satchel_blacklist) || (O.flags_1 & ADMIN_SPAWNED_1)) - continue - if(O.persistence_replacement) - savable_obj += O.persistence_replacement - else - savable_obj += O.type - if(isemptylist(savable_obj)) - continue - var/list/data = list() - data["x"] = F.x - data["y"] = F.y - data["saved_obj"] = pick(savable_obj) - satchels_to_add += list(data) - - var/json_file = file("data/npc_saves/SecretSatchels[SSmapping.config.map_name].json") - var/list/file_data = list() - fdel(json_file) - file_data["data"] = old_secret_satchels + satchels_to_add - WRITE_FILE(json_file, json_encode(file_data)) - /datum/controller/subsystem/persistence/proc/CollectChiselMessages() var/json_file = file("data/npc_saves/ChiselMessages[SSmapping.config.map_name].json") @@ -374,82 +235,6 @@ SUBSYSTEM_DEF(persistence) saved_messages += list(M.pack()) // dm eats one list -/datum/controller/subsystem/persistence/proc/CollectTrophies() - var/json_file = file("data/npc_saves/TrophyItems.json") - var/list/file_data = list() - file_data["data"] = remove_duplicate_trophies(saved_trophies) - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) - -/datum/controller/subsystem/persistence/proc/SavePanicBunker() - var/json_file = file("data/bunker_passthrough.json") - var/list/file_data = list() - file_data["data"] = GLOB.bunker_passthrough - fdel(json_file) - WRITE_FILE(json_file,json_encode(file_data)) - -/datum/controller/subsystem/persistence/proc/remove_duplicate_trophies(list/trophies) - var/list/ukeys = list() - . = list() - for(var/trophy in trophies) - var/tkey = "[trophy["path"]]-[trophy["message"]]" - if(ukeys[tkey]) - continue - else - . += list(trophy) - ukeys[tkey] = TRUE - -/datum/controller/subsystem/persistence/proc/SaveTrophy(obj/structure/displaycase/trophy/T) - if(!T.added_roundstart && T.showpiece) - var/list/data = list() - data["path"] = T.showpiece.type - data["message"] = T.trophy_message - data["placer_key"] = T.placer_key - saved_trophies += list(data) - -/datum/controller/subsystem/persistence/proc/CollectRoundtype() - saved_modes[3] = saved_modes[2] - saved_modes[2] = saved_modes[1] - saved_modes[1] = SSticker.mode.config_tag - var/json_file = file("data/RecentModes.json") - var/list/file_data = list() - file_data["data"] = saved_modes - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) - -/datum/controller/subsystem/persistence/proc/CollectStoryteller(var/datum/game_mode/dynamic/mode) - saved_storytellers.len = 3 - saved_storytellers[3] = saved_storytellers[2] - saved_storytellers[2] = saved_storytellers[1] - saved_storytellers[1] = mode.storyteller.name - average_dynamic_threat = (mode.max_threat + average_dynamic_threat) / 2 - var/json_file = file("data/RecentStorytellers.json") - var/list/file_data = list() - file_data["data"] = saved_storytellers + average_dynamic_threat - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) - -/datum/controller/subsystem/persistence/proc/CollectRulesets(var/datum/game_mode/dynamic/mode) - saved_dynamic_rules[3] = saved_dynamic_rules[2] - saved_dynamic_rules[2] = saved_dynamic_rules[1] - saved_dynamic_rules[1] = list() - for(var/r in mode.executed_rules) - var/datum/dynamic_ruleset/rule = r - saved_dynamic_rules[1] += rule.config_tag - var/json_file = file("data/RecentRulesets.json") - var/list/file_data = list() - file_data["data"] = saved_dynamic_rules - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) - -/datum/controller/subsystem/persistence/proc/RecordMaps() - saved_maps = saved_maps?.len ? list("[SSmapping.config.map_name]") | saved_maps : list("[SSmapping.config.map_name]") - var/json_file = file("data/RecentMaps.json") - var/list/file_data = list() - file_data["maps"] = saved_maps - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) - /datum/controller/subsystem/persistence/proc/CollectAntagReputation() var/ANTAG_REP_MAXIMUM = CONFIG_GET(number/antag_rep_maximum) diff --git a/code/controllers/subsystem/persistence/panic_bunker.dm b/code/controllers/subsystem/persistence/panic_bunker.dm new file mode 100644 index 0000000000..93ada2835c --- /dev/null +++ b/code/controllers/subsystem/persistence/panic_bunker.dm @@ -0,0 +1,26 @@ +/** + * Persists panic bunker whitelisting for a configured period of time + */ +/datum/controller/subsystem/persistence/LoadServerPersistence() + . = ..() + LoadPanicBunker() + +/datum/controller/subsystem/persistence/SaveServerPersistence() + . = ..() + SavePanicBunker() + +/datum/controller/subsystem/persistence/proc/LoadPanicBunker() + var/bunker_path = file("data/bunker_passthrough.json") + if(fexists(bunker_path)) + var/list/json = json_decode(file2text(bunker_path)) + GLOB.bunker_passthrough = json["data"] + for(var/ckey in GLOB.bunker_passthrough) + if(daysSince(GLOB.bunker_passthrough[ckey]) >= CONFIG_GET(number/max_bunker_days)) + GLOB.bunker_passthrough -= ckey + +/datum/controller/subsystem/persistence/proc/SavePanicBunker() + var/json_file = file("data/bunker_passthrough.json") + var/list/file_data = list() + file_data["data"] = GLOB.bunker_passthrough + fdel(json_file) + WRITE_FILE(json_file,json_encode(file_data)) diff --git a/code/controllers/subsystem/persistence/poly_parrot.dm b/code/controllers/subsystem/persistence/poly_parrot.dm new file mode 100644 index 0000000000..64743e9623 --- /dev/null +++ b/code/controllers/subsystem/persistence/poly_parrot.dm @@ -0,0 +1,11 @@ +/** + * Persists poly messages across rounds + */ +/datum/controller/subsystem/persistence/LoadGamePersistence() + . = ..() + LoadPoly() + +/datum/controller/subsystem/persistence/proc/LoadPoly() + for(var/mob/living/simple_animal/parrot/Poly/P in GLOB.alive_mob_list) + twitterize(P.speech_buffer, "polytalk") + break //Who's been duping the bird?! diff --git a/code/controllers/subsystem/persistence/recent_votes_etc.dm b/code/controllers/subsystem/persistence/recent_votes_etc.dm new file mode 100644 index 0000000000..f1b902d6ab --- /dev/null +++ b/code/controllers/subsystem/persistence/recent_votes_etc.dm @@ -0,0 +1,107 @@ +/** + * Stores recently played gamemodes, maps, etc. + */ +/datum/controller/subsystem/persistence + var/list/saved_modes = list(1,2,3) + var/list/saved_dynamic_rules = list(list(),list(),list()) + var/list/saved_storytellers = list("foo","bar","baz") + var/list/average_dynamic_threat = 50 + var/list/saved_maps + +/datum/controller/subsystem/persistence/SaveServerPersistence() + . = ..() + CollectRoundtype() + if(istype(SSticker.mode, /datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + CollectStoryteller(mode) + CollectRulesets(mode) + RecordMaps() + +/datum/controller/subsystem/persistence/LoadServerPersistence() + . = ..() + LoadRecentModes() + LoadRecentStorytellers() + LoadRecentRulesets() + LoadRecentMaps() + +/datum/controller/subsystem/persistence/proc/CollectRoundtype() + saved_modes[3] = saved_modes[2] + saved_modes[2] = saved_modes[1] + saved_modes[1] = SSticker.mode.config_tag + var/json_file = file("data/RecentModes.json") + var/list/file_data = list() + file_data["data"] = saved_modes + fdel(json_file) + WRITE_FILE(json_file, json_encode(file_data)) + +/datum/controller/subsystem/persistence/proc/CollectStoryteller(var/datum/game_mode/dynamic/mode) + saved_storytellers.len = 3 + saved_storytellers[3] = saved_storytellers[2] + saved_storytellers[2] = saved_storytellers[1] + saved_storytellers[1] = mode.storyteller.name + average_dynamic_threat = (mode.max_threat + average_dynamic_threat) / 2 + var/json_file = file("data/RecentStorytellers.json") + var/list/file_data = list() + file_data["data"] = saved_storytellers + average_dynamic_threat + fdel(json_file) + WRITE_FILE(json_file, json_encode(file_data)) + +/datum/controller/subsystem/persistence/proc/CollectRulesets(var/datum/game_mode/dynamic/mode) + saved_dynamic_rules[3] = saved_dynamic_rules[2] + saved_dynamic_rules[2] = saved_dynamic_rules[1] + saved_dynamic_rules[1] = list() + for(var/r in mode.executed_rules) + var/datum/dynamic_ruleset/rule = r + saved_dynamic_rules[1] += rule.config_tag + var/json_file = file("data/RecentRulesets.json") + var/list/file_data = list() + file_data["data"] = saved_dynamic_rules + fdel(json_file) + WRITE_FILE(json_file, json_encode(file_data)) + +/datum/controller/subsystem/persistence/proc/RecordMaps() + saved_maps = saved_maps?.len ? list("[SSmapping.config.map_name]") | saved_maps : list("[SSmapping.config.map_name]") + var/json_file = file("data/RecentMaps.json") + var/list/file_data = list() + file_data["maps"] = saved_maps + fdel(json_file) + WRITE_FILE(json_file, json_encode(file_data)) + +/datum/controller/subsystem/persistence/proc/LoadRecentModes() + var/json_file = file("data/RecentModes.json") + if(!fexists(json_file)) + return + var/list/json = json_decode(file2text(json_file)) + if(!json) + return + saved_modes = json["data"] + +/datum/controller/subsystem/persistence/proc/LoadRecentRulesets() + var/json_file = file("data/RecentRulesets.json") + if(!fexists(json_file)) + return + var/list/json = json_decode(file2text(json_file)) + if(!json) + return + saved_dynamic_rules = json["data"] + +/datum/controller/subsystem/persistence/proc/LoadRecentStorytellers() + var/json_file = file("data/RecentStorytellers.json") + if(!fexists(json_file)) + return + var/list/json = json_decode(file2text(json_file)) + if(!json) + return + saved_storytellers = json["data"] + if(saved_storytellers.len > 3) + average_dynamic_threat = saved_storytellers[4] + saved_storytellers.len = 3 + +/datum/controller/subsystem/persistence/proc/LoadRecentMaps() + var/json_file = file("data/RecentMaps.json") + if(!fexists(json_file)) + return + var/list/json = json_decode(file2text(json_file)) + if(!json) + return + saved_maps = json["maps"] diff --git a/code/controllers/subsystem/persistence/secret_satchels.dm b/code/controllers/subsystem/persistence/secret_satchels.dm new file mode 100644 index 0000000000..fa2a445317 --- /dev/null +++ b/code/controllers/subsystem/persistence/secret_satchels.dm @@ -0,0 +1,79 @@ +/** + * Secret satchel persistence - allows storing of items in underfloor satchels that's loaded later. + */ +/datum/controller/subsystem/persistence + var/list/satchel_blacklist = list() //this is a typecache + var/list/new_secret_satchels = list() //these are objects + var/list/old_secret_satchels = list() + +/datum/controller/subsystem/persistence/LoadGamePersistence() + . = ..() + LoadSatchels() + +/datum/controller/subsystem/persistence/SaveGamePersistence() + . = ..() + CollectSecretSatchels() + +/datum/controller/subsystem/persistence/proc/LoadSatchels() + var/placed_satchel = 0 + var/path + + var/json_file = file("data/npc_saves/SecretSatchels[SSmapping.config.map_name].json") + var/list/json = list() + if(fexists(json_file)) + json = json_decode(file2text(json_file)) + + old_secret_satchels = json["data"] + var/obj/item/storage/backpack/satchel/flat/F + if(old_secret_satchels && old_secret_satchels.len >= 10) //guards against low drop pools assuring that one player cannot reliably find his own gear. + var/pos = rand(1, old_secret_satchels.len) + F = new() + old_secret_satchels.Cut(pos, pos+1 % old_secret_satchels.len) + F.x = old_secret_satchels[pos]["x"] + F.y = old_secret_satchels[pos]["y"] + F.z = SSmapping.station_start + path = text2path(old_secret_satchels[pos]["saved_obj"]) + + if(F) + if(isfloorturf(F.loc) && !isplatingturf(F.loc)) + F.hide(1) + if(ispath(path)) + var/spawned_item = new path(F) + spawned_objects[spawned_item] = TRUE + placed_satchel++ + var/free_satchels = 0 + for(var/turf/T in shuffle(block(locate(TRANSITIONEDGE,TRANSITIONEDGE,SSmapping.station_start), locate(world.maxx-TRANSITIONEDGE,world.maxy-TRANSITIONEDGE,SSmapping.station_start)))) //Nontrivially expensive but it's roundstart only + if(isfloorturf(T) && !isplatingturf(T)) + new /obj/item/storage/backpack/satchel/flat/secret(T) + free_satchels++ + if((free_satchels + placed_satchel) == 10) //ten tiles, more than enough to kill anything that moves + break + +/datum/controller/subsystem/persistence/proc/CollectSecretSatchels() + satchel_blacklist = typecacheof(list(/obj/item/stack/tile/plasteel, /obj/item/crowbar)) + var/list/satchels_to_add = list() + for(var/A in new_secret_satchels) + var/obj/item/storage/backpack/satchel/flat/F = A + if(QDELETED(F) || F.z != SSmapping.station_start || F.invisibility != INVISIBILITY_MAXIMUM) + continue + var/list/savable_obj = list() + for(var/obj/O in F) + if(is_type_in_typecache(O, satchel_blacklist) || (O.flags_1 & ADMIN_SPAWNED_1)) + continue + if(O.persistence_replacement) + savable_obj += O.persistence_replacement + else + savable_obj += O.type + if(isemptylist(savable_obj)) + continue + var/list/data = list() + data["x"] = F.x + data["y"] = F.y + data["saved_obj"] = pick(savable_obj) + satchels_to_add += list(data) + + var/json_file = file("data/npc_saves/SecretSatchels[SSmapping.config.map_name].json") + var/list/file_data = list() + fdel(json_file) + file_data["data"] = old_secret_satchels + satchels_to_add + WRITE_FILE(json_file, json_encode(file_data)) diff --git a/code/controllers/subsystem/persistence/trophies.dm b/code/controllers/subsystem/persistence/trophies.dm new file mode 100644 index 0000000000..770ca99125 --- /dev/null +++ b/code/controllers/subsystem/persistence/trophies.dm @@ -0,0 +1,84 @@ +/** + * Stores trophies in curator display cases + */ +/datum/controller/subsystem/persistence + var/list/saved_trophies = list() + +/datum/controller/subsystem/persistence/LoadGamePersistence() + . = ..() + LoadTrophies() + +/datum/controller/subsystem/persistence/SaveGamePersistence() + . = ..() + CollectTrophies() + +/datum/controller/subsystem/persistence/proc/LoadTrophies() + if(fexists("data/npc_saves/TrophyItems.sav")) //legacy compatability to convert old format to new + var/savefile/S = new /savefile("data/npc_saves/TrophyItems.sav") + var/saved_json + S >> saved_json + if(!saved_json) + return + saved_trophies = json_decode(saved_json) + fdel("data/npc_saves/TrophyItems.sav") + else + var/json_file = file("data/npc_saves/TrophyItems.json") + if(!fexists(json_file)) + return + var/list/json = json_decode(file2text(json_file)) + if(!json) + return + saved_trophies = json["data"] + SetUpTrophies(saved_trophies.Copy()) + +/datum/controller/subsystem/persistence/proc/SetUpTrophies(list/trophy_items) + for(var/A in GLOB.trophy_cases) + var/obj/structure/displaycase/trophy/T = A + if (T.showpiece) + continue + T.added_roundstart = TRUE + + var/trophy_data = pick_n_take(trophy_items) + + if(!islist(trophy_data)) + continue + + var/list/chosen_trophy = trophy_data + + if(!chosen_trophy || isemptylist(chosen_trophy)) //Malformed + continue + + var/path = text2path(chosen_trophy["path"]) //If the item no longer exist, this returns null + if(!path) + continue + + T.showpiece = new /obj/item/showpiece_dummy(T, path) + T.trophy_message = chosen_trophy["message"] + T.placer_key = chosen_trophy["placer_key"] + T.update_icon() + +/datum/controller/subsystem/persistence/proc/CollectTrophies() + var/json_file = file("data/npc_saves/TrophyItems.json") + var/list/file_data = list() + file_data["data"] = remove_duplicate_trophies(saved_trophies) + fdel(json_file) + WRITE_FILE(json_file, json_encode(file_data)) + +/datum/controller/subsystem/persistence/proc/remove_duplicate_trophies(list/trophies) + var/list/ukeys = list() + . = list() + for(var/trophy in trophies) + var/tkey = "[trophy["path"]]-[trophy["message"]]" + if(ukeys[tkey]) + continue + else + . += list(trophy) + ukeys[tkey] = TRUE + +/datum/controller/subsystem/persistence/proc/SaveTrophy(obj/structure/displaycase/trophy/T) + if(!T.added_roundstart && T.showpiece) + var/list/data = list() + data["path"] = T.showpiece.type + data["message"] = T.trophy_message + data["placer_key"] = T.placer_key + saved_trophies += list(data) diff --git a/tgstation.dme b/tgstation.dme index 07eefc79ef..a5cad8bc0a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -340,7 +340,6 @@ #include "code\controllers\subsystem\pai.dm" #include "code\controllers\subsystem\parallax.dm" #include "code\controllers\subsystem\pathfinder.dm" -#include "code\controllers\subsystem\persistence.dm" #include "code\controllers\subsystem\profiler.dm" #include "code\controllers\subsystem\radiation.dm" #include "code\controllers\subsystem\radio.dm" @@ -363,6 +362,12 @@ #include "code\controllers\subsystem\vis_overlays.dm" #include "code\controllers\subsystem\vore.dm" #include "code\controllers\subsystem\vote.dm" +#include "code\controllers\subsystem\persistence\_persistence.dm" +#include "code\controllers\subsystem\persistence\panic_bunker.dm" +#include "code\controllers\subsystem\persistence\poly_parrot.dm" +#include "code\controllers\subsystem\persistence\recent_votes_etc.dm" +#include "code\controllers\subsystem\persistence\secret_satchels.dm" +#include "code\controllers\subsystem\persistence\trophies.dm" #include "code\controllers\subsystem\processing\chemistry.dm" #include "code\controllers\subsystem\processing\circuit.dm" #include "code\controllers\subsystem\processing\fastprocess.dm" From 999262665b5e152d05e920bccc6c366684e74c5f Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 25 Dec 2020 15:54:28 -0800 Subject: [PATCH 007/192] map keys --- .../subsystem/persistence/_persistence.dm | 17 +++++++++++++++-- code/modules/mapping/map_config.dm | 11 +++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index edecba311b..6cf9f84b91 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -21,13 +21,26 @@ SUBSYSTEM_DEF(persistence) /datum/controller/subsystem/persistence/Initialize() LoadServerPersistence() LoadGamePersistence() - LoadMapPersistence() + var/map_persistence_path = get_map_persistence_path() + if(map_persistence_path) + LoadMapPersistence(map_persistence_path) return ..() +/** + * Gets the persistence path of the current map. + */ +/datum/controller/subsystem/persistence/proc/get_map_persistence_path() + ASSERT(SSmapping.config) + if(SSmapping.config.persistence_key == "NO_PERSIST") + return null + return "data/persistence/[ckey(SSmapping.config.persistence_key)]" + /datum/controller/subsystem/persistence/proc/CollectData() SaveServerPersistence() SaveGamePersistence() - SaveMapPersistence() + var/map_persistence_path = get_map_persistence_path() + if(map_persistence_path) + SaveMapPersistence(map_persistence_path) /** * Loads persistent data relevant to the server: Configurations, past gamemodes, votes, etc diff --git a/code/modules/mapping/map_config.dm b/code/modules/mapping/map_config.dm index d18ca1e1e3..83418462f1 100644 --- a/code/modules/mapping/map_config.dm +++ b/code/modules/mapping/map_config.dm @@ -18,6 +18,8 @@ var/map_name = "Box Station" var/map_path = "map_files/BoxStation" var/map_file = "BoxStation.dmm" + /// Persistence key: Defaults to ckey(map_name). If set to "NO_PERSIST", this map will have NO persistence. + var/persistence_key var/traits = null var/space_ruin_levels = 4 @@ -99,6 +101,15 @@ map_path = json["map_path"] map_file = json["map_file"] + + persistence_key = ckey(map_name) + + var/json_persistence_key = json["persistence_key"] + if(json_persistence_key == "NO_PERSIST") + persistence_key = null + else + persistence_key = json_persistence_key + // "map_file": "BoxStation.dmm" if (istext(map_file)) if (!fexists("_maps/[map_path]/[map_file]")) From 5e66e4509f88c1310f7776bba5f2ea60e84b292c Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 25 Dec 2020 16:07:17 -0800 Subject: [PATCH 008/192] wew --- .../configuration/entries/persistence.dm | 17 +++++++++++++++++ .../subsystem/persistence/_persistence.dm | 3 +-- .../subsystem/persistence/cleanable_debris.dm | 3 +++ code/game/objects/effects/decals/cleanable.dm | 17 +++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 code/controllers/configuration/entries/persistence.dm create mode 100644 code/controllers/subsystem/persistence/cleanable_debris.dm diff --git a/code/controllers/configuration/entries/persistence.dm b/code/controllers/configuration/entries/persistence.dm new file mode 100644 index 0000000000..cf7b23bef3 --- /dev/null +++ b/code/controllers/configuration/entries/persistence.dm @@ -0,0 +1,17 @@ +/// Whether or not to use the persistence system for cleanable objects +/datum/config_entry/flag/persistent_debris + config_entry_value = FALSE + +/// Whether or not to nuke all roundstart debris that isn't due to persistence if the above is true +/datum/config_entry/flag/persistent_debris_only + config_entry_value = TRUE + +/// Max amount of objects to store, total +/datum/config_entry/number/persistent_debris_global_max + config_entry_value = 10000 + integer = TRUE + +/// Max amount of objects to store per type +/datum/config_entry/number/persistent_debris_type_max + config_entry_value = 2000 + integer = TRUE diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index 6cf9f84b91..a950a78f2b 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -67,6 +67,7 @@ SUBSYSTEM_DEF(persistence) LoadChiselMessages() LoadPhotoPersistence() LoadRandomizedRecipes() + LoadPaintings() /** * Saves persistent data relevant to the game in general: Trophies, antag reputation, etc @@ -247,8 +248,6 @@ SUBSYSTEM_DEF(persistence) /datum/controller/subsystem/persistence/proc/SaveChiselMessage(obj/structure/chisel_message/M) saved_messages += list(M.pack()) // dm eats one list - - /datum/controller/subsystem/persistence/proc/CollectAntagReputation() var/ANTAG_REP_MAXIMUM = CONFIG_GET(number/antag_rep_maximum) diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm new file mode 100644 index 0000000000..1e3390357b --- /dev/null +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -0,0 +1,3 @@ +/** + * Persistence for cleanable debris. + */ diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 34996177af..cadda8da00 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -1,6 +1,9 @@ /obj/effect/decal/cleanable gender = PLURAL layer = ABOVE_NORMAL_TURF_LAYER + /// Is this kind of cleanable decal persistent + var/persistent = FALSE + var/list/random_icon_states = null var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints @@ -9,6 +12,8 @@ /obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases) . = ..() + if(mapload && persistent && CONFIG_GET(flag/persistent_debris_only)) + return INITIALIZE_HINT_QDEL LAZYINITLIST(blood_DNA) //Kinda needed if (random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0) icon_state = pick(random_icon_states) @@ -29,6 +34,18 @@ addtimer(CALLBACK(src, /datum.proc/_AddElement, list(/datum/element/beauty, beauty)), 0) +/** + * Returns a list of data + */ +/obj/effect/decal/cleanable/proc/PersistenceSave() + return null + +/** + * Laods from a data list. + */ +/obj/effect/decal/cleanable/proc/PersistenceLoad(list/data) + return + /obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal if(mergeable_decal) qdel(C) From d5ab4b79dcda45ee422a53243cf0e5a7afac2d78 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 25 Dec 2020 16:07:29 -0800 Subject: [PATCH 009/192] dme --- tgstation.dme | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tgstation.dme b/tgstation.dme index a5cad8bc0a..4fca500006 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -292,6 +292,7 @@ #include "code\controllers\configuration\entries\fail2topic.dm" #include "code\controllers\configuration\entries\game_options.dm" #include "code\controllers\configuration\entries\general.dm" +#include "code\controllers\configuration\entries\persistence.dm" #include "code\controllers\configuration\entries\plushies.dm" #include "code\controllers\configuration\entries\policy.dm" #include "code\controllers\configuration\entries\resources.dm" @@ -363,6 +364,7 @@ #include "code\controllers\subsystem\vore.dm" #include "code\controllers\subsystem\vote.dm" #include "code\controllers\subsystem\persistence\_persistence.dm" +#include "code\controllers\subsystem\persistence\cleanable_debris.dm" #include "code\controllers\subsystem\persistence\panic_bunker.dm" #include "code\controllers\subsystem\persistence\poly_parrot.dm" #include "code\controllers\subsystem\persistence\recent_votes_etc.dm" From 5cf717e75da31bd21bbb5ca8446d414ec65937cd Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 25 Dec 2020 16:10:32 -0800 Subject: [PATCH 010/192] self message --- code/game/objects/effects/decals/cleanable.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index cadda8da00..63f17d61ee 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -12,7 +12,8 @@ /obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases) . = ..() - if(mapload && persistent && CONFIG_GET(flag/persistent_debris_only)) + #warn OPTIMIZE THE BELOW LINE, CACHE THINGS, THIS IS INSANELY EXPENSIVE + if(mapload && persistent && CONFIG_GET(flag/persistent_debris_only) && (z in SSmapping.levels_by_trait(ZTRAIT_STATION))) return INITIALIZE_HINT_QDEL LAZYINITLIST(blood_DNA) //Kinda needed if (random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0) From 41115bacb5ee366e0a6999dd399195e5e070c46a Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat, 26 Dec 2020 01:48:06 +0000 Subject: [PATCH 011/192] Update bedsheets.dmi --- icons/obj/bedsheets.dmi | Bin 34021 -> 37499 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/bedsheets.dmi b/icons/obj/bedsheets.dmi index 05535334cf74ad93e36efdcb20066438e961e2c5..daab90569be082a58c088b8182b5de1d788ceb99 100644 GIT binary patch delta 18654 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 delta 15112 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 P0R2;vQ Date: Sat, 26 Dec 2020 01:55:11 +0000 Subject: [PATCH 012/192] Update bedsheets.dmi --- icons/obj/bedsheets.dmi | Bin 37499 -> 37468 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/bedsheets.dmi b/icons/obj/bedsheets.dmi index daab90569be082a58c088b8182b5de1d788ceb99..f62dd34c66fdbf168dac0936ca4cc2dfc9bc2585 100644 GIT binary patch delta 18314 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 delta 18326 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 From 45af2360addcdd33803a0289e14a7f452da67a4f Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 11:35:47 -0800 Subject: [PATCH 013/192] changes --- .../subsystem/persistence/_persistence.dm | 14 ++---- .../subsystem/persistence/cleanable_debris.dm | 46 +++++++++++++++++++ code/game/area/Space_Station_13_areas.dm | 1 + code/game/area/areas.dm | 2 + code/game/objects/effects/decals/cleanable.dm | 14 +++--- .../objects/effects/decals/cleanable/misc.dm | 29 ++++++++++++ code/game/objects/effects/decals/crayon.dm | 26 +++++++++++ 7 files changed, 116 insertions(+), 16 deletions(-) diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index a950a78f2b..00135bbcc2 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -23,7 +23,7 @@ SUBSYSTEM_DEF(persistence) LoadGamePersistence() var/map_persistence_path = get_map_persistence_path() if(map_persistence_path) - LoadMapPersistence(map_persistence_path) + LoadMapPersistence() return ..() /** @@ -40,7 +40,7 @@ SUBSYSTEM_DEF(persistence) SaveGamePersistence() var/map_persistence_path = get_map_persistence_path() if(map_persistence_path) - SaveMapPersistence(map_persistence_path) + SaveMapPersistence() /** * Loads persistent data relevant to the server: Configurations, past gamemodes, votes, etc @@ -83,20 +83,14 @@ SUBSYSTEM_DEF(persistence) /** * Loads persistent data relevant to the current map: Objects, etc. - * - * @params - * data_directory - The data directory to use. Each map with a persistence key has its own, and this is based on the persistence key. */ -/datum/controller/subsystem/persistence/proc/LoadMapPersistence(data_directory) +/datum/controller/subsystem/persistence/proc/LoadMapPersistence() return /** * Saves persistent data relevant to the current map: Objects, etc. - * - * @params - * data_directory - The data directory to use. Each map with a persistence key has its own, and this is based on the persistence key. */ -/datum/controller/subsystem/persistence/proc/SaveMapPersistence(data_directory) +/datum/controller/subsystem/persistence/proc/SaveMapPersistence() return /datum/controller/subsystem/persistence/proc/LoadChiselMessages() diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 1e3390357b..13c80aee57 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -1,3 +1,49 @@ /** * Persistence for cleanable debris. */ +/datum/controller/subsystem/persistence + /// tracks if we already loaded debris. Unlike everything else, this can actually be a major problem if some badmin procs it twice. + var/loaded_debris = FALSE + +/datum/controller/subsystem/persistence/LoadMapPersistence() + . = ..() + if(CONFIG_GET(flag/persistent_debris)) + LoadMapDebris() + +/datum/controller/subsystem/persistence/SaveMapPersistence() + . = ..() + if(CONFIG_GET(flag/persistent_debris)) + SaveMapDebris() + +/datum/controller/subsystem/persistence/proc/LoadMapDebris() + if(!fexists("[get_map_persistence_path()]/debris.json")) + return + if(loaded_debris) + return + loaded_debris = TRUE + var/list/data = json_decode(file2text("[get_map_persistence_path()]/debris.json")) + + +/datum/controller/subsystem/persistence/proc/SaveMapDebris() + if(fexists("[get_map_persistence_path()]/debris.json")) + fdel("[get_map_persistence_path()]/debris.json") + var/list/allowed_turf_typecache = typecacheof(/turf/open) - typecacheof(/turf/open/space) + var/list/allowed_z_cache = list() + for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) + allowed_z_cache[num2text(z)] = TRUE + var/list/data = list() + + WRITE_FILE("[get_map_persistence_path()]/debris.json", json_encode(data)) + + +/datum/controller/subsystem/persistence/proc/IsValidDebrisLocation(turf/tile, list/allowed_typecache, list/allowed_zcache) + if(!allowed_typecache[tile.type]) + return FALSE + if(!tile.loc.persistent_debris_allowed) + return FALSE + if(!allowed_zcache[num2text(tile.z)]) + return FALSE + for(var/obj/structure/window/W in tile) + if(W.fulltile) + return FALSE + return TRUE diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index 5310b24202..03a2309e8a 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -41,6 +41,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station power_environ = FALSE valid_territory = FALSE outdoors = TRUE + persistent_debris_allowed = FALSE ambientsounds = SPACE blob_allowed = FALSE //Eating up space doesn't count for victory as a blob. considered_hull_exterior = TRUE diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index b9415f3cf8..fcde2bd1eb 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -24,6 +24,8 @@ var/clockwork_warp_allowed = TRUE /// Message to display when the clockwork warp fails var/clockwork_warp_fail = "The structure there is too dense for warping to pierce. (This is normal in high-security areas.)" + /// Persistent debris alowed + var/persistent_debris_allowed = TRUE /// If mining tunnel generation is allowed in this area var/tunnel_allowed = FALSE diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 63f17d61ee..1ad2173f76 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -3,6 +3,8 @@ layer = ABOVE_NORMAL_TURF_LAYER /// Is this kind of cleanable decal persistent var/persistent = FALSE + /// Can we stack multiple in one tile? + var/persistence_allow_stacking = FALSE var/list/random_icon_states = null var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA @@ -36,20 +38,20 @@ addtimer(CALLBACK(src, /datum.proc/_AddElement, list(/datum/element/beauty, beauty)), 0) /** - * Returns a list of data + * A data list is passed into this. + * This should return null to skip saving, or the type of data to save. Type must be /cleanable. */ -/obj/effect/decal/cleanable/proc/PersistenceSave() - return null +/obj/effect/decal/cleanable/proc/PersistenceSave(list/data) + return type /** - * Laods from a data list. + * Loads from a data list. */ /obj/effect/decal/cleanable/proc/PersistenceLoad(list/data) return /obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal - if(mergeable_decal) - qdel(C) + return mergeable_decal /obj/effect/decal/cleanable/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/reagent_containers/glass) || istype(W, /obj/item/reagent_containers/food/drinks)) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 044c5c6e86..9c0fb2eca9 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -12,6 +12,8 @@ icon_state = "ash" mergeable_decal = FALSE beauty = -50 + persistent = TRUE + persistence_allow_stacking = TRUE /obj/effect/decal/cleanable/ash/Initialize() . = ..() @@ -38,6 +40,8 @@ icon = 'icons/obj/shards.dmi' icon_state = "tiny" beauty = -100 + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/glass/Initialize() . = ..() @@ -94,6 +98,8 @@ light_color = LIGHT_COLOR_GREEN icon_state = "greenglow" beauty = -300 + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/greenglow/Initialize(mapload) . = ..() @@ -122,6 +128,8 @@ icon_state = "molten" mergeable_decal = FALSE beauty = -150 + persistent = TRUE + persistence_allow_stacking = TRUE /obj/effect/decal/cleanable/molten_object/large name = "big gooey grey mass" @@ -136,6 +144,7 @@ icon_state = "vomit_1" random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4") beauty = -150 + persistent = TRUE /obj/effect/decal/cleanable/vomit/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) if(ishuman(user)) @@ -151,6 +160,10 @@ reagents.trans_to(H, reagents.total_volume) qdel(src) +/obj/effect/decal/cleanable/vomit/PersistenceSave(list/data) + . = ..() + return /obj/effect/decal/cleanable/vomit/old + /obj/effect/decal/cleanable/vomit/old name = "crusty dried vomit" desc = "You try not to look at the chunks, and fail." @@ -166,12 +179,16 @@ icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3") beauty = -100 + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/plant_smudge name = "plant smudge" gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_plant") + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/egg_smudge name = "smashed egg" @@ -179,6 +196,8 @@ gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3") + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/pie_smudge //honk name = "smashed pie" @@ -186,6 +205,8 @@ gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_pie") + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/chem_pile name = "chemical pile" @@ -193,6 +214,8 @@ gender = NEUTER icon = 'icons/obj/objects.dmi' icon_state = "ash" + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/shreds name = "shreds" @@ -200,6 +223,8 @@ icon_state = "shreds" gender = PLURAL mergeable_decal = FALSE + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/shreds/ex_act(severity, target) if(severity == 1) //so shreds created during an explosion aren't deleted by the explosion. @@ -222,6 +247,8 @@ desc = "The herpes of arts and crafts." icon = 'icons/effects/atmospherics.dmi' gender = NEUTER + mergeable_decal = TRUE + persistent = TRUE /obj/effect/decal/cleanable/glitter/pink name = "pink glitter" @@ -247,3 +274,5 @@ icon = 'icons/effects/blood.dmi' icon_state = "xfloor1" random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") + mergeable_decal = TRUE + persistent = TRUE diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 8cfdad0432..d62f8fccb6 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -5,6 +5,8 @@ icon_state = "rune1" plane = ABOVE_WALL_PLANE //makes the graffiti visible over a wall. gender = NEUTER + persistent = TRUE + persistence_allow_stacking = TRUE mergeable_decal = FALSE var/do_icon_rotate = TRUE var/rotation = 0 @@ -29,3 +31,27 @@ if(main) paint_colour = main add_atom_colour(paint_colour, FIXED_COLOUR_PRIORITY) + +/obj/effect/decal/cleanable/crayon/PersistenceSave(list/data) + . = ..() + if(icon != initial(icon)) // no support for alticons yet, awful system anyways + return null + data["icon_state"] = icon_stsate + data["paint_color"] = paint_colour + if(do_icon_rotate) + data["rotation"] = rotation + data["name"] = name + +/obj/effect/decal/cleanable/crayon/PersistenceLoad(list/data) + . = ..() + if(data["name"]) + name = data["name"] + if(do_icon_rotate && data["rotation"]) + var/matrix/M = matrix() + M.turn(data["rotation"]) + transform = M + if(data["paint_color"]) + paint_colour = data["paint_color"]) + add_atom_colour(paint_colour, FIXED_COLOUR_PRIORITY) + if(data["icon_state"]) + icon_state = data["icon_state"] From d474643debad991e371a8f7e910e256be2b82b52 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 11:41:25 -0800 Subject: [PATCH 014/192] changes --- code/controllers/subsystem/mapping.dm | 10 ++++++++++ .../subsystem/persistence/cleanable_debris.dm | 7 ++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 2ea3b29c91..3d45672c3b 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -41,6 +41,8 @@ SUBSYSTEM_DEF(mapping) var/datum/space_level/transit var/datum/space_level/empty_space var/num_of_res_levels = 1 + /// Lookup for zlevel to station z. text = num. + var/list/z_to_station_z_index var/stat_map_name = "Loading..." @@ -259,6 +261,12 @@ SUBSYSTEM_DEF(mapping) INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!") return parsed_maps +/datum/controller/subsystem/mapping/proc/setup_station_z_index() + z_to_station_z_index = list() + var/sz = 1 + for(var/i in station_start to (station_Start + islist(config.map_file)? (length(config.map_file) - 1) : 0)) + z_to_station_z_index["[i]"] = sz++ + /datum/controller/subsystem/mapping/proc/loadWorld() //if any of these fail, something has gone horribly, HORRIBLY, wrong var/list/FailedZs = list() @@ -271,6 +279,8 @@ SUBSYSTEM_DEF(mapping) INIT_ANNOUNCE("Loading [config.map_name]...") LoadGroup(FailedZs, "Station", config.map_path, config.map_file, config.traits, ZTRAITS_STATION, FALSE, config.orientation) + setup_station_z_index() + if(SSdbcore.Connect()) var/datum/DBQuery/query_round_map_name = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET map_name = '[config.map_name]' WHERE id = [GLOB.round_id]") query_round_map_name.Execute() diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 13c80aee57..c4ef98121b 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -22,7 +22,11 @@ return loaded_debris = TRUE var/list/data = json_decode(file2text("[get_map_persistence_path()]/debris.json")) - + var/list/z_lookup = list() + /// reverse it + for(var/z in SSmapping.z_to_station_z_index) + var/sz = SSmapping.z_to_station_z_index[z] + z_lookup[num2text(sz)] = z /datum/controller/subsystem/persistence/proc/SaveMapDebris() if(fexists("[get_map_persistence_path()]/debris.json")) @@ -32,6 +36,7 @@ for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) allowed_z_cache[num2text(z)] = TRUE var/list/data = list() + var/list/z_lookup = SSmapping.z_to_station_z_index WRITE_FILE("[get_map_persistence_path()]/debris.json", json_encode(data)) From 338869f6ad5913d6542c1818e6b07c22e1b00448 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 11:48:28 -0800 Subject: [PATCH 015/192] changes --- .../subsystem/persistence/cleanable_debris.dm | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index c4ef98121b..6f85436df8 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -21,12 +21,31 @@ if(loaded_debris) return loaded_debris = TRUE + var/list/allowed_turf_typecache = typecacheof(/turf/open) - typecacheof(/turf/open/space) + var/list/allowed_z_cache = list() var/list/data = json_decode(file2text("[get_map_persistence_path()]/debris.json")) var/list/z_lookup = list() /// reverse it for(var/z in SSmapping.z_to_station_z_index) var/sz = SSmapping.z_to_station_z_index[z] z_lookup[num2text(sz)] = z + for(var/z in data) + var/actual_z = z_lookup[z] + var/list/L1 = data[z] + for(var/x in L1) + var/list/L2 = data[z][x] + for(var/y in L2) + var/turf/tile = locate(x, y, z) + if(!tile) + continue + var/list/objects = data[z][x][y] + for(var/path in objects) + if(!IsValidDebrisLocation(tile, allowed_turf_typecache, allowed_z_cache, path, TRUE)) + continue + var/obj/effect/cleanable/instantiated = new path(tile) + var/list/data = objects[path] + if(data) + instantiated.PersistenceLoad(data) /datum/controller/subsystem/persistence/proc/SaveMapDebris() if(fexists("[get_map_persistence_path()]/debris.json")) @@ -38,16 +57,22 @@ var/list/data = list() var/list/z_lookup = SSmapping.z_to_station_z_index + WRITE_FILE("[get_map_persistence_path()]/debris.json", json_encode(data)) - -/datum/controller/subsystem/persistence/proc/IsValidDebrisLocation(turf/tile, list/allowed_typecache, list/allowed_zcache) +/datum/controller/subsystem/persistence/proc/IsValidDebrisLocation(turf/tile, list/allowed_typecache, list/allowed_zcache, type, loading = FALSE) if(!allowed_typecache[tile.type]) return FALSE if(!tile.loc.persistent_debris_allowed) return FALSE if(!allowed_zcache[num2text(tile.z)]) return FALSE + if(loading) + if(!initial(type.persistence_allow_stacking)) + var/obj/effect/cleanable/C = locate(type) in tile + if(!QDELETED(C)) + return FALSE + // Saving verifies allow stacking in the save proc. for(var/obj/structure/window/W in tile) if(W.fulltile) return FALSE From 5c0b4f824f81560fad4f1bf0916890c94969167e Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 12:42:03 -0800 Subject: [PATCH 016/192] hoh boy --- code/controllers/subsystem/mapping.dm | 2 +- .../subsystem/persistence/cleanable_debris.dm | 88 +++++++++++++++++-- code/game/objects/effects/decals/cleanable.dm | 3 - code/game/objects/effects/decals/crayon.dm | 4 +- 4 files changed, 82 insertions(+), 15 deletions(-) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 3d45672c3b..1893e9ccd9 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -264,7 +264,7 @@ SUBSYSTEM_DEF(mapping) /datum/controller/subsystem/mapping/proc/setup_station_z_index() z_to_station_z_index = list() var/sz = 1 - for(var/i in station_start to (station_Start + islist(config.map_file)? (length(config.map_file) - 1) : 0)) + for(var/i in station_start to (station_start + islist(config.map_file)? (length(config.map_file) - 1) : 0)) z_to_station_z_index["[i]"] = sz++ /datum/controller/subsystem/mapping/proc/loadWorld() diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 6f85436df8..8b8cd55d0d 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -21,8 +21,12 @@ if(loaded_debris) return loaded_debris = TRUE + if(CONFIG_GET(flag/persistent_debris_only)) + wipe_existing_debris() var/list/allowed_turf_typecache = typecacheof(/turf/open) - typecacheof(/turf/open/space) var/list/allowed_z_cache = list() + for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) + allowed_z_cache[num2text(z)] = TRUE var/list/data = json_decode(file2text("[get_map_persistence_path()]/debris.json")) var/list/z_lookup = list() /// reverse it @@ -39,31 +43,78 @@ if(!tile) continue var/list/objects = data[z][x][y] - for(var/path in objects) + for(var/_L in objects) + var/list/data + var/path + if(islist(_L)) + data = _L + path = data["__PATH__"] + else + path = _L + data = objects[_L] if(!IsValidDebrisLocation(tile, allowed_turf_typecache, allowed_z_cache, path, TRUE)) continue + var/path = data["__PATH__"] + if(!path) + continue var/obj/effect/cleanable/instantiated = new path(tile) - var/list/data = objects[path] if(data) - instantiated.PersistenceLoad(data) + instantiated.LoadPersistence(data) /datum/controller/subsystem/persistence/proc/SaveMapDebris() if(fexists("[get_map_persistence_path()]/debris.json")) fdel("[get_map_persistence_path()]/debris.json") - var/list/allowed_turf_typecache = typecacheof(/turf/open) - typecacheof(/turf/open/space) - var/list/allowed_z_cache = list() - for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) - allowed_z_cache[num2text(z)] = TRUE var/list/data = list() var/list/z_lookup = SSmapping.z_to_station_z_index + var/list/debris = RelevantPersistentDebris() + var/obj/effect/cleanable/saving + var/global_max = CONFIG_GET(number/persistent_debris_global_max) + var/type_max = CONFIG_GET(number/persistent_debris_type_max) + var/stored = 0 + var/list/stored_by_type = list() + for(var/i in debris) + saving = i + var/list/serializing = list() + var/path = saving.PersistenceSave(serializing) + if(!path) + continue + if(stored_by_type[path] > type_max) + continue + var/text_z = num2text(saving.z) + var/text_y = num2text(saving.y) + var/text_x = num2text(saving.x) + LAZYINITLIST(data[text_z]) + LAZYINITLIST(data[text_z][text_x]) + LAZYINITLIST(data[text_z][text_x][text_y]) + if(storing.persistence_allow_stacking) + serializing["__PATH__"] = path + data[text_z][text_x][text_y] += serializing + else + data[text_z][text_x][text_y][path] = serializing + stored++ + if(stored > global_max) + var/w = "Persistent debris saving globally aborted due to global max >= [global_max]. Either janitors never do their jobs or something is wrong." + message_admins(w) + subsystem_log(w)) + return + stored_by_type[path] = stored_by_type[path]? stored_by_type[path] + 1 : 1 + if(stored_by_type[path] > type_max) + var/w = "Persistent debris saving aborted for type [path] due to type max >= [global_max]. Either janitors never do their jobs or something is wrong." + message_admins(w) + subsystem_log(w)) - + subsystem_log({" + Debris saving completed: + Total: [global_max] + By type: [english_list(stored_by_type)] + "}) WRITE_FILE("[get_map_persistence_path()]/debris.json", json_encode(data)) /datum/controller/subsystem/persistence/proc/IsValidDebrisLocation(turf/tile, list/allowed_typecache, list/allowed_zcache, type, loading = FALSE) if(!allowed_typecache[tile.type]) return FALSE - if(!tile.loc.persistent_debris_allowed) + var/area/A = tile.loc + if(!A.persistent_debris_allowed) return FALSE if(!allowed_zcache[num2text(tile.z)]) return FALSE @@ -77,3 +128,22 @@ if(W.fulltile) return FALSE return TRUE + +/datum/controller/subsystem/persistence/proc/wipe_existing_debris() + var/list/existing = RelevantPersistentDebris() + QDEL_LIST(existing) + +/datum/controller/subsystem/persistence/proc/RelevantPersistentDebris() + var/list/allowed_turf_typecache = typecacheof(/turf/open) - typecacheof(/turf/open/space) + var/list/allowed_z_cache = list() + for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) + allowed_z_cache[num2text(z)] = TRUE + . = list() + for(var/obj/effect/cleanable/C in world) + if(!C.loc || QDELETED(C)) + continue + if(!C.persistent) + continue + if(!IsValidDebrisLocation(C.loc, allowed_turf_typecache, allowed_z_cache, C.type, FALSE)) + continue + . += C diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 1ad2173f76..11d76d3cdf 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -14,9 +14,6 @@ /obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases) . = ..() - #warn OPTIMIZE THE BELOW LINE, CACHE THINGS, THIS IS INSANELY EXPENSIVE - if(mapload && persistent && CONFIG_GET(flag/persistent_debris_only) && (z in SSmapping.levels_by_trait(ZTRAIT_STATION))) - return INITIALIZE_HINT_QDEL LAZYINITLIST(blood_DNA) //Kinda needed if (random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0) icon_state = pick(random_icon_states) diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index d62f8fccb6..6ebd798e40 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -36,7 +36,7 @@ . = ..() if(icon != initial(icon)) // no support for alticons yet, awful system anyways return null - data["icon_state"] = icon_stsate + data["icon_state"] = icon_state data["paint_color"] = paint_colour if(do_icon_rotate) data["rotation"] = rotation @@ -51,7 +51,7 @@ M.turn(data["rotation"]) transform = M if(data["paint_color"]) - paint_colour = data["paint_color"]) + paint_colour = data["paint_color"] add_atom_colour(paint_colour, FIXED_COLOUR_PRIORITY) if(data["icon_state"]) icon_state = data["icon_state"] From a5bcd0457ead82cc7bb02dba3ed20a6ce2318a2b Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 12:48:10 -0800 Subject: [PATCH 017/192] hoh boy --- .../subsystem/persistence/cleanable_debris.dm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 8b8cd55d0d..772091529a 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -57,9 +57,9 @@ var/path = data["__PATH__"] if(!path) continue - var/obj/effect/cleanable/instantiated = new path(tile) + var/obj/effect/decal/cleanable/instantiated = new path(tile) if(data) - instantiated.LoadPersistence(data) + instantiated.PersistenceLoad(data) /datum/controller/subsystem/persistence/proc/SaveMapDebris() if(fexists("[get_map_persistence_path()]/debris.json")) @@ -67,7 +67,7 @@ var/list/data = list() var/list/z_lookup = SSmapping.z_to_station_z_index var/list/debris = RelevantPersistentDebris() - var/obj/effect/cleanable/saving + var/obj/effect/decal/cleanable/saving var/global_max = CONFIG_GET(number/persistent_debris_global_max) var/type_max = CONFIG_GET(number/persistent_debris_type_max) var/stored = 0 @@ -95,13 +95,13 @@ if(stored > global_max) var/w = "Persistent debris saving globally aborted due to global max >= [global_max]. Either janitors never do their jobs or something is wrong." message_admins(w) - subsystem_log(w)) + subsystem_log(w) return stored_by_type[path] = stored_by_type[path]? stored_by_type[path] + 1 : 1 if(stored_by_type[path] > type_max) var/w = "Persistent debris saving aborted for type [path] due to type max >= [global_max]. Either janitors never do their jobs or something is wrong." message_admins(w) - subsystem_log(w)) + subsystem_log(w) subsystem_log({" Debris saving completed: @@ -110,7 +110,7 @@ "}) WRITE_FILE("[get_map_persistence_path()]/debris.json", json_encode(data)) -/datum/controller/subsystem/persistence/proc/IsValidDebrisLocation(turf/tile, list/allowed_typecache, list/allowed_zcache, type, loading = FALSE) +/datum/controller/subsystem/persistence/proc/IsValidDebrisLocation(turf/tile, list/allowed_typecache, list/allowed_zcache, obj/effect/decal/cleanable/type, loading = FALSE) if(!allowed_typecache[tile.type]) return FALSE var/area/A = tile.loc @@ -120,7 +120,7 @@ return FALSE if(loading) if(!initial(type.persistence_allow_stacking)) - var/obj/effect/cleanable/C = locate(type) in tile + var/obj/effect/decal/cleanable/C = locate(type) in tile if(!QDELETED(C)) return FALSE // Saving verifies allow stacking in the save proc. @@ -139,7 +139,7 @@ for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) allowed_z_cache[num2text(z)] = TRUE . = list() - for(var/obj/effect/cleanable/C in world) + for(var/obj/effect/decal/cleanable/C in world) if(!C.loc || QDELETED(C)) continue if(!C.persistent) From 9f130e0c5a4bedfd6b6e5d0d3d47b5ddcd1dd80c Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 14:09:10 -0800 Subject: [PATCH 018/192] blood --- .../objects/effects/decals/cleanable/gibs.dm | 19 +++++++ .../effects/decals/cleanable/humans.dm | 57 ++++++++++++++++++- .../effects/decals/cleanable/robots.dm | 4 ++ 3 files changed, 78 insertions(+), 2 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable/gibs.dm b/code/game/objects/effects/decals/cleanable/gibs.dm index 7df0153ddc..1f9897071c 100644 --- a/code/game/objects/effects/decals/cleanable/gibs.dm +++ b/code/game/objects/effects/decals/cleanable/gibs.dm @@ -6,6 +6,7 @@ random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") mergeable_decal = FALSE bloodiness = 0 //This isn't supposed to be bloody. + persistent = TRUE var/body_colors = "#e3ba84" //a default color just in case. var/gibs_reagent_id = /datum/reagent/liquidgibs var/gibs_bloodtype = "A+" @@ -31,6 +32,10 @@ flesh.color = body_colors add_overlay(flesh) +/obj/effect/decal/cleanable/blood/gibs/PersistenceSave(list/data) + . = ..() + return /obj/effect/decal/cleanable/blood/gibs/old + /obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target) return @@ -92,6 +97,8 @@ icon_state = "1" random_icon_states = list("drip1","drip2","drip3","drip4","drip5") bloodiness = 0 + persistent = TRUE + persistence_allow_stacking = TRUE var/drips = 1 /obj/effect/decal/cleanable/blood/drip/can_bloodcrawl_in() @@ -159,6 +166,10 @@ . = ..() update_icon() +/obj/effect/decal/cleanable/blood/gibs/slime/PersistenceSave(list/data) + . = ..() + return type + /obj/effect/decal/cleanable/blood/gibs/slime/update_icon() add_atom_colour(body_colors, FIXED_COLOUR_PRIORITY) cut_overlays() @@ -198,6 +209,10 @@ . = ..() update_icon() +/obj/effect/decal/cleanable/blood/gibs/synth/PersistenceSave(list/data) + . = ..() + return type + //IPCs /obj/effect/decal/cleanable/blood/gibs/ipc desc = "They look sharp yet oozing." @@ -209,6 +224,10 @@ . = ..() update_icon() +/obj/effect/decal/cleanable/blood/gibs/ipc/PersistenceSave(list/data) + . = ..() + return type + /obj/effect/decal/cleanable/blood/gibs/ipc/update_icon() add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY) cut_overlays() diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index fa16a95faf..5d514bc68f 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -8,6 +8,7 @@ bloodiness = BLOOD_AMOUNT_PER_DECAL color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere. beauty = -100 + persistent = TRUE /obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) if (C.blood_DNA) @@ -24,7 +25,20 @@ update_icon() /obj/effect/decal/cleanable/blood/update_icon() - color = blood_DNA_to_color() + . = ..() + if(!fixed_color) + add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY) + +/obj/effect/decal/cleanable/blood/PersistenceSave(list/data) + . = ..() + data["color"] = color + return /obj/effect/decal/cleanable/blood/old + +/obj/effect/decal/cleanable/blood/PersistenceLoad(list/data) + . = ..() + if(data["color"]) + fixed_color = TRUE + add_atom_colour(data["color"], FIXED_COLOUR_PRIORITY) /obj/effect/decal/cleanable/blood/old name = "dried blood" @@ -38,6 +52,7 @@ /obj/effect/decal/cleanable/blood/splats random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5") + persistence_allow_stacking = TRUE /obj/effect/decal/cleanable/blood/splatter random_icon_states = list("splatter1", "splatter2", "splatter3", "splatter4", "splatter5") @@ -48,16 +63,43 @@ random_icon_states = null beauty = -50 +/obj/effect/decal/cleanable/blood/tracks/PersistenceSave(list/data) + . = ..() + data["dir"] = dir + +/obj/effect/decal/cleanable/blood/tracks/PersistenceLoad(list/data) + . = ..() + if(data["dir"]) + setDir(data["dir"]) + /obj/effect/decal/cleanable/trail_holder //not a child of blood on purpose name = "blood" icon_state = "ltrails_1" desc = "Your instincts say you shouldn't be following these." random_icon_states = null beauty = -50 + persistent = TRUE + persistence_allow_stacking = TRUE var/list/existing_dirs = list() + var/fixed_color = FALSE + +/obj/effect/decal/cleanable/trail_holder/PersistenceSave(list/data) + . = ..() + data["dir"] = dir + data["color"] = color + +/obj/effect/decal/cleanable/trail_holder/PersistenceLoad(list/data) + . = ..() + if(data["dir"]) + setDir(data["dir"]) + if(data["color"]) + fixed_color = TRUE + add_atom_colour(data["color"], FIXED_COLOUR_PRIORITY) /obj/effect/decal/cleanable/trail_holder/update_icon() - color = blood_DNA_to_color() + . = ..() + if(!fixed_color) + add_atom_colour(blood_DNA_to_color()) /obj/effect/cleanable/trail_holder/Initialize() . = ..() @@ -84,8 +126,19 @@ var/entered_dirs = 0 var/exited_dirs = 0 blood_state = BLOOD_STATE_BLOOD //the icon state to load images from + persistent = TRUE + persistence_allow_stacking = TRUE var/list/shoe_types = list() +/obj/effect/decal/cleanable/blood/footprints/PersistenceSave(list/data) + . = ..() + data["dir"] = dir + +/obj/effect/decal/cleanable/blood/footprints/PersistenceLoad(list/data) + . = ..() + if(data["dir"]) + setDir(data["dir"]) + /obj/effect/decal/cleanable/blood/footprints/Crossed(atom/movable/O) if(ishuman(O)) var/mob/living/carbon/human/H = O diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index 2765330977..8f8f27c3c6 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -11,6 +11,7 @@ bloodiness = BLOOD_AMOUNT_PER_DECAL mergeable_decal = FALSE beauty = -50 + persistent = TRUE /obj/effect/decal/cleanable/robot_debris/Initialize(mapload, list/datum/disease/diseases) . = ..() @@ -52,6 +53,7 @@ blood_state = BLOOD_STATE_OIL bloodiness = BLOOD_AMOUNT_PER_DECAL beauty = -100 + persistent = TRUE /obj/effect/decal/cleanable/oil/Initialize() . = ..() @@ -61,8 +63,10 @@ /obj/effect/decal/cleanable/oil/streak random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5") beauty = -50 + persistent = TRUE /obj/effect/decal/cleanable/oil/slippery + persistent = FALSE /obj/effect/decal/cleanable/oil/slippery/Initialize() AddComponent(/datum/component/slippery, 80, (NO_SLIP_WHEN_WALKING | SLIDE)) From c3e9cdd9a51874d6a4cbce1f5000c484aaae7ea0 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat, 26 Dec 2020 23:09:19 +0000 Subject: [PATCH 019/192] finale --- code/__DEFINES/loadout.dm | 3 ++ code/_globalvars/lists/loadout_categories.dm | 3 +- code/game/objects/items/mop.dm | 8 +++-- code/game/objects/structures/bedsheet_bin.dm | 27 +++++++++++++-- code/modules/client/client_procs.dm | 23 +++++++++++++ code/modules/client/preferences.dm | 17 ++++++++-- code/modules/client/preferences_savefile.dm | 7 ++++ .../kitchen_machinery/microwave.dm | 31 ++++++++++-------- code/modules/mining/point_bank.dm | 2 ++ icons/mob/clothing/neck.dmi | Bin 50791 -> 52434 bytes .../code/modules/client/loadout/unlockable.dm | 30 +++++++++++++++++ tgstation.dme | 1 + 12 files changed, 131 insertions(+), 21 deletions(-) create mode 100644 modular_citadel/code/modules/client/loadout/unlockable.dm diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index 7fe5fa4876..ecd043a66a 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -55,6 +55,9 @@ //donator items #define LOADOUT_CATEGORY_DONATOR "Donator" +//unlockable items +#define LOADOUT_CATEGORY_UNLOCKABLE "Unlockable" + //how many prosthetics can we have #define MAXIMUM_LOADOUT_PROSTHETICS 2 diff --git a/code/_globalvars/lists/loadout_categories.dm b/code/_globalvars/lists/loadout_categories.dm index 0f0ac52214..4a61a94dc7 100644 --- a/code/_globalvars/lists/loadout_categories.dm +++ b/code/_globalvars/lists/loadout_categories.dm @@ -9,5 +9,6 @@ GLOBAL_LIST_INIT(loadout_categories, list( LOADOUT_CATEGORY_SHOES = LOADOUT_SUBCATEGORIES_NONE, LOADOUT_CATEGORY_GLOVES = LOADOUT_SUBCATEGORIES_NONE, LOADOUT_CATEGORY_GLASSES = LOADOUT_SUBCATEGORIES_NONE, - LOADOUT_CATEGORY_DONATOR = LOADOUT_SUBCATEGORIES_NONE + LOADOUT_CATEGORY_DONATOR = LOADOUT_SUBCATEGORIES_NONE, + LOADOUT_CATEGORY_UNLOCKABLE = LOADOUT_SUBCATEGORIES_NONE )) diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index 01ef96b7e8..62a3530afe 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -24,13 +24,17 @@ create_reagents(mopcap, NONE, NO_REAGENTS_VALUE) -/obj/item/mop/proc/clean(turf/A) +/obj/item/mop/proc/clean(turf/A, mob/user) if(reagents.has_reagent(/datum/reagent/water, 1) || reagents.has_reagent(/datum/reagent/water/holywater, 1) || reagents.has_reagent(/datum/reagent/consumable/ethanol/vodka, 1) || reagents.has_reagent(/datum/reagent/space_cleaner, 1)) SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) A.clean_blood() + var/cleaned_something = FALSE for(var/obj/effect/O in A) if(is_cleanable(O)) + cleaned_something = TRUE qdel(O) + if(cleaned_something && user && user.client) + user.client.increment_progress("janitor", 1) reagents.reaction(A, TOUCH, 10) //Needed for proper floor wetting. reagents.remove_any(1) //reaction() doesn't use up the reagents @@ -59,7 +63,7 @@ if(!L.UseStaminaBuffer(stamusage, warn = TRUE)) return user.visible_message("[user] cleans \the [T] with [src].", "You clean \the [T] with [src].") - clean(T) + clean(T, user) user.DelayNextAction(CLICK_CD_MELEE) user.do_attack_animation(T, used_item = src) playsound(T, "slosh", 50, 1) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index c36fba96cb..e718bce620 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -243,7 +243,7 @@ LINEN BINS /obj/item/bedsheet/random/Initialize() ..() - var/type = pick(typesof(/obj/item/bedsheet) - list(/obj/item/bedsheet/random, /obj/item/bedsheet/chameleon)) + var/type = pick(typesof(/obj/item/bedsheet) - (list(/obj/item/bedsheet/random, /obj/item/bedsheet/chameleon) + typesof(/obj/item/bedsheet/unlockable))) new type(loc) return INITIALIZE_HINT_QDEL @@ -257,9 +257,32 @@ LINEN BINS chameleon_action = new(src) chameleon_action.chameleon_type = /obj/item/bedsheet chameleon_action.chameleon_name = "Bedsheet" - chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/bedsheet/chameleon, /obj/item/bedsheet/random), only_root_path = TRUE) + chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/bedsheet/chameleon, /obj/item/bedsheet/random, /obj/item/bedsheet/unlockable), only_root_path = FALSE) chameleon_action.initialize_disguises() +//unlockable bedsheets +/obj/item/bedsheet/unlockable + name = "unlockable bedsheet" + desc = "this shouldn't be here!" + +//janitor: clean 100 messes with mop as janitor +/obj/item/bedsheet/unlockable/janitor + name = "janitor bedsheet" + desc = "A white bedsheet, with a warning sign on the front." + icon_state = "sheetjanitor" + +//cook: use microwave 100 times properly (contents must make one good item) as cook +/obj/item/bedsheet/unlockable/cook + name = "cook bedsheet" + desc = "A grey bedsheet, with a microwave on the front." + icon_state = "sheetcook" + +//miner: redeem 100,000 mining points +/obj/item/bedsheet/unlockable/miner + name = "miner bedsheet" + desc = "A red and black bedsheet. It seems to be made with goliath hide." + icon_state = "sheetminer" + //bedsheet bin /obj/structure/bedsheetbin name = "linen bin" diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 267ee3a5e1..ebe1e6e260 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -1002,3 +1002,26 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( verb_tabs |= verb_to_init.category verblist[++verblist.len] = list(verb_to_init.category, verb_to_init.name) src << output("[url_encode(json_encode(verb_tabs))];[url_encode(json_encode(verblist))]", "statbrowser:init_verbs") + +//increment progress for an unlockable loadout item +/client/proc/increment_progress(key, amount) + if(prefs) + var/savefile/S = new /savefile(prefs.path) + var/list/unlockable_loadout_data = S["unlockable_loadout"] + if(!length(unlockable_loadout_data)) + unlockable_loadout_data = list() + unlockable_loadout_data[key] = amount + S["unlockable_loadout"] << unlockable_loadout_data + prefs.unlockable_loadout_data = unlockable_loadout_data + return TRUE + else + if(unlockable_loadout_data[key]) + unlockable_loadout_data[key] += amount + else + unlockable_loadout_data[key] = amount + S["unlockable_loadout"] << unlockable_loadout_data + prefs.unlockable_loadout_data = unlockable_loadout_data + WRITE_FILE(S["unlockable_loadout"], unlockable_loadout_data) + return TRUE + return FALSE + diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0578b85799..63853c0e4e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -180,10 +180,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/gear_points = 10 var/list/gear_categories var/list/loadout_data = list() + var/list/unlockable_loadout_data = list() var/loadout_slot = 1 //goes from 1 to MAXIMUM_LOADOUT_SAVES var/gear_category var/gear_subcategory - var/list/loadout_progress = list() var/screenshake = 100 var/damagescreenshake = 2 @@ -879,7 +879,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/list/loadout_item = has_loadout_gear(loadout_slot, "[gear.type]") var/extra_color_data = "" if(loadout_item) - class_link = "style='white-space:normal;' class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=0'" + if(gear.category != LOADOUT_CATEGORY_UNLOCKABLE || (can_use_unlockable(gear))) + class_link = "style='white-space:normal;' class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=0'" + else + class_link = "style='white-space:normal;' class='linkOff'" if(gear.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) extra_color_data += "
Color" for(var/loadout_color in loadout_item[LOADOUT_COLOR]) @@ -890,7 +893,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) loadout_color_non_poly = loadout_item[LOADOUT_COLOR][1] extra_color_data += "
Color" extra_color_data += "   " - else if(gear_points <= 0) + else if((gear_points - gear.cost) < 0) class_link = "style='white-space:normal;' class='linkOff'" else if(donoritem) class_link = "style='white-space:normal;background:#ebc42e;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'" @@ -2658,6 +2661,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(G.donoritem && !G.donator_ckey_check(user.ckey)) to_chat(user, "This is an item intended for donator use only. You are not authorized to use this item.") return + if(istype(G, /datum/gear/unlockable) && !can_use_unlockable(G)) + to_chat(user, "To use this item, you need to meet the defined requirements!") + return if(gear_points >= initial(G.cost)) var/list/new_loadout_data = list(LOADOUT_ITEM = "[G.type]") if(length(G.loadout_initial_colors)) @@ -2943,6 +2949,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(find_gear) loadout_data["SAVE_[save_slot]"] -= list(find_gear) +/datum/preferences/proc/can_use_unlockable(datum/gear/unlockable/unlockable_gear) + if(unlockable_loadout_data[unlockable_gear.progress_key] >= unlockable_gear.progress_required) + return TRUE + return FALSE + #undef DEFAULT_SLOT_AMT #undef HANDS_SLOT_AMT #undef BACKPACK_SLOT_AMT diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 86f7622a93..119acef72e 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -738,6 +738,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //gear loadout loadout_data = safe_json_decode(S["loadout"]) + unlockable_loadout_data = S["unlockable_loadout"] + //try to fix any outdated data if necessary //preference updating will handle saving the updated data for us. if(needs_update >= 0) @@ -1075,6 +1077,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else S["loadout"] << safe_json_encode(list()) + if(length(unlockable_loadout_data)) + S["unlockable_loadout"] << unlockable_loadout_data + else + S["unlockable_loadout"] << list() + cit_character_pref_save(S) return 1 diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index d9e3bc6165..abf45bc88e 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -195,7 +195,7 @@ /obj/machinery/microwave/AltClick(mob/user) . = ..() if(user.canUseTopic(src, !hasSiliconAccessInArea(user))) - cook() + cook(user) return TRUE /obj/machinery/microwave/ui_interact(mob/user) @@ -226,7 +226,7 @@ if("eject") eject() if("use") - cook() + cook(user) if("examine") examine(user) @@ -236,7 +236,7 @@ AM.forceMove(drop_location()) ingredients.Cut() -/obj/machinery/microwave/proc/cook() +/obj/machinery/microwave/proc/cook(mob/user) if(stat & (NOPOWER|BROKEN)) return if(operating || broken > 0 || panel_open || !anchored || dirty == 100) @@ -257,7 +257,7 @@ start_can_fail() return break - start() + start(user) /obj/machinery/microwave/proc/turn_on() visible_message("\The [src] turns on.", "You hear a microwave humming.") @@ -277,9 +277,9 @@ #define MICROWAVE_MUCK 1 #define MICROWAVE_PRE 2 -/obj/machinery/microwave/proc/start() +/obj/machinery/microwave/proc/start(mob/user) turn_on() - loop(MICROWAVE_NORMAL, 10) + loop(MICROWAVE_NORMAL, 10, wait = max(12 - 2 * productivity, 2), user) /obj/machinery/microwave/proc/start_can_fail() turn_on() @@ -292,7 +292,7 @@ update_icon() loop(MICROWAVE_MUCK, 4) -/obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * productivity, 2)) // standard wait is 10 +/obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * productivity, 2), mob/user) // standard wait is 10 if(stat & (NOPOWER|BROKEN)) if(type == MICROWAVE_PRE) pre_fail() @@ -300,7 +300,7 @@ if(!time) switch(type) if(MICROWAVE_NORMAL) - loop_finish() + loop_finish(user) if(MICROWAVE_MUCK) muck_finish() if(MICROWAVE_PRE) @@ -308,16 +308,21 @@ return time-- use_power(500) - addtimer(CALLBACK(src, .proc/loop, type, time, wait), wait) + addtimer(CALLBACK(src, .proc/loop, type, time, wait, user), wait) -/obj/machinery/microwave/proc/loop_finish() +/obj/machinery/microwave/proc/loop_finish(mob/user) operating = FALSE var/metal = 0 + var/cooked_food = 0 for(var/obj/item/O in ingredients) - O.microwave_act(src) + var/cooked_result = O.microwave_act(src) + if(!istype(cooked_result, /obj/item/reagent_containers/food/snacks/badrecipe)) + cooked_food += 1 if(O.custom_materials?.len) metal += O.custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)] + if(cooked_food && user.client) + user.client.increment_progress("cook", cooked_food) if(metal) spark() @@ -336,8 +341,8 @@ spark() after_finish_loop() -/obj/machinery/microwave/proc/pre_success() - loop(MICROWAVE_NORMAL, 10) +/obj/machinery/microwave/proc/pre_success(mob/user) + loop(MICROWAVE_NORMAL, 10, user) /obj/machinery/microwave/proc/muck_finish() visible_message("\The [src] gets covered in muck!") diff --git a/code/modules/mining/point_bank.dm b/code/modules/mining/point_bank.dm index 11f23a5d7c..f18b62635f 100644 --- a/code/modules/mining/point_bank.dm +++ b/code/modules/mining/point_bank.dm @@ -30,6 +30,8 @@ if(points) if(I) I.mining_points += points + if(usr.client) + usr.client.increment_progress("miner", points) points = 0 else to_chat(usr, "No ID detected.") diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 276b5c94583314660fd4077213fc8438ec113274..084a2c36490c03065135a2d8e098095eeb2c5efd 100644 GIT binary patch literal 52434 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 literal 50791 zcmce7WmFtZ+veaJ2<{d%xFom*hY%nT+#z^y4>CX?xC999!JXhb_}~(32*KSgxXd=s z^M2piANyzb>@MeYQ$3}9*DY6FT@|jTBL57N91{crJyTSWQ3rt#1D-B)RNxov(Ls9P zLGAMg9XA;ZS92E|CpQ~M2N1|BBQr_N@eeolSF1a1^uf;@@vYJ#-U{Dx2IAQ5w~;v7 zYl5djr3b|XAsszL1KV%hRt7tzBe-nZ|2E$`pPyeE87?n2fV<`kiiPVRK2P$aSw(1O z{w`nW?|#-mY3!1VI8#!)q{@P0Wp7StHB(~0Aj*yMai(P0D#nx{<=sf-RbFCq4lL1~ zeE-w2;<2pa>r?6PpQXkbr0Xq`-{!FQxS9%dV`KNq;cW#{ zKDNPQOR0{O{?58#h(m}%V>T;3*?}pJN>(I|9~9^ODfq@ZF>oF+#8f3P`W<6zNwJEd zgVuiJ%hzK+7qDkai$5&l#Ft%aYur^fw^@~zFEK3<>HftC*9;8w8>SDayS0;FWQ(=RX{W^42lG4NMe^+Yv=qI%#s( zlRYuZwRlsSJn(wqvG-cO+7$yuE=HOq>P9r+G?umqAAgHX5J#^6%wkX4(1_|ww!2T6X2`72+9P}1qX{5J&){Q^pZp2*WuQUoR9fQd>ZWEX(n#35V(86?mB85N-9V1Om zkp6YztEAchpxXcb4E;Z=A;bJb?%Bu2%eSUWN9Xm1j*n}xz|9h

wiV3JM=vo%fbh1>Mn- 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 diff --git a/modular_citadel/code/modules/client/loadout/unlockable.dm b/modular_citadel/code/modules/client/loadout/unlockable.dm new file mode 100644 index 0000000000..6e522812b8 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/unlockable.dm @@ -0,0 +1,30 @@ +/datum/gear/unlockable + category = LOADOUT_CATEGORY_UNLOCKABLE + slot = SLOT_NECK + + var/progress_required //what does our progress need to be to unlock it + var/progress_key //what is the key used to retrieve existing progress for this unlockable + +/datum/gear/unlockable/janitor + name = "Janitor Bedsheet" + description = "Clean 100 messes with a mop to unlock this. It has a warning sign on!" + path = /obj/item/bedsheet/unlockable/janitor + + progress_required = 100 + progress_key = "janitor" + +/datum/gear/unlockable/cook + name = "Cook Bedsheet" + description = "Cook 250 items using the microwave to unlock this. It has a microwave on!" + path = /obj/item/bedsheet/unlockable/cook + + progress_required = 250 + progress_key = "cook" + +/datum/gear/unlockable/miner + name = "Miner Bedsheet" + description = "Redeem a total of 100,000 miner points to unlock this. It's made out of goliath hide!" + path = /obj/item/bedsheet/unlockable/miner + + progress_required = 100000 + progress_key = "miner" \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index bac0ffbdd3..d818fb6ea0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3605,6 +3605,7 @@ #include "modular_citadel\code\modules\client\loadout\shoes.dm" #include "modular_citadel\code\modules\client\loadout\suit.dm" #include "modular_citadel\code\modules\client\loadout\uniform.dm" +#include "modular_citadel\code\modules\client\loadout\unlockable.dm" #include "modular_citadel\code\modules\client\verbs\who.dm" #include "modular_citadel\code\modules\clothing\neck.dm" #include "modular_citadel\code\modules\clothing\trek.dm" From fcd8d35c767b026286e652a9cc688cdde84a29a0 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sun, 27 Dec 2020 02:23:57 +0000 Subject: [PATCH 020/192] thank --- code/modules/food_and_drinks/kitchen_machinery/microwave.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index abf45bc88e..6bdf3cff8e 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -279,7 +279,7 @@ /obj/machinery/microwave/proc/start(mob/user) turn_on() - loop(MICROWAVE_NORMAL, 10, wait = max(12 - 2 * productivity, 2), user) + loop(MICROWAVE_NORMAL, 10, user = user) /obj/machinery/microwave/proc/start_can_fail() turn_on() From b7cd14b41e5faa101705e8296c1b0050112cecb8 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 20:09:24 -0800 Subject: [PATCH 021/192] poggy? --- code/controllers/subsystem/persistence/cleanable_debris.dm | 2 +- code/game/objects/effects/decals/cleanable/humans.dm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 772091529a..dccc609ed3 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -86,7 +86,7 @@ LAZYINITLIST(data[text_z]) LAZYINITLIST(data[text_z][text_x]) LAZYINITLIST(data[text_z][text_x][text_y]) - if(storing.persistence_allow_stacking) + if(saving.persistence_allow_stacking) serializing["__PATH__"] = path data[text_z][text_x][text_y] += serializing else diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 5d514bc68f..5206279d42 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -9,6 +9,7 @@ color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere. beauty = -100 persistent = TRUE + var/fixed_color = FALSE /obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) if (C.blood_DNA) From 6044086de034a9aeae81be11f53c39a24a773878 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 20:29:52 -0800 Subject: [PATCH 022/192] changes --- code/game/area/areas.dm | 2 ++ .../objects/effects/decals/cleanable/misc.dm | 18 ++++++++++++++++ code/game/turfs/open.dm | 7 +++++++ code/game/turfs/simulated/chasm.dm | 1 + code/game/turfs/simulated/dirtystation.dm | 5 ++++- code/game/turfs/simulated/floor.dm | 1 + code/game/turfs/simulated/lava.dm | 1 + code/game/turfs/simulated/reebe_void.dm | 1 + code/game/turfs/space/space.dm | 1 + code/modules/mob/living/living_defines.dm | 2 ++ code/modules/mob/living/living_movement.dm | 21 +++++++++++++++++++ 11 files changed, 59 insertions(+), 1 deletion(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index fcde2bd1eb..ff177898cb 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -26,6 +26,8 @@ var/clockwork_warp_fail = "The structure there is too dense for warping to pierce. (This is normal in high-security areas.)" /// Persistent debris alowed var/persistent_debris_allowed = TRUE + /// Dirty flooring allowed + var/dirt_buildup_allowed = TRUE /// If mining tunnel generation is allowed in this area var/tunnel_allowed = FALSE diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 9c0fb2eca9..e3f223f380 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -57,10 +57,28 @@ name = "dirt" desc = "Someone should clean that up." icon_state = "dirt" + alpha = 127 canSmoothWith = list(/obj/effect/decal/cleanable/dirt, /turf/closed/wall, /obj/structure/falsewall) smooth = SMOOTH_FALSE mouse_opacity = MOUSE_OPACITY_TRANSPARENT beauty = -75 + mergeable_decal = TRUE + persistent = TRUE + +/obj/effect/decal/cleanable/dirt/proc/dirty(strength) + if(alpha < 255) + alpha += strength + if(alpha > 255) + alpha = 255 + +/obj/effect/decal/cleanable/dirt/PersistenceSave(list/data) + . = ..() + data["alpha"] = alpha + +/obj/effect/decal/cleanable/dirt/PersistenceLoad(list/data) + . = ..() + if(data["alpha"]) + alpha = data["alpha"] /obj/effect/decal/cleanable/dirt/Initialize() . = ..() diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 493e88d442..15f5738033 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -1,5 +1,12 @@ /turf/open plane = FLOOR_PLANE + /// Does dirt buildup happen on us? + var/dirt_buildup_allowed = FALSE + /// Dirt level. + var/dirtyness = 0 + /// Dirt level to spawn dirt. + var/dirt_spawn_threshold = 100 + /// Slowdown applied to mobs on us. var/slowdown = 0 //negative for faster, positive for slower var/postdig_icon_change = FALSE diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index 5e8f55feed..9490d728fe 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -9,6 +9,7 @@ canSmoothWith = list(/turf/open/floor/fakepit, /turf/open/chasm) density = TRUE //This will prevent hostile mobs from pathing into chasms, while the canpass override will still let it function like an open turf bullet_bounce_sound = null //abandon all hope ye who enter + dirt_buildup_allowed = FALSE /turf/open/chasm/Initialize() . = ..() diff --git a/code/game/turfs/simulated/dirtystation.dm b/code/game/turfs/simulated/dirtystation.dm index e29d75a248..add8467ceb 100644 --- a/code/game/turfs/simulated/dirtystation.dm +++ b/code/game/turfs/simulated/dirtystation.dm @@ -8,6 +8,9 @@ //Making the station dirty, one tile at a time. Called by master controller's setup_objects /turf/open/floor/proc/MakeDirty() + if(CONFIG_GET(flag/persistent_debris_only)) + return + if(prob(66)) //fastest possible exit 2/3 of the time return @@ -38,7 +41,7 @@ return //Construction zones. Blood, sweat, and oil. Oh, and dirt. - var/static/list/engine_dirt_areas = typecacheof(list(/area/engine, + var/static/list/engine_dirt_areas = typecacheof(list(/area/engine, /area/crew_quarters/heads/chief, /area/ruin/space/derelict/assembly_line, /area/science/robotics, diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index ddec9750d9..6a95a4a95d 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -5,6 +5,7 @@ name = "floor" icon = 'icons/turf/floors.dmi' baseturfs = /turf/open/floor/plating + dirt_buildup_allowed = TRUE footstep = FOOTSTEP_FLOOR barefootstep = FOOTSTEP_HARD_BAREFOOT diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 2f223f2c40..e7471478fb 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -6,6 +6,7 @@ gender = PLURAL //"That's some lava." baseturfs = /turf/open/lava //lava all the way down slowdown = 2 + dirt_buildup_allowed = FALSE light_range = 2 light_power = 0.75 diff --git a/code/game/turfs/simulated/reebe_void.dm b/code/game/turfs/simulated/reebe_void.dm index 14aa02065d..3f3bf31f9b 100644 --- a/code/game/turfs/simulated/reebe_void.dm +++ b/code/game/turfs/simulated/reebe_void.dm @@ -6,6 +6,7 @@ planetary_atmos = TRUE bullet_bounce_sound = null //forever falling tiled_dirt = FALSE + dirt_buildup_allowed = FALSE /turf/open/indestructible/reebe_void/Initialize(mapload) . = ..() diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index b150d4930e..3cdbe8badb 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -3,6 +3,7 @@ icon_state = "0" name = "\proper space" intact = 0 + dirt_buildup_allowed = FALSE temperature = TCMB thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index d4ccc63b34..79334e1698 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -63,6 +63,8 @@ //Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. var/incorporeal_move = FALSE //FALSE is off, INCORPOREAL_MOVE_BASIC is normal, INCORPOREAL_MOVE_SHADOW is for ninjas //and INCORPOREAL_MOVE_JAUNT is blocked by holy water/salt + /// Do we make floors dirty as we move? + var/causes_dirt_buildup_on_floor = TRUE var/list/roundstart_quirks = list() diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 0cdfe9dbf2..e7a5de294d 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -101,7 +101,28 @@ if(lying && !buckled && prob(getBruteLoss()*200/maxHealth)) makeTrail(newloc, T, old_direction) + if(causes_dirt_buildup_on_floor && (movement_type & GROUND)) + dirt_buildup() +/** + * Attempts to make the floor dirty. + */ +/mob/living/proc/dirt_buildup(strength) + var/turf/T = loc + if(!istype(T) || !T.allow_dirt_buildup) + return + var/area/A = T.loc + if(!A.allow_dirt_buildup) + return + var/obj/effect/decal/cleanable/dirt/D = locate() in T + if(D) + D.dirty(strength) + else + T.dirtyness += strength + if(T.dirtyness >= T.dirt_spawn_threshold) + D = new /obj/effect/decal/cleanable/dirt(T) + D.dirty(T.dirt_spawn_threshold - T.dirtyness) + T.dirtyness = 0 // reset. /mob/living/Move_Pulled(atom/A) . = ..() From 952d74437864fe1762c65f5f85d2f51f51686b52 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 20:31:31 -0800 Subject: [PATCH 023/192] done --- code/modules/mob/living/living_movement.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index e7a5de294d..2a9e2d2634 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -108,11 +108,11 @@ * Attempts to make the floor dirty. */ /mob/living/proc/dirt_buildup(strength) - var/turf/T = loc - if(!istype(T) || !T.allow_dirt_buildup) + var/turf/open/T = loc + if(!istype(T) || !T.dirt_buildup_allowed) return var/area/A = T.loc - if(!A.allow_dirt_buildup) + if(!A.dirt_buildup_allowed) return var/obj/effect/decal/cleanable/dirt/D = locate() in T if(D) From 322843523767669b2074fe6e5f9143168c93e43f Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 20:33:16 -0800 Subject: [PATCH 024/192] errors --- .../subsystem/persistence/cleanable_debris.dm | 17 ++++++++--------- code/game/objects/effects/decals/crayon.dm | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index dccc609ed3..a08c4c4964 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -39,27 +39,26 @@ for(var/x in L1) var/list/L2 = data[z][x] for(var/y in L2) - var/turf/tile = locate(x, y, z) + var/turf/tile = locate(x, y, actual_z) if(!tile) continue var/list/objects = data[z][x][y] for(var/_L in objects) - var/list/data + var/list/objdata var/path if(islist(_L)) - data = _L - path = data["__PATH__"] + objdata = _L + path = objdata["__PATH__"] else path = _L - data = objects[_L] + objdata = objects[_L] if(!IsValidDebrisLocation(tile, allowed_turf_typecache, allowed_z_cache, path, TRUE)) continue - var/path = data["__PATH__"] if(!path) continue var/obj/effect/decal/cleanable/instantiated = new path(tile) - if(data) - instantiated.PersistenceLoad(data) + if(objdata) + instantiated.PersistenceLoad(objdata) /datum/controller/subsystem/persistence/proc/SaveMapDebris() if(fexists("[get_map_persistence_path()]/debris.json")) @@ -82,7 +81,7 @@ continue var/text_z = num2text(saving.z) var/text_y = num2text(saving.y) - var/text_x = num2text(saving.x) + var/text_x = num2text(z_lookup[num2text(saving.x)]) LAZYINITLIST(data[text_z]) LAZYINITLIST(data[text_z][text_x]) LAZYINITLIST(data[text_z][text_x][text_y]) diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 6ebd798e40..ad9abe10b1 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -48,7 +48,7 @@ name = data["name"] if(do_icon_rotate && data["rotation"]) var/matrix/M = matrix() - M.turn(data["rotation"]) + M.Turn(data["rotation"]) transform = M if(data["paint_color"]) paint_colour = data["paint_color"] From dafc6bf89fe7816474b5a5fe31d42efecfc1b9a6 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 20:41:21 -0800 Subject: [PATCH 025/192] fix --- .../configuration/entries/game_options.dm | 13 +++++++++++++ code/game/objects/effects/decals/cleanable/misc.dm | 6 +++++- code/game/turfs/open.dm | 4 ++-- code/modules/mob/living/living_movement.dm | 4 ++-- config/game_options.txt | 8 +++++++- 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 67e4a97894..dcede1e3e0 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -566,3 +566,16 @@ config_entry_value = 0.333 min_val = 0 integer = FALSE + +/// Amount of dirtyness tiles need to spawn dirt. +/datum/config_entry/number/turf_dirt_threshold + config_entry_value = 100 + min_value = 1 + integer = TRUE + +/// Alpha dirt starts at +/datum/config_entry/number/dirt_alpha_starting + config_entry_value = 127 + max_val = 255 + min_val = 0 + integer = TRUE diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index e3f223f380..b4c3a3acec 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -65,7 +65,11 @@ mergeable_decal = TRUE persistent = TRUE -/obj/effect/decal/cleanable/dirt/proc/dirty(strength) +/obj/effect/decal/cleanable/dirt/Initialize(mapload) + . = ..() + alpha = CONFIG_GET(number/dirt_alpha_starting) + +/obj/effect/decal/cleanable/dirt/proc/dirty(strength = 1) if(alpha < 255) alpha += strength if(alpha > 255) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 15f5738033..7e00b1cf63 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -4,8 +4,8 @@ var/dirt_buildup_allowed = FALSE /// Dirt level. var/dirtyness = 0 - /// Dirt level to spawn dirt. - var/dirt_spawn_threshold = 100 + /// Dirt level to spawn dirt. Null to use config. + var/dirt_spawn_threshold /// Slowdown applied to mobs on us. var/slowdown = 0 //negative for faster, positive for slower diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 2a9e2d2634..d4694a76ea 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -107,7 +107,7 @@ /** * Attempts to make the floor dirty. */ -/mob/living/proc/dirt_buildup(strength) +/mob/living/proc/dirt_buildup(strength =) var/turf/open/T = loc if(!istype(T) || !T.dirt_buildup_allowed) return @@ -119,7 +119,7 @@ D.dirty(strength) else T.dirtyness += strength - if(T.dirtyness >= T.dirt_spawn_threshold) + if(T.dirtyness >= isnull(T.dirt_spawn_threshold)? CONFIG_GET(number/turf_dirt_threshold) : T.dirt_spawn_threshold) D = new /obj/effect/decal/cleanable/dirt(T) D.dirty(T.dirt_spawn_threshold - T.dirtyness) T.dirtyness = 0 // reset. diff --git a/config/game_options.txt b/config/game_options.txt index bc5fdf940e..3c53d9fecb 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -668,4 +668,10 @@ ALLOW_CUSTOM_SKINTONES ## Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh. ## Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best. -#USE_FIELD_OF_VISION \ No newline at end of file +#USE_FIELD_OF_VISION + +## Default turf threshold to get dirt +TURF_DIRT_THRESHOLD 100 + +## Default alpha of dirt on spawn +DIRT_ALPHA_STARTING 127 From d3414a4d2387597c95bdfb1e6600d502396a9c9c Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 20:47:50 -0800 Subject: [PATCH 026/192] ok --- code/game/objects/effects/decals/cleanable.dm | 2 ++ code/game/objects/effects/decals/cleanable/misc.dm | 1 + code/game/turfs/simulated/floor.dm | 3 +++ code/game/turfs/simulated/floor/plating.dm | 12 ++++++++++++ code/game/turfs/simulated/floor/reinf_floor.dm | 3 +++ 5 files changed, 21 insertions(+) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 11d76d3cdf..b447b46754 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -5,6 +5,8 @@ var/persistent = FALSE /// Can we stack multiple in one tile? var/persistence_allow_stacking = FALSE + /// Are we deleted by turf changes? + var/wiped_by_turf_change = FALSE var/list/random_icon_states = null var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index b4c3a3acec..e2cd40a1af 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -64,6 +64,7 @@ beauty = -75 mergeable_decal = TRUE persistent = TRUE + wiped_by_turf_change = TRUE /obj/effect/decal/cleanable/dirt/Initialize(mapload) . = ..() diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 6a95a4a95d..6a4ddea63b 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -138,6 +138,9 @@ burnt = 1 /turf/open/floor/proc/make_plating() + for(var/obj/effect/decal/cleanable/C in src) + if(C.wiped_by_floor_change) + qdel(C) return ScrapeAway(flags = CHANGETURF_INHERIT_AIR) /turf/open/floor/ChangeTurf(path, new_baseturf, flags) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 35ee06a584..539fcb63e0 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -61,6 +61,9 @@ to_chat(user, "You begin reinforcing the floor...") if(do_after(user, 30, target = src)) if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine)) + for(var/obj/effect/decal/cleanable/C in src) + if(C.wiped_by_floor_change) + qdel(C) PlaceOnTop(/turf/open/floor/engine, flags = CHANGETURF_INHERIT_AIR) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) R.use(2) @@ -78,6 +81,9 @@ to_chat(user, "You begin adding glass to the floor...") if(do_after(user, 5, target = src)) if (G.get_amount() >= 2 && !istype(src, /turf/open/transparent/glass)) + for(var/obj/effect/decal/cleanable/C in src) + if(C.wiped_by_floor_change) + qdel(C) PlaceOnTop(/turf/open/transparent/glass, flags = CHANGETURF_INHERIT_AIR) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) G.use(2) @@ -95,6 +101,9 @@ to_chat(user, "You begin adding reinforced glass to the floor...") if(do_after(user, 10, target = src)) if (RG.get_amount() >= 2 && !istype(src, /turf/open/transparent/glass/reinforced)) + for(var/obj/effect/decal/cleanable/C in src) + if(C.wiped_by_floor_change) + qdel(C) PlaceOnTop(/turf/open/transparent/glass/reinforced, flags = CHANGETURF_INHERIT_AIR) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) RG.use(2) @@ -110,6 +119,9 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return + for(var/obj/effect/decal/cleanable/C in src) + if(C.wiped_by_floor_change) + qdel(C) if(istype(W, /obj/item/stack/tile/material)) var/turf/newturf = PlaceOnTop(/turf/open/floor/material, flags = CHANGETURF_INHERIT_AIR) newturf.set_custom_materials(W.custom_materials) diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index 42b4707b50..f8c6ff1ce2 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -43,6 +43,9 @@ return TRUE if(floor_tile) new floor_tile(src, 2) + for(var/obj/effect/decal/cleanable/C in src) + if(C.wiped_by_floor_change) + qdel(C) ScrapeAway(flags = CHANGETURF_INHERIT_AIR) return TRUE From bfb3d087c3221ab8a217646d08445241fa8392e6 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 20:50:28 -0800 Subject: [PATCH 027/192] ok --- .../configuration/entries/game_options.dm | 2 +- code/game/objects/effects/decals/cleanable.dm | 2 +- .../objects/effects/decals/cleanable/misc.dm | 2 +- code/game/turfs/simulated/floor/plating.dm | 24 +++++++++---------- code/modules/mob/living/living_movement.dm | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index dcede1e3e0..ffa73d2c32 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -570,7 +570,7 @@ /// Amount of dirtyness tiles need to spawn dirt. /datum/config_entry/number/turf_dirt_threshold config_entry_value = 100 - min_value = 1 + min_val = 1 integer = TRUE /// Alpha dirt starts at diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index b447b46754..5a6d5e54e9 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -6,7 +6,7 @@ /// Can we stack multiple in one tile? var/persistence_allow_stacking = FALSE /// Are we deleted by turf changes? - var/wiped_by_turf_change = FALSE + var/wiped_by_floor_change = FALSE var/list/random_icon_states = null var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index e2cd40a1af..2bd79edfb4 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -64,7 +64,7 @@ beauty = -75 mergeable_decal = TRUE persistent = TRUE - wiped_by_turf_change = TRUE + wiped_by_floor_change = TRUE /obj/effect/decal/cleanable/dirt/Initialize(mapload) . = ..() diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 539fcb63e0..1b875a5e69 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -61,9 +61,9 @@ to_chat(user, "You begin reinforcing the floor...") if(do_after(user, 30, target = src)) if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine)) - for(var/obj/effect/decal/cleanable/C in src) - if(C.wiped_by_floor_change) - qdel(C) + for(var/obj/effect/decal/cleanable/decal in src) + if(decal.wiped_by_floor_change) + qdel(decal) PlaceOnTop(/turf/open/floor/engine, flags = CHANGETURF_INHERIT_AIR) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) R.use(2) @@ -81,9 +81,9 @@ to_chat(user, "You begin adding glass to the floor...") if(do_after(user, 5, target = src)) if (G.get_amount() >= 2 && !istype(src, /turf/open/transparent/glass)) - for(var/obj/effect/decal/cleanable/C in src) - if(C.wiped_by_floor_change) - qdel(C) + for(var/obj/effect/decal/cleanable/decal in src) + if(decal.wiped_by_floor_change) + qdel(decal) PlaceOnTop(/turf/open/transparent/glass, flags = CHANGETURF_INHERIT_AIR) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) G.use(2) @@ -101,9 +101,9 @@ to_chat(user, "You begin adding reinforced glass to the floor...") if(do_after(user, 10, target = src)) if (RG.get_amount() >= 2 && !istype(src, /turf/open/transparent/glass/reinforced)) - for(var/obj/effect/decal/cleanable/C in src) - if(C.wiped_by_floor_change) - qdel(C) + for(var/obj/effect/decal/cleanable/decal in src) + if(decal.wiped_by_floor_change) + qdel(decal) PlaceOnTop(/turf/open/transparent/glass/reinforced, flags = CHANGETURF_INHERIT_AIR) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) RG.use(2) @@ -119,9 +119,9 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return - for(var/obj/effect/decal/cleanable/C in src) - if(C.wiped_by_floor_change) - qdel(C) + for(var/obj/effect/decal/cleanable/decal in src) + if(decal.wiped_by_floor_change) + qdel(decal) if(istype(W, /obj/item/stack/tile/material)) var/turf/newturf = PlaceOnTop(/turf/open/floor/material, flags = CHANGETURF_INHERIT_AIR) newturf.set_custom_materials(W.custom_materials) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index d4694a76ea..1196bc0252 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -107,7 +107,7 @@ /** * Attempts to make the floor dirty. */ -/mob/living/proc/dirt_buildup(strength =) +/mob/living/proc/dirt_buildup(strength = 1) var/turf/open/T = loc if(!istype(T) || !T.dirt_buildup_allowed) return From a6ae0fe5c2a241f52f8628546150664c1851d637 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 20:56:48 -0800 Subject: [PATCH 028/192] ok --- .../configuration/entries/persistence.dm | 3 +++ .../subsystem/persistence/cleanable_debris.dm | 2 ++ code/game/turfs/simulated/floor/plating.dm | 6 +++--- config/config.txt | 1 + config/persistence.txt | 14 ++++++++++++++ 5 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 config/persistence.txt diff --git a/code/controllers/configuration/entries/persistence.dm b/code/controllers/configuration/entries/persistence.dm index cf7b23bef3..2444034b86 100644 --- a/code/controllers/configuration/entries/persistence.dm +++ b/code/controllers/configuration/entries/persistence.dm @@ -15,3 +15,6 @@ /datum/config_entry/number/persistent_debris_type_max config_entry_value = 2000 integer = TRUE + +/// Wipe dirty stuff on nuke +/datum/config_entry/flag/persistent_debris_wipe_on_nuke diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index a08c4c4964..8c9e7ba5c0 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -63,6 +63,8 @@ /datum/controller/subsystem/persistence/proc/SaveMapDebris() if(fexists("[get_map_persistence_path()]/debris.json")) fdel("[get_map_persistence_path()]/debris.json") + if(CONFIG_GET(flag/persistent_debris_wipe_on_nuke) && SSticker?.mode?.station_was_nuked) + return // local janitor cheers on nukeop team to save some work var/list/data = list() var/list/z_lookup = SSmapping.z_to_station_z_index var/list/debris = RelevantPersistentDebris() diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 1b875a5e69..ad3cf86864 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -101,9 +101,9 @@ to_chat(user, "You begin adding reinforced glass to the floor...") if(do_after(user, 10, target = src)) if (RG.get_amount() >= 2 && !istype(src, /turf/open/transparent/glass/reinforced)) - for(var/obj/effect/decal/cleanable/decal in src) - if(decal.wiped_by_floor_change) - qdel(decal) + for(var/obj/effect/decal/cleanable/decal in src) + if(decal.wiped_by_floor_change) + qdel(decal) PlaceOnTop(/turf/open/transparent/glass/reinforced, flags = CHANGETURF_INHERIT_AIR) playsound(src, 'sound/items/deconstruct.ogg', 80, 1) RG.use(2) diff --git a/config/config.txt b/config/config.txt index 72df74beb1..c7bb36af0e 100644 --- a/config/config.txt +++ b/config/config.txt @@ -11,6 +11,7 @@ $include dynamic_config.txt $include plushies/defines.txt $include job_threats.txt $include policy.txt +$include persistence.txt $include respawns.txt # You can use the @ character at the beginning of a config option to lock it from being edited in-game diff --git a/config/persistence.txt b/config/persistence.txt new file mode 100644 index 0000000000..7d65a150e2 --- /dev/null +++ b/config/persistence.txt @@ -0,0 +1,14 @@ +### Whether or not cleanable object persistence is on +PERSISTENT_DEBRIS + +### Whether or not ONLY persistent cleanable objects should be spawned, for supported objects +PERSISTENT_DEBRIS_ONLY + +### Max objects to store, total +PERSISTENT_DEBRIS_GLOBAL_MAX 10000 + +### Max objects to store per type, total +PERSISTENT_DEBRIS_TYPE_MAX 2000 + +### Wipe objects on nuke for the above +PERSISTENT_DEBRIS_WIPE_ON_NUKE From 46b58fa5ba7193ded5f14f7f3dfc2c43254c8680 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 21:10:12 -0800 Subject: [PATCH 029/192] file ops --- .../subsystem/persistence/_persistence.dm | 2 +- .../subsystem/persistence/cleanable_debris.dm | 20 +++++++++++-------- code/modules/mapping/map_config.dm | 9 +++++---- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index 00135bbcc2..4086fe6408 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -31,7 +31,7 @@ SUBSYSTEM_DEF(persistence) */ /datum/controller/subsystem/persistence/proc/get_map_persistence_path() ASSERT(SSmapping.config) - if(SSmapping.config.persistence_key == "NO_PERSIST") + if(!SSmapping.config.persistence_key || (SSmapping.config.persistence_key == "NO_PERSIST")) return null return "data/persistence/[ckey(SSmapping.config.persistence_key)]" diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 8c9e7ba5c0..430bc871dd 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -16,13 +16,13 @@ SaveMapDebris() /datum/controller/subsystem/persistence/proc/LoadMapDebris() + if(CONFIG_GET(flag/persistent_debris_only)) + wipe_existing_debris() if(!fexists("[get_map_persistence_path()]/debris.json")) return if(loaded_debris) return loaded_debris = TRUE - if(CONFIG_GET(flag/persistent_debris_only)) - wipe_existing_debris() var/list/allowed_turf_typecache = typecacheof(/turf/open) - typecacheof(/turf/open/space) var/list/allowed_z_cache = list() for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) @@ -104,12 +104,16 @@ message_admins(w) subsystem_log(w) - subsystem_log({" - Debris saving completed: - Total: [global_max] - By type: [english_list(stored_by_type)] - "}) - WRITE_FILE("[get_map_persistence_path()]/debris.json", json_encode(data)) + var/list/bytype = list() + for(var/path in stored_by_type) + bytype += "[path] - [stored_by_type[path]]" + subsystem_log( + {"Debris saving completed: + Total: [stored] + By type: + [bytype.Join("\n")]"} + ) + WRITE_FILE(file("[get_map_persistence_path()]/debris.json"), json_encode(data)) /datum/controller/subsystem/persistence/proc/IsValidDebrisLocation(turf/tile, list/allowed_typecache, list/allowed_zcache, obj/effect/decal/cleanable/type, loading = FALSE) if(!allowed_typecache[tile.type]) diff --git a/code/modules/mapping/map_config.dm b/code/modules/mapping/map_config.dm index 83418462f1..1f4b558e21 100644 --- a/code/modules/mapping/map_config.dm +++ b/code/modules/mapping/map_config.dm @@ -105,10 +105,11 @@ persistence_key = ckey(map_name) var/json_persistence_key = json["persistence_key"] - if(json_persistence_key == "NO_PERSIST") - persistence_key = null - else - persistence_key = json_persistence_key + if(json_persistence_key) + if(json_persistence_key == "NO_PERSIST") + persistence_key = null + else + persistence_key = json_persistence_key // "map_file": "BoxStation.dmm" if (istext(map_file)) From 753c1389cc3060299619f35384dcf287029e5058 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 22:04:05 -0800 Subject: [PATCH 030/192] fix --- .../configuration/entries/game_options.dm | 4 ++++ .../subsystem/persistence/cleanable_debris.dm | 20 +++++++++++++------ .../mob/living/carbon/human/human_defines.dm | 1 + .../mob/living/carbon/human/human_movement.dm | 5 +++++ code/modules/mob/living/living_defines.dm | 2 +- code/modules/mob/living/living_movement.dm | 4 +++- 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index ffa73d2c32..dc8e9e1859 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -579,3 +579,7 @@ max_val = 255 min_val = 0 integer = TRUE + +/// Dirtyness multiplier for making turfs dirty +/datum/config_entry/number/turf_dirty_multiplier + config_entry_value = 1 diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 430bc871dd..9f55177cbb 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -34,13 +34,19 @@ var/sz = SSmapping.z_to_station_z_index[z] z_lookup[num2text(sz)] = z for(var/z in data) + to_chat(world, "DEBUG: looking at z [z]") var/actual_z = z_lookup[z] + to_chat(world, "DEBUG: actual z [actual_z]") var/list/L1 = data[z] for(var/x in L1) + to_chat(world, "DEBUG: looking at x [x]") var/list/L2 = data[z][x] for(var/y in L2) + to_chat(world, "DEBUG: looking at y [y]") var/turf/tile = locate(x, y, actual_z) + to_chat(world, "DEBUG: finding turf [x] [y] [z]: [tile]") if(!tile) + to_chat(world, "DEBUG: aborting due to no turf") continue var/list/objects = data[z][x][y] for(var/_L in objects) @@ -48,13 +54,15 @@ var/path if(islist(_L)) objdata = _L - path = objdata["__PATH__"] + path = text2path(objdata["__PATH__"]) else - path = _L + path = text2path(_L) objdata = objects[_L] - if(!IsValidDebrisLocation(tile, allowed_turf_typecache, allowed_z_cache, path, TRUE)) - continue if(!path) + to_chat(world, "DEBUG: Aborting: No path") + continue + if(!IsValidDebrisLocation(tile, allowed_turf_typecache, allowed_z_cache, path, TRUE)) + to_chat(world, "DEBUG: Aborting: Invalid location") continue var/obj/effect/decal/cleanable/instantiated = new path(tile) if(objdata) @@ -81,9 +89,9 @@ continue if(stored_by_type[path] > type_max) continue - var/text_z = num2text(saving.z) + var/text_z = num2text(z_lookup[num2text(saving.z)]) var/text_y = num2text(saving.y) - var/text_x = num2text(z_lookup[num2text(saving.x)]) + var/text_x = num2text(saving.x) LAZYINITLIST(data[text_z]) LAZYINITLIST(data[text_z][text_x]) LAZYINITLIST(data[text_z][text_x][text_y]) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 2e8641b43e..07d45f966a 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -15,6 +15,7 @@ block_parry_data = /datum/block_parry_data/unarmed/human default_block_parry_data = /datum/block_parry_data/unarmed/pugilist + causes_dirt_buildup_on_floor = TRUE //Hair colour and style var/hair_color = "000" diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 509633c0d5..440400f889 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -100,3 +100,8 @@ if(dna.species.space_move(src)) return TRUE return ..() + +/mob/living/carbon/human/dirt_buildup(strength) + if(!shoes || !(shoes.body_parts_covered & FEET)) + return // barefoot advantage + return ..() diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 79334e1698..742d4d8624 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -64,7 +64,7 @@ var/incorporeal_move = FALSE //FALSE is off, INCORPOREAL_MOVE_BASIC is normal, INCORPOREAL_MOVE_SHADOW is for ninjas //and INCORPOREAL_MOVE_JAUNT is blocked by holy water/salt /// Do we make floors dirty as we move? - var/causes_dirt_buildup_on_floor = TRUE + var/causes_dirt_buildup_on_floor = FALSE var/list/roundstart_quirks = list() diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 1196bc0252..9e093d391e 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -114,12 +114,14 @@ var/area/A = T.loc if(!A.dirt_buildup_allowed) return + var/multiplier = CONFIG_GET(number/turf_dirty_multiplier) + strength *= multiplier var/obj/effect/decal/cleanable/dirt/D = locate() in T if(D) D.dirty(strength) else T.dirtyness += strength - if(T.dirtyness >= isnull(T.dirt_spawn_threshold)? CONFIG_GET(number/turf_dirt_threshold) : T.dirt_spawn_threshold) + if(T.dirtyness >= (isnull(T.dirt_spawn_threshold)? CONFIG_GET(number/turf_dirt_threshold) : T.dirt_spawn_threshold)) D = new /obj/effect/decal/cleanable/dirt(T) D.dirty(T.dirt_spawn_threshold - T.dirtyness) T.dirtyness = 0 // reset. From 57065d995e49963adb807e0ff49cc5c466bdfa97 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 22:20:04 -0800 Subject: [PATCH 031/192] fix --- code/controllers/subsystem/mapping.dm | 8 ++++++-- .../subsystem/persistence/cleanable_debris.dm | 15 +++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 1893e9ccd9..90908bbde0 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -264,8 +264,12 @@ SUBSYSTEM_DEF(mapping) /datum/controller/subsystem/mapping/proc/setup_station_z_index() z_to_station_z_index = list() var/sz = 1 - for(var/i in station_start to (station_start + islist(config.map_file)? (length(config.map_file) - 1) : 0)) - z_to_station_z_index["[i]"] = sz++ + var/cz = station_start + if(islist(config.map_file)) + for(var/map in config.map_file) + z_to_station_z_index["[cz++]"] = sz++ + else + z_to_station_z_index["[station_start]"] = 1 /datum/controller/subsystem/mapping/proc/loadWorld() //if any of these fail, something has gone horribly, HORRIBLY, wrong diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 9f55177cbb..e2da6114a6 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -32,21 +32,16 @@ /// reverse it for(var/z in SSmapping.z_to_station_z_index) var/sz = SSmapping.z_to_station_z_index[z] - z_lookup[num2text(sz)] = z + z_lookup[num2text(sz)] = text2num(z) for(var/z in data) - to_chat(world, "DEBUG: looking at z [z]") var/actual_z = z_lookup[z] - to_chat(world, "DEBUG: actual z [actual_z]") var/list/L1 = data[z] for(var/x in L1) - to_chat(world, "DEBUG: looking at x [x]") var/list/L2 = data[z][x] for(var/y in L2) - to_chat(world, "DEBUG: looking at y [y]") - var/turf/tile = locate(x, y, actual_z) - to_chat(world, "DEBUG: finding turf [x] [y] [z]: [tile]") + var/turf/tile = locate(text2num(x), text2num(y), actual_z) if(!tile) - to_chat(world, "DEBUG: aborting due to no turf") + to_chat(world, "DEBUG: aborting due to no turf ([x] [y] [actual_z])") continue var/list/objects = data[z][x][y] for(var/_L in objects) @@ -59,10 +54,10 @@ path = text2path(_L) objdata = objects[_L] if(!path) - to_chat(world, "DEBUG: Aborting: No path") + to_chat(world, "DEBUG: Aborting: No path ([x] [y] [actual_z])") continue if(!IsValidDebrisLocation(tile, allowed_turf_typecache, allowed_z_cache, path, TRUE)) - to_chat(world, "DEBUG: Aborting: Invalid location") + to_chat(world, "DEBUG: Aborting: Invalid location ([x] [y] [actual_z])") continue var/obj/effect/decal/cleanable/instantiated = new path(tile) if(objdata) From 5266ae1437e062384189321b70f247f7f686ea9a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 22:28:41 -0800 Subject: [PATCH 032/192] okay --- code/controllers/subsystem/persistence/cleanable_debris.dm | 3 --- code/game/objects/effects/decals/cleanable/humans.dm | 6 +++--- code/game/objects/effects/decals/cleanable/misc.dm | 2 +- code/game/objects/effects/decals/crayon.dm | 2 +- code/game/objects/effects/decals/remains.dm | 1 + 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index e2da6114a6..63e7c7a2e8 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -41,7 +41,6 @@ for(var/y in L2) var/turf/tile = locate(text2num(x), text2num(y), actual_z) if(!tile) - to_chat(world, "DEBUG: aborting due to no turf ([x] [y] [actual_z])") continue var/list/objects = data[z][x][y] for(var/_L in objects) @@ -54,10 +53,8 @@ path = text2path(_L) objdata = objects[_L] if(!path) - to_chat(world, "DEBUG: Aborting: No path ([x] [y] [actual_z])") continue if(!IsValidDebrisLocation(tile, allowed_turf_typecache, allowed_z_cache, path, TRUE)) - to_chat(world, "DEBUG: Aborting: Invalid location ([x] [y] [actual_z])") continue var/obj/effect/decal/cleanable/instantiated = new path(tile) if(objdata) diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 5206279d42..bec00aa944 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -71,7 +71,7 @@ /obj/effect/decal/cleanable/blood/tracks/PersistenceLoad(list/data) . = ..() if(data["dir"]) - setDir(data["dir"]) + setDir(text2num(data["dir"])) /obj/effect/decal/cleanable/trail_holder //not a child of blood on purpose name = "blood" @@ -92,7 +92,7 @@ /obj/effect/decal/cleanable/trail_holder/PersistenceLoad(list/data) . = ..() if(data["dir"]) - setDir(data["dir"]) + setDir(text2num(data["dir"])) if(data["color"]) fixed_color = TRUE add_atom_colour(data["color"], FIXED_COLOUR_PRIORITY) @@ -138,7 +138,7 @@ /obj/effect/decal/cleanable/blood/footprints/PersistenceLoad(list/data) . = ..() if(data["dir"]) - setDir(data["dir"]) + setDir(text2num(data["dir"])) /obj/effect/decal/cleanable/blood/footprints/Crossed(atom/movable/O) if(ishuman(O)) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 2bd79edfb4..0f7d7c185d 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -83,7 +83,7 @@ /obj/effect/decal/cleanable/dirt/PersistenceLoad(list/data) . = ..() if(data["alpha"]) - alpha = data["alpha"] + alpha = text2num(data["alpha"]) /obj/effect/decal/cleanable/dirt/Initialize() . = ..() diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index ad9abe10b1..a0590b7180 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -48,7 +48,7 @@ name = data["name"] if(do_icon_rotate && data["rotation"]) var/matrix/M = matrix() - M.Turn(data["rotation"]) + M.Turn(text2num(data["rotation"])) transform = M if(data["paint_color"]) paint_colour = data["paint_color"] diff --git a/code/game/objects/effects/decals/remains.dm b/code/game/objects/effects/decals/remains.dm index 87337a526c..34019ba897 100644 --- a/code/game/objects/effects/decals/remains.dm +++ b/code/game/objects/effects/decals/remains.dm @@ -2,6 +2,7 @@ name = "remains" gender = PLURAL icon = 'icons/effects/blood.dmi' + persistent = TRUE /obj/effect/decal/remains/acid_act() visible_message("[src] dissolve[gender==PLURAL?"":"s"] into a puddle of sizzling goop!") From a42fa987ba38b427be7f2ec4d68f7145d058f49a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 26 Dec 2020 22:43:25 -0800 Subject: [PATCH 033/192] ok --- code/game/objects/effects/decals/remains.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/effects/decals/remains.dm b/code/game/objects/effects/decals/remains.dm index 34019ba897..87337a526c 100644 --- a/code/game/objects/effects/decals/remains.dm +++ b/code/game/objects/effects/decals/remains.dm @@ -2,7 +2,6 @@ name = "remains" gender = PLURAL icon = 'icons/effects/blood.dmi' - persistent = TRUE /obj/effect/decal/remains/acid_act() visible_message("[src] dissolve[gender==PLURAL?"":"s"] into a puddle of sizzling goop!") From 57d85f7e86cd2d8ed056bb1ffaf55ddef9f69dc0 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 27 Dec 2020 05:20:29 -0800 Subject: [PATCH 034/192] okay --- .../subsystem/persistence/cleanable_debris.dm | 25 ++++++++++++++++++- .../effects/decals/cleanable/humans.dm | 4 ++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 63e7c7a2e8..80d10027a0 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -29,6 +29,11 @@ allowed_z_cache[num2text(z)] = TRUE var/list/data = json_decode(file2text("[get_map_persistence_path()]/debris.json")) var/list/z_lookup = list() + var/loaded = 0 + var/list/loaded_by_type = list() + var/nopath = 0 + var/badloc = 0 + var/noturf = 0 /// reverse it for(var/z in SSmapping.z_to_station_z_index) var/sz = SSmapping.z_to_station_z_index[z] @@ -41,6 +46,7 @@ for(var/y in L2) var/turf/tile = locate(text2num(x), text2num(y), actual_z) if(!tile) + noturf++ continue var/list/objects = data[z][x][y] for(var/_L in objects) @@ -53,12 +59,29 @@ path = text2path(_L) objdata = objects[_L] if(!path) + nopath++ continue if(!IsValidDebrisLocation(tile, allowed_turf_typecache, allowed_z_cache, path, TRUE)) + badloc++ continue var/obj/effect/decal/cleanable/instantiated = new path(tile) + loaded_by_type[path] += 1 + loaded++ if(objdata) instantiated.PersistenceLoad(objdata) + var/list/bytype = list() + for(var/path in loaded_by_type) + bytype += "[path] - [loaded_by_type[path]]" + subsystem_log( + {"Debris loading completed: + Errors: + No path: [nopath] + Invalid location: [badloc] + No turf on map: [noturf] + Total loaded: [loaded] + By type: + [bytype.Join("\n")]"} + ) /datum/controller/subsystem/persistence/proc/SaveMapDebris() if(fexists("[get_map_persistence_path()]/debris.json")) @@ -89,7 +112,7 @@ LAZYINITLIST(data[text_z][text_x][text_y]) if(saving.persistence_allow_stacking) serializing["__PATH__"] = path - data[text_z][text_x][text_y] += serializing + data[text_z][text_x][text_y] += list(serializing) else data[text_z][text_x][text_y][path] = serializing stored++ diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index bec00aa944..68b13389b9 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -33,13 +33,15 @@ /obj/effect/decal/cleanable/blood/PersistenceSave(list/data) . = ..() data["color"] = color - return /obj/effect/decal/cleanable/blood/old /obj/effect/decal/cleanable/blood/PersistenceLoad(list/data) . = ..() if(data["color"]) fixed_color = TRUE add_atom_colour(data["color"], FIXED_COLOUR_PRIORITY) + name = "dried blood" + desc = "Looks like it's been here a while. Eew" + bloodiness = 0 /obj/effect/decal/cleanable/blood/old name = "dried blood" From 67741b756163629a34a3959b11dfb619f5181888 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sun, 27 Dec 2020 20:09:32 +0000 Subject: [PATCH 035/192] Update preferences_savefile.dm --- code/modules/client/preferences_savefile.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 119acef72e..4d2af47d90 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -738,7 +738,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //gear loadout loadout_data = safe_json_decode(S["loadout"]) - unlockable_loadout_data = S["unlockable_loadout"] + unlockable_loadout_data = safe_json_decode(S["unlockable_loadout"]) //try to fix any outdated data if necessary //preference updating will handle saving the updated data for us. @@ -1078,9 +1078,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["loadout"] << safe_json_encode(list()) if(length(unlockable_loadout_data)) - S["unlockable_loadout"] << unlockable_loadout_data + S["unlockable_loadout"] << safe_json_encode(unlockable_loadout_data) else - S["unlockable_loadout"] << list() + S["unlockable_loadout"] << safe_json_encode(list()) cit_character_pref_save(S) From b03bd6fe8ee498dabd986423158e9abfeed8ac36 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sun, 27 Dec 2020 22:03:28 +0000 Subject: [PATCH 036/192] Update preferences.dm --- code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 63853c0e4e..7313a9d28c 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -879,7 +879,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/list/loadout_item = has_loadout_gear(loadout_slot, "[gear.type]") var/extra_color_data = "" if(loadout_item) - if(gear.category != LOADOUT_CATEGORY_UNLOCKABLE || (can_use_unlockable(gear))) + if(gear.category != LOADOUT_CATEGORY_UNLOCKABLE || can_use_unlockable(gear)) class_link = "style='white-space:normal;' class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=0'" else class_link = "style='white-space:normal;' class='linkOff'" From b0fdbd3b1d274aba51573ced568693456cb5c2db Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Mon, 28 Dec 2020 17:01:55 +0000 Subject: [PATCH 037/192] Update preferences.dm --- code/modules/client/preferences.dm | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7313a9d28c..919f43651e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -879,10 +879,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/list/loadout_item = has_loadout_gear(loadout_slot, "[gear.type]") var/extra_color_data = "" if(loadout_item) - if(gear.category != LOADOUT_CATEGORY_UNLOCKABLE || can_use_unlockable(gear)) - class_link = "style='white-space:normal;' class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=0'" - else - class_link = "style='white-space:normal;' class='linkOff'" + class_link = "style='white-space:normal;' class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=0'" if(gear.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) extra_color_data += "
Color" for(var/loadout_color in loadout_item[LOADOUT_COLOR]) @@ -897,8 +894,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) class_link = "style='white-space:normal;' class='linkOff'" else if(donoritem) class_link = "style='white-space:normal;background:#ebc42e;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'" - else + else if(!istype(gear, /datum/gear/unlockable) || can_use_unlockable(gear)) class_link = "style='white-space:normal;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'" + else + class_link = "style='white-space:normal;background:#eb2e2e;' class='linkOff'" dat += "[name][extra_color_data]" dat += "[gear.cost]" if(islist(gear.restricted_roles)) @@ -911,7 +910,17 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" dat += gear.restricted_roles.Join(";") dat += "" - dat += "[gear.description]" + if(!istype(gear, /datum/gear/unlockable)) + dat += "[gear.description]" + else + //we add the user's progress to the description assuming they have progress + var/datum/gear/unlockable/unlockable = gear + var/progress_made = unlockable_loadout_data[unlockable.progress_key] + if(progress_made) + dat += "[gear.description] Progress: [min(progress_made, unlockable.progress_required)]/[unlockable.progress_required]" + else + dat += "[gear.description]" + dat += "" if(4) // Content preferences dat += "" - else - dat += "" + if(!progress_made) + progress_made = 0 + dat += "" dat += "
" From 50fd36efa59d2c58579f86fbab455f8e8c5b3959 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Mon, 28 Dec 2020 17:04:48 +0000 Subject: [PATCH 038/192] oops! all runtime! --- code/modules/client/preferences_savefile.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 4d2af47d90..049a374d8e 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -736,9 +736,15 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car belly_prefs = json_from_file["belly_prefs"] //gear loadout - loadout_data = safe_json_decode(S["loadout"]) + if(S["loadout"]) + loadout_data = safe_json_decode(S["loadout"]) + else + loadout_data = list() - unlockable_loadout_data = safe_json_decode(S["unlockable_loadout"]) + if(S["unlockable_loadout"]) + unlockable_loadout_data = safe_json_decode(S["unlockable_loadout"]) + else + unlockable_loadout_data = list() //try to fix any outdated data if necessary //preference updating will handle saving the updated data for us. From d80920a500ed4981f9b49f402dedf36fbb5a7c62 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Mon, 28 Dec 2020 17:10:28 +0000 Subject: [PATCH 039/192] oops! all 0s! --- code/modules/client/preferences.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 919f43651e..a6974687cf 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -916,10 +916,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) //we add the user's progress to the description assuming they have progress var/datum/gear/unlockable/unlockable = gear var/progress_made = unlockable_loadout_data[unlockable.progress_key] - if(progress_made) - dat += "[gear.description] Progress: [min(progress_made, unlockable.progress_required)]/[unlockable.progress_required]
[gear.description]
[gear.description] Progress: [min(progress_made, unlockable.progress_required)]/[unlockable.progress_required]
" if(4) // Content preferences From 51d1e3a87f44d49c36c705deef1e05628a634348 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Mon, 28 Dec 2020 19:41:39 +0100 Subject: [PATCH 040/192] intendation sigh --- code/modules/mob/living/carbon/human/human_defines.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index d130b053e2..a82151cc1d 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -14,7 +14,7 @@ blocks_emissive = EMISSIVE_BLOCK_UNIQUE block_parry_data = /datum/block_parry_data/unarmed/human - default_block_parry_data = /datum/block_parry_data/unarmed/human + default_block_parry_data = /datum/block_parry_data/unarmed/human causes_dirt_buildup_on_floor = TRUE //Hair colour and style From 0c87c3b0e0931e4106ae6bfd0c151749eb711727 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:15:55 -0800 Subject: [PATCH 041/192] fiX --- code/__HELPERS/roundend.dm | 7 +++++-- .../subsystem/persistence/_persistence.dm | 19 +++++++++++++------ .../subsystem/persistence/cleanable_debris.dm | 2 +- .../ratvar_the_clockwork_justicar.dm | 1 + code/modules/power/singularity/narsie.dm | 1 + 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index e4a2e6521a..a860a8cd3f 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -238,8 +238,11 @@ CHECK_TICK SSdbcore.SetRoundEnd() //Collects persistence features - if(mode.allow_persistence_save) - SSpersistence.CollectData() + if(mode.station_was_nuked) + SSpersistence.station_was_destroyed = TRUE + if(!mode.allow_persistence_save) + SSpersistence.station_persistence_save_disabled = TRUE + SSpersistence.CollectData() //stop collecting feedback during grifftime SSblackbox.Seal() diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index 4086fe6408..741d1dd72a 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -6,6 +6,11 @@ SUBSYSTEM_DEF(persistence) init_order = INIT_ORDER_PERSISTENCE flags = SS_NO_FIRE + /// Marks if the station got horribly destroyed + var/station_was_destroyed = FALSE + /// Marks if persistence save should be disabled + var/station_persistence_save_disabled = FALSE + var/list/obj/structure/chisel_message/chisel_messages = list() var/list/saved_messages = list() var/list/spawned_objects = list() @@ -37,45 +42,47 @@ SUBSYSTEM_DEF(persistence) /datum/controller/subsystem/persistence/proc/CollectData() SaveServerPersistence() + if(station_persistence_save_disabled) + return SaveGamePersistence() var/map_persistence_path = get_map_persistence_path() if(map_persistence_path) SaveMapPersistence() /** - * Loads persistent data relevant to the server: Configurations, past gamemodes, votes, etc + * Loads persistent data relevant to the server: Configurations, past gamemodes, votes, antag rep, etc */ /datum/controller/subsystem/persistence/proc/LoadServerPersistence() for(var/client/C in GLOB.clients) LoadSavedVote(C.ckey) if(CONFIG_GET(flag/use_antag_rep)) LoadAntagReputation() + LoadRandomizedRecipes() /** - * Saves persistent data relevant to the server: Configurations, past gamemodes, votes, etc + * Saves persistent data relevant to the server: Configurations, past gamemodes, votes, antag rep, etc */ /datum/controller/subsystem/persistence/proc/SaveServerPersistence() if(CONFIG_GET(flag/use_antag_rep)) CollectAntagReputation() + SaveRandomizedRecipes() /** - * Loads persistent data relevant to the game in general: Trophies, antag reputation, etc + * Loads persistent data relevant to the game in general: Photos, etc * * Legacy map persistence systems also use this. */ /datum/controller/subsystem/persistence/proc/LoadGamePersistence() LoadChiselMessages() LoadPhotoPersistence() - LoadRandomizedRecipes() LoadPaintings() /** - * Saves persistent data relevant to the game in general: Trophies, antag reputation, etc + * Saves persistent data relevant to the game in general: Photos, etc * * Legacy map persistence systems also use this. */ /datum/controller/subsystem/persistence/proc/SaveGamePersistence() - SaveRandomizedRecipes() CollectChiselMessages() SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. SavePaintings() diff --git a/code/controllers/subsystem/persistence/cleanable_debris.dm b/code/controllers/subsystem/persistence/cleanable_debris.dm index 80d10027a0..a0817c460b 100644 --- a/code/controllers/subsystem/persistence/cleanable_debris.dm +++ b/code/controllers/subsystem/persistence/cleanable_debris.dm @@ -86,7 +86,7 @@ /datum/controller/subsystem/persistence/proc/SaveMapDebris() if(fexists("[get_map_persistence_path()]/debris.json")) fdel("[get_map_persistence_path()]/debris.json") - if(CONFIG_GET(flag/persistent_debris_wipe_on_nuke) && SSticker?.mode?.station_was_nuked) + if(CONFIG_GET(flag/persistent_debris_wipe_on_nuke) && station_was_destroyed) return // local janitor cheers on nukeop team to save some work var/list/data = list() var/list/z_lookup = SSmapping.z_to_station_z_index diff --git a/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm index 73ae89a19b..28901ea0b2 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm @@ -30,6 +30,7 @@ var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/clockwork_effects.dmi', "ratvar_alert") notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [get_area_name(src)] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay) INVOKE_ASYNC(SSshuttle.emergency, /obj/docking_port/mobile/emergency.proc/request, null, 10, null, FALSE, 0) + SSpersistence.station_was_destroyed = TRUE /obj/structure/destructible/clockwork/massive/ratvar/Destroy() GLOB.ratvar_awakens-- diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 8bf20fddc6..5b5292a020 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -78,6 +78,7 @@ set_security_level("delta") SSshuttle.registerHostileEnvironment(src) SSshuttle.lockdown = TRUE + SSpersistence.station_was_destroyed = TRUE sleep(600) if(resolved == FALSE) resolved = TRUE From 74928c04516bf260d0551ef9599fe95dd50192ed Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Mon, 28 Dec 2020 22:21:44 +0000 Subject: [PATCH 042/192] data issue --- code/modules/client/preferences_savefile.dm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 049a374d8e..754c33d3d3 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -427,6 +427,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car verify_keybindings_valid() // one of these days this will runtime and you'll be glad that i put it in a different proc so no one gets their saves wiped + if(S["unlockable_loadout"]) + unlockable_loadout_data = safe_json_decode(S["unlockable_loadout"]) + else + unlockable_loadout_data = list() + if(needs_update >= 0) //save the updated version var/old_default_slot = default_slot var/old_max_save_slots = max_save_slots @@ -532,6 +537,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["auto_ooc"], auto_ooc) WRITE_FILE(S["no_tetris_storage"], no_tetris_storage) + if(length(unlockable_loadout_data)) + WRITE_FILE(S["unlockable_loadout"], safe_json_encode(unlockable_loadout_data)) + else + WRITE_FILE(S["unlockable_loadout"], safe_json_encode(list())) + return 1 /datum/preferences/proc/load_character(slot, bypass_cooldown = FALSE) @@ -741,11 +751,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else loadout_data = list() - if(S["unlockable_loadout"]) - unlockable_loadout_data = safe_json_decode(S["unlockable_loadout"]) - else - unlockable_loadout_data = list() - //try to fix any outdated data if necessary //preference updating will handle saving the updated data for us. if(needs_update >= 0) @@ -1083,11 +1088,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else S["loadout"] << safe_json_encode(list()) - if(length(unlockable_loadout_data)) - S["unlockable_loadout"] << safe_json_encode(unlockable_loadout_data) - else - S["unlockable_loadout"] << safe_json_encode(list()) - cit_character_pref_save(S) return 1 From b1bd28be3c5af66063f01d09ec293626a895cd70 Mon Sep 17 00:00:00 2001 From: Putnam Date: Mon, 28 Dec 2020 18:57:48 -0800 Subject: [PATCH 043/192] Makes gear harnesses unusable when unusable --- code/modules/clothing/under/miscellaneous.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index a9dd19e925..6a4672ea12 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -172,6 +172,8 @@ body_parts_covered = CHEST|GROIN /obj/item/clothing/under/misc/gear_harness/rolldown() + if(!can_use(usr)) + return if(!body_parts_covered) to_chat(usr, "Your gear harness is now covering your chest and groin.") body_parts_covered = CHEST|GROIN From 24b14c40e45324945e935e5b156a4366532ed1e8 Mon Sep 17 00:00:00 2001 From: Putnam Date: Mon, 28 Dec 2020 19:02:30 -0800 Subject: [PATCH 044/192] Rearranged rolldown and toggle_jumpsuit_adjust to be sane. --- code/modules/clothing/under/_under.dm | 13 ++++++------- code/modules/clothing/under/miscellaneous.dm | 9 ++------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 23cb2b1c15..66f9bf15e7 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -244,28 +244,27 @@ /obj/item/clothing/under/proc/rolldown() if(!can_use(usr)) return - if(!can_adjust) - to_chat(usr, "You cannot wear this suit any differently!") - return - if(toggle_jumpsuit_adjust()) - to_chat(usr, "You adjust the suit to wear it more casually.") - else - to_chat(usr, "You adjust the suit back to normal.") + toggle_jumpsuit_adjust() if(ishuman(usr)) var/mob/living/carbon/human/H = usr H.update_inv_w_uniform() H.update_body() /obj/item/clothing/under/proc/toggle_jumpsuit_adjust() + if(!can_adjust) + to_chat(usr, "You cannot wear this suit any differently!") + return adjusted = !adjusted if(adjusted) + to_chat(usr, "You adjust the suit to wear it more casually.") if(fitted != FEMALE_UNIFORM_TOP) fitted = NO_FEMALE_UNIFORM if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted body_parts_covered &= ~CHEST mutantrace_variation &= ~USE_TAUR_CLIP_MASK //How are we supposed to see the uniform otherwise? else + to_chat(usr, "You adjust the suit back to normal.") fitted = initial(fitted) if(!alt_covers_chest) body_parts_covered |= CHEST diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 6a4672ea12..62d17ff8d6 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -171,19 +171,14 @@ can_adjust = TRUE body_parts_covered = CHEST|GROIN -/obj/item/clothing/under/misc/gear_harness/rolldown() - if(!can_use(usr)) - return +/obj/item/clothing/under/misc/gear_harness/toggle_jumpsuit_adjust() if(!body_parts_covered) to_chat(usr, "Your gear harness is now covering your chest and groin.") body_parts_covered = CHEST|GROIN else to_chat(usr, "Your gear harness is no longer covering anything.") body_parts_covered = NONE - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - H.update_inv_w_uniform() - H.update_body() + return !body_parts_covered /obj/item/clothing/under/misc/durathread name = "durathread jumpsuit" From 3a7f360fe995bad96ee650db28de98a605a88404 Mon Sep 17 00:00:00 2001 From: Putnam Date: Mon, 28 Dec 2020 19:06:37 -0800 Subject: [PATCH 045/192] Made the returns make more sense. --- code/modules/clothing/under/_under.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 66f9bf15e7..e617d2d57b 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -244,8 +244,7 @@ /obj/item/clothing/under/proc/rolldown() if(!can_use(usr)) return - toggle_jumpsuit_adjust() - if(ishuman(usr)) + if(toggle_jumpsuit_adjust() && ishuman(usr)) var/mob/living/carbon/human/H = usr H.update_inv_w_uniform() H.update_body() @@ -253,7 +252,7 @@ /obj/item/clothing/under/proc/toggle_jumpsuit_adjust() if(!can_adjust) to_chat(usr, "You cannot wear this suit any differently!") - return + return FALSE adjusted = !adjusted if(adjusted) @@ -271,7 +270,7 @@ if(initial(mutantrace_variation) & USE_TAUR_CLIP_MASK) mutantrace_variation |= USE_TAUR_CLIP_MASK - return adjusted + return TRUE /obj/item/clothing/under/rank dying_key = DYE_REGISTRY_UNDER From 7224d3ad17c64048ce36afb4dcc272cf571f62b4 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 29 Dec 2020 16:13:44 +0000 Subject: [PATCH 046/192] oops! all runtimes! --- code/modules/client/client_procs.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index ebe1e6e260..fdeb3cb94a 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -1021,7 +1021,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( unlockable_loadout_data[key] = amount S["unlockable_loadout"] << unlockable_loadout_data prefs.unlockable_loadout_data = unlockable_loadout_data - WRITE_FILE(S["unlockable_loadout"], unlockable_loadout_data) return TRUE return FALSE From e6000ceffa07dcfc9ab12c3416ad0b0400599458 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Tue, 29 Dec 2020 11:12:06 -0800 Subject: [PATCH 047/192] meme --- code/game/objects/effects/decals/cleanable/humans.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 68b13389b9..cbf9c571e3 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -12,10 +12,14 @@ var/fixed_color = FALSE /obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) + if(C.fixed_color) + qdel(C) + return FALSE if (C.blood_DNA) blood_DNA |= C.blood_DNA + qdel(C) update_icon() - ..() + return FALSE /obj/effect/decal/cleanable/blood/transfer_blood_dna() ..() @@ -199,7 +203,7 @@ return if(color != C.color) return - ..() + return ..() /obj/effect/decal/cleanable/blood/footprints/can_bloodcrawl_in() if((blood_state != BLOOD_STATE_OIL) && (blood_state != BLOOD_STATE_NOT_BLOODY)) From a4a2765735f4132bfcbbc91bcb7fda0d8dd42bb1 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 30 Dec 2020 16:56:03 +0000 Subject: [PATCH 048/192] Update client_procs.dm --- code/modules/client/client_procs.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index fdeb3cb94a..694821bec4 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -1011,7 +1011,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(!length(unlockable_loadout_data)) unlockable_loadout_data = list() unlockable_loadout_data[key] = amount - S["unlockable_loadout"] << unlockable_loadout_data + WRITE_FILE(S["unlockable_loadout"], unlockable_loadout_data) prefs.unlockable_loadout_data = unlockable_loadout_data return TRUE else @@ -1019,7 +1019,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( unlockable_loadout_data[key] += amount else unlockable_loadout_data[key] = amount - S["unlockable_loadout"] << unlockable_loadout_data + WRITE_FILE(S["unlockable_loadout"], unlockable_loadout_data) prefs.unlockable_loadout_data = unlockable_loadout_data return TRUE return FALSE From 34256a61efd05826820deecffe36c77593086f3a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 30 Dec 2020 21:06:34 -0800 Subject: [PATCH 049/192] remove drips --- code/game/objects/effects/decals/cleanable/gibs.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable/gibs.dm b/code/game/objects/effects/decals/cleanable/gibs.dm index 1f9897071c..4b63cbecc8 100644 --- a/code/game/objects/effects/decals/cleanable/gibs.dm +++ b/code/game/objects/effects/decals/cleanable/gibs.dm @@ -97,8 +97,6 @@ icon_state = "1" random_icon_states = list("drip1","drip2","drip3","drip4","drip5") bloodiness = 0 - persistent = TRUE - persistence_allow_stacking = TRUE var/drips = 1 /obj/effect/decal/cleanable/blood/drip/can_bloodcrawl_in() From b69132bede3493b364ba448914b6ffb555000af7 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Thu, 31 Dec 2020 00:34:44 -0800 Subject: [PATCH 050/192] ports https://github.com/tgstation/tgstation/pull/52931 --- .../machinery/porta_turret/portable_turret.dm | 3 +++ .../objects/items/devices/traitordevices.dm | 22 +++++++++++++++++++ .../uplink/uplink_items/uplink_roles.dm | 7 ++++++ 3 files changed, 32 insertions(+) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 34745a65f6..29883a073a 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -774,6 +774,9 @@ stun_projectile_sound = 'sound/weapons/gunshot_smg.ogg' armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 80, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) +/obj/machinery/porta_turret/syndicate/pod/toolbox + max_integrity = 100 + /obj/machinery/porta_turret/syndicate/shuttle/target(atom/movable/target) if(target) setDir(get_dir(base, target))//even if you can't shoot, follow the target diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index eb444cdb12..ff02490388 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -264,6 +264,28 @@ effective or pretty fucking useless. GLOB.active_jammers -= src update_icon() +/obj/item/storage/toolbox/emergency/turret + desc = "You feel a strange urge to hit this with a wrench." + +/obj/item/storage/toolbox/emergency/turret/PopulateContents() + new /obj/item/screwdriver(src) + new /obj/item/wrench(src) + new /obj/item/weldingtool(src) + new /obj/item/crowbar(src) + new /obj/item/analyzer(src) + new /obj/item/wirecutters(src) + +/obj/item/storage/toolbox/emergency/turret/attackby(obj/item/I, mob/living/user, params) + if(I.tool_behaviour == TOOL_WRENCH && user.a_intent == INTENT_HARM) + user.visible_message("[user] bashes [src] with [I]!", \ + "You bash [src] with [I]!", null, COMBAT_MESSAGE_RANGE) + playsound(src, "sound/items/drill_use.ogg", 80, TRUE, -1) + var/obj/machinery/porta_turret/syndicate/pod/toolbox/turret = new(get_turf(loc)) + turret.faction = list("[REF(user)]") + qdel(src) + + ..() + /obj/item/headsetupgrader name = "headset upgrader" desc = "A tool that can be used to upgrade a normal headset to be able to protect from flashbangs." diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index b8eaf41371..a371f0434c 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -244,3 +244,10 @@ cost = 2 item = /obj/item/clothing/shoes/magboots/crushing restricted_roles = list("Chief Engineer", "Station Engineer", "Atmospheric Technician") + +/datum/uplink_item/role_restricted/turretbox + name = "Disposable Sentry Gun" + desc = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality." + item = /obj/item/storage/toolbox/emergency/turret + cost = 11 + restricted_roles = list("Station Engineer") \ No newline at end of file From 3462f3d1141f3cedab8b0fe1417af48edca6efc9 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Thu, 31 Dec 2020 00:43:05 -0800 Subject: [PATCH 051/192] Changes some descriptions. Port of https://github.com/BeeStation/BeeStation-Hornet/pull/3144 --- .../mob/living/carbon/alien/humanoid/alien_powers.dm | 10 +++++----- .../living/carbon/alien/humanoid/caste/praetorian.dm | 2 +- code/modules/mob/living/carbon/alien/humanoid/queen.dm | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 399efc4b29..3bfe13469d 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -68,7 +68,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/plant name = "Plant Weeds" - desc = "Plants some alien weeds." + desc = "Plants Alien weeds whichspread resin which heals any alien. These weeds also regenerate plasma faster Costs 50 Plasma." plasma_cost = 50 check_turf = TRUE action_icon_state = "alien_plant" @@ -83,7 +83,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/whisper name = "Whisper" - desc = "Whisper to someone." + desc = "Whisper to someone through the hivemind. Costs 10 Plasma." plasma_cost = 10 action_icon_state = "alien_whisper" @@ -143,7 +143,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/acid name = "Corrosive Acid" - desc = "Drench an object in acid, destroying it over time." + desc = "Drench an object in acid, destroying it over time. Costs 200 Plasma." plasma_cost = 200 action_icon_state = "alien_acid" @@ -189,7 +189,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/neurotoxin name = "Spit Neurotoxin" - desc = "Spits neurotoxin at someone, paralyzing them for a short time." + desc = "Activates your Neurotoxin glands. You can shoot paralyzing shots. Each shot costs 50 Plasma." action_icon_state = "alien_neurotoxin_0" active = FALSE @@ -254,7 +254,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/resin name = "Secrete Resin" - desc = "Secrete tough malleable resin." + desc = "Secrete tough malleable resin. Costs 55 Plasma." plasma_cost = 55 check_turf = TRUE var/list/structures = list( diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm index 4ec5780838..796a78d566 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm @@ -20,7 +20,7 @@ /obj/effect/proc_holder/alien/royal/praetorian/evolve name = "Evolve" - desc = "Produce an internal egg sac capable of spawning children. Only one queen can exist at a time." + desc = "Produce an internal egg sac capable of spawning children. Only one queen can exist at a time. Costs 500 Plasma." plasma_cost = 500 action_icon_state = "alien_evolve_praetorian" diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 1200220ce4..77f9ee8c40 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -57,7 +57,7 @@ //Queen verbs /obj/effect/proc_holder/alien/lay_egg name = "Lay Egg" - desc = "Lay an egg to produce huggers to impregnate prey with." + desc = "Lay an egg to produce huggers to impregnate prey with. Costs 75 Plasma." plasma_cost = 75 check_turf = TRUE action_icon_state = "alien_egg" @@ -77,7 +77,7 @@ //Button to let queen choose her praetorian. /obj/effect/proc_holder/alien/royal/queen/promote name = "Create Royal Parasite" - desc = "Produce a royal parasite to grant one of your children the honor of being your Praetorian." + desc = desc = "Produce a royal parasite to grant one of your children the honor of being your Praetorian. Costs 500 Plasma." plasma_cost = 500 //Plasma cost used on promotion, not spawning the parasite. action_icon_state = "alien_queen_promote" From 949aab2a4abfe9bca2fffb3e2dd9dc0b40e4b253 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Thu, 31 Dec 2020 01:07:24 -0800 Subject: [PATCH 052/192] extra desc --- code/modules/mob/living/carbon/alien/humanoid/queen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 77f9ee8c40..91a61efea6 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -77,7 +77,7 @@ //Button to let queen choose her praetorian. /obj/effect/proc_holder/alien/royal/queen/promote name = "Create Royal Parasite" - desc = desc = "Produce a royal parasite to grant one of your children the honor of being your Praetorian. Costs 500 Plasma." + desc = "Produce a royal parasite to grant one of your children the honor of being your Praetorian. Costs 500 Plasma." plasma_cost = 500 //Plasma cost used on promotion, not spawning the parasite. action_icon_state = "alien_queen_promote" From f02a6cf68b2b0d20ce32b49e0caca8f24b5ae67a Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Thu, 31 Dec 2020 01:18:30 -0800 Subject: [PATCH 053/192] Space --- code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 3bfe13469d..a484d08a57 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -68,7 +68,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/plant name = "Plant Weeds" - desc = "Plants Alien weeds whichspread resin which heals any alien. These weeds also regenerate plasma faster Costs 50 Plasma." + desc = "Plants Alien weeds which spread resin which heals any alien. These weeds also regenerate plasma faster Costs 50 Plasma." plasma_cost = 50 check_turf = TRUE action_icon_state = "alien_plant" From 45ce0a72a19420bcf30f4329d8c084c6fee1d530 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Thu, 31 Dec 2020 01:49:38 -0800 Subject: [PATCH 054/192] Ports bluespace navigation gigabeaconon port of https://github.com/tgstation/tgstation/pull/44807 --- .../machine_desings/machine_designs_engi.dm | 8 +++ .../research/techweb/nodes/bluespace_nodes.dm | 2 +- code/modules/shuttle/navigation_computer.dm | 22 +++++-- .../shuttle/spaceship_navigation_beacon.dm | 63 +++++++++++++++++++ tgstation.dme | 1 + 5 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 code/modules/shuttle/spaceship_navigation_beacon.dm diff --git a/code/modules/research/designs/machine_desings/machine_designs_engi.dm b/code/modules/research/designs/machine_desings/machine_designs_engi.dm index 4f70b6ee78..8908241b83 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_engi.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_engi.dm @@ -104,3 +104,11 @@ build_path = /obj/item/circuitboard/machine/thermomachine category = list ("Engineering Machinery") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/spaceship_navigation_beacon + name = "Machine Design (Bluespace Navigation Gigabeacon)" + desc = "The circuit board for a Bluespace Navigation Gigabeacon." + id = "spaceship_navigation_beacon" + build_path = /obj/item/circuitboard/machine/spaceship_navigation_beacon + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file diff --git a/code/modules/research/techweb/nodes/bluespace_nodes.dm b/code/modules/research/techweb/nodes/bluespace_nodes.dm index b0705a0b76..ae9fdd6485 100644 --- a/code/modules/research/techweb/nodes/bluespace_nodes.dm +++ b/code/modules/research/techweb/nodes/bluespace_nodes.dm @@ -70,7 +70,7 @@ display_name = "Basic Shuttle Research" description = "Research the technology required to create and use basic shuttles." prereq_ids = list("practical_bluespace", "adv_engi") - design_ids = list("shuttle_creator", "engine_plasma", "engine_heater", "shuttle_control", "shuttle_docker") + design_ids = list("shuttle_creator", "engine_plasma", "engine_heater", "shuttle_control", "shuttle_docker","spaceship_navigation_beacon") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) /datum/techweb_node/shuttle_route_upgrade diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 21a9c6c5d7..36abcb41dc 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -11,6 +11,7 @@ var/list/jumpto_ports = list() //hashset of ports to jump to and ignore for collision purposes var/obj/docking_port/stationary/my_port //the custom docking port placed by this console var/obj/docking_port/mobile/shuttle_port //the mobile docking port of the connected shuttle + var/list/locked_traits = list(ZTRAIT_RESERVED, ZTRAIT_CENTCOM, ZTRAIT_AWAY, ZTRAIT_REEBE) //traits forbided for custom docking var/view_range = 0 var/x_offset = 0 var/y_offset = 0 @@ -186,7 +187,7 @@ var/turf/eyeturf = get_turf(the_eye) if(!eyeturf) return SHUTTLE_DOCKER_BLOCKED - if(z_lock.len && !(eyeturf.z in z_lock)) + if(!eyeturf.z || SSmapping.level_has_any_trait(eyeturf.z, locked_traits)) return SHUTTLE_DOCKER_BLOCKED . = SHUTTLE_DOCKER_LANDING_CLEAR @@ -224,9 +225,9 @@ if(hidden_turf_info) . = SHUTTLE_DOCKER_BLOCKED_BY_HIDDEN_PORT - if(space_turfs_only) + if(length(whitelist_turfs)) var/turf_type = hidden_turf_info ? hidden_turf_info[2] : T.type - if(!ispath(turf_type, /turf/open/space)) + if(!is_type_in_typecache(turf_type, whitelist_turfs)) return SHUTTLE_DOCKER_BLOCKED if(length(whitelist_turfs)) @@ -324,12 +325,25 @@ var/list/L = list() for(var/V in SSshuttle.stationary) if(!V) + stack_trace("SSshuttle.stationary have null entry!") continue var/obj/docking_port/stationary/S = V if(console.z_lock.len && !(S.z in console.z_lock)) continue if(console.jumpto_ports[S.id]) - L[S.name] = S + L["([L.len])[S.name]"] = S + + for(var/V in SSshuttle.beacons) + if(!V) + stack_trace("SSshuttle.beacons have null entry!") + continue + var/obj/machinery/spaceship_navigation_beacon/nav_beacon = V + if(!nav_beacon.z || SSmapping.level_has_any_trait(nav_beacon.z, console.locked_traits)) + break + if(!nav_beacon.locked) + L["([L.len]) [nav_beacon.name] located: [nav_beacon.x] [nav_beacon.y] [nav_beacon.z]"] = nav_beacon + else + L["([L.len]) [nav_beacon.name] locked"] = null playsound(console, 'sound/machines/terminal_prompt.ogg', 25, 0) var/selected = input("Choose location to jump to", "Locations", null) as null|anything in L diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm new file mode 100644 index 0000000000..f1861e0477 --- /dev/null +++ b/code/modules/shuttle/spaceship_navigation_beacon.dm @@ -0,0 +1,63 @@ +/obj/item/circuitboard/machine/spaceship_navigation_beacon + name = "Bluespace Navigation Gigabeacon (Machine Board)" + build_path = /obj/machinery/spaceship_navigation_beacon + req_components = list() + + +/obj/machinery/spaceship_navigation_beacon + name = "Bluespace Navigation Gigabeacon" + desc = "A device that creates a bluespace anchor that allow ships jump near to it." + icon = 'icons/obj/abductor.dmi' + icon_state = "core" + use_power = IDLE_POWER_USE + idle_power_usage = 0 + density = TRUE + circuit = /obj/item/circuitboard/machine/spaceship_navigation_beacon + + var/locked = FALSE //Locked beacons don't allow to jump to it. + + +/obj/machinery/spaceship_navigation_beacon/Initialize() + . = ..() + SSshuttle.beacons |= src + +obj/machinery/spaceship_navigation_beacon/emp_act() + locked = TRUE + +/obj/machinery/spaceship_navigation_beacon/Destroy() + SSshuttle.beacons -= src + return ..() + +// update the icon_state +/obj/machinery/spaceship_navigation_beacon/update_icon() + if(powered()) + icon_state = "core" + else + icon_state = "core-open" + +/obj/machinery/spaceship_navigation_beacon/power_change() + . = ..() + update_icon() + +/obj/machinery/spaceship_navigation_beacon/multitool_act(mob/living/user, obj/item/multitool/I) + if(panel_open) + var/new_name = "Beacon_[input("Enter the custom name for this beacon", "It be Beacon ..your input..") as text]" + if(new_name && Adjacent(user)) + name = new_name + to_chat(user, "You change beacon name to [name].") + else + locked =!locked + to_chat(user, "You [locked ? "" : "un"]lock [src].") + return TRUE + +/obj/machinery/spaceship_navigation_beacon/examine() + .=..() + . += "Status: [locked ? "LOCKED" : "Stable"] " + +/obj/machinery/spaceship_navigation_beacon/attackby(obj/item/W, mob/user, params) + if(default_deconstruction_screwdriver(user, "core-open", "core", W)) + return + if(default_deconstruction_crowbar(W)) + return + + return ..() \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 07eefc79ef..17561faefd 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3342,6 +3342,7 @@ #include "code\modules\shuttle\shuttle.dm" #include "code\modules\shuttle\shuttle_rotate.dm" #include "code\modules\shuttle\snaxi.dm" +#include "code\modules\shuttle\spaceship_navigation_beacon.dm" #include "code\modules\shuttle\special.dm" #include "code\modules\shuttle\supply.dm" #include "code\modules\shuttle\syndicate.dm" From 0e5b2c60eeec24023753c2e9f211cb041aa065b5 Mon Sep 17 00:00:00 2001 From: Blue Wildrose Date: Thu, 31 Dec 2020 03:42:29 -0700 Subject: [PATCH 055/192] Fixes loadout specific polychromic hoodies --- code/controllers/subsystem/job.dm | 2 ++ code/datums/elements/polychromic.dm | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 4963e33cc3..779ee2fbac 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -698,6 +698,8 @@ SUBSYSTEM_DEF(job) if(polychromic && istype(polychromic)) var/list/polychromic_entry = polychromic.colors_by_atom[I] if(polychromic_entry) + if(polychromic.suits_with_helmet_typecache[I.type]) //is this one of those toggleable hood/helmet things? + polychromic.connect_helmet(I,i[LOADOUT_COLOR]) polychromic.colors_by_atom[I] = i[LOADOUT_COLOR] I.update_icon() else diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index 600bf9250e..5e888e0609 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -165,6 +165,15 @@ /datum/element/polychromic/proc/on_examine(atom/source, mob/user, list/examine_list) examine_list += "Alt-click to recolor it." +/datum/element/polychromic/proc/connect_helmet(atom/I, var/applycolor) + if(isitem(I)) + if(istype(I,/obj/item/clothing/suit/hooded)) + var/obj/item/clothing/suit/hooded/Isuit = I + colors_by_atom[Isuit.hood] = applycolor + else if(istype(I,/obj/item/clothing/suit/space/hardsuit)) + var/obj/item/clothing/suit/space/hardsuit/Isuit = I + colors_by_atom[Isuit.helmet] = applycolor + /datum/element/polychromic/proc/register_helmet(atom/source, obj/item/clothing/head/H) if(!isitem(H)) //backup in case if it messes up somehow if(istype(source,/obj/item/clothing/suit/hooded)) //so how come it be like this, where toggleable headslots are named separately (helmet/hood) anyways? From 0aa5338f9b79964bea0352062014af252132c66b Mon Sep 17 00:00:00 2001 From: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Date: Fri, 1 Jan 2021 05:42:28 +1100 Subject: [PATCH 056/192] Adds wakibokken, puts bokken crafting into the craft menu, makes proper bokken a little harder to make but obviously an upgrade, makes crafted katanas and bokken have actual belt overlays --- .../recipes/recipes_weapon_and_ammo.dm | 22 ++++++++++++++++++ .../items/stacks/sheets/sheet_types.dm | 1 - code/game/objects/items/storage/belt.dm | 4 +++- code/game/objects/items/weaponry.dm | 14 +++++++++-- icons/mob/clothing/belt.dmi | Bin 21535 -> 21979 bytes icons/mob/inhands/weapons/swords_lefthand.dmi | Bin 28487 -> 29193 bytes .../mob/inhands/weapons/swords_righthand.dmi | Bin 32609 -> 33449 bytes icons/obj/clothing/belt_overlays.dmi | Bin 6440 -> 6841 bytes icons/obj/items_and_weapons.dmi | Bin 126977 -> 128202 bytes 9 files changed, 37 insertions(+), 4 deletions(-) diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index 753adf7ff4..1eb2e7ecac 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -72,6 +72,28 @@ category = CAT_WEAPONRY subcategory = CAT_MELEE +/datum/crafting_recipe/bokken + name = "Training Bokken" + result = /obj/item/melee/bokken + tools = list(TOOL_SCREWDRIVER) + reqs = list(/obj/item/stack/sheet/mineral/wood = 10, + /obj/item/stack/sheet/durathread = 2, + /obj/item/stack/sheet/leather = 1) + time = 60 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + +/datum/crafting_recipe/bokken + name = "Training Wakizashi Bokken" + result = /obj/item/melee/bokken/waki + tools = list(TOOL_SCREWDRIVER) + reqs = list(/obj/item/stack/sheet/mineral/wood = 5, + /obj/item/stack/sheet/cloth = 1, + /obj/item/stack/sheet/leather = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + /datum/crafting_recipe/bola name = "Bola" result = /obj/item/restraints/legcuffs/bola diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 8526727464..c0fd65bd28 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -253,7 +253,6 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("painting frame", /obj/item/wallframe/painting, 1, time = 10),\ new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \ new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\ - new/datum/stack_recipe("training bokken", /obj/item/melee/bokken, 10, time = 15),\ null, \ new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index abd862736b..80818b5fff 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -802,7 +802,8 @@ . += "Alt-click it to quickly draw the blade." /obj/item/storage/belt/sabre/PopulateContents() - new starting_sword(src) + if(starting_sword) + new starting_sword(src) /obj/item/storage/belt/sabre/rapier name = "rapier sheath" @@ -864,6 +865,7 @@ var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 2 STR.max_w_class = WEIGHT_CLASS_BULKY + WEIGHT_CLASS_NORMAL //katana and waki. + STR.max_combined_w_class = 7 /obj/item/melee/smith/twohand/katana/on_exit_storage(datum/component/storage/S) var/obj/item/storage/belt/sabre/twin/B = S.parent diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 3f2dc2506a..7679ca617f 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -296,8 +296,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY - force = 7 //how much harm mode damage we do - var/stamina_damage_increment = 4 //how much extra damage do we do when in non-harm mode + force = 8 //how much harm mode damage we do + var/stamina_damage_increment = 5 //how much extra damage do we do when in non-harm mode throwforce = 10 damtype = STAMINA attack_verb = list("whacked", "smacked", "struck") @@ -410,6 +410,16 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 if(burnt) . += " Burned into the \"blade\" is [burned_in]." +/obj/item/melee/bokken/waki + name = "wakizashi bokken" + desc = "A space-Japanese training sword made of wood and shaped like a wakizashi." + icon_state = "wakibokken" + item_state = "wakibokken" + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_NORMAL + force = 7 + stamina_damage_increment = 4 + /obj/item/melee/bokken/debug name = "funny debug parrying stick" desc = "if you see this you've fucked up somewhere my good man" diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index f84e3601793960cc075ce9807eb74c19f8ad3885..e27ac59f5e6e9d21706caf684ba772ad6ab90efa 100644 GIT binary patch literal 21979 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 literal 21535 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 HJ!1b4nlZOn diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index 5ff248de68ea97cfc63133357ee81d7a12b81fdf..31b70325da82cc404715946959df7b17047fef28 100644 GIT binary patch literal 29193 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 literal 28487 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�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 diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 0332e60fb5bc1cb69eb127e0e096669c2702e85d..0852b02faa43fd55b1192a0bc47ad1aeca696e24 100644 GIT binary patch literal 33449 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 diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi index cdb25672688ffb3bd54b37a643ebc502e5bedeab..e0bd7363dd8db8296069ab22a77bff59a201d85f 100644 GIT binary patch literal 6841 zcmaJ`cQjnl*1u!4=p{rKBzp891|!jlUPeTXk|5DrlraQBibx~`AyJ|eE&3QOI?;P4 z$`Eyw8N)Z;_rA5>TkC!ApL^~->zsYg-sgAr{_TBZ4fQptDcC3g0HD^^QZohs5aAVA zASWd}x9-*$5;_`#Of7uXoO~R-T|9kVJlp{wFzw@~X8jcjs_22?+?a(pa|og>KWX&3 z3|U}Qr*_|sX_`^4-NNtC&T!C5YSeZdiI94o_m6=+_w;grydU;!3S98DD3VxrRdBCtBF zZrZl(W9}A0_gw!B>eB3!wnuSSjLYObNxJ8TV87P*583O!uq*o`B3l=Hp2Ssg6i`V% zGhM;yQ%BhSd{I{`m&ooV6|tpXlf=I7DfhJtho&vQ%tuM!zP4>4tPihO4@aX#sZ5qS zb2{ytw6-c6C@u5@h2pV~2 z2g`37YjH70NZOoQoS24`&Qt%!CIf1b^EtZe~JkR?`YSU}zj zgoG={8PZa*UdHTE@CD^fNv*D)#|HuN&vu8 zt*v&~G%#&@HrUj3ype2or#T@;gPtx#ZRz3tTd{1nW5<8dk9<#j@`g9xn0idpUFMTa zY}_6z_to3f-g=hYgHJ}y^Yzpmo@UC=t+1hSwb|-dnQkt<$dlwj{Ka+16VoNz%dc%o z`yex_tXj!?Jq9Fjkl>xqK0hB-Osc5;S>dY(sokIjBRbny05$$!z;!7}QXnB#5{S9~ z8l>X*hzj6kbO7i+vs?~okOef}u-&xC$P2Pz1+p~WFxcDMvq1cd67}tluq$^Oq=1;t z+hQb$QCBAO!qH_Ly|}nI!e};q@B(~I9B+vxO_1bN4E#M37Cbo+TD(~=Lsa93W(H8s z6+-3Q`cA5kxK+_Sst~KWg{tDF8rp8Ds+n0R1b7n_+sV z^hlNbws4B;WM_m=wT@|%b*>2_zg}~xcBCY*@QAI4bA<_kwf(WBOlUX(e#qD7u#-SpVLl6bI3^pu3*j-JW53=vm*%$sk^D!u7l zgaR`KjDQMWR-O}dm6z_gUohiAjj4$f3WOMVbkCSt!9=qd~$dbSujgh?gl~3d5o6(ZosQjF!lmjH6 ze#SSn(m<5*&u;(~K|-$<@ zvwPS1`APHh^IJMJQ%i&cs=-6|RqU>#b-!z1WjyArKFhegr>Hi)^A_k78MQ`Qx#CgG z$lXYXGFD*aBUjQaK-&!L8k5MmC)XkA16%khswjXaTPivyam=591vnn;y$SKxJxa9x zpw0bO;04S8R9<90IMV@#rQ*mPH)gJspSv>kz4$v$%g~7}L}ECDe}a#Svsj5%V&zHl zNIIeu%H`e`z1}kOoWyk9rb1W>LWr&xbTURqx|6AhAsT{@9_Y_0k<_|Yb&g`?5Dn;K zv@PtNh<#sICm-;>gYnNfO%)sHwfi&(khr1MUm}zRZLkfCO~aNduiE|{(sC?q=_#52 z?rxor*>;sfjqS4lWYrHRhPwQUtEh_36%s4P$tU}af&5NB86xqZ!AjB2qQ*%t}>h`^o3QAp9+I<}vF_m-~y3y{Hug_>55Yp z%uw*tc{)==5BaoJdWa)oy_rLx3pSZpk+LnUYfOCnHO;picg@Y2qp8{d$PlNIs@T}1 zYw7B~h>wrwe|*F1&!6zJrI0aB06`D_Duvm6b1f>WC%bCY1PxJGuqE3j0f^Nsy8Y^k z1Oi-xG91TYx-Uqn)%^Wsf$NfzWm9wuizr9=w>&3q;9JHDUkFR?msz%_0`CjuU2YKq zRF7VnB?%Z2!-X0E5keM}>}!OW_4iM~O(*Mv&~*h58D0FdiWMZDzaH+#(Hg>CXf{*W z%zrzLh%lJodM?9X>!fUtZ~>O3gmtsfzaa9<8@yZ}%=Ve` zC?O7Xk*mbxy9%Xmjs+VhTO~EE&I@)5-hHWx&pyLDjl&+oQ)SKIrBmvth6Y94U3zWp zI*(G~2`DKQK*{{Lxswc>P$$d|N7rJ->XDWqMdp$PdhEwg3PtY~t-*@N1{_d02ViJn zL9P@}k;dT0r1TKy5Y`{>AV~@`T3uRRj>@WlM4$H)eVr0QaN$0{1fFN}#Y-Ju;-UMl(K7dGV4a*1Xs;ao3+zo-Vn2nI*qK;jrpFI_{?}mp z41sUAdz8)*o&l}34z|H>-<4gD?*z~0_oOPS^!de)>( z(85GU$nbYPJ90YKRDLq>sAHHn?|aP;LZ~m0fJEoM6rsM9+a_aa5ZLxFVl|Du$pjJJ z?Bx%c1{umr6@0M!dugK~^gsC7nHajf_l*-`UcG6ldo#Uf-p$|EuF*`zgE|1wHFE(; z2b6Tz*hv73YA*<2r!xNC22b>>8q{^j@rC2fWIRo62u;CxgqV7r1tcC7)GbFdf0$@Qki&KSm`Iri^1Q9)o^h!S&9S3=*6-> zMxw}|N%U<2F%YQRv^tZ1A z9qdS8eCm}rk{sBDNT`I&FH6r(+aF=mm*C_vuW{oSJG(9$uMii0-UAZFZg~nsg2B7- zM$zX%9xenXhAf1(>F({-jTSz!SJ9x)|0BVd{WRez6rVKvL2XoE!iBv=|=o z21FPhZEI2Xh@?MVspm!b{T4=o_7F4h!b;bNOrN!W7NsB=0`H1iUw?8xRrU>m@ER7B zfL2yk?0P=kvZ#DQ?>vzHW&n!o-8f$%(B$|_Ae(_vU+`VAT3n;^q(%Sek00lzR8ccq zX8RAsnYHau(p)n1HL~Nk1Q0`Ihh-@|;VlCpwVnb>sw%^+;jx{y8xBQ}&?$zI=S#dn zm4Np?rf^#l^e#EsLX7Fd`}c_{A@jrN565ntL>x6#hfhFl)Rl358&et9(|kk(w`kPX z)&>AAt*yEj1A|=*jEwEm9!=DMyw_42c>eehyMo_T8sbI?7wJ|Dd4Y>F3+R%Se+mC7 zHWg=4bfvzosK_DxxW8y0M|g^Ef1R_)Xn-x|4Cpr5B)OY(za{3l*s%~W^m&8&%}oNo zz#pss3F{x(lvVJ18V|F1-d^06Xr0k(f2mf;+LObbY6>UYSx&xiaMJeh3vmYag;f3U zK=_Dy-faqrt*e*Y&CbbLJlq)0xj6n?zq3>|ZX?n-CteKo{}p2M_gMJ6*CAdhIypI+ zjkd#ST)?O71p2brO}XPB3(m0w`3@FPrdD6>We2{xu8~nGlMwPpY!0S_aGW3O{Lr7y zr=@4i{|3$0`F-sAARvMt!oq^s)6EGRoYP4is_u|bJo^yv!%y!?Ee{<14rhCIL~~S$ zQ!}bK0F!cofFqJB_t`oj;K$>dzSVhxtnVX@7nsG?m$T{OT_vSIso7=80T$(un#4hJ zG|YOQi^#kThvI)~eV~xe?L-?+(D&<#z>Zz~tu|>n(tK*owGV#m<>*2eJQl+%CB=}C zkYLdSZ~XhM4cm`~aa?(7%^26xX>qvyZFaJmx{+LKv(|exZlcQV8X*spV$e(744!fu z3urt)lsrmM>FVR86{RZZ`)vXk8^GbpQmGnC)1?DEicoI7RN2u+cz2;R0B}zze=-i6 z?DbsOdT0?OYNdmZ^77i9uV>W#qImvx1F`IOYuagDNJX9Un%LF$_V&^9hc%wxoLeE2 z7&pFKP~v%bC{0-K0ZEZET=N)9;8Vmv2xeYn?;*PMuoTLInymiqH_D!T()O@!{GyN1 z02TI-jUS1T<+nMDAI`|A9{P@ruyv9rk%;|VUlQ}NX~QxIzrWg3M-z@a+~AXf%d%7B z*%y!c9_C4xmLf6J8FbdU*Ai_Eo^L#`MhEQe(R*M*nd1dfH$iP%Lr9QIraqGIP2qj|WAE8BI_;{f5OFUoJHHVF|Q-Ur%We!LFy&17N z-#GnBZ9lTzBHA219W}MG60PbhM?;D%%7`2~-l}V9k?$Y)Db7{i4+RJbkk|eP%Q5a( z@7^&1H)bzz@z5KJ=VtkX2odj8s@BNvbO$>*_S6zR4%-dXLVp?2k zfAwU%gtI^G&VfqmRdsrkTzx;>M93s2w$k}T9mNUpM?EV0N?@q>jIM$vAm#+-6cQRr z&&C$Fwe?gUx%L|w8k~@x{&$Zs!E_m@Q7C!gZgQCxI_=Cg3JM7|Zw%)enVLo}Ej_wy zGBbJ8ltbAjCnr6v#BuPmSVn;#1Pfa>V!KNWvTw(qa3Jan*Im=;wVXqFiv!gFx&&FO zCQ=o(Df|B`8T?yt7t)L1rU!P9D={GhDV>fXbxNnwXWqNyRBu@AW3t9#w4lnv-;qTt z)-~6ah(mOAA`P@-$tfrpV5K%rEc6>FGQjaA;a>hZADK}R0Q(s??JCZtqE_L6fpv)&fpkG0OD#U*ZX$KgTXC*pUE)a3wPJ z^I0J|Pb6X6U@4LgK|B9LrL8L_7p6;QaJnZ`BS{}G`c8=NhJUN`hXXP2!!tK)vUi@wlqMI)|`Xt0uU$3)4)2 zul?_VNAwsxURRUY@u~C@Hh;(^-h)N#z1&pdGJABY6fqW={!LMCTo|kD(eC3jO4}j~ zwmUn?U)oR};N589}07VVUtR zrH;jLbKP9s$rX&-SGDJfq`S1qLL4-~U-%1AXW*(hI=#KcW`{)HOHMhR7Nu@pxHlK) zUD@^InUBmbDxUK*hQb(YMZ=^H+wlOgZ1QyW0eTzJ>Y-g208*+%rkX zUAw(alk@Uataz&N@7$v$7y7|jV0SJSk=Go= z+*{Q`I>wBXeV*)K6ba#QV>JROO(7_CYNpoCm_^fRz~YBICFFu&17$V|SGvlllg9px zGrs`O=6|UUwfdFM>OP{H6pDyI69L~ls6FdLyV##~pQoj=Nam4TB8C2iW!{+bZ7NO$ z(@T~*Gh=nxd{ceNw(nuYNs1t&e7g9GP%q;95mmbN-L#pkH8aI-Q}>1Is3aFR@~%*@ z%hmJqb1iLcqi&lZHiE@oPjtCkiM1>?&M*90<(<^aANe7Oo3Z#uwob@+y<8ox(a{-h z%q9o40gA9yJ%I z&j~sJ>z$J#XW?o04xd;L5GuM=oWcDCRI4ibJX3PziEl{{pE^7! zACS6HkDPLx&nVcG27DLR&y*lz9cgC$0YOSW7l#i0M5-bLxE0}c<2(EAh^}gj5Jr3Z z(7Ylzd~M3`O~ND@^PdODY{zB8{m{o|(Z-%x*)qhAo@rLuZt)qq8<7OoAtblaUds27|(xD?J>W37P?(E)?JR4FVb16Sn;8Ei?Flk0ivFIu{_%`U5c3|46!8 zC%X}H9rw|~KQv$juV7u7pCnRzFrH0VRo%zjN$|=ms7NS^(tQNZwUbOCuK`FglR5MUk(T4{g*6i(Hg8ELNSwcN&D;0kt%uM zqTnad2Q75h3vz~lm^ik)Y!4huX@g?fOvt<-9{|K82a~f(rxOE?k00y0Qzxv6$Pw*E znq9=yz65~nsj3e%47>wtzK_2`kAx!A;-wXzcywm$wVp81Ez{Z$?7$zN{NR$A42dd!64`HDUlD^FEjVJe^o+N*g=4sD8M@KQF|h=)2laYIhM z*1oJh*Mx+GLNEfxcdNKb{`$Iv3(6-&i8R70TIrwja8VNOfg; z301@pkP=!Fvf=w{f6soq`_G-3^UR$0&bf2nQzq6>Uz3i8g9ZQqx`$e7#sB~!b%7;n zO44)dL4zSlkQ;1b?yKhDW9RMcjl5)GgNFZAC1WtK3m zdE+gQ^6$z<=l|+c`*Qd48o$SoV_x#p51tjXi;jLLci(hr-l!puT6^G85|1`!D;|h- zO-&~Ve|HMF_|xRBVc(3j!A)3bU8N(-Ce@w6+-5B&O$&9lsc&C@7R-yiCR2YiFrt!? zYGQAfb0vP`wojU9Plk6LkG4zZZG{H;DpA45bev+fiQxNUn#=`B`X;{B6_Eu=uLKr4 zM$)wR9ImmA#V14#PlSKns4(^%(=VxSEY!R1lNnLg(l4%R6Yy2N(u?AdalMpr3T)|%#Wp}z8||ATYAH& zKyY_f_N`-4%8PjZTgG%OQZgLcF8M3M98xS&bjHb(nzpqrapT4L;)|Wgz+~6*gyVrE zmfZ@qEAbqh6uv0s?rTs4t=G_ulViBDYhx5+28z-#+-WE5S9Zk=#-AZEGt^!N8nb2t zFx+|v0vC!=0*UQxfEtb6zX=9h$)AsZF?xlK{ko9~5_1{9$;iX=Ufix*Ym?&Zl+f^U zDhRB${Zbfklg_G|apO61F*Y&jJXM?UVh4`o!#9x{GBM@O#50065#ykI6#sQ+l6t8- zo)Z9?7b<(t)Ehd6hv~0fyY_c~-!6=M3kA3C?C!qJNhY18M?poYeF-Fh#x>nmbn(46 zw6Si3fbwnL`dyiy&mX$m#aa$ars55)ny+~Kik#fY3zJ!U8o%>YH3F1i=?(yhLgXkE z2|bHzVl&L`kr+Snn|Vw-(ezDJf8pi`;iZ*6sCbJj)@iJH`SUM2kZduisb0ki0)hM< zD@ho?*3gG-HF_C)mID(U;{166lFEUNjN#DtN{R5ayP=DGbfcV^&sd=WidzY$~(oX(sSk%vesyYPMEuz%?cV z*a12YNpP$|nC`YOl?bl~EFi4oU~?=Q>sK94guGnuyXufY_KsJIa^x`1b0iQ{?vDUVJDZs$|piI}xOAO82i0}dR2=rW*oWZ`f z;P6pH3X}6GDsp|(o4lr|n2l{!d-3ASD7N{?!?tJDWwAlZJU!dUR?Sg%vKxQNI^e0p z=@kv^>6%=NH^oxuUP4dGKFyclusyD4a%2Fselb`_H%I>QY}uzj*j|Z1cYq<$^_koS zKK>&yAm&Opz-P=x4%M=u1^6Sy|3z@eW34AK%8E7;v{aOolvMbvO$U1#Y}F>Lq-0h8 ztkputz#zR|f*~lau<$zLVrg=%eqJ!)++tIv@xB)$GBVf-OG+;B^4c|honN@zBNp-C zLAmHhp3Sj*^-ChRZas|F{K};Xtfl@DwG{jgG1O5GY;T;V1@^QP`aGb~&w;>FS2Ngc zD-?~Q4RfUY1t@Vim(js<@E3gN86nL3k3xXXVTx69FV~RJYcm6ox101xJ94+6?k{7H zcq8)~zDv-80#(L)=fgg$4_e{Kjf%@sQ-Y$0`6Z1Z)exP4gD2M$_L;J!YIJf48{lW? zPXRVb6r#Q8$_;FQ))xE*y!W~^nJfIJXxnf5FU&pAQ z`!>G^pr3zu`|Gh2mRnEb*2lxwW1-&lru-pSpZOE&uxOo%9m9H1UE&5HJJA$bVKpyf zfzJE0!`y3Df0mV*`L?A+(PqsulZ47Gyv6Z!w{1lJtXhR&ooNYQsq8hKQ-5;EpS^WD zX;=?Y2->rEo2~*yMnsu^ymBX(DjI#%cpR^b~fY&tM(&wXKiQv&?Pb*&0s zu9b{ex(P5sh>0oeSp{aHnN`H17E$fcU;C^zcysc8i98j!BZ?0DB3g5j-eog-yETig z&aZ~&^aw2^MKNBv^Lp7xPkg=W$M;H9-UIT1TqR3#=tXA1-}n2<9|2F{5N?2hfzOFi z*Pl?v8uxc%+w&#XHZkRN!uj`3g3zZ>CgRCi$Yi>GpvfZu`nS{!jWn-w`}p}$zkC9~ za`)*?zir`W2pnZ^;j&E+Y;JDOzRywk<}}Q+HB&=H8Wz_XVNcKhnMu!H&v7A8 z%8Os{9%d|&_q;3*!3XYcH}7cUKn_zVv7jop%%+j*@aOq|yaJx{NA6Z2{uhq@pDY|g zp5)*TDcIAg&>WWDSP`y9XZ@%E*yOwm&0B-N*YXB?m+KWenjfV@ehtWq2Ue~2A#~EE z5zGby_r6ywnxbZQf5A~jqr)ZmS;2Q(Z>rH#k5yD&0nk)ovnIEK{^W?!u`zXHoKpX==p_&s5+wQ1K7##lJkj*8rVBJwj+_q55h?e-eD-Vmx3EC z0OBpk@FOK%cWirm(dg`-QfvC7TegR|VqPMwxHfG2&wWZZ1ea8`z)609MxGBaz>`xCwpL>D#U9ig{OLT)m|IAcB? zzH8l3S3to{Py1o-DBa51^Td75^rX>+6|}#%$0ejb@X7P^P#e1HjsX5n=5v{!*z=8= zIdphRn4uh|rs7CD(fICeiK{0|;F2>w_%m@y^F0>`xWdBHK2Sp@gq&4_MUz(@9njl} zQ-X}vnV6W~)YK?MpH-6O&EA5tvc_0re`(rN-u>2WYh?tp5I zo+tyiX~y7XgX;*I8smRY0rP76STlJ{EUAvKl5q+g=ouPG5`^dl32mze#%_D zJb?~*8*+`$f4-R*Zq1$EMty9J^rw?)imDWVRtpi$9e#Trrv17-b!2&R?U}BYSj97S zpAMe(8J`Uo0zuh%y+n@KyN!1o!QKRusEtk8hAiqnQSt0#INbJRZ(TNM@45k{@f#r? zN|T&Qkk{6<_(+is>pLDLj@FPP4PRf$V*Q*xfUo+d)fAxr>3)1Xr;P1#dt`=`E6aV{ z!J~9sGIOG$A}i?_H&KG!4~2yIgM5`~&BqA6v06MZWmag+*KVnQiBsY-a$hiyF%K$5 zM}ffhpfP6mmHiZrW5puI0a}o%0hJ*CRI$)(XYpejYTS(6f!oFGAsJX5k^-!)t=(vn ztsLHFnmimr3Yj4E(PX&0WJ;D~yRY4B_0o3DrVe8Ot%na8#l^(|XiQAZDAC8iIwj@G zE-4@-1K#r}1*0~UTJHzJDJv++jse%|Eekwf)|cB9=YaE9PcOXItN^L0sXhNS@bNK( zCJfA<42;C>ym?z?%|6$wcJl3l{|0FbgwDxP568<>wQ7LUa>xn`3u6Wb zbh(rvEeFKKpbhSp(?4ZJM^yHgJL@ur`@*cdU_on%nhea$k5-o(woVIKP*A6D&J#|7 z9^>??p&PzSzlCgGB!yiCd@*=vR|(*tfPxN0WJo$EnZhB2(eUP#t@Z6Gn6-5lNhHnZ z^Smfw*%|wg&c|%}J47jZHG&r&uUFRIN4Lv+x%KD=%+tmUmmsC2p!|H95m+)eL@%~B zQvxI{9^t4;*=AGXBGNhx`?z95ry7lRUug0p16Ed63g2m%!~dMVXQ+zJ!A;tYeT@zD zND-j8Z{YkUi3DJEXgEC2R(Ll%$6(T~rxI53-F511Pmh+GhK4O>_Iq(O6S}$5`sMX1 z=f`X`0(K*?l9y&w^#}ZXn;WA=I<~k&3;-ofmvnX9c7Q!W5l+XLxdkGU(3U%vY~xu) zB|zaPJf4)a#dQXtvQ^X|_cNtj9fJwAW{v=`SWi^dCKO2sK$FL+*1X=NoL*X4WvmL} zOlvqMD3p*7CB(a>lT=(4F|Pt&VP!SLdH#5HA&PFtehL;hfHw?18oY(aVmH3+^@xn2 z4Kl<)z~A+77y{-F7lWTM07507=cr&d?RI0jFk%^!M-}l)S2yEOP%s-;-w*rL++K-$ zW$hq)!LV}xlivB(+E2JOe0N3tQ8Xe9cX(9+B7cdVQnGsxEo12Eq3nYWkiFfc2R98? z#&nhFRiGx2n!4yCNegGh1yHA(Oq)-0M}Y=lA|rYSAJS-9ql87O&9^|v4G7{!+Jx5y ztf|dXb4jtVrB`0_7V7cjOG7yd#k4PlbD!EB+Vxh#>N5}R~2yYJK8=p7aBvG6=}pl9sM9mS6Nwg+-tT@ z_50IBks0E43>+M9@uAGaG9r(70ToqMtI(oEERs*sR}OfnOl(CdU&o)785b}@iSs?W z#Ky#r8dAmiZRkIcQPr7%^&pEdrJ|A&*K=hpLHi7hj5eqEWbFDROgo+hL~xv&jK0$! z+vv6Y>XtHeUve%fiRl=JOD~)GtV(5MV)DjkW9T!X#YCG~Va-Yc5i_|;!& zU@zG(O6IZ9bhWLm?f1{muYXGF0q@_ZW@TMcR#tu!8F@`chIMFI&hPin2lfsQL7`#% z0u!>p-2}{w*(=Y_@F%m|3(ZEx#;;b92?bxiPz{tiT(az*l!I&5nTC5-RuwNm>G?@B0C58G^5)&gA*PXl8Z3ANb z_af+lp39(f*>pL(K}Z3_Y61r^9C3id@&r-qNi**mI2-6 zg)?M;ii(P)-k4+*koa<2fpw_@MR-^n`1@KYeq>ggmC`OszWtid>$A8h>&kh7p{Ms> zZ|%=yq@G1l0%vV)E4U=4yM{^L{%s5J`8aEMtb*?jRcbD+$rEZ>1&HC8*d41=g${Z9 z8HVGISzmi6r&Ur=@?xrzTNRp8y^lG|*R-@&3%ErF49sq^RiW7_9_P}TOHLHehY9_hgRhsIE#cg6NHB z>zoniX2PMkc?D!|4vY`c10yg37f=TO%oPAS!%Zlyb2z!-|oJ?Dj!ronCh3faHb3%C> zb1Az&rl(2vhH4(FlY6$t$1NY_Bdw^QN#rZP2Xx10@#k*gB=?4L)#IXh?qMcSs3|kw z?Rj?KuSt8dMb-yttuW8a9F!D!d3n$r6!}05FJDugOQ8;R?dCM~SO2rObwfYHX$&!K zK#0CpJOVF8PEfE|%#H(2t*sFnn?27{yXv)!vL=Cb3Bu62I0bYuP&NBMCN zCxg8S5D<abn3ANpc2#UIDT*CCP0qRBbA(z7vA8^ z{V4L7UeYv#SUyc!ct2|kG?e%m*I9gVb(YcjwDXU^fod$C zyLdPF3!8>1ZAlX)!ZOag3gdYKa20^cC?B9FD;#7#Pm-`RY8FA90Ee3N? zLbJ-Jdn=#aX*X+zcTL2pS7#ZQE*rgX{Ps_-t~FS-GTwbnOss0u(!jR$^&HDYYXI|% z-j|fC3dC%wx!TR6Nu4*Q^rhivy#4+wv$NGVbnaNxYLx{FH(N!uY{LZpu|4%XMKeL$ga+T?}eV&MAb)Qv>_-z*k zn561jm$oKgS!W;nU<3{ZgZcD7DaF~%%)}U+re+*QUrA^l7iVllu3uTw9SV||T~1qD zvro*<9su)?J}d(L-P2*NeF)Df1c9^OPfla6%gH_AvM{2LHXSEdg=+C0T|g`sME5V$ z_fhA$&($#`kQ3^-z)SnlRe`&eTTFE-{LT!dB6UNtLZcD=x4<=`Or1sdg+)e|r*~ry9=ikf^_gEkr#{iU n#$U5*&-d?Tz<(@1O(ZW|&)jx+5g2xU5%N%7U#(K*`K$i|fFM(J diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 9b73fa706b3da730c00238367169c80296ca0a7b..3a0cd39338f9fbe9b66253ae49fe66adca347139 100644 GIT binary patch delta 84634 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≦|K zX+S#c2qo9$L`~KH_ki>M4W8c6p{4dG4-zTyd45P;>DW@QXC?U>7K@VWjg2vQ^|QMh zWJh}(%r^R`qV?|u)p)Uby!`E)^E;u(5H>oEF&~)W2ulE&@zMG6Tj$hf6xyc^a4q*%n`6hIR6}W9sl|@B5@o1EG{L(5=UtH7wep4D6v z1YNN;Nkj`%9^ogqX}~-!ykB@5bZ<9CbCk-p{kmhos)cWNk#T?ZjkG*(K&9kbp4Y9` z=BR;^F}5xgo`;N{7qs1E0RA}u*e}0>y{G#w@Fx#*;t+8nVNx#{8+BqY*BXo@sP~1c z_bf>+HD|hV)gt|k&=RlUBEG^K9{f|=bX?=-%_^DYo<^o`mtVb<#JS3xmK#=MPvwOH z#UV>H(nva|HIM}awS9BPOh;x;%a3tAw?M?_^0c|R3Qi8Zlix_-YyKjN57}~QKaR{W zxFU^cJ<_Pf?n9CU$nK~Q#@}3={qFd!6W~XE?w6_GS$1b?4M?tdy zc|`yB&!Z?{coG&!MO!xKseSiu9$nmAWEg6|nU7CSPOltd6}OdT2eH5u?7(pv z#dhpD(O%u!;CvE6$C`50L*-kXr0kQ4G;yB(Y>aqUZp1`+<;t}SgOVhi)dCTi?93Mr zkB;+{gxqCl3w5vowqqQ)gU`=^+Y1be%2iIcAzar22OsX&FcO2G=u{xd49Ivtl9xev zEMb2R47Jv3NV7$Xq?`5=*d(-IH#QWbPY{P5j~^E}+bhARS=a_^PaFMz;kTrN8=cm| zt5B1>oQnljma{`c)o;k3*b8HinUjva+~b^QGaN(K zu{7WUCjN=;Mq{e_;e-Rljimi%iIy~GqBTf|6& z6Fih8BL~RuLV3j@=kL${V9QiFUqHtK&Q0-T&g7mSvh^uxLP=Lqhu4NY6~Le1R&4>- zASE_<6I@tZAoIzye-U9i>WFPJ(d^jf;-^@b(-nF;oTm(%J^0SO%=%}t?t;}UQU`S} z^HluxvWEDJk;g4%MDCY8kiQ`LiwSHbFI_HxZPv?lSc>-tafc~Mv?TmtYFJ(E?KZ5WJ(JzLp{48?D3NB5At?YeNeb9^ClE&x4%tcaY?0 zR82wMt`_4I{P1Ryl9HOXIKE^NyPDp;J3pH<7;`ncGC4Iv3#k)VW@`x#{Q_emE$@$; zAhxzt%#sGI$yM;m$$OXHYKH&5W?RnyaAg`{G3c24B|Hz-2Fe9(5bzVFuUBV<>D9 zmdF+T@IPRJt!uitz=|WUoq^uL?gdweZG|1uz5vmZPj>&wDEL$s66DR?RM|LySqTX& zltq)7Tm`P$h-W_5sxlEn{$R4LeE7Y0a1|<&v(mq2e1>y6CzX2e#{nkQBNIZwQRJN{ zmhPl+Lt-;mF=%|ncDo8r5)(@ax`h`~w3{-lao-p4Hb?ZFp3*+pDX*x|qi}ig{@2#3 z7a-8KvA>%=!wmCY9SYItqwzoQ&o#8EF-XrYeGZ(et}~%d)VLv23kID#@Zh=3XfpR} zfazx#Y)D~vA;BmS;1mAk>G84dGwhKcNFQ2;x4gDS+>G0p$SXau4)UeX6U;9+J{@uu zdyV_tb@Io=hs`o4jW3*qF0<+8O~Bjg@he5>m|WQN zg)&Y=Z40hqs87+9U0qNKfTi7-5N8BlcKi&`tQpcxk~Bq7OL70HM913QD&8eo)0ken zcI0AU*@+1RGl2b6(V$ffbcV*@i(M=f@*UtNz9xmU{LBN-W5Od#PGE28Lx1HCfd8X&AuNHSLcwoaO}ye+%9r9Z2@n>M0#8Uly+QO$>TJUdt*7$xR23B$Nai zW4>HN2+FY-6bc`{m(OrO=6l7iAX&m#CCAs#$|WCy#mQt_SnIckFWSK_C<7Hke=a12 z4LK3_2J_5L>TWC@ZIeaQ806LMQbV}-a%fbC00S;xj{;8UOAhMshX>-dgaQ1JYa2Az zfw=l;5bQtL@5Dbr_vD%?T$SFt=7LL^u~w}* z4lN8CS_G|A5o?R!A-@8H5>;vNw%ZjE6Mn8vhrR51-CaIR%@T-1flW+@9psKc&YkgH zEjco9T(r3j?1}v_8qY=kefA9-o0elP+$L?_~{HFw`cV73LZ=)UifF_#zAkonaK;H9x#eu^|y zx%z#9pxVuFItVvI003Cbl}n6`h$jz4U<^x_;Wn+YT<#xp1d^PQ>{nSVTA}N5%Krz4 z6DL+?u8SA`csF#1G=7YBXNIJ^BkX-c(aPwG?*AfnA|)Wy#NFtT$0*_OXZ~?5dlF>b zB7d0s<&k^Yr*$aH3@j;60yGrp4}cc{3lD`U+_5uh*+1j!ky`ts^RdJ5uA3B;=q~Cz zrzm$ifdD;j5TFMM0eVJ~+ z#S7uN|L+&@0tgz*Ve-%qTtxjyp6$**ZHQGpa2xLqoYU(>0U6f9-IViSYcA@`D+i?6 z(lGW`%jrEGs~gjUeh%_}Mp{}A@>?sTR+n6CPGsL*j9W9+La=Cq@#pa&m^f(&{`5b0 zVjWgS6v%}O2>VklS+}7%PWobxoevj?fl!u(lizi;@odoTLxpeNP>@xPew4H9YAC)_ zmVE#iTE+&ZB=VSOCDzY~R%P<`>g}<*;I#1)jTnyK{%4NxNG)h8);(-%Fw*1Ii-Pw* zloqG3w2&B+(1Wk$sp&xV{ieYho4)T)Y^UNor}wQji3J6VB2q8(9Dg@QEyKUMN=fb) zUDNK2n8}%VK%#quC{N}Qr+@dP;_?Pi+X;o{9nOr49{BbBfqspX#45?muGD+X03KWe zXDmhgVaK@n^gmnV$+{hke-S0A&GlOp`9QLi!l_nzJsUrd0W!fPp#0OF%bXz-?sd!Q z*cZ)rElz(CBbD`rGX5MnCjl(8$MO(NC^i{M=sSlu%-I@LAL*iS3go8oh_BDBD9`91 zT7r4i-{>bg`>_3rSV=1+Y>c)+VF0$`u$8pK&3`#B<(H{yXR@{*F+0)LI|Md&v8Eb1Rbto`UtZYxO(N1d*_cr?wyN&mYTAa( zH)7H$GCP6V0aOaCYV6kCxyVxrW}_cXzixIx&XfZ#I70Oykr%T zF(5t5f$1~-ZWOh9OG!U42|Khgi6wsvELEMWecUw_+bKa4#Eo>3?8cx0wo}^+`BH_2 zn|o+--1CDRtNaVCe`6HA*eBbI@N)CnV|?7Oi9!&*IqK-iMDbAw;Z)khPMbH9>e0IY zw!iN14;Zu;`wsMMqhkIWhrk@sg2X7B5@b_izT3T|)a-$@DuVYdk$~dfO+&W&j23oz zzJYhAPQcp~_glrX2J9b?5ec3-z-D(dFNw-ee}=5}_GzxUc9 zZlyb{pP$Pl&>g>@esVs6a<%j+`eAKJ`N_|l?bk~NssgHWeWyX}>Ckf|#x@=N^I@Tv zZyY;zo02#h+CH#(W~hd#)NhjKR{$(tM0kDyNXccs`Fd%9ovdcww4%aM-zIlXy$!0H zWSIxgCQ!&;CKhYJ>`7tKZe-v}$7c7Y=fXifl)3Xq1pF~?V5Y;)cgxv%*&G6 z%%mbTOf65H-X`C9SDFcw^v6R`=y0qG$@9V&K324|$}2LWHaO)Ik)5l@`0b0}a&MAt z{75!b-6R2y3BFl6;daIny)lBS zvyZuRjpWfag6Lg#+1F1#I5B?a-0fD5&e9oi=@;K0GblO2vS zyf}(O|8g-qX-PEm{oRu|(Ixr3WHglk@Wu^!ddKOqNzBujaF(7%x&X62DTRL+YsxRD zEMArvf`Tk@;VLKQgbj31VRH0e4)2k;ZqxBtn-Lf2FymB*g)|rW#ptHa6-nFLihLAK z>34vSFiLt1XTZ0%65djkuD#0ow8G(fUt1NL^Sfq zopn}(Q;CWc=nLXbZzSn;di64{pwprO=cgM7ioa3ld|(l+fzzV}#*MGQ@j6h)hrMmB zeM!0adR`m%=O^P8r>{Jue`wx%=LWZuFqWL0TyCqpq+|g~sI_(3lVE||$YvzNoU7j? zswIQDMNu4@e!&jn+?f@?bMdIYqUfoRu=OKs)~}Pj*fglSz)e5pHyXPUYtq_QWh~PE zV|lYca*!0c^z3c*J5D@6a}U6|-}94reuVbx2EzGypVNR;*8{9qmrF7RtS>4NqCk}` zvU7A9kmtZLLL~|Mfjz<+t<9t?XQmj^Fs@cFSh|WvQs8R2|6QFQEhHFjT9Bisz>8kw zsxX*<{%)vA>UYg`#!2ik(T{iSz3<=0Ikf?4R+b-RQCqRnFg#ntwIPIP#D)AR58qBp z-D74kyNR-xr`XSZQ}Rz}CI){z#qcXvF_9DpCA_5wQ}Mi5TkGvsat0E~_uo0xhy z0wa;Yn}P0=1BufqF=m8NpB;A6LWDi7zc6a*z93uQxGIsj)4EM-a!w!QEawp7oB(6l zi<)@|Z!xGz*V;ZI4l$WmJ&w|x*zuCtbGZt(L9otyTgogo#AXj`BdrmY!O)VZw&!s+ zS0eFUzMz#>dWZ1i8x5a*l=BGxT$aJ~khR{Y-Tzl=`RaUobj4@9mUieY5rWu3?Ju41 zr-ND7OtAP@85k}bhN#D}KskE8RqA}|wioZ&@g{mC3%&jAB8Qeb);#AuR6$+w!StJ;WdgB^>NS=DDtcpI$3A-ihrs5q;_h_b%nQpD;`DXG<@I z;?KprKXYMm#}shG!6}I{DE#Ye#iuNku*j02_%0wm)~U+<<$hgJ!gC#UIujZbjpxLM za@CJGdWjT8pT?xXFGjyRy<9`qMR0!Z^YMRmP2bBZ*XYqrPxAI}8t|c}>(L|=->#Iq zl5-ZaYTxhBzy)<#)3~t*1e!k^SgaYyG&@h?vy zz6KkL;iHYfX1WUQPv?4}fa!b0RY^%nrF-7PmrKcIMmgE&@p)VQo8*MWl@WAbra*vB zjEuz1w5GW62HBTh^Ts|33T%vubysrl9S5Gx>gccl2k>|25)WJ~yn*?H`aNG3WvdAS z)Q_kEl@%arNEW%_mgRZQ$oL@VJWd~*I5dEvJ!O$MQT=)`ip3VJ#P|Kvu5Oy@o)(?| z$#Zp;H?1LheR5K-h`tqf<@bNbEkwv|`>VKK=ro)jP0rYt?S)3lDK1(+!+Ap{%4OP~(p2mmC~-S>w*;?7`^FS-j{~gqrH(KLOpbNu-w@2DxcJV=37%$<|!Qv?yz44oViV7ml(U@0Wp~~LB zMFw_$Z=!0K-QLq|_JZW=zI1u+L^4b4aTk z#$e)!G?z)?XyR=He@{M94kURxe-GW z?e?i|)Sq+%Cy3W(+PPek2BkO&ybE|u2lopZj53U2un zMhKm2o&Zo40jYUS5vFg``{O~z@F@}!MblnVJ(>qtz@-yvtzepK3eiz~Cts)Rj%P=o zXU5BNNf46MJ$Ef;=p zZ7h4M+7ow9344qQU}Nmqc@^J-sX4>?-G;4Ndu78WcTZ5-@p12rQ8lY-WiH+fe~2!# zmB$d2@)BEaiiH9x^xy>&2U-7TG2l08(!ZIs&xPH9qfzQJH<3R5gjH;@wV?OqJz94Q`kE3h%7UWIr)m3x($X7)u2(lU&%-2OG)hpgpu+&vkJCOr!RiyDr^cdRt$q>=PamLr$TB%Qdl6Y2WNha|jZfh1eSK^e3 zv8{b_t_W*_KOAiqI?Zgv9$O-V*)O>ef?~itw zr$iriA*I95cI!ngUzDKLMY3#N{7N$|Ry_ds0vBDt_o|6SW_pHlsb}ei;P{W-AbeTm z83o^q!7eB4BY&L2b=Wg3NL$i{D%oc#Mbdt$TeDtp5kC>#ini7r0!RQeCZuI2STeJH z6@R+r_5)efy>Y@N<9KmT8 zk9ZTSZMeS>H%!NF{YclzaWVh?Jj1As_C1TH9qH>3(S*+zp$FKAvPK63xJGLPCYJra zXOqzWCNoDJs`>i-Ua)3xBaw^;Q8-m%uEc15zP{D93b{ajLZF^ZQ^n?0(-Rz#rqmrF z2C>YxwGb(}hr;`0fxkJ|xH0~)$-rd?jV5x`2=m^u$r7YK@Kvm1hllfO5I$UbfB1~B zxsx^Yfj62IK7r&^tamygeyXX~06!aZTU*<-1w|SQN(YDpsTp^+`6EZ6$z7Ab#d3bZE=JZSxhOe6|$|v*(el+PUT_ei#Gdo(!43$wAwDjn2BKa`$}F z)U8ZJBSLs$dPTnZK7D! zmGWbM=j{WRlF0hvwCwJrz?O!?zC4K<6~{L`F$r)6a)<4_N)*p0d(e;R^H}{(v|yR% zxkEMguLnZw7)>I@_4fmm9{Ywg!rI$nB(H#Ls79qMbJx!@a`qX!It?aQ-<{hwoZTF) zn{=J!snEPJDXTwx_WW;1G+o+zjH&C{A9_a%Pxj#!%*6D0=_^lV?VPtdV|%dnO8E4F*h@o#1DQ=AApeKYUgm|GOZhpQ=xn|n!QdhUXfbar#NAAg0J{&MF zeR{vGUq`u!7Q1(bja`L^t`4T&UY`Tk4UdgkzS+8rWrIa6TmuC0u`F56+5TpVy-#zC zmv+XfjV@EPD86RTQ4aa0LDvThdcV5>U94{m$acA2&$QIZ4BJMzb3XkZh(Hq%B}9 zO|3{@PCPdO=Z07x63P&bB^%@}U^3Z}OwO%layvkeLg!1YCnpA+lG~~0FKYn-DxsDJ z4ikzzy1TJ0JVb9MB}q-~v^$daXV29h-2a>Lv4M8%{%wFP&#D+TkI zgeIA}jPEM>mN)q!0U?PWB27QD)9DA#kESO&YEORr9o$~?Tg{TVX)njm@)xG9?X+9_ z^W}tY^9O}HO3xo`HuLJ4h23<}{WVUfrQ~|IH2iA|>-5xAN5?M)*9u~x7a7idg4Or% zwfd^V0>cP@0x9DfyaXtGewR-PHMp0(8VxF;W1g#NX-VDpm!?Kd08WU?lM8C?b`=&J z9GsAx+*!AM@^>mpl*quq0JG-Wj^O1j>Rmwpsx>2i!?SP>BrKL#8xcDEqoH;NI&@6#gVIhwhtAvr$0 z8OkBBr~Ioi_3foO8_MBb2(~Z?NieR@lrz1C-UIT1~O-P0A z$J5>gbpEuy4Q)PL>*(^^JldJFZ``%s#1V$(^{n(`+!hv}Z5~;-I!^CeH&G;(gNw3E zjj!bFEK-z-KBqXe#ZXK8uvo?Rqa2D@08%L+N{ORXA zy`tc+VT4&iLN=Nu#~P|nQ$1JnM{hZN`jk*=0&s`mE!?C>n#&WPWNsvXU9r@ube`o5-@0Q|L<%wXhV?gZoO$=i_1Fw3iiK(g3 z{F%ZP@-9h1zKMjS&El!Z&6;jOK;{OEZ)#^$8>^ zRn9qeIaj77Cy!k3eOUTnpS}i~!)EL$z}Kgg?b+8JM)nS3XJ{m!bxW>G+xMevrGck5 z+{jlQsO?)CtvKeorK^F1mU8W5Q>4E_fuB04^mM{{fuLFcyhpL0Mh#{O5~fCX%h%Y+ z^5RP=bE+!Zcw&jvO4Y;ELvGd(ZDa%o(gYV=r=)^?f3Aa(CX%K`xiYXhUmsis?nWZj ztr{*=>fH!nZS5I2P*|bg#c;COM}jc0txXA68*pCDewyljBI~hnmEMg^FRsZ8*pWK5 zfEdwLSvC~##0veqpzMsjJw`wx3H>~Rnu(+LKBZH;bw)BCo}WxHeco+3;=;A0ir(Ik zn}W=zWO$79cg>XHcRbgltAgzepEKX(~!8?54$TpZ$unjg#t5!jKTO$e(|$Jd6{Cabh~Q{DF^(g_zivkWPu0AXSP&Oe(QPpLl`5z_9^ z!~`|}hIkxW4)zlkH=?zBd+%6_&9*%he=dk5Pr)Og|0n|xGVpe_jRTu{&y6@z$?83K z$OgXQ8GXLZ-#4h*7^^UysWl68Bguz}(d@f7y`6FS70G(I=>_6FewIrkhn?_!Vg`1( ziCIyVw*mKb5UMfBL1-qsP^23hew&Th{rC|)n}b;9ci>OM$$*PSA!|>kE}({=IRIMt zVlnd6yo$m=m4e_DAXehG{mqY#PPQdC)>GZn-Ctr>?su@LtUG?6ShI3Q6u=9~&M3YX zHI8XcS|qykAsa4AY2DcW{YK25h*EOm0G)`2`H`;hcW&uM>f%tNw!}~Q90Y2%5gW&G z6|bv8x_@7f3VT73Vq+%ulA+~r#w9`6zklnQ7!#5H+Ko0~HBmQvW;z-rY%{oaNrh7U zq3FO!;(lP4p>8lwk!t=Yq9CG96S%fE^T&^5@$W~)sxjdhW$#}?WH42J-glBQR8tLx z`@5o_bK7m0o?z;(zqYLyq|85EAiefOd@|u&z`nTtg}5VTzC0}YTJ3jb*P$yS+}9Lh97kF zD^>4g!Xw+o*so_1C37m6hsPEl*cB9>zyI<)AWb;%-+f(ju{fwQ$<$D)I`dG1EUzP6 z8ZQ13w1_b|5qJ^=Ub4pg=S>yd0E{BMzJe^XU5uL{Jais#ZD34 zDMUe9(7#Ib_@dSo*7mzv`-do9&@&}!jPjbF4i(B(w(!u!{pX!9Tn>H^ufmECD19gR z@+0PJL`z$0Uhar1R6r)LwdN`@Y{1m^VRylBBm95B1gE;8n%geg=hlxe9~r9t{D`Fkh__LW7+K{P5-KF7X6uY&mAmBZ z5N)2y%o|ZtzEHEYY zcDkIst>{=(1pa&dA#>ZxEY5;4nU{B}3WGlsc+A4zVvV^*B9Gr#^PvnZ8P-^5d~R1M z#`ESzyg3Q%<7|b|{)Njc()Gkd$L8#Hkr?a!Aq3~u;2rY~@-AZ-rY&->p{g(&hXA*p@W zaVxv*yZ8&i0;TwkJwezGr)NNk#pmzVbtBGvZj zxSZSy`+f#Bb#*QQ0aA!rLKR}toMC??a5*-ZE9U_xOlbqprkjS^7eQR_YP~6)hByB@ z>XBcq3t!li{@daX0s($=x7D&`Ma?mgN@P3>;o?5UD-k|3wBwG-2Sn`b&VY&lA_Zc+ zb3D8!065TVy+aEtYoeaWKqt3e{B?j8l#b|ObhWir)zk=JHaP65Bj8}qlCF@<20aud zTu5`$>(pL@Z#dc9prCLDT5{OX0u`=8OS&SWsgZ}M_+!XZ}sH@v&*eKJL zBm9Kr^>3YdK+(^qy{4G<<7-CF4{!QlsO9mI7fC(Bw=++yG4FiiVI=3r_zs?e$X#@| zo|MeHkw+!vE5KBhJ=DZr`O%~6gV}P#rlzKv<{%<>pU2W?-8pj`U`u*?@1Cb8y~nls zd1{#K^J(kJZ1ZE~PfkNMXJA06Fx8w$2YX!={JS*_P=kgj@yz-CEm6i#RTloI3oM$c z0uHO@w!8nw;dL`zWw-Ha+&Y7*;LLWAzLDrUeFjN%!*nodN&UPp`oaKMVmQFL64!2PgB zA$H%mKUShREqVc$UQMG@MV6f5m=Cn0W^u$Ze2dQ0yqe!o3E{s`?a!4SjJzItaHX#s z{x0Xlq%0q{d$ji1eyaBM`2b;&L2m?jvCU2zDXk-@3sL_k*jAi6%v-az3MQfg{{~1hm}e0k(}$5*;qBJGK}|WMQ*Na=1m-4sTaIqo#NoPl^P)_FB2u9H zSMH`S_wlWtbr(er7tZS!X)~fyKU|Qw2cg4+5Mw~*uni-}_D*W3m$Oj&!jitDSVfeN z%gXh$xhAk}0z9)yr4gw^XL&EhO0PprUl;!T5zy`jMsqhEJf6d0Ht1vPN-nOuqbDIW zD%O8DsbH8TliFqY;p?aj21THccw)mM!;{haONQ|DEq|8DbP(y^4iH)RD{!nFvoHM7 zU+d3g#*lwEgjtB_kJao56T{wM&u6~3cvJ38JgzwJiA@yJb(r+@y|cvB^=Bkie9L$^T>r61Jhw15JUmy4ELM`q7fPhII* z*9P8`!ObB663xs4^g1o<;tH}0AvD?mE_TJlS}99GHWGFSoi-A$Xc@>%s)=2*6r> zg>2#Vc~LkyC@wDUy_)_^%xl{M*~0fAgXioSa)(8@LVN!pAH70EXMS_k(I1dK)Ywc5|4wGP0u70*ZZ#lv=n zXJ56tj5cT{%kj6?2`GT~f;kSMM8cLbEq*?8E_3Un|-_q7uW(ZKMJIt-V2+<&JV*E9Z4W%N@` zOb^k+p-LMW04FbE)vR$yOy(wh(V++mVPkZEj_|{jM#Gw%Mnxql!+^>u#jkuGfa!~G zADRrpnprv`bOjngg5ymkwEr)*sZ+8njZbYhjDkicsVbjd!MY!1cTs?sTjS!+42K*$ zlUyhLMABED-#8TzeQ&bEvZN#Jo{{%^1s*g`$q949u3)mJ@O`K;en+}2fd~7cc$?!3(Amn>s4Rz%Kq?%yx0~2L_t#F5qy$=W#N5!(=4)qHXIBN#_J`Y-IDOz z_*)Gvz>|;s1_ymSq@W7eK6BT*I3%PHH@vQPw(d?qL>2HTd>8T^COOOQ+=CZR;#7d# zpnz8^z7X*m){&+7xFXU09KRclU$T1cLWyX-+#N&M*Jqn7@cBpQL1)BgWaeiLukdEK zUe{oTvcy&AUJ(%rX9|>vuSd9)gw#O;5|7y3DKpv=9@-;SgDmvJetH}}sK{zMIJXkA zwv7gJKSKC-*zN-8`7Sl^3jH$= zLEA9q(Q>Q9hJ}f&d{*d5K-|%UH5|4_EecU#0k~$z-vM}dcptN~Sy@-}-molUBVBlV{3>GB699f&nuLA3|{sQ5x8=j#Y? zxMHiCLli&okZ;oV@*IEy0LTzRnDh*_ms6yvl}{Ku#SdFYy^2YSYqvu0$jKEn1I-o; zU~xQ2KnL-60oeNj?gjAub88@^|KM=EE*TbBRFKx;(M5hM6x@OZ{wY|S|4nZ>ZGkEO z_%Sd(KK}25HR{N0V^=gSmplj3AhE)JLwoH9>(+d{WZ<;N;NS$(UTb_yYyCv;21ltL zGfw*}ojp0oeSzKMsMAZ`1?~W=?;XGXcTd*cK#eH3&AvgX9O9$$do%{17yOhvA%ux-Adv-9|Bpz=pBrubBR84~$XZdh9ue0;L?SeNB}WnwtU zDG6G4cw%2}vFJ@peFF>b#qa+1LTk2e$KTX?rO+T1*v;oa3}kE3JoFRXQdZb4VxW+iZ%V}RM!si*(uR@xNRjyK;Kbp^Ij zyI%gNh75+;MzB~ga>&+0oKb__Oky^d71CWl{*3)`Y4VD}sS9HsoB5Tcm8CK z*a2eK)ZrRzIN5sTHiIxQ&sNGElXP6~T1Ro}Gc8f3&RfE3?j?dnH~Sd=8XihWgY>N7 z!c;(!;y&jG^khA`KnK{FS9BZLT%d&Q|ET3mL+nyG3?IpV);pyGpuy#%ZV~t7>V|M0+#pS&N0_M1|1;kCw2T-5}atxm=8;inE*I`_vgwrV`p^i*$OB`=0RfV&xcr zbq~iEZyveL*YRWza-S^?5@U~MI^N1VbJlM=7@R`$s~=NDo`0&3yeyf|s^^h{)uDz-4g0`gl)U3@^2lWB-i8d{6^MKEaeuCAT zs2chbrh}N@M;{=wy1&f{gzhjw-Z|ef7X@9}R2nG)KhqDYLIK$mkSHGVi>-k&V4DRV z->(k~_mOCf;3X`~{u2R_^!7u)ak%9(_Jk7k!zBkmE{qUY#t|?bkUvwqRb%*lk#1Oj zZIEl@hYt@lkIXT6-UtpPy!-UhM}~PL@|rHXRO&CnHbslaEG}OE1=NQKezX(%U;IKc zV6PR25?;;{*F-$~L1vvblVTUe;%g5-yy~%*8zQGNvr zL?F-Nf%$R20qioO1EXQ6(o3Zr#Ezax)2c9%bSqWY99`I0-ko{mCH(Fe-so<` zpT+lTZ;mdIh?Rb*EKC#uwNY%vEJCUjo2-Q2j$F0|O}^E83qyCFzcZB&?P>-mpI1r}%I+?lZetP0$0*-NW{^DUDlj@1>jCM>DZWBt_A-^Oq&|=l!E-=C{6_z#j5y9gx zPUTBchELSA4lryDcbD78j-GV)+XrE!s}{$c=mW7_*(GsY2sST)+{_mR|ZFte-i1774I&anYz)02S1`Z9)Je@AW8_V>c`k zNPj1+;of5U_jSY3yEmGj_Ifx*lf$`kN>o}mU0liWBex&qMJ6SY^Jg?3a9~QZavp(D zGS-D~PWkRlS>dX}L$GoT>&hi1MKbDqee3&uFzT?&a32nmA!GH(A>R7Ri11u#QIiwG z!aZM?!oar4$mQ>8^El-dJ6RO(e=?mYjyU;4E=~MkMkH-)lfJy zu^UdAwYAd8aGFGP8K1e=#)e70YG(*^X+}x=f?7@cN5kNt@j%3sc33)Z0m)-dP-2N> zPd*|LI8f6w**Qz6JoX~*0ZB74Zd%Uge`X|nEIiC*#yxF&`UvueL=`3_8-Q zR-jLZ0hE+7S4?Jy2aVG*?^rdc&>P*b0vlLQ{cZ>>s>GWV2!qor*Q*5WUxNQ=@4pza z7|KLfAO-(_SX`o8V2}vXw{b<{1|Z{vrA&&1v{t3y`ABKB?-sk77uhFqaFmjReg#-V zN09=}-D48U^M9~Ur@1dui?vk!=Hdw)3}=7<{rm#Vg;H4m6TV!SmF4)5OR@R)puqh{ zkHX8!t|S#G=m$=tzEl9fX0nCd&sUhER%l=gO#$@0HoN4 zPQX|G;Wh9hU!5L{u3t#hp;G0yVB(VlD8f*Y`)8=PLdGq2YX4yoS{_m4y+1zwC-9=F z*_|kb{ttSmaZU~b=Dee3-UVvH@^KeTv?kzl?*-F2> zuz)5GZ9K<;wWL3-#E%Dwrkpu}^+kDxCe7`WOyc{lNrP@rw9!@8yKNvGDG1}erJ^zv z8MR&~L7Nh5`~p!g10C#fZb(aB5)bFVl!w5fath_ceNOW4dZWe|@al=+;9yRGnNL=b zd^GtjA|Z$A3tjNN!l4gNgT&PD<2Px~%$lzN1zDWRuMo4JLSApK+1x1p^qCeQa_fgl zxEX}`a!r3$;BjH4VPy?}t|v84Pt3<%?wpPFVXF*~v&KJcs$vD)Wdv0`K^q$p>oO7@ zI@+IOBgT@sQ*YiD410u5RbCIf|ElRWYo5*|mGCuZ1toqDw$Zi>jSFsGQl?mA61m%p z1luNKW$1z+Xugj84^DRS+4QAl`(bA0sx|!BD{YUTe!j|A#D#x0S(yTu%GQ%WY>HsLW53_PKs;ZR-N zoNi;|jyT&fw#P}0aIqxtN z@IXs%vlu+Lx~)oYRQfFQ(vW3$+j4M`?|Ou`dSYYc(K!@>8u5AZ#;hH#d1FUJy&g#Z zF0s1Zc8Gc%L?Lhlg-MqhDU%n^)$vF^LG&$3pyKXL3miy*^LFH_X|7Kv$Xn*{_n;Zt zNI*!zs_8w9j$&@>~nU63r(z;=D{{~{^m1AX($5~K3 z#nt*~XsWo_pG6-Mv?(RcblNI%kr5mxfx@{Tu+I4x`AJ5LgT>a3i^3VzedRw?02RN= zs)UK2f-1MBcr{GvrkEl-@WPbx+ALQ+ZJz`HG`AWm1Z_+4!OOzk@Dnaud?&sH=#3guy-)wBUdH#BiT zS$rZ+e;=?NWeJ4?NrZD{-;lXrM_H}}uVuPaXrqHkCC{Bu`OLS~Z|3>54L%RPcT9Ni zILOHiCocr&6FYH#%rPO4o7zoTp9UOW`3q0N2xT=j7!aVCUsUw`?OTpJ9pLNT@$;PT z=C(BuHJi9Lz3|=C^J$wKqfA%*PLg7K(#d5mW-BbOPVnbTwq1+~1}#&_>#!y08@gFRCuE0?Ui{B|OL zqtaGs_&)jjcdfVh)A5fV1ayL*?mIZVq!4 zT=P|zP7T%J7O0Moup0kXKeX$ za9~uVU;w8A)wxT_%>Y@-a?L0ro<~zIMu0sM9ezldMM?p@h>3~lU32wy%-|}rs_#G# zjaIbjO$M?G2o&$&=gXXCpA{J9tB9!S^q43L|G0JIkyM?WXNYQ6^Jy%T{L23P@0i#&Y6b!l4q7d7bGxqcAnM3!otklJgd~IQRJ8RqvgB`jim&Qt~+A-o=Jm^YAXYr zN$7iEc@Kr8J^mKGO4a`{+lE%T(r2{?4o^NU`_k857;&ds;KBWu!FAeicm9V z*NP&d+6~w7J>e1?Yyt z?f>+;+|js91)s@crv9HB4v*6oMn*?l`}^5@=rwNX;?tv*_gS7k_{ZB3{9M}69rE>A zr}*aX-E7j^H3ObKfKxDSg3ln?GU~F)Og(EQ?R?@mZuT4iYY+~w55XDz9~ci0U6*c@ zY+u!#3~;z-vL=3^Edm5eN(QYJsysAs3n;4Lw7d%w!8JJmu*?KK;HR64Mgn;<#7MvM zg38LLVRw`YXlcnOaCGkMS=h#j;1IgAsR7*6f;;H4m{```&rsJDK{zv1o%Z0rjxH2PUUz&)gQ#2`#U@+4e`_ucjERD{cSKl1Us&i#YnxKBNK=LimSKRb*uZqN zx71_3iwj}tll|^;Xb_t|ZZLH`4v>n(JSW0SB&_H>SsRsZVl}IMdO?6#Y*kOKp`l@9 zuR=TB$)3tb5TnB6^akFv`jV!RWn97^XCuPSLtNx30p09`g}Y+Z+*Ixc6{J#d;2NB@Q#_KK`J)6Qs1FK zR`#8Z>H7NuKcfox^tIxwdkde@#-c{3zedyvC7iQtMv&~1VV8%wT7yR})Ik|PM9L03;edwjn;_W1g+`sr$JroCUb3d8 zsjW+(j{O#iJsD4ZImaM)?dbk05q1e_85zB;2H=j05!+V`CHv-1maU^h-xksXHY+2i zU9J4@uiI(pu(#HpZ5~-wdBaa9c|{>MNdtN1>Qw_n!w?vwU9z-$JhYaGv;3HT?=~>C z*>-jD=Q^DySiV6iq)qd|^kJystHf+BUJ_%I-~PGn$##h@c(1c>3Ja)nAWEQrv3Dg2 z_F|gFJy)8k6U^$PPK)2~_X4FTz*ZYK*}EUI0zDgM$upf#0?6&dTP^-}eh?O9WSu~7 zylk$Ki-tY_5Sk3n|2*1odbH9B z>J#v0H zjp_w!9bGe0>)SDgzA_z17B|2WX|popH-~}qd%T##Wb|oNmPiCi>R@a-cCy&ZUr$+V zjm)Bo&~hvu+a?@)BYcb2K>?8BQxF{xz&7=JLPLlc`Rxlw#J8R&Z^=fz9V=s~M%eo%cp`9%mk|Vr#s_2Dn+1*{6frbjun{8X{l7Uzp^fG}z z)?f+wNC#=nFA2zCX(kmOBd$FldVA!rA&ohjxb(G-G4B7+`E>Ia*7(G67W-i=wHz_! z;XcFtpu%HI{M2f^vpmH90S&s~_tOLJ9g)xy#2-84AN3Gjy;bs$1#BUq*fQ1@a#I{v zgsMU2pcikDYktV_QHOz$f;vOE5q=)^{!F?`od~~}2B4#B+rw=MldToP?HLva^EsaF zEr%m0s25?r{@}M;PUi&Jz#Y}n*EEmSA7@uPNzWg6suYdZcH;xZKV^<|P#oq2{v501 z@iz_AnioKwp4kA?!>5hD_<`6}(_06_;7K54v(edA62=TW-=4myuk!hP@)m|S`(aTK z=?UA%$HA6kXtzcf)m8;Z-m5*H&XDz@n~YMrSc_fX$DRo`pCqB?O1!fvJoZ*%A|<6^ zB=ScEsoNc5iSvVsw_t27q|xd7qvR)fQeQhe-!3mZ%F4-254EsliQWz?D4+!CFY%h0 zjjEVfy?phCZ&o>qON{6-=+j|yAD;m$bW(e@2+UD0_hm*11^_iZ?m+@d{prDp3drVe z>aSKFwm?m%QZ$SmoDl!Dgcr-?Sf4e&@9_Zc?#R(7)cq0}%YuQds8?-iikBKHyyG4o z&rl-V)9za@ULD{(ArsIO+rte^CxYXZ*T!}0!(ha$>?LcRN^!#Ep!3&tSQg zJ$5KMsx$kr`cqRH`0(k#6_nvh*t%&pr=m}B3*z<$g zNd%J2>@g7PNa5&msWD#@{^}|Zy>TXFj0ZI5Vspt42HsoYd7k&Xb;yaN_&-@2s0g7i+xM!r@lSD-bm>w?6v} z&-K7w2g4l*y}oa+qvAmz?-Xm&R+g4dTO7WAjQ}dBR3AOc)$9PeT9R5O2Y*jedk>ui zlU6QlaRbRDGWlyS3?;nZ*)Y2}!3_jLcK6#ZoT6yv0vK+#F4|++UdVe`AN)Xn?UVSL zlp&$~HH@{+-AkCU2+P^E7D1fG@ey-K>Nd;xxFlJxm(D?QI2di&QUz^^mF*EptaXyN zdPsV%*#EC!O zFs85C_&oY!yy0!Hd>G=WzYG-i3S2Blzk0-aBqF#%fWPCwRb|L!k|i!NmrRm4jKzKl z5_xyS4*Imc4#IeT_v%ikcz5k8x5CTx0Oc3!+zOiSTwcnwik!S<*udt>jshHQZEwOz zr+tQU;IbtgA(02`(BUI~H?p;x1toYSyR@sk;s!PrXiz=yKkU$IXIQ@WV$+ON85z&J z$KZVtELANrK&hy)K+-GihhD8RDryozltDd04qLg^q&ZRLf7;!=2^p(Fn_%RLkk^D8 z?JUsf-X9dmDIYX_6uGwG`lbrsKL#!1+p%41ZrzFewnE?T0{ZuiD3kJlOk)emYo2lb zDdmw4;z2>1Z_g36*Gz%fwUVn52G}Xd_etOcCd$kIp5QzE=B#{ecTeJN=d?P?$(tIs z)9u2y``0w5GR`jUmu)^UUQ1&aqo^h|Mnu2c+Yze9t?r|KlPWV%QuT;aEBmub=9g{7 zJh1%HIRy0wEAK9Bp1#h*Ch$3HZU20ClME~cMy?YAo5r-ib~?5+vTs0b4=15V+tuLR z53BpOFWz|)r0~yTo>ZS!ABZjZ5i=g7DiVHB0vxN_sPcVnN$S?|A@q0T*I2Y8EJR-u z+65@?yRJxd*D%Zk<;RWn!j$Hx`WwlZQ~wd28P!)>v!^5eB|5_=qlQ#JO8_CE-#$N; zpn%;#@CkLN5Y}x_Pqj;zA`$%F=p6MtAIrdc#uMhd$jh{Mbez4QmhES*JB#(&@*4G7 z>?L{}Up_s(%f%sf;lEp?WL=!?&0aJ*P#&koq{a8^eXtf+pUJNVlH@!-wkX)z+9H5| zq5A8RHpbj#DZDine_+Sv-&!V}R_y|HZ%$`m1*&g|tO-q@m3sdoTZ-koX4J1koJD?P z5S2B6LDOZmvaWCF5rOgJn#lY71W7qLPHmvatKi2+ezWQQ`L#OSzf0TCRm8L_K4@qA zw`vA?4qF<5RERcW-T`ehJmEQk@w7FS8wS?7A@_7|yzsVGR0WVBAaAnhwv(giUFPjS z8QTAW(hZr0YKIifRei(RPV^yHUyD%ctS$KR(TC8TQ!soK;q9C4WQtdu9+_Pb8kcAx zMX8?NhtOI6DbD& zU!Y<>0MC-^E16BR=B@nlJmY>5M;GrgU2X3937Ebv-VsEU`^tFc|0$Q#Q4FLV<9o6-hpm9M~CXB>(=}Tn$QFUHE z@-fg)&JI?R4t20s#K!u957U|lQ~G0sE_ATrnJcgv@9-!$XQp6|K4 z?Q>~68&+xFJI}tJnDpn-`+o*22ZRA(XD`&n0{RnBH97DoPt;g{M6|@;V8Fs|GSENa zThky^xmSLXAQQvybOj>56-rsf9eE18Jp^&eKK0+o5(`u*|3Kt-n`hnV1U~Af49!o@z?A*I z)m7)Pu&^Z0iIor4#|{B2OMZPrYc)C*5#dTLVPhkDjD7utg_)TdE7J1ThivdmwtQiK zv^VdAtJG4tLU=@-^~z9I_Pv|x#TF6$^e3{(wS31Q4QVgoEhN5u8j9NuZ=}U zy9MvplX+@tRJVhS2NyeKZh6!L(p=(ra1UIGwRrynm!6b1xH_DAy1*sNLFY^}74&EW z8$l#KAn*I}hkc5H`^1hH;Uf$e{x^jD= zsr-;|>!8}}LC=@Wb0qb%mrw$@jxU+zUXhqI%4$10NT%|*$vsCa9J>DLnj*Uzsi~No zpBkT-U}I-j)itLa6amT%cc%64QfVU#vf>@D8Rz`PJoCb-sJ>hh{T!~hwC}Ks^*Y&w z%fP!>fExlzJ_hk9<9rN-`v7Tpv6eZX9F(Egay-RO$j#t@t^3z8f`nJg(C&cV z&w3xXoP$98bVT+MN=H}C&cXuzxjc8F0Lqu9vmc(^+y@D*LswlMzphsnu>#i z2$0l3E15Jj-r;{{!;D^7_*dWiUETXexpyr9m9LLxg#OSoUo0NdA!w%i{=v3-ASgXr z6l9YqBO-X0$OEb6y+e`oP`C=Y!8-HY-Aub)0Nr+OU(L*BigtecBC z>VHM#4t66Z5`R(%< z6+-;@z`Tz=M-AX27hAvV+_LTLD_?jEG)JT-h6>qg;O_$}{ys9Z4;TK-O?{JnvWlc; zUJl=17r$Ktrcmeh(;XhR*Cf7=PF=O+sam)dfp?jy-=`zh*?fH=`ERUsnjX2j-) zPeMTR-F)YM@8M5pQ36sC%=h6z;v3Y0{QKmqJ!v;ri#Dbw799Ao1C4P0%tVE1{gHZ! zS4uQz*NfXW1HG>Rm`PbCJ3Bj0f96>M^r{>yc;fKz#l)V{^KLxN#V^EGd$#6qh+t~# zzUWJNwCAg8N1(v;H^Td`4dYLBY1e!gU@LK2h=vOQz~S#0eCNC!O7+PTDQ5nd=J+k! z%?=BX_g0jtihlj}Y=Yi+8q8tj$!UVi7y#tX%@Nm_y}j|B^B7@FW z1f!dO69Zv_@$G~Jo(r&Z{{1`ZKhuZ;9I%CcCUfhWYyD<}cx0j`2rF zWoMgVHTw=i@-bKsSQgQ&pP7qP(ib7e1%6&7JQ?GZ{?D$PO|TUs`=h8Tb(Dc8Cl2q^iJa8Rl&(q!;MaCMu)z74d42S!wiBwyq_80IsX*6l;`lk>fD zvKylPOs=KO2rSF$acbOIU%lu?QS_sGhv8)NP&d6u!#UwM*8ASxZ2G z>;}lklzVxE>UFPN>kz14@sDEWMrQIPC$2Zov{LZ-cv1oIkq}j2U)jng=CW`6>@*%k zNBkW7jp*s=aj!MvWnH>zH08O^Du3h|Y}a|_#ps?AJSeiQu_ZrZU@wFKK75x4MUf%V z?>bhy(Gco_3uuGV(%xt8@ZIcn6Ce1b+qSOc|2`l?gwzqz#7R!HewIH;*k7NxREIO` zOKgSrT)!3|Izxc^D-uh5DyO{y9KccSk$R2QH58No0T1)hDB%{Fs0Y#&V;>WnChFC! zq4zEUr=H!%>AqiM0m5Q0dP!$rRMyPrBOmTW$NE(1Wb4K7gpXHT^W0v9L$z1~0;SE^ zIMfgU=O1%ru8mc{mGhYIOGF3#c7BC9b@j16FjDE1cz!)LmX#eA7qw?qK$s-s+EXQ5 z^X|0{z~A8`WUj&f682VD7xpK$4hxFy;p*`6Oe`|wtYQ)7_Z3^It6x$Sshf?dFvb*^ z@Ir{tv)UQ;WMFG$I*r!fpQ7gzOkq(bLJfEne&*=LszSK{n%KMG8#n_kj}Hwr(g2&) zg|IQ(_-wb}Kp2w+2jFk4!%8kZ^JgD&A%UjD;cDN7iQhGx{-Ibg6qY+H1*P6Pag7`V zuM(!kgD3ezshRTOD@*pU=au;3C19(UU+xh-v+L+r^nrk^{zA|+)GJ|zA%;`m% z=raKBub?#Ma}{cgj9)247jduuJjK<2h4q9V-Hi5jEZ9-GeXt%msip>>r{_#S!X@_q z;f(+Ascp%*kYHd!vsR^bThfWV?R7ZUQ5E zN!wj3doR(00K1CSw6?w!ihb0}DDuFqPt+p-(8L}*h+rRBP?aO${!vi19>4NZ`Klwb zzh7&5`aV@|8Gk@v;a1BQR@qv?^+Vo`kyP;CaRG;r$toz=c0`>rUOsCBhnM|<0Rs%| z-+5^1M+ux<6Y?@uBwl@at!l4PZn1i#`YTTVN03pkDx-=*=5Sc(v+ff`dl@NncFoOX z`9jh-3A99+Ey%Tw$%a+$!3zZbeGbq;&B0&+HP-vL418t?NZ(aC?$&(}p7XEW$a`Yx z;51d*Lb|LsBHh{wu%}_bX;XFRaz}^NJ9tqu^71NP=5uGTZ&L&mWphbS=I)W?)bAu4 zeqx;p!DbE1)i}KMR(cJSkPdu!`gwiMN@P`+Q;2_fWaHV)s#vg$Y4taq_S_I%4Xm4r zTTt;-;9>S$dhWW!q7NR+2bl02Lk+JF?d|}7Ag1R1u=G4v75UPH!uEZvPxXEhaa1uZ zsEOL6v0^NOeOiBgNU!NVRuHz5>H)mhG5=U zDr~t)T`}zsJFWtR-I#&^yzM006^9=>@{WUoA98b>+uA@Htz7mdQb6egZAL4F;x$f$ zpPwH9z`NOgiv*0CtkaMfLyY08*I9Pevg5xi{!EOoS>ov-Z|m=#f@zv1 z17qun&Cq{n!wa+TNV2R#$Rp2vDuDRRSBQLgq?OZ)gT?f-y}oGEDQi1iG6}#ux}l99 zbF~A%ZWZUpNG5q$1*49_UZrt>VF16N>D&_mAsbp|^iyl3<+Z2Qy5tODnWDqGtn5Zd6@k>>G~r@S8$>xq_20_CIoVS`03*2L=d~c<1D*j=Gy^D z;oFYV^G!R<0C&J?*ru&G85TUodc1F#-$91N% z$pn^Qy2ba|2M=G4lRj}zTR>L1Iw){sj#bKSXHVO>K^dyMc6YY{N=r}c=y8~lM9^myuXQtZs7eD z|C=v<9qBm{KYVmz$&H8L^f~qDs3Gu-#(d$0x7XdWa-PSi-gD+r%%fSij%vGwMz5N) z-Td@TpOScj;~Z!XD^$Zp8;|W7#G7b+7t(yD#_A7jWh8%x5Y8#4l0*Kl9z8WQYb}W> z&d4x)zsQxzn#bt;wUcX{nbq$D9lkTF)N`$!w~P#o#Tg&VpI{QYSqKG2?-8y~Mfi|k zkDYpAcCv!PV9XMXcV9j<}k$S2Q>0pPfdpgICI8iMYcOh??|PS+BYs=n9gXc_a~N%Vp8gg?hq7&cFpCP4p9BTSL+Tp(G_@-qkznV``= zD3zqSu(xt^1dX~NmmokJu&1SXm*hc*Dv=RVFkPtHUw5r}b|F3Eg0PT6Vuol%O^w-c zao-RzR~~&8-lOp8bOIci8|<|{LtZGlw7v7>U{Z;^$GgpvvK2Gxpdx@!k_gKw@j;uB zo`8Jq9HCNt&7o)Em_67)(dr*C2w`?tm8bVVXt&Q0_chK{3c=8z12qAFK}GY{4dXCR zS8DtZn@9X8muKLu2Z`n? z5zM?FIgZ3TIvyOPE6F~cePNG!Ha`mrC*Q1{dd&PRmC=J(I3* z)`sz>5c!Jtm6D@-5E$M-*cUwl%W+@f3GJ>ysdFQ+5K_G!!>?VN9I$J*=|HzvNoM#B zgJtsf=eW9HbZGO1iqTXwBklAZ%Ex(o=&r<_kR@KX?i=2Y$eMG=kIkHg5N7LY^s7_K z$ABPq?U2_3c)>=N!XXY+ZvorC(<><|ZVu@2N^W#HetQ>s z3F++YJhieC$)b!0#;V=iu9Dwn8Ubbr&(st~g!|^4kv&Y@nA1HlC%aI!@@Byz!qOEh z1p|YhfT`*EzD1;}5=}sijcM_rE;?xxMS!sAwLh)X+QpX4*%2LVzjbAuMWH^Bu z)n-utvyzX3PlbvsMeLcH2iZ+9?ZI!=jDGOWl0)7vOW!+i@bx3y2&2Nk*NwpKKo3}+ zv7twq>I`y`<(g8tbP#KvY2)$f03MriHIl_tr{X;EDmUYE&TEx>0+MT~Q0t~d!}V>m zw}cd}t`B0@><5KYJpDb>Ro7xg1Air zG-H58LfU`MXr{C&ZN}qwoluZ>`h;{jKRzQcjKqXqqLhuQ#Pg~`PhQiJkKDsCBKA6) z!x5L@?z9cTDj!#vhl98`O^+~YKF*Ni%O@F8gxX`;22V_0^jSg8Y(3Z4I+Ox7x}%@x z6e81XE5tUHtVH9`h9XOBFyTX2DY95(>J_FVmGMhnUS>NS*L4yQ^J|KoKM5xfI@V53 zynpu5N~#r`8l*m^im+i$QIsrE!}0bW2)%LlOAV|9U%ZKziu!0wnxe4vGe8MMqqqk?QWJn*wUh`NSm?=l-W2lBX4fb6?k8wy26S z)XH%z;w32>p&f}8O>?pSryQ85sHmPwXoPYdKM8~%r9PIesR01DUY4?ce0aD$=Q&a5 z^_2fYru5$u$8~AD?BIyNc&!YjJ+N~3&6^DWpGr$Q@mK+0EUKd~qniSxd7f~>mT^ew zFdPCN992lfuM}f>7>O|Rwzc!he+|L?_{Q590N4|t%3BI4{|M$zkDHmM!?%uu|9%np zJeu3v=b&mINZggr0O-W2O8O+!5m<~Vi!|9}@3bd#K3TeUM(q`mNy?r<#*XVwDeD5- z9p;qE+(~YgJLMX95jH;M+(id8?Y;?|huXX_m1ONbR2#yy3ufwKd6OPb^WU?Ubf!82t(W-nR3Wnaa+ zCQ2~}F7;_?X%6O*?W$an;qMQezm)aXo9gXOfS-kU(iQtQXK$>J!1rBDVn^V=d%fIF zNk#^6qCf?Q?2_v3_gR(7wDh zojbwh65iAbMC!}nP1)fmV0sQeJb>a}@cm}+xQ-dc?psIV+|*bp4{pttzTiu;aPz3c zN`Wk+dGy!P?zlay09Wr4*x2NV^BM&t_;Nv`nYS1h8<*uBp^)B!M=0%hdaqDuhCRc_ zNjrp{NCCif$pkd;k2BdxGkxEGSP{jp*|R-{M*KO@!3{g~4%E>2$!&nEo=?zR)R0T^ zolm112am3&xHxvHQbOHCK5NEu8RXL}h z@Q?302CAZj2B|CW$)C|sZadG`v&}IAkB5@7$Qm&v# zH#-f+BPzg-A<;5&1xl3X$aJi4XfQVURY9*}o)9?R5qG+YycV}XH8i>ES( z1(!|TG1}CFQ(j3=F3^UA{+V3!u!9cv_un1l2$x}Lot^j7l0o==E3%AF2=cCu(JOhs z#`=S4=zeF)Afu5dzp^$6oz=NWun!Hb{@bvntscO*4XTRH_u3LmAUW7j^%y$Ib;F>MIGZaE7fI{TDY7KJ|hY8qVb%L~b z!8&m^Y9pP370q68nd80L(SSR##=2Mt&Y;8od|HcgZJq8#_U&6A45$Pjli}9rt1_g+ z+%CIiclngrY4*niae=QCuB1h2O=PN*%qdonyUn8=G3A<=AG);98Yi#N<+bf7rs-V# z+lTfEras`Q7fc-+ASr=(^e6Yl!!HCqhAIo%=3%*@hJBDz?Mh1b2i(R&kkF@jkXSc_ z{k5ZL@~e^>O4o2bez=J4aBRkR{%$L@02b{b(0s8oW|&;Pf_M30d%##>4uNS*@S9G& zX`;-VWo+CaJcDA4w$Kd?>468{P^9pTwhOpge&s4Ob{ZAxKk8;JKnQrdKnY(0TMEN1{cmcquCWLM^*wj7jn-o4}wu3kS z0ao$ny*<7|CevI2kn55yHc%|adm5BatJ;!+4>!Lys;AfI^1LsGGQj`HwR2vS581u2SvAVoTeQba&R1eM+ukzNGp}Wv$)dw>n_Kp~TfwrEw~8y^bxReX-(ucF_sOcMc7d$BdZT45pRPr2ck5DQWEm(jJ&2`+K6b8n(^_rx&w}UepjVl!L}vbmb9RO3i?z=#iP%rMV__i8Dzf;|AcYS2 z0E{Hv=FCu}32x-GeN?&}FQV{bR8m-f$QVgotn`nEJmyVh$5gtj8uyYIV1>dnQbJ8#w`ul3`HH#c;)n0f}{_RZimDsQQZa-RocaZvvom*`^ zy>Uk@xKOo98PEsKI#yw;jx*&~duP)v8zdpRA9Ju`S#cSmudYKoQ4-JSn!mchY(j4SHR0yM*R&#s} zdN9d2ZiuW=EYjDO3%`-?%+~v?`bMn!)@PPynPo*q_ffs18=BU;*TnQBnouR=cV)CDGddN}A`;T_VHA6cMVbR7hr;s1R!xJ}1=sJX7ZD4Q)EMu&b9F z^TB~11pwRTd&b;f^A&@hI?;_F()=Llo) z?Nfh_tr|Fx_I(BEn z^wY1K<2lX~{g=02dr0|a)*12d$Ts=ySW1Q&ZWKr!D7?_8c&ING5xP9H(#ftAZX4Cr zah2{crC;~1;lcO3=3O#5&afTT=C^))wg{SKCzOmu1*L}F|EghR_iib5=$-^8~odkx7bu)t|7H@nD!=HAu zITG+YU|UY$$vAL3j8=W2EYkNH|GhQV`NUKiUz!*M#U1e8hmPCiw)`}&bZ&ZfHZr#e z$yjBw-MlN@NzE(piH%h7+QVGBd!xCXz`w1YqxJ3I*B}tp3~uBAnn|w|5A&I zyB1qW`NZ56+ZaNc@kH_wwMjVaP}TF+epRU`^BKptC1st4&8Y-Yw%$=z^!m4HSA#aU}3e6KR%r<^GrIn6&~V{nbB) z-B*06*_zgv^vY}Q2dN8qmoqVsjcF9{Td3G0OhZX)= z_Ox1=z9z@cB8oVc+>PCcn=GVx*qKi!HK|{xCPI$oYTVSyASQ#*ZAI6U8ucrrC#N2i zuknQhZ`FNtSd{4-P!+( z{A3;gh=Yx^gvcQ$8RWwRjY7hmu_i~=$$+kK1BJY97D>AQa4%WiMSX;X5<#L9)AqV1#o!G4Xp>4t;WoD hT$0dmkwF5Y9-?@{*$>XIu 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 WwfDI-kwPjL&{EU6oqx;R=l=sC=)d9s From 166176f3ec377f57e8670c13ec081fa3177d8ec1 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 31 Dec 2020 19:01:04 +0000 Subject: [PATCH 057/192] synthetic anthromorph species --- .../carbon/human/species_types/anthromorph.dm | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species_types/anthromorph.dm b/code/modules/mob/living/carbon/human/species_types/anthromorph.dm index 95aec26d9f..d718db818c 100644 --- a/code/modules/mob/living/carbon/human/species_types/anthromorph.dm +++ b/code/modules/mob/living/carbon/human/species_types/anthromorph.dm @@ -18,3 +18,33 @@ species_category = SPECIES_CATEGORY_FURRY allowed_limb_ids = list("mammal","aquatic","avian") + +/datum/species/mammal/synthetic + name = "Synthetic Anthromorph" + id = SPECIES_MAMMAL_SYNTHETIC + + species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,ROBOTIC_LIMBS,HAS_FLESH,HAS_BONE,WINGCOLOR,HORNCOLOR) + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM) + inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID|MOB_BEAST + + meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc + gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) + //Just robo looking parts. + mutant_heart = /obj/item/organ/heart/ipc + mutantlungs = /obj/item/organ/lungs/ipc + mutantliver = /obj/item/organ/liver/ipc + mutantstomach = /obj/item/organ/stomach/ipc + mutanteyes = /obj/item/organ/eyes/ipc + mutantears = /obj/item/organ/ears/ipc + mutanttongue = /obj/item/organ/tongue/robot/ipc + mutant_brain = /obj/item/organ/brain/ipc + + //special cybernetic organ for getting power from apcs + mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) + + + attack_verb = "claw" + attack_sound = 'sound/weapons/slash.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + + allowed_limb_ids = list("mammal","aquatic","avian", "human") From 3cde6799f733af34319cde9981fb2a692ff75e87 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 31 Dec 2020 19:02:03 +0000 Subject: [PATCH 058/192] define --- code/__DEFINES/species.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/__DEFINES/species.dm b/code/__DEFINES/species.dm index efd715b85a..74ca459fa1 100644 --- a/code/__DEFINES/species.dm +++ b/code/__DEFINES/species.dm @@ -5,6 +5,7 @@ #define SPECIES_ANDROID "android" #define SPECIES_ANGEL "angel" #define SPECIES_MAMMAL "mammal" + #define SPECIES_MAMMAL_SYNTHETIC "mammal_synthetic" #define SPECIES_ARACHNID "arachnid" #define SPECIES_INSECT "insect" #define SPECIES_DULLAHAN "dullahan" From 251bd3e06b1b223d30944dd9ad5b7133e23598d0 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 31 Dec 2020 12:33:05 -0800 Subject: [PATCH 059/192] logging --- code/modules/food_and_drinks/drinks/drinks.dm | 6 +++--- code/modules/food_and_drinks/food/condiment.dm | 8 ++++---- code/modules/food_and_drinks/food/snacks.dm | 4 ++-- code/modules/food_and_drinks/food/snacks_pie.dm | 2 +- code/modules/hydroponics/hydroponics.dm | 6 +++--- .../chemistry/machinery/chem_dispenser.dm | 16 ++++++++++++++-- .../modules/reagents/reagent_containers/glass.dm | 2 +- .../reagents/reagent_containers/hypospray.dm | 4 ++-- .../reagents/reagent_containers/medspray.dm | 2 +- code/modules/reagents/reagent_containers/pill.dm | 5 +++-- code/modules/reagents/reagent_containers/rags.dm | 4 ++-- .../modules/reagents/reagent_containers/spray.dm | 4 ++++ .../reagents/reagent_containers/syringes.dm | 4 ++-- code/modules/reagents/reagent_dispenser.dm | 2 +- code/modules/surgery/dental_implant.dm | 2 +- 15 files changed, 44 insertions(+), 27 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 140923c1ef..3f51da22b3 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -48,7 +48,7 @@ var/fraction = min(gulp_size/reagents.total_volume, 1) checkLiked(fraction, M) reagents.reaction(M, INGEST, fraction) - reagents.trans_to(M, gulp_size) + reagents.trans_to(M, gulp_size, log = TRUE) playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) return 1 @@ -71,7 +71,7 @@ return var/refill = reagents.get_master_reagent_id() - var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) + var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You transfer [trans] units of the solution to [target].") if(iscyborg(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell @@ -92,7 +92,7 @@ to_chat(user, "[src] is full.") return - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You fill [src] with [trans] units of the contents of [target].") /obj/item/reagent_containers/food/drinks/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 95e5c9fb56..dca12aa4f8 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -55,7 +55,7 @@ var/fraction = min(10/reagents.total_volume, 1) reagents.reaction(M, INGEST, fraction) - reagents.trans_to(M, 10) + reagents.trans_to(M, 10, log = TRUE) playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) return 1 @@ -73,7 +73,7 @@ to_chat(user, "[src] is full!") return - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You fill [src] with [trans] units of the contents of [target].") //Something like a glass or a food item. Player probably wants to transfer TO it. @@ -84,7 +84,7 @@ if(target.reagents.total_volume >= target.reagents.maximum_volume) to_chat(user, "you can't add anymore to [target]!") return - var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) + var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You transfer [trans] units of the condiment to [target].") /obj/item/reagent_containers/food/condiment/on_reagent_change(changetype) @@ -270,7 +270,7 @@ return else to_chat(user, "You tear open [src] above [target] and the condiments drip onto it.") - src.reagents.trans_to(target, amount_per_transfer_from_this) + src.reagents.trans_to(target, amount_per_transfer_from_this, log = TRUE) qdel(src) /obj/item/reagent_containers/food/condiment/pack/on_reagent_change(changetype) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 4d5f4e2dd0..cb1ed628c4 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -160,7 +160,7 @@ All foods are distributed among various categories. Use common sense. SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user) var/fraction = min(bitesize / reagents.total_volume, 1) reagents.reaction(M, INGEST, fraction) - reagents.trans_to(M, bitesize) + reagents.trans_to(M, bitesize, log = TRUE) bitecount++ On_Consume(M) checkLiked(fraction, M) @@ -359,7 +359,7 @@ All foods are distributed among various categories. Use common sense. if(!M.is_drainable()) to_chat(user, "[M] is unable to be dunked in!") return - if(M.reagents.trans_to(src, dunk_amount)) //if reagents were transfered, show the message + if(M.reagents.trans_to(src, dunk_amount, log = TRUE)) //if reagents were transfered, show the message to_chat(user, "You dunk the [M].") return if(!M.reagents.total_volume) diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 24522503c1..a4287d3d19 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -54,7 +54,7 @@ H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!") playsound(H, "desceration", 50, TRUE) if(!H.is_mouth_covered()) - reagents.trans_to(H,15) //Cream pie combat + reagents.trans_to(H, 15, log = TRUE) //Cream pie combat if(!H.creamed) // one layer at a time H.add_overlay(creamoverlay) H.creamed = TRUE diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a1a177c028..8467d00124 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -130,7 +130,7 @@ reagents.remove_any(min(0.5, nutridrain)) else reagents.remove_any(nutridrain) - + // Lack of nutrients hurts non-weeds if(reagents.total_volume <= 0 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) adjustHealth(-rand(1,3)) @@ -501,7 +501,7 @@ if(visi_msg) visible_message("[visi_msg].") - + for(var/obj/machinery/hydroponics/H in trays) //cause I don't want to feel like im juggling 15 tamagotchis and I can get to my real work of ripping flooring apart in hopes of validating my life choices of becoming a space-gardener //This was originally in apply_chemicals, but due to apply_chemicals only holding nutrients, we handle it here now. @@ -675,7 +675,7 @@ idle_power_usage = 0 self_sustaining = FALSE update_icon() - + /// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds./// /obj/machinery/hydroponics/proc/adjustWater(adjustamt) waterlevel = clamp(waterlevel + adjustamt, 0, maxwater) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index db16a10d1d..7e6635af15 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -259,6 +259,7 @@ say("Not enough energy to complete operation!") return R.add_reagent(reagent, actual) + log_reagent("DISPENSER: ([COORD(src)]) ([REF(src)]) [key_name(usr)] dispensed [actual] of [reagent] to [beaker] ([REF(beaker)]).") work_animation() else @@ -281,11 +282,14 @@ var/list/chemicals_to_dispense = saved_recipes[params["recipe"]] if(!LAZYLEN(chemicals_to_dispense)) return + var/list/logstring = list() + var/earlyabort = TRUE for(var/key in chemicals_to_dispense) var/reagent = GLOB.name2reagent[translate_legacy_chem_id(key)] var/dispense_amount = chemicals_to_dispense[key] + logstring += "[reagent] = [dispense_amount]" if(!dispensable_reagents.Find(reagent)) - return + break if(!recording_recipe) if(!beaker) return @@ -295,11 +299,15 @@ if(actual) if(!cell.use(actual / powerefficiency)) say("Not enough energy to complete operation!") - return + earlyabort = TRUE + break R.add_reagent(reagent, actual) work_animation() else recording_recipe[key] += dispense_amount + logstring = logstring.Join(", ") + if(!recording_recipe) + log_reagent("DISPENSER: [key_name(usr)] dispensed recipe [params["recipe"]] with chemicals [logstring] to [beaker] ([REF(beaker)])[earlyabort? " (aborted early)":""]") . = TRUE if("clear_recipes") if(!is_operational()) @@ -322,15 +330,19 @@ if(saved_recipes[name] && alert("\"[name]\" already exists, do you want to overwrite it?",, "Yes", "No") == "No") return if(name && recording_recipe) + var/logstring = list() for(var/reagent in recording_recipe) var/reagent_id = GLOB.name2reagent[translate_legacy_chem_id(reagent)] + logstring += "[reagent_id] = [recording_recipe[reagent]]" if(!dispensable_reagents.Find(reagent_id)) visible_message("[src] buzzes.", "You hear a faint buzz.") to_chat(usr, "[src] cannot find [reagent]!") playsound(src, 'sound/machines/buzz-two.ogg', 50, TRUE) return saved_recipes[name] = recording_recipe + logstring = logstring.Join(", ") recording_recipe = null + log_reagent("DISPENSER: [key_name(usr)] recorded recipe [name] with chemicals [logstring]") . = TRUE if("cancel_recording") if(!is_operational()) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index ec26182813..6e1b753c32 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -455,7 +455,7 @@ grinded.on_grind() reagents.add_reagent_list(grinded.grind_results) if(grinded.reagents) //food and pills - grinded.reagents.trans_to(src, grinded.reagents.total_volume) + grinded.reagents.trans_to(src, grinded.reagents.total_volume, log = "mortar powdering") to_chat(user, "You break [grinded] into powder.") QDEL_NULL(grinded) return diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 5aeac1bc38..1f89af420e 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -41,7 +41,7 @@ if(M.reagents) var/trans = 0 if(!infinite) - trans = reagents.trans_to(M, amount_per_transfer_from_this) + trans = reagents.trans_to(M, amount_per_transfer_from_this, log = TRUE) else trans = reagents.copy_to(M, amount_per_transfer_from_this) @@ -427,7 +427,7 @@ var/fraction = min(vial.amount_per_transfer_from_this/vial.reagents.total_volume, 1) vial.reagents.reaction(L, method, fraction) - vial.reagents.trans_to(target, vial.amount_per_transfer_from_this) + vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, log = TRUE) var/long_sound = vial.amount_per_transfer_from_this >= 15 playsound(loc, long_sound ? 'sound/items/hypospray_long.ogg' : pick('sound/items/hypospray.ogg','sound/items/hypospray2.ogg'), 50, 1, -1) to_chat(user, "You [fp_verb] [vial.amount_per_transfer_from_this] units of the solution. The hypospray's cartridge now contains [vial.reagents.total_volume] units.") diff --git a/code/modules/reagents/reagent_containers/medspray.dm b/code/modules/reagents/reagent_containers/medspray.dm index 052e85a3d1..8d30f25db2 100644 --- a/code/modules/reagents/reagent_containers/medspray.dm +++ b/code/modules/reagents/reagent_containers/medspray.dm @@ -80,7 +80,7 @@ playsound(src, 'sound/effects/spray2.ogg', 50, 1, -6) var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) reagents.reaction(L, apply_type, fraction) - reagents.trans_to(L, amount_per_transfer_from_this) + reagents.trans_to(L, amount_per_transfer_from_this, log = TRUE) return /obj/item/reagent_containers/medspray/styptic diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 3c23794e5a..a5b4e5b8ab 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -56,7 +56,7 @@ log_combat(user, M, "fed", reagents.log_list()) if(reagents.total_volume) reagents.reaction(M, apply_type) - reagents.trans_to(M, reagents.total_volume) + reagents.trans_to(M, reagents.total_volume, log = TRUE) qdel(src) return TRUE @@ -76,7 +76,8 @@ user.visible_message("[user] slips something into [target]!", "You dissolve [src] in [target].", vision_distance = 2) - reagents.trans_to(target, reagents.total_volume) + log_combat(user, target, "spiked", src, reagents.log_list()) + reagents.trans_to(target, reagents.total_volume, log = TRUE) qdel(src) return STOP_ATTACK_PROC_CHAIN diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm index 469a8ef907..5d94e78809 100644 --- a/code/modules/reagents/reagent_containers/rags.dm +++ b/code/modules/reagents/reagent_containers/rags.dm @@ -39,7 +39,7 @@ C.visible_message("[user] is trying to smother \the [C] with \the [src]!", "[user] is trying to smother you with \the [src]!", "You hear some struggling and muffled cries of surprise.") if(do_after(user, 20, target = C)) reagents.reaction(C, INGEST) - reagents.trans_to(C, 5) + reagents.trans_to(C, 5, log = TRUE) C.visible_message("[user] has smothered \the [C] with \the [src]!", "[user] has smothered you with \the [src]!", "You hear some struggling and a heavy breath taken.") log_combat(user, C, "smothered", log_object) else @@ -107,7 +107,7 @@ reagents.clear_reagents() else msg += "'s liquids into \the [target]" - reagents.trans_to(target, reagents.total_volume) + reagents.trans_to(target, reagents.total_volume, log = TRUE) to_chat(user, "[msg].") return TRUE diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 926ed27854..af053b592a 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -81,6 +81,10 @@ else reagents.trans_to(D, amount_per_transfer_from_this, 1/range) D.color = mix_color_from_reagents(D.reagents.reagent_list) + var/turf/T = get_turf(src) + if(!T) + return + log_reagent("SPRAY: [key_name(usr)] fired [src] ([REF(src)]) [COORD(T)] at [A] ([REF(A)]) [COORD(A)] (chempuff: [D.reagents.log_string()])") var/wait_step = max(round(2+ spray_delay * INVERSE(range)), 2) last_spray = world.time INVOKE_ASYNC(src, .proc/do_spray, A, wait_step, D, range, puff_reagent_left) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index f42ae668c7..93a07b1a6e 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -113,7 +113,7 @@ to_chat(user, "You cannot directly remove reagents from [target]!") return - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares? + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, log = TRUE) // transfer from, transfer to - who cares? to_chat(user, "You fill [src] with [trans] units of the solution. It now contains [reagents.total_volume] units.") if (round(reagents.total_volume, 0.1) >= reagents.maximum_volume) @@ -158,7 +158,7 @@ L.log_message("injected themselves ([contained]) with [src.name]", LOG_ATTACK, color="orange") var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) reagents.reaction(L, INJECT, fraction) - reagents.trans_to(target, amount_per_transfer_from_this) + reagents.trans_to(target, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.") if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT) mode = SYRINGE_DRAW diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index ffa3f7478b..39ccdd23a2 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -182,7 +182,7 @@ if(W.reagents.has_reagent(/datum/reagent/fuel, W.max_fuel)) to_chat(user, "Your [W.name] is already full!") return - reagents.trans_to(W, W.max_fuel) + reagents.trans_to(W, W.max_fuel, log = TRUE) user.visible_message("[user] refills [user.p_their()] [W.name].", "You refill [W].") playsound(src, 'sound/effects/refill.ogg', 50, 1) W.update_icon() diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 9d304b0727..311c886c9d 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -36,6 +36,6 @@ log_combat(owner, null, "swallowed an implanted pill", target) if(target.reagents.total_volume) target.reagents.reaction(owner, INGEST) - target.reagents.trans_to(owner, target.reagents.total_volume) + target.reagents.trans_to(owner, target.reagents.total_volume, log = TRUE) qdel(target) return 1 From 8a471d6984c101a8848ef80fe592c667a6fc9c0c Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 31 Dec 2020 12:35:45 -0800 Subject: [PATCH 060/192] logs --- code/modules/reagents/chemistry/machinery/chem_dispenser.dm | 2 +- code/modules/reagents/reagent_containers/spray.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 7e6635af15..dda5689273 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -330,7 +330,7 @@ if(saved_recipes[name] && alert("\"[name]\" already exists, do you want to overwrite it?",, "Yes", "No") == "No") return if(name && recording_recipe) - var/logstring = list() + var/list/logstring = list() for(var/reagent in recording_recipe) var/reagent_id = GLOB.name2reagent[translate_legacy_chem_id(reagent)] logstring += "[reagent_id] = [recording_recipe[reagent]]" diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index af053b592a..eb3b80b693 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -84,7 +84,7 @@ var/turf/T = get_turf(src) if(!T) return - log_reagent("SPRAY: [key_name(usr)] fired [src] ([REF(src)]) [COORD(T)] at [A] ([REF(A)]) [COORD(A)] (chempuff: [D.reagents.log_string()])") + log_reagent("SPRAY: [key_name(usr)] fired [src] ([REF(src)]) [COORD(T)] at [A] ([REF(A)]) [COORD(A)] (chempuff: [D.reagents.log_list()])") var/wait_step = max(round(2+ spray_delay * INVERSE(range)), 2) last_spray = world.time INVOKE_ASYNC(src, .proc/do_spray, A, wait_step, D, range, puff_reagent_left) From 7d0c4030c9eb76040364c0cb9c9455098abdfc6d Mon Sep 17 00:00:00 2001 From: Chiirno Date: Thu, 31 Dec 2020 17:24:30 -0400 Subject: [PATCH 061/192] first commit, adding the paramed eva suit as an option for cargo. --- code/modules/cargo/packs/medical.dm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 6a4165f840..51b76a4df6 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -90,6 +90,18 @@ crate_name = "medical hardsuit" crate_type = /obj/structure/closet/crate/secure/medical +/datum/supply_pack/medical/paramedicevasuit + name = "Paramedic EVA Suit" + desc = "Has some greytide been floating amongst carp for a dozen minutes now? Chemistry vented in a meth experiment gone wrong? Be the blue saviour this station desperately needs and get your Paramedical EVA suit today! Requires medical access to open." + cost = 2250 + access = ACCESS_MEDICAL + contains = list(/obj/item/tank/internals/emergency_oxygen, + /obj/item/clothing/head/helmet/space/eva/paramedic, + /obj/item/clothing/suit/space/eva/paramedic, + /obj/item/clothing/mask/breath) + crate_name = "paramedic EVA suit" + crate_type = /obj/structure/closet/crate/secure/medical + /datum/supply_pack/medical/supplies name = "Medical Supplies Crate" desc = "Contains seven beakers, syringes, and bodybags. Three morphine bottles, four insulin pills. Two charcoal bottles, epinephrine bottles, antitoxin bottles, and large beakers. Finally, a single roll of medical gauze, as well as a bottle of stimulant pills for long, hard work days. German doctor not included." From d936b43e98f28a50da739e992b0bc758ed186906 Mon Sep 17 00:00:00 2001 From: Chiirno Date: Thu, 31 Dec 2020 17:27:25 -0400 Subject: [PATCH 062/192] adjusted the price to 1975. Above eva suit at 1500 and beow medical hardsuit at 2750 --- code/modules/cargo/packs/medical.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 51b76a4df6..9740adee32 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -93,7 +93,7 @@ /datum/supply_pack/medical/paramedicevasuit name = "Paramedic EVA Suit" desc = "Has some greytide been floating amongst carp for a dozen minutes now? Chemistry vented in a meth experiment gone wrong? Be the blue saviour this station desperately needs and get your Paramedical EVA suit today! Requires medical access to open." - cost = 2250 + cost = 1975 access = ACCESS_MEDICAL contains = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/clothing/head/helmet/space/eva/paramedic, From 6f5837d14fdeaf1fd972332fbe259ab99a1e19ed Mon Sep 17 00:00:00 2001 From: Chiirno Date: Thu, 31 Dec 2020 17:42:07 -0400 Subject: [PATCH 063/192] changed the description of the crate. --- code/modules/cargo/packs/medical.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 9740adee32..58cae36015 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -92,7 +92,7 @@ /datum/supply_pack/medical/paramedicevasuit name = "Paramedic EVA Suit" - desc = "Has some greytide been floating amongst carp for a dozen minutes now? Chemistry vented in a meth experiment gone wrong? Be the blue saviour this station desperately needs and get your Paramedical EVA suit today! Requires medical access to open." + desc = "Greytide pushing up daisies with the carp outside the station? Chemistry vented in a meth experiment gone wrong? Be the blue saviour this station desperately needs and get your Paramedical EVA suit today! Requires medical access to open." cost = 1975 access = ACCESS_MEDICAL contains = list(/obj/item/tank/internals/emergency_oxygen, From 218cac1a491aa6bb3462535906e129cd1223c785 Mon Sep 17 00:00:00 2001 From: Chiirno Date: Thu, 31 Dec 2020 22:19:51 -0400 Subject: [PATCH 064/192] OK, chem mixer has been added to a tech node now. --- code/modules/research/techweb/nodes/biotech_nodes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/techweb/nodes/biotech_nodes.dm b/code/modules/research/techweb/nodes/biotech_nodes.dm index 977f8685d6..3c89f0bbab 100644 --- a/code/modules/research/techweb/nodes/biotech_nodes.dm +++ b/code/modules/research/techweb/nodes/biotech_nodes.dm @@ -5,7 +5,7 @@ display_name = "Biological Technology" description = "What makes us tick." //the MC, silly! prereq_ids = list("base") - design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner","chem_pack") + design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner","chem_pack", "portable_chem_mixer") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/adv_biotech From 9325daa7437e424e840ccc71f7c7f6b958b45864 Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Fri, 1 Jan 2021 03:35:54 +0000 Subject: [PATCH 065/192] Update powersink.dm --- code/game/objects/items/devices/powersink.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index c3127c246f..86d7766fd5 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -16,9 +16,9 @@ GLOBAL_LIST_EMPTY(power_sinks) throw_speed = 1 throw_range = 2 custom_materials = list(/datum/material/iron=750) - var/drain_rate = 1600000 // amount of power to drain per tick + var/drain_rate = 2000000 // amount of power to drain per tick. Currently 2MJ. var/power_drained = 0 // has drained this much power - var/max_power = 1e10 // maximum power that can be drained before exploding + var/max_power = 2000000000 // maximum power that can be drained before exploding. Currently 2GJ. About 17 minutes to explode at the max rate. var/mode = 0 // 0 = off, 1=clamped (off), 2=operating var/admins_warned = FALSE // stop spam, only warn the admins once that we are about to boom @@ -155,5 +155,5 @@ GLOBAL_LIST_EMPTY(power_sinks) if(power_drained >= max_power) STOP_PROCESSING(SSobj, src) - explosion(src.loc, 4,8,16,32) + explosion(src.loc, 3,7,14,28) qdel(src) From e63e0ac9bd40ffd50553b23f28934976dc9bf6ef Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Thu, 31 Dec 2020 22:03:09 -0600 Subject: [PATCH 066/192] something about wardrobes --- code/modules/clothing/under/jobs/civilian/civilian.dm | 2 +- code/modules/clothing/under/jobs/command.dm | 4 ++-- code/modules/clothing/under/jobs/medical.dm | 2 +- code/modules/clothing/under/jobs/rnd.dm | 2 +- code/modules/vending/wardrobes.dm | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm index 505aa91775..2eabb0ce35 100644 --- a/code/modules/clothing/under/jobs/civilian/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian/civilian.dm @@ -24,7 +24,7 @@ mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON /obj/item/clothing/under/rank/civilian/util - name = "generic utility uniform" + name = "utility uniform" desc = "A utility uniform worn by various crew." icon_state = "utilgen" item_state = "utilgen" diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 8a6c372272..cc07665063 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -3,11 +3,12 @@ name = "captain's jumpsuit" icon_state = "captain" item_state = "b_suit" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 15) sensor_mode = SENSOR_COORDS random_sensor = FALSE /obj/item/clothing/under/rank/captain/util - name = "Command Utiltiy Uniform" + name = "command utility uniform" desc = "A utility uniform for command personnel." icon_state = "utilcom" item_state = "utilcom" @@ -26,7 +27,6 @@ /obj/item/clothing/under/rank/captain/suit name = "captain's suit" desc = "A green suit and yellow necktie. Exemplifies authority." - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 15) icon_state = "green_suit" item_state = "dg_suit" can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index de285b0470..20fd34f4a0 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -131,7 +131,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5) /obj/item/clothing/under/rank/medical/doctor/util - name = "Medical Utility Uniform" + name = "medical utility uniform" desc = "Utility jumpsuit for medical personnel" icon_state = "utilmed" item_state = "utilmed" diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm index 7443cd9d39..d63e81a0a3 100644 --- a/code/modules/clothing/under/jobs/rnd.dm +++ b/code/modules/clothing/under/jobs/rnd.dm @@ -62,7 +62,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5) /obj/item/clothing/under/rank/rnd/scientist/util - name = "Science Utility Uniform" + name = "science utility uniform" desc = "A utility uniform for science personnel" icon_state = "utilsci" item_state = "utilsci" diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index e15e02f0d5..d10f06b257 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -544,7 +544,7 @@ /obj/item/clothing/glasses/sunglasses/gar/supergar = 1, /obj/item/clothing/gloves/color/captain = 1) refill_canister = /obj/item/vending_refill/wardrobe/cap_wardrobe - payment_department = ACCOUNT_CIV + payment_department = ACCOUNT_SEC default_price = PRICE_ALMOST_EXPENSIVE extra_price = PRICE_ABOVE_EXPENSIVE From fbb2cfbba1e8398d248f649bf71dc24c0daf20b2 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 31 Dec 2020 23:05:14 -0700 Subject: [PATCH 067/192] Update colormate.dm --- code/game/machinery/colormate.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index 38edcd6d8a..84f518664f 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -106,15 +106,15 @@ dat += " Date: Fri, 1 Jan 2021 07:22:10 +0100 Subject: [PATCH 068/192] boom --- .../research/designs/medical_designs.dm | 26 +++++++++++++++++++ .../research/techweb/nodes/medical_nodes.dm | 4 +-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 445ce39ce5..66ae54ae9c 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -726,6 +726,32 @@ category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +///////////////////// +/////Synth Organs//// +///////////////////// + +/datum/design/ipc_stomach + name = "IPC cell" + desc = "Effectively the robot equivalent of a stomach, handling power storage." + id = "ipc_stomach" + build_type = PROTOLATHE | MECHFAB + construction_time = 40 + materials = list(/datum/material/iron = 1000, /datum/material/glass = 300, /datum/material/silver = 500, /datum/material/gold = 400) + build_path = /obj/item/organ/stomach/ipc + category = list("Misc", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/cyberimp_power_cord + name = "IPC power cord" + desc = "A implant for Robots designed to siphon power from APCs to recharge their own cell." + id = "ci-power-cord" + build_type = PROTOLATHE | MECHFAB + construction_time = 75 + materials = list(/datum/material/iron = 4000, /datum/material/glass = 1500, /datum/material/silver = 1200, /datum/material/gold = 1600, /datum/material/plasma = 1000) + build_path = /obj/item/organ/cyberimp/arm/power_cord + category = list("Misc", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + ///////////////////// ///Surgery Designs/// ///////////////////// diff --git a/code/modules/research/techweb/nodes/medical_nodes.dm b/code/modules/research/techweb/nodes/medical_nodes.dm index 2c0240f1da..914a6174ab 100644 --- a/code/modules/research/techweb/nodes/medical_nodes.dm +++ b/code/modules/research/techweb/nodes/medical_nodes.dm @@ -80,7 +80,7 @@ display_name = "Upgraded Cybernetic Organs" description = "We have the technology to upgrade him." prereq_ids = list("cyber_organs") - design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u") + design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u", "ipc_stomach") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) /datum/techweb_node/cyber_implants @@ -88,7 +88,7 @@ display_name = "Cybernetic Implants" description = "Electronic implants that improve humans." prereq_ids = list("adv_biotech", "adv_datatheory") - design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-service") + design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-service", "ci-power-cord") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/adv_cyber_implants From 6b0435e7b5206a985d8fbd1633ab4c233675092b Mon Sep 17 00:00:00 2001 From: uomo91 Date: Fri, 1 Jan 2021 00:46:47 -0600 Subject: [PATCH 069/192] Port. --- code/__HELPERS/_logging.dm | 4 ---- code/modules/mob/mob_helpers.dm | 2 +- code/modules/surgery/bodyparts/_bodyparts.dm | 3 +-- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 583427cab7..76ca97cd3a 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -86,10 +86,6 @@ if (CONFIG_GET(flag/log_attack)) WRITE_LOG(GLOB.world_attack_log, "ATTACK: [text]") -/proc/log_wounded(text) - if (CONFIG_GET(flag/log_attack)) - WRITE_LOG(GLOB.world_attack_log, "WOUND: [text]") - /proc/log_manifest(ckey, datum/mind/mind,mob/body, latejoin = FALSE) if (CONFIG_GET(flag/log_manifest)) WRITE_LOG(GLOB.world_manifest_log, "[ckey] \\ [body.real_name] \\ [mind.assigned_role] \\ [mind.special_role ? mind.special_role : "NONE"] \\ [latejoin ? "LATEJOIN":"ROUNDSTART"]") diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 7a69026922..605f0a2d55 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -508,7 +508,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(LOG_EMOTE) colored_message = "(EMOTE) [colored_message]" - var/list/timestamped_message = list("\[[TIME_STAMP("hh:mm:ss", FALSE)]\] [key_name(src)] [loc_name(src)]" = colored_message) + var/list/timestamped_message = list("\[[TIME_STAMP("hh:mm:ss", FALSE)]\] [key_name(src)] [loc_name(src)] (Event #[LAZYLEN(logging[smessage_type])])" = colored_message) logging[smessage_type] += timestamped_message diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index cd0ac28daf..2ca7d07e73 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -394,11 +394,10 @@ var/datum/wound/new_wound if(replaced_wound) new_wound = replaced_wound.replace_wound(possible_wound) - log_wound(owner, new_wound, damage, wound_bonus, bare_wound_bonus, base_roll) // dismembering wounds are logged in the apply_wound() for loss wounds since they delete themselves immediately, these will be immediately returned else new_wound = new possible_wound new_wound.apply_wound(src) - log_wound(owner, new_wound, damage, wound_bonus, bare_wound_bonus, base_roll) + log_wound(owner, new_wound, damage, wound_bonus, bare_wound_bonus, base_roll) // dismembering wounds are logged in the apply_wound() for loss wounds since they delete themselves immediately, these will be immediately returned return new_wound // try forcing a specific wound, but only if there isn't already a wound of that severity or greater for that type on this bodypart From bbeed2b8f0ab04cdf2bf2709db9ad17a50193640 Mon Sep 17 00:00:00 2001 From: Chiirno Date: Fri, 1 Jan 2021 04:00:35 -0400 Subject: [PATCH 070/192] I've done it, I've edited TgUI! --- code/modules/reagents/chemistry/machinery/chem_master.dm | 8 ++++---- tgui/packages/tgui/interfaces/ChemMaster.js | 2 +- tgui/public/tgui.bundle.js | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 32ac7cecba..6162da576e 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -23,7 +23,7 @@ var/fermianalyze //Give more detail on fermireactions on analysis /obj/machinery/chem_master/Initialize() - create_reagents(100) + create_reagents(0) //Calculate the span tags and ids fo all the available pill icons var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/pills) @@ -257,9 +257,9 @@ var/amount = text2num(params["amount"]) if(amount == null) amount = text2num(input(usr, - "Max 10. Buffer content will be split evenly.", + "Max 20. Buffer content will be split evenly.", "How many to make?", 1)) - amount = clamp(round(amount), 0, 10) + amount = clamp(round(amount), 0, 20) if (amount <= 0) return FALSE // Get units per item @@ -273,7 +273,7 @@ else if (item_type == "bottle") vol_each_max = min(30, vol_each_max) else if (item_type == "condimentPack") - vol_each_max = min(10, vol_each_max) + vol_each_max = min(, vol_each_max) else if (item_type == "condimentBottle") vol_each_max = min(50, vol_each_max) else if (item_type == "hypoVial") diff --git a/tgui/packages/tgui/interfaces/ChemMaster.js b/tgui/packages/tgui/interfaces/ChemMaster.js index 9d16dc82e6..ddca187244 100644 --- a/tgui/packages/tgui/interfaces/ChemMaster.js +++ b/tgui/packages/tgui/interfaces/ChemMaster.js @@ -205,7 +205,7 @@ const PackagingControlsItem = props => { stepPixelSize={15} value={amount} minValue={1} - maxValue={10} + maxValue={20} onChange={onChangeAmount} />