public void AddStat(Stat stat, int amount, StatSource source) { foreach (UserItemStat addedStat in AddedStats) { if (addedStat.Stat != stat || addedStat.StatSource != source) { continue; } addedStat.Amount += amount; return; } if (amount == 0) { return; } UserItemStat newStat = SEnvir.UserItemStatsList.CreateNewObject(); newStat.StatSource = source; newStat.Stat = stat; newStat.Amount = amount; newStat.Item = this; }
public int MergeRefineElements(out Stat element) { int value = 0; element = Stats.GetWeaponElement(); for (int i = AddedStats.Count - 1; i >= 0; i--) { UserItemStat stat = AddedStats[i]; if (stat.StatSource != StatSource.Refine) { continue; } switch (stat.Stat) { case Stat.FireAttack: case Stat.IceAttack: case Stat.LightningAttack: case Stat.WindAttack: case Stat.HolyAttack: case Stat.DarkAttack: case Stat.PhantomAttack: value += stat.Amount; stat.Delete(); break; } } if (value > 0 && element != Stat.None) { AddStat(element, value, StatSource.Refine); } return(value); }