Alright, this is a functional rework for civilian bounties, which should serve a few purposes:
Cargo has a reason to actually keep working and stay within cargo.
Makes cargo bounties far more integrated into the round as opposed to being a static list of soft goals, being personalized to those who would actually do a bounty for the station.
Still make civilian bounties the prime, sirloin steak method for regular crew to make money.
So here's the 4-11:
Static cargo bounties have been removed, in favor of the new system of civilian bounties. That means that both the bounties app and the bounty console have been removed.
Civilian bounties have been buffed. They are no longer affected by inflation, but when your bounty is completed, you will recieve a "bounty cube". To receive the cash you would have received for the bounty (10% of the civilian bounty), that bounty cube must be shipped off the cargo shuttle, and using the magic of the price tag component, you make your cut, and cargo makes their 90%, ensuring that you'll actually see your money (for once!).
Civilian bounties are now independent of department budgets, in preparation for departmental purchases, so now you can more freely benefit from doing civilian bounties to buy things! (See #53881)
Non-mining cargo department crew now have fully randomized bounties, to give them stationwide goals for bounty hunting.
As an added benefit, the icon for bounty cubes basically screams value, so hopefully crewmembers will see it and instantly think to sell it.
imo; the ss13 audio-scape is quite barren, you can only hear most things if you can see them, which in my opinion doesn't make much sense. This changes that so you can hear further away, but falloff is much higher, so in reality you will only hear things relatively quietly when they're out of sight.
This PR increases the hearing distance of most sound by 9, excluding sounds such as antag items that are meant to be used stealthily
This PR also replaces Byond's inbuilt falloff system with something I made, (And thanks to potato for helping me throw together a formula for it). This fall-off system makes sound fall off more naturally, with sounds being full volume within a certain range, and then softly falling off until they are completely quiet. This makes for a smoother transition between "This sound is full volume" and "I dont hear this sound".
Co-authored-by: ff <ff>
Alright crew, here's the 4-11. This adds a new Modular Computer app, that works functionally identically to the cargo console. but before we delve into that, lets hit the adjacent aspects first.
Cargo Packs now contain a new variable, access_view, that is only applied to cargo packs viewed in this app. It determines the access level required to be able to see those individual packs, in the same way that you need certain accesses to open certain crates anyway. This means that outside of certain inter-departmental crates that see overlap in who can/should be able to order it, heads can browse and purchase crates based on their department's needs and wants.
The cargo ordering console has been renamed on the DM side. Because now that there's another, similar cargo ordering DM that was going to get confusing fast, as just calling it "Console" gets on my nerves and is harder to spot on VSC for me and everyone going forward forever.
Cool, back to buying stuff. heads of staff can download the cargo ordering app on tablets and laptops only, and it gives them access to purchase cargo using their department funds. These purchases are made against the user's department budget, and enables purchasing supplies with cargo without needing to beg them to use their money on your junk, adding it fully to the cargo shuttle's next load, while still giving cargo the first right to refusal if they wanted to, for some reason.
From there on out, cargo's responsibility is primarily getting the goods you bought to you, which is technically already their job!.
New app for viewing cameras. Runs the same way the stand-alone console does, and requires security access to download. Does not work on tablets, requires a laptop or console.
Gives sec an on-the-go option, at the expense that they do still have to hold the device to view it (rather than stuffing it into the ID slot). Folded laptops can still be stored in your bag, so you can quickly store it after scoping out a bust.
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
fix: Borg tablets now correctly work when the borg is out of power (though you'll get no networking until you get that power issue sorted out).
fix: Borgs that are synced to AIs can correctly view and print photos once more.
add: Science has been given a more experimentally themed set of bounties.
del: Much of the old science bounties were discontinued.
del: ...As have the glass shard and cheese honker assistant bounties.
Splits the restrained() proc into component traits: TRAIT_HANDS_BLOCKED for the general inability to use hands and TRAIT_RESTRAINED for the more specific condition that permits arrests.
Code moved away from the update_mobility() proc so it doesn't have to wait for an update, instead changing based on events. The idea is to eventually kill that proc.
Wrapper proc added for setting the handcuffed value so we can react to the event of it changing.
Kills the RestrainedClickOn() proc. That is now just an UnarmedAttack(), in where the ability to use hands can be checked. Monkeys keep their bite attack and humans their self-examine.
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
There exists a specific state where ui.open() can be called yet the
result would be a null window and such behaviour would be intentional.
The following CRASH in ui.send_asset() would thus be misleading,
because send_asset() was called after open().
This PR adds more information to the CRASH about when the failure state
can occur, makes open() return a value based on whether it actually
opened a new pooled window or not, and makes sure modular computer apps
don't send_assets unless a new pooled window was created.
As said by the title.
Also fixes an oversight where the Plexagon HR Core app (job management) was reading worn ID rather than inserted ID.
Also adds names to differentiate between primary and secondary card readers so both show on the screwdriver remove menu.
Also makes using IDs on a modPC actually call the InsertID proc, so that having the secondary ID come first in the list of parts doesn't give it priority.
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
* Process procs now properly use deltatime when implementing rates, timers and probabilities
* Review fixes
* Geiger counters cleanup
Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now
* Moved SS*_DT defines to subsystems.dm
* Rebase fix
* Redefined the SS*_DT defines to use the subsystem wait vars
* Implemented suggested changes by @AnturK
* Commented /datum/proc/process about the deltatime stuff
* Send delta_time as a process parameter instead of the defines
Also DTfied acid_processing
* Dtfied new acid component
Fixes the printer cool down system that started the printer cool down when you press any button??? meaning that it would always fail since the cool down was reset after the button was clicked. The cool down is now only reset until AFTER the print operation.
Also adds a message that lets you know if the print cool down is not over yet, so it doesn't fail without feedback.
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
* Support for expansion-class modPC hardware
* end of the line
* As requested
Did anyone know that the tablet vendor was attaching the wrong ModPC printer? I bet no one knew that.
* update
Defined all the existing light_color values.
Moved their definitions to colors.dm
Made white the default color. It was so already, but that was very obscured.
Moved the atom light-related variables to the atom definition.
Wrapped changes to variables such as light_color into procs that report the event through signals.
Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
Cleaned up a little bit of code in where new variables were defined before redefinitions.
This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.
There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.
* Update AI health after healing damage in integrity restorer
* Also feex legacy AI inegrity restorer.
* Update IntelliCard icon when AI is successfully revived.
* Clean up proc arguments
* Feex
* Removing a bunch of oxygen stuff
* breaking works
* completely functional yes
* reverts some old changes
* thanks based shiz
* i said 'thanks' god damn it
* oops
* another one bites the dust
* they told me math was of variable difficulty
* Startwork
* stopwork again
* AGAIN.
* Good place to call it for now
* Startwork but I actually put some work in
* The left list doesn't work, stop for now.
* God remind me to squash these commits later.
* Well, I think I can safely say I have actual work done now
* The post-Brisk iced tea patch.
* God damnit nothing works I hate this worl
* Good place to stop, stuck in a chronic error state
* I take it back now I need to sleep jesus god
* I am grown POWERFUL in my dispair
* FINALLY READY TO PR.
* Request order swap
* Update and tgui recompile
* Adds a kiosknet, so adding a new bounty alerts all the bountyboards
* Renames file, attempts to port to modular app too because fuck my life
* Fuckin feature creep I tells ya
* Removes an unused proc
* Rebuildin
* Hopefully updates tgui and fixes an easy runtime
* Finishes updating/conflicts
* Mapmerges my shit.
* Rebuilds tguiiiiiiiiiiii
* Updates tgui
* Updated once more
* merge conflict fixaroni
* God I wish that I had a game I was dedicated enough to finish in a single setting
* Rebuild of PR: You will (Not) compile
* Cobby's changes and Anturk's Suggestions.
* Should probably prevent a runtime.
* Rebuilds TGUI.
* Lets not delete my own files please god
* Style's changes
* ALL the warriors
* What if I didn't delete ZX's app sprites again
* Start workin on a text component later
* Makes some code suggestions, doing it all in UI will kill me
* tgui update
* DNM until I get this gosh darn text working.
* The changes that I need afaik
* And a tgui rebuild to boot
* When that program datum spoke to me, I felt that.
* Makes changes to text input sanity, Pray
* By god I think I've cracked the code.
* Had no idea you could atomize UIs like that, this is revolutionary
* Spaces
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* How did this take me like 3 hours but the bounty UI took 4 weeks like fuck
* Uses style's suggestions for UI cleanup.
* Rebuild TGUI
* Squiggly Brackets No. 1
* Squiggly Brackets No. 2
* Rebuilds tgui also sorry style I got lazy
* Another tgui update
* GREP?
* Rebuilds tgui again
* Rebuild yet again
* How'd you like a nice tender lambchop?
* Take me HOOOOOOOME country ROOOOOADS
* Updates with Anturk's changes.
* Removes unnecessary flex element
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* Synux
* cleanup
* I bet this merge conflicts
we hate tgui.bundle
* extra bits
* Syndix
* small fixes
* Summary (required)
* this linter drives me up the wall
* final touchups
* Forgot this thing
* Case of lower
* More changes
* Ruins the nice 420 diff, brainfart when doing the second batch of conversions
* More changes
* Next batch. I think
* Converts even more paths
* Restarts bots
* Capital Free Zone
* Come on travis, do something
* Renames areas
* Bots, please stop dying
* Updates CONTRIBUTING.md and updates a few paths I missed.
* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
* Initial update
* tgui ofcourse
* Small fixes
* More lint fix
* Updated to support signatures and adding to paper
* Sign and adding to paper work, need to tune it a bit though
* Ok, signatures and adding work, still working on stamps
* Stamps now, fix rotate and cleanup tommow
* Alrighty! Lets try for some testing!
* Stupid travis
* annnd the bundle
* Minor fixes
* DONE. Still have some code cleanup, but all the major features work now
* Requested changes cleaned up formating
* Dammmn you bundle!
* Fixed the preview issue
* Updated bundle
* Ok, some more fixes and clean up
* Ugh damn you tgui bundle
* Update tgui.bundle.js
About The Pull Request
It simply adds a new Modular Console Preset to the existing ones, fully outfitted to replace the current Identification Console in the Head of Personnel's Office and in the Bridge, and in most of the maps' Customs desks. Note that it doesn't replace them, it's just an asset right now so we can replace them with another PR, at the pace the map maintainers feel confident with. It has the ID Card Modification, Job Manager and Crew Manifest softwares on it by default, alongside the regular Chat Client.
The new Modular Console Preset can be found under /obj/machinery/modular_computer/console/preset/id, for all your map editing needs.
I'm planning to see if I can't make changes to the Departmental Consoles later on as well, so we basically can get rid of a console in every Head of Staff's office (except the HoP because there's only one), but that will require some additional coding to make it so it's not straight up some Identification Consoles that people with All-Access could use to print even more All-Access cards.
Why It's Good For The Game
I've basically just implemented something that I feel was meant to be implemented a while ago through the use of TGUI and Modular Computers, but never actually got done. The console doesn't have the glitches of the current Identification console, when you remove your ID after logging in and it just goes to a page saying that the address couldn't be found. The UI is much simpler, looks a lot better and is just overall an improvement.
Here's what the new UI looks like, for those of you that don't feel like checking out the PR in-game to know what it looks like:
image
image
Changelog
🆑
add: New Modular Console Preset added: /obj/machinery/modular_computer/console/preset/id
/🆑