mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-16 18:45:22 +01:00
docker-container
2 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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! /🆑 |
||
|
|
8957eb763c |
Spider Evolution - Young Spiders [Ready] (#76692)
## About The Pull Request This pr adds a young spiders that appear between spiderlings and adult spiders. Now spiders have a stage where they are squishy but can also spin webs and do some other things early depending on the spider type. Spiderling stage takes 40 seconds and young spider stage take 1 minute, ealier for spiderling this was 1 minute. Also adds a new wizard spider sprite and makes the spider form usable. Gives Wizard Spider version has better immunity against fire since it can kill a wizard very fast it they are not paying attention. Makes tangle spider get more health but makes the self-healing worse. This is done because spider is a team antag except for the flesh (changeling spider), making it so solo-playing as tangle is less encouraged. Scout spiderling gets thermal vision also. It cannot communicate, but it can already start scouting now. Viper deals bonus damage when an enemy is on low health. Toxins don't kill humans anymore, and since the viper spider only deals 5 damage now it deals more so it can actually take down enemies at low health. They also have a little more health since they always die very fast. Viper can also change between a defensive/slow mode with more armor or a offensive/speed mode with less armor. Nurse spider heals for 25 instead of 20, since 25 is one laser shot, it makes more sense for the nurse spider to be able to heal that amount. Flesh spider grows faster since they are a solo antag and spawn killing isn't cool. Tarantula spider can now tear down walls by clicking them instead of needing to use their charge attack. They can also build wall webs and passage webs. Their damage coeffs also got the regular burn factor for spider so their health also increased a bit.   ## Why It's Good For The Game Now there is a smooth transition between the tiny spiderling and the bigger spider stage. This will promote people to help the hive at an earlier stage while not being too powerful yet. It is also realistic and adds extra flavor to the spider antag. The other balance changes are improvements to the game. ## Changelog 🆑 add: Young Spiders that appear between spiderlings and adult spiders. balance: Wizard Spider version has better immunity against temp damage and can lay webs faster. balance: Tangle Spider sucks more with self-healing but has more health. balance: Scout spiderling gets thermal vision. balance: Viper deals bonus damage when an enemy is below 20% health. /🆑 |