IEnumerator SkillFreeze() { if (tag == "Chara") { if (BattleManager.I.lastTarget == null) { BattleManager.I.TargetEnemy.AddBuff(BUFF_FREEZE, 1, 3); BattleManager.I.TargetEnemy.AddBuff(BUFF_WAIT, 1, 1); } else { BattleManager.I.lastTarget.AddBuff(BUFF_FREEZE, 1, 3); BattleManager.I.lastTarget.AddBuff(BUFF_WAIT, 1, 1); } } else { StrAttack attack = CreateAttack(); attack.pow = 0; attack.target = Chara.TARGET_SOLO; attack.type = ATK_TYPE_SPECIAL; attack.buffID = BUFF_FREEZE; attack.buffLevel = 1; attack.buffTurn = 3; BattleManager.I.Attack(attack); } yield break; }
public IEnumerator CheckBuff() { Debug.Log(data.name + "CheckBuff"); if (IsDead()) { yield break; } charaButton.GetComponent <Image>().color = Color.white; Debug.Log(buffs.Count); for (int i = 0; i < buffs.Count; ++i) { StrBuffInfo buffInfo = buffs[i]; int buffLevel = buffInfo.Level; buffInfo.Turn -= 1; int buffTurn = buffInfo.Turn; buffs[i] = buffInfo; Debug.Log(buffs[i].Turn); //Debug.Log( + "さんの" + buffInfo.ID + "バフ(LV:" + buffLevel + ") あと" + buffTurn); if (buffInfo.ID == BUFF_BLIZZARD) { StrAttack attack = CreateAttack(); attack.pow = 10 + buffInfo.Level * 5; attack.target = Chara.TARGET_ALL; attack.type = ATK_TYPE_MAGIC; BattleManager.I.PopMana(tag, 0, 3, 0, 0, 0); BattleManager.I.Attack(attack); BattleManager.I.StartCoroutine("SkillMessage", "氷嵐"); AddBuff(BUFF_WAIT, 1, 1); yield return(new WaitForSeconds(1)); } if (buffInfo.ID == BUFF_REGENERATION) { Heal(buffLevel * 10, false); yield return(new WaitForSeconds(1)); } if (buffInfo.ID == BUFF_POISON) { StrAttack attack = CreateAttack(); attack.pow = GetBuffLevel(BUFF_POISON) * 5; attack.type = ATK_TYPE_SPECIAL; Damage(attack); yield return(new WaitForSeconds(1)); } if (buffTurn <= 0) { if (buffInfo.ID == BUFF_ROCK) { AddBuff(BUFF_WAIT, 1, 2); Sound.I.PlaySound("Heli"); yield return(new WaitForSeconds(1)); } } } CureBuffAuto(); }
IEnumerator SkillArrowRain() { StrAttack attack = CreateAttack(); attack.pow = 10; attack.target = Chara.TARGET_ALL; BattleManager.I.Attack(attack); yield break; }
IEnumerator SkillPunishment() { StrAttack attack = CreateAttack(); attack.pow = 70; attack.target = Chara.TARGET_ALL; BattleManager.I.Attack(attack); yield break; }
IEnumerator SkillIceBurn() { StrAttack attack = CreateAttack(); attack.pow = 15; attack.target = Chara.TARGET_SOLO; attack.type = ATK_TYPE_MAGIC; BattleManager.I.Attack(attack); BattleManager.I.PopMana(tag, 0, 3, 0, 0, 0); yield break; }
IEnumerator SkillHomerun() { StrAttack attack = CreateAttack(); attack.pow = 80; attack.target = Chara.TARGET_SOLO; attack.type = Chara.ATK_TYPE_NORMAL; AddBuff(BUFF_WAIT, 1, 3); BattleManager.I.Attack(attack); yield break; }
/// <summary> /// 対象の防御力を下げる。効果は5回まで重複する /// </summary> IEnumerator SkillRockRain() { StrAttack attack = CreateAttack(); attack.pow = 10; attack.target = Chara.TARGET_SOLO; attack.buffID = BUFF_DEFENSE_DOWN; attack.buffLevel = 1; attack.buffTurn = 3; BattleManager.I.Attack(attack); yield break; }
IEnumerator SkillPoison() { StrAttack attack = CreateAttack(); attack.pow = 10; attack.target = Chara.TARGET_SOLO; attack.buffID = BUFF_POISON; attack.buffLevel = 1; attack.buffTurn = 5; BattleManager.I.Attack(attack); yield break; }
IEnumerator SkillRockBreath() { StrAttack attack = CreateAttack(); attack.pow = 10; attack.target = Chara.TARGET_SOLO; attack.buffID = BUFF_ROCK; attack.buffLevel = 1; attack.buffTurn = 1; BattleManager.I.Attack(attack); yield break; }
IEnumerator SkillThrowNet() { StrAttack attack = CreateAttack(); attack.pow = 20; attack.target = Chara.TARGET_SOLO; attack.type = Chara.ATK_TYPE_NORMAL; attack.buffID = BUFF_WAIT; attack.buffLevel = 1; attack.buffTurn = 1; BattleManager.I.Attack(attack); yield break; }
IEnumerator SkillRasadom() { StrAttack attack = CreateAttack(); attack.pow = 30; attack.target = Chara.TARGET_ALL; attack.type = Chara.ATK_TYPE_MAGIC; attack.buffID = BUFF_DEFENSE_DOWN; attack.buffLevel = 1; attack.buffTurn = 5; BattleManager.I.Attack(attack); yield break; }
IEnumerator SkillBite() { StrAttack attack = CreateAttack(); attack.pow = 5; attack.target = Chara.TARGET_SOLO; for (int i = 0; i < 5; ++i) { BattleManager.I.Attack(attack); yield return(new WaitForSeconds(0.2f)); } yield break; }
IEnumerator SkillHolyLight() { StrAttack attack = CreateAttack(); attack.pow = 0; attack.target = Chara.TARGET_ALL; attack.targetTag = tag; attack.buffID = BUFF_REGENERATION; attack.buffLevel = 1; attack.buffTurn = 5; BattleManager.I.Attack(attack); yield break; }
IEnumerator SkillQuickArrow() { StrAttack attack = CreateAttack(); attack.pow = 10; attack.target = Chara.TARGET_SOLO; int yellowCnt = GetMyManaCnt(Mana.YELLOW); for (int i = 0; i < 2 + (yellowCnt / 10); ++i) { BattleManager.I.Attack(attack); yield return(new WaitForSeconds(0.5f)); } yield break; }
IEnumerator SkillDark2() { StrAttack attack = CreateAttack(); attack.pow = 10; attack.target = Chara.TARGET_RANDOM; attack.type = Chara.ATK_TYPE_MAGIC; attack.buffID = BUFF_DEFENSE_DOWN; attack.buffLevel = 1; attack.buffTurn = 5; for (int i = 0; i < 2; ++i) { BattleManager.I.Attack(attack); yield return(new WaitForSeconds(0.4f)); } yield break; }
public StrAttack CreateAttack() { StrAttack attack = new StrAttack(); attack.from = this; attack.pow = data.attack; attack.type = ATK_TYPE_NORMAL; attack.targetTag = GetEnemyTag(); attack.target = TARGET_SOLO; if (HasPassive(PSV_CRITICAL_ARROW) > 0) { int addAtk = (GetMyManaCnt(Mana.YELLOW) / 10) * 5; attack.pow += addAtk; } if (GetBuffLevel(BUFF_FULL_POWER) > 0) { attack.pow *= 1.0f + ((GetBuffLevel(BUFF_FULL_POWER)) * 0.3f); } return(attack); }
public void Damage(StrAttack attack) { if (IsDead()) { return; } StartCoroutine("Flash"); int armor = GetBuffLevel(BUFF_ARMOR); if (armor > 0 && attack.type == ATK_TYPE_NORMAL) { attack.pow -= armor * 5; StrAttack atk = CreateAttack(); atk.pow = armor * 5; atk.type = ATK_TYPE_SPECIAL; attack.from.Damage(atk); } if (GetBuffLevel(BUFF_CURSE) > 0 && attack.type != ATK_TYPE_SPECIAL) { StrAttack atk = CreateAttack(); atk.pow = attack.pow; atk.type = ATK_TYPE_SPECIAL; attack.from.Damage(atk); } if (GetBuffLevel(BUFF_FREEZE) > 0) { Sound.I.PlaySound("Magic"); attack.pow = 0; } if (GetBuffLevel(BUFF_DEFENSE_DOWN) > 0) { float rate = 1.0f + GetBuffLevel(BUFF_DEFENSE_DOWN) * 0.2f; attack.pow = (int)((float)attack.pow * rate); } if (HasPassive(PSV_HOLY_ARMOR) > 0 && attack.pow > 0) { if (GetMyManaCnt(Mana.YELLOW) >= 1) { attack.pow -= 10; Sound.I.PlaySound("Magic"); BattleManager.I.ConsumeMana(tag, 0, 0, 0, 1, 0); } } if (attack.type == ATK_TYPE_NORMAL) { Fighter defender = BattleManager.I.FindPassiveOwner(PSV_DEFENDER, tag); if (defender != null && defender != this) { StrAttack atk = attack; atk.pow = (int)(atk.pow * 0.3f); atk.type = ATK_TYPE_SPECIAL; atk.buffID = 0; defender.Damage(atk); attack.pow = (int)(attack.pow * 0.7f); //Debug.Log("→" + attack.pow); } } if (attack.pow < 0) { attack.pow = 0; } data.life -= (int)(Mathf.Round(attack.pow)); // Debug.Log(attack.pow + "ダメージ"); if (attack.pow > 0) { if (attack.type == ATK_TYPE_NORMAL) { Sound.I.PlaySound("Slash"); // Debug.Log(attack.from.name); } else if (attack.type == ATK_TYPE_MAGIC) { Sound.I.PlaySound("Magic"); //Debug.Log(attack.from.name); } } // Debug.Log(attack.buffID); lifeGauge.SetNowValue(data.life); if (attack.buffID > 0) { AddBuff(attack.buffID, attack.buffLevel, attack.buffTurn); } if (data.life <= 0) { Dead(); } }