Files
cb9535e7bb [Bounty] Vore 4.0 (#1808)
## About The Pull Request
A ground-up rewrite of Vore 3.0 (Virgo's current system) as a
/datum/component.

Resolves #464
Resolves #845

Remaining work:
 - [ ] Fix any bugs found in testing

## Why It's Good For The Game

See bounty. People want this to enjoy themselves.

## Proof Of Testing

![ui screenshot 1](https://i.tigercat2000.net/2024/07/DvaLhhto4m.png)
![ui screenshot 2](https://i.tigercat2000.net/2024/07/hfUhSvyRye.png)
![ui screenshot 3](https://i.tigercat2000.net/2024/07/RZ2CH6czOh.png)
![ui screenshot 4](https://i.tigercat2000.net/2024/07/qvFcSheDvp.png)
![ui screenshot 5](https://i.tigercat2000.net/2024/07/WGXgJaYbd1.png)
![ui screenshot 6](https://i.tigercat2000.net/2024/07/VAGBJclvNt.png)
![ui screenshot 7](https://i.tigercat2000.net/2024/07/6JCYQrSokC.png)
![ui demo visuals](https://i.tigercat2000.net/2024/07/6rge5XUPus.gif)

![chat
screenshot](https://i.tigercat2000.net/2024/07/dreamseeker_tEmbse7Diu.png)
![hud screenshot](https://i.tigercat2000.net/2024/07/0pBGLYq6bY.png)
![prefs screenshot](https://i.tigercat2000.net/2024/07/ZMusgUnjxR.png)

## Changelog

🆑
add: Mechanical Vore
/🆑

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

<!-- 🆑
add: Added new mechanics or gameplay changes
add: Added more things
del: Removed old things
qol: made something easier to use
balance: rebalanced something
fix: fixed a few things
sound: added/modified/removed audio or sound effects
image: added/modified/removed some icons or images
spellcheck: fixed a few typos
code: changed some code
refactor: refactored some code
config: changed some config setting
admin: messed with admin stuff
server: something server ops should know
/🆑 -->

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->

---------

Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
2024-08-18 15:53:53 -06:00

1.6 KiB

Modular DCS Vore

This is an implementation of vore made entirely using components.

By Shadow Larkens

Configuration

Most critical options are in _defines.dm including things such as the max amount of bellies that can be created, how many prey can be eaten, etc.

Debugging

If you need to debug this system, go to the top of _defines.dm and uncomment #define VORE_TESTING to enable helpful debugging features such as not needing clients and working on all living mobs.

Code Overview

_defines.dm - Settings and constants. absorb_control.dm - Component used for prey controlling preds temporarily belly.dm - Individual areas that have their own name, description and digestion mode. belly_messages.dm - Contains helpers for all of the many different customizable messages a belly can produce. belly_serde.dm - Controls belly serialization and deserialization. digest_modes.dm - Singletons that handle affecting a belly's contents on each process. preferences.dm - Vore related preferences subsystem.dm - Belly processing subsystem / global event listener ui.dm - tgui interface for managing the component vore.dm - The main component that orchestrates everything else. z_undefs.dm - undefs to keep defines from escaping.

Special Notes

  • Being absorbed is marked by TRAIT_RESTRAINED and TRAIT_STASIS with a source of TRAIT_SOURCE_VORE.