Moves all HUD screen object icon files from various scattered locations
to icons/hud. No changes made to any icon_states in this PR, no
player-facing changes. Part of larger icon organization work and in
preparation for action button rework.
This PR adds some new "Damage Feedback" interactions to mechs, which I'm
adding in response to what I think is player perception of mechs being
invincible. Previously mech manipulators and torsos had no actual
mechanics for damage states, and having 0 damage on a mechs arms was
functionally the same thing as having 100 damage, so long as the arm
wasn't completely destroyed.
This PR changes that by making it so that mech manipulators have a
chance to fail (loudly and visibly) on use with a probability that
varies based on how much damage the arms have taken. Additionally,
there's also now a mechanic for mech ejections and hatch opening to fail
if the torso has taken sufficient damage, with chances that also vary
based on how much damage said torso has taken. In both cases, the mech
plays audible and visual effects to indicate to the players involved
that it is being hindered by damage.
https://github.com/user-attachments/assets/934e4561-1fda-4c47-9770-438960834aa9
Yes this does mean that you can smash someone's hatch closed, to a point
you'll need a welder to get them out.
<img width="772" height="181" alt="image"
src="https://github.com/user-attachments/assets/75f98060-7c4c-468b-bd31-e6c4ec4c0be2"
/>
- Toggle maintenance protocol can now be done by anyone if no pilot in
an exosuit and with no link(allowing for species such as bulwarks to be
able to do more with exosuits)
- New command to toggle power (self-explanatory), minor refactor of
toggle power code for exosuit to permit this.
---------
Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
Refactored mousedrag procs, added signals, some safeguards, did some
cleanups around, renamed them to make a little more sense. Mostly put in
line with TG's code.
Fast clicking and releasing with a drag, depending on the grace period
and how fast it is done, can be counted as clicks, to aid in combat
scenarios where you spamclick.
* Added power cores, a type of large battery cell that get used by
exosuits. The nuclear and phoron variants are self-charging.
* Combat mechs now start with nuclear power cores, allowing them to
sustain themselves indefinitely, so long as they stay out of the action
for a bit.
* Removed basic power cells from the mechfab, replaced with the mech
powercores.
* Mech cell statuses now instantly update as soon as the cell charges or
discharges.
* Added a stack of 10 uranium to the machinist's workshop, which can
print two nuclear power cores.
* SDQL2 update
* fix that verb
* cl
* fix that
* toworld
* this is pointless
* update info
* siiiiick..
* vv edit update
* fix that
* fix editing vars
* fix VV
* Port the /TG/ globals controller.
* part 1
* part 2
* oops
* part 3
* Hollow Purple
* sadas
* bsbsdb
* muda na agaki ta
* ids 1-15
* 16-31
* 41-75
* bring me back to how things used to be before i lost it all
* the strength of mayhem
* final touches
* cl
* protect some vars
* update sdql2 to use glob
* stuff?
* forgot that is not defined there
* whoops
* observ
* but it never gets better
* a
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Mech UIs can no longer be moved via click-drag.
The lower left mech UI has received a make-over.
You can now use a cyborg analyzer on a mech to get its diagnostics report.
Mecha movement and equipment usage cooldowns have been decoupled. You can now move directly after using your equipment, which makes them MUCH less clunky to use.
Mecha hardpoint UI elements will now get tinted red during their cooldowns, which will turn back to normal once the equipment can be used again.
Mecha UI text have been overhauled to look much prettier.
The charge level for mechs is now displayed as a percentage value, and actually fits on the screen.
Spent lots of time and lots of changes to fix issues:
bugfix: "Mechs no longer runtime during destroy call."
bugfix: "Turrets and NPCS no longer target empty mechs."
bugfix: "Mechs no longer runtime during armor check. Mechs now use their armor and values for it. Before it would ignore them entirely and deal 100% damage."
Added ismech() define and also QDEL_NULL_LIST() define from TG. Matt's suggestion
renamed any armour references in mech code to armor to keep it consistent