public damageHitbox spawnAtk(damageHitbox myModel, damageHitbox myPrefab, Transform spot, unitHitbox attacker) { //Debug.Log("spawn: " + myModel); if (myModel == null) { return(null); } damageHitbox dambox = Instantiate(myPrefab); Bullet myBulltet = dambox.GetComponent <Bullet>(); Bullet modelBullet = myModel.GetComponent <Bullet>(); if (myBulltet != null) { myBulltet.setSpeed(modelBullet.speed); myBulltet.setBulletDistance(modelBullet.bulletDistance); } dambox.transform.position = spot.position; dambox.transform.eulerAngles = myModel.transform.eulerAngles; // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0); dambox.setDamage(myModel.damage); dambox.duplicateAfterDoneDamage(myModel); dambox.setOwner(attacker); dambox.ultiRegen = myModel.ultiRegen; return(dambox); }
public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox damageHB) { // bomb damage is 1/3 of attack power if (Bomb != null && maxitemChange > 0) { int bombDamage = unitOwner.damageManager.damageDataList[0].damage / 3; damageHitbox damageHb = Bomb.GetComponent <damageHitbox>(); damageHb.setOwner(unitOwner); damageHb.setDamage(bombDamage); GameObject BombInstance = Instantiate(Bomb); BombInstance.transform.position = target.transform.position; BombInstance.SetActive(true); itemCharge--; if (itemCharge <= 0) { var unitItem = unitOwner.GetComponent <ItemOnPlayer>(); if (unitItem != null) { unitItem.RemoveItem(mainItem); } } } }
public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox damageHB) { SlowInstance slow = Instantiate(slowInstance, target.transform); slow.transform.position = target.transform.position; slow.SetSlowTarget(target); }
public damageHitbox fireUltiArrow() { if (!isUltimate) { return(null); } damageHitbox dambox = Instantiate(ultiModel); dambox.GetComponent <Collider>().enabled = true; Bullet myBulltet = dambox.GetComponent <Bullet>(); Bullet modelBullet = ultiShoot.GetComponent <Bullet>(); dambox.transform.position = shootSpot.position; dambox.transform.eulerAngles = ultiShoot.transform.eulerAngles; // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0); dambox.setDamage(ultiShoot.damage); dambox.duplicateAfterDoneDamage(ultiShoot); myBulltet.setSpeed(modelBullet.speed); myBulltet.setBulletDistance(modelBullet.bulletDistance); dambox.setOwner(hitbox); dambox.ultiRegen = ultiShoot.ultiRegen; ultimateManager.useUltimate(); hideAvatar(); ultimateManager.endUltimate(); return(dambox); }
public void duplicateAfterDoneDamage(damageHitbox dh) { foreach (afterDoneDamage atf in dh.afterDoneDamagesList) { afterDoneDamagesList.Add(atf); } }
public void shootPinArow() { if (canDodgeShot) { damageHitbox dambox = pinArrow.spawnDuplicate(shootSpot); dambox.transform.eulerAngles += new Vector3(0, 180, 0); } }
public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox damageHB) { foreach (chainAtk atk in chainList) { StartCoroutine(delaySpawn(atk.model, atk.prefabHitbox, transform, attacker, atk.delay)); //spawnAtk(atk.model, atk.hitbox, transform, attacker); } }
// Use this for initialization void Start() { damageHitbox = GetComponent <damageHitbox>(); damageHitbox.addAfterDoneDamage(this); if (isActive) { StartCoroutine(lauchArrow()); } }
public damageHitbox[] GetDamageHitboxes() { damageHitbox[] DHs = new damageHitbox[damageDataList.Length]; for (int i = 0; i < damageDataList.Length; i++) { DHs[i] = damageDataList[i].damageHitbox; } return(DHs); }
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 void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox dhb) { unitCount++; if (unitCount >= maxUnit && isActive && maxUnit != 0) { speed = 0; damageHitbox.deActiveHitbox(); Debug.Log("Destroy Arrow"); damageHitbox.setDestroy(); } }
void Spawn(Vector3 position) { if (Skill == null) { return; } GameObject newIce = Instantiate(Skill, position, Skill.transform.rotation); damageHitbox dh = newIce.GetComponent <damageHitbox>(); dh.setDamage(basehitbox.damage); }
public damageHitbox spawnBomb(damageHitbox myBase, damageHitbox myPrefab) { damageHitbox dambox = Instantiate(myPrefab); dambox.transform.position = transform.position; dambox.transform.eulerAngles = myBase.transform.eulerAngles; // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0); dambox.setDamage(myBase.damage); dambox.duplicateAfterDoneDamage(myBase); dambox.setOwner(hitbox); dambox.ultiRegen = myBase.ultiRegen; return(dambox); }
private void OnTriggerEnter(Collider other) { // Debug.Log(other); if (other.GetComponent <damageHitbox>() != null) { damageHitbox otherDH = other.GetComponent <damageHitbox>(); if ((otherDH.isFriendly && gameObject.tag == "Player") || (otherDH.isUnFriendly && gameObject.tag == "Enemy") && !isDeath) { if (other.tag == "Heal" && !otherDH.isDamaged(this) && hpCurrent < hpMax) { otherDH.regisUnit(this); Debug.Log("tigger enter heal" + other.name); takenHeal(otherDH.damage); showParticleEffect(otherDH.effect); } return; } /* if (otherDH.isUnFriendly && gameObject.tag == "Enemy") * { * return; * }*/ if (other.tag == "Damage" && !otherDH.isDamaged(this)) { otherDH.regisUnit(this); // Debug.Log("tigger enter " + other.name); takenDamage(otherDH.damage, otherDH.ownerUnit); showParticleEffect(otherDH.effect); } // else } // deal with item DropItem dt = other.GetComponent <DropItem>(); if (dt != null && gameObject.tag == "Player" && dt.CanPlayerPickItem(this)) { ItemBase item = other.GetComponent <ItemBase>(); if (item != null && !item.picked) { DamageTextControl.instance.CreateGetItemText(item.itemModel.popupWhenGetItemText, transform); item.picked = true; } // showParticleEffect(potion.getParticle()); dt.getItem(this); } }
public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox damageHB) { float randomNum = Random.Range(1f, 100f); if (randomNum > currentFreezeChance) { return; } GameObject freezeBomb = Instantiate(freezeBombInstance, target.transform.position, Quaternion.identity); damageHitbox dhb = freezeBomb.GetComponent <damageHitbox>(); dhb.setOwner(owner); dhb.setDamage(currentDamage); freezeBomb.SetActive(true); }
public damageHitbox spawnArrow(damageHitbox myModel) { damageHitbox dambox = Instantiate(arrowPrefab); Bullet myBulltet = dambox.GetComponent <Bullet>(); Bullet modelBullet = myModel.GetComponent <Bullet>(); dambox.transform.position = shootSpot.position; dambox.transform.eulerAngles = shootSpot.eulerAngles; // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0); dambox.setDamage(myModel.damage); dambox.duplicateAfterDoneDamage(myModel); myBulltet.setSpeed(modelBullet.speed); myBulltet.setBulletDistance(modelBullet.bulletDistance); myBulltet.maxUnit = modelBullet.maxUnit; dambox.setOwner(hitbox); dambox.ultiRegen = myModel.ultiRegen; return(dambox); }
public damageHitbox spawnDuplicate(Transform spot) { damageHitbox dambox = Instantiate(myPrefab); Bullet myBulltet = dambox.GetComponent <Bullet>(); Bullet modelBullet = gameObject.GetComponent <Bullet>(); dambox.transform.position = spot.position; dambox.transform.eulerAngles = spot.transform.eulerAngles; dambox.transform.localScale = dambox.transform.localScale * (1 + sizeMultifier); // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0); dambox.setDamage(this.damage); dambox.duplicateAfterDoneDamage(this); dambox.isFriendly = this.isFriendly; dambox.isUnFriendly = this.isUnFriendly; if (myBulltet != null) { myBulltet.setSpeed(modelBullet.speed); myBulltet.setBulletDistance(modelBullet.bulletDistance); } dambox.setOwner(this.ownerUnit); dambox.ultiRegen = this.ultiRegen; return(dambox); }
public damageHitbox spawnMagic(damageHitbox myModel, damageHitbox myPrefab, Transform spot) { damageHitbox dambox = Instantiate(myPrefab); Bullet myBulltet = dambox.GetComponent <Bullet>(); Bullet modelBullet = myModel.GetComponent <Bullet>(); dambox.transform.position = spot.position; dambox.transform.eulerAngles = myModel.transform.eulerAngles; // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0); dambox.setDamage(myModel.damage); dambox.duplicateAfterDoneDamage(myModel); if (myBulltet != null) { myBulltet.setSpeed(modelBullet.speed); myBulltet.setBulletDistance(modelBullet.bulletDistance); } dambox.effect = myModel.effect; unitHitbox hitbox = gameObject.GetComponent <unitHitbox>(); dambox.setOwner(hitbox); dambox.ultiRegen = myModel.ultiRegen; return(dambox); }
public damageHitbox damageHitboxFitter(damageHitboxTag dt) { damageHitbox hitbox = null; switch (dt) { case damageHitboxTag.NORMALLEFT: hitbox = normalLetf; break; case damageHitboxTag.NORMALRIGHT: hitbox = normalRight; break; case damageHitboxTag.COMBO5: hitbox = combo5; break; case damageHitboxTag.COMBO3: hitbox = combo3; break; } return(hitbox); }
public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox DHB) { addUlti(DHB.ultiRegen); }
IEnumerator delaySpawn(damageHitbox myModel, damageHitbox myPrefab, Transform spot, unitHitbox attacker, float delay) { yield return(new WaitForSeconds(delay)); spawnAtk(myModel, myPrefab, spot, attacker); }