コード例 #1
0
    public int CheckBulletToDestroy(NoteColor c, TypeOfInput t, float time)
    {
        double pressedTime = patternSynch.noteTimes[bulletToDestroy] - AudioSettings.dspTime;

        pressedTime = pressedTime < 0 ? -pressedTime : pressedTime;

        if (pressedTime <= offsetTolerance)
        {
            projectile = objectPooler.GetBulletToDestroy(bulletToDestroy);
            if (projectile == null)
            {
                return(-1);
            }

            else if ((projectile.isActiveAndEnabled && c.ToString().Equals(projectile.tag) && t == projectile.InputType))
            {
                if (projectile.InputType != TypeOfInput.HOLD)
                {
                    projectile.DestroyOnHit();
                    UpdateBulletToDestroy();
                    patternSynch.DestroyNote();
                    //if (projectile.Source != Projectile.Projectile_Source.ENEMY)
                    //{
                    if (pressedTime < offsetTolerance / 4.5f)
                    {
                        //Debug.Log("PERFECT");
                        return(1);
                    }
                    else if (pressedTime >= offsetTolerance / 4 && pressedTime < offsetTolerance / 3)
                    {
                        //Debug.Log("GOOD");
                        return(2);
                    }
                    else if (pressedTime >= offsetTolerance / 3 && pressedTime < offsetTolerance / 2)
                    {
                        //Debug.Log("MEH");
                        return(3);
                    }
                    else if (pressedTime >= offsetTolerance / 2)    // && pressedTime < offsetTolerance / 1.5f)
                    {
                        //Debug.Log("BAD");
                        return(4);
                    }
                    //}
                    //else
                    //{
                    if (pressedTime < offsetTolerance / 4)
                    {
                        //Debug.Log("PERFECT");
                        return(-1);
                    }
                    else if (pressedTime >= offsetTolerance / 4 && pressedTime < offsetTolerance / 3)
                    {
                        //Debug.Log("GOOD");
                        return(-2);
                    }
                    else if (pressedTime >= offsetTolerance / 3 && pressedTime < offsetTolerance / 2)
                    {
                        //Debug.Log("MEH");
                        return(-3);
                    }
                    else if (pressedTime >= offsetTolerance / 2)    // && pressedTime < offsetTolerance / 1.5f)
                    {
                        //Debug.Log("BAD");
                        return(-4);
                    }
                    //}
                }
            }
        }

        return(0);
    }
コード例 #2
0
    public override void InitPage()
    {
        StringBuilder sb = new StringBuilder();

        string id = Request.Params["id"];

        if (id.IsInt())
        {
            Edit e = new Edit();
            if (e.Load(id.ToInt()))
            {
                if (!e.Public)
                {
                    if (CurrentUser == null)
                    {
                        return;
                    }

                    if (CurrentUser.UserID != e.UserID)
                    {
                        return;
                    }
                }

                int              twelfthMode  = 0;
                NoteColor        currentColor = NoteColor.Red;
                List <NoteColor> colorCycle   = new List <NoteColor>()
                {
                    NoteColor.Red, NoteColor.Yellow, NoteColor.Blue, NoteColor.Yellow
                };
                int    currentMeasure = 0;
                double yPos           = 16;
                user.Text   = e.UserID;
                song.Text   = Song.GetSong(e.SongID).Title;
                name.Text   = e.Name;
                rating.Text = e.Rating.ToString();
                style.Text  = e.Style;
                e.GenerateSteps();

                Page.Title = "\"" + e.Name + "\"" + " - " + Song.GetSong(e.SongID).Title;

                Arrow  a;
                double multiplier = speed.SelectedValue.ToDouble();
                SpeedMod = multiplier.ToString();
                double sixteenthNoteSpacing = (8 * multiplier);
                double twelfthNoteSpacing   = (10.66 * multiplier);
                double measureHeight        = sixteenthNoteSpacing * 16;
                chartHeight  = (int)(measureHeight * (e.Taps.Count / 16));
                freezeEndPos = 3 * sixteenthNoteSpacing;
                switch (e.Style)
                {
                case "Single":
                    chartWidth = 136;
                    break;

                case "Double":
                    chartWidth = 264;
                    break;

                case "Couple":
                    chartWidth = 364;
                    break;
                }


                Dictionary <Arrow, double> freezeLength = new Dictionary <Arrow, double>();
                freezeLength[Arrow.P1L] = 0;
                freezeLength[Arrow.P1D] = 0;
                freezeLength[Arrow.P1U] = 0;
                freezeLength[Arrow.P1R] = 0;
                freezeLength[Arrow.P2L] = 0;
                freezeLength[Arrow.P2D] = 0;
                freezeLength[Arrow.P2U] = 0;
                freezeLength[Arrow.P2R] = 0;
                double top = 0;
                if (noteskin.SelectedValue == "")
                {
                    for (int i = 0; i < e.Freezes.Count; i++)
                    {
                        a = e.Freezes[i];

                        if (twelfthMode > 0)
                        {
                        }

                        yPos = (((int)i / 4) * (sixteenthNoteSpacing * 4) + ((i % 4) * sixteenthNoteSpacing) + 16) + 2;

                        if (a.HasFlag(Arrow.P1L))
                        {
                            freezeLength[Arrow.P1L]++;
                        }
                        else
                        {
                            if (freezeLength[Arrow.P1L] > 0)
                            {
                                top = yPos - (freezeLength[Arrow.P1L] * sixteenthNoteSpacing);
                                sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 36);
                            }

                            freezeLength[Arrow.P1L] = 0;
                        }

                        if (a.HasFlag(Arrow.P1D))
                        {
                            freezeLength[Arrow.P1D]++;
                        }
                        else
                        {
                            if (freezeLength[Arrow.P1D] > 0)
                            {
                                top = yPos - (freezeLength[Arrow.P1D] * sixteenthNoteSpacing);
                                sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 68);
                            }

                            freezeLength[Arrow.P1D] = 0;
                        }

                        if (a.HasFlag(Arrow.P1U))
                        {
                            freezeLength[Arrow.P1U]++;
                        }
                        else
                        {
                            if (freezeLength[Arrow.P1U] > 0)
                            {
                                top = yPos - (freezeLength[Arrow.P1U] * sixteenthNoteSpacing);
                                sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 100);
                            }

                            freezeLength[Arrow.P1U] = 0;
                        }

                        if (a.HasFlag(Arrow.P1R))
                        {
                            freezeLength[Arrow.P1R]++;
                        }
                        else
                        {
                            if (freezeLength[Arrow.P1R] > 0)
                            {
                                top = yPos - (freezeLength[Arrow.P1R] * sixteenthNoteSpacing);
                                sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 132);
                            }

                            freezeLength[Arrow.P1R] = 0;
                        }


                        if (e.Style == "Double")
                        {
                            if (a.HasFlag(Arrow.P2L))
                            {
                                freezeLength[Arrow.P2L]++;
                            }
                            else
                            {
                                if (freezeLength[Arrow.P2L] > 0)
                                {
                                    top = yPos - (freezeLength[Arrow.P2L] * sixteenthNoteSpacing);
                                    sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 164);
                                }

                                freezeLength[Arrow.P2L] = 0;
                            }

                            if (a.HasFlag(Arrow.P2D))
                            {
                                freezeLength[Arrow.P2D]++;
                            }
                            else
                            {
                                if (freezeLength[Arrow.P2D] > 0)
                                {
                                    top = yPos - (freezeLength[Arrow.P2D] * sixteenthNoteSpacing);
                                    sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 196);
                                }

                                freezeLength[Arrow.P2D] = 0;
                            }

                            if (a.HasFlag(Arrow.P2U))
                            {
                                freezeLength[Arrow.P2U]++;
                            }
                            else
                            {
                                if (freezeLength[Arrow.P2U] > 0)
                                {
                                    top = yPos - (freezeLength[Arrow.P2U] * sixteenthNoteSpacing);
                                    sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 228);
                                }

                                freezeLength[Arrow.P2U] = 0;
                            }

                            if (a.HasFlag(Arrow.P2R))
                            {
                                freezeLength[Arrow.P2R]++;
                            }
                            else
                            {
                                if (freezeLength[Arrow.P2R] > 0)
                                {
                                    top = yPos - (freezeLength[Arrow.P2R] * sixteenthNoteSpacing);
                                    sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 260);
                                }

                                freezeLength[Arrow.P2R] = 0;
                            }
                        }

                        else if (e.Style == "Couple")
                        {
                            if (a.HasFlag(Arrow.P2L))
                            {
                                freezeLength[Arrow.P2L]++;
                            }
                            else
                            {
                                if (freezeLength[Arrow.P2L] > 0)
                                {
                                    top = yPos - (freezeLength[Arrow.P2L] * sixteenthNoteSpacing);
                                    sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 164 + 100);
                                }

                                freezeLength[Arrow.P2L] = 0;
                            }

                            if (a.HasFlag(Arrow.P2D))
                            {
                                freezeLength[Arrow.P2D]++;
                            }
                            else
                            {
                                if (freezeLength[Arrow.P2D] > 0)
                                {
                                    top = yPos - (freezeLength[Arrow.P2D] * sixteenthNoteSpacing);
                                    sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 196 + 100);
                                }

                                freezeLength[Arrow.P2D] = 0;
                            }

                            if (a.HasFlag(Arrow.P2U))
                            {
                                freezeLength[Arrow.P2U]++;
                            }
                            else
                            {
                                if (freezeLength[Arrow.P2U] > 0)
                                {
                                    top = yPos - (freezeLength[Arrow.P2U] * sixteenthNoteSpacing);
                                    sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 228 + 100);
                                }

                                freezeLength[Arrow.P2U] = 0;
                            }

                            if (a.HasFlag(Arrow.P2R))
                            {
                                freezeLength[Arrow.P2R]++;
                            }
                            else
                            {
                                if (freezeLength[Arrow.P2R] > 0)
                                {
                                    top = yPos - (freezeLength[Arrow.P2R] * sixteenthNoteSpacing);
                                    sb.AppendFormat(freezeTemplate, top + 16, (yPos - (sixteenthNoteSpacing * 3) - (top - (sixteenthNoteSpacing * 2))), 260 + 100);
                                }

                                freezeLength[Arrow.P2R] = 0;
                            }
                        }
                    }
                }

                Arrow f = Arrow.None;
                for (int i = 0; i < e.Taps.Count; i++)
                {
                    a = e.Taps[i];
                    f = e.Freezes[i];

                    currentColor = colorCycle[i % 4];

                    yPos = (((int)i / 4) * (sixteenthNoteSpacing * 4) + ((i % 4) * sixteenthNoteSpacing) + 16) + 1;
                    if (i % 16 == 0)
                    {
                        sb.AppendFormat(measureTemplate, (currentMeasure * measureHeight) + 24, (currentMeasure + 1));
                        currentMeasure++;
                    }

                    if (a == Arrow.All)
                    {
                        twelfthMode = 3;
                        continue;
                    }

                    if (twelfthMode > 0)
                    {
                        if (twelfthMode == 3)
                        {
                            currentColor = NoteColor.Red;
                        }
                        else
                        {
                            currentColor = NoteColor.Green;
                        }

                        yPos = (((int)i / 4) * (sixteenthNoteSpacing * 4) + (((3 - twelfthMode) % 3) * twelfthNoteSpacing) + 16) + 1;
                        twelfthMode--;
                    }

                    if (a.HasFlag(Arrow.P1L))
                    {
                        if (noteskin.SelectedValue == "C")
                        {
                            currentColor = f.HasFlag(Arrow.P1L) ? NoteColor.Blue : NoteColor.Red;
                        }

                        sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "left", yPos, 36);
                    }

                    if (a.HasFlag(Arrow.P1D))
                    {
                        if (noteskin.SelectedValue == "C")
                        {
                            currentColor = f.HasFlag(Arrow.P1D) ? NoteColor.Blue : NoteColor.Red;
                        }

                        sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "down", yPos, 68);
                    }

                    if (a.HasFlag(Arrow.P1U))
                    {
                        if (noteskin.SelectedValue == "C")
                        {
                            currentColor = f.HasFlag(Arrow.P1U) ? NoteColor.Blue : NoteColor.Red;
                        }

                        sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "up", yPos, 100);
                    }

                    if (a.HasFlag(Arrow.P1R))
                    {
                        if (noteskin.SelectedValue == "C")
                        {
                            currentColor = f.HasFlag(Arrow.P1R) ? NoteColor.Blue : NoteColor.Red;
                        }

                        sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "right", yPos, 132);
                    }

                    if (e.Style == "Double")
                    {
                        if (a.HasFlag(Arrow.P2L))
                        {
                            sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "left", yPos, 164);
                        }

                        if (a.HasFlag(Arrow.P2D))
                        {
                            sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "down", yPos, 196);
                        }

                        if (a.HasFlag(Arrow.P2U))
                        {
                            sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "up", yPos, 228);
                        }

                        if (a.HasFlag(Arrow.P2R))
                        {
                            sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "right", yPos, 260);
                        }
                    }

                    else if (e.Style == "Couple")
                    {
                        if (a.HasFlag(Arrow.P2L))
                        {
                            if (noteskin.SelectedValue == "C")
                            {
                                currentColor = f.HasFlag(Arrow.P2L) ? NoteColor.Blue : NoteColor.Red;
                            }

                            sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "left", yPos, 164 + 100);
                        }

                        if (a.HasFlag(Arrow.P2D))
                        {
                            if (noteskin.SelectedValue == "C")
                            {
                                currentColor = f.HasFlag(Arrow.P2D) ? NoteColor.Blue : NoteColor.Red;
                            }

                            sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "down", yPos, 196 + 100);
                        }

                        if (a.HasFlag(Arrow.P2U))
                        {
                            if (noteskin.SelectedValue == "C")
                            {
                                currentColor = f.HasFlag(Arrow.P2U) ? NoteColor.Blue : NoteColor.Red;
                            }

                            sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "up", yPos, 228 + 100);
                        }

                        if (a.HasFlag(Arrow.P2R))
                        {
                            if (noteskin.SelectedValue == "C")
                            {
                                currentColor = f.HasFlag(Arrow.P2R) ? NoteColor.Blue : NoteColor.Red;
                            }

                            sb.AppendFormat(imgTemplate, currentColor.ToString().ToLower(), "right", yPos, 260 + 100);
                        }
                    }
                }
            }
        }

        chart_tags.Text = sb.ToString();
    }