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); }
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)); }