* Block protolathe use without job access
Prevents opening the UI for any R&D production machinery without proper job access on the mob's mind. This change impacts protolathes and circuit imprinters.
* Check protolathe access using face and ID
Changes the protolathe access check to use ID card or face name, instead of mind.
* Always allow Captain protolathe use
Allows the captain to use any protolathe or circuit imprinter.
* Check protolathe access using only ID
Updates the RND production machine access checks to only use the ID card, instead of checking face or security records.
* Lock RND console by default
Sets the R&D console locked variable to TRUE by default to prevent unauthorized access exploits.
* Use req_access for RND production machines
Converts the ID check used by RND production machines to use req_access flags.
* Check Topic for protolathe restrictions
Moves protolathe access checks into a mob proc, and checks Topic call the same way UI open is checked.
* Production restriction low-population improvements
This commit fixes potential problems for low-population servers using production machinery restrictions. The following changes are made:
- Allow skeleton crew to ignore research machinery restrictions
- Option to check all living crew IDs for access (disabled by default)
- Configuration options for using global ID checks and skeleton crew access
* Production machine locking feedback commit
This commit makes changes requested by Sandpoot:
- Renames 'nonmin' to 'lowpop'
- Removes all global ID check code
* Fix improper configuration defines
Fixes an oversight that caused some variable names to not be updated.
* Remove obsolete mob defines
Removes the obsolete PROTOLOCK_CHECK_ALL_IDS define, which related to a removed feature.
* Reverse protolock check ordering
Reverses the configuration check order for PROTOLOCK_DURING_LOWPOP and JOB_MINIMAL_ACCESS at the request of SandPoot.
Co-authored-by: SandPoot <43283559+SandPoot@users.noreply.github.com>
---------
Co-authored-by: SandPoot <43283559+SandPoot@users.noreply.github.com>
* Grant science points for TETRIS machine
This commit updates the T.E.T.R.I.S. arcade machine to grant science points based on the score achieved in the game, if the player was employed as a scientist or research director.
* Tetris machine overhaul
This commit makes the following changes to TETRIS
- Adds a one minute cooldown for rewards
- Sanitize input for score
- Limit max score to 100,000
- Limit max prizes to 5
- Limit max research points to 10,000
- Warn admins if score exceeds set threshold
- Check ID card access instead of mind job
- Display separate messages for score and scientist points
- Display different message if no reward is vended
- Undefine defined defines
* Add TETRIS to Sandstorm balance config
Adds configuration values to the TETRIS arcade machine based on the previously used defines.
Adds new configuration for producing science points and max number of prizes.
* Use defines for TETRIS cooldowns
Converts the TETRIS machine world time cooldowns to use defines instead of direct definitions.
* Remove redundant TETRIS variables
Removes redundant icon, icon_state, and light_color variables from the TETRIS arcade machine.
* Add Sandstorm balance config
Allows changing settings for the Cryptominer, Autodoc, and Bluespace Miner.
* Update server config with real-time values
Sandstorm balance configurations have been updated to read values in real time whenever possible.
Values are now set using defines, and any that could not use them have been disabled.
A new configuration has been added to control when the bluespace mining machine can produce bluespace crystals.
* Fixes a critical cryptominer issue
Fixes a tremendous coding oversight that added two additional whitespace characters to the cryptominer machine file.
* Fix incorrect config value for BSMs
Fixes a mistaken definition for BLUESPACE_MINER_CRYSTAL_TIER pointing to a previously used value.
* Undefine balance config defines
Adds an undefine statement for all balance config value defines.
* Properly undefine definitions
Fixes incorrect term usage for undefining a value.
* Caches GetJobName. Fuck you
This code made me deeply upset, WHY IS IT RECURSIVE WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY
* Centcom handling, properly this time
* Empties out real_job_name
* Sets real_job_name up in the right place
* Moves real_job_name to SSjob, uses modularTM
* Yeet
* Removes old code, swaps over to the SSjob list
* dme changes
* indents... comments
Co-authored-by: SandPoot <enric_gabirel@hotmail.com>