Example #1
0
 private TinyTimeSpan getNewSpan(int index) => new TinyTimeSpan()
 {
     Index     = index,
     tinystate = TimelineStatus.Clone(),
     framemin  = TimelineStatus.Currentframe,
     rand      = TimelineStatus.AdvancetoNextCall(),
     framemax  = TimelineStatus.Currentframe,
 };
Example #2
0
        private int getidxAfterDelay(TinyStatus src, int Current, int startindex)
        {
            var st = src.Clone();

            st.Currentframe = Current;
            st.RemoveType(3); // Remove fidget

            // Delay
            switch (Method)
            {
            case 5:                     // Fishing
                st.time_elapse(Delay);
                for (int i = 3 * PartySize; i > 0; i--)
                {
                    st.Next();
                }
                st.time_elapse(132);
                st.time_elapse(st.Rand(7) * 30 + 60);
                break;

            case 6:                         // Rock Smash
                st.time_elapse(16);
                for (int i = 3; i > 0; i--) // Memory for Rock Smasher
                {
                    st.Next();
                }
                st.time_elapse(Delay - 228);
                st.Next();     // Rand(240)
                st.time_elapse(212);
                break;

            case 10:
                st.time_elapse(146);
                st.Next();
                if (Delay == 324)      // Kyogre
                {
                    st.time_elapse(118);
                    st.Next();
                    st.time_elapse(60);
                }
                else                   // Groudon
                {
                    st.time_elapse(180);
                }
                for (int i = 3 * PartySize; i > 0; i--)     // Memory
                {
                    st.Next();
                }
                st.time_elapse(124);
                break;

            default:
                if (CryFrame == -1)     // No Cry
                {
                    st.time_elapse(Delay);
                }
                else
                {
                    st.time_elapse(CryFrame);
                    st.Next();
                    st.time_elapse(Delay - CryFrame);
                }
                break;
            }

            // Check hit idx
            var hitstate = st.Status;

            for (int i = startindex; i < ReferenceList.Count; i++)
            {
                if (ReferenceList[i].tinystate.Status.SequenceEqual(hitstate))
                {
                    return(i);
                }
            }
            return(int.MaxValue);
        }