public virtual JudgeType GetJudge(float line, NoteType type, FlickType flick, float deltaTime) { deltaTime = Mathf.Abs(deltaTime); if (flick != FlickType.NotFlick || type.IsEither(NoteType.HoldStart, NoteType.HoldEnd, NoteType.SlideStart, NoteType.SlideMiddle, NoteType.SlideEnd)) { for (int i = 0; i < Game.Mode.judgeHFSThreshold.Length; i++) { if (i == 0 && deltaTime <= Game.Mode.judgeHFSThreshold[i]) { return(JudgeType.Fantastic); } else if (i != 0 && deltaTime.IsBetween((float)Game.Mode.judgeHFSThreshold[i - 1], (float)Game.Mode.judgeHFSThreshold[i], false, true)) { return((JudgeType)(6 - i)); } } } else { for (int i = 0; i < Game.Mode.judgeThreshold.Length; i++) { if (i == 0 && deltaTime <= Game.Mode.judgeThreshold[i]) { return(JudgeType.Fantastic); } else if (i != 0 && deltaTime.IsBetween((float)Game.Mode.judgeThreshold[i - 1], (float)Game.Mode.judgeThreshold[i], false, true)) { return((JudgeType)(6 - i)); } } } return(JudgeType.NotJudged); }
public InputStatus(float l) { line = l; touchingFinger = 100; tapHitted = false; tapCooltime = 0; isHolding = false; holdingNote = 0; flickStarted = false; flickDirection = FlickType.NotFlick; flickMovedDistance = 0; flickHitted = new Dictionary <FlickType, bool>() { { FlickType.Left, false }, { FlickType.Right, false }, { FlickType.Up, false }, { FlickType.Down, false }, { FlickType.Free, false } }; flickCooltime = new Dictionary <FlickType, float>() { { FlickType.Left, 0 }, { FlickType.Right, 0 }, { FlickType.Up, 0 }, { FlickType.Down, 0 }, { FlickType.Free, 0 } }; notes = new Queue <int>(); }
public void StartFlickCheck(int finger, FlickType flick, Vector2 startPos, Vector2 deltaPos) { touchingFinger = finger; flickStarted = true; flickDirection = flick; flickStartPos = startPos; UpdateFlickCheck(startPos + deltaPos); }
public NoteData(int i, int si, float t, float sp, float sl, float el, NoteType ty, FlickType f, Color32 c, List <int> p) { id = i; size = si; time = t; speed = sp; startLine = sl; endLine = el; type = ty; flick = f; color = c; prevIds = p; }
public NoteData(SSTrainNoteData sst) { id = sst.id; size = 1; time = (float)sst.timing; speed = 1; startLine = sst.startPos; endLine = sst.endPos; flick = (FlickType)sst.status; color = new Color32(255, 255, 255, 255); if (sst.prevNoteId > 0) { prevIds = new List <int> { sst.prevNoteId } } ; else { prevIds = new List <int>(); } if (sst.type == 1) { type = NoteType.Tap; } else if (sst.type == 2) { if (sst.prevNoteId > 0) { type = NoteType.HoldEnd; } else { type = NoteType.HoldStart; } } else if (sst.type == 3) { if (sst.prevNoteId <= 0) { type = NoteType.SlideStart; } else { type = NoteType.SlideMiddle; } } }
public NoteData(TWxNoteData twx) { id = twx.ID; size = twx.Size; time = (float)twx.Time; speed = (float)twx.Speed; startLine = (float)twx.StartLine; endLine = (float)twx.EndLine; flick = (FlickType)twx.Flick; color = new Color32((byte)twx.Color[0], (byte)twx.Color[1], (byte)twx.Color[2], (byte)twx.Color[3]); prevIds = new List <int>(); foreach (var prev in twx.PrevIDs) { if (prev > 0) { prevIds.Add(prev); } } switch (twx.Mode) { case 0: type = NoteType.Tap; break; case 1: type = NoteType.HoldStart; break; case 2: type = prevIds.Count > 0 ? NoteType.SlideMiddle : NoteType.SlideStart; break; case 3: type = NoteType.Damage; break; case 4: type = NoteType.Hidden; break; } }
public void SetFlickHit(FlickType type) { flickHitted[type] = true; flickCooltime[type] = 0.06f; }
public bool IsFlickAvailable(FlickType flick) { return(!flickHitted[flick]); }
//ターゲットの回転の方向が変更された時に開始地点を記憶時に使用. public void RenewalStatus(Quaternion quaternion, Vector3 touchViewportVector, FlickType flickType = FlickType.None) { this.Quater = quaternion; this.TouchViewportVector = touchViewportVector; this.Type = flickType; }
public FlickStatus(Quaternion qua, FlickType type) { this.Quater = qua; this.TouchViewportVector = new Vector3(); this.Type = type; }