meteor_hit() is a textbook example of snowflake. What you have here is a
proc linked to a single entity (the small meteor) which shouldn't even
have it (ever since I reworked meteors, small meteors explode) that is
present in FIFTY. FUCKING. FILES.
Since an explosion more than clearly does the damage we want done on
meteor impact, it is more than logical to remove it and lighten our code
of obsolete and obscuranting procs
For the handful of times where it isn't possible to straight up remove
it (immovable rod, dust, small meteor), the code was quickly patched by
making it fire ex_act(2), given that small meteors perform
explosion(src.loc, -1, 1, 3, 4, 0)
Doing it quick and dirty because otherwise it's going to cause conflicts
everywhere
Addresses #2914, adds renaming. Unfortunately does not work properly as it should be readding the vents/scrubbers to the new area as well as renaming all the machinery properly from space.
SMESs now fall under a battery type, which is a charge-storing power machine.
The battery charges and outputs in an OOP way.
SMESs now make terminals in the general way, which is also used for APCs.
Terminal is now a power machinery level var.
Currently impossible to get but fully functional are portable batteries.
Portable batteries:
- Only work when connected to battery ports, but can be pushed around otherwise
- Charge from the battery port's terminal, and output onto its tile, like SMESs.
- That's basically it. What more do you want? It's a movable SMES, essentially.
Known issue with the portable batteries: they don't show load in the UI, because they never proc resolve(), but it's not major.
Painstakingly goes through the 'in world' commit again to use the proper lists for all objects that are autoremoved from the machines list.
Also removes an extremely laggy proc called get_apc() which called locate throughout all related areas until it found an apc, links the apc to the area as only one is allowed per area.
Computer building/deconstruction, APCs and SMES have now proper busy
checks. Additionally, some terminal wiring bugs with APCs and SMES have
been fixed.
The drop_item arg is now the loc placed, not the child of the loc or whatever.
Removed a few lines of items being placed into themselves, on themselves, into other things manually, into their users, etc.
Cleans up the fix for MoMMI recharger silliness.
This took about 2 hours of non-stop manual searches.
Made is_hot and is_sharp object procs, not global procs. Added sharpness vars for objects. Things use these procs OOP now.
Made all kitchen knives inherit from utensil/knife. This also fixes an issue with plastic knives, #2863.
Forks now work with all food properly. Fuck oldcode.
Made some procs macros, moved a maths proc, shrunk unsorted.dm a little.
Removed a redundant get_turf_loc proc that was just get_turf.
This code was just a big fucking mess. Happy motherfucking 2015.
* Delay procs and variables replaced with a standardized delayer framework.
* Cleaned up the absolutely fucking atrocious fix_next_move() diagnostic verb.
* Added the ability to adjust minimum and maximum delay clamps per-mob for adminbus purposes and future features.
* USECASE: Fat people cannot attack as fast (not implemented)
Tested somewhat by smacking a window with a crowbar. Movespeeds also don't seem insane, either.
Stuff goes under types.
Types have procs.
Never have 500 lines of repeated code again.
I came very close to crying while editing this. You should appreciate that.
- The most common attackbys now use a common proc and a flag system
- The following flags now exist : EMAGGABLE, SCREWTOGGLE, CROWDESTROY, WRENCHMOVE, FIXED2WORK
- Machines have had flags appropriately added with inherited procs to replace copied code