Most items in the codebase have a slowdown multiplier of one, when slowdown is handled species-side in multiples of 0.5. This makes the effect of species slowdown almost non-existant when item slowdown is involved, and makes species that have item slowdown reduction (such as Unathi) unnaturally fast.
Do note that I also went through and removed odd slowdown numbers as well, as, due to the way slowdown is tied to tickrate, it should be done in intervals of 0.5.
I tried to view things on a case by case scenario but there will probably be changes that will need to be double checked.
Some items will be handled differently, I will list the exceptions below.
Boots of Speed: Kept at -1, it is boots of speed after all.
Chemistry Bag: Increased to 3. This should not really be toted around outside of chemistry.
Hybrid Tools: They already have a lot of other disadvantages, and are kind of hard to get, and 0.1 is a weird number for slowdown.
Site Manager's armor: Already 1.5
Unathi Breacher modules: These things are overpowered and Unathi already have a racial trait to virtually remove slowdown.
Voidsuits: Already done in intervals of 0.5, no change.
RHR Accellerator: This thing probably has appropriate slowdown values for what it is.
Utility suits: Already done in intervals of 0.5
Clothing/suits/armor: Already done in intervals of 0.5
Fixes synthetic var not getting cleared when loading character slots. Due to the char setup mannequin's nature of being a single same mob just getting its properties loaded from save slots, loading/making a synth character would permanently mess up the var for all non-synth chars on the roster and cause issues with synth-related settings because there was nothing in the code to clear the var.
* Indescribable! - A Food Flavor Fixing Pass
*You keep using that word. I do not think it means what you think it means.*
- Food will no longer erroneously have double the nutriment it's supposed to.
- Fixed a lot of invalid food nutriment tastes and spruced up some old ones.
- Made all foods use `nutriment_amt` where applicable
- Made those not applicable to the former use `nutriment_desc` when manually adding nutriment
- Moved setting bitesize out of Initialize, because... why
* fixes stragglers
* select_recipe improvement
Removes the call to Timsort and the recipe comparator proc;
uses a handrolled implementation of
`argmax(items + reagents + fruit)` instead.
This reduces the memory footprint of `select_recipe`
as well as the amount of processing needed to select the optimal recipe.
* angelogchay
This simplifies some very old and bad code, and unifies the admin/non-admin printing to avoid duplicate code.
Also fixes a number of bugs caused by ambiguous parens and various linter errors.
* Message piece combiner returns a list
* Emote formatter returns a list
* Port Runechat
* Various onamonapoea
* Suggested changes, small opts
* Fix chat message on different size mobs
* Couple more runefixes
* Enable encoding chat emphasis in runechat
* Remove extra asterisks from rune audible messages
* Fix runedefines
* Refactor holomap generation
* Portable mapping units
* Fix misnamed state
* Make it small
* Reduce power usage
I didn't know you could use fractional amounts!
* Apply suggested changes, fix indent
* Fix icon_state bug
armour plate and armour plate inserts have the same sprite, name, and examine text in game. I can fix two of three things. You need to do stuff with amour plate inserts to make it fit in a plate carrier wile amour plate just will never fit
* Adds invalid recipe unit test
Checks for:
- Missing result type
- Result type is not /atom/movable (mob or obj)
- Result quantity unset
- Quantity less than or equal to zero
- Quantity is not an integer
* Update recipe_tests.dm
* adds tests to dme
* dont code at night (remix)
* Update recipe_tests.dm
* Fixes infinite loop following cooking error
```
while (select_recipe(available_recipes,C) == recipe)
var/list/TR = list()
TR += recipe.make_food(C)
```
This would never consume reagents due to an early return, meaning it would never terminate from the while loop. Clearing the reagents is an easy fix for something that will hopefully never happen, and avoids locking the server up if it does.
Also makes such failures obvious.
TODO: Unit test for recipes without results.
* Fixes/tweaks
* fix CI