public override void Execute() { Collider[] colliders; if (!player) { player = testplayer.Instance; } if (!Xian) { Xian = testplayer.Instance.YinXian; } GameObject xian = Object.Instantiate(Xian, player.transform.position, Quaternion.Euler(0, 0, -90)); colliders = Physics.OverlapBox(player.transform.position, new Vector3(Xian.transform.localScale.y, 1, 1), Quaternion.identity, 1 << 11); List <enemy_base> enemys = new List <enemy_base>(); for (int i = 0; i < colliders.Length; i++) { enemy_base temp = null; if (colliders[i].GetComponent <enemy_base>()) { temp = colliders[i].GetComponent <enemy_base>(); } if (!temp) { continue; } else { enemys.Add(temp); if (temp.GetComponent <enemy_base>()) { ProcessSystem.Instance.FPlayerSkill_Enemy(temp, 0.5f); } } } RuneManager.Instance.StartCoroutine(buffer(enemys, xian)); }
public void FPlayerWeapon_Enemy(Collider playeratt, enemy_base Enemy) { if (playeratt.tag == "player_weapon" && !Physics.Raycast(testplayer.Instance.transform.position, Enemy.transform.position - testplayer.Instance.transform.position, Vector3.Distance(Enemy.transform.position, testplayer.Instance.transform.position), 1 << 9)) { AudioManager.Instance.TryPlayAudio(AudioManager.AudioType.AttackEnemy); Att_Stage b = (Att_Stage)testplayer.Instance.att_stage; StartCoroutine(CameraEffectSystem.Instance.FCameraShake(0.1f, 0.5f)); StartCoroutine(CameraEffectSystem.Instance.FTimeScaleControl(0.1f, 0.00001f)); if (b.jattack) { Player_Function.FJump(testplayer.Instance.gameObject, 8); } Destroy(Instantiate(enemy_hurt1, Enemy.transform.position + Vector3.up * 0.5f, Quaternion.Euler(Vector3.zero)).gameObject, 3f); Destroy(Instantiate(enemy_hurt2, Enemy.transform.position + Vector3.up * 0.5f, Quaternion.Euler(Vector3.zero)).gameObject, 3f); Destroy(Instantiate(enemy_hurt3, Enemy.transform.position + Vector3.up * 0.5f, Quaternion.Euler(Vector3.zero)).gameObject, 3f); Enemy.GetComponent <Rigidbody>().velocity = Enemy.beattforce * Vector3.Normalize(new Vector3((testplayer.Instance.transform.position.x - Enemy.transform.position.x) / -Mathf.Abs(testplayer.Instance.transform.position.x - Enemy.transform.position.x), 1, 0)); if (Enemy.type == "lizarrd") { testplayer.Instance.FGetMana(testplayer.Instance.GotMana); enemy_lizarrd_new a = (enemy_lizarrd_new)Enemy; a.hurt_count -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; a.Hp -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; if (!a.wudi11) { UIManager.Instance.DisplayDamageNumber((int)testplayer.Instance.player_attack * (int)testplayer.Instance.attlevel, Enemy.transform.position); } if (a.hurt_count < 0 && !a.dead) { a.enemy.SetStage(a.lizarrd_hurt_stage); } RuneManager.Instance.UseRune(RuneEvent.OnAttack); } if (Enemy.type == "fire") { testplayer.Instance.FGetMana(testplayer.Instance.GotMana); enemy_fire a = (enemy_fire)Enemy; a.hurt_count -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; a.Hp -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; if (!a.wudi11) { UIManager.Instance.DisplayDamageNumber((int)testplayer.Instance.player_attack * (int)testplayer.Instance.attlevel, Enemy.transform.position); } if (a.hurt_count < 0 && !a.dead) { a.enemy.SetStage(a.fire_hurt_stage); } RuneManager.Instance.UseRune(RuneEvent.OnAttack); } if (Enemy.type == "lancer") { testplayer.Instance.FGetMana(testplayer.Instance.GotMana); enemy_lancer a = (enemy_lancer)Enemy; a.hurt_count -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; a.Hp -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; if (!a.wudi11) { UIManager.Instance.DisplayDamageNumber((int)testplayer.Instance.player_attack * (int)testplayer.Instance.attlevel, Enemy.transform.position); } if (a.hurt_count < 0 && !a.dead) { a.enemy.SetStage(a.lancer_hurt_stage); } RuneManager.Instance.UseRune(RuneEvent.OnAttack); } if (Enemy.type == "boss") { testplayer.Instance.FGetMana(testplayer.Instance.GotMana); enemy_boss a = (enemy_boss)Enemy; a.hurt_count -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; a.Hp -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; if (!a.wudi11) { UIManager.Instance.DisplayDamageNumber((int)testplayer.Instance.player_attack * (int)testplayer.Instance.attlevel, Enemy.transform.position); } if (a.hurt_count < 0 && !a.dead) { a.enemy.SetStage(a.boss_hurt_stage); } RuneManager.Instance.UseRune(RuneEvent.OnAttack); } if (Enemy.type == "shield") { testplayer.Instance.FGetMana(testplayer.Instance.GotMana); enemy_shield a = (enemy_shield)Enemy; if (testplayer.Instance.attlevel == testplayer.Instance.Exatt && (a.transform.position.x - testplayer.Instance.transform.position.x) * a.faceto < 0) { if (!a.dead) { a.enemy.SetStage(a.shield_hurt_stage); } } else { a.hurt_count -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; a.Hp -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; if (!a.wudi11) { UIManager.Instance.DisplayDamageNumber((int)testplayer.Instance.player_attack * (int)testplayer.Instance.attlevel, Enemy.transform.position); } RuneManager.Instance.UseRune(RuneEvent.OnAttack); } } if (Enemy.type == "assassin") { testplayer.Instance.FGetMana(testplayer.Instance.GotMana); enemy_assassin a = (enemy_assassin)Enemy; a.hurt_count -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; a.Hp -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; if (!a.wudi11) { UIManager.Instance.DisplayDamageNumber((int)testplayer.Instance.player_attack * (int)testplayer.Instance.attlevel, Enemy.transform.position); } if (a.hurt_count < 0 && !a.dead) { a.enemy.SetStage(a.assassin_hurt_stage); } RuneManager.Instance.UseRune(RuneEvent.OnAttack); } if (Enemy.type == "bird") { testplayer.Instance.FGetMana(testplayer.Instance.GotMana); enemy_bird a = (enemy_bird)Enemy; a.hurt_count -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; a.Hp -= testplayer.Instance.player_attack * testplayer.Instance.attlevel; if (!a.wudi11) { UIManager.Instance.DisplayDamageNumber((int)testplayer.Instance.player_attack * (int)testplayer.Instance.attlevel, Enemy.transform.position); } if (a.hurt_count < 0 && !a.dead) { a.enemy.SetStage(a.bird_hurt_stage); } RuneManager.Instance.UseRune(RuneEvent.OnAttack); } if (Enemy.type == "bullet") { bullet a = (bullet)Enemy; a.Hp -= testplayer.Instance.player_attack; RuneManager.Instance.UseRune(RuneEvent.OnAttackFlyItem); } if (Enemy.type == "paodan") { paodan a = (paodan)Enemy; a.Hp -= testplayer.Instance.player_attack; RuneManager.Instance.UseRune(RuneEvent.OnAttackFlyItem); } StartCoroutine(CameraEffectSystem.Instance.FTimeScaleControl()); StartCoroutine(CameraEffectSystem.Instance.FCameraShake()); } }