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)); }
// 静電気と磁力が有効. 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; }
internal override SlotGenerator GetSlotGenerator(WildGenerationArgument arg) => new SlotGenerator(encounterTable);
internal override INatureGenerator GetNatureGenerator(WildGenerationArgument arg) => EmSafariNatureGenerator.CreateInstance(arg.PokeBlock, arg.FieldAbility.syncNature);
// 静電気のみ有効 internal override SlotGenerator GetSlotGenerator(WildGenerationArgument arg) => arg.FieldAbility.attractingType == PokeType.Electric ? new SlotGenerator(staticGenerator, encounterTable) : new SlotGenerator(encounterTable);
internal override IGenderGenerator GetGenderGenerator(WildGenerationArgument arg) => CuteCharmGenderGenerator.GetInstance(arg.FieldAbility.cuteCharmGender);
internal abstract SlotGenerator GetSlotGenerator(WildGenerationArgument arg);
internal override IGenderGenerator GetGenderGenerator(WildGenerationArgument arg) => NullGenderGenerator.GetInstance();
internal override IEncounterDrawer GetEncounterDrawer(WildGenerationArgument arg) => ForceEncounterDrawer.Getinstance();
internal override INatureGenerator GetNatureGenerator(WildGenerationArgument arg) => HoennSafariNatureGenerator.CreateInstance(arg.PokeBlock);
internal override SlotGenerator GetSlotGenerator(WildGenerationArgument arg) => new SlotGenerator(DummySpecialSlotGenerator.GetInstance(), encounterTable);
internal abstract IGenderGenerator GetGenderGenerator(WildGenerationArgument arg);
internal abstract INatureGenerator GetNatureGenerator(WildGenerationArgument arg);
internal abstract ILvGenerator GetLvGenerator(WildGenerationArgument arg);
internal override ILvGenerator GetLvGenerator(WildGenerationArgument arg) => StandardLvGenerator.GetInstance();
internal override INatureGenerator GetNatureGenerator(WildGenerationArgument arg) => StandardNatureGenerator.GetInstance();
internal override ILvGenerator GetLvGenerator(WildGenerationArgument arg) => arg.FieldAbility.lvGenerator;
internal override INatureGenerator GetNatureGenerator(WildGenerationArgument arg) => SynchronizeNatureGenerator.GetInstance(arg.FieldAbility.syncNature);
internal abstract IEncounterDrawer GetEncounterDrawer(WildGenerationArgument arg);