Files
Bubberstation/code/__DEFINES/medical.dm
ArcaneMusic 8dcbed6ac2 Revises and adds several new bounties for assistants, roboticists, and medical doctors. (#89772)
## About The Pull Request

This pull request makes several balance adjustments to older bounties,
primarily for the roboticist and assistant. Additionally, this adds a
new type of medical doctor bounty as well.

### Bounty Modifications:

**Assistant**: Toolbox bounty
The toolbox bounty now requests 1 toolbox instead of 6. However, the
toolbox bounty now requires a fully packed mechanical toolbox worth of
contents. That means any toolbox, containing a screwdriver, wrench,
welding tool, crowbar, analyzer, and wire cutters. When shipped,
non-toolbox contents are dropped.

Why It's Good For The Game (**WIGFTG**):
This bounty follows bad design principles, being a bounty that can be
solved entirely from a lathe. For any of these cases, we want to either
replace them or recontexualize them into an activity that forces players
to either learn more about the mechanics in and around that area as a
form of played tutorial, give them a toe-dip into the mechanics required
to complete the activity, or perform an activity that makes the station
better for having completed it.

For the toolbox bounty, this goes all in on teaching players about the
full set of toolbox equipment, instead of just needing one printable
item, it takes them through the full autolathe menu and gives them
plausible deniability for getting a full set of tools.

**Assistant:** Potted Plants.
The potted plant bounty now requires 3 potted plants as opposed to 8.
Most stations are going to be completely devoid of potted plants after
collecting 8 of these, where lowering the quantity to 3 allows for a
larger amount of competition for this type of bounty. This also
disallows using plastic potted plants from being used in the bounty as a
trade off, as real potted plants are available through other means.

**WIGFTG**: Removes a lathe-solved bounty, and adjusts the quantity to
compensate for the fact that previously you would loot the entire
station of all of it's potted plants in order to complete this bounty
one time.

**Assistant:** Action Figures -> Toys
Action figures and their general availability widely varies by maps. At
best, you can snag one per office on (I think) delta, and at worse
you'll need to fish them out of arcade machines across the station.
Considering how often new toys are added to the vending machine, this
can be a very raw deal where you might be spending 10s of minutes just
for maybe one or two action figures. Instead, it feels like a wider and
better solution is to just make this touch the whole toys category.

WIGFTG: For the toys bounty, it's far too scarce to complete regularly,
but instead now it gives makes players interact with the arcade machine
wholistically, which in turn requires players to have to play an arcade
machine just enough that they're likely to gains a level in the gamer
skill, and serve as a primer to interact with how skills interact with
the round at large. Granted, it's the gamer skill, so it's not the end
of the world if players are getting skill increases here as opposed to
other skills that may have more of an effect on the round at large.

**Assistant:** Pens.
Fuck this bounty. I have removed it. 

**WIGFTG**:
Allow me to elaborate.
So the pens bounty requires 10 pens. However, it requires specifically
`/obj/item/pen`, no subtypes. `/obj/item/pen` is not printable. It is
not found at quantities that make it easy to specifically complete. You
cannot use red pens. Or fountain pens. Or blue pens. Or Crayons. Just
standard black pens that spawn in your PDA and on paper bins. And you
need 10. There is **A** printable pen, however,
`/obj/item/pen/red/security`, which is however printable from
autolathes, leading many players and myself to think that this is
another easy printable bounty. But EVEN THEN, even if those pens WERE
ACCEPTABLE, having to manually carry 10 tiny objects to complete a
bounty worth not even 200 credits to the bounty holder? This just sucks.
It's Bleem. Get it outta here.


**Robotics**: All current mech bounties (MK 2 Ripley, Clarke, Odysseus,
Gygax, and Durand)
Robotics bounties have been reworked. Now, mecha bounties require that a
new mecha of that type be built, and that a holodiagnostic scan be
completed of the mech. This can be done once-per mech, which will print
out a holodiagnostic sheet onto the floor. This sheet is what is turned
in for the bounty. As a result, the value of these bounties have been
roughly halved. For those looking to collect the rest of the previous
value, all 5 of these mechs can now be sold on the cargo shuttle for the
remaining value of the old bounties.

**WIGFTG**: The biggest hurdle for roboticists when it comes to economy
is twofold: Roboticist need resources far more than most other jobs in
the game. No metal means no cyborgs, or mechs, or cool equipment for
robotics. But, if a roboticist needs credits, they have to trade away a
new mech in exchange for some of the largest credit pool bounties in the
game. If they can't spend those credits, or can't receive anything using
those credits, that's effort wasted.

There's a tremendous amount of uncertainty when it comes to robotics
being able to meaningfully interact with the credit economy as it
currently stands, or being able to leverage the credit economy to solve
any of their issues. If the player really does just want to sell their
mech for credits, this also provides them with a method of doing so that
will still reward them even further if they feel they truly do not need
it. Side note, the cargo loader mech "old bess" has the trait provided
by generating a diagnostic already, preventing them from just scanning
that for an easy minute 1 bounty.

Ultimately, having to sell a mech for credits as opposed to getting to
use it is not *fun*. Getting to get paid for doing your job, and getting
the benefits of something you'll have spend a reasonable amount of time
and the station's resources on is *fun*. It's a better pay off. It's why
we're here.


![image](https://github.com/user-attachments/assets/d372a338-14dc-49a3-8279-4cb379c13c10)


**Medical:** Crew Scan Bounties.
Medical staff are now given the chance to perform routine medical scan
bounties. These require a medical doctor to scan another crew member who
is above 90% health, and then print the reports to submit. Some
stipulations:
* The report cannot be of the bounty holder.
* A scanned crewmate must be scanned above 90% heath. 
* When the report is printed, the target is given a trait for 5 minutes,
`TRAIT_RECENTLY_TREATED`, which disqualifies them being the target of a
submitted medical report. This is to encourage the doctor to check up on
several members of the crew when submitting this bounty.

**WIGFTG**:
Medical bounties are in an awkward place, honestly. They are possible to
become purely printable bounties using either advanced organs, or
through the organ grower. However, both of these outcomes are research
locked, and will require a more through look down the line, don't get me
wrong. In the meantime, this falls squarely under that area of "getting
medical doctor bounties to be more closely aligned with doing what
they're already supposed to be doing".

I also floated the idea of making medical bounties pick a random
crewmate for a check-up as opposed to a few different members of the
crew from anyone. I might follow up on that at a later date, but this PR
was already getting a bit overloaded.


![image](https://github.com/user-attachments/assets/63ab2a4f-1eab-410b-9b37-c9299199191b)


### Some other things tacked on here:
I swear I'll be fast.

The `/obj/item/paper/medical_report` created is a new subtype of paper
as opposed to the old type that was used by health analyzers, which
holds the last scanned mob as a weakref as opposed to just creating a
snowflaked paper as we were doing before.

The bounty pad, when it generates it's list of bounties, now works
slightly differently so that there's no chance of getting a list of
three "random" bounties that are all exactly the same thing, called in a
new proc, `generate_bounty_list()`.

I've added a new debug item, called the `/obj/item/bounty_voucher`. This
item allows you to use it in-hand and it gives the activating player a
new bounty from a list of all possible bounties. This makes my life,
just specifically just me and nobody else, easier when testing bounties.

As mentioned above, the mecha UI required adding a new button to it in
order to create holoscans. It's fairly innocuous if I do say so myself,
but I can make further tweaks if it's an issue.

## Why It's Good For The Game

I've sprinkled a good bit of this in above, but in general, bounties
needed some more TLC to make sure they align with their place as a
tertiary source of making money in the game. I've talked about this
before in some now-ancient design documents, but in summary, there's
three forms of credit sources in the game:

* Primary sources: This is regular payroll, earned by playing the game
when the economy SS fires. In theory, this is how much money you can
spend without needing to think about making a purchase most of the time.
* Secondary sources: This is from sources like tourist bots. Ignore the
design decisions they inhabit, they're gameplay loops that allow you to
make additional credits while still performing the functions of your job
for the station, which in tourist bot's case, is making food and drinks
and serving people, making up for any costs incurred by their presence.
* Tertiary sources: This is bounties. These are activities that exist as
a fallback from the secondary sources, where you may not be performing
the duties of your job in order to get credits, should they be more
critical as a resource than the service you provide to the station as a
result.

...Everyone has been fairly clear that doing bounties is not very good.
If you're playing medical doctor and want a shiny medical doctor thing,
you would hope that the majority of your time is spent still playing
medical doctor, or scientist, or whatever. However, of all the jobs that
have fairly sub-par bounties, the one job that I've heard time and again
that I actually got *right* was surprisingly, security officer. Their
sets of bounties, (Which aren't just looting the locker room mind
you...) between the contraband bounty and the n-spect scanner bounties,
actually encourages players to basically do tasks that are already part
of their job obligations, without needing to run to the nearest lathe or
to _steal 8 boar tusks that drop from the barrens_. The bounties are
basically, "Go on patrol to this area", "look for suspicious items on
the station", etc.

In effect, those are *secondary credit sources*. Which is fantastic! It
gave me the idea to revisit a few of these job bounties to try and make
them a bit less exhausting to have to deal with, and as usual I got a
bit distracted and the scope got a bit too big and now it's march. God
damnit.

But yeah if this goes well, I'd love to see about adjust a few of the
bounty methodologies to be in-line with the changes I've implemented
here. More bounties that encourage players to be doing what they're
already doing, bounties that encourage players to learn more about the
game when it comes to assistant bounties or that encourage them to get a
toe-dip report on mechanics that they may not be introduced to yet, and
get rid of some of the CBT bounties that nobody in their god damn mind
wants to do.

## Changelog

🆑
add: New Medical bounty! Scan crewmates who have been healed or
currently have a clean bill of health, and ship the medical report to
prove that you're not accidently letting them die on your watch. Most of
the time.
balance: Assistant bounties for toolboxes now only require 1, but the
toolbox must be fully stocked like standard mechanical toolboxes.
balance: Potted plant bounties no longer accept plastic plants. They
only require 3 plants now, however.
balance: The action figure bounty now only requires toys instead.
del: Removed the pens bounty.
balance: The robotics mech bounty now requires a diagnostic scan of a
newly completed mech as opposed to sending the whole mech itself.
Diagnostic scans can now be generated by riding in a mech and completing
the action from the UI menu. Mech bounties are worth about half as much.
add: Mechs can be sold on the cargo shuttle for the remaining half of
the value from previous mech bounties.
fix: You can now no longer roll duplicates of the same bounties when
generating a new bounty from the civilian bounty console.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2025-04-29 17:11:54 -06:00

34 lines
891 B
Plaintext

/// Physical statuses
#define PHYSICAL_ACTIVE "Active"
#define PHYSICAL_DEBILITATED "Debilitated"
#define PHYSICAL_UNCONSCIOUS "Unconscious"
#define PHYSICAL_DECEASED "Deceased"
/// List of available physical statuses
#define PHYSICAL_STATUSES list(\
PHYSICAL_ACTIVE, \
PHYSICAL_DEBILITATED, \
PHYSICAL_UNCONSCIOUS, \
PHYSICAL_DECEASED, \
)
/// Mental statuses
#define MENTAL_STABLE "Stable"
#define MENTAL_WATCH "Watch"
#define MENTAL_UNSTABLE "Unstable"
#define MENTAL_INSANE "Insane"
/// List of available mental statuses
#define MENTAL_STATUSES list(\
MENTAL_STABLE, \
MENTAL_WATCH, \
MENTAL_UNSTABLE, \
MENTAL_INSANE, \
)
/// The percentage amount of health required for a mob to be considered to be
#define CLEAN_BILL_OF_HEALTH_RATIO 0.9
///Cooldown for being on the recently treated trait for the purposes for bounty submission
#define RECENTLY_HEALED_COOLDOWN 5 MINUTES