Пример #1
0
 private static void StarfBerry(PokemonProxy pm)
 {
     if (ATs.Gluttony(pm))
     {
         var ss = new List <StatType>(5);
         if (pm.CanChangeLv7D(pm, StatType.Atk, 2, false) != 0)
         {
             ss.Add(StatType.Atk);
         }
         if (pm.CanChangeLv7D(pm, StatType.Def, 2, false) != 0)
         {
             ss.Add(StatType.Def);
         }
         if (pm.CanChangeLv7D(pm, StatType.SpAtk, 2, false) != 0)
         {
             ss.Add(StatType.SpAtk);
         }
         if (pm.CanChangeLv7D(pm, StatType.SpDef, 2, false) != 0)
         {
             ss.Add(StatType.SpDef);
         }
         if (pm.CanChangeLv7D(pm, StatType.Speed, 2, false) != 0)
         {
             ss.Add(StatType.Speed);
         }
         var n = ss.Count;
         if (n != 0)
         {
             ITs.ChangeLv5D(pm, ss[pm.Controller.GetRandomInt(0, n - 1)], 2);
         }
     }
 }
Пример #2
0
 private static void Up1Berry(PokemonProxy pm, StatType stat)
 {
     if (ATs.Gluttony(pm))
     {
         ITs.ChangeLv5D(pm, stat, 1);
     }
 }
Пример #3
0
 void UnloadPlugins()
 {
     foreach (Assembly_Threads at in ATs)
     {
         UnloadDLL(at);
         /// Add notification to the GUI
         listBoxLoadedPlugins.Items.Add("Plugin: " + at.asm.FullName.Split(',')[0] + " unloaded.");
     }
     ATs.Clear();
     tabControl1.TabPages.Clear();//panelPlugins.Controls.Clear();
 }
Пример #4
0
 private static void TastyBerry(PokemonProxy pm)
 {
     if (ATs.Gluttony(pm) && pm.CanHpRecover(false))
     {
         pm.HpRecoverByOneNth(2, false, Ls.ItemHpRecover, pm.Pokemon.Item, true);
         if (pm.Pokemon.Nature.DislikeTaste(ITs.GetTaste(pm.Pokemon.Item)))
         {
             pm.AddState(pm, AttachedState.Confuse, false);
         }
     }
 }
Пример #5
0
        void LoadPlugins(string path)
        {
            int i = 0;

            foreach (Assembly asm in EnumPluginFiles(path))//@"E:\My Documents\Programming\Projects\Platform_Plugins\Plugins"))
            {
                try
                {
                    Assembly_Threads at = new Assembly_Threads(asm);
                    //GroupBox gb = new GroupBox();
                    Panel  gb      = new Panel();
                    string asmName = at.asm.FullName.Split(',')[0];


                    Thread curT = LoadDLL(asm, new object[] { gb });
                    at.Add(curT);
                    ATs.Add(at);
                    curT.Start();

                    /// Add notification to the GUI

                    //gb.Text = asmName;
                    gb.Width  = 600;
                    gb.Height = 400;
                    gb.Margin = new System.Windows.Forms.Padding(3);
                    gb.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom;

                    tabControl1.TabPages.Add(asmName);//panelPlugins.Controls.Add(gb);
                    tabControl1.TabPages[i++].Controls.Add(gb);
                    listBoxLoadedPlugins.Items.Add("Plugin: " + asmName + " loaded.");
                }

                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, asm.FullName.Split(',')[0]);
                    //Console.WriteLine(ex.Message);
                }
                finally
                {
                    //Console.WriteLine("Press Enter to stop.");
                    //Console.Read();
                    //foreach (Assembly_Threads at in ATs)
                    //{
                    //    UnloadDLL(at);
                    //}
                    //Console.WriteLine("END. Press Enter to exit.");
                    //Console.ReadLine();
                }
            }
        }
Пример #6
0
        public static void Execute(PokemonProxy pm, int ability)
        {
            switch (ability)
            {
            case As.ZEN_MODE:
                if (pm.CanChangeForm(555, 0))
                {
                    pm.ChangeForm(0, false, "DeZenMode");
                }
                break;

            case As.Shields_Down:
                if (pm.CanChangeForm(774, 0))
                {
                    pm.ChangeForm(0, false, "DeShields_Down");
                }
                break;

            case As.Schooling:
                if (pm.CanChangeForm(746, 0))
                {
                    pm.ChangeForm(0, false, "DeSchooling");
                }
                break;

            case As.ILLUSION:
                ATs.DeIllusion(pm);
                break;

            case As.FLOWER_GIFT:
                WeatherObserver(pm, 421);
                break;

            case As.FORECAST:
                WeatherObserver(pm, 351);
                break;

            case As.PRIMORDIAL_SEA:
                ATs.DeSpWeather(pm, ability, Ls.DeHeavyRain);
                break;

            case As.DESOLATE_LAND:
                ATs.DeSpWeather(pm, ability, Ls.DeHarshSunlight);
                break;

            case As.DELTA_STREAM:
                ATs.DeSpWeather(pm, ability, Ls.DeMysteriousAirCurrent);
                break;
            }
        }
        private static void Trace(PokemonProxy pm)
        {
            var pms = new List <PokemonProxy>();

            foreach (var p in pm.Controller.Board[1 - pm.Pokemon.TeamId].GetAdjacentPokemonsByOppositeX(pm.OnboardPokemon.X))
            {
                if (ATs.Trace(p.OnboardPokemon.Ability))
                {
                    pms.Add(p);
                }
            }
            var n = pms.Count;

            if (n != 0)
            {
                pm.RaiseAbility();
                var target = pms[pm.Controller.GetRandomInt(0, n - 1)];
                pm.ChangeAbility(target.OnboardPokemon.Ability);
                pm.Controller.ReportBuilder.ShowLog("Trace", target.Id, target.OnboardPokemon.Ability);
            }
        }
Пример #8
0
        public static void Execute(DefContext def)
        {
            var der      = def.Defender;
            var atk      = def.AtkContext;
            var aer      = atk.Attacker;
            var touch    = atk.touch;
            var realHurt = def.Damage != 0;

            if (touch && aer.AbilityE(As.POISON_TOUCH) && der.Controller.RandomHappen(30) && der.CanAddState(aer, AttachedState.PSN, false))
            {
                aer.RaiseAbility();
                der.AddState(aer, AttachedState.PSN, false);
            }
            if (der.AtkContext != null && der.AtkContext.HasCondition(Cs.Bide))
            {
                var o = der.AtkContext.GetCondition(Cs.Bide);
                o.By      = aer;
                o.Damage += def.Damage;
            }
            switch (der.OnboardPokemon.Ability) //此时破格不能无视
            {
            case As.ILLUSION:
                ATs.DeIllusion(def.Defender);
                break;

            case As.STATIC:
                if (touch)
                {
                    AddState(def, AttachedState.PAR);
                }
                break;

            case As.POISON_POINT:
                if (touch)
                {
                    AddState(def, AttachedState.PSN);
                }
                break;

            case As.FLAME_BODY:
                if (touch)
                {
                    AddState(def, AttachedState.BRN);
                }
                break;

            case As.CUTE_CHARM:
                if (touch)
                {
                    AddState(def, AttachedState.Attract);
                }
                break;

            case As.ROUGH_SKIN:
            case As.IRON_BARBS:
                if (touch)
                {
                    RoughSkin(def);
                }
                break;

            case As.EFFECT_SPORE:
                if (touch && realHurt)
                {
                    EffectSpore(def);
                }
                break;

            case As.ANGER_POINT:
                if (def.IsCt)
                {
                    der.ChangeLv7D(der, StatType.Atk, 12, false, true, "AngerPoint");
                }
                break;

            case As.AFTERMATH:
                if (touch && der.Hp == 0 && aer.CanEffectHurt && aer.Controller.Board.Pokemons.HasAbility(As.DAMP) == null)
                {
                    der.RaiseAbility();
                    aer.EffectHurtByOneNthImplement(4);
                }
                break;

            case As.Innards_Out:
                if (der.Hp == 0)
                {
                    der.RaiseAbility();
                    aer.EffectHurt(def.Damage);
                }
                break;

            case As.PICKPOCKET:
                if (touch)
                {
                    Pickpocket(def);
                }
                break;

            case As.CURSED_BODY:
                if (atk.Controller.RandomHappen(30) && aer.CanAddState(der, AttachedState.Disable, false))
                {
                    der.RaiseAbility();
                    aer.AddState(der, AttachedState.Disable, false);
                }
                break;

            case As.WEAK_ARMOR:
                if (atk.Move.Move.Category == MoveCategory.Physical)
                {
                    der.ChangeLv7D(der, false, true, 0, -1, 0, 0, 1);
                }
                break;

            case As.MUMMY:
                var aa = aer.Ability;
                if (touch && aa != As.MULTITYPE && aa != As.RKS_System && aa != As.Comatose && aa != As.MUMMY)
                {
                    der.RaiseAbility();
                    var fa = aer.OnboardPokemon.Ability;
                    aer.ChangeAbility(As.MUMMY);
                    aer.ShowLogPm(Ls.SetAbility, As.MUMMY);
                    aer.Controller.ReportBuilder.ShowLog(Ls.setAbility, fa);
                }
                break;

            case As.JUSTIFIED:
                if (atk.Type == BattleType.Dark)
                {
                    der.ChangeLv7D(der, StatType.Atk, 1, false, true);
                }
                break;

            case As.RATTLED:
                if (atk.Type == BattleType.Dark || atk.Type == BattleType.Ghost || atk.Type == BattleType.Bug)
                {
                    der.ChangeLv7D(der, StatType.Speed, 1, false, true);
                }
                break;

            case As.GOOEY:
                if (touch && aer.CanChangeLv7D(der, StatType.Speed, -1, false) != 0)
                {
                    der.RaiseAbility();
                    aer.ChangeLv7D(der, StatType.Speed, -1, false);
                }
                break;

            //gen7
            case As.Stamina:
                der.ChangeLv7D(der, StatType.Def, 1, false, true);
                break;

            case As.Tangling_Hair:
                if (touch)
                {
                    aer.ChangeLv7D(der, StatType.Speed, -1, false);
                }
                break;

            case As.Water_Compaction:
                if (atk.Type == BattleType.Water)
                {
                    der.ChangeLv7D(der, StatType.Def, 2, false, true);
                }
                break;

            case As.Berserk:
                if (der.Hp < der.Pokemon.MaxHp / 2 && der.Hp + atk.TotalDamage >= der.Pokemon.MaxHp / 2)
                {
                    der.ChangeLv7D(der, StatType.SpAtk, 1, false, true);
                }
                break;
            }

            var itm = def.Defender.Item;

            if (def.Defender.Pokemon.Item == Is.ROCKY_HELMET)
            {
                itm = Is.ROCKY_HELMET;
            }

            switch (itm)
            {
            case Is.STICKY_BARB: //65
                if (touch && aer.Pokemon.Item == 0 && der.Controller.RandomHappen(10))
                {
                    der.RemoveItem();
                    aer.SetItem(Is.STICKY_BARB);
                }
                break;

            case Is.ROCKY_HELMET: //104
                if (touch)
                {
                    aer.EffectHurtByOneNth(6, Ls.RockyHelmet, 0, 0);
                }
                break;

            case Is.AIR_BALLOON: //105
                ITs.AirBalloon(def);
                break;

            case Is.ABSORB_BULB: //109
                AttackedUpItem(def, BattleType.Water, StatType.SpAtk);
                break;

            case Is.CELL_BATTERY: //110
                AttackedUpItem(def, BattleType.Electric, StatType.Atk);
                break;

            case Is.ENIGMA_BERRY: //188
                if (def.EffectRevise > 0)
                {
                    der.HpRecoverByOneNth(4, false, Ls.ItemHpRecover, Is.ENIGMA_BERRY, true);
                }
                break;

            case Is.JABOCA_BERRY: //191
                ReHurtBerry(def, MoveCategory.Physical);
                break;

            case Is.ROWAP_BERRY: //192
                ReHurtBerry(def, MoveCategory.Special);
                break;

            case Is.LUMINOUS_MOSS:
                AttackedUpItem(def, BattleType.Water, StatType.SpDef);
                break;

            case Is.SNOWBALL:
                AttackedUpItem(def, BattleType.Ice, StatType.Atk);
                break;

            case Is.WEAKNESS_POLICY:
                if (def.EffectRevise > 0 && (der.CanChangeLv7D(der, StatType.Atk, 2, false) != 0 || der.CanChangeLv7D(der, StatType.SpAtk, 2, false) != 0))
                {
                    der.ShowLogPm("WeaknessPolicy");
                    der.ChangeLv7D(der, false, false, 2, 0, 2);
                    der.ConsumeItem();
                }
                break;

            case Is.KEE_BERRY:
                AttackedUpItem(def, MoveCategory.Physical, StatType.Def);
                break;

            case Is.MARANGA_BERRY:
                AttackedUpItem(def, MoveCategory.Special, StatType.SpDef);
                break;
            }
            if (der.OnboardPokemon.HasCondition(Cs.Rage))
            {
                der.ChangeLv7D(der, StatType.Atk, 1, false, false, "Rage");
            }
            if (aer.Pokemon.Item == 0 && ITs.CanLostItem(der) && aer.RaiseAbility(As.MAGICIAN))
            {
                var i = der.Pokemon.Item;
                aer.SetItem(i);
                der.RemoveItem();
                der.ShowLogPm("Magician", i);
            }
            if (der.OnboardPokemon.HasCondition(Cs.Beak_Blast) && atk.Move.NeedTouch)
            {
                aer.AddState(der, AttachedState.BRN, false);
            }
        }
Пример #9
0
        public static void SendingOut(PokemonProxy pm)
        {
            pm.Reset();
            var o = pm.OnboardPokemon;

            if (pm.State == PokemonState.BadlyPSN)
            {
                o.SetCondition(Cs.BadlyPSN, pm.Controller.TurnNumber);
            }
            var pass = pm.Tile.GetCondition <OnboardPokemon>(Cs.BatonPass);

            if (pass != null)
            {
                o.SetLv7D(pass.Lv5D.Atk, pass.Lv5D.Def, pass.Lv5D.SpAtk, pass.Lv5D.SpDef, pass.Lv5D.Speed, pass.AccuracyLv, pass.EvasionLv);
                pm.Tile.RemoveCondition(Cs.BatonPass);
                object c;
                //混乱状态
                c = pass.GetCondition <object>(Cs.Confuse);
                if (c != null)
                {
                    o.SetCondition(Cs.Confuse, c);
                }
                //寄生种子状态
                c = pass.GetCondition <object>(Cs.LeechSeed);
                if (c != null)
                {
                    o.SetCondition(Cs.LeechSeed, c);
                }
                //扣押状态
                c = pass.GetCondition <object>(Cs.Embargo);
                if (c != null)
                {
                    o.SetCondition(Cs.Embargo, c);
                }
                //回复封印状态
                c = pass.GetCondition <object>(Cs.HealBlock);
                if (c != null)
                {
                    o.SetCondition(Cs.HealBlock, c);
                }
                //念动力状态
                c = pass.GetCondition <object>(Cs.Telekinesis);
                if (c != null)
                {
                    o.SetCondition(Cs.Telekinesis, c);
                }
                //胃液状态
                if (pass.HasCondition(Cs.GastroAcid))
                {
                    o.SetCondition(Cs.GastroAcid);
                }
                //扎根状态
                if (pass.HasCondition(Cs.Ingrain))
                {
                    o.SetCondition(Cs.Ingrain);
                }
                //液态圈状态
                if (pass.HasCondition(Cs.AquaRing))
                {
                    o.SetCondition(Cs.AquaRing);
                }
                //蓄气状态
                if (pass.HasCondition(Cs.FocusEnergy))
                {
                    o.SetCondition(Cs.FocusEnergy);
                }
                //替身状态
                c = pass.GetCondition <object>(Cs.Substitute);
                if (c != null)
                {
                    o.SetCondition(Cs.Substitute, c);
                }
                //电磁浮游状态
                c = pass.GetCondition <object>(Cs.MagnetRise);
                if (c != null)
                {
                    o.SetCondition(Cs.MagnetRise, c);
                }
                //灭亡之歌状态
                c = pass.GetCondition <object>(Cs.PerishSong);
                if (c != null)
                {
                    o.SetCondition(Cs.PerishSong, c);
                }
            }
            ATs.Illusion(pm);//幻影特性以交换前的队伍顺序决定
        }
        public static void Execute(PokemonProxy pm)
        {
            switch (pm.Ability)
            {
            case As.DRIZZLE:     //2
                STs.SetWeather(pm, Weather.Rain, true, false);
                break;

            case As.DROUGHT:
                STs.SetWeather(pm, Weather.IntenseSunlight, true, false);
                break;

            case As.SAND_STREAM:
                STs.SetWeather(pm, Weather.Sandstorm, true, false);
                break;

            case As.SNOW_WARNING:
                STs.SetWeather(pm, Weather.Hailstorm, true, false);
                break;

            case As.PRIMORDIAL_SEA:
                SpWeather(pm, Weather.Rain, Ls.EnHeavyRain);
                break;

            case As.DESOLATE_LAND:
                SpWeather(pm, Weather.IntenseSunlight, Ls.EnHarshSunlight);
                break;

            case As.DELTA_STREAM:
                SpWeather(pm, Weather.Normal, Ls.EnMysteriousAirCurrent);
                break;

            case As.LIMBER:     //7
                CantAddState(pm, PokemonState.PAR);
                break;

            case As.INSOMNIA:     //15
            case As.VITAL_SPIRIT: //72
                CantAddState(pm, PokemonState.SLP);
                break;

            case As.MAGMA_ARMOR:     //40
                CantAddState(pm, PokemonState.FRZ);
                break;

            case As.WATER_VEIL:     //41
                CantAddState(pm, PokemonState.BRN);
                break;

            case As.OBLIVIOUS:     //12
                if (pm.OnboardPokemon.RemoveCondition(Cs.Attract))
                {
                    pm.RaiseAbility();
                    pm.ShowLogPm("DeAttract");
                }
                break;

            case As.IMMUNITY:     //17
                if (pm.State == PokemonState.PSN || pm.State == PokemonState.BadlyPSN)
                {
                    pm.RaiseAbility();
                    pm.DeAbnormalState();
                }
                break;

            case As.OWN_TEMPO:     //20
                if (pm.OnboardPokemon.RemoveCondition(Cs.Confuse))
                {
                    pm.RaiseAbility();
                    pm.ShowLogPm("DeConfuse");
                }
                break;

            case As.IMPOSTER:
                Imposter(pm);
                break;

            case As.FRISK:
                Frisk(pm);
                break;

            case As.FLOWER_GIFT:
                WeatherObserver(pm, 421, pm.Controller.Weather == Weather.IntenseSunlight ? 1 : 0);
                break;

            case As.FORECAST:
            {
                var form = (int)pm.Controller.Weather;
                WeatherObserver(pm, 351, form > 3 ? 0 : form);
            }
            break;

            case As.FOREWARN:
                Forewarn(pm);
                break;

            case As.FLASH_FIRE:
                pm.OnboardPokemon.RemoveCondition(Cs.FlashFire);
                break;

            case As.AIR_LOCK:     //总觉得多个天气锁的可能会有问题,未测
                pm.RaiseAbility();
                pm.Controller.ReportBuilder.ShowLog("AirLock");
                if (pm.Controller.Board.Weather != Weather.Normal)
                {
                    ATs.WeatherChanged(pm.Controller);
                }
                break;

            case As.INTIMIDATE:
                pm.RaiseAbility();
                foreach (var p in pm.Controller.Board[1 - pm.Pokemon.TeamId].GetAdjacentPokemonsByOppositeX(pm.OnboardPokemon.X))
                {
                    if (p.OnboardPokemon.HasCondition(Cs.Substitute))
                    {
                        p.ShowLogPm("NoEffect");
                    }
                    else
                    {
                        p.ChangeLv7D(pm, StatType.Atk, -1, true);
                    }
                }
                break;

            case As.TRACE:
                Trace(pm);
                break;

            case As.PRESSURE:
                SimpleAttachRaise(pm, "Pressure");
                break;

            case As.MOLD_BREAKER:
                SimpleAttachRaise(pm, "MoldBreaker");
                break;

            case As.TURBOBLAZE:
                SimpleAttachRaise(pm, "Turboblaze");
                break;

            case As.TERAVOLT:
                SimpleAttachRaise(pm, "Teravolt");
                break;

            case As.DOWNLOAD:
                Download(pm);
                break;

            case As.ANTICIPATION:
                Anticipation(pm);
                break;

            case As.SLOW_START:
                pm.OnboardPokemon.SetCondition(Cs.SlowStart, pm.Controller.TurnNumber + 5);
                pm.RaiseAbility();
                pm.ShowLogPm("EnSlowStart");
                break;
            }
        }
Пример #11
0
        public static void Execute(DefContext def)
        {
            var der  = def.Defender;
            var atk  = def.AtkContext;
            var aer  = atk.Attacker;
            var move = atk.Move;

            switch (move.Id)
            {
            case Ms.TRI_ATTACK:     //161
                TriAttack(def);
                break;

            case Ms.THIEF:     //168
            case Ms.COVET:     //343
                Thief(def);
                break;

            case Ms.KNOCK_OFF:     //282
                RemoveItem(def, false, "KnockOff");
                break;

            case Ms.INCINERATE:     //510
                RemoveItem(def, true, "Incinerate");
                break;

            case Ms.SECRET_POWER:     //290
                SecretPower(def);
                break;

            case Ms.NATURAL_GIFT:     //363
                def.AtkContext.Attacker.ConsumeItem(false);
                break;

            case Ms.PLUCK:     //365
            case Ms.BUG_BITE:  //450
                EatDefenderBerry(def);
                break;

            case Ms.FLING:     //374
            {
                var i = aer.Pokemon.Item;
                aer.ConsumeItem(false);
                ITs.RaiseItemByMove(def.Defender, i, aer);
            }
            break;

            case Ms.SHADOW_FORCE:     //467
            case Ms.PHANTOM_FORCE:
            case Ms.HYPERSPACE_HOLE:
            case Ms.HYPERSPACE_FURY:
                if (def.Defender.OnboardPokemon.RemoveCondition(Cs.Protect))
                {
                    def.Defender.ShowLogPm("DeProtect");
                }
                break;

            case Ms.CLEAR_SMOG:     //499
                der.OnboardPokemon.SetLv7D(0, 0, 0, 0, 0, 0, 0);
                der.ShowLogPm("7DReset");
                break;

            case Ms.Core_Enforcer:
                if (der.LastMoveTurn == der.Controller.TurnNumber && !GameHelper.CantLoseAbility(der.Ability) && der.OnboardPokemon.AddCondition(Cs.GastroAcid))
                {
                    der.ShowLogPm("LoseAbility");
                }
                break;

            default:
                if (der.Hp > 0)
                {
                    if (move.Class == MoveClass.AttackWithTargetLv7DChange)
                    {
                        der.ChangeLv7D(def);
                    }
                    else if (move.Class == MoveClass.AttackWithState)
                    {
                        der.AddState(def);
                    }
                    if (!def.AbilityE(As.INNER_FOCUS) && (move.FlinchProbability != 0 && def.RandomHappen(move.FlinchProbability) || ATs.Stench(def) || ITs.CanAttackFlinch(def)))
                    {
                        der.OnboardPokemon.SetTurnCondition(Cs.Flinch);
                    }
                }
                break;
            }
            switch (move.Id)
            {
            case Ms.RELIC_SONG:
                if (aer.CanChangeForm(648))
                {
                    aer.ChangeForm(1 - aer.OnboardPokemon.Form.Index);
                }
                break;
            }
        }
Пример #12
0
        public static void Execute(PokemonProxy pm)
        {
            switch (pm.Item)
            {
            case Is.ORAN_BERRY:     //135
                RecoverBerry(pm, 10);
                break;

            case Is.BERRY_JUICE:     //194
                RecoverBerry(pm, 20);
                break;

            case Is.SITRUS_BERRY:     //138
                if (pm.Hp << 1 < pm.Pokemon.MaxHp)
                {
                    pm.HpRecoverByOneNth(4, false, Ls.ItemHpRecover, Is.SITRUS_BERRY, true);
                }
                break;

            case Is.FIGY_BERRY:     //139
            case Is.WIKI_BERRY:     //140
            case Is.MAGO_BERRY:     //141
            case Is.AGUAV_BERRY:    //142
            case Is.IAPAPA_BERRY:   //143
                TastyBerry(pm);
                break;

            case Is.LIECHI_BERRY:     //181
                Up1Berry(pm, StatType.Atk);
                break;

            case Is.GANLON_BERRY:
                Up1Berry(pm, StatType.Def);
                break;

            case Is.SALAC_BERRY:
                Up1Berry(pm, StatType.Speed);
                break;

            case Is.PETAYA_BERRY:
                Up1Berry(pm, StatType.SpAtk);
                break;

            case Is.APICOT_BERRY:     //185
                Up1Berry(pm, StatType.SpDef);
                break;

            case Is.LANSAT_BERRY:     //186
                if (ATs.Gluttony(pm) && pm.OnboardPokemon.AddCondition(Cs.FocusEnergy))
                {
                    pm.ConsumeItem();
                    pm.ShowLogPm("ItemEnFocusEnergy", Is.LANSAT_BERRY);
                }
                break;

            case Is.STARF_BERRY:     //187
                StarfBerry(pm);
                break;

            case Is.MICLE_BERRY:     //189
                if (ATs.Gluttony(pm) && pm.OnboardPokemon.AddCondition(Cs.MicleBerry))
                {
                    pm.ConsumeItem();
                    pm.ShowLogPm("MicleBerry", Is.MICLE_BERRY);
                }
                break;
            }
        }