Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds Combat mode, rclick functionality #11899

Open
wants to merge 60 commits into
base: master
Choose a base branch
from

Conversation

Tsar-Salat
Copy link
Contributor

@Tsar-Salat Tsar-Salat commented Nov 18, 2024

About The Pull Request

This adds right-click functionality through the addition of the combat mode system.

Changes are as listed:

Major Codebase changes

  • Disarm and Grab Intents have been removed.
  • Diametric intents (harm/help) are not combat mode. Toggled by F or 4.
  • Context menu now appears on shift+rclick (like examine)
  • Disarm functionality has now been moved to rclick, whether CM is active or not
  • Grabbing has been centralized in its hotkey ctrl-click

Functional Item changes

  • Ninja Dash now activates via right-click
  • M90 grenade launcher activates through right click rather than toggle
  • Health analyzer now scans health with left click, chemicals with right click
  • Jumpsuits change suit sensors through right-click
  • Airlocks are now welded through rightclick
  • Reagent splashing is done through right click
  • RCDs deconstruct through rclick
  • Syringes now lclick to inject, rclick to draw
  • washingmachines now use rclick to start
  • stack splitting now uses rclick
  • hookshotguns use rclick instead of toggle
  • deconstructing windows, tables, chairs is done through rclick with appropriate tools
  • secure lockers are now (un)locked through rclick
  • gas canisters are repaired on lclick and deconstructed on rclick
  • right clicking a reagent container will now set it to its previous transfer amount
  • Screwdrivers can now be put in autolathes through lclick, maintenance through rclick
  • girders can be built by rclicking a turf with a sheet of iron (allowing building multiple at the same time)
  • Most previously rotatable structures or machines can now be rotated through mouseclick. Left for Counterclockwise, right for clockwise.
  • closet wrench actions moved to rclick
  • chemistry machines use rclick to add/remove their beakers
  • Kinetic Crusher projectiles are now fired on rclick
  • ID Painter now lets your remove IDs/PDA through rclick
Ports:

Why It's Good For The Game

Intents are by-and-large not a very well written system. The "grab" intent, for instance, has had a hotkey for years on ctrl-click.

The large goal of this PR is to address two fundamental issues:

  1. The current intent check system, which almost entirely relies on if a character is or is not on help or harm mode, to determine that players intention.
  2. The clunkiness of actual systems that DO fully utilize the intent system

For the first issue, nearly all of our intent checks in the codebase are just diametric checks for if a player is in harm or help mode. Grab is only checked when checking grab_state, which is attached to attack_hand, otherwise you can basically forget about the intent and just use the ctrl hotkey.
Disarm is in an even worse boat, its basically Harm Jr. in that players in combat will primarily be on harm while in combat and be spam-switching between the two only for the purpose of trying to stun them on a wall, table, or mob.

For the second issue, the most notable use of intents is martial arts. This is not to the boon of martial arts either, as the combination of moves that you have to do mid-combat is not very well done.

Allowing players to free up their mouse instead of the specific intents gives coders a lot more room and buttons to work with, and allow simplification for needlessly complex tasks like martial arts or construction.

Testing Photographs and Procedure

Screenshots&Videos

rclick welding

dreamseeker_3glRJS1Dp3.mp4

lclick/rclick syringes

dreamseeker_NzvFfxDE1k.mp4

grab states

dreamseeker_zvpHi0bMQQ.mp4

RCD rclick deconstruction

dreamseeker_Nez9ejXPHj.mp4

generic structure deconstruction

dreamseeker_uBsH8AheX2.mp4

CW/CCW mouse rotation

dreamseeker_LJmxLX3m8t.mp4

rclick girder construction

dreamseeker_8bMhahRAPx.mp4

Changelog

🆑 rkz, Qustinnus, Mothblocks, TJatPBnJ, IndieanaJones, KathyRyals, Arkatos, norill, Fikou, dragomagol, SgtHunk, JJRCop, ninjanomnom, cacogen, Timberpoes, LemonInTheDark, Ghommie, Sealed101, Ghilker, TheBonded, Timothymtorres, CameronWoof, ArcaneDefence, BurgerLUA, OneAsianTortoise, vincentiusvin, itseasytosee, AnturK
add: Adds combat mode
refactor: refactored syringe code to use flags
tweak: clicking on the turf of a airlock while combat mode is off will now close the airlock. No more pixel hunting!
balance: buffs to hook shotgun in addition to rclick functionality
code: renames RemoveComponent, component destroy will no longer runtime when parent is null
refactor: refactored simple rotation component
fix: fixed abandoned crates to not try to kill you if you perform actions on them AFTER they are unlocked
code: introduced variable weapon attack speed. No weapon utilizes this yet but admins can now varedit items to attack faster/slower.
code: unit tests reagent container transfer amounts
/:cl:

Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@llol111
Copy link
Contributor

llol111 commented Nov 18, 2024

So the day has come
its all over
Annihilation awaits

@Geatish
Copy link
Contributor

Geatish commented Nov 18, 2024

Rip to all the screwdrivers that will be consumed by the autolate

@Rukofamicom Rukofamicom added Needs Testmerge Golden ⭐ For high-effort PRs that make big and good improvements to the game. and removed Mapping DMM Change Tweak Sprites Sound Administration labels Nov 18, 2024
@EvilDragonfiend
Copy link
Member

EvilDragonfiend commented Nov 19, 2024

eh is it really golden? but well I guess any maint can give one. prolly deserving when it's a big port.

@Archanial
Copy link
Member

I like it, good pr ‼️

Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@Rukofamicom
Copy link
Contributor

eh is it really golden?

According to the tag yes:
image

This was a really high-effort port that also has a major impact on the game.

Copy link
Member

@PowerfulBacon PowerfulBacon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am running this locally and the hotkeys F/4 don't show up in the preferences menu and don't work. Do the hotkeys for this action actually exist?

The context menu is also enabled by default, and to turn it off you have to first press the shift key.

Holding shift also doesn't show the examine magnifying glass like other servers have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants