From 6d5674be078404f249d41c91898ffca031015ce1 Mon Sep 17 00:00:00 2001 From: Alexis Date: Sat, 2 Nov 2024 17:01:05 -0400 Subject: [PATCH 1/5] Adds a toggle credits preference (#2320) ## About The Pull Request As the title says, it's found in the Gameplay section of game preferences. ## Why It's Good For The Game I've seen a lot of people asking for it, plus it doesn't immediately cover your screen if you have it off, so you can continue whatever you were doing without getting your screen covered by it. ## Proof Of Testing It compiled and ran on local host ## Changelog :cl: qol: you can now toggle seeing end credits in preferences /:cl: Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> --- modular_zubbers/code/modules/credits/credits.dm | 10 ++++++++++ .../features/game_preferences/bubber/see_credits.tsx | 8 ++++++++ 2 files changed, 18 insertions(+) create mode 100644 tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/bubber/see_credits.tsx diff --git a/modular_zubbers/code/modules/credits/credits.dm b/modular_zubbers/code/modules/credits/credits.dm index b49f7ca0daca0..a955d980f8424 100644 --- a/modular_zubbers/code/modules/credits/credits.dm +++ b/modular_zubbers/code/modules/credits/credits.dm @@ -36,6 +36,9 @@ GLOBAL_LIST(end_titles) /client/proc/RollCredits() set waitfor = FALSE + var/credit_pref = mob.client?.prefs?.read_preference(/datum/preference/toggle/see_credits) + if(!credit_pref) + return LAZYINITLIST(credits) @@ -193,6 +196,13 @@ GLOBAL_LIST(end_titles) return titles +/// Enables the choice of players disabling seeing the credits +/datum/preference/toggle/see_credits + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "see_credits" + savefile_identifier = PREFERENCE_PLAYER + default_value = TRUE + #undef CREDIT_ROLL_SPEED #undef CREDIT_SPAWN_SPEED #undef CREDIT_ANIMATE_HEIGHT diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/bubber/see_credits.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/bubber/see_credits.tsx new file mode 100644 index 0000000000000..201e3dc04a28f --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/bubber/see_credits.tsx @@ -0,0 +1,8 @@ +import { CheckboxInput, FeatureToggle } from '../../base'; + +export const see_credits: FeatureToggle = { + name: 'See Roundend Credits', + category: 'GAMEPLAY', + description: 'When enabled, you will see the credits sequence at roundend.', + component: CheckboxInput, +}; From 3a44f61317c8a5eb91b21241ec49652575170749 Mon Sep 17 00:00:00 2001 From: Bubberbot <151680451+Bubberbot@users.noreply.github.com> Date: Sat, 2 Nov 2024 22:01:28 +0100 Subject: [PATCH 2/5] Automatic changelog for PR #2320 [ci skip] --- html/changelogs/AutoChangeLog-pr-2320.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2320.yml diff --git a/html/changelogs/AutoChangeLog-pr-2320.yml b/html/changelogs/AutoChangeLog-pr-2320.yml new file mode 100644 index 0000000000000..53fd7fdf60fdc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2320.yml @@ -0,0 +1,4 @@ +author: "xPokee" +delete-after: True +changes: + - qol: "you can now toggle seeing end credits in preferences" \ No newline at end of file From 95ba7767ec763520989d1eb7fe2b2623c6c086da Mon Sep 17 00:00:00 2001 From: Kingsley-95 Date: Sat, 2 Nov 2024 16:05:22 -0500 Subject: [PATCH 3/5] Adding Jackal tail (#2311) ## About The Pull Request Taking a tail from another server and porting it over here Adding new tail sprites ## Why It's Good For The Game More customization, more fun ## Proof Of Testing ![image](https://github.com/user-attachments/assets/ff4616c3-c16c-4492-a741-a3fa9ab68044) ![image](https://github.com/user-attachments/assets/a3fc1878-6301-4e49-a294-ded519811b08) ![image](https://github.com/user-attachments/assets/bae55883-9d2a-4a93-a763-e7ee7ebdfdcd) ![image](https://github.com/user-attachments/assets/a29916d2-7947-44c7-8d3b-26fbb19bd6d4) ![image](https://github.com/user-attachments/assets/461664b9-576a-4284-a929-9bf42855eabe)
Screenshots/Videos Set above for screenshots of the new customization option. Was mainly using this to start learning the code base and see if I could get my development environment set up. Things are looking good on that end
## Changelog :cl: add: Black-Backed Jackal tail /:cl: --------- Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com> --- .../customization/sprite_accessories/tails.dm | 5 +++++ modular_zubbers/icons/customization/tails.dmi | Bin 10428 -> 10105 bytes 2 files changed, 5 insertions(+) diff --git a/modular_zubbers/code/modules/customization/sprite_accessories/tails.dm b/modular_zubbers/code/modules/customization/sprite_accessories/tails.dm index e660c7e155013..040fe8ee877b8 100644 --- a/modular_zubbers/code/modules/customization/sprite_accessories/tails.dm +++ b/modular_zubbers/code/modules/customization/sprite_accessories/tails.dm @@ -21,6 +21,11 @@ icon_state = "rattlesnake" icon = 'modular_zubbers/icons/customization/tails.dmi' +/datum/sprite_accessory/tails/mammal/blackjackal + name = "Black-Backed Jackal" + icon_state = "blackjackal" + icon = 'modular_zubbers/icons/customization/tails.dmi' + /datum/sprite_accessory/tails/mammal/wagging/gecko name = "Gecko" icon_state = "gecko" diff --git a/modular_zubbers/icons/customization/tails.dmi b/modular_zubbers/icons/customization/tails.dmi index ac4582210bcd269a12df18b54fe7ffa76cf86475..a0cb6317748524f305a7f246f0765115c854416a 100644 GIT binary patch literal 10105 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 L)wxroVj1)wvBHd$ From 158670c28faf8b30a88b3583c2e02bbf852bfe13 Mon Sep 17 00:00:00 2001 From: Bubberbot <151680451+Bubberbot@users.noreply.github.com> Date: Sat, 2 Nov 2024 22:13:47 +0100 Subject: [PATCH 4/5] Automatic changelog for PR #2311 [ci skip] --- html/changelogs/AutoChangeLog-pr-2311.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2311.yml diff --git a/html/changelogs/AutoChangeLog-pr-2311.yml b/html/changelogs/AutoChangeLog-pr-2311.yml new file mode 100644 index 0000000000000..dc6ea511a24e4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2311.yml @@ -0,0 +1,4 @@ +author: "Kingsley-95" +delete-after: True +changes: + - rscadd: "Black-Backed Jackal tail" \ No newline at end of file From f7f0374c3c952e2f92aef3e59b7406c8f131227f Mon Sep 17 00:00:00 2001 From: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Date: Wed, 23 Oct 2024 06:56:39 +0300 Subject: [PATCH 5/5] fixes ore vents being tapped despite their drones dying (#87359) ## About The Pull Request the vent defense minigames had a 100% win rate because of a small mistake in the order of args passed to the proc ## Why It's Good For The Game closes #87284 ## Changelog :cl: fix: fixes ore vents being tapped despite their drones dying /:cl: --- .../objects/structures/lavaland/ore_vent.dm | 56 +++++++++++++------ 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/code/game/objects/structures/lavaland/ore_vent.dm b/code/game/objects/structures/lavaland/ore_vent.dm index adf888a2d9c42..a6933d534689b 100644 --- a/code/game/objects/structures/lavaland/ore_vent.dm +++ b/code/game/objects/structures/lavaland/ore_vent.dm @@ -9,6 +9,7 @@ desc = "An ore vent, brimming with underground ore. Scan with an advanced mining scanner to start extracting ore from it." icon = 'icons/obj/mining_zones/terrain.dmi' icon_state = "ore_vent" + base_icon_state = "ore_vent" move_resist = MOVE_FORCE_EXTREMELY_STRONG resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF //This thing will take a beating. anchored = TRUE @@ -91,7 +92,7 @@ /obj/structure/ore_vent/Destroy() SSore_generation.possible_vents -= src - node = null + reset_drone(success = FALSE) if(tapped) SSore_generation.processed_vents -= src return ..() @@ -266,28 +267,40 @@ * Arguments: * - force: Set to true if you want to just skip all checks and make the vent start producing boulders. */ -/obj/structure/ore_vent/proc/handle_wave_conclusion(force = FALSE) +/obj/structure/ore_vent/proc/handle_wave_conclusion(datum/source, force = FALSE) SIGNAL_HANDLER SEND_SIGNAL(src, COMSIG_VENT_WAVE_CONCLUDED) COOLDOWN_RESET(src, wave_cooldown) particles = null - if(QDELETED(node) && !force) - visible_message(span_danger("\the [src] creaks and groans as the mining attempt fails, and the vent closes back up.")) - icon_state = initial(icon_state) - update_appearance(UPDATE_ICON_STATE) - node = null - return //Bad end, try again. - else if(!QDELETED(node) && get_turf(node) != get_turf(src) && !force) - visible_message(span_danger("The [node] detaches from the [src], and the vent closes back up!")) - icon_state = initial(icon_state) - update_appearance(UPDATE_ICON_STATE) - UnregisterSignal(node, COMSIG_MOVABLE_MOVED) - node.pre_escape(success = FALSE) - node = null + if(force) + initiate_wave_win() + return + + if(QDELETED(node)) + initiate_wave_loss(loss_message = "\the [src] creaks and groans as the mining attempt fails, and the vent closes back up.") + return + + if(get_turf(node) != get_turf(src)) + initiate_wave_loss(loss_message = "The [node] detaches from the [src], and the vent closes back up!") return //Start over! + initiate_wave_win() + +/** + * Handles reseting our ore vent to its original state so we can start over + */ +/obj/structure/ore_vent/proc/initiate_wave_loss(loss_message) + visible_message(span_danger(loss_message)) + icon_state = base_icon_state + update_appearance(UPDATE_ICON_STATE) + reset_drone(success = FALSE) + +/** + * Handles winning the event, gives everyone a payout and start boulder production + */ +/obj/structure/ore_vent/proc/initiate_wave_win() tapped = TRUE //The Node Drone has survived the wave defense, and the ore vent is tapped. SSore_generation.processed_vents += src log_game("Ore vent [key_name_and_tag(src)] was tapped") @@ -296,7 +309,6 @@ icon_state = icon_state_tapped update_appearance(UPDATE_ICON_STATE) qdel(GetComponent(/datum/component/gps)) - UnregisterSignal(node, COMSIG_QDELETING) for(var/mob/living/miner in range(7, src)) //Give the miners who are near the vent points and xp. var/obj/item/card/id/user_id_card = miner.get_idcard(TRUE) @@ -308,10 +320,18 @@ if(user_id_card.registered_account) user_id_card.registered_account.mining_points += point_reward_val user_id_card.registered_account.bank_card_talk("You have been awarded [point_reward_val] mining points for your efforts.") - node?.pre_escape() //Visually show the drone is done and flies away. - node = null + reset_drone(success = TRUE) add_overlay(mutable_appearance('icons/obj/mining_zones/terrain.dmi', "well", ABOVE_MOB_LAYER)) +/** + * Sends our node back to base and cleans up after the reference + */ +/obj/structure/ore_vent/proc/reset_drone(success) + if(!QDELETED(node)) + node.pre_escape(success = success) + UnregisterSignal(node, list(COMSIG_QDELETING, COMSIG_MOVABLE_MOVED)) + node = null + /** * Called when the ore vent is tapped by a scanning device. * Gives a readout of the ores available in the vent that gets added to the description,