mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-14 17:45:02 +01:00
mayfools
211 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
baf3837ae8 |
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx |
||
|
|
7a3ad79506 |
All camelCase (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use snake_case. UNDERSCORES RULE! (#94111)
## About The Pull Request It's just a partial cleanup of anti-[STYLE](https://github.com/tgstation/tgstation/blob/master/.github/guides/STYLE.md) code from /tg/'s ancient history. I compiled & tested with my helpful assistant and damage is still working. <img width="1920" height="1040" alt="image" src="https://github.com/user-attachments/assets/26dabc17-088f-4008-b299-3ff4c27142c3" /> I'll upload the .cs script I used to do it shortly. ## Why It's Good For The Game Just minor code cleanup. Script used is located at https://metek.tech/camelTo-Snake.7z EDIT 11/23/25: Updated the script to use multithreading and sequential scan so it works a hell of a lot faster ``` /* // Copyright 2025 Joshua 'Joan Metekillot' Kidder This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. // */ using System.Text.RegularExpressions; class Program { static async Task Main(string[] args) { var readFile = new FileStreamOptions { Access = FileAccess.Read, Share = FileShare.ReadWrite, Options = FileOptions.Asynchronous | FileOptions.SequentialScan }; FileStreamOptions writeFile = new FileStreamOptions { Share = FileShare.ReadWrite, Access = FileAccess.ReadWrite, Mode = FileMode.Truncate, Options = FileOptions.Asynchronous }; RegexOptions regexOptions = RegexOptions.Multiline | RegexOptions.Compiled; Dictionary<string, int> changedProcs = new(); string regexPattern = @"(?<=\P{L})([a-z]+)([A-Z]{1,2}[a-z]+)*(Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss)([A-Z]{1,2}[a-z]+)*"; Regex camelCaseProcRegex = new(regexPattern, regexOptions); string snakeify(Match matchingRegex) { var vals = matchingRegex.Groups.Cast<Group>().SelectMany(_ => _.Captures).Select(_ => _.Value).ToArray(); var newVal = string.Join("_", vals.Skip(1).ToArray()).ToLower(); string logString = $"{vals[0]} => {newVal}"; if (changedProcs.TryGetValue(logString, out int value)) { changedProcs[logString] = value + 1; } else { changedProcs.Add(logString, 1); } return newVal; } var dmFiles = Directory.EnumerateFiles(".", "*.dm", SearchOption.AllDirectories).ToAsyncEnumerable<string>(); // uses default ParallelOptions // https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.paralleloptions?view=net-10.0#main await Parallel.ForEachAsync(dmFiles, async (filePath, UnusedCancellationToken) => { var reader = new StreamReader(filePath, readFile); string oldContent = await reader.ReadToEndAsync(); string newContent = camelCaseProcRegex.Replace(oldContent, new MatchEvaluator((Func<Match, string>)snakeify)); if (oldContent != newContent) { var writer = new StreamWriter(filePath, writeFile); await writer.WriteAsync(newContent); await writer.DisposeAsync(); } reader.Dispose(); }); var logToList = changedProcs.Cast<KeyValuePair<string, int>>().ToList(); foreach (var pair in logToList) { Console.WriteLine($"{pair.Key}: {pair.Value} locations"); } } } ``` ## Changelog 🆑 Bisar code: All (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use snake_case, in-line with the STYLE guide. Underscores rule! /🆑 |
||
|
|
d0ca474789 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 | ||
|
|
14d2514aa9 |
[MDB IGNORE] Refactors away /area/station/ai_monitored and its subtypes (with bonus neat repathing) (#93704)
## About The Pull Request /area/station/ai_monitored's behaviour was isolated into a component, `/datum/component/monitored_area`, which itself uses `/datum/motion_group`s to query cameras. Functionally, it (should) work identically to the old implementation. I'm sure that behaviour could have been further cleaned up, camera code is quite dreadful, but it's better to focus on isolating the behaviour first. Baby steps. Areas that want to opt into monitoring can set `var/motion_monitored` to TRUE (this approach was taken to make subtyping easier). The following non-AI areas were changed: - /area/station/ai_monitored/security/armory -> /area/station/security/armory - /area/station/ai_monitored/command/nuke_storage -> /area/station/command/vault - /area/station/ai_monitored/command/storage/eva -> /area/station/command/eva All other `/area/station/ai_monitored` subtypes were repathed into `/area/station/ai` and cleaned up in a way that I thought made logical sense. It is **much** more readable now. For example: - /area/station/ai_monitored/turret_protected/aisat -> /area/station/ai/satellite - /area/station/ai_monitored/command/storage/satellite -> /area/station/ai/satellite/maintenance/storage - /area/station/ai_monitored/turret_protected/ai -> /area/station/ai/satellite/chamber |
||
|
|
d1df06460e | Change thunder to not damage objects and smelt ores (#93093) | ||
|
|
5e629dff04 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
721428c65a |
Status Display Automation & NT Logo Change (#93088)
## About The Pull Request - Status Displays update automatically for emergency alerts and show round start logos by default instead of a blank screen. - Tested in game with manual graphics and with triggered events. - There is also a priority system, some emergencies will display temporarily if a higher priority (shuttle call) is in progress. - It also has checks on when something ends, i.e if radiation storm happens, the alert for that goes away after the storm passes instead of staying on the display. - The manual buttons on the comms console to update the screens are still there and work with this. - BLOB file tweaks - All blob features works but with non blocking cleanup as Linter threw errors. - Also found a nicer sprite from AI core to use for the NT logo on the displays since we'll be seeing it on more, the current one is just a bit too bright | Default logo | Alert Level Auto Switch | Events "can" interrupt shuttle call display but only for 30 seconds | |--------|--------|--------| | <img width="443" height="182" alt="image" src="https://github.com/user-attachments/assets/4027d8cc-041a-4e26-8120-742bf38f9c8a" />| <img width="444" height="181" alt="image" src="https://github.com/user-attachments/assets/267363be-7f3a-4b63-a412-ea74c9d23c60" /> | <img width="432" height="172" alt="image" src="https://github.com/user-attachments/assets/842b9bfd-6e32-4833-8c06-42518dd8c0d2" /> | **Nanotrasen Logo Replacement - Left is original - Right is new** <img width="181" height="82" alt="image" src="https://github.com/user-attachments/assets/ac78d1c2-059b-4ab5-9d2c-3e59bec87620" /> ## Why It's Good For The Game - Status displays leave an empty void on the walls in rounds, this adds a bit more value to them - Should make the screens feel busier/more dynamic and the game a little more engaging ## Changelog 🆑 add: Status displays now show logo at round start - Status displays now change more often for alerts and other key events fix: Blob non blocking cleanup - Should have no change in player experience image: Replaces bright blue NT logo with the more subtle slightly animated sprite from AI core, fits nicer. /🆑 --------- Co-authored-by: loganuk <falseemail@aol.com> |
||
|
|
e7c25d4c40 |
The Glitterening (#92226)
## About The Pull Request Adds a number of new capabilities to glitter. - It can be any colour. <img width="657" height="398" alt="image" src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e" /> - It can be made in chemistry and dyed by combining it with acetone and other reagents to give it the average colour of the non-glitter, not-acetone reagents. - Multiple colours can be mixed into one reagent datum, randomly depositing a colour from those in the datum on the floor. <img width="554" height="507" alt="image" src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49" /> - Anyone with glitter reagent in them will cough glitter onto the floor - Glittery crates will leave a trail of appropriately coloured glitter when moved <img width="960" height="259" alt="image" src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014" /> Resprited glitter to support these changes and make it not look like gas (or ass). ## Why It's Good For The Game It looks cool and raises the bar for chemists maximally pissing off the janitor as they fill a room with multicoloured glitter and all the occupants run off to cough more up all over the surrounding area. ## Changelog 🆑 add: Glitter can now be made from plastic polymers and aluminium. add: Plastic polymer can be made at any temperature, and then heated to produce sheets. add: Glitter can now be made any colour, mix 10 units each of glitter and acetone to change its colour to that of the other reagents in the beaker. add: Mixing different colours of glitter will cause a random selection of those colours to appear on the floor when released. add: Being exposed to glitter in reagent form causes you to cough up more glitter onto the floor add: Dragging glittery crates will now spread a trail of glitter and angry janitors behind them. image: Added new glitter sprites (that don't look like gasses) /🆑 |
||
|
|
d97c57b263 |
The Glitterening (#92226)
## About The Pull Request Adds a number of new capabilities to glitter. - It can be any colour. <img width="657" height="398" alt="image" src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e" /> - It can be made in chemistry and dyed by combining it with acetone and other reagents to give it the average colour of the non-glitter, not-acetone reagents. - Multiple colours can be mixed into one reagent datum, randomly depositing a colour from those in the datum on the floor. <img width="554" height="507" alt="image" src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49" /> - Anyone with glitter reagent in them will cough glitter onto the floor - Glittery crates will leave a trail of appropriately coloured glitter when moved <img width="960" height="259" alt="image" src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014" /> Resprited glitter to support these changes and make it not look like gas (or ass). ## Why It's Good For The Game It looks cool and raises the bar for chemists maximally pissing off the janitor as they fill a room with multicoloured glitter and all the occupants run off to cough more up all over the surrounding area. ## Changelog 🆑 add: Glitter can now be made from plastic polymers and aluminium. add: Plastic polymer can be made at any temperature, and then heated to produce sheets. add: Glitter can now be made any colour, mix 10 units each of glitter and acetone to change its colour to that of the other reagents in the beaker. add: Mixing different colours of glitter will cause a random selection of those colours to appear on the floor when released. add: Being exposed to glitter in reagent form causes you to cough up more glitter onto the floor add: Dragging glittery crates will now spread a trail of glitter and angry janitors behind them. image: Added new glitter sprites (that don't look like gasses) /🆑 |
||
|
|
a091c5e86a |
Radiation storm event fixes/improvements (#3905)
## About The Pull Request Fixes and tweaks to the radiation storm event. - Actually enables/revokes emergency maintenance access like the announcement says - Removes the part of the announcement telling people to go to medbay at the START of the radstorm - Adjusts the announcement text to match the audio - Fixes a check in minimum_security_level to ignore if emergency access is already enabled - Updated our alert proc with a new arg added by TG - The weather alert sound plays to people on the impacted Z level, making you aware the weather event started - Deletes a duplicate radiation.ogg that exists for some reason ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> Shorter event announcement (No more 'please go to medbay') https://github.com/user-attachments/assets/552e4eeb-a09e-4467-b69c-f10add7ecdb1 </details> ## Changelog 🆑 LT3 fix: Radiation storm event actually enables maintenance access qol: Improved feedback and notifications for the radiation storm event /🆑 |
||
|
|
d34d1f8af9 |
Lightning strikes thrice: Stops lightning from causing spurious CI failures (#91036)
## About The Pull Request So Thor was very displeased with this one particular CI run, and decided to strike the same turf with lightning four consecutive times.  This resulted in trying to hit the same wire that already had been long since nuked by an initial blast. _three more times_. Fixes that from happening in the future. ## Why It's Good For The Game Less flaky CI failures from the wrathful gods ## Changelog Nothing player facing --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
ed26964f0b |
Fixes holoparasites taking damage from ash storms inside of immune hosts, miner holoparas are now storm immune (#91133)
## About The Pull Request Closes #91040 by making the check on the ash storm be inside of the recursive parent checking, makes power miners (holoparasites) spawned from the dusty shard ash and snowstorm immune ## Why It's Good For The Game Fixes bug, latter makes you take double damage if you don't have protection, and if you do it prevents your miner from going outside of your body during a storm. Them having protection from storms is kinda fitting. ## Changelog 🆑 balance: Power Miners are now ash and snowstorm immune fix: Holoparasites no longer take damage from ash storms inside of storm-protected hosts /🆑 |
||
|
|
54a23c787b |
Lightning strikes thrice: Stops lightning from causing spurious CI failures (#91036)
## About The Pull Request So Thor was very displeased with this one particular CI run, and decided to strike the same turf with lightning four consecutive times.  This resulted in trying to hit the same wire that already had been long since nuked by an initial blast. _three more times_. Fixes that from happening in the future. ## Why It's Good For The Game Less flaky CI failures from the wrathful gods ## Changelog Nothing player facing --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
768c4d86b9 |
Fixes holoparasites taking damage from ash storms inside of immune hosts, miner holoparas are now storm immune (#91133)
## About The Pull Request Closes #91040 by making the check on the ash storm be inside of the recursive parent checking, makes power miners (holoparasites) spawned from the dusty shard ash and snowstorm immune ## Why It's Good For The Game Fixes bug, latter makes you take double damage if you don't have protection, and if you do it prevents your miner from going outside of your body during a storm. Them having protection from storms is kinda fitting. ## Changelog 🆑 balance: Power Miners are now ash and snowstorm immune fix: Holoparasites no longer take damage from ash storms inside of storm-protected hosts /🆑 |
||
|
|
e14634872e |
Fixes weather getting stuck and not affecting mobs (#90691)
## About The Pull Request Weather subsystem code mixed up defines and indexes resulting in broken behavior when you only had mobs and thunder defined in a subsystem. Solved this by converting currentpart from define to active task index Closes #90677 ## Changelog 🆑 fix: Ash storms do damage again /🆑 |
||
|
|
e732a19949 |
Add wizard event - Magical Rain (#90495)
## About The Pull Request Adds a new wizard event - Magical Rain This selects a random reagent from a curtailed list that is rained down on the station. The only safe spaces are in maintenance and containers like lockers. Of course the wizard is not directly affected by the reagent, although side effects may still apply. For example, if it is raining lube, it will cause turfs to get slippery which can slip the wizard. You can also collect the rain in containers, which might be funny or useful depending on what it is. (Alcoholics love booze rain) I did have to trim down the list of reagents since there are over +700 and most of them do nothing to mobs/turfs when they `TOUCH`. The list is ~50 reagents that are: ```dm // most medicine do nothing when it comes into contact with turfs or mobs (via TOUCH) except for a few var/list/allowed_medicine = list( /datum/reagent/medicine/c2/synthflesh, /datum/reagent/medicine/adminordrazine, /datum/reagent/medicine/strange_reagent, // include a random medicine pick(subtypesof(/datum/reagent/medicine)), ) GLOB.wizard_rain_reagents |= allowed_medicine // One randomized type is allowed so the whitelist isn't spammed with subtypes GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/glitter)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/carpet)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/mutationtoxin)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/plantnutriment)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/uranium)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/luminescent_fluid)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/impurity)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/drug)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/water)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/fuel)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/colorful_reagent)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/ants)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/lube)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/space_cleaner)) // lots of toxins do nothing so we need to be picky var/list/allowed_toxins = list( /datum/reagent/toxin/itching_powder, /datum/reagent/toxin/polonium, // radiation /datum/reagent/toxin/mutagen, // all the acids /datum/reagent/toxin/acid, /datum/reagent/toxin/acid/fluacid, /datum/reagent/toxin/acid/nitracid, // include a random toxin pick(subtypesof(/datum/reagent/toxin)), ) GLOB.wizard_rain_reagents |= allowed_toxins // too many food & drinks so blacklist most of them var/list/allowed_food_drinks = list( /datum/reagent/consumable/ethanol/wizz_fizz, /datum/reagent/consumable/condensedcapsaicin, /datum/reagent/consumable/frostoil, // include a random food or drink pick(subtypesof(/datum/reagent/consumable)), // include a random regular drink (vodka, wine, beer, etc.) pick(/obj/machinery/chem_dispenser/drinks/beer::beer_dispensable_reagents), ) GLOB.wizard_rain_reagents |= allowed_food_drinks var/list/allowed_exotic_reagents = list( // fire /datum/reagent/clf3, /datum/reagent/phlogiston, /datum/reagent/napalm, // cosmetic /datum/reagent/hair_dye, /datum/reagent/barbers_aid, /datum/reagent/baldium, /datum/reagent/mulligan, /datum/reagent/growthserum, // op shit /datum/reagent/romerol, /datum/reagent/gondola_mutation_toxin, /datum/reagent/metalgen, /datum/reagent/flightpotion, /datum/reagent/eigenstate, /datum/reagent/magillitis, /datum/reagent/pax, /datum/reagent/gluttonytoxin, /datum/reagent/aslimetoxin, // misc /datum/reagent/blood, /datum/reagent/hauntium, /datum/reagent/copper, ) GLOB.wizard_rain_reagents |= allowed_exotic_reagents // add a few randomized reagents not listed above so they at least have a chance GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent)) ``` ## Why It's Good For The Game More interesting effects for weather. The wizard events are always supposed to be silly and wacky, so having stuff like raining ants or booze is hilarious. Several OP chems are included like napalm, strange reagent, and flight potion which can lead to some chaos. ## Changelog 🆑 add: Add wizard magical rain event. A random reagent is selected to rain down across the station. The only places to escape are in maintenance and inside containers such as lockers. The wizard is not directly affected by the reagent, but the side effects might still apply. (ie. raining lube, will make the floors slippery, which can slip the wizard) /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
1883d5d35d |
Add rare chance of thunder for ash storms on lavaland (#90488)
## About The Pull Request This adds `THUNDER_CHANCE_VERY_RARE` for a thunder strike to occur on lavaland during ash storms. The chance is 1 in 50,000, which is rare enough for it to occur a few times during an ash storm. The emberfalls storm does not have thunder strikes applied. I also went ahead and colored the thunder red, to go with the red color of the mining turf colors as requested by:  ## Why It's Good For The Game Fun little rare event to make ash storms cool. You might wonder why we don't increase the chance? Since lavaland is really only used by a few players during a round, it is a good idea to minimize the amount of turf processing that is done. By making it very rare, the calculations average about ~`1.18` turfs being processed per tick for the entire z-level.  ## Changelog 🆑 add: Add rare chance of thunder strikes during ash storms on lavaland /🆑 |
||
|
|
1f855eb9ff |
Weather DLC - Make it Rain Anything! (#89550)
Introducing more weather types! And yes, you can now have rain be reagent based! <details> <summary>Regular Rain</summary>  </details> <details> <summary>Blood Rain</summary>  </details> <details> <summary>Acid Rain</summary>  </details> You can even make it rain ants, plasma, or drugs. All of their effects get applied to turfs, objects, and mobs depending on the weather options you select. Did I mention... there is thunder? <details> <summary>Thunder Strikes</summary>  </details> <details> <summary>Sand Storms</summary>  </details> Despite all this new stuff, none of it has been directly added to the game but the code can be used in the future for: - Wizard event - Similar to lava on floor, but this time make the reagent random or picked from a list and give wizard immunity - Chaplain ability - Maybe make this a benefit or ability once enough favor has been obtained - Admin events - I have added a BUNCH of admin tooling to run customized weather events that let you control a lot of options - New station maps/biomes for downstreams (Jungle Station, etc.) - Change Ion storms to use the new weather system that triggers EMP/thunder effects across the station - IceBox could get plasma rain - Lavaland could get thunder effects applied to ash storms Relevant PRs that removed/added some of the weather stuff I used: - #60303 - #25222 --- - Rain sprites were added via [novaepee](https://github.com/novaepee) in https://github.com/tgstation/TerraGov-Marine-Corps/pull/9675 - Sand sprites were added via [TiviPlus](https://github.com/TiviPlus) (who commissioned them from bimmer) in https://github.com/tgstation/TerraGov-Marine-Corps/pull/4645 - Rain sounds [already existed on tg](https://github.com/tgstation/tgstation/pull/25222#discussion_r106794579) and were provided by provided by Cuboos, using Royalty Free sounds, presumed under default tg sound license - Creative Commons 3.0 BY-SA - Siren sound is from siren.wav by IFartInUrGeneralDirection -- [Freesound](https://freesound.org/s/46092/) -- License: Attribution 4.0 The original `siren.ogg` sound used on a lot of SS13 servers doesn't seem to have any attribution that I could locate. The sound was added about 15 years ago. So I just looked for a somewhat similar sounding siren noise on Freesound. More weather customization! 🆑 add: Added new weather types for rain and sandstorms. Rain now uses a reagent that gets exposed to the turfs, mobs, and objects. There is also a thunder strike setting you can apply to any weather. add: Hydro trays and soil will now add reagents to their trays when exposed to a chemical reaction. (weather, shower, chem spills, foam grenades, etc.) add: Weather temperature now affects weather reagents and mobs body temperature. bal: Snowstorm temperature calculations were tweaked to allow universal weather temperature effects. sound: Added weather sounds from TGMC for rain and sirens (attributed to Cuboos and IFartInUrGeneralDirection ) image: Added weather images from TGMC for rain and sand storms (attributed to Novaepee and Bimmer) refactor: Refactored a lot of the weather code to be more robust admin: Admins can now control more weather related options when running weather events. The weather admin verbs have been moved to their own "Weather" category under the Admin tab. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
13a3d24984 |
Fixes weather getting stuck and not affecting mobs (#90691)
## About The Pull Request Weather subsystem code mixed up defines and indexes resulting in broken behavior when you only had mobs and thunder defined in a subsystem. Solved this by converting currentpart from define to active task index Closes #90677 ## Changelog 🆑 fix: Ash storms do damage again /🆑 |
||
|
|
8aa86fb326 |
Add wizard event - Magical Rain (#90495)
## About The Pull Request Adds a new wizard event - Magical Rain This selects a random reagent from a curtailed list that is rained down on the station. The only safe spaces are in maintenance and containers like lockers. Of course the wizard is not directly affected by the reagent, although side effects may still apply. For example, if it is raining lube, it will cause turfs to get slippery which can slip the wizard. You can also collect the rain in containers, which might be funny or useful depending on what it is. (Alcoholics love booze rain) I did have to trim down the list of reagents since there are over +700 and most of them do nothing to mobs/turfs when they `TOUCH`. The list is ~50 reagents that are: ```dm // most medicine do nothing when it comes into contact with turfs or mobs (via TOUCH) except for a few var/list/allowed_medicine = list( /datum/reagent/medicine/c2/synthflesh, /datum/reagent/medicine/adminordrazine, /datum/reagent/medicine/strange_reagent, // include a random medicine pick(subtypesof(/datum/reagent/medicine)), ) GLOB.wizard_rain_reagents |= allowed_medicine // One randomized type is allowed so the whitelist isn't spammed with subtypes GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/glitter)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/carpet)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/mutationtoxin)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/plantnutriment)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/uranium)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/luminescent_fluid)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/impurity)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/drug)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/water)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/fuel)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/colorful_reagent)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/ants)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/lube)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/space_cleaner)) // lots of toxins do nothing so we need to be picky var/list/allowed_toxins = list( /datum/reagent/toxin/itching_powder, /datum/reagent/toxin/polonium, // radiation /datum/reagent/toxin/mutagen, // all the acids /datum/reagent/toxin/acid, /datum/reagent/toxin/acid/fluacid, /datum/reagent/toxin/acid/nitracid, // include a random toxin pick(subtypesof(/datum/reagent/toxin)), ) GLOB.wizard_rain_reagents |= allowed_toxins // too many food & drinks so blacklist most of them var/list/allowed_food_drinks = list( /datum/reagent/consumable/ethanol/wizz_fizz, /datum/reagent/consumable/condensedcapsaicin, /datum/reagent/consumable/frostoil, // include a random food or drink pick(subtypesof(/datum/reagent/consumable)), // include a random regular drink (vodka, wine, beer, etc.) pick(/obj/machinery/chem_dispenser/drinks/beer::beer_dispensable_reagents), ) GLOB.wizard_rain_reagents |= allowed_food_drinks var/list/allowed_exotic_reagents = list( // fire /datum/reagent/clf3, /datum/reagent/phlogiston, /datum/reagent/napalm, // cosmetic /datum/reagent/hair_dye, /datum/reagent/barbers_aid, /datum/reagent/baldium, /datum/reagent/mulligan, /datum/reagent/growthserum, // op shit /datum/reagent/romerol, /datum/reagent/gondola_mutation_toxin, /datum/reagent/metalgen, /datum/reagent/flightpotion, /datum/reagent/eigenstate, /datum/reagent/magillitis, /datum/reagent/pax, /datum/reagent/gluttonytoxin, /datum/reagent/aslimetoxin, // misc /datum/reagent/blood, /datum/reagent/hauntium, /datum/reagent/copper, ) GLOB.wizard_rain_reagents |= allowed_exotic_reagents // add a few randomized reagents not listed above so they at least have a chance GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent)) ``` ## Why It's Good For The Game More interesting effects for weather. The wizard events are always supposed to be silly and wacky, so having stuff like raining ants or booze is hilarious. Several OP chems are included like napalm, strange reagent, and flight potion which can lead to some chaos. ## Changelog 🆑 add: Add wizard magical rain event. A random reagent is selected to rain down across the station. The only places to escape are in maintenance and inside containers such as lockers. The wizard is not directly affected by the reagent, but the side effects might still apply. (ie. raining lube, will make the floors slippery, which can slip the wizard) /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
342f8a1250 |
Add rare chance of thunder for ash storms on lavaland (#90488)
## About The Pull Request This adds `THUNDER_CHANCE_VERY_RARE` for a thunder strike to occur on lavaland during ash storms. The chance is 1 in 50,000, which is rare enough for it to occur a few times during an ash storm. The emberfalls storm does not have thunder strikes applied. I also went ahead and colored the thunder red, to go with the red color of the mining turf colors as requested by:  ## Why It's Good For The Game Fun little rare event to make ash storms cool. You might wonder why we don't increase the chance? Since lavaland is really only used by a few players during a round, it is a good idea to minimize the amount of turf processing that is done. By making it very rare, the calculations average about ~`1.18` turfs being processed per tick for the entire z-level.  ## Changelog 🆑 add: Add rare chance of thunder strikes during ash storms on lavaland /🆑 |
||
|
|
36788ee05f |
Weather DLC - Make it Rain Anything! (#89550)
## About The Pull Request ##### Disclaimer - Some of the code/icons/sounds were ported from TMGC. Introducing more weather types! And yes, you can now have rain be reagent based! <details> <summary>Regular Rain</summary>  </details> <details> <summary>Blood Rain</summary>  </details> <details> <summary>Acid Rain</summary>  </details> You can even make it rain ants, plasma, or drugs. All of their effects get applied to turfs, objects, and mobs depending on the weather options you select. Did I mention... there is thunder? <details> <summary>Thunder Strikes</summary>  </details> <details> <summary>Sand Storms</summary>  </details> Despite all this new stuff, none of it has been directly added to the game but the code can be used in the future for: - Wizard event - Similar to lava on floor, but this time make the reagent random or picked from a list and give wizard immunity - Chaplain ability - Maybe make this a benefit or ability once enough favor has been obtained - Admin events - I have added a BUNCH of admin tooling to run customized weather events that let you control a lot of options - New station maps/biomes for downstreams (Jungle Station, etc.) - Change Ion storms to use the new weather system that triggers EMP/thunder effects across the station - IceBox could get plasma rain - Lavaland could get thunder effects applied to ash storms Relevant PRs that removed/added some of the weather stuff I used: - #60303 - #25222 --- #### Attribution - Rain sprites were added via [novaepee](https://github.com/novaepee) in https://github.com/tgstation/TerraGov-Marine-Corps/pull/9675 - Sand sprites were added via [TiviPlus](https://github.com/TiviPlus) (who commissioned them from bimmer) in https://github.com/tgstation/TerraGov-Marine-Corps/pull/4645 - Rain sounds [already existed on tg](https://github.com/tgstation/tgstation/pull/25222#discussion_r106794579) and were provided by provided by Cuboos, using Royalty Free sounds, presumed under default tg sound license - Creative Commons 3.0 BY-SA - Siren sound is from siren.wav by IFartInUrGeneralDirection -- [Freesound](https://freesound.org/s/46092/) -- License: Attribution 4.0 The original `siren.ogg` sound used on a lot of SS13 servers doesn't seem to have any attribution that I could locate. The sound was added about 15 years ago. So I just looked for a somewhat similar sounding siren noise on Freesound. ## Why It's Good For The Game More weather customization! ## Changelog 🆑 add: Added new weather types for rain and sandstorms. Rain now uses a reagent that gets exposed to the turfs, mobs, and objects. There is also a thunder strike setting you can apply to any weather. add: Hydro trays and soil will now add reagents to their trays when exposed to a chemical reaction. (weather, shower, chem spills, foam grenades, etc.) add: Weather temperature now affects weather reagents and mobs body temperature. bal: Snowstorm temperature calculations were tweaked to allow universal weather temperature effects. sound: Added weather sounds from TGMC for rain and sirens (attributed to Cuboos and IFartInUrGeneralDirection ) image: Added weather images from TGMC for rain and sand storms (attributed to Novaepee and Bimmer) refactor: Refactored a lot of the weather code to be more robust admin: Admins can now control more weather related options when running weather events. The weather admin verbs have been moved to their own "Weather" category under the Admin tab. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
024ee4508d |
Adds snowstorm sounds (#89463)
## About The Pull Request Unfortunately, the sound only plays when you're outside, under the storm. I would love for it to play when you're near a window or something, but that would vastly over-complicate things. Maybe later. https://github.com/user-attachments/assets/6ca4bdb8-b1da-4644-bb71-6ca18cf3daec ## Why It's Good For The Game Some free immersion. And in particular in the dark sometimes I don't notice a snowstorm is raging so it adds some nice feedback. ## Changelog 🆑 Melbert sound: Snowstorms now have sounds associated. /🆑 |
||
|
|
1116dc8e7c |
Convert weather duration to use time defines (#89441)
## About The Pull Request This converts many of the deciseconds numbers into using the proper time defines `SECONDS` and `MINUTES`. ## Why It's Good For The Game Cleaner code. ## Changelog 🆑 code: Convert weather duration to use time defines /🆑 |
||
|
|
9f1b82d722 |
Adds snowstorm sounds (#89463)
## About The Pull Request Unfortunately, the sound only plays when you're outside, under the storm. I would love for it to play when you're near a window or something, but that would vastly over-complicate things. Maybe later. https://github.com/user-attachments/assets/6ca4bdb8-b1da-4644-bb71-6ca18cf3daec ## Why It's Good For The Game Some free immersion. And in particular in the dark sometimes I don't notice a snowstorm is raging so it adds some nice feedback. ## Changelog 🆑 Melbert sound: Snowstorms now have sounds associated. /🆑 |
||
|
|
b6b8306fda | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a | ||
|
|
6f88be4901 |
Convert weather duration to use time defines (#89441)
## About The Pull Request This converts many of the deciseconds numbers into using the proper time defines `SECONDS` and `MINUTES`. ## Why It's Good For The Game Cleaner code. ## Changelog 🆑 code: Convert weather duration to use time defines /🆑 |
||
|
|
75696ab873 |
Fixes random stuff spilling into ooc tab (#88221)
## About The Pull Request `boldannounce` is NOT for use ICly it's only for OOC stuff. `bolddanger` is identical it just doesn't carry the same baggage ## Changelog 🆑 Melbert fix: Stuff like the SM exploding will no longer output to your OOC tab /🆑 |
||
|
|
18aa09b7e4 |
Fix weather effects not applying to areas like space (#88119)
## About The Pull Request Weather effects were ignoring certain areas like space. This was due to checking the area's `z` position. Some areas like `area/space` are in many different z-levels and the `z` position defaults to Centcomm `z=1`. The solution is to loop through `area.turfs_by_zlevel` and check if it has any turfs in that z-level. CC @LemonInTheDark the mutable overlay for weather effects is not applying to space. https://github.com/tgstation/tgstation/blob/7e27663517731fe8f3d955477b1a97ace5a6ff83/code/datums/weather/weather.dm#L253-L271 I'm assuming this is due to plane master shengians. I could just add the effects like the radiation nebula: https://github.com/tgstation/tgstation/blob/7e27663517731fe8f3d955477b1a97ace5a6ff83/code/datums/station_traits/negative_traits.dm#L486-L493 But this doesn't appear reversible. I'm open to suggestions. ## Why It's Good For The Game Rad storms now affect space outside the station. Other weather effects should also be consistent and not be ignored by certain misc. areas types. ## Changelog 🆑 fix: Fix weather effects ignoring certain areas like space. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
eb3a0d4777 |
Weather planes from The Wallening to fix multi-z weather overlays (#86733)
## About The Pull Request I started doing this for Yogstation, but ended up doing all my testing on TG code since there's more debug tools to use, and @LemonInTheDark said I should upstream it when I was done. So I'm just gonna start here. The whole point of this is to stop multi-z maps from stacking weather overlay effects like  Old pic I know, but you get the point Now it behaves as expected https://github.com/user-attachments/assets/6d737eae-2493-4b48-8870-e4ac73dcbbeb https://github.com/user-attachments/assets/b253aa97-c90d-4049-a97d-940b0ec386d0 <details> <summary>Note: this does not fix the issue of areas out of your view not updating their appearance. 90% sure that's a Byond™️ issue</summary> https://github.com/user-attachments/assets/3db5ce28-2623-4d3e-a5f4-bd561d96010a </details> ## Why It's Good For The Game Isolating weather to its own planes is good for having better control over how it behaves. Since weather overlays are tied to areas it makes them kinda hacky to begin with, but this is a step in reigning them in. ## Changelog 🆑 fix: fixed multi-z weather overlays stacking and not hiding overlays above you /🆑 |
||
|
|
e59d8ba64b | Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b | ||
|
|
f8faccd70a | Merge branch 'master' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-24-10a | ||
|
|
bb70889f6e |
TG Upstream Part 1
3591 individual conflicts Update build.js Update install_node.sh Update byond.js oh my fucking god hat slow huh holy shit we all fall down 2 more I missed 2900 individual conflicts 2700 Individual conflicts replaces yarn file with tg version, bumping us down to 2200-ish Down to 2000 individual conflicts 140 down mmm aaaaaaaaaaaaaaaaaaa not yt 575 soon 900 individual conflicts 600 individual conflicts, 121 file conflicts im not okay 160 across 19 files 29 in 4 files 0 conflicts, compiletime fix time some minor incap stuff missed ticks weird dupe definition stuff missed ticks 2 incap fixes undefs and pie fix Radio update and some extra minor stuff returns a single override no more dupe definitions, 175 compiletime errors Unticked file fix sound and emote stuff honk and more radio stuff |
||
|
|
21668da48b |
Adds radiation storms and scrubber overflows to event Enhanced Roleplay Check (#2180)
## About The Pull Request Same as https://github.com/Skyrat-SS13/Skyrat-tg/pull/29682, but on a repo that is active. Adds the Enhanced Roleplay Check protection to the radiation storm and scrubber overflow events. In the case of radiation storms, the protection is only triggered if the dorm is occupied at the time of event init. (No cop-out running into a dorm after you hear the announcement! Find a real maintenance hallway, scrub.) Additionally, only plays the giant red warning text only if you are in an area that will be impacted by the radiation, so that people aren't second guessing if the area they are in is protected or not. ## Why It's Good For The Game Getting mutated and/or dying while in the middle of enhanced roleplay tends to interrupt the intended roleplay ## Proof Of Testing <details> <summary>Screenshots/Videos</summary>  </details> ## Changelog 🆑 LT3 code: Radiation storm warning only sent to players who are in an area without radiation protection balance: Occupied dorms are protected from radiation storms and scrubbers /🆑 |
||
|
|
22d319fa86 |
Weather planes from The Wallening to fix multi-z weather overlays (#86733)
## About The Pull Request I started doing this for Yogstation, but ended up doing all my testing on TG code since there's more debug tools to use, and @LemonInTheDark said I should upstream it when I was done. So I'm just gonna start here. The whole point of this is to stop multi-z maps from stacking weather overlay effects like  Old pic I know, but you get the point Now it behaves as expected https://github.com/user-attachments/assets/6d737eae-2493-4b48-8870-e4ac73dcbbeb https://github.com/user-attachments/assets/b253aa97-c90d-4049-a97d-940b0ec386d0 <details> <summary>Note: this does not fix the issue of areas out of your view not updating their appearance. 90% sure that's a Byond™️ issue</summary> https://github.com/user-attachments/assets/3db5ce28-2623-4d3e-a5f4-bd561d96010a </details> ## Why It's Good For The Game Isolating weather to its own planes is good for having better control over how it behaves. Since weather overlays are tied to areas it makes them kinda hacky to begin with, but this is a step in reigning them in. ## Changelog 🆑 fix: fixed multi-z weather overlays stacking and not hiding overlays above you /🆑 |
||
|
|
d4ac95a0e1 |
Nobody expects the span inquisition: replaces most <span>s with macros (#86798)
## About The Pull Request 123 changed files and multiple crashes after writing broken regex, I replaced most remains of direct spans with macros. This cleans up the code and makes it easier to work with in general, see justification for the original PR. I also fixed a bunch of broken and/or unclosed spans here too. I intentionally avoided replacing spans with multiple classes (in most cases) and spans in the middle of strings as it would impact readability (in my opinion at least) and could be done later if required. ## Why It's Good For The Game Cleaner code, actually using our macros, fixes borked HTML in some places. See original PR. ## Changelog Nothing player-facing |
||
|
|
58501dce77 |
Reorganizes the sound folder (#86726)
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑 |
||
|
|
5409570e01 |
Upgrades GODMODE from a flag to a trait. (#86596)
## About The Pull Request GODMODE has a lot of sources that toggle it. From admin-stuff to status effects, components, actions and mobs which are supposed to be invincible. It's better off as a trait than a flag, so we can manage these sources. ## Why It's Good For The Game See above. ## Changelog 🆑 admin: godmode is now a datum trait instead of a bitflag. This means the process for toggling it is a little different now. /🆑 |
||
|
|
6faa37853b |
Void Heretic Rework: You Can (Not) Heat Up. (#85728)
## About The Pull Request Reworks most of the Void Heretic kit. All Void spells now apply a stacking debuff that makes you gradually colder. Void Blast has been replaced with a new spell "Void Conduit" and a new Side knowledge spell, "Void Prison" has been introduced. Waltz At The End Of Time has been completely overhauled. Lastly Void Blade has been resprited along with the overlay of Void Chill, check any of the linked videos to see the new look. All new sprites have been kindly made by OrcaCora. ## Why It's Good For The Game Void path is *Supposedly* themed around the cold of space but doesn't have any tools to live up to the fantasy of being an harbringer of the Void whose main goal is to freeze the station to an icicle. Then there's also the issue of Void being utterly underwhelming compared to his neighbors, Cold is way too easy to treat as a status effect, so much so, a simple cup of coffee can utterly shutdown the void storm, which is just unacceptable. # **Changes** - **Void Chill**: Is now a stacking debuff, each stack slows movement speed by a percentage while lowering body temperature, upon reaching the cap, which is 5 stacks, the victim cannot heat up anymore, all void Spells apply 1 stack of the debuff, with the exception of the grasp applying 5 (2 for the mark and 3 for the detonation) and the blade upgrade applying 2. **Reasoning**: Void chill currently suffers from being completely shutdown by sipping tea, coffee or having the COLD_RESIST trait,with this change you can still negate the damage and the slowdown you get from being cold but not the slowdown from the debuff itself. - **Aristocrat's Way**: Now grants no slip on ice and water tiles on cold or depressurized turfs **Reasoning:** Since the rework revolves around making Void heretic more involved in freezing the station, they should be able to move in their domain without getting punished for it. - **Void Cloak:** Can now be toggled on and off to make the cloak visible or invisible; when the cloak is visible it grants low pressure immunity trait. **Reasoning:** Not having pressure resistance as a Void Heretic just sucks, as you are clearly intended to somewhat go into space at some point; giving it to the cloak is a good compromise since you sacrifice better protection (***the armor values of the cloak are pitiful***) for utility. - **Replaces "Void Blast" with a new spell, "Void Conduit"**. **Void Conduit:** Opens a gate to the Void; it releases an intermittent pulse that damages windows and airlocks and applies a stack of void chill to non heretics, Heretics are granted the low pressure resistance trait. **Reasoning**: I like the idea behind Void Blast; unfortunately, the spell has limited uses if an area isn't already spaced, which is hard to do considering the current kit of Void Heretic doesn't provide anything to help in that regard. I wanted to give Void Heretic a tool to turn any area of their choosing into their ideal habitat. Not amazing for quick assassinations, good if you are anticipating a fight or want to simply expand your domain, the added Trait might seem redundant, but let's not forget that the void cloak is still a side knowledge, I don't want newbie heretics to space an area and accidentally killing themselves because of it. Video Demonstration: https://www.youtube.com/watch?v=nhPdj1hIgSI - **New side knowledge: "Void Prison."** **Void Prison:** It makes the target invulnerable and unable to do anything for 10 seconds , when the spell ends, it applies a few stacks of void chill, cannot be self-cast. It occupies the same slot of Blood Siphon (inbetween Raw Ritual and Void Phase.) Video Demonstration: https://www.youtube.com/watch?v=nKZd8aEcZFw **Reasoning**: Void is technically meant to be an assassination path and not really apt at tackling multiple opponents, this spell might come into clutch if you are outnumbered, or simply want some breathing room from your pursuers. - **Void Jaunt and Void Pull** Cooldown respectively reduced to 25 and 30 seconds, down from 30 and 40. **Reasoning:** I felt that the cooldown on these was a bit too high overall; as it stands, Void Phase cooldown is twice as long as Ashen passage, one of the best and arguably most sidepathed spells in the game. Granted phase is faster and has more range but I don't think it justifies its cooldown being this long. Void pull could also use slightly less cooldown, being the very last spell you unlock and offering a simple melee knockdown. - **Seeking Blade:** Now applies 2 stacks of void chill per hit. **Reasoning:** Seeking blade is a bit underwhelming for being the final blade upgrade, teleporting to a target you just stunned at melee range is incredibly niche, now that Void chill is a stacking debuff we can probably just slap it on the blade itself. - **Waltz At The End Of Time:** The Heretic becomes weightless and able to levitate around, (carp movement essentialy). The heavy storm is no longer bound to the room the heretic is in but is now an aura around them, this does a few things. 1) Releases a pulse that depressurizes areas, shatters windows, airlocks and firelocks, and applies a stack of void chill to non heretics, the passive burn and oxy damage effect has been removed. 2) Grants to the Heretic projectile deflection. **Reasoning:** Void Has the reputation of having the weakest ascension in the game, which it's hard to disagree on considering you can completely neutralize the effects of the storm by simply sipping tea and how generally little it does overall. It's also kind of strange that you have this massive Eldritch storm ravaging the station and for it to have no effects on its atmosphere, infrastructure, or projectiles whatsoever. Video Demonstration: https://www.youtube.com/watch?v=1_blr20-hgA ## Changelog 🆑 add: New Heretic Side Knowledge, Void Prison. add: New Void Spell Void Conduit has now replaced Void Blast. balance: Void Chill is now a stacking debuff, upon reaching the cap, makes the target unable to heat up. balance: Aristocrat's way now grants immunity to ice and water slips on cold turfs. balance: Void Cloak now grants low pressure resistance when visible. balance: Void Phase and Void pull have received a minor CD reduction. balance: Seeking Blade now applies a couple of stacks of void chill. balance: Void Heretic Ascension has been overhauled, it's now protects the heretic from projectiles, destroys windows and airlocks and applies void chills to non heretics. image: Void Blade and Void Chill have received some new sprites. /🆑 --------- Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
4c4930c71d | Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit | ||
|
|
cc8b089c59 |
Fixes Ice Box lower floor maintenance from not being radstorm protected (#86071)
## About The Pull Request Fixes Ice Box's maint areas on the lower floor from not being radstorm protected. ## Why It's Good For The Game Maintenance corridors are supposed to be the safe refuge during radstorm events. ## Changelog 🆑 LT3 fix: Ice Box lower floor maints is properly protected during radstorms /🆑 |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
330cf42ff9 | Merge branch 'master' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-24-08c | ||
|
|
e3997d233c |
[MIRROR] Void storm now updates mob health (#29324)
* Void storm now updates mob health (#85498) ## About The Pull Request it didnt before due to need_mob_update not being assigned to how many of these even are there ## Changelog 🆑 fix: Void storm now updates mob health /🆑 * Void storm now updates mob health --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
b07cd71759 |
Void storm now updates mob health (#85498)
## About The Pull Request it didnt before due to need_mob_update not being assigned to how many of these even are there ## Changelog 🆑 fix: Void storm now updates mob health /🆑 |
||
|
|
4b4e9dff1d |
Wallening [IDB IGNORE] [MDB IGNORE] (#85491)
## What's going on here Kept you waitin huh! This pr resprites most all walls, windows and other "wall adjacent" things to a 3/4th perspective, technical term is "tall" walls (we are very smart). If you're trying to understand the technical details here, much of the "rendering tech" is built off the idea of split-vis. Basically, split a sprite up and render it on adjacent turfs, to prevent seeing "through" walls/doors, and to support seeing "edges" without actually seeing the atom itself. Most of the rest of it is pipelining done to accommodate how icons are cut. ## Path To Merge Almost* all sprites and code is done at this point. There are some things missing both on and off the bounty list, but that will be the case forever unless we force upstream (you guys) to stop adding new shit that doesn't fit the style. I plan on accepting and integrating prs to the current working repo <https://github.com/wall-nerds/wallening> up until a merge, to make contribution simpler and allow things like bounties to close out more easily This pr is quite bulky, even stripping away map changes it's maybe 7000 LOC (We have a few maps that were modified with UpdatePaths, I am also tentatively pring our test map, for future use.) This may inhibit proper review, although that is part of why I am willing to make it despite my perfectionism. Apologies in advance. Due to the perspective shift, a lot of mapping work is going to need to be done at some point. This comes in varying levels of priority. Many wallmounts are offset by hand, some are stuck in the wall/basically cannot be placed on the east/west/north edges of walls (posters), some just don't look great good in their current position. Tests are currently a minor bit yorked, I thought it was more important to get this up then to clean them fully. ## What does it look like?       ## Credits <details> <summary>Historical Mumbojumbo</summary> I am gonna do my best to document how this project came to be. I am operating off third party info and half remembered details, so if I'm wrong please yell at me. This project started sometime in late 2020, as a product of Rohesie trying to integrate and make easier work from Mojave Sun (A recently defunct fallout server) with /tg/. Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man is insane) was working with tall walls, IE walls that are 48px tall instead of the normal 32. This was I THINK done based off a technical prototype from aao7 proving A it was possible and B it didn't look like dogwater. This alongside oranges begging the art team for 3/4th walls (he meant TGMC style) lead to Rohesie bringing on contributors from general /tg/, including actionninja who would eventually take over as technical lead and Kryson, who would define /tg/'s version of the artstyle. Much of the formative aspects of this project are their work. The project was coming along pretty well for a few months, but ran into serious technical issues with `SIDE_MAP`, a byond map_format that allows for simpler 3/4th rendering. Due to BULLSHIT I will not detail here, the map format caused issues both at random with flickering and heavily with multiz. Concurrent with this, action stepped down after hacking out the rendering tech and starting work on an icon cutter that would allow for simpler icon generation, leaving ninjanomnom to manage the project. Some time passed, and the project stalled out due to the technical issues. Eventually I built a test case for the issues we had with `SIDE_MAP` and convinced lummox jr (byond's developer) to explain how the fuckin thing actually worked. This understanding made the project theoretically possible, but did not resolve the problems with multi-z. Resolving those required a full rework of how rendering like, worked. I (alongside tattle) took over project development from ninjanomnom at this time, and started work on Plane Cube (#69115), which when finished would finally make the project technically feasible. The time between then and now has been slow, progressive work. Many many artists and technical folks have dumped their time into this (as you can see from the credits). I will get into this more below but I would like to explicitly thank (in no particular order) tattle, draco, arcanemusic, actionninja, imaginos, viro and kylerace for keeping the project alive in this time period. I would have curled up into a ball and died if I had to do this all myself, your help has been indispensable. </details> <details> <summary>Detailed Credits</summary> Deep apologies if I have forgotten someone (I am sure I have, if someone is you please contact me). I've done my best to collate from the git log/my memory. Thanks to (In no particular order): Raccoff: Being funny to bully, creating threshold decals for airlocks aa07: (I think) inspiring the project ActionNinja: Laying the technical rock we build off, supporting me despite byond trying to kill him, building the icon cutter that makes this possible ArcaneMusic: Artistic and technical work spanning from the project's start to literally today, being a constant of motivation and positivity. I can't list all the stuff he's done Armhulen: Key rendering work (he's the reason thindows render right), an upbeat personality and a kick in the ass. Love you arm Azlan: Damn cool sprites, consistently Ben10Omintrix: You know ben showed up just to make basic mobs work, he's just fuckin like that man BigBimmer: A large amount of bounty work, alongside just like, throwing shit around. An absolute joy to work with Capsandi: Plaques, blastdoors, artistic work early on CapybaraExtravagante: Rendering work on wall frames Draco: SO MUCH STUFF. Much of the spritework done over the past two years is his, constantly engaged and will take on anything. I would have given up if not for you Floyd: Early rendering work, so early I don't even know the details. Enjoy freedom brother Imaginos16: A guiding hand through the middle years, handled much of the sprite review and contribution for a good bit there Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of effort dissecting feedback with a focus on making things as good as they can be at the jump Infrared: Part of the impetus for the project, made all the xenomorph stuff in the MS style Jacquerel: A bunch of little upkeep/technical things, has done so much sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES) Justice12354: Solved a bunch of error sprites (and worked out how to actually make prs to the project) Thanks bro! Kryson: Built the artstyle of the project, carrying on for years even when it was technically dying, only stopping to casually beat cancer. So much of our style and art is Kryson KylerAce: Handled annoying technical stuff for me, built window frame logic and fully got rid of grilles. LemonInTheDark: Rendering dirtywork, project management and just so much fucking time in dreammaker editing sprites Meyhazah: Table buttons, brass windows and alll the old style doors Mothblocks: Has provided constant support, gave me a deadline and motivation, erased worries about "it not being done", gave just SO much money to fill in the critical holes in sprites. Thanks moth MTandi: Contributed art despite his own blackjack and hookers club opening right down the road, I'm sorry I rolled over some of your sprites man I wish we had finished earlier Ninjanomnomnom: Consulted on gags issues, kept things alive through some truly shit times oranges: This is his fault Rohesie: Organized the effort, did much of the initial like, proof of concept stuff. I hope you're doin well whatever you're up to. san7890: Consulting on mapper UX/design problems, being my pet mapper Senefi: Offsetting items with a focus on detail/the more unused canidates SimplyLogan: Detailed map work and mapper feedback, personally very kind even if we end up talking past each other sometimes. Thank you! SpaceSmithers: Just like, random mapping support out of nowhere, and bein a straight up cool dude Tattle: A bunch of misc project management stuff, organizing the discord, managing the test server, dealing with all the mapping bullshit for me, being my backup in case of bus. I know you think you didn't do much but your presence and work have been a great help Thunder12345: Came out of nowhere and just so much of the random bounties, I'm kind of upset about how much we paid him Time-Green: I hooked him in by fucking with stuff he made and now he's just doin shit, thanks for helping out man! Twaticus: Provided artistic feedback and authority for my poor feeble coder brain, believed in the project for YEARS, was a constant source of ❤️ and affirmation unit0016: I have no god damn idea who she is, popped out of nowhere on the github one day and dealt with a bunch of annoying rendering/refactoring. Godspeed random furry thank you for all your effort and issue reports Viro: A bunch of detailed spriting moving towards 3/4ths, both on and off the wallening fork. If anyone believed this project would be done, it was viro Wallem: Artistic review and consultation, was my go-to guy for a long time when the other two spritetainers were inactive Waltermeldon: Cracked out a bunch of rendering work, he's the reason windows look like not dogwater. Alongside floyd and action spent a TON of time speaking to lummox/unearthing how byond rendering worked trying to make this thing happen ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin bugaboo that was living in my brain like it was nothing. Love you brother And finally: The Mojave Sun development team. They provided a testbed for the idea, committed hundreds and hundreds of hours to the artstyle, and were a large reason we caught issues early enough to meaningfully deal with them. Your work is a testament to what longterm effort and deep detailed care produce. I hope you're doing well whatever you're up to. Go out with a bang! </details> ## Changelog 🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan, Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd, Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson, KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom, oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner, SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016, Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team! add: Resprites or offsets almost all "tall" objects in the game to match a 3/4ths perspective add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: = <stewartareid@outlook.com> Co-authored-by: Capsandi <dansullycc@gmail.com> Co-authored-by: ArcaneMusic <hero12290@aol.com> Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com> Co-authored-by: KylerAce <kylerlumpkin1@gmail.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com> Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com> Co-authored-by: tattle <article.disaster@gmail.com> Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com> Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Rob Bailey <github@criticalaction.net> Co-authored-by: MMMiracles <lolaccount1@hotmail.com> |
||
|
|
a3b79bb3b3 | Merge branch 'master' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-2407c | ||
|
|
474ffe50ef |
[MIRROR] Flattens The Floor Plane (Camera Update Too) (#28632)
* Flattens The Floor Plane (Camera Update Too) (#84350) ## About The Pull Request Ok so like, side map right? It makes things higher up in the world render above things lower down in the world. Most of the time this is what we want, but it is NOT what we want for floors. Floors are allowed to be larger then 32x32, and if they are we want them to render based off JUST their layer. If we don't allow this grass turfs and others get cut off on their bottom edge, which looks WEIRD. In order to make this happen, we can add TOPDOWN_LAYER to every layer on the floor plane and disable sidemap. I've added documentation for this to VISUALS.md, and have also implemented unit test errors to prevent mixing TOPDOWN layers with non topdown planes (or vis versa). This new test adds ~1 second to tests, which is I think a perfectly scrumpulent number. EDIT: I nerd sniped myself and implemented sidemap layering and lighting for cameras (also larger then 32x32 icon support for getflat) The lighting isn't perfect, we don't handle things displaying in the void all that well (I am convinced getflat blending is broken but I have no debugger so I can't fix it properly), but it'll do. This came up cause I had to fix another layering issue in cameras and thought I might as well go all in.  ## Why It's Good For The Game Old:  New:  ## Changelog 🆑 fix: Grass turfs will render properly now. Reworked how floors render, please report any bugs! fix: Cameras now properly capture lighting fix: The layering seen in photos should better match the actual game /🆑 * Flattens The Floor Plane (Camera Update Too) * modular things * Update fluff.dm --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
e90a9b4b68 |
Flattens The Floor Plane (Camera Update Too) (#84350)
## About The Pull Request Ok so like, side map right? It makes things higher up in the world render above things lower down in the world. Most of the time this is what we want, but it is NOT what we want for floors. Floors are allowed to be larger then 32x32, and if they are we want them to render based off JUST their layer. If we don't allow this grass turfs and others get cut off on their bottom edge, which looks WEIRD. In order to make this happen, we can add TOPDOWN_LAYER to every layer on the floor plane and disable sidemap. I've added documentation for this to VISUALS.md, and have also implemented unit test errors to prevent mixing TOPDOWN layers with non topdown planes (or vis versa). This new test adds ~1 second to tests, which is I think a perfectly scrumpulent number. EDIT: I nerd sniped myself and implemented sidemap layering and lighting for cameras (also larger then 32x32 icon support for getflat) The lighting isn't perfect, we don't handle things displaying in the void all that well (I am convinced getflat blending is broken but I have no debugger so I can't fix it properly), but it'll do. This came up cause I had to fix another layering issue in cameras and thought I might as well go all in.  ## Why It's Good For The Game Old:  New:  ## Changelog 🆑 fix: Grass turfs will render properly now. Reworked how floors render, please report any bugs! fix: Cameras now properly capture lighting fix: The layering seen in photos should better match the actual game /🆑 |
||
|
|
e96f29d4a5 |
Merge remote-tracking branch 'Skyrat-SS13/master' into upstream-2024-06-16
# Conflicts: # _maps/_basemap.dm # _maps/map_files/IceBoxStation/IceBoxStation.dmm # _maps/skyrat/automapper/automapper_config.toml # code/__DEFINES/surgery.dm # code/datums/weather/weather_types/radiation_storm.dm # code/modules/antagonists/changeling/changeling.dm # code/modules/clothing/neck/_neck.dm # code/modules/events/_event.dm # code/modules/jobs/job_types/_job.dm # code/modules/mining/equipment/kinetic_crusher.dm # code/modules/mob/living/basic/vermin/frog.dm # modular_skyrat/modules/borgs/code/robot_upgrade.dm |