* 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
* Makes deepspace levels slightly more robust
Port of https://github.com/VOREStation/VOREStation/pull/10408
This is supposed to fix oddities with the overmap system where occasionally deepspace sectors are not generated properly.
* Ports another Fix
* Voidsuit Balance Overhaul
Overhauls the stats of voidsuits and tries to put them into niches. So far, I decided to go with a tier-based system.
Tier 1: Basic voidsuits available to the station and can be purchased from Cargo fairly cheaply (35 points).
Tier 1.5: These are slightly improved over Tier 1, but not as good as Tier 2. Currently, only the exploration/exploration medic voidsuits fit the bill.
Tier 2: These voidsuits are available to the station, but can only be purchased from Cargo at higher prices (60 points).
Tier 3: Mercenary voidsuits.
One of the key factors in this overhaul is that the slowdown on voidsuits was made granular. Instead of all voidsuits having a slowdown of 1 or 0, most voidsuits will have a slowdown of 0.5, while voidsuits that have really good protective attributes (such as security voidsuits) will move slower.
As well as this, most higher end voidsuits were given better breach threshhold and resilience values, because even the most heavily armored voidsuits were way too easy to pincushion for some reason.
On top of this, most voidsuits were given niches.
Engineering Voidsuit (Tier 1): Moderate radiation protection, Slightly better pressure/heat protection. Moves slow (Slowdown 1)
Hazmat Voidsuit (Tier 1): Perfect Rad Protection, but loses pressure/heat protection of engineering voidsuit. Also Slow.
Construction Voidsuit (Tier 1): Lighter than Engineering/Hazmat suits, but lacks either radiation protection or pressure/temp protection. Has a bit of extra armor, too. Mostly for field use.
Reinforced Engineering Voidsuit (Tier 2): Has good pressure/temp protections, perfect radiation protection, and moves pretty well.
Salvage Voidsuit (Tier 2): Same as above.
Mining (Tier 1): Fairly decent melee/bomb armor, and slightly harder to breach. Also mild radiation protection. Heavy.
Frontier Mining (Tier 2): Same as above, except lighter.
Medical (Tier 1): Normal weight, has some radiation protection, but otherwise unremarkable.
EMT (Tier 1): Exchanges radiation shielding for additional armor. Normal weight.
Biohazard (Tier 1): Highish melee protection and high atmos protection. Designed for EMTs in extremely hazardous enviornments.
Vay-med (Tier 2): Zero weight, still made of paper mache.
Security (Tier 1): Moderate protection all round, heavy weight.
Crowd Control (Tier 2): Focus on melee/bomb protection,
Security EVA (Tier 2): Focus on Ballistics/Laser protection.
Atmospherics (Tier 1): Pretty much the same. Super High atmos/fire protection. Extremely slow. Extremely hard to breach.
Heavy Duty Atmospherics (Tier 2): Same as above, except lighter.
Exploration (Tier 1.5): Normal weight and armored, but skimps on ballistic armor. Not quite as armored as security voidsuits. Above average rad protection.
Field Medic (Tier 1.5): Loses some of the armor, but gains more rad protection and some heat/atmos protection.
Pilot (Tier 1): Some very light armor plating, minor rad protection, otherwise unremarkable.
Blood-red (Tier 3): Mostly the same, except extremely hard to breach now.
Soot-covered Voidsuit (Tier 3): Heavier than the blood-red, but also pressure and fireproof. Loses a very little bit of ballistic/melee protection for excellent laser protection.
* Accidentally copypasta'd a bit too much
* Adjusts Breach Values
* Add icons for crablegs and crabmeat
* Build all vending machine inventories on startup (cursed)
* Fix cookie having no icon (convert everything to cookiesnack)
* Remove kabob with no actual definition
* Fix spicy burrito having no icon
* Adds linter defines to repo.
* Uncomments linter defines already in the code.
* Resolves unreachable code linter errors.
* Nukes decade+ old syndie specops code except for computer since that's mapped in?????
* Resolves procs has no parent linter error.
* Proc signature fixes
* Bad comments
* "In" danger
* Type safety
* Implied nested list abuse
* Top level ..() usage
* Sleepy coder typos
* Invalid kwargs calls
* Pointless returns
* Linter hacks (see full message)
Byond doesn't care and it has no effect but linter doesn't like var/proc
for holding references to procs, despite that it's valid byond code.
Also, the linter seems to have serious issues figuring out relative
proc names. This commit is a sort of take-it-or-leave-it thing. It's not
required, it just cuts down on warnings, but this code is valid DM code.
* WHATEVER THIS IS
* Trick dreamchecker linter into ignoring this file's sins in it's weird use of vars
* Fix list decoration syntax - Its a list, not list of lists
- To declare that a var is a list you can `var/list/blah = list()` syntax or the `var/blah[0]` syntax. Both do exactly the same thing. But if you do `var/list/blah[0]` that is just like doing `var/list/list/blah = list()`
* Hopefully stops the ai holder subtype folder from going quantum and sometimes changes capitalization over time, and incidentally causing 20+ linter errors.
* Fixes unwrapped negated object in list linter error.
* Resolves colon-like list accessing linter error.
* Turns linter on in linter config.
* Fixes closet indentation properly and cleans up suit storage unit switch.
Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>