public void Hit(EInstrumentPart inst, int nTime, EJudgement judge) { if (judge == EJudgement.Perfect || judge == EJudgement.Great || judge == EJudgement.Good) { listProgressSection[(int)inst][nTime * nSectionIntervalCount / nLastChipTime].nHitCount++; } }
protected override EJudgement tProcessChipHit(long nHitTime, CDTX.CChip pChip, bool bCorrectLane) { EJudgement eJudgeResult = tProcessChipHit(nHitTime, pChip, EInstrumentPart.GUITAR, bCorrectLane); if (pChip.eInstrumentPart == EInstrumentPart.GUITAR && CDTXMania.ConfigIni.bGraph有効.Guitar) { if (CDTXMania.ConfigIni.nSkillMode == 0) { this.actGraph.dbグラフ値現在_渡 = CScoreIni.tCalculatePlayingSkillOld(CDTXMania.DTX.nVisibleChipsCount.Guitar, this.nHitCount_ExclAuto.Guitar.Perfect, this.nHitCount_ExclAuto.Guitar.Great, this.nHitCount_ExclAuto.Guitar.Good, this.nHitCount_ExclAuto.Guitar.Poor, this.nHitCount_ExclAuto.Guitar.Miss, this.actCombo.nCurrentCombo.HighestValue.Guitar, EInstrumentPart.GUITAR, bIsAutoPlay); } else { this.actGraph.dbグラフ値現在_渡 = CScoreIni.tCalculatePlayingSkill(CDTXMania.DTX.nVisibleChipsCount.Guitar, this.nHitCount_ExclAuto.Guitar.Perfect, this.nHitCount_ExclAuto.Guitar.Great, this.nHitCount_ExclAuto.Guitar.Good, this.nHitCount_ExclAuto.Guitar.Poor, this.nHitCount_ExclAuto.Guitar.Miss, this.actCombo.nCurrentCombo.HighestValue.Guitar, EInstrumentPart.GUITAR, bIsAutoPlay); } if (CDTXMania.listTargetGhsotLag.Guitar != null && CDTXMania.ConfigIni.eTargetGhost.Guitar == ETargetGhostData.ONLINE && CDTXMania.DTX.nVisibleChipsCount.Guitar > 0) { this.actGraph.dbグラフ値現在_渡 = 100 * (this.nHitCount_ExclAuto.Guitar.Perfect * 17 + this.nHitCount_ExclAuto.Guitar.Great * 7 + this.actCombo.nCurrentCombo.HighestValue.Guitar * 3) / (20.0 * CDTXMania.DTX.nVisibleChipsCount.Guitar); } this.actGraph.n現在のAutoを含まない判定数_渡[0] = this.nHitCount_ExclAuto.Guitar.Perfect; this.actGraph.n現在のAutoを含まない判定数_渡[1] = this.nHitCount_ExclAuto.Guitar.Great; this.actGraph.n現在のAutoを含まない判定数_渡[2] = this.nHitCount_ExclAuto.Guitar.Good; this.actGraph.n現在のAutoを含まない判定数_渡[3] = this.nHitCount_ExclAuto.Guitar.Poor; this.actGraph.n現在のAutoを含まない判定数_渡[4] = this.nHitCount_ExclAuto.Guitar.Miss; } else if (pChip.eInstrumentPart == EInstrumentPart.BASS && CDTXMania.ConfigIni.bGraph有効.Bass) { if (CDTXMania.ConfigIni.nSkillMode == 0) { this.actGraph.dbグラフ値現在_渡 = CScoreIni.tCalculatePlayingSkillOld(CDTXMania.DTX.nVisibleChipsCount.Bass, this.nHitCount_ExclAuto.Bass.Perfect, this.nHitCount_ExclAuto.Bass.Great, this.nHitCount_ExclAuto.Bass.Good, this.nHitCount_ExclAuto.Bass.Poor, this.nHitCount_ExclAuto.Bass.Miss, this.actCombo.nCurrentCombo.HighestValue.Bass, EInstrumentPart.BASS, bIsAutoPlay); } else { this.actGraph.dbグラフ値現在_渡 = CScoreIni.tCalculatePlayingSkill(CDTXMania.DTX.nVisibleChipsCount.Bass, this.nHitCount_ExclAuto.Bass.Perfect, this.nHitCount_ExclAuto.Bass.Great, this.nHitCount_ExclAuto.Bass.Good, this.nHitCount_ExclAuto.Bass.Poor, this.nHitCount_ExclAuto.Bass.Miss, this.actCombo.nCurrentCombo.HighestValue.Bass, EInstrumentPart.BASS, bIsAutoPlay); } if (CDTXMania.listTargetGhsotLag.Bass != null && CDTXMania.ConfigIni.eTargetGhost.Bass == ETargetGhostData.ONLINE && CDTXMania.DTX.nVisibleChipsCount.Bass > 0) { this.actGraph.dbグラフ値現在_渡 = 100 * (this.nHitCount_ExclAuto.Bass.Perfect * 17 + this.nHitCount_ExclAuto.Bass.Great * 7 + this.actCombo.nCurrentCombo.HighestValue.Bass * 3) / (20.0 * CDTXMania.DTX.nVisibleChipsCount.Bass); } this.actGraph.n現在のAutoを含まない判定数_渡[0] = this.nHitCount_ExclAuto.Bass.Perfect; this.actGraph.n現在のAutoを含まない判定数_渡[1] = this.nHitCount_ExclAuto.Bass.Great; this.actGraph.n現在のAutoを含まない判定数_渡[2] = this.nHitCount_ExclAuto.Bass.Good; this.actGraph.n現在のAutoを含まない判定数_渡[3] = this.nHitCount_ExclAuto.Bass.Poor; this.actGraph.n現在のAutoを含まない判定数_渡[4] = this.nHitCount_ExclAuto.Bass.Miss; } return(eJudgeResult); }
public InspectResult(EJudgement judgement, IEnumerable <SubResult> subResults, string waferID = null, string resultmessage = "", string folderPath = "") { Judgement = judgement; SubResults = subResults; WaferID = waferID; //Modify.ach.20210601.Camera 결과값 매개변수 추가.Start... Resultmessage = resultmessage; FolderPath = folderPath; //Modify.ach.20210601.Camera 결과값 매개변수 추가.End... }
// メソッド public virtual void Start(int nLane, EJudgement judge, int lag) { if ((nLane < 0) || (nLane > 14)) { throw new IndexOutOfRangeException("有効範囲は 0~14 です。"); } if (((nLane >= 10) || (((EType)CDTXMania.ConfigIni.JudgementStringPosition.Drums) != EType.C)) && (((nLane != 13) || (((EType)CDTXMania.ConfigIni.JudgementStringPosition.Guitar) != EType.D)) && ((nLane != 14) || (((EType)CDTXMania.ConfigIni.JudgementStringPosition.Bass) != EType.D)))) { if (CDTXMania.ConfigIni.nJudgeAnimeType != 0) { this.st状態[nLane].ct進行 = new CCounter(0, CDTXMania.ConfigIni.nJudgeFrames - 1, CDTXMania.ConfigIni.nJudgeInterval, CDTXMania.Timer); } else { this.st状態[nLane].ct進行 = new CCounter(0, 300, 1, CDTXMania.Timer); } this.st状態[nLane].judge = judge; this.st状態[nLane].fX方向拡大率 = 1f; this.st状態[nLane].fY方向拡大率 = 1f; this.st状態[nLane].fZ軸回転度 = 0f; this.st状態[nLane].n相対X座標 = 0; this.st状態[nLane].n相対Y座標 = 0; this.st状態[nLane].n透明度 = 0xff; this.st状態[nLane].fX方向拡大率B = 1f; this.st状態[nLane].fY方向拡大率B = 1f; this.st状態[nLane].n相対X座標B = 0; this.st状態[nLane].n相対Y座標B = 0; this.st状態[nLane].n透明度B = 0xff; this.st状態[nLane].fZ軸回転度_棒 = 0f; this.st状態[nLane].fX方向拡大率_棒 = 0; this.st状態[nLane].fY方向拡大率_棒 = 0; this.st状態[nLane].n相対X座標_棒 = 0; this.st状態[nLane].n相対Y座標_棒 = 0; this.st状態[nLane].nLag = lag; } }
// ---------------------------------- #endregion #endif public void Damage(EInstrumentPart screenmode, EInstrumentPart part, EJudgement e今回の判定) { double fDamage; #if true // DAMAGELEVELTUNING if (CDTXMania.ConfigIni.nSkillMode == 1) // 0: Classic 1: XG { fDamageGaugeDelta[0, 0] = 0.005f; fDamageGaugeDelta[1, 0] = 0.001f; fDamageGaugeDelta[3, 0] = -0.017f; fDamageGaugeDelta[4, 0] = -0.041f; } switch (e今回の判定) { case EJudgement.Perfect: { fDamage = bRisky ? 0 : fDamageGaugeDelta[(int)e今回の判定, (int)part]; break; } case EJudgement.Great: if (CDTXMania.ConfigIni.bHAZARD) { if (bRisky) { fDamage = (nRiskyTimes == 1) ? 0 : -GAUGE_MAX / (nRiskyTimes_Initial - 1); // Risky=1のときは1Miss即閉店なのでダメージ計算しない if (nRiskyTimes >= 0) { nRiskyTimes--; // 念のため-1未満には減らないようにしておく } } else { fDamage = fDamageGaugeDelta[(int)4, (int)part]; } } else { fDamage = bRisky ? 0 : fDamageGaugeDelta[(int)e今回の判定, (int)part]; } break; case EJudgement.Good: if (CDTXMania.ConfigIni.bHAZARD) { if (bRisky) { fDamage = (nRiskyTimes == 1) ? 0 : -GAUGE_MAX / (nRiskyTimes_Initial - 1); // Risky=1のときは1Miss即閉店なのでダメージ計算しない if (nRiskyTimes >= 0) { nRiskyTimes--; // 念のため-1未満には減らないようにしておく } } else { fDamage = fDamageGaugeDelta[(int)4, (int)part]; } } else { fDamage = bRisky ? 0 : fDamageGaugeDelta[(int)e今回の判定, (int)part]; } break; case EJudgement.Poor: case EJudgement.Miss: if (bRisky) { fDamage = (nRiskyTimes == 1)? 0 : -GAUGE_MAX / (nRiskyTimes_Initial - 1); // Risky=1のときは1Miss即閉店なのでダメージ計算しない if (nRiskyTimes >= 0) { nRiskyTimes--; // 念のため-1未満には減らないようにしておく } } else { fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part]; } if (e今回の判定 == EJudgement.Miss && !bRisky) { fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eDamageLevel]; } break; default: fDamage = 0.0f; break; } #else // before applying #23625 modifications switch (e今回の判定) { case E判定.Perfect: fDamage = (part == E楽器パート.DRUMS) ? 0.01 : 0.015; break; case E判定.Great: fDamage = (part == E楽器パート.DRUMS) ? 0.006 : 0.009; break; case E判定.Good: fDamage = (part == E楽器パート.DRUMS) ? 0.002 : 0.003; break; case E判定.Poor: fDamage = (part == E楽器パート.DRUMS) ? 0.0 : 0.0; break; case E判定.Miss: fDamage = (part == E楽器パート.DRUMS) ? -0.035 : -0.035; switch (CDTXMania.ConfigIni.eダメージレベル) { case Eダメージレベル.少ない: fDamage *= 0.6; break; case Eダメージレベル.普通: fDamage *= 1.0; break; case Eダメージレベル.大きい: fDamage *= 1.6; break; } break; default: fDamage = 0.0; break; } #endif if (screenmode == EInstrumentPart.DRUMS) // ドラム演奏画面なら、ギター/ベースのダメージも全部ドラムのゲージに集約する { part = EInstrumentPart.DRUMS; this.db現在のゲージ値[(int)part] += fDamage; } else { if (this.bRisky) // ギター画面且つRISKYなら、ギターとベースのゲージをセットで減少 { this.db現在のゲージ値[(int)EInstrumentPart.GUITAR] += fDamage; this.db現在のゲージ値[(int)EInstrumentPart.BASS] += fDamage; } else { this.db現在のゲージ値[(int)part] += fDamage; } } if (this.db現在のゲージ値[(int)part] > GAUGE_MAX) // RISKY時は決してゲージが増加しないので、ギタレボモード時のギター/ベース両チェック(上限チェック)はしなくて良い { this.db現在のゲージ値[(int)part] = GAUGE_MAX; } }