mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-04 21:56:01 +01:00
2bb4dfe76c
## About The Pull Request So, I've had this idea to make a contribution to the Bepis feature with some modsuit stuff. The gimmicky stuff is ok and a good way to even out the better content since it has game of chance design it has (you can find those disks in space anyway so...). However, the Experimental MODsuit node feels very underwhelming right now, compared to how big that feature is. This PR adds three MOD modules to the Experimental MODsuit node, plus two more: - Magneto Charger: While the Modsuit is activated, each step the user takes will charge the installed power cell by a tiny bit, enough to sustain a standard modsuit of generic slow speed with only a few, easy modules installed. It won't work in zero G, while flying, pulled by someone else, on a conveyor belt, riding a vehicle or crawling on the floor, though. - Recycler: It collects (most) garbage and casings off the ground and recycles them into material sheets that can be dispensed on an adjacent location or storage with with Middle Mouse Button. Doesn't clean debris, and scuffed because most trash doesn't yield material anyway. - - It also has two subtypes, unbound from the node: one that dispenses riot foam darts and can be found on the black market, and another that dispenses the more innocuous foam darts, rarely found in maints. - Shooting Assistant: A configurable module. On Stormtrooper mode, it will give the user a faster fire rate (the double tap trait) at the cost of accuracy. On Sharpshooter mode, it will improve the user accuracy and make their shots ricochet against walls at least once (if the hit atom allows that, that is, e.g. lasers don't ricochet against iron walls), at the cost of movement speed. Both modes also prevent the user from dual wielding guns. To make the Stormtrooper mode stackable with the poor aim quirk and refrain from making a new trait for the sharpshooter mode, the gun spread code in gun.dm has also received a little refactor and cleanup. Also, it's been tested. ## Why It's Good For The Game The Experimental MODsuit node is quite shabby and could use something extra to make it more appealing to MODsuit enjoyers. Also doubles down as a small addition to the black market and maint loot, and code cleanup, since gun code gives off some garbled vibes. ## Changelog 🆑 add: Expanded the Experimental MODsuit Bepis node with three new modules: Magneto Charger, Recycler and Shooting Assistant. add: Added a Riot Foam Recycler module to the black market, as well a more innocuous version as maint loot. /🆑
75 lines
3.4 KiB
Plaintext
75 lines
3.4 KiB
Plaintext
/// Is the material from an ore? currently unused but exists atm for categorizations sake
|
|
#define MAT_CATEGORY_ORE "ore capable"
|
|
|
|
/// Hard materials, such as iron or silver
|
|
#define MAT_CATEGORY_RIGID "rigid material"
|
|
|
|
/// Materials that can be used to craft items
|
|
#define MAT_CATEGORY_ITEM_MATERIAL "item material"
|
|
|
|
///Use this flag on TRUE if you want the basic recipes
|
|
#define MAT_CATEGORY_BASE_RECIPES "basic recipes"
|
|
|
|
/// Used to make a material initialize at roundstart.
|
|
#define MATERIAL_INIT_MAPLOAD (1<<0)
|
|
/// Used to make a material type able to be instantiated on demand after roundstart.
|
|
#define MATERIAL_INIT_BESPOKE (1<<1)
|
|
|
|
//Material Container Flags.
|
|
///If the container shows the amount of contained materials on examine.
|
|
#define MATCONTAINER_EXAMINE (1<<0)
|
|
///If the container cannot have materials inserted through attackby().
|
|
#define MATCONTAINER_NO_INSERT (1<<1)
|
|
///if the user can insert mats into the container despite the intent.
|
|
#define MATCONTAINER_ANY_INTENT (1<<2)
|
|
///if the user won't receive a warning when attacking the container with an unallowed item.
|
|
#define MATCONTAINER_SILENT (1<<3)
|
|
|
|
// The following flags are for decomposing alloys. Should be expanded upon and diversified once someone gets around to reworking recycling.
|
|
/// Can reduce an alloy into its component materials.
|
|
#define BREAKDOWN_ALLOYS (1<<4)
|
|
/// Makes the material composition include transmuted materials objects
|
|
#define BREAKDOWN_INCLUDE_ALCHEMY (1<<5)
|
|
/// Breakdown flags used by techfabs and circuit printers.
|
|
#define BREAKDOWN_FLAGS_LATHE (BREAKDOWN_ALLOYS)
|
|
/// Breakdown flags used by the ORM.
|
|
#define BREAKDOWN_FLAGS_ORM (BREAKDOWN_ALLOYS)
|
|
/// Breakdown flags used by the recycler.
|
|
#define BREAKDOWN_FLAGS_RECYCLER (BREAKDOWN_ALLOYS)
|
|
/// Breakdown flags used by the sheetifier.
|
|
#define BREAKDOWN_FLAGS_SHEETIFIER (BREAKDOWN_ALLOYS)
|
|
/// Breakdown flags used by the ore processor.
|
|
#define BREAKDOWN_FLAGS_ORE_PROCESSOR (BREAKDOWN_ALLOYS)
|
|
/// Breakdown flags used by the drone dispenser.
|
|
#define BREAKDOWN_FLAGS_DRONE_DISPENSER (BREAKDOWN_ALLOYS)
|
|
/// Breakdown flags used when exporting materials.
|
|
#define BREAKDOWN_FLAGS_EXPORT (NONE)
|
|
|
|
/// Whether a material's mechanical effects should apply to the atom. This is necessary for other flags to work.
|
|
#define MATERIAL_EFFECTS (1<<0)
|
|
/// Applies the material color to the atom's color. Deprecated, use MATERIAL_GREYSCALE instead
|
|
#define MATERIAL_COLOR (1<<1)
|
|
/// Whether a prefix describing the material should be added to the name
|
|
#define MATERIAL_ADD_PREFIX (1<<2)
|
|
/// Whether a material should affect the stats of the atom
|
|
#define MATERIAL_AFFECT_STATISTICS (1<<3)
|
|
/// Applies the material greyscale color to the atom's greyscale color.
|
|
#define MATERIAL_GREYSCALE (1<<4)
|
|
|
|
/// Wrapper for fetching material references. Exists exclusively so that people don't need to wrap everything in a list every time.
|
|
#define GET_MATERIAL_REF(arguments...) SSmaterials._GetMaterialRef(list(##arguments))
|
|
|
|
#define MATERIAL_SOURCE(mat) "[mat.name]_material"
|
|
|
|
///Special return values of [/datum/component/material_container/insert_item]
|
|
#define MATERIAL_INSERT_ITEM_NO_MATS -1
|
|
#define MATERIAL_INSERT_ITEM_NO_SPACE -2
|
|
#define MATERIAL_INSERT_ITEM_FAILURE 0
|
|
|
|
|
|
// Slowdown values.
|
|
/// The slowdown value of one [SHEET_MATERIAL_AMOUNT] of plasteel.
|
|
#define MATERIAL_SLOWDOWN_PLASTEEL (0.05)
|
|
/// The slowdown value of one [SHEET_MATERIAL_AMOUNT] of alien alloy.
|
|
#define MATERIAL_SLOWDOWN_ALIEN_ALLOY (0.1)
|