Commit Graph

25 Commits

Author SHA1 Message Date
TemporalOroboros
976c1fcb8c [READY] Bespoke Datum Mats (#55296)
* Bespoke Material Backend

- Adds support for bespoke materials:
  - Reimplements [/datum/material/var/id]
  - Ports GetIdFromArguments from SSdcs
  - Adds a wrapper define for GetMaterialRef
  - Adds [MATERIAL_INIT_BESPOKE]
  - Adds [/datum/material/proc/Initialize]
- Does not actually add any bespoke materials

- [ ] TODO: Code docs
- [ ] TODO: Actually adding bespoke materials

* Some has_material procs and cleaning up some spaghetti

- Adds a pair of has_material procs for use in checking whether a given atom has a given material

* Adds meat

- Adds bespoke meat variants
  - Does not make them accessible
- Shuts up the linter

* Implements bespoke meat

- Makes the material container preserve bespoke materials
- Makes the sheetifier accept bespoke materials
- Makes the autolathe accept bespoke materials
- Makes the gibber produce bespoke meats

* Makes butchering produce bespoke meats

This is jank and really needs to be folded into a unified butchering and gibbing system

* Material documentation

- Adds, fixes, and touches up some documentation

* Material container insertion callback

- Changes the proc used to expand the material container's material list ot a proc used to check whether a material fits into a material container
- Instantiating new materials is no longer O(n) relative to the number of autolathes in existence.

* Makes processing meat conserve materials

- Makes bespoke meat carry over into meatballs

* Makes preserving custom materials an option

- Implements the ability to turn preserving custom materials _off_ for processor recipes

* Fixes all bespoke materials of the same type using the same singleton

- We use ids now, not just types.

* Makes the fat sucker produce bespoke meats

- Because consistency is good.

* Fixes autolathes merging bespoke stacks into normal stacks.

* Makes the callback to test materials for holdibility optional

- @Floyd

* GetMaterialRef -> GET_MATERIAL_REF

- We capitalize macros.

* Removes an extraneous callback

- Makes the sheetifier use functionality I didn't notice I implemented a few commits ago.

* Makes mob and species meat null compatible

* Fixes the ore silo

- The ore silo had really snowflake material handling that has been brought in line with the rest.
- The materials should show up in the correct order.

* Fixes minor lathe bugs

- Fixes stack_traces caused when lathes tried to fetch materials using reagent typepaths
- Fixed the selective reagent disposal topic. I have no idea how long this has been broken.

* Various documentation fixes

- Clarified a couple comments
- Removes an extraneous ?. operator
- Fixed mat floor tiles having bugged reagent temperatures

* More fixes

-/datum/material/meat/mob -> /datum/material/meat/mob_meat
- Adds atom typecheck to material containers.

* Fixes old typepaths
2021-01-15 23:39:58 -08:00
IndieanaJones
4028970e09 [READY] Swarmer Balance Buffs (#55353)
* Update Swarmers

* Always Work With an Updated Version of The Game

* Changed How Spawn Timer Works, Fixed Traps

* Document force

* Use Helpers
2020-12-23 13:38:01 -05:00
Jared-Fogle
0a77d27a1b Replace direct poi_list manipulation with element (#55416)
Replaces GLOB.poi_list |= src and GLOB.poi_list -= src with an element that handles it directly.

More consistent code, especially when a lot of code couldn't decide how to add/remove (some |=, some -=, some .Remove, etc).
2020-12-10 23:30:25 +00:00
TiviPlus
0eaab0bc54 Grep for space indentation (#54850)
#54604 atomizing
Since a lot of the space indents are in lists ill atomize those later
2020-11-30 12:48:40 -05:00
IndieanaJones
0a22bb785d Fixes Issues Regarding Finding Spider and Swarmer Spawns (#55054)
This PR fixes the issue where people couldn't teleport to spider egg clusters using the notification.

It also adds both the swarmer beacon and spider egg clusters to the ghost orbit menu. This should make it easier to find instances of both in cases where a player might miss the initial notification.
2020-11-28 07:57:19 -03:00
LemonInTheDark
4431478361 [READY] Swarmer QOL and Balance Update (#54340)
* Really revert commit

* Now Undo the simple change

* Undo My Stupid yet again

* Undo my stupid yet again

* No

* And for the last time

* Update the Swarmer Mob

* Update Spawn Info with Accurate Information

* Update Swarmer Event

* Add Swarmers to Dynamic

* Fugg

* Fix Indentation

* FIX Indentation

* Add Newline
2020-11-02 16:09:17 -08:00
Qustinnus
74755a5a3a Audio falloff re-work, and increased audio range. (#54362)
imo; the ss13 audio-scape is quite barren, you can only hear most things if you can see them, which in my opinion doesn't make much sense. This changes that so you can hear further away, but falloff is much higher, so in reality you will only hear things relatively quietly when they're out of sight.

This PR increases the hearing distance of most sound by 9, excluding sounds such as antag items that are meant to be used stealthily

This PR also replaces Byond's inbuilt falloff system with something I made, (And thanks to potato for helping me throw together a formula for it). This fall-off system makes sound fall off more naturally, with sounds being full volume within a certain range, and then softly falling off until they are completely quiet. This makes for a smoother transition between "This sound is full volume" and "I dont hear this sound".

Co-authored-by: ff <ff>
2020-10-20 17:14:16 -07:00
IndieanaJones
d3e9b34f71 Update Spawn Info with Accurate Information 2020-10-11 21:50:52 -04:00
IndieanaJones
6219c37336 Update the Swarmer Mob 2020-10-11 21:48:59 -04:00
TemporalOroboros
cab4313b29 Adds Alloy Materials (#53623)
Adds and implements alloy materials

Takes several materials that were mostly fluff and converts them into actual usable materials.
Messes with material code a bit to make alloys recycle back into their component materials.
Adds the alloy materials to their in-game stacks.

Materials added:
    Plasteel
    Plastitanium
    Plasmaglass
    Titaniumglass
    Plastitanium Glass
    Alien Alloy

Makes plasteel/plastitanium/plasmaglass and the rest able to have separate properties from their component materials. It doesn't make much sense that the materials used to seal off the supermatter chamber from the rest of the station would be prone to exploding when heated.

Allows for further expansion of materials, possibly including actual functional metallurgy and smelting at some point in the very distant future.

(Lemons note: Adds a regeneration component, used for alien alloy)
2020-10-09 12:23:40 -07:00
Timberpoes
4d947b1906 Uberfeex 2020-09-30 03:52:04 +01:00
Rohesie
3cc7733f34 Moblity refactor: hands blocked and restrained edition. (#53981)
Splits the restrained() proc into component traits: TRAIT_HANDS_BLOCKED for the general inability to use hands and TRAIT_RESTRAINED for the more specific condition that permits arrests.
    Code moved away from the update_mobility() proc so it doesn't have to wait for an update, instead changing based on events. The idea is to eventually kill that proc.
    Wrapper proc added for setting the handcuffed value so we can react to the event of it changing.
    Kills the RestrainedClickOn() proc. That is now just an UnarmedAttack(), in where the ability to use hands can be checked. Monkeys keep their bite attack and humans their self-examine.
2020-09-29 11:23:43 +01:00
Timberpoes
c2b8b5c0ce Machines now store their components in their contents. (#52970)
Machine parts are now located in the machine instead of nullspace.
2020-09-24 13:51:40 +02:00
Jared-Fogle
0c8bf36548 Remove references to old singularity machines (#53509)
Removes the singularity generator and the particle accelerator. The former had no sprite, and the latter only existed because of a leftover type path. This does not affect gameplay at all.

Removes the "Start Singularity" verb that was only intended for debug use.

Fixes #53508.
2020-09-11 01:08:43 +01:00
Jack7D1
a9b2a170ac Swarmers can no longer break walls with big pressure differences. (#53323) 2020-09-04 13:34:45 -03:00
TiviPlus
ca366c3ea1 Bools and returns super-pr (#53221)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-28 14:26:37 -07:00
Couls
e7f99e3b8b Browser Status Panel (#53112) 2020-08-27 15:28:03 -07:00
TemporalOroboros
6e950daccc Defines damage flags. (#53158) 2020-08-24 08:20:33 -03:00
Rohesie
eda7c6ca55 Overlay lighting component (#52413)
Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.

It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:


This is a BYOND limitation, very well worth it IMO.

🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑
2020-08-22 14:56:38 +12:00
Rohesie
7859721611 Explosions SS runtime fix + code cleanup (#52894)
* runtime fix

* turf references are immortal
2020-08-21 21:57:29 +02:00
IndieanaJones
de31a2b625 Fixes Swarmer Barriers (#53049) 2020-08-19 21:16:00 -03:00
Jared-Fogle
45c14f6330 Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)
Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl
2020-08-20 09:11:28 +12:00
IndieanaJones
d05e09aa25 Fixes Typo and Tele-Remove Bug 2020-08-14 19:18:47 -04:00
Timberpoes
11c026946c Line endings changed from CRLF to LF (#52469) 2020-07-24 20:29:29 +02:00
IndieanaJones
616177f4cb [READY] Swarmer Rework (#51558)
* Move swarmer.dm to the hostile simple mob folder, make changes

* Move swarmer event file to events, make changes

* Update Resource Pricing on Swarmer HUD

* Update traumas.dm

* Update parts.dm to remove deactivated swarmers

* Remove the Swarmer Drone Dispenser

* Remove swarmer.dm from the antagonist file

* Move the swarmer event to the events file

* Add a proper swarmer antagonist file

* Load proper files

* Various Fixes, Implement ATH's Rapid Consumption

* Utilize the Nightmare's Light Level Check on Xeno Spawns For Swarmers, Hopefully Filters Out Bad Spawns

* Update The Pricing In The Descriptions

* Get Rid of That Random Backslash

* Use the Proper Damage Proc for Cyborgs

* Fix the Bug Shiz pointed out

* Update code/modules/mob/living/simple_animal/hostile/swarmer.dm

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>

* Fix the Swarmer Antagonist File

* Fix the traumas issue

* Update traumas.dm

* Update code/modules/events/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/mob/living/simple_animal/hostile/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/mob/living/simple_animal/hostile/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/mob/living/simple_animal/hostile/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Upload Swarmers Folder

* Remove the swarmer file from the hostile folder

* Update the swarmer megafauna to work with changes

* Load the seperated swarmer files

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Catch-22 Variable

* Update code/modules/events/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_objs.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_objs.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_objs.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Fix all the references in the swarmer megafauna file

* Fix method names in the swarmer mob file

* Fix method names in swarmer_act.dm

* Fix Method Names in swarmer hud file

* Update code/modules/swarmers/swarmer_objs.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_objs.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_objs.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Update code/modules/swarmers/swarmer_act.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Fix the naming issues to let it compile

* Change the Things Rohsie Wanted Changed

* Change CLRF Back To LF

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-24 03:56:58 -03:00