Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        public override void OnActivation(Shuriken shuriken)
        {
            if (!shuriken.isBomb)
                shuriken.activateBomb(damageMultiplier);

            base.OnActivation(shuriken);
        }
Пример #4
0
        public override void OnActivation(Shuriken shuriken)
        {
            shuriken.lastHitOwner.GetComponent<PlayerItemHandler>().ShieldExpander(this);
            placeFeedback(shuriken.lastHitOwner);

            base.OnActivation(shuriken);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }