* Split up the charging code to allow verifying account security alone.
* Using macro since a trader account can now be created on the first debit card for traders.
* Adds the new debit_card.dm
* Retrofit for vending machines to accept debit cards and no longer care for the name of the person for account verification, instead checks if the account number is the same and does a security check when applicable to verify.
* Charge flow retrofit
* Debit card retrofit
* Debit card retrofit
* Debit card retrofit
* Supporting get_card() proc that attempts to find cards on someone.
* Debit card retrofit
* Adds debit cards.
* Basic debit card graphic
* Debit card retrofit
* Can print debit cards from an ATM for $5
* Tweak to prevent searching without an account number.
* Moved creating a trader account to a macro.
* Using item's melt_temperature instead of a global
* Debit cards can be inside ATMs, heads get a department debit card in their lockers, and traders get debit cards on their shuttle computer.
And updated graphics.
* Swapped the \the around since it looked weird being the other way
And also added something to point out which card is being used for virtual wallets.
* 100% less loss of work
* Prevent only the presentace of a card counting as a card present
* Easter egg will use the old name instead of a fixed string
* Forgot a period
* Added FUN. Debit no longer requires a PIN at default security level.
Of course, this can be changed with the new global. Might consider a admin toggle.
* Renamed var to something more reasonable.
* Made the security checks more future safe.
* Accounts can now be disabled from a account database as an administrative disable or from an ATM as a user disable.
* You can modify security levels while disabled, but cannot downgrade to Zero
* Can now charge a card without enough funds provided the destination and source account is the same
* Disable link changes depending if the account is disabled or not
* Vending machines now prompt for PIN if attempting to enter edit mode.
* Define cleanup
* You can now define a authorized user on a debit card.
They are also recorded in the transaction log so you can figure out who spent all the money on pizzas.
* If a linked account gets disconnected for any reason a POS will default to the station account
Also shows the account name in the settings
* Supply and Order consoles can now read from a debit card
* Documentation tweak
* Forgot something
* Supply console now shows the cargo account if requisitions are on.
And mitigation against someone else using the console with someone else looking at it.
* Attempt to make less redundant code,
And added additional information to supply orders.
Reverting checking accounts only if the users changed. It'd cause a world of confusion if multiple people were working at the same terminal.
Previously if you clicked on an object and you already had the NanoUI open, two things could happen:
* The UI only updates
* The UI reopens with a white BYOND flash.
The latter did always move it to the foreground, but the flash and UI moving was pretty ugly.
The former only updates the UI, so if you had multiple stacked windows open it gets kinda annoying.
With this change, all UIs always do the former, and the UI for an object always moves to the front when you interact with said object.
* Fix nanoui
Makes nanoui map size independent.
I hope you guys realize I spent like several hours on this. All because some shitter decided he would use hardcoded variables for map size.
* Send the map assets
* Moved research names over to defines.
Also fixed 4 (four) instances of the incorrect research name being used.
* Changed research names to avoid collisions.
* NO MORE HALF MEASURES, CLUSTER
* NO MORE HALF MEASURES, CLUSTER
* bugfixes
* bugfixes
* final bugfixes before the final testing
* we have clearance for lift-off, captain.
Material datum functionality changed to mimic that of reagents etc. by
using a global datum list and an assoc value list.
Material datums added at the atom level.
starting_materials var added - on New(), the materials in the list are
added to a datum. An empty list generates an empty datum, a null means no
datum.
m_amt, g_amt, and where applicable gold_amt, etc. completely removed,
replaced with starting_materials where applicable.
Fabricators
Fixed a bug with fabricators taking design cost, not shown cost.
Fixed a bug with fabricators taking costs before a design was shown
completable.
Fabricators now transfer the materials they use in the design to the atom
produced's material datum.
Designs are now world-consistent : scanning the same atom will ref the
same design, and scanning an atom with a design will fetch it.
Mechanic fabs now add plastic cost on top of the design, not to it.
Mechanic designs no longer require random extra materials.
Mechanic designs are now material-specific, not type-specific.
Mechanic blueprint uses have been removed, in favour of a consumable
system.
RnD wires moved to the datum system.
Autolathe moved under fabricators. It preserves as much functionality as
possible.
Framework added for plastic costs on mechanic fabs to be toggled, and for
removal of designs to be toggled also.
A lot of code standardising for the way machines handle trying to take money from a user.
All machines can now be set to connect to the accounts database in initialize().
reconnect_database(), connect_account(), and scan_card() have all been moved to the machine level.
Merch computer now reads your equipped ID, not your mind account. Fixes#2854.
All machines getting your ID using get_id_card() now check all your slots, with hands being prioritised over the ID slot.
Removed a pointless human-only proc that was causing befuddlement.
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.