Exemple #1
0
        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);
        }
Exemple #2
0
        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>();
        }
Exemple #3
0
        public void StartFlickCheck(int finger, FlickType flick, Vector2 startPos, Vector2 deltaPos)
        {
            touchingFinger = finger;
            flickStarted   = true;
            flickDirection = flick;
            flickStartPos  = startPos;

            UpdateFlickCheck(startPos + deltaPos);
        }
Exemple #4
0
 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;
 }
Exemple #5
0
        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;
                }
            }
        }
Exemple #6
0
        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;
            }
        }
Exemple #7
0
 public void SetFlickHit(FlickType type)
 {
     flickHitted[type]   = true;
     flickCooltime[type] = 0.06f;
 }
Exemple #8
0
 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;
 }
 //ターゲットの回転の方向が変更された時に開始地点を記憶時に使用.
 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;
 }