Beispiel #1
0
 void Skill_B()
 {
     skillNameB = skill_B.skillNameB;
     defaultSkill.GetComponent <Image>().color = Colors.WhiteColor;
     skill_0.GetComponent <Image>().color      = Colors.WhiteColor;
     skill_1.GetComponent <Image>().color      = Colors.WhiteColor;
     skill_2.GetComponent <Image>().color      = Colors.WhiteColor;
     skill_B.GetComponent <Image>().color      = Colors.GreenColor;
     skill_lvl = skill_B.skill_lvl;
 }
Beispiel #2
0
    public static InfoSkill GetSkillB(SkillNameB name, int level)
    {
        InfoSkill iS = new InfoSkill();

        switch (name)
        {
        case SkillNameB.none:
            iS.damageTypeB = DamageType.Default;
            iS.delay       = 0;
            switch (level)
            {
            case 1:

                break;

            case 2:

                break;
            }
            break;

        case SkillNameB.skillB0:
            iS.damageTypeB = DamageType.Boom;
            iS.delay       = 2;
            iS.img         = ResManager.instance.imgSkill[3];
            switch (level)
            {
            case 1:

                break;

            case 2:

                break;
            }
            break;
        }
        return(iS);
    }
Beispiel #3
0
    public static List <CombatResult> Attack(TurnBase attackerIn, TurnBase attackedIn, SkillName skillNameIn, SkillNameB skillNameBIn, List <TurnBase> enemyesIn, List <TurnBase> unitsIn, int skill_lvlIn)
    {
        InfoSkill infoSkill = SkillInfo.GetSkill(skillNameIn, skill_lvlIn);

        damageType = infoSkill.damageType;
        InfoSkill infoSkillB = SkillInfo.GetSkillB(skillNameBIn, skill_lvlIn);

        damageTypeB = infoSkillB.damageTypeB;
        targets.Clear();
        selectedCells.Clear();
        combatResults.Clear();
        attacker   = attackerIn;
        attacked   = attackedIn;
        skillName  = skillNameIn;
        skillNameB = skillNameBIn;
        enemyes.Clear();
        units.Clear();
        enemyes   = enemyesIn;
        units     = unitsIn;
        skill_lvl = skill_lvlIn;
        CheckList();

        float damage = 0;

        if (skillName == SkillName.none && skillNameB == SkillNameB.none)
        {
            damage = attacker.general.PARAMS[GENERAL_DAMAGE_CURRENT] - attacked.general.PARAMS[GENERAL_DEFENSE_CURRENT];
            if (damage <= 0)
            {
                damage = 0;
            }
            else if (Random.Range(0, 100) < attacker.general.PARAMS[GENERAL_CRIT_CHANGE_CURRENT])
            {
                damage += attacker.general.PARAMS[GENERAL_CRIT_DAMAGE_CURRENT];
            }
            CombatResult cr = new CombatResult();
            cr.target = attacked;
            cr.damage = damage;
            combatResults.Add(cr);
        }
        else
        {
            if (damageType != DamageType.Default && skillName != SkillName.none)
            {
                switch (damageType)
                {
                case DamageType.Link:
                    Link();
                    break;

                case DamageType.Rebound:
                    Rebound();
                    break;

                case DamageType.Row:
                    Row();
                    break;

                case DamageType.Boom:
                    Boom();
                    break;

                case DamageType.Dot:

                    break;

                case DamageType.Buff:

                    break;

                case DamageType.Debuff:

                    break;
                }
            }
            else if (damageTypeB != DamageType.Default && skillNameB != SkillNameB.none)
            {
                switch (damageTypeB)
                {
                case DamageType.Link:
                    Link();
                    break;

                case DamageType.Rebound:
                    Rebound();
                    break;

                case DamageType.Row:
                    Row();
                    break;

                case DamageType.Boom:
                    Boom();
                    break;

                case DamageType.Dot:

                    break;

                case DamageType.Buff:

                    break;

                case DamageType.Debuff:

                    break;
                }
            }
            else
            {
            }
            CombatResult crs = new CombatResult();
            crs.target = attacked;
            if (DamageType.Boom == damageType)
            {
                //crs.damage = DamageBoom();
            }
            crs.damage = 20;
            combatResults.Add(crs);
            foreach (TurnBase target in targets)
            {
                CombatResult crss = new CombatResult();
                crss.target = target;
                crss.damage = 15;
                combatResults.Add(crss);
            }
        }
        return(combatResults);
    }
Beispiel #4
0
    void EnemyAttack()
    {
        enemyesCurrent[0].animator.Play("attack");
        rHit = Random.Range(0, units.Count - 1);
        bool            targetIsDead = false;
        List <TurnBase> enemyesOut   = new List <TurnBase>();

        foreach (TurnBase enemy in enemyes)
        {
            enemyesOut.Add(enemy);
        }
        List <TurnBase> unitsOut = new List <TurnBase>();

        foreach (TurnBase unit in units)
        {
            unitsOut.Add(unit);
        }

        List <CombatResult> combatResults = Combat.Attack(enemyesCurrent[0], units[rHit], skillName, skillNameB, enemyesOut, unitsOut, skill_lvl);

        for (int i = 0; i < combatResults.Count; i++)
        {
            TurnBase target = combatResults[i].target;
            float    damage = combatResults[i].damage;
            target.general.PARAMS[GENERAL_HP_CURRENT] -= damage;
            GameObject gt = Instantiate(ResManager.instance.DamageText, target.transform);
            gt.transform.position = target.transform.parent.transform.localPosition;
            DamageText dt = gt.GetComponent <DamageText>();
            dt.startMitonUnit("-" + damage, Colors.RedColor);
            if (target.general.PARAMS[GENERAL_HP_CURRENT] > 0)
            {
                target.animator.Play("hart");
                if (target.general.PARAMS[GENERAL_HP_CURRENT] > target.general.PARAMS[GENERAL_HP] / 4 * 3) //75+%
                {
                    target.text.color = Colors.GreenColor;
                }
                else if (target.general.PARAMS[GENERAL_HP_CURRENT] < target.general.PARAMS[GENERAL_HP] / 4 * 3 && target.general.PARAMS[GENERAL_HP_CURRENT] > target.general.PARAMS[GENERAL_HP] / 2) //50% + /75%-
                {
                    target.text.color = Colors.YellowColor;
                }
                else if (target.general.PARAMS[GENERAL_HP_CURRENT] < target.general.PARAMS[GENERAL_HP] / 2 && target.general.PARAMS[GENERAL_HP_CURRENT] > target.general.PARAMS[GENERAL_HP] / 4) //25%+ / 50%-
                {
                    target.text.color = Colors.Orange;
                }
                else if (target.general.PARAMS[GENERAL_HP_CURRENT] < target.general.PARAMS[GENERAL_HP] / 4 && target.general.PARAMS[GENERAL_HP_CURRENT] > 0) //0+ / 25-
                {
                    target.text.color = Colors.RedColor;
                }
                target.text.text = target.general.PARAMS[GENERAL_HP_CURRENT].ToString();
            }
            else
            {
                targetIsDead = true;
            }
        }
        skillName  = SkillName.none;
        skillNameB = SkillNameB.none;
        skill_lvl  = 0;
        if (targetIsDead)
        {
            Invoke("EnemyAttackDelay", 3f);
        }
        else
        {
            Invoke("EnemyAttackDelay", 1f);
        }
    }
Beispiel #5
0
    bool PlayerAttack()
    {
        bool            targetIsDead = false;
        List <TurnBase> enemyesOut   = new List <TurnBase>();

        foreach (TurnBase enemy in enemyes)
        {
            enemyesOut.Add(enemy);
        }
        List <TurnBase> unitsOut = new List <TurnBase>();

        foreach (TurnBase unit in units)
        {
            unitsOut.Add(unit);
        }

        List <CombatResult> combatResults = Combat.Attack(selectedUnit, selectedEnemy, skillName, skillNameB, enemyesOut, unitsOut, skill_lvl);

        for (int i = 0; i < combatResults.Count; i++)
        {
            TurnBase target = combatResults[i].target;
            float    damage = combatResults[i].damage;
            target.general.PARAMS[GENERAL_HP_CURRENT] -= damage;
            GameObject gt = Instantiate(ResManager.instance.DamageText, target.transform);
            gt.transform.position = new Vector3(target.transform.parent.transform.position.x, target.transform.parent.transform.position.y, 5f);
            DamageText dt = gt.GetComponent <DamageText>();
            dt.startMitonEnemy("-" + damage, Colors.RedColor);

            if (target.general.PARAMS[GENERAL_HP_CURRENT] > 0)
            {
                target.animator.Play("hart");
                if (target.general.PARAMS[GENERAL_HP_CURRENT] > target.general.PARAMS[GENERAL_HP] / 4 * 3) //75+%
                {
                    target.text.color = Colors.GreenColor;
                }
                else if (target.general.PARAMS[GENERAL_HP_CURRENT] < target.general.PARAMS[GENERAL_HP] / 4 * 3 && target.general.PARAMS[GENERAL_HP_CURRENT] > target.general.PARAMS[GENERAL_HP] / 2) //50% + /75%-
                {
                    target.text.color = Colors.YellowColor;
                }
                else if (target.general.PARAMS[GENERAL_HP_CURRENT] < target.general.PARAMS[GENERAL_HP] / 2 && target.general.PARAMS[GENERAL_HP_CURRENT] > target.general.PARAMS[GENERAL_HP] / 4) //25%+ / 50%-
                {
                    target.text.color = Colors.Orange;
                }
                else if (target.general.PARAMS[GENERAL_HP_CURRENT] < target.general.PARAMS[GENERAL_HP] / 4 && target.general.PARAMS[GENERAL_HP_CURRENT] > 0) //0+ / 25-
                {
                    target.text.color = Colors.RedColor;
                }
                target.text.text = target.general.PARAMS[GENERAL_HP_CURRENT].ToString();
            }
            else
            {
                targetIsDead = true;
            }
        }
        skill_0.GetComponent <Image>().color      = Colors.WhiteColor;
        skill_1.GetComponent <Image>().color      = Colors.WhiteColor;
        skill_2.GetComponent <Image>().color      = Colors.WhiteColor;
        skill_B.GetComponent <Image>().color      = Colors.WhiteColor;
        defaultSkill.GetComponent <Image>().color = Colors.GreenColor;
        selectedUnit.animator.Play("attack");
        selectedUnit.isEndTurn = true;
        skillName  = SkillName.none;
        skillNameB = SkillNameB.none;
        skill_lvl  = 0;
        CleanSkills();
        CheckAdnRegenSkill();
        return(targetIsDead);
    }