private void Awake() { _collision = GetComponent <BaseCollision>(); _collider = GetComponent <BoxCollider2D>(); _chainAttack = GetComponentInParent <ChainAttack>(); _attack = GetComponentInParent <Attack>(); _player = GameObject.Find("Player"); }
public void fireMagic() { damageHitbox dambox; switch (chargeCount) { case 0: for (int i = 0; i < normalAtkNum; i++) { dambox = spawnMagic(normalAtk_base, normalAtk, fireSpot); dambox.transform.eulerAngles += new Vector3(0, normalAtkAngle * (Mathf.Pow(-1, i)) * (Mathf.Floor(((float)i + 1) / 2)), 0); } break; case 1: attackAudioSource.PlayOneShot(fireBallSound); for (int i = 0; i < fireBallNum; i++) { dambox = spawnMagic(skill_1_base, skill_1, fireSpot); dambox.transform.eulerAngles += new Vector3(0, fireBallAngle * (Mathf.Pow(-1, i)) * (Mathf.Floor(((float)i + 1) / 2)), 0); ChainAttack CATK = dambox.gameObject.GetComponent <ChainAttack>(); CATK.chainList[0].model = sub_1_base; if (canFireArea) { CATK.chainList[1].model = fireArea; } } break; case 2: attackAudioSource.PlayOneShot(tornadoSound); for (int i = 0; i < cycloneNum; i++) { dambox = spawnMagic(skill_2_base, skill_2, fireSpot); dambox.transform.eulerAngles += new Vector3(0, cycloneAngle * (Mathf.Pow(-1, i)) * (Mathf.Floor(((float)i + 1) / 2)), 0); } //spawnMagic(skill_2_base, skill_2, fireSpot); break; case 3: //spawnMagic(skill_3_base, skill_3, areaSpot); break; case 4: ultimateManager.resetUltimate(); chargeCount = 0; manaUlti = 0; manaUltiRing.updateGauge(manaMax, manaUlti); spawnMagic(skill_ulti_base, skill_ulti, areaSpot); break; } chargeCount = 0; GameManagerPC.Instance.sendMsgToController(id, "RECHARGE"); mana = 0; }
public void shootArrowAct() { damageHitbox dambox; unitHitbox myHitbox = gameObject.GetComponent <unitHitbox>(); if (!isUltimate) { switch (mode) { case MODE.SINGLE: //for (int i = 0; i < pinArrowNum; i++) //{ // dambox = pinArrow.spawnDuplicate(shootSpot); // dambox.transform.localPosition = new Vector3(0.5f * (Mathf.Pow(-1, i)) * (Mathf.Floor(((float)i + 1) / 2)), 0, 0); //} spawnArrow(normalShoot); break; case MODE.SPREAD: for (int i = 0; i < spreadShotArrow; i++) { dambox = spawnArrow(spreadShoot); spreadAngle = spreadShotArrow * 8; dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * 8), 0); /*dambox = Instantiate(arrowModel); * dambox.transform.position = shootSpot.position; * dambox.transform.eulerAngles = spreadShoot.transform.eulerAngles; * dambox.transform.eulerAngles += new Vector3(0,-(spreadAngle/2)+ (i* spreadAngle/4),0); * * dambox.setDamage(spreadShoot.damage); * dambox.duplicateAfterDoneDamage(spreadShoot); * dambox.GetComponent<Bullet>().setSpeed(spreadShoot.speed); * dambox.setOwner(myHitbox);*/ } break; case MODE.TRIPLE: StartCoroutine(TripleShoot()); break; case MODE.BOMB: damageHitbox damHB = bombShoot.spawnDuplicate(shootSpot); ChainAttack CATK = damHB.gameObject.GetComponent <ChainAttack>(); CATK.chainList[0].model = bomb; break; } } else if (isUltimate) { fireUltiArrow(); } anim.SetBool("isTrail", false); }
public override void Action(CharacterBase character, SceneBattle battle) { if (character.waittime < 1) { character.animationpoint = new Point(4, 0); } else if (character.waittime < 5) { character.animationpoint = new Point(5, 0); } else if (character.waittime == 30) { base.Action(character, battle); } if (character.waittime != 6) { return; } int num = this.power + this.pluspower; ChainAttack chainAttack = new ChainAttack(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 4, 0, true, this.element); character.parent.attacks.Add(this.Paralyze(chainAttack)); }
public float GetDamageAmount() { _chainAttack = GetComponent <ChainAttack>(); float chainAttackDamage = 0; if (PerkManager.activeAxePerk != null && PerkManager.activeAxePerk.type == Perk.PerkType.AXE_SLUGGER) { chainAttackDamage = _chainAttack ? _chainAttack.numberOfChainAttacks * 2 : 0; } else { chainAttackDamage = _chainAttack ? _chainAttack.numberOfChainAttacks : 0; } Debug.Log(chainAttackDamage); if (attackState == State.Heavy) { return(weapon.heavyDamage + chainAttackDamage); } else { return(weapon.lightDamage + chainAttackDamage); } }