Exemple #1
0
        public static bool AddState(this PokemonProxy pm, DefContext def)
        {
            var aer  = def.AtkContext.Attacker;
            var move = def.AtkContext.Move;

            if (def.RandomHappen(move.AttachedProbability) && CanAddState(pm, aer, def.AtkContext.DefenderAbilityAvailable(), move.AttachedState, def.AtkContext.Move.Move.Category == MoveCategory.Status))
            {
                int turn;
                if (move.Id == Ms.TOXIC || move.Id == Ms.POISON_FANG)
                {
                    turn = 0x0F;
                }
                else if (move.AttachedState == AttachedState.Trap && aer.Item == Is.GRIP_CLAW)
                {
                    turn = 8;
                }
                else
                {
                    turn = 0;
                }
                AddStateImplement(pm, aer, move.AttachedState, turn, null, 0);
                return(true);
            }
            return(false);
        }
Exemple #2
0
        public static bool ChangeLv7D(this PokemonProxy pm, DefContext def)
        {
            var c = def.AtkContext.Move.Lv7DChanges;

            return(c != null && def.RandomHappen(c.Probability) && ChangeLv7D(pm, def.AtkContext.Attacker, def.AtkContext.Move));
        }