예제 #1
0
    public void ApplyBounus(ObjectController target)
    {
        switch (bounus_type)
        {
        case BounusType.Stats:
            switch (stats_bounus.value_type)
            {
            case SetStatsField.ValueType.Raw:
                target.AddMaxStats(stats_bounus.stats_type, stats_bounus.value);
                break;

            case SetStatsField.ValueType.Percentage:
                if ((int)STATSTYPE.DEFENSE <= (int)stats_bounus.stats_type && (int)stats_bounus.stats_type <= (int)STATSTYPE.HASTE)
                {
                    target.AddMaxStats(stats_bounus.stats_type, (float)System.Math.Round(stats_bounus.value, 1));
                }
                else
                {
                    target.AddMaxStats(stats_bounus.stats_type, (float)System.Math.Round(stats_bounus.value * target.MaxStats.Get(stats_bounus.stats_type), 0));
                }
                break;
            }
            break;

        case BounusType.Passive:
            if (target.GetPassive(passive_bounus.GetType()) != null)
            {
                return;
            }
            CachedPassive = (PassiveSkill)passive_bounus.Instantiate();
            CachedPassive.InitSkill(target);
            target.Passives.Add(CachedPassive);
            break;
        }
    }
예제 #2
0
 protected void UpdateSkillTreeState()
 {
     for (int i = 0; i < Patch.SkillTreeSize; i++)
     {
         if (CachedTreeSkills[i].GetType().IsSubclassOf(typeof(ActiveSkill)))
         {
             ActiveSkill active = GetActive(CachedTreeSkills[i].GetType());
             if (active && PlayerData.SkillTreelvls[i] != 0)
             {
                 active.InitSkill(GetComponent <ObjectController>(), PlayerData.SkillTreelvls[i]);
             }
             else if (active && PlayerData.SkillTreelvls[i] == 0)
             {
                 Actives.Remove(active);
                 active.Delete();
             }
             else if (active == null && PlayerData.SkillTreelvls[i] != 0)
             {
                 Skill s = CachedTreeSkills[i].Instantiate();
                 s.InitSkill(GetComponent <ObjectController>(), PlayerData.SkillTreelvls[i]);
                 Actives.Add((ActiveSkill)s);
             }
         }
         else
         {
             PassiveSkill passive = GetPassive(CachedTreeSkills[i].GetType());
             if (passive && PlayerData.SkillTreelvls[i] != 0)
             {
                 passive.InitSkill(GetComponent <ObjectController>(), PlayerData.SkillTreelvls[i]);
             }
             else if (passive && PlayerData.SkillTreelvls[i] == 0)
             {
                 Passives.Remove(passive);
                 passive.Delete();
             }
             else if (passive == null && PlayerData.SkillTreelvls[i] != 0)
             {
                 Skill s = CachedTreeSkills[i].Instantiate();
                 s.InitSkill(GetComponent <ObjectController>(), PlayerData.SkillTreelvls[i]);
                 Passives.Add((PassiveSkill)s);
             }
         }
     }
 }