public override void OnActivation(Shuriken shuriken) { GameObject weakestFort = null; foreach (GameObject fort in shuriken.lastHitOwner.GetComponent<Player>().forts) { int health = fort.GetComponent<Fort>().health; if (weakestFort != null) { if (health < weakestFort.GetComponent<Fort>().health && !fort.GetComponent<Fort>().isDestroyed) weakestFort = fort; } else { if (health > 0) weakestFort = fort; } } if (weakestFort != null) { weakestFort.GetComponent<Fort>().TakeHeal(heal); placeFeedback(weakestFort); } base.OnActivation(shuriken); }
public override void OnActivation(Shuriken shuriken) { // Split shuriken for (int i = 0; splits > i; i++) { GameObject shotInstance = (GameObject)Instantiate(shotObject, shuriken.transform.position, Quaternion.identity); // Calculate y-movement float movementY; if (splits % 2 == 0) movementY = i * angularDistance - angularDistance * (splits / 2f) + angularDistance / 2f; else movementY = i * angularDistance - angularDistance * ((splits -1f) / 2f); // Init values PlayerAttack playerAttack = shuriken.owner.GetComponentInChildren<PlayerAttack>(); shotInstance.GetComponent<Shuriken>().owner = shuriken.owner; shotInstance.GetComponent<Shuriken>().lastHitOwner = shuriken.lastHitOwner; shotInstance.GetComponent<Shuriken>().speed *= playerAttack.speedMultiplier; shotInstance.GetComponent<Shuriken>().damage = (int)(shuriken.damage * playerAttack.damageMultiplier * damagePercentage); shotInstance.GetComponent<Shuriken>().setInitialMovement((int)Mathf.Sign(shuriken.movement.x), shuriken.movement.y + movementY); shotInstance.GetComponent<Shuriken>().bounceBack = shuriken.bounceBack; shotInstance.GetComponent<Shuriken>().ignoreSpawnCollision = true; } shuriken.Remove(); base.OnActivation(shuriken); }
public override void OnActivation(Shuriken shuriken) { if (!shuriken.isBomb) shuriken.activateBomb(damageMultiplier); base.OnActivation(shuriken); }
public override void OnActivation(Shuriken shuriken) { shuriken.lastHitOwner.GetComponent<PlayerItemHandler>().ShieldExpander(this); placeFeedback(shuriken.lastHitOwner); base.OnActivation(shuriken); }
public virtual void OnActivation(Shuriken shuriken) { if (activationEffect != null) { GameObject instance = (GameObject) Instantiate(activationEffect, this.transform.position, Quaternion.identity); instance.transform.parent = this.transform.parent; instance.renderer.material.SetColor("_EmisColor", activationEffectColor); } GameScore.GetByPlayer(shuriken.lastHitOwner).itemhits += 1; Destroy(this.gameObject); }
public override void OnActivation(Shuriken shuriken) { GameObject affectedPlayer = null; if (shuriken.lastHitOwner.tag == GameVar.players.left.reference.tag) affectedPlayer = GameVar.players.right.reference; else if (shuriken.lastHitOwner.tag == GameVar.players.right.reference.tag) affectedPlayer = GameVar.players.left.reference; affectedPlayer.GetComponent<PlayerItemHandler>().Inverter(this); placeFeedback(affectedPlayer); base.OnActivation(shuriken); }
public override void OnActivation(Shuriken shuriken) { GameObject affectedPlayer = null; if (slowDownWinningPlayerOnly && GameVar.forts.leftCount != GameVar.forts.rightCount) { if (GameVar.forts.leftCount > GameVar.forts.rightCount) affectedPlayer = GameVar.players.left.reference; else if (GameVar.forts.rightCount > GameVar.forts.leftCount) affectedPlayer = GameVar.players.right.reference; } else { if (shuriken.lastHitOwner.tag == GameVar.players.left.reference.tag) affectedPlayer = GameVar.players.right.reference; else if (shuriken.lastHitOwner.tag == GameVar.players.right.reference.tag) affectedPlayer = GameVar.players.left.reference; } affectedPlayer.GetComponent<PlayerItemHandler>().Slow(this); placeFeedback(affectedPlayer); base.OnActivation(shuriken); }