//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; } }
//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; } }
/// <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); }
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; } } }