private static EncounterSlot2[] GetSlots2GrassWater(EncounterArea2 area, byte[] data, ref int ofs, SlotType t, int slotSets, int slotCount)
        {
            byte[] rates = new byte[slotSets];
            for (int i = 0; i < rates.Length; i++)
            {
                rates[i] = data[ofs++];
            }

            area.Rates = rates;
            var slots = EncounterSlot2.ReadSlots(data, ref ofs, slotSets * slotCount, t);

            if (slotSets <= 1)
            {
                return(slots);
            }

            for (int i = 0; i < slotCount; i++)
            {
                slots[i].Time = EncounterTime.Morning;
            }
            for (int r = 1; r < slotSets; r++)
            {
                for (int i = 0; i < slotCount; i++)
                {
                    int index = i + (r * slotCount);
                    slots[index].SlotNumber = i;
                    slots[index].Time       = r == 1 ? EncounterTime.Day : EncounterTime.Night;
                }
            }

            return(slots);
        }
Пример #2
0
 private static void WriteSlot(BinaryWriter bw, EncounterSlot2 slot)
 {
     bw.Write((byte)slot.Species);
     bw.Write((byte)slot.SlotNumber);
     bw.Write((byte)slot.LevelMin);
     bw.Write((byte)slot.LevelMax);
 }
        private static void GetSlots2Fishing(EncounterArea2 area, byte[] data, ref int ofs)
        {
            // slot set ends with final slot having 0xFF 0x** 0x**
            const int size = 3;
            int       end  = ofs; // scan for count

            while (data[end] != 0xFF)
            {
                end += size;
            }

            var count = ((end - ofs) / size) + 1;

            var rates = area.Rates = new byte[count];
            var slots = area.Slots = new EncounterSlot2[count];

            for (int i = 0; i < slots.Length; i++)
            {
                rates[i] = data[ofs++];
                int species = data[ofs++];
                int level   = data[ofs++];
                slots[i] = new EncounterSlot2(species, level, level, i);
            }
        }