示例#1
0
    //Chiamato dall'animazione
    public void EmitProjectile()
    {
        if (TimerFromCreation < 2)
        {
            return;
        }

        LampShotEffect.Emit(1);
        GameObject Shot = GameObject.Instantiate(ProjectileShotEffect.gameObject, LampShotEffect.transform.position, transform.rotation);

        DeadTrigger deadTrigger = Shot.GetComponentInChildren <DeadTrigger>();

        if (deadTrigger)
        {
            deadTrigger.FiredByA = this;
        }
    }
示例#2
0
    //Richiamata dall'animazione
    public void InstantiateWheel()
    {
        GameObject LaunchObject = GameObject.Instantiate(WheelPrefab, WheelShotPoint.position, WheelShotPoint.rotation);

        Ruota       ruota       = LaunchObject.GetComponent <Ruota>();
        DeadTrigger deadTrigger = LaunchObject.GetComponentInChildren <DeadTrigger>();

        if (ruota)
        {
            ruota.Torque       += AddTorqueForce;
            ruota.ForwardForce += AddForwardForce;
        }

        if (deadTrigger)
        {
            deadTrigger.FiredBy = this;
        }
    }
示例#3
0
    /// <summary>
    /// 创建被攻击者死亡的表现
    /// </summary>
    /// <param name="beAttackId"></param>
    /// <param name="fStartTime"></param>
    /// <returns></returns>
    private float BuildBeAttackDeadShow(long beAttackId, float fStartTime)
    {
        float time = fStartTime;

        if (this.DeadList.ContainsKey(beAttackId))
        {
            DeadTrigger trigger = new DeadTrigger();
            if (beAttackId == this.firstBloodBeastId)
            {
                trigger.bIsFirstBoold = true;
            }
            trigger.BeAttackId = beAttackId;
            trigger.AttackerId = this.DeadList[beAttackId];
            trigger.StartTime  = time;
            if (this.LastDeadTime < trigger.StartTime)
            {
                this.LastDeadTime = trigger.StartTime;
            }
            trigger.Duration = trigger.GetDuration() + 1f;
            base.AddEvent(trigger);
            time = trigger.StartTime + trigger.Duration;
        }
        return(time);
    }
示例#4
0
    void OnTriggerEnter(Collider col)
    {
        if (GameManager.PlayerIsDead || GameManager.Lose)
        {
            return;
        }


        if (col.transform.parent)
        {
            if (col.transform.parent.GetComponent <W_platform>()) //Collision with mobile Platform
            {
                if (!CrossPlatformInputManager.GetButtonDown("Jump") && !Input.GetKey(KeyCode.Space))
                {
                    transform.parent = col.transform.parent;
                }
                return;
            }
        }

        if (col.transform.tag.Equals("AttackParent")) //Collision with mobile Platform2
        {
            if (!CrossPlatformInputManager.GetButtonDown("Jump") && !Input.GetKey(KeyCode.Space))
            {
                transform.SetParent(col.transform);
            }
            return;
        }



        if (col.transform.parent)
        {
            if (col.transform.parent.GetComponent <TimeTrab>()) //Collision trabocchetto a tempo
            {
                col.transform.parent.GetComponent <TimeTrab>().PlayerEnter();

                return;
            }
        }


        if (col.transform.GetComponent <Star>()) //Collect Star
        {
            W_PlayerPoints._istance.AddPoints(5);
            W_PlayerPoints._istance.AddStars(col.transform.GetComponent <Star>().Points);
            PlayerAudioSource.PlayOneShot(col.transform.GetComponent <Star>().sound);
            col.transform.GetComponent <Star>().Delete();
            return;
        }

        if (col.transform.GetComponent <Life>())//Collect Life
        {
            if (PlayerEnergy < 1)
            {
                PlayerEnergy += col.transform.GetComponent <Life>().LifePoints;
                W_PlayerPoints._istance.AddPoints(50);
                PlayerAudioSource.PlayOneShot(col.transform.GetComponent <Life>().sound);
                col.transform.GetComponent <Life>().Delete();
                GameManager.gameUI.EnergyHeartAnimator.SetBool("Get", true);
                Invoke("RestetGetEnergy", 1f);
                PlayerEnergy = Mathf.Clamp01(PlayerEnergy);
                return;
            }
            else
            {
                ShowFullEnergyMessage();
            }
        }
        if (col.transform.GetComponent <GemItem>())//Collect Gem
        {
            W_PlayerPoints._istance.AddPoints(400);
            W_GemManager._istance.AddGems(col.transform.GetComponent <GemItem>().Value);
            PlayerAudioSource.PlayOneShot(col.transform.GetComponent <GemItem>().sound);
            col.transform.GetComponent <GemItem>().Delete();
            return;
        }
        if (col.transform.GetComponent <Cronometer>())//Collect Time
        {
            W_PlayerPoints._istance.AddPoints(50);
            GameManager.Timer.sceneTimer += col.transform.GetComponent <Cronometer>().AddTime;
            PlayerAudioSource.PlayOneShot(col.transform.GetComponent <Cronometer>().sound);
            GameManager.Timer.UIAnimator.SetBool("Get", true);
            GameManager.Timer.UIAnimator.SetBool("Low", false);
            col.transform.GetComponent <Cronometer>().Delete();
            Invoke("RestetGetTime", 1f);
            return;
        }

        if (col.transform.GetComponent <Shoes3DItem>())//Collect Items
        {
            W_PlayerPoints._istance.AddPoints(50);
            if (col.transform.GetComponent <Shoes3DItem>().itemType.Equals(Shoes3DItem.ItemType.Speed))//Collect Velocità
            {
                m_AnimSpeedMultiplier += col.transform.GetComponent <Shoes3DItem>().AddValue;
                m_MoveSpeedMultiplier += col.transform.GetComponent <Shoes3DItem>().AddValue;
                PlayerAudioSource.PlayOneShot(col.transform.GetComponent <Shoes3DItem>().sound);
                col.transform.GetComponent <Shoes3DItem>().Delete();
                m_AnimSpeedMultiplier = Mathf.Clamp(m_AnimSpeedMultiplier, 0, 2);
                GameUI.Instance.SpeedItem.SetActive(true);
                GameManager.m_Character.SuperSpeedEffect.SetActive(true);
                SpeedItem.timer = col.transform.GetComponent <Shoes3DItem>().TimeDuration;
            }
            else if (col.transform.GetComponent <Shoes3DItem>().itemType.Equals(Shoes3DItem.ItemType.Jump))//Collect Jump
            {
                m_JumpPower += col.transform.GetComponent <Shoes3DItem>().AddValue;
                PlayerAudioSource.PlayOneShot(col.transform.GetComponent <Shoes3DItem>().sound);
                col.transform.GetComponent <Shoes3DItem>().Delete();
                m_JumpPower = Mathf.Clamp(m_JumpPower, 0, 16);
                GameUI.Instance.JumpItem.SetActive(true);
                GameManager.m_Character.SuperJumpEffect.SetActive(true);
                JumpItem.timer = col.transform.GetComponent <Shoes3DItem>().TimeDuration;
            }

            return;
        }



        if (col.transform.GetComponent <FireShot3DItem>())//Collect Shot Item
        {
            W_PlayerPoints._istance.AddPoints(50);
            col.transform.GetComponent <FireShot3DItem>().Delete();
            PlayerAudioSource.PlayOneShot(col.transform.GetComponent <FireShot3DItem>().sound);
            FireUIItem.timer += col.transform.GetComponent <FireShot3DItem>().TimeDuration;
            GameUI.Instance.FireShotItem.SetActive(true);
            GameUI.Instance.FireButton.SetActive(true);
            ShotIsActive = true;
        }



        if (col.transform.GetComponent <W_Projectile>())   //Collisione con Proiettile
        {
            if (PlayerEnergy > 0)
            {
                if (!IsInvulnerabile)
                {
                    RemovePlayerEnergy(col.transform.GetComponent <W_Projectile>().Power);
                    EmitOuchEffect();
                    PlayerAudioSource.PlayOneShot(OuchSound);
                    GameManager.m_Character.AutoBounceNow(0.4f);
                    W_PlayerPoints._istance.RemovePoints(50);
                }
                Destroy(col.gameObject);

                return;
            }
        }
        if (col.transform.GetComponent <W_HitSlug>())//ShotHitSlug
        {
            if (PlayerEnergy > 0)
            {
                col.enabled = false;

                if (!IsInvulnerabile)
                {
                    RemovePlayerEnergy(col.transform.GetComponent <W_HitSlug>().Power);
                    EmitOuchEffect();
                    PlayerAudioSource.PlayOneShot(OuchSound);
                    GameManager.m_Character.AutoBounceNow(0.4f);
                    W_PlayerPoints._istance.RemovePoints(100);
                }
                Destroy(col);
                return;
            }
        }

        if (col.transform.GetComponent <Meteora>())//CollisioneMeteore
        {
            if (PlayerEnergy > 0)
            {
                col.enabled = false;
                if (!IsInvulnerabile)
                {
                    RemovePlayerEnergy(col.transform.GetComponent <Meteora>().Power);
                    EmitOuchEffect();
                    PlayerAudioSource.PlayOneShot(OuchSound);
                    GameManager.m_Character.AutoBounceNow(0.4f);
                    W_PlayerPoints._istance.RemovePoints(50);
                }
                Destroy(col.gameObject);
                return;
            }
        }

        if (col.transform.tag == "Ice")//CollisioneGhiaccio
        {
            if (PlayerEnergy > 0)
            {
                m_Animator.SetBool("Scivola", true);
            }
        }



        if (col.transform.GetComponent <DeadTrigger>())//Collisione con DeadTrigger
        {
            DeadTrigger deadTrigger = col.transform.GetComponent <DeadTrigger>();
            if (!deadTrigger.ActiveOnPlayer)
            {
                return;
            }

            if (PlayerEnergy > 0)
            {
                if (deadTrigger.IsWater)
                {
                    RemovePlayerEnergy(100);                                     //Morte istantanea
                    m_Capsule.enabled = false;                                   //Disattivo il collider del player
                    SplashEffect.transform.SetParent(null);                      //Stacco l'effetto Splash in acqua
                    SplashEffect.gameObject.SetActive(true);                     //Attivo l'effetto Splash in acqua
                    GameManager.cameraMovements.target = SplashEffect.transform; //Stacco il follow della telecamera dal player e lo metto sull'effetto Splash
                    W_PlayerPoints._istance.RemovePoints(200);
                    GameManager.ForceDead();
                }
                else if (deadTrigger.IsLava)
                {
                    RemovePlayerEnergy(100);                                           //Morte istantanea
                    m_Capsule.enabled = false;                                         //Disattivo il collider del player
                    SplashInLavaEffect.transform.SetParent(null);                      //Stacco l'effetto Splash in acqua
                    SplashInLavaEffect.gameObject.SetActive(true);                     //Attivo l'effetto Splash in acqua
                    GameManager.cameraMovements.target = SplashInLavaEffect.transform; //Stacco il follow della telecamera dal player e lo metto sull'effetto Splash
                    W_PlayerPoints._istance.RemovePoints(200);
                    GameManager.ForceDead();
                }


                else
                {
                    if (!IsInvulnerabile)
                    {
                        GameManager.m_Character.AutoBounceNow(0.6f);
                        RemovePlayerEnergy(deadTrigger.RemoveEnergy);
                        EmitOuchEffect();
                        PlayerAudioSource.PlayOneShot(OuchSound);
                        W_PlayerPoints._istance.RemovePoints(50);
                    }
                }



                return;
            }
        }
    }