void talent4()
 {
     if (previousTarget != null)
     {
         previousTarget.health = previousTarget.health + 0.25f * (player.spellPower * 1.5f);
     }
     previousTarget = player.targetSpell;
 }
    public IEnumerator HealOverTime()
    {
        RaidMember raidMember  = player.targetSpell;
        int        healCdTimer = 0;

        raidMember.renewIndicator.SetActive(true);
        for (int i = 0; i < durationEffect; i++)
        {
            if (healCdTimer == 0)
            {
                healCdTimer       = 3;
                raidMember.health = raidMember.health + (player.spellPower * player.spellSellected.healPower);
            }
            healCdTimer--;
            yield return(new WaitForSeconds(1));
        }
        raidMember.renewIndicator.SetActive(false);
    }
    public IEnumerator PoMStacksBehavior()
    {
        stacks     = 5;
        raidMember = player.targetSpell;
        float healthTMP = raidMember.health;

        raidMember.pomIndicator.SetActive(true);
        raidMember.pomStacksText.text = stacks.ToString();
        for (int i = 0; i < durationEffect; i++)
        {
            //player get dmg
            if (healthTMP > raidMember.health)
            {
                raidMember.health = raidMember.health + (player.spellPower * player.spellSellected.healPower);
                stacks--;
                raidMember.pomIndicator.SetActive(false);
                if (PlayerPrefs.GetInt("Talent100") == 15)
                {
                    Talent15();
                }
                if (stacks == 0)
                {
                    break;
                }
                else
                {
                    //random live member
                    int randomX, randomY;
                    do
                    {
                        randomX = Random.Range(0, raidController.allRaid.GetLength(0) - 1);
                        randomY = Random.Range(0, raidController.allRaid.GetLength(1) - 1);
                    } while (raidController.allRaid[randomX, randomY].isAlive != true);

                    raidMember = raidController.allRaid[randomX, randomY];
                    raidMember.pomIndicator.SetActive(true);
                    raidMember.pomStacksText.text = stacks.ToString();
                }
            }
            healthTMP = raidMember.health;
            yield return(new WaitForSeconds(1));
        }
        raidMember.pomIndicator.SetActive(false);
    }
    public IEnumerator DebuffEffect(int cordinateX, int cordinateY)
    {
        float      damageCdTimer = timeBetweenTick;
        RaidMember target        = raidController.allRaid[cordinateX, cordinateY];

        target.debuffIsActive = true;
        target.debuffIndicator.SetActive(true);
        for (int i = 0; i < durationEffect; i++)
        {
            if (damageCdTimer == 0)
            {
                damageCdTimer = timeBetweenTick;
                target.health = target.health - healthDecrease;
            }
            damageCdTimer--;
            yield return(new WaitForSeconds(1));
        }
        target.debuffIsActive = false;
        target.debuffIndicator.SetActive(false);
    }
Exemple #5
0
 public void FocusTarget()
 {
     if (Time.time > timeToChangeTarget)
     {
         int flag    = 0;
         int randomI = 0;
         int randomJ = 0;
         for (int i = 0; i < raidController.allRaid.GetLength(0); i++)
         {
             for (int j = 0; j < raidController.allRaid.GetLength(1); j++)
             {
                 if ((raidController.allRaid[i, j].isAlive) && (raidController.allRaid[i, j].role == RaidController.Role.tank) && (raidController.allRaid[i, j] != target))
                 {
                     target = raidController.allRaid[i, j];
                     flag   = 1;
                     break;
                 }
             }
             if (flag == 1)
             {
                 break;
             }
         }
         if (flag == 0)
         {
             do
             {
                 randomI = Random.Range(0, raidController.allRaid.GetLength(0));
                 randomJ = Random.Range(0, raidController.allRaid.GetLength(1));
                 if (raidController.allDead)
                 {
                     break;
                 }
             } while ((!raidController.allRaid[randomI, randomJ].isAlive) && (raidController.allRaid[randomI, randomJ] != target));
             target = raidController.allRaid[randomI, randomJ];
         }
         timeToChangeTarget = Time.time + changeTargetCooldown;
     }
 }