public int AddPassiveEffects(PassiveEffect pe) { for (int i = 0; i < ElementRates.Length; i++) { ElementRates[i] += pe.ElementRates[i]; } for (int i = 0; i < StateRates.Length; i++) { StateRates[i] += pe.StateRates[i]; } StatModifiers.Add(pe.StatModifiers); SPConsumeRate += pe.SPConsumeRate; ComboDifficulty += pe.ComboDifficulty; Counter += pe.Counter; Reflect += pe.Reflect; ExtraTurns += pe.ExtraTurns; if (pe.DisabledToolType1 > 0) { DisabledToolTypes.Add(pe.DisabledToolType1); } if (pe.DisabledToolType2 > 0) { DisabledToolTypes.Add(pe.DisabledToolType2); } if (pe.RemoveByHit > 0) { RemoveByHit.AddRange(new int[] { pe.Id, pe.RemoveByHit }); } return(pe.Id); }
public int RemovePassiveEffects(PassiveEffect pe) { for (int i = 0; i < ElementRates.Length; i++) { ElementRates[i] -= pe.ElementRates[i]; } for (int i = 0; i < StateRates.Length; i++) { StateRates[i] -= pe.StateRates[i]; } if (pe.StatModifiers != null) { StatModifiers.Subtract(pe.StatModifiers); } SPConsumeRate -= pe.SPConsumeRate; ComboDifficulty -= pe.ComboDifficulty; Counter -= pe.Counter; Reflect -= pe.Reflect; ExtraTurns -= pe.ExtraTurns; bool d1 = false; bool d2 = false; for (int i = 0; i < DisabledToolTypes.Count; i += 2) { if (pe.DisabledToolType1 == DisabledToolTypes[i] && !d1) { DisabledToolTypes.RemoveAt(i); d1 = true; } if (pe.DisabledToolType2 == DisabledToolTypes[i] && !d2) { DisabledToolTypes.RemoveAt(i); d2 = true; } } List <int> rbh = RemoveByHit; for (int i = 0; i < rbh.Count; i += 2) { if (pe.Id == rbh[i] && pe.RemoveByHit == rbh[i + 1]) { rbh.RemoveRange(i, 2); } } return(pe.Id); }
public PassiveEffect(PassiveEffect original) : base(original) { StatModifiers = Clone(original.StatModifiers, o => new Stats(o)); ElementRates = Clone(original.ElementRates); HPRegen = original.HPRegen; SPRegen = original.SPRegen; SPConsumeRate = original.SPConsumeRate; ComboDifficulty = original.ComboDifficulty; TurnEnd1 = original.TurnEnd1; TurnEnd2 = original.TurnEnd2; TurnSequence = original.TurnSequence; RemoveByHit = original.RemoveByHit; Counter = original.Counter; Reflect = original.Reflect; DisabledToolType1 = original.DisabledToolType1; DisabledToolType2 = original.DisabledToolType2; ExtraTurns = original.ExtraTurns; StateRates = Clone(original.StateRates); TurnsLeft = original.TurnsLeft; }