public override void OnGetChangeState(BattlePokemonData self, ChangeStateEnumForPokemon newstate, ref bool canAddState) { if (ChangeStateEnumForPokemon.Confusion == newstate) { canAddState = false; DebugHelper.LogFormat("{0}具有我行我素特性,不会陷入混乱状态", self.Ename); } }
public void RemoveChangeState(ChangeStateEnumForPokemon state) { if (ChangeStateForPokemonEnums.Contains(state)) { ChangeStateForPokemonEnums.Remove(state); } }
public override void OnGetChangeState(BattlePokemonData self, ChangeStateEnumForPokemon newstate, ref bool canAddState) { if (ChangeStateEnumForPokemon.Flinch == newstate) { StatModifiers stat = self.StatModifiers; stat.Speed += 1; self.StatModifiers = stat; DebugHelper.LogFormat("{0}具有不屈之心特性,陷入畏缩状态后速度提升1级", self.Ename); } }
public void AddChangeState(ChangeStateEnumForPokemon state) { bool canAddState = true; //考虑特性 if (AbilityManager.AbilityImpacts.ContainsKey(ShowAbility)) AbilityManager.AbilityImpacts[ShowAbility] .OnGetChangeState ( this, state, ref canAddState ); if (!canAddState) return; if(!ChangeStateForPokemonEnums.Contains(state)) { ChangeStateForPokemonEnums.Add(state); ChangeStateForPokemon.ChangeStateForPokemons[state].Init(this); } }
//陷入状态变化时触发 public virtual void OnGetChangeState( BattlePokemonData self, ChangeStateEnumForPokemon newstate, ref bool canAddState) { }