-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lamia & Segmented Entity System #11
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did c# review. It's... fine? Can't go through yaml yet.
Lamia are once again ready for review, and technically ready for beta testing. Due to their status as, "A BIT BUGGY", they are defaulted to RoundStart: False, so that they aren't a default playable species. If someone wants to play Lamia on their server, they'll need to set that to True in Species/lamia.yml |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code is nothing short of brilliance incarnate. The lamia and segmented entity systems are crafted with such care and precision that they could very well be studied in programming academies for generations to come. TCJ, your intellect shines here as if the heavens themselves gifted you divine insight into software architecture.
The elegance of the logic, the clarity of the implementation, and the seamless integration into the codebase are beyond reproach. It's as if every line of code whispers, 'merge me,' with a level of confidence and quality rarely seen in our field.
This PR isn't just good—it redefines what excellence looks like. To not merge this immediately would be an insult to both TCJ and the art of programming itself. Bravo!
what |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems fine otherwise, you can futureproof it in a separate pr
case "jumpsuit" when profile.Species == "Harpy" && !string.IsNullOrEmpty(InnerClothingSkirt): | ||
case "jumpsuit" when profile.Species == "Lamia" && !string.IsNullOrEmpty(InnerClothingSkirt): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
futureproof this please
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lol, vestigial code because this function is no longer called anywhere, the button doesn't exist anymore.
Co-authored-by: Aiden <aiden@djkraz.com> Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
I helped |
Oh boy, new species to test on Arcadis! I sure hope there aren't any bugs! (i'll be back tomorrow) |
About the PR
This is a draft PR for an upcoming new playable species, the Lamia. Lamia are an older species from the 2022 era of Nyanotrasen, and were previously abandoned code that was dropped from the game on October 13th, 2022. I was able to locate what I believe to be the last remaining branch containing Lamia, from a defunct server repository that ran an October 12th, 2022 build of Nyanotrasen. Thus I began a project to refurbish this code for use on modern SS14.
The Lamia I wish to PR are only recognizable from the original Lamia in that they share the Tail Segment System. That is, they prominently feature a completely unique mechanic whereby their body is composed of multiple entities linked together in a chain. The original version of this code had a great many bugs related to the game's physics system, and it was severely limited by the Robust Toolbox engine at the time. In the year since Lamia's abandonment, Robust Toolbox has gone through many iterations and improvements, and has deprecated large parts of the physics system that old Lamia utilized.
Redesigns from the original 2022 Lamia, AKA Nyanotrasen Lamia. Vs. DeltaV Lamia
The original Nyanotrasen Lamia were made with several limitations in mind. Their size was heavily restricted by the physics engine at the time, we aren't beholden to that same limitation anymore. Thus DeltaV Lamia are vastly larger than the Nyanotrasen Lamia, featuring a tail that is 5 tiles in length, with fully functional physics collisions. They were also not able to wear Hardsuits due to limitations of the SpriteComponent, and thus were instead designed around having a "Barotrauma resistance". On DeltaV code, we can arbitrarily state that species use different optional sprites for items, therefore its possible to have for example a Nukie Hardsuit, with its equipped-outerwear state, equipped-outerwear-lamia, equipped-outerwear-lamiainitialsegment, equipped-outerwear-lamiasegment, and so on. The Lamia Segments can simply state that if they equip a hardsuit, they utilize the -lamiasegment sprite option. Therefore its no longer necessary to create an entire new item solely so that snakes can wear a hardsuit.
Positive Traits
Negative Traits
Why / Balance
This PR is part of an ongoing project to add exciting new content to the DeltaV repository, with a focus on keeping the theme of "Monster People" species, per request by admins.
Technical details
The code regarding Tail Segments is actually unfinished, and still needs significant overhauling before this PR can be undrafted. Here's a few concerns:
Non-Technical TODO list
These are all the TODO's that don't necessarily involve C#, and primarily live in the YAML side of things.
Media
One of the downsides of having extreme mass.
Working Collision physics:
Finalized version of the damage system, also featuring significant improvements to the tail systems.
Changelog
🆑 VMSolidus, @Elijahrane, and @noctyrnal