Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
        }