From 06300b089439e81f8ff585345c21d93b410ba1f7 Mon Sep 17 00:00:00 2001 From: Crystalic <39885003+blackcrystall@users.noreply.github.com> Date: Mon, 6 May 2024 16:29:16 +0300 Subject: [PATCH] Runtimes Fun Around (#981) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * some runtimes * better * admin panel fix * some more fun around * microwave moment (byond moment) * упс * nuh uh --------- Co-authored-by: BlackCrystalic Co-authored-by: Марк --- code/_onclick/hud/hud.dm | 3 +++ code/datums/action.dm | 2 +- code/datums/traits/_quirk.dm | 2 +- code/game/objects/items.dm | 2 +- code/modules/admin/DB_ban/functions.dm | 2 +- code/modules/ambitions/ambition_objective.dm | 2 +- code/modules/awaymissions/corpse.dm | 1 + code/modules/clothing/under/accessories.dm | 3 ++- .../kitchen_machinery/microwave.dm | 4 ++++ code/modules/holiday/holidays.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 2 +- code/modules/surgery/bodyparts/_bodyparts.dm | 8 ++++---- config/entries/dbconfig.txt | 13 +------------ .../modules/jobs/job_types/synthetics/cyborg.dm | 7 ++++--- modular_bluemoon/shower_trait/shower_trait.dm | 3 ++- strings/ambitions/security.json | 3 +++ ...dnessTestForDM.csproj.AssemblyReference.cache | Bin 4012 -> 0 bytes 17 files changed, 31 insertions(+), 28 deletions(-) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index c71ce79b256b..242bacd1b709 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -626,6 +626,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list( palette.set_expanded(FALSE) /datum/action_group/palette/refresh_actions() + if(!owner) + return + var/atom/movable/screen/button_palette/palette = owner.toggle_palette var/atom/movable/screen/palette_scroll/scroll_down = owner.palette_down var/atom/movable/screen/palette_scroll/scroll_up = owner.palette_up diff --git a/code/datums/action.dm b/code/datums/action.dm index 2a9780492023..8cac2ce4a743 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -224,7 +224,7 @@ if(action == src) // This could be us, which is dumb continue var/atom/movable/screen/movable/action_button/button = action.viewers[owner.hud_used] - if(action.name == name && button.id) + if(action.name == name && button?.id) bitfield |= button.id bitfield = ~bitfield // Flip our possible ids, so we can check if we've found a unique one diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index d58c21aa42d4..b88074c10b02 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -27,7 +27,7 @@ /// A lazylist of items people can receive from mail who have this quirk enabled /// The base weight for the each quirk's mail goodies list to be selected is 5 /// then the item selected is determined by pick(selected_quirk.mail_goodies) - var/list/mail_goodies + var/list/mail_goodies = list() /datum/quirk/New(mob/living/quirk_mob, spawn_effects) if(!quirk_mob || (human_only && !ishuman(quirk_mob)) || quirk_mob.has_quirk(type)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 5aae478ab637..da89ffb045dc 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -537,7 +537,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb dat += "[src] is also capable of automatically blocking damage, if you are facing the right direction (usually towards your attacker)!" if(item_flags & ITEM_CAN_PARRY) dat += "[src] can be used to parry damage using active parry. Pressed your active parry keybind to initiate a timed parry sequence." - if(data.parry_automatic_enabled) + if(data?.parry_automatic_enabled) dat += "[src] is also capable of automatically parrying an incoming attack, if your mouse is over your attacker at the time if you being hit in a direct, melee attack." dat += "Examine [src] to get a full readout of its block/parry stats." to_chat(user, dat.Join("
")) diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index 9001b907dd9d..bc266bdf535e 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -442,7 +442,7 @@ for(var/j in list(ROLE_TRAITOR, ROLE_CHANGELING, ROLE_OPERATIVE, ROLE_REV, ROLE_CULTIST, ROLE_WIZARD, ROLE_HERETIC)) output += "" output += "" - output += "Reason:

" + output += "Reason:

" output += "" output += "" diff --git a/code/modules/ambitions/ambition_objective.dm b/code/modules/ambitions/ambition_objective.dm index b5f1d9e804cd..46aabd6748fa 100644 --- a/code/modules/ambitions/ambition_objective.dm +++ b/code/modules/ambitions/ambition_objective.dm @@ -142,7 +142,7 @@ var/list/players = list() for(var/i in GLOB.joined_player_list) // BLUEMOON EDIT - было for(var/mob/living/carbon/human/player in GLOB.player_list) var/mob/player = get_mob_by_ckey(i) // BLUEMOON ADD - if(!player || !player.mind || player.mind.assigned_role == player.mind.special_role || player.client.inactivity > 10 MINUTES || player.mind == owner) //BLUEMOON ADD рантаймы с нулями без !players + if(!player || !player.client || !player.mind || player.mind.assigned_role == player.mind.special_role || player.client.inactivity > 10 MINUTES || player.mind == owner) //BLUEMOON ADD рантаймы с нулями без !players или без !player.client continue players += player.real_name var/random_player = "Капитан" diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 3bff7e89a623..88a5694e6c02 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -128,6 +128,7 @@ if(ishuman(M) && load_character) var/mob/living/carbon/human/H = M var/mob/grab = get_mob_by_ckey(ckey) + grab.mind.transfer_to(H) H.load_client_appearance(grab.client) equip(M, load_character) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 1e3b0adddda7..ee95440a4919 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -52,7 +52,8 @@ if(detached_pockets && detached_pockets.parent == U) TakeComponent(detached_pockets) - U.armor = U.armor.detachArmor(armor) + if(U.armor && armor) + U.armor = U.armor.detachArmor(armor) //SANDSTORM EDIT current_uniform = null //SANDSTORM EDIT END diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 8718d4a67ba2..890824f62ce8 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -160,6 +160,10 @@ var/ingredient_count = 0 for (var/atom/movable/ingredient as anything in ingredients) + //BLUEMOON FIX + if(ingredient_count > 90)// don't fuck around with byond overlays for too long, or byond overlays fuck you around. + break + //BLUEMOON FIX var/image/ingredient_overlay = image(ingredient, src) var/icon/ingredient_icon = icon(ingredient.icon, ingredient.icon_state) diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index c9fc844f7479..80c2e763c365 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -13,7 +13,7 @@ var/obj/item/drone_hat //If this is defined, drones without a default hat will spawn with this one during the holiday; check drones_as_items.dm to see this used // Special things to be given during this! - var/list/mail_goodies + var/list/mail_goodies = list() // This proc gets run before the game starts when the holiday is activated. Do festive shit here. /datum/holiday/proc/celebrate() diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index bb8a07a9447d..d55f1da6620c 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -30,7 +30,7 @@ continue if(istype(bp, /obj/item/clothing)) var/obj/item/clothing/C = bp - if(C.body_parts_covered & def_zone.body_part) + if(C.body_parts_covered & def_zone.body_part && C.armor) protection += C.armor.getRating(d_type) protection += physiology.armor.getRating(d_type) return protection diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 05487a838d03..d73e23d1b0d8 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -413,7 +413,7 @@ for(var/i in clothing) var/obj/item/clothing/clothes_check = i // unlike normal armor checks, we tabluate these piece-by-piece manually so we can also pass on appropriate damage the clothing's limbs if necessary - if(clothes_check.armor.getRating(WOUND)) + if(clothes_check.armor?.getRating(WOUND)) bare_wound_bonus = 0 break @@ -469,10 +469,10 @@ if(owner && ishuman(owner)) var/mob/living/carbon/human/H = owner var/list/clothing = H.clothingonpart(src) - for(var/c in clothing) - var/obj/item/clothing/C = c + for(var/obj/item/clothing/C as anything in clothing) // unlike normal armor checks, we tabluate these piece-by-piece manually so we can also pass on appropriate damage the clothing's limbs if necessary - armor_ablation += C.armor.getRating(WOUND) + if(C.armor) + armor_ablation += C.armor.getRating(WOUND) if(wounding_type == WOUND_SLASH) C.take_damage_zone(body_zone, damage, BRUTE, armour_penetration) else if(wounding_type == WOUND_BURN && damage >= 10) // lazy way to block freezing from shredding clothes without adding another var onto apply_damage() diff --git a/config/entries/dbconfig.txt b/config/entries/dbconfig.txt index d5bc37bce71e..c52fda186d3c 100644 --- a/config/entries/dbconfig.txt +++ b/config/entries/dbconfig.txt @@ -1,5 +1,3 @@ -## MySQL Connection Configuration -## This is used for stats, feedback gathering, ## administration, and the in game library. ## Should SQL be enabled? Uncomment to enable @@ -33,16 +31,7 @@ FEEDBACK_PASSWORD password ## Set to 0 for infinite ASYNC_QUERY_TIMEOUT 10 -## Time in seconds for blocking queries to execute before slow query timeout +## Time in seconds for blocking queries to execute before slow query timeout ## Set to 0 for infinite ## Must be less than or equal to ASYNC_QUERY_TIMEOUT BLOCKING_QUERY_TIMEOUT 5 - -## The maximum number of additional threads BSQL is allowed to run at once -BSQL_THREAD_LIMIT 50 - -## Uncomment to enable verbose BSQL communication logs -#BSQL_DEBUG - -## Time to wait before considering a query as lingering too long -@QUERY_DEBUG_LOG_TIMEOUT 70 diff --git a/modular_bluemoon/code/modules/jobs/job_types/synthetics/cyborg.dm b/modular_bluemoon/code/modules/jobs/job_types/synthetics/cyborg.dm index 4ca17cd6b1f0..86a97ec92d90 100644 --- a/modular_bluemoon/code/modules/jobs/job_types/synthetics/cyborg.dm +++ b/modular_bluemoon/code/modules/jobs/job_types/synthetics/cyborg.dm @@ -6,6 +6,7 @@ if(player_client.prefs.silicon_lawset) var/list/laws = CONFIG_GET(keyed_list/choosable_laws) var/law_path = text2path(laws[player_client.prefs.silicon_lawset]) - var/obj/item/ai_module/chosenboard = new law_path - chosenboard.install(R.laws, usr) - qdel(chosenboard) + if(ispath(law_path)) + var/obj/item/ai_module/chosenboard = new law_path + chosenboard.install(R.laws, usr) + qdel(chosenboard) diff --git a/modular_bluemoon/shower_trait/shower_trait.dm b/modular_bluemoon/shower_trait/shower_trait.dm index f036f0d1c30d..57220f3e2b0f 100644 --- a/modular_bluemoon/shower_trait/shower_trait.dm +++ b/modular_bluemoon/shower_trait/shower_trait.dm @@ -48,7 +48,8 @@ // забираем способность изменения оверлея вони var/mob/living/carbon/human/H = quirk_holder var/datum/action/cooldown/change_stink_overlay/C = locate() in H.actions - C.Remove(H) + if(C) + C.Remove(H) quirk_holder.cut_overlay(stink_overlay) // удаляем оверлей вони с игрока diff --git a/strings/ambitions/security.json b/strings/ambitions/security.json index f4fe673c9df4..c6efd780386b 100644 --- a/strings/ambitions/security.json +++ b/strings/ambitions/security.json @@ -106,5 +106,8 @@ "Преступник может быть полезен для станции. Организовать рабочее место для преступников, которые будут отрабатывать принесенные расходы на их содержание - неплохая идея.", "У меня есть 9-миллиметровые пальцы-пистолеты. Устрою с мимом перестрелку.", "На все дела беру с собой служебного пса." + ], + "Internal Affairs Agent": [ + "SET ME" ] } diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.AssemblyReference.cache b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.AssemblyReference.cache index d0220da4b95ded9c9c9fe820575ce3020ef66cf0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 4012 zcmZQ$wyGI1CRlv85jjXBox53FmeC| zwpYc3Nt!(9Wb}p^siP2loqAh=B1XF6eZ^9Csd4<>ljUO7GFg4T*y&yD`X%vjjjC2b}m&B4pJrEI` zTH;z!l9~s~K*iWXRTk=Z>^i6y#tC@sp;3sJ(LTW8g{hu%a7JQL0k$v}KvzU;ur2_V zTq=-)a|)2j#suL91v?rt0Lx8AAY{MzEBwg1n;#bIwXEV__m}tOi@#ZK`rCgqm*q73 z%$y{*$@=-Mn^*4~ygTcXnXn?$1nwf6pAA#%k31|F=s(6@?yvd6h;Py>);CXHC>~h) z{>8_X7$2U=2UpM3h)vR2m8v8A>zZvzY`*T(k9BeD`HxJqRg>uwa!!>{$UQLG#5d~F zWN@*)!9KoT@G6%TV=%f`$%$D5<22JW^E5-l6jOsl<3vy(0R4(md>7I_W|0#tmO76c zNuJpFBwX$JA(=`}&=FDdmD4ZiQVVkOD|3OZ2W+`Q5aw05Dq@3i0Vq8TscaE~;a74Z zmxz2(Lcho@N-WRJOUD+od@$calnmc!4Mg=QjpDS5ZgCo(nU|7ZUaaSqUzCfrwIBlZ zFp5HARvQ!fO45r)zz+~`;HI_DRqVhcD} S%?pyJUdX{}UXZD@2|55xWrsHa