Beispiel #1
0
    public CharacterSkill(string name, string effectDescription, int level, int expToLevelUp, int maxLvl, DictionaryHolder.element element)
    {
        unlockRequirements = new Requirements();

        statsBase     = new DictionaryHolder();
        statsPerLevel = new DictionaryHolder();
        statsCurrent  = new DictionaryHolder();

        _name = name;
        _effectDescription = effectDescription;
        _level             = level;
        _maxLevel          = maxLvl;
        expPerLevel        = expToLevelUp;
        currentExp         = 0;
        _passive           = true;
        spCost             = 0;
        if (_level <= 0)
        {
            _unlocked = false;
        }
        else
        {
            _unlocked = true;
        }
        AdjustSkillBonus();
        _element = element;

        _alchemy = false;
    }
    private bool CanUpdateSkills(DictionaryHolder.element element)
    {
        bool canupgrade = false;

        //go through active skills
        for (int i = 0; i < playerSkillTree.ActiveSkills().Count; i++)
        {
            //finds the ones that are the same element as the parameter
            if (playerSkillTree.ActiveSkills()[i]._element == element)
            {
                if (playerSkillTree.ActiveSkills()[i].unlockRequirements.AreRequirementsMet(StoryProgressionManager.currentRequirementProgress))
                {
                    canupgrade = true;
                }
            }
        }
        //go through passive skills
        for (int i = 0; i < playerSkillTree.PassiveSkills().Count; i++)
        {
            //finds the ones that are the same element as the parameter
            if (playerSkillTree.PassiveSkills()[i]._element == element)
            {
                if (playerSkillTree.PassiveSkills()[i].unlockRequirements.AreRequirementsMet(StoryProgressionManager.currentRequirementProgress))
                {
                    canupgrade = true;
                }
            }
        }

        return(canupgrade);
    }
 public void UpdateSkills(DictionaryHolder.element element)
 {
     //go through active skills
     for (int i = 0; i < playerSkillTree.ActiveSkills().Count; i++)
     {
         //finds the ones that are the same element as the parameter
         if (playerSkillTree.ActiveSkills()[i]._element == element)
         {
             if (playerSkillTree.ActiveSkills()[i].unlockRequirements.AreRequirementsMet(StoryProgressionManager.currentRequirementProgress))
             {
                 playerSkillTree.activeSkills[i].Unlock();
             }
         }
     }
     //go through passive skills
     for (int i = 0; i < playerSkillTree.PassiveSkills().Count; i++)
     {
         //finds the ones that are the same element as the parameter
         if (playerSkillTree.PassiveSkills()[i]._element == element)
         {
             if (playerSkillTree.PassiveSkills()[i].unlockRequirements.AreRequirementsMet(StoryProgressionManager.currentRequirementProgress))
             {
                 playerSkillTree.passiveSkills[i].Unlock();
             }
         }
     }
 }
Beispiel #4
0
    public void AddSkillStat(DictionaryHolder.statType statType, DictionaryHolder.element element, int _perLevelValue)
    {
        //save
        statsPerLevel.ChangeStat(statType, element, _perLevelValue);

        //adjust
        AdjustSkillBonus();
    }
Beispiel #5
0
 public EnemySkill(string name, int damage, int cost, DictionaryHolder.element element)
 {
     stats    = new DictionaryHolder();
     _effect  = new EnemySkillEffect();
     _name    = name;
     _element = element;
     stats.fixedDamageStats[element] = damage;
     _cost = cost;
 }
    public static string ElementColor(DictionaryHolder.element attackElement)
    {
        string color = "black";

        //get color according to element
        switch (attackElement)
        {
        case DictionaryHolder.element.Fire:
        {
            color = "red";
            break;
        }

        case DictionaryHolder.element.Water:
        {
            color = "blue";
            break;
        }

        case DictionaryHolder.element.Earth:
        {
            color = "brown";
            break;
        }

        case DictionaryHolder.element.Wind:
        {
            color = "green";
            break;
        }

        case DictionaryHolder.element.Light:
        {
            color = "yellow";
            break;
        }

        case DictionaryHolder.element.Dark:
        {
            color = "purple";
            break;
        }

        case DictionaryHolder.element.Neutral:
        {
            color = "gray";
            break;
        }
        }
        return(color);
    }
Beispiel #7
0
    public void SetEnemy(EnemiesDatabase.enemy enemyType)
    {
        type  = enemyType;
        _name = EnemiesDatabase.GenerateName(enemyType);

        statsBase          = new DictionaryHolder();
        statsCurrent       = new DictionaryHolder();
        statsBase          = EnemiesDatabase.EnemyStats(enemyType);
        element            = EnemiesDatabase.GetElement(enemyType);
        statsCurrent       = statsBase;
        healthMax          = statsCurrent.health;
        healthCurrent      = healthMax;
        spellPointsMax     = statsCurrent.slime;
        spellPointsCurrent = spellPointsMax;

        expGiven = statsCurrent.expPool;
    }
Beispiel #8
0
    public int Damage(DictionaryHolder.element element)
    {
        totalDamage   = 0;
        percentDamage = 0;

        //add damage:

        //fixed
        statsCurrent.fixedDamageStats.TryGetValue(element, out totalDamage);

        //percent
        statsCurrent.percentDamageStats.TryGetValue(element, out percentDamage);

        //adjust percentage increase
        totalDamage = Mathf.RoundToInt((totalDamage * percentDamage) / 100);

        return(totalDamage);
    }
Beispiel #9
0
    public void SetCharacterSkill(CharacterSkill charSkill)
    {
        //basic info
        _name = charSkill.Name();
        _effectDescription = charSkill.EffectDescription();
        //each level increases 1 point of int based values and 0.1f of float based values
        _level = charSkill.CurrentLevel();

        //exp info
        currentExp  = charSkill.currentExp;
        expPerLevel = charSkill.expPerLevel;

        //list of possible things skills might influence
        statsBase     = charSkill.statsBase;
        statsPerLevel = charSkill.statsPerLevel;
        statsCurrent  = charSkill.statsCurrent;

        //base stats
        statsBase.health       = charSkill.statsBase.health;
        statsBase.expPool      = charSkill.statsBase.expPool;
        statsBase.actionPoints = charSkill.statsBase.actionPoints;
        statsBase.slime        = charSkill.statsBase.slime;
        statsBase.elementSlots = charSkill.statsBase.elementSlots;

        //passive or active
        _passive  = charSkill._passive;
        _unlocked = charSkill._unlocked;

        //cost in case active
        spCost = charSkill.spCost;

        //in case of active set element combination
        comboStr = charSkill.comboStr;

        //element
        _element = charSkill._element;
    }
Beispiel #10
0
 public void SetElement(DictionaryHolder.element _element)
 {
     element = _element;
 }
Beispiel #11
0
    public void UseSkillEffect(DictionaryHolder.element statElement)
    {
        switch (currentEffect)
        {
        case Effects.ResUp:
        {
            var temp = GameObject.FindGameObjectWithTag("FightWindow").GetComponent <FightManager>().enemy.gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            temp.SetElement(statElement);
            break;
        }

        case Effects.AllResUp:
        {
            var temp = GameObject.FindGameObjectWithTag("FightWindow").GetComponent <FightManager>().enemy.gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            break;
        }

        case Effects.ResDown:
        {
            var temp = GameObject.FindGameObjectWithTag("Player").gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            temp.SetElement(statElement);
            break;
        }

        case Effects.DamageDown:
        {
            var temp = GameObject.FindGameObjectWithTag("Player").gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            temp.SetElement(statElement);
            break;
        }

        case Effects.DamageUp:
        {
            var temp = GameObject.FindGameObjectWithTag("FightWindow").GetComponent <FightManager>().enemy.gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            temp.SetElement(statElement);
            break;
        }

        case Effects.Poison:
        {
            var temp = GameObject.FindGameObjectWithTag("Player").gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            temp.dotTimerTick = StoryProgressionManager.GetTimeHours() + 7;
            temp.dotTimer     = StoryProgressionManager.GetTimeHours() + 1;
            break;
        }

        case Effects.Burn:
        {
            var temp = GameObject.FindGameObjectWithTag("Player").gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            temp.dotTimerTick = StoryProgressionManager.GetTimeHours() + 3;
            temp.dotTimer     = StoryProgressionManager.GetTimeHours() + 1;
            break;
        }

        case Effects.Bleed:
        {
            var temp = GameObject.FindGameObjectWithTag("Player").gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            temp.dotTimerTick = StoryProgressionManager.GetTimeHours() + 3;
            break;
        }

        case Effects.Escape:
        {
            var temp = GameObject.FindGameObjectWithTag("FightWindow").GetComponent <FightManager>().enemy.gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            temp.dotTimerTick = StoryProgressionManager.GetTimeHours() + 1;
            temp.dotTimer     = StoryProgressionManager.GetTimeHours();
            break;
        }

        case Effects.Exp:
        {
            var temp = GameObject.FindGameObjectWithTag("FightWindow").GetComponent <FightManager>().enemy.gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            break;
        }

        case Effects.Heal:
        {
            var temp = GameObject.FindGameObjectWithTag("FightWindow").GetComponent <FightManager>().enemy.gameObject.AddComponent <EnemySkillEffect>();
            temp.SetAmount(amount);
            temp.SetEffect(currentEffect);
            break;
        }
        }
    }
Beispiel #12
0
 public void TakeDamage(int damage, DictionaryHolder.element element)
 {
     //calculate damage dealt TO enemy after resistence
     healthCurrent -= Mathf.RoundToInt(Mathf.Clamp(damage - statsCurrent.fixedResStats[element], 0, float.MaxValue));
 }
Beispiel #13
0
 public int TakeDamage(int damage, DictionaryHolder.element element)
 {
     healthCurrent -= Mathf.Clamp(damage - currentStats.fixedResStats[element], 0, int.MaxValue);
     return(healthCurrent);
 }
Beispiel #14
0
    public static DictionaryHolder.element GetElement(enemy enemy)
    {
        DictionaryHolder.element temp = DictionaryHolder.element.Neutral;
        switch (enemy)
        {
        case enemy.Fish:
        {
            temp = DictionaryHolder.element.Water;
            break;
        }

        case enemy.Lizzard:
        {
            temp = DictionaryHolder.element.Earth;
            break;
        }

        case enemy.Cat:
        {
            temp = DictionaryHolder.element.Dark;
            break;
        }

        case enemy.Scorpion:
        {
            temp = DictionaryHolder.element.Fire;
            break;
        }

        case enemy.Slime:
        {
            temp = DictionaryHolder.element.Neutral;
            break;
        }

        case enemy.Fox:
        {
            temp = DictionaryHolder.element.Wind;
            break;
        }

        case enemy.Boar:
        {
            temp = DictionaryHolder.element.Earth;
            break;
        }

        case enemy.Wolf:
        {
            temp = DictionaryHolder.element.Dark;
            break;
        }

        case enemy.Bear:
        {
            temp = DictionaryHolder.element.Light;
            break;
        }

        case enemy.Goblin:
        {
            temp = DictionaryHolder.element.Dark;
            break;
        }

        case enemy.LandFish:
        {
            temp = DictionaryHolder.element.Fire;
            break;
        }

        case enemy.LizardMan:
        {
            temp = DictionaryHolder.element.Neutral;
            break;
        }

        case enemy.Eagle:
        {
            temp = DictionaryHolder.element.Wind;
            break;
        }

        case enemy.Kappa:
        {
            temp = DictionaryHolder.element.Water;
            break;
        }

        case enemy.ArmoredBoar:
        {
            temp = DictionaryHolder.element.Neutral;
            break;
        }

        case enemy.Pixie:
        {
            temp = DictionaryHolder.element.Light;
            break;
        }

        case enemy.FireFox:
        {
            temp = DictionaryHolder.element.Fire;
            break;
        }

        case enemy.Frog:
        {
            temp = DictionaryHolder.element.Water;
            break;
        }

        case enemy.Panda:
        {
            temp = DictionaryHolder.element.Light;
            break;
        }

        case enemy.Golem:
        {
            temp = DictionaryHolder.element.Dark;
            break;
        }
        }
        return(temp);
    }