Skip to content

Add veteran and elite reload time customization with \RELOAD\ and \EMPTY_RELOAD\ abilities - #2334

Open
NukeAtty wants to merge 3 commits into
Phobos-developers:developfrom
NukeAtty:feature/veteran-reload-abilities
Open

Add veteran and elite reload time customization with \RELOAD\ and \EMPTY_RELOAD\ abilities#2334
NukeAtty wants to merge 3 commits into
Phobos-developers:developfrom
NukeAtty:feature/veteran-reload-abilities

Conversation

@NukeAtty

Copy link
Copy Markdown

Adds two new veterancy abilities and their duration multipliers:

  • RELOAD - scales the duration of normal reload cycles.
  • EMPTY_RELOAD - scales the duration of the empty-clip reload cycle, which is only used when the TechnoType has a positive EmptyReload.

Both abilities are read from the vanilla VeteranAbilities / EliteAbilities lists and accumulate the same way as vanilla abilities (Veteran abilities keep working at elite level, Elite abilities are added on top).

New INI tags:

[General]
VeteranReload=1.0        ; floating point value, multiplier
VeteranEmptyReload=1.0   ; floating point value, multiplier

[SOMETECHNO]             ; TechnoType
VeteranReload=           ; floating point value, multiplier, defaults to [General] -> VeteranReload
VeteranEmptyReload=      ; floating point value, multiplier, defaults to [General] -> VeteranEmptyReload

The multipliers are applied to the final reload duration computed by the game, so other reload modifiers such as ReloadIncrement are still taken into account. They only affect newly started reload cycles, and a multiplier of 1.0 (the default) leaves vanilla behavior unchanged.

Tested in-game: both RELOAD and EMPTY_RELOAD verified for Veteran/Elite ranks, and mixed lists with vanilla abilities (e.g. VeteranAbilities=STRONGER,RELOAD) confirmed to keep the vanilla abilities working.

Documentation, changelog and credits updated.

@phoboscn-bot

Copy link
Copy Markdown

To Chinese users:
This pull request has been mentioned on Phobos CN. There might be relevant details there:

致中文用户:
此拉取请求已在 Phobos CN 上被提及。那里可能有相关详细信息:

https://www.phoboscn.top/t/topic/464/14

@phoboscn-bot

Copy link
Copy Markdown

To Chinese users:
This pull request has been mentioned on Phobos CN. There might be relevant details there:

致中文用户:
此拉取请求已在 Phobos CN 上被提及。那里可能有相关详细信息:

https://www.phoboscn.top/t/topic/704/1

@github-actions

Copy link
Copy Markdown

Nightly build for this pull request:

This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build.

Comment thread src/Ext/Techno/Body.Update.cpp Outdated
// It's not recommended to do anything more here it could have a better place for performance consideration
void TechnoExt::OnEarlyUpdate()
{
this->ApplyPendingReloadVeterancy();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I suppose this should be applied like the ROF multiplier. Why do you implement it like that?

@TaranDahl TaranDahl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Wrong decision in the last review.

@NukeAtty
NukeAtty force-pushed the feature/veteran-reload-abilities branch from fd67df4 to 05e9d4c Compare August 11, 2026 14:47
Rework per review feedback: instead of recording a pending adjustment in
the StartReloading hook and scaling ReloadTimer on the next frame's early
update, override the reload duration in EAX right before it is written to
TimeLeft, the same way the ROF multiplier is applied. Two hooks cover the
empty-clip (EmptyReload) and normal (Reload) reload cycles in
TechnoClass::StartReloading.
Restore the maintainer's translation fix to the Nuke credits entry.
@NukeAtty
NukeAtty force-pushed the feature/veteran-reload-abilities branch from 95eccdb to 32799f1 Compare August 11, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants