* ports plasmeme windows from /vg/
* Update window.dm
* It's the stairway to seinfield
* fixity fix fix
* See this code if you're wondering why I rarely get any sleep
* *scream
* now
* this is going to give me PTCSD - post-traumatic coding stress disorder
* *scream
* Improves forensics datum
* Meep.
* RA RA RASPTUIN... i'm not crazy, right?
* better
* I think it works... /s
* less compile errors
* Reduces compile errors to a much more managable 50
* shitcode.exe
* ehhh
* HEY EVERYONE, IT WORKS!!
* Make slide code less autistic
* blue skyyy
* no more bay forensics!
* IT WORKS
* Remove EnforceSize, it isn't used.
* icon2html
* More bicon sutff
* eee
* aeee
* abc
* abc
* a
* abc
* e
* forensics check in initalize
* huh
* bleh
* Update _drone.dm
* Update _drone.dm
* Update _drone.dm
* Stacks automatically merge on Initialize
🆑 coiax
fix: Stacks of materials will automatically merge together when created.
You may notice differences when ejecting metal, glass or using the cash
machine in the vault.
/🆑
Okay, so instead of just obsessively checking every time we make a
stackable item to see if anything stacks (which not everything does
anyway), we put the check in Initialize. Obviously, you can't merge into
a full stack, so it just goes down the line.
Objects are allowed to qdel() in New/Initialize, we made that a thing
that was possible.
Also some generic code cleanup, mostly returns into `.`
* Don't reuse variable names
* a very calming act
when the world is too much, too fast
* i'm tired
but i have to be efficient, infinite
* lick your lips at the sight of me
a fantasy made reality
* Only holy water will clean blood runes
* macro!
* holy no longer required
* i am far too unethical and spite driven half the time
* it appears code done in the middle of the night in the hope that oranges hasn't merged my pr isn't always that good
- Fixed+Future proofed Mutant Parts Sprites
- Fixed Lesser Summon Guns activating the wrong hand
- Fixes stacks merge()ing with and consuming themselves
* Added an AltClick function to split Stacks
Stacks now have an altclick function that lets you input how much you
would like to split the stack by
Also changed the regular click code by turning most of its code into a
proc, this reduced the amount of copy-pasting needed, as both the
regular and alt click on stacks do the same thing, except alt clicking
lets you input a number
* Wrong var name
* Edits based on feedback
-Removed trailing return
-removed uneeded if statement
-removed uneeded src as it should call the right method anyway
* Removed metal interact after splitting
These are the files with just tiny tweaks. Mostly modify an object's attackby so it does "return ..()" instead of "..()".
If there are other things in this commit, the PR's description will explain them.
When a stock moves onto the same tile as another stack, they merge together. Unless it was being thrown, in which case no, they don't merge. Unless the stack was the original target to begin with, then yes, they do merge.
Just a convenience feature. The one downside is that crowbarring up a floor tile won't merge with other tiles on the floor, but if someone makes that event call Move() like it's supposed to, it should work fine. That would just be out of scope for this PR.
MC:
No longer tracks a subsystem's cpu usage. This was basically worthless and took up space on the stat panel
Can calculate wait down to a tenth of a decisecond to make it fps/world.ticklag agnostic
Now allows subsystems to have a dynamic wait, that is based on a ratio of how long that subsystem has been taking to process(cost). (This system allows for upper and lower bounds, and an changeable cost delta for each subsystem)
MC can now be told to init a zlevel
All Subsystems:
Stats panel now allows child subsystems to pass it a message to add to its stats entry. All subsystems have been moved over to this system - This should cut down on subsystems having to copy and paste the stats proc in order to add to it
All subsystems now properlly handle being given a zlevel in their init proc
Subsystem changes:
Air:
Added air to the dynamic wait subsystem. upper bound: 50, lower bound: 5, cost delta: 3 times process cost
Air now fires 4 times faster when it can do so without lagging things up
Pipenet has been merged into air
Atmos machinery now processes with process_atmos(), ticked by air, not machinery.
Hotspots (the fire object) are now object pooled
Pipenet:
Deleted, added to air
Machinery:
Moved all atmos calcualtions in all objects's process() to process_atmos().
Lighting:
Added Lighting to the dynamic wait subsystem. upper bound: 20, lower bound: 5, cost delta: 3 times process cost
Ticker:
Fixed ticker not updating the lobby panel when game start delayed
Fixed the game start timer updating rapidly from queued fires when game start delay is removed
Garbage/qdel:
qdel will now limit its process time to 2ds a fire.
qdel can now be given hints as a return to Destroy() as to what should be done with the object.
the options are:
queue: (default) this is the normal behavior.
letmelive: old default to non-null/zero. does nothing with the object
iwillgc: functionally the same as above, mainly to let people working with objects know that the object will not be queued for GC checking
harddel: this will queue the object to be deleted without storing a soft reference, mainly to save locate() processing time.
harddel_now: this will del() the object. To allow for a clean removal of every del() not in qdel
All objects have been updated to the new system, harddel and iwillgc was not added to any new objects.
Fixed some objects not GCing because they didn't properlly clear references in Destory()
Fixed some objects getting qdel'ed preventing other objects from getting GCed because they did not null their reference to that object.
Adding a check so clicking an already giftwrapped item doesn't show the wrapping message.
Adding nobludgeon flag to wrapping paper to remove attack messages
Removing w_class line from package wrapper because already in its parent.
Remove the unnecessary message (box is full/packagewrapper doesn't fit in the box) when wrapping box.
Fixes not being able to wrap box with just one single package wrapper left.
Fixing attack_log (fix issue4180) and only adds log when the wrapping succeeds.
Now using wrapping paper actually uses its amount.
when all used, they will drop cardboard tube like intended.
Fixes issue4207
Fixes not being able to re-add wrapping paper and package wrapper to themselves like proper stacks.
New sprite for both paperwrap and cardboard tube. (from Nienhaus)