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); }
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; } }