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

Refactor: 重构 Hold 逻辑 #244

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Chen-Luan
Copy link
Member

@Chen-Luan Chen-Luan commented Nov 10, 2024

摘要

此 PR 重写了 HoldNote 的判定逻辑,并修复了一个 bug,主要更改如下:

  • 对极短的 HoldNote(HoldNote 持续时间小于判定区间),不再判定尾判,只要头判命中或在头判开始前按住了对应位置,尾判即可获得全部分数,否则尾判为 Miss
  • 对所有 HoldNote,即使头判失败,仍能积累尾判时间,并判定尾判成绩
  • fix: 在头判超过 Miss 时间后即可进行头判 Miss 判定,而非在整条 HoldNote 完成后或在中途按下判定,避免中途按下时销毁整个 HoldNote,亦避免销毁时只计算一个 MissNum

判定逻辑更改

由原先的:

  • 头判命中,判定头判,HoldNote 结束时判定尾判
  • 头判未命中,中途按下时销毁 HoldNote,不判定尾判
  • 头判未命中,中途未按下,结束时销毁 HoldNote

改为:

  • 头判命中,判定头判,HoldNote 结束时判定尾判
  • 头判未命中,在达到头判 Miss 时间后判定头判 Miss,HoldNote 结束时且超过头判 Miss 时间后判定尾判

其中,对于尾判的得分改为:

  • 需要的按住时长allLength(ms)= HoldEndTime - JudgeTime + Abs(EvaluateRange.Right)
  • 允许积累玩家按住时长pressTimeLength(ms)的范围 = JudgeTime - Abs(EvaluateRange.Bad) ~ HoldEndTime
  • 玩家按住时长可大于需要的按住时长,在尾判时根据两者比例计算尾判得分
  • 特别的,对于尾判时间 < 头判时间 + Miss 区间 的“极短 Hold”,只要头判非 Miss 或pressTimeLength大于0,尾判自动为 Exact,否则为 Miss

已知 Bug

  • 极短 HoldNote 在按住前和按住时,视觉层长度计算可能不正确,未计划在此 PR 修复
  • HoldNote 头判和尾判的 Acc 精准度可能存在计算 bug,Acc 待弃用,未计划在此 PR 修复

@Chen-Luan Chen-Luan added ◆ 优化 Enhancement 新需求或原有功能的优化 Optimization of new requirements or existing functions ♢ 游戏机制 Design mechanics 可能会影响玩家体验 It may affect the player experience labels Nov 10, 2024
@Chen-Luan Chen-Luan marked this pull request as ready for review November 23, 2024 05:16
@Chen-Luan
Copy link
Member Author

可供审核

@Chen-Luan Chen-Luan force-pushed the refactor/重构Hold逻辑 branch from c0a2545 to adca276 Compare November 23, 2024 05:20
@Chen-Luan Chen-Luan linked an issue Dec 7, 2024 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
♢ 游戏机制 Design mechanics 可能会影响玩家体验 It may affect the player experience ◆ 优化 Enhancement 新需求或原有功能的优化 Optimization of new requirements or existing functions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

修改 Hold 机制
1 participant