Esempio n. 1
0
    public void CalculateStat()
    {
        StatBase = new StatInfo(Info.Stat);
        StatBase.AddRange(Info.StatIncrease, Level);

        StatGrade = new StatInfo(StatBase);
        StatGrade.Multiply(GradePercent);

        StatAdd = new StatInfo();
        if (Weapon != null)
        {
            Weapon.AddStats(StatAdd);
        }
        if (Armor != null)
        {
            Armor.AddStats(StatAdd);
        }

        foreach (var skill in Skills.Where(s => s.Info.Type == eSkillType.passive || s.Info.Type == eSkillType.passive_etc))
        {
            skill.AddStats(StatAdd, StatGrade, GradePercent);
        }

        foreach (var rune in Runes)
        {
            rune.Info.Skill.AddStats(StatAdd, StatGrade, Info.AttackType, 1f, rune.StatLevel);
        }

        StatTotal = new StatInfo(StatGrade);
        StatTotal.AddRange(StatAdd);
    }
Esempio n. 2
0
    // For Weapons
    public void Equip(Weapon newItem)
    {
        Weapon oldItem = null;

        if (currentWeapon != null)
        {
            oldItem = currentWeapon;
            //inventory.Add(oldItem);

            oldItem.Remove();
        }

        if (onEquipmentChanged != null)
        {
            onEquipmentChangedWeapon.Invoke(newItem, oldItem);
        }
        currentWeapon = newItem;
        currentWeapon.AddStats(GetComponent <CharacterStats>());
    }
Esempio n. 3
0
    public StatInfo CalculateBattleStat(float grade_percent)
    {
        StatInfo stat_grade = new StatInfo(StatBase);

        stat_grade.Multiply(grade_percent);

        StatInfo battle_stat = new StatInfo(stat_grade);

        Weapon.AddStats(battle_stat);
        Armor.AddStats(battle_stat);

        foreach (var skill in Skills.Where(s => s.Info.Type == eSkillType.passive || s.Info.Type == eSkillType.passive_etc))
        {
            skill.AddStats(battle_stat, stat_grade, grade_percent);
        }

        foreach (var rune in Runes)
        {
            rune.Info.Skill.AddStats(battle_stat, stat_grade, Info.AttackType, 1f, rune.StatLevel);
        }

        return(battle_stat);
    }