public IEnumerator Skill_200022_Co(characterActionData battleInfo) { BattleManager.Inst.character[battleInfo.my_position].GetComponent <BasicAttack>().Attack(battleInfo); yield return(new WaitForSeconds(BattleManager.Inst.charInfo[battleInfo.my_position].AttackDelay + 1.0f)); TestSkillEffect(battleInfo.action_info_list[0].target_position); }
public IEnumerator Skill_200016_Co(characterActionData battleInfo) { BattleManager.Inst.character[battleInfo.my_position].GetComponent <BasicAttack>().Attack(battleInfo); yield return(new WaitForSeconds(BattleManager.Inst.charInfo[battleInfo.my_position].AttackDelay)); Instantiate(effect["200016"], BattleManager.Inst.character[battleInfo.action_info_list[0].target_position].transform.position + new Vector3(0, BattleManager.Inst.charInfo[battleInfo.action_info_list[0].target_position].Height * 0.5f, 0), Quaternion.identity); }
IEnumerator Skill_200007_Co(characterActionData battleInfo) { Transform attacker; Transform target; attacker = BattleManager.Inst.character[battleInfo.my_position].transform; target = BattleManager.Inst.character[battleInfo.action_info_list[0].target_position].transform; attacker.transform.LookAt(target); BattleManager.Inst.animator[battleInfo.my_position].SetTrigger("isDoubleAttack"); yield return(new WaitForSeconds(2.0f)); StartCoroutine(Skill_200007_Co_Arrow(attacker, target)); target = BattleManager.Inst.character[battleInfo.action_info_list[1].target_position].transform; attacker.transform.LookAt(target); yield return(new WaitForSeconds(0.2f)); StartCoroutine(Skill_200007_Co_Arrow(attacker, target)); BattleManager.Inst.animator[battleInfo.my_position].SetTrigger("isIdle"); attacker.rotation = battleInfo.my_position < 10 ? Quaternion.Euler(0, 0, 0) : Quaternion.Euler(0, 180, 0); yield return(new WaitForSeconds(0.7f)); DamageManager.Inst.DamageShow(battleInfo.action_info_list[0], false, (ELEMENT_TYPE)BattleManager.Inst.GetCharState(battleInfo.my_position).elementType); if (BattleManager.Inst.status[battleInfo.action_info_list[0].target_position].NowHp > 0) { BattleManager.Inst.animator[battleInfo.action_info_list[0].target_position].SetTrigger("isHit"); } else { BattleManager.Inst.animator[battleInfo.action_info_list[0].target_position].SetTrigger("isDie"); BattleManager.Inst.tumbAnimation.DieTumb(battleInfo.action_info_list[0].target_position); } yield return(new WaitForSeconds(0.2f)); DamageManager.Inst.DamageShow(battleInfo.action_info_list[1], false, (ELEMENT_TYPE)BattleManager.Inst.GetCharState(battleInfo.my_position).elementType); if (BattleManager.Inst.status[battleInfo.action_info_list[1].target_position].NowHp > 0) { BattleManager.Inst.animator[battleInfo.action_info_list[1].target_position].SetTrigger("isHit"); } else { BattleManager.Inst.animator[battleInfo.action_info_list[1].target_position].SetTrigger("isDie"); BattleManager.Inst.tumbAnimation.DieTumb(battleInfo.action_info_list[1].target_position); } yield return(new WaitForSeconds(1.0f)); BattleManager.Inst.isAfterDelay = true; }
public IEnumerator Skill_200023_Co(characterActionData battleInfo) { yield return(new WaitForSeconds(0.3f)); effect["Defence"].transform.position = BattleManager.Inst.character[battleInfo.my_position].transform.position; effect["Defence"].GetComponent <DefenceEffect>().EffectAction(); yield return(new WaitForSeconds(3.0f)); BattleManager.Inst.isAfterDelay = true; }
public void Attack(characterActionData attackInfo, ELEMENT_TYPE type = ELEMENT_TYPE.None) { if (charInfo.AttackRange > 0.1f) { StartCoroutine(NearAttackAction(attackInfo, type)); } else { StartCoroutine(FarAttackAction(attackInfo, type)); } }
public IEnumerator Skill_200024_Co(characterActionData battleInfo) { BattleManager.Inst.character[battleInfo.my_position].GetComponent <BasicAttack>().Attack(battleInfo); yield return(new WaitForSeconds(BattleManager.Inst.charInfo[battleInfo.my_position].AttackDelay + 1.0f)); TestSkillEffect(battleInfo.action_info_list[0].target_position); if (battleInfo.action_info_list.Count == 2) { DamageManager.Inst.DamageShow(battleInfo.action_info_list[1], false, ELEMENT_TYPE.Fire); TestSkillEffect(battleInfo.action_info_list[1].target_position); } }
public IEnumerator Skill_200005_Co(characterActionData battleInfo) { BattleManager.Inst.animator[battleInfo.my_position].SetTrigger("isHeal"); yield return(new WaitForSeconds(0.5f)); DamageManager.Inst.DamageShow(battleInfo.action_info_list[0], true, (ELEMENT_TYPE)BattleManager.Inst.GetCharState(battleInfo.my_position).elementType); Instantiate(effect["Heal"], BattleManager.Inst.character[battleInfo.action_info_list[0].target_position].transform.position + new Vector3(0, BattleManager.Inst.charInfo[battleInfo.action_info_list[0].target_position].Height * 0.5f, 0), Quaternion.identity); yield return(new WaitForSeconds(2.0f)); BattleManager.Inst.isAfterDelay = true; }
public IEnumerator Skill_200019_Co(characterActionData battleInfo) { yield return(new WaitForSeconds(BattleManager.Inst.charInfo[battleInfo.my_position].AttackDelay + 1.0f)); for (int i = 0; i < battleInfo.action_info_list.Count; i++) { DamageManager.Inst.DamageShow(battleInfo.action_info_list[i], false, ELEMENT_TYPE.Fire); Instantiate(effect["200009"], BattleManager.Inst.character[battleInfo.action_info_list[i].target_position].transform.position + new Vector3(0, BattleManager.Inst.charInfo[battleInfo.action_info_list[i].target_position].Height * 0.5f, 0), Quaternion.identity); } yield return(new WaitForSeconds(2.0f)); BattleManager.Inst.isAfterDelay = true; }
IEnumerator FarAttackAction(characterActionData attackInfo, ELEMENT_TYPE type = ELEMENT_TYPE.None) { Transform attacker; Transform target; attacker = BattleManager.Inst.character[attackInfo.my_position].transform; target = BattleManager.Inst.character[attackInfo.action_info_list[0].target_position].transform; attacker.transform.LookAt(target); ani.SetTrigger("isAttack"); yield return(new WaitForSeconds(charInfo.AttackDelay)); StartCoroutine(ArrowShot(target.position)); ani.SetTrigger("isIdle"); attacker.rotation = attackInfo.my_position < 10 ? Quaternion.Euler(0, 0, 0) : Quaternion.Euler(0, 180, 0); yield return(new WaitForSeconds(charInfo.AttackAfterDelay)); DamageManager.Inst.DamageShow(attackInfo.action_info_list[0], false, type == ELEMENT_TYPE.None ? (ELEMENT_TYPE)BattleManager.Inst.GetCharState(attackInfo.my_position).elementType : type); if (BattleManager.Inst.status[attackInfo.action_info_list[0].target_position].NowHp > 0) { BattleManager.Inst.animator[attackInfo.action_info_list[0].target_position].SetTrigger("isHit"); } else { BattleManager.Inst.animator[attackInfo.action_info_list[0].target_position].SetTrigger("isDie"); BattleManager.Inst.tumbAnimation.DieTumb(attackInfo.action_info_list[0].target_position); } yield return(new WaitForSeconds(1.0f)); BattleManager.Inst.isAfterDelay = true; }
IEnumerator NearAttackAction(characterActionData attackInfo, ELEMENT_TYPE type = ELEMENT_TYPE.None) { Transform attacker = BattleManager.Inst.character[attackInfo.my_position].transform; Transform target = BattleManager.Inst.character[attackInfo.action_info_list[0].target_position].transform; Vector3 attackerStartPos = attacker.position; Vector3 attackerEndPos = target.position; yield return(StartCoroutine(AttackMove(attacker, target, attackerStartPos, attackerEndPos - (attackerEndPos - attackerStartPos).normalized * charInfo.AttackRange))); attackerEndPos = attackerStartPos; attackerStartPos = attacker.position; yield return(new WaitForSeconds(charInfo.AttackDelay)); DamageManager.Inst.DamageShow(attackInfo.action_info_list[0], false, type == ELEMENT_TYPE.None ? (ELEMENT_TYPE)BattleManager.Inst.GetCharState(attackInfo.my_position).elementType : type); SoundManager.Inst.SoundPlay(Random.Range(0, 5)); if (BattleManager.Inst.status[attackInfo.action_info_list[0].target_position].NowHp > 0) { BattleManager.Inst.animator[attackInfo.action_info_list[0].target_position].SetTrigger("isHit"); } else { BattleManager.Inst.animator[attackInfo.action_info_list[0].target_position].SetTrigger("isDie"); BattleManager.Inst.tumbAnimation.DieTumb(attackInfo.action_info_list[0].target_position); } yield return(new WaitForSeconds(charInfo.AttackAfterDelay)); yield return(AttackRecall(attacker, target, attackerEndPos, attackerStartPos)); attacker.rotation = attackInfo.my_position < 10 ? Quaternion.Euler(0, 0, 0) : Quaternion.Euler(0, 180, 0); yield return(new WaitForSeconds(1.0f)); BattleManager.Inst.isAfterDelay = true; }
// 크리티컬 스트라이크 ( 적 1인에게 100% 확률로 치명타가 발생하는 물리 피해를 가합니다 ) public void Skill_200004(characterActionData battleInfo) { StartCoroutine(Skill_200004_Co(battleInfo)); }
// 힐 public void Skill_200005(characterActionData battleInfo) { StartCoroutine(Skill_200005_Co(battleInfo)); //skillText.text = "힐"; }