While I was rooting around in hydroponics code, I saw that a list was being regenerated with UI interaction, so I threw the list into the plant controller.
No proper sprites for the Floral Somatoray's new mode yet, but it uses the gun sprite from mutate mode, and the projectile sprite from yield mode.
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.
Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it. This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files. In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.
The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
* Plants now use a ban list instead of an approved.
This means that most reagents can be synthesized by plants.
Also added a name generator for strange seeds, based off of a bit of
lipsum and a bit of various plant genus and descriptors.
# Conflicts:
# code/modules/hydroponics/seed.dm
* Removes # sign
Replaced some attack() overrides with apply_hit_effect() or other attack
procs where appropriate.
Removed the attack() override from reagent_containers.
Conflicts:
code/game/objects/items/weapons/clown_items.dm
code/game/objects/items/weapons/material/kitchen.dm
code/game/objects/items/weapons/stunbaton.dm
code/modules/mob/living/carbon/human/human_defense.dm
code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm
code/modules/mob/living/simple_animal/friendly/spiderbot.dm
code/modules/mob/living/simple_animal/simple_animal.dm
``/mob/dead/observer`` -> ``/mob/observer/dead``
``/mob/eye`` -> ``/mob/observer/eye``
Reason being that they are similar in that they both don't interact with
the world in any way. Some procs were shared, some checks as well, and
it overall makes more sense this way. Plus, there were no ``/mob/dead``
mobs.
Fixes a number of plants seemingly randomly having invisible plant
growth states.
- This was caused by overly-rounded math resulting in attempts to call
growth states that do not exist.
Replaced some attack() overrides with apply_hit_effect() or other attack
procs where appropriate.
Removed the attack() override from reagent_containers.