Пример #1
0
        internal override IEncounterDrawer GetEncounterDrawer(WildGenerationArgument arg)
        {
            if (arg.ForceEncount)
            {
                return(ForceEncounterDrawer.Getinstance());
            }

            var value = BasicEncounterRate << 4;

            if (arg.RidingBicycle)
            {
                value = value * 8 / 10;
            }
            if (arg.UsingFlute == Flute.BlackFlute)
            {
                value /= 2;
            }
            if (arg.UsingFlute == Flute.WhiteFlute)
            {
                value = value * 15 / 10;
            }
            if (arg.HasCleanseTag)
            {
                value = value * 2 / 3;
            }
            else
            {
                value = arg.FieldAbility.CorrectEncounterThreshold(value);
            }

            return(RSEEncounterDrawer.CreateInstance(value));
        }
Пример #2
0
        // 静電気と磁力が有効.
        internal override SlotGenerator GetSlotGenerator(WildGenerationArgument arg)
        {
            if (arg.FieldAbility.attractingType == PokeType.Electric)
            {
                return(new SlotGenerator(staticGenerator, encounterTable));
            }
            if (arg.FieldAbility.attractingType == PokeType.Steel)
            {
                return(new SlotGenerator(magnetPullGenerator, encounterTable));
            }

            return(new SlotGenerator(encounterTable));
        }
        public WildGenerator(GBAMap map, WildGenerationArgument arg = null)
        {
            if (arg == null)
            {
                arg = new WildGenerationArgument();
            }

            lvGenerator     = map.GetLvGenerator(arg);
            slotGenerator   = map.GetSlotGenerator(arg);
            natureGenerator = map.GetNatureGenerator(arg);
            genderGenerator = map.GetGenderGenerator(arg);
            ivsGenrator     = arg.GenerateMethod;
        }
Пример #4
0
 internal override SlotGenerator GetSlotGenerator(WildGenerationArgument arg)
 => new SlotGenerator(encounterTable);
Пример #5
0
 internal override INatureGenerator GetNatureGenerator(WildGenerationArgument arg)
 => EmSafariNatureGenerator.CreateInstance(arg.PokeBlock, arg.FieldAbility.syncNature);
Пример #6
0
 // 静電気のみ有効
 internal override SlotGenerator GetSlotGenerator(WildGenerationArgument arg)
 => arg.FieldAbility.attractingType == PokeType.Electric ?
 new SlotGenerator(staticGenerator, encounterTable) :
 new SlotGenerator(encounterTable);
Пример #7
0
 internal override IGenderGenerator GetGenderGenerator(WildGenerationArgument arg)
 => CuteCharmGenderGenerator.GetInstance(arg.FieldAbility.cuteCharmGender);
Пример #8
0
 internal abstract SlotGenerator GetSlotGenerator(WildGenerationArgument arg);
Пример #9
0
 internal override IGenderGenerator GetGenderGenerator(WildGenerationArgument arg)
 => NullGenderGenerator.GetInstance();
Пример #10
0
 internal override IEncounterDrawer GetEncounterDrawer(WildGenerationArgument arg) => ForceEncounterDrawer.Getinstance();
Пример #11
0
 internal override INatureGenerator GetNatureGenerator(WildGenerationArgument arg)
 => HoennSafariNatureGenerator.CreateInstance(arg.PokeBlock);
Пример #12
0
 internal override SlotGenerator GetSlotGenerator(WildGenerationArgument arg)
 => new SlotGenerator(DummySpecialSlotGenerator.GetInstance(), encounterTable);
Пример #13
0
 internal abstract IGenderGenerator GetGenderGenerator(WildGenerationArgument arg);
Пример #14
0
 internal abstract INatureGenerator GetNatureGenerator(WildGenerationArgument arg);
Пример #15
0
 internal abstract ILvGenerator GetLvGenerator(WildGenerationArgument arg);
Пример #16
0
 internal override ILvGenerator GetLvGenerator(WildGenerationArgument arg)
 => StandardLvGenerator.GetInstance();
Пример #17
0
 internal override INatureGenerator GetNatureGenerator(WildGenerationArgument arg)
 => StandardNatureGenerator.GetInstance();
Пример #18
0
 internal override ILvGenerator GetLvGenerator(WildGenerationArgument arg)
 => arg.FieldAbility.lvGenerator;
Пример #19
0
 internal override INatureGenerator GetNatureGenerator(WildGenerationArgument arg)
 => SynchronizeNatureGenerator.GetInstance(arg.FieldAbility.syncNature);
Пример #20
0
 internal abstract IEncounterDrawer GetEncounterDrawer(WildGenerationArgument arg);