Comments (2)
報告ありがとうございます。
ver32.6.0以降で発生することを確認しました。
参考)全バージョンのプレビューサイト
https://danonicw.skr.jp/
#1509 で混入したと思われますが、この時点で機能追加やコードリファクタリングを行っているため、簡単に直らないかもしれません。
from danoniplus.
この辺の仕様がややこしいので一旦整理します。
ややこしくしている要因の一つは、difDataが指している初期ゲージ名が譜面によって違うことがあるためと認知しています。ゲージ名毎の設定は処理の最後に強制適用する仕組みのため、問題ありません。
内部処理としてはゲージ設定変更毎の処理をsetGauge
で行っています。
1. ゲージ優先度
- カスタムゲージの場合
- ゲージ個別設定(gaugeXXX) > 共通設定(g_presetObj.gaugeCustom)
- 汎用ゲージかつゲージ初期設定(Original or Normal)で無い場合
- ゲージ個別設定(gaugeXXX) > 共通設定(g_presetObj.gaugeCustom) > 基本設定(g_gaugeOptionObj)
- 汎用ゲージかつゲージ初期設定(Original or Normal)の場合
- ゲージ個別設定(gaugeXXX) > 共通設定(g_presetObj.gaugeCustom) > 譜面ヘッダー(difData) > 基本設定(g_gaugeOptionObj)
2. ゲージ設定を変更した場合の挙動
- Difficultyを変更した場合
- 同一のゲージ設定名があれば、そのゲージ設定に合致するゲージ設定を1.から取得 (ver32.6.0から適用)
- ない場合は、その譜面のゲージ設定群の先頭をゲージ設定として、そのゲージ設定を1.から取得
- Gaugeを変更した場合
- 対象譜面のゲージ設定群のカーソルを1つ右 or 左にずらして、そのゲージ設定を1.から取得
3. ゲージ設定関連の変数(ノルマ、回復、ダメージ、初期値)
複数譜面あるため、いずれも配列で保持。
- ゲージ個別設定(gaugeXXX)、共通設定(g_presetObj.gaugeCustom)
⇒ g_gaugeOptionObj.gaugeXXXs = { lifeBorders: [], lifeRecoverys: [], lifeDamages: [], lifeInits: [] }
※この部分の初期化処理はgetGaugeSetting
で実施 - 譜面ヘッダー(difData)
⇒ g_headerObj = { lifeBorders: [], lifeRecoverys: [], lifeDamages: [], lifeInits: [] }
※g_headerObjは譜面ヘッダー定義の集合体のため、ゲージ設定のみ抜粋
※この部分の初期化処理はheaderConvert
で実施 - 基本設定(g_gaugeOptionObj) ※初期化済み
- ライフ制ゲージの場合
⇒ g_gaugeOptionObj = { clearSurvival: [], rcvSurvival: [], dmgSurvival: [], initSurvival: [] } - ノルマ制ゲージの場合
⇒ g_gaugeOptionObj = { clearBorder: [], rcvBorder: [], dmgBorder: [], initBorder: [] }
- ライフ制ゲージの場合
4. ノルマ制ゲージ決定条件
- ゲージ個別設定(gaugeXXX)、共通設定(g_presetObj.gaugeCustom)
⇒ g_gaugeOptionObj.gaugeXXXs.lifeBorders[譜面番号] が「x」以外であること。 - 譜面ヘッダー(difData)
⇒ g_headerObj.lifeBorders[譜面番号]が「x」以外であること。 - 基本設定(g_gaugeOptionObj)
⇒ g_gaugeOptionObj.typeSurvival[譜面番号] もしくは g_gaugeOptionObj.typeBorder[譜面番号] の値が「border」であること。(「survival」の場合はライフ制)
5. 回復・ダメージ量の固定・変動条件
- カスタムゲージの場合
⇒ 譜面ヘッダー: customGaugeXの2要素目が「F」なら固定、「V」なら変動。
内部変数としては g_gaugeOptionObj.varCustom[譜面番号] で定義され、
「OFF」なら固定、「ON」なら変動。 - ライフ制ゲージ群の場合 ※4. とは異なる。「Original, Light, Heavy, SuddenDeath」の1セット。
⇒ g_gaugeOptionObj.varSurvival[譜面番号]の値が「OFF」なら固定、「ON」なら変動。 - ノルマ制ゲージ群の場合 ※4. とは異なる。「Normal, Easy, Hard, SuddenDeath」の1セット。
⇒ g_gaugeOptionObj.varBorder[譜面番号]の値が「OFF」なら固定、「ON」なら変動。
from danoniplus.
Related Issues (20)
- [要望] 譜面ヘッダーの遅延読み込み HOT 3
- [バグ] g_scoreObj.baseFrame の設定値誤り
- [要望] 共通設定ファイルのオブジェクト一本化
- [要望] ローカル時にリザルトコピーにURL情報を付加しないようにする
- [要望] シャッフルグループのパターン差異表示
- [要望] プレイ画面左上のフレーム数、左下の経過時間を譜面データ基準の値に変更
- [要望] 軸関数の導入 HOT 1
- [要望] arrowSpriteの多層化、カスタムキー定義の拡張 HOT 2
- [要望] キーコンフィグ画面のConfigTypeの廃止
- [要望] サイズ設定系の定数をg_limitObjへ移す
- [要望] setTimeout -> requestAnimationFrameへの移行 HOT 1
- [バグ] フリーズ矢印の終点と次のフリーズ矢印の始点が近い場合、次のフリーズ矢印の判定が異常になることがある HOT 2
- [要望] カスタムキーの下段略記対応
- DOS learning mode HOT 1
- [要望] ベンダープレフィックスの削除、画像プリロード方式の統一
- [要望] 色変化全般の仕様見直し
- [要望] danoni_legacy_function.js の付属を取り止める
- [要望] danoni_main.jsの分離・移動
- [要望] Hidden+/Sudden+のLockのショートカット追加
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from danoniplus.