Exemple #1
0
        private static bool Confuse(PokemonProxy pm)
        {
            int count = pm.OnboardPokemon.GetCondition <int>(Cs.Confuse);

            if (count != 0)
            {
                if (--count > 0)
                {
                    pm.ShowLogPm("Confuse");
                    pm.OnboardPokemon.SetCondition(Cs.Confuse, count);
                    if (pm.Controller.OneNth(3))
                    {
                        pm.ShowLogPm(Ls.ConfuseWork);
                        var e = new GameEvents.ShowHp()
                        {
                            Pm = pm.Id
                        };
                        pm.Controller.ReportBuilder.Add(e);
                        pm.MoveHurt((pm.Pokemon.Lv * 2 / 5 + 2) * 40 * OnboardPokemon.Get5D(pm.OnboardPokemon.FiveD.Atk, pm.OnboardPokemon.Lv5D.Atk) / OnboardPokemon.Get5D(pm.OnboardPokemon.FiveD.Def, pm.OnboardPokemon.Lv5D.Def) / 50 + 2, true);
                        e.Hp = pm.Hp;
                        pm.CheckFaint();
                        //if (!pm.CheckFaint()) pm.Item.HpChanged(pm); //◇硝子玩偶◇ 22:21:00 你知道混乱打自己的时候不触发加HP的果子么
                        return(false);
                    }
                }
                else
                {
                    pm.OnboardPokemon.RemoveCondition(Cs.Confuse);
                    pm.ShowLogPm("DeConfuse");
                }
            }
            return(true);
        }