Went searching for the cause of the reagent runtime issues. I don't think i found it yet, but i found and fixed a couple things that could be causing it.
Most notable is an egregious bug that caused animals' reagent holder to be nulled after they're dropped from a holder.
Also adds a little safety check to recipes which may fix it.
Fixes two cooking bugs as well. One that was allowing extra containers to be inserted into an already-full oven (they nested inside other containers, it was messy) and a tiny issue with batter overlays being incorrect on cooked meats.
-fix lunchboxes being borked
-tweaks somethings in the wallet
-fix the locker item and add it to the custom loadout
-adds check to stop mouse from hanging people
This PR fixes a number of isssues with cooking that were overlooked during testing.
The cause of the infinite loop:
I neglected to add a buffer to hold cooked items to the microwave when i did likewise for other appliances, this is necessary for bulk cooking as it ensures that things which were just cooked, aren't considered as potential ingredients.
The lack of this buffer caused donk pockets to iterate forever, because the result (a cooked donk pocket) is a valid ingredient to create a cooked donk pocket. so it made the same recipe millions of times over. This is now fixed.
Runtime errors.
A few items would throw runtime errors because they override the make_food function which i significantly altered, and return data in the wrong format. This is now fixed. Affected items were: Donk pockets, valid salad, fortune cookies, amanita jelly.
Uncookable items.
A few recipes were impossible to create in appliances due to my neglecting support for adding non-snack items to cooking containers. This mostly affects diona roast and fortune cookies.. For now i've gone with a simple whitelist approach, allowing paper and holders to be added.
changes:
Fixes PDA manifest.
Fixed some bad turfs on the outpost.
Very slightly sped up lighting initialization.
Fixed mine turfs bordering on space turfs having a bad edge.
Possibly sped up asteroid gen slightly.
A small PR with a couple of effects:
Makes simple animal sleeping a bit more robust, and fixes mice never waking up. Also adds napping support for NPC cats. Sadly it doesnt work for kittens as theyre lacking a sleep animation. Napping support can be easily added to any other creatures though many are lacking suitable sprites
The rest verb for animals is moved to the abilities tab. its more streamlined to have it there since thats where all their other things are
Tweaks a couple of wizard familiars, swaps the mouse and goat role+spells, and reclasses the mouse familiar to inherit from normal mice, so as to preserve base mouse functionality (squeek). Wizard familiars are unreleased content so no changelog
And adds a small feature for mice to shift their pixel offset around gradually as they move. So that they dont stack up and look like one when theres many of them, it adds a little more visual variety.
This PR adds a new utility mechanic for the cult. Pylons can now be upgraded into arcane defensive turrets, which fire bolts of demonic energy. These turrets are entirely automated, somewhat-rapid firing, extremely accurate and quite long ranged, but their damage is very low, and thus their total DPS, even with the fire rate, is still far lower than most real ranged weapons.
-add reflection and parry to the wizard rune sword
-tweaks and add more things to the custom loadout
-remove the linebin and thermals from cargo
-add exosuit paint kits and some other things to cargo spawn
-re-add the non slip flag to skrells
- Fixes#1890
-adds more hats
-beastmen botanists now get some snowflake gloves
-unathi are now poisoned by alcohol, at jackboot's request
-fix smacking people against toilets having no delay
-fix some visible message issues and wrong date in the sink and shower
-removed being able to select bst gear using chameleon clothing
-fix some grammer
-fix vaurca voidsuits having an outdated species
In this PR:
Destroy() fixes backported from PR #1783.
JaniPDA fixes & improvements.
Chickens no longer consume their own eggs.
Language adding in setup is now 100% more sane.
Chemical dispensers now actually check that the user is still alive before renaming.
Ghosts are now marked as non-simulated atoms.
Non-simulated atoms no longer trigger proximity listeners.
Vendors no longer accept synthetic tools as stocking options.
Fixes#812.
Fixes#1877, Fixes#1929.
Fixes#1930.
Fixes#1152, Fixes#1917.
Fixes#1902.
Fixes#1165.
changes:
Added an abstract-machinery helper type for interacting with power systems without duplicating power code.
Changed intercoms to use abstract machines to handle power state changes instead of polling with process().
Hardhat lights are now directional (LIGHT_WIDE)
Fixes#1922.
A bugfix pack of various unrelated stuff. I just poked through the issues list and cherrypicked stuff that looked quick or within my knowledge
Adds some Mech charging pads to the mining outpost. Two inside, one outside near the drills.
I also tweaked the charging pad sprite to remove the background. Basically it had a normal floor tile built into the sprite, which looked dumb on any other kind of floor. i made that part transparent. And the ones in the robotics lab didn't have an actual floor tile under them because of that, someone was lazy when mapping. so i fixed that too.
Fixes fruit slices being inedible. Someone was using Round when dividing their reagents. Protip: never round reagent amounts. the system handles decimals just fine. There was also an error with the loop
Fixes being unable to build multiple windoors on a tile.I fixed it so you can do so, but they cant stack ontop of each other (or existing windows). I also made sure they can't be rotated to stack onto existing border items. And added another rotate verb for windoor assemblies, and fixed their missing ON_BORDER flag.
Nerfed the hallucination chance of paroxetine, to make it less of a meme when prescribed clinically.
Fixes the engiborg inflatables dispenser permanantly breaking if you allow it to run out. That was my fault
fixes#990fixes#862fixes#1875fixes#1842fixes#1742
Items being added:
-Tagged brown coat - Leo Wyatt - keinto
-Tagged brown hat - Leo Wyatt - keinto
Also, fixing some minor issues with some custom items.
-ported nooses from hippie
They can be build with cable, if you stand on any table or bed. You can tie people, but it takes around 20 secs, and people that are not cuffed or disabled somehow can untie themselves. Also, it will produce some flavor texts while they are being hanged or a body is hanging from one.
changes:
bugfix: "Fixed an issue where some objects could not be deconstructed with RnD."
bugfix: "Helmet lights now actually display the powered-on sprite."
bugfix: "Cats on heads no longer magically turn invisible."
bugfix: "Cyborgs' portable destructive analyzer can no longer steal intercoms or the captain's safe."
imageadd: "Duffle (duffel?) bags now have in-hand sprites."
Fixes#1158Fixes#1662
Fixes#1790Fixes#1791
Fixes a number of issues with robot sprites, chem master machine, and surgery steps
The issue with borg sprites was caused by duplicate calls to ..()
Ive standardised robot module parent calls to the top of the function
Fixed the chemmaster not depositing pills in bottles properly. I added a new add_to_storage proc to storage.dm which is just a simple, safe means of putting stuff in stuff. it handles the checking.
Fixed some issues with surgery. A few surgery steps had incorrect "open" var ranges defined which was causing organ repair surgery to be interfered with
Also removed screwdriver from the list of bone mending tools, and added duct tape instead as the ghetto alternative. And allowed energyswords + chainswords to be used for cutting open ribs. theyre already useable for amputation
Fixed an incorrect return var for surgery that was making surgeons able to attack their patients on help intent. Shouldnt happen anymore
And also fixed the experimental welder being un-makeable at the protolathe.
changes:
Fixes missing icon for powered off night-mode tubes.
Nerfs borg floodlight back to sanity.
Reduces the light power on red-alert level fire alarms a bit.
changes:
Holo-computers' displays now draw above the lighting layer, allowing them to be seen in the dark.
APCs' displays now draw above the lighting layer, allowing them to be seen in the dark.
changes:
Ported /vg/'s anti-matter engine.
Anti-matter engine is now orderable from cargo.
Anti-matter fuel is now orderable from cargo.
Using 1 of each AM crate from Cargo, you can get 240 kW.
Note: We already have this engine in our code, this is just an update to it.
Adds the do_after progress bars that were originally going to be added with lighting, but got scrapped due to PR-bloat.
changes:
do_after actions now have a progress bar.
Added a changelog for directional lighting as I apparently forgot it.
The do_after proc's required arguments are unchanged, however it now accepts the argument act_target, which allows the caller to specify what object the progress bar should appear over. Defaults to user.
changes:
Engineering now actually gets engineering-type alert consoles instead of the non-functional base type.
Lighting is no longer broken by shuttles.
The ERT shuttle autoannouncer should no longer cause lighting runtimes.
Fixed some bad newlines in some character setup help texts.
Custom loadout tweaks now properly write to SQL.
Custom loadout is now saved as JSON.
Players are now shown a notice when the server was unable to load their custom loadout.
Drowsyness is now clamped to zero.
Added some new tips to the example.
Tweaked some tips' grammar.
Removed some tips that do not apply to our code base.
Probably fixes embraced vampire thralls not getting vampire verbs.
Fixes#1844.
Fixes#1835.
Probably fixes#1687.
Probably fixes#1824.
Fixes#1839
I'm currently in bugfixing mode to prepare for next update. This PR is a package of fixes for some outstanding issues related to diona that have caused complaints, and a few minor tweaks.
Fixed diona not having a mouth. This wasn't intended, even in bay. It was caused by a fuckup with typing order. Although there were hacky fixes i could do, i opted for the most correct fix, which was re-pathing all diona external organs to be /obj/item/organ/external/BODYPART/diona, whereas before they were /obj/item/organ/external/diona/BODYPART
This approach is the most flexible and future proof. Having all heads behave properly as heads is more important than having base behaviour for diona organs. That can be handled with vars and flags. This did involve duplicating quite a few vars to all that were part of the main class, but its worth it.
Rebalanced Plant-b-gone, requested repeatedly by garn. In general it got heavily nerfed, but carefully tuned. It now slightly outdamages a diona's base regen rate, but not by much. Reagent permeability is also factored in now so equipment can protect against it. Some radium treatment will make it a non issue
Also increased the click cooldown for spraybottles used on mobs. it was pretty broken at 4 dc.
Fixed nymphs getting Tau Ceti Basic for free upon evolving. Now they'll only have it if they had it as a nymph. (this doesnt affect diona that directly join as gestalt)
Added another ear slot for diona, so they can wear two headsets, or a mouse. Often requested
Adjusted diona air consumption. They have a mechanic whereby they consume gases from the environment for nutrition. Ive just made this actually remove said gases. Consumption is significantly below the rate of replacement so it wont be an issue anywhere with a vent, but they can cause air alarms if they hang around too long in an unventilated room.
Fixed a devouring bug where a creature could get stuck marked as devouring something (but not actually doing so) and be unable to start devouring it. Instead of rejection, trying to devour something you're already eating now cancels.
changes:
IPCs now emit a weak light based on the color of their screen.
The system for making species emit light is modular, and Shells+HKs have been excluded from light emission.
After discussing it with Jackboot, I have decided to give the SolRep their own uniform. In an attempt to differentiate them from the captain, I created a new uniform sprite based off of the US Navy Dress Blue uniform.
Since SolRep's and their alternate title of IAA are very different, I decided it would be best to spawn all of the SA gear on the SolRep specifically, so that the IAA doesn't get greedy with a locker.
The SolRep now spawns with:
A regular pair of sunglasses.
A Lieutenant Sol Navy dress uniform
A Navy cap
Laced dress shoes
A ceremonial sword
They no longer spawn with a briefcase.
I also switched the sprite of the Marine dress cap and the Navy dress cap, because I believe that they better match their source this way.
I also renamed the dress whites uniform to be Sol Navy Commander Dress Uniform, and the Dress blues are Sol Navy Lieutenant Dress Uniform. This is to me the best way to convey rank without creating a whole new insignia accessory.
Adding the following items:
Family Beret - Kar'lan Sel'ler - toasterstrudes
Tajaran Service Uniform - Guskov Andrei - fireandglory
Siik'maas-Tau Ceti Basic Dictionary - Zhilin Vadim - fireandglory
Emergency Response Team Duty Jacket - Fai Sinsa - soundscopes
Old Tajaran Nobleman Suit - Faysal Al-Shennawi - alberyk
Prosthetic Vaurca Eyelids - Ka'Akaix'Ghoz Zo'ra - sleepywolf
Removed:
Clement Beach implant at player's request
Vittorio Giurifiglio arm band, because item was turned into a custom loadout option due to the owner and players requests
changes:
Flashlights now default to LIGHT_WIDE directional lighting.
Glowsticks, Lamps, Flares, and Slime Cores use LIGHT_OMNI.
Maglights use LIGHT_NARROW.
Heavy-duty flashlights use LIGHT_SEMI.
EVA suits default to LIGHT_WIDE.
Lanterns use LIGHT_OMNI, as well as now having a more appropriate light color.
Floodlights use LIGHT_WIDE, as well as having a more appropriate light color.
Synthetics default to LIGHT_WIDE. (including drones)
Added some predefined light_wedge values to the lighting defines file.
Fixed some bad angles that screwed up north/south lights in some cases.
Just an assorted package of little things:
Scales down the deep fryer, reducing its power usage, oil reservoir and cooking containers. Should help with complaints about power usage
Fixes up numbers so that cookers heat up in 15 minutes as intended
Adjusts the normal size of all conbination cooking items, so its harder to reach crazy sizes
Removes some debug messages
Fixes user not being populated in get_scooped procs, which was preventing the special "X climbs onto Y" message from appearing when a mouse drags themselves onto a human
adds passtable code to girders and empty machine frames, allowing small mobs to crawl over them and projectiles to sometimes (50% chance) pass over
This is similar to #1722, but it uses a bit of math to allow explicit setting of the angle of light.
Pretty much complete, although no lights have been updated to use directional lighting.
Features:
Facing a wall with a directional light results in darkness - light is not emitted on own tile.
Added a chemistry and surgery varient of the sleek cyborg icons
Fixed that annoying issue with the open cyborg hatch witout battery
having a random pixel
Medborgs can now choose sleek medic or chemist and drone medic or
chemist
Rescueborgs can now only select either one sleek or drone icon
Fixes#1773
-changed some things on the tweak path loadout to avoid runtimes
-fixed some species being affected by virus when they should be immune to them
-fixed being able to miss when firing point blank
-tweaks a bit more the corporate safe contents
-moves some clothing objects to the proper place and fixes some names