protected override void TriggerActivated(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras) { if (ballLeft && crateRight) { if (tgi == rightPortal && type == TriggerInteractionType.Portal_Player) { shouldAdvance = true; } } else if (crateRight) { if (tgi == leftPortal && type == TriggerInteractionType.Portal_Inanimate && extras.colliderLevelItem.gameObject == ball) { ballLeft = true; ParticlesManager.INSTANCE.DestroyCrateParticles(ball.transform.position); ball.SetActive(false); GameObject.Destroy(ball); } } else if (plate.IsPlateGood) { if (tgi == rightPortal && type == TriggerInteractionType.Portal_Inanimate && extras.colliderLevelItem.gameObject == crate) { crateRight = true; ParticlesManager.INSTANCE.DestroyCrateParticles(crate.transform.position); crate.SetActive(false); GameObject.Destroy(crate); } } }
protected override void TriggerActivated(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras) { if (tgi == leftPortal && type == TriggerInteractionType.Portal_Player) { shouldAdvance = true; } }
public void Trigger(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras) { TriggerActivated(tgi, type, extras); if (triggers.ContainsKey(tgi) && triggers[tgi].ContainsKey(type)) { GameSceneManager.INSTANCE.TriggerPoint(shouldAdvance, triggers[tgi][type], extras); } }
protected void AddTrigger(TriggeringGameItem tgi, TriggerInteractionType type, TriggerData tData) { if (!triggers.ContainsKey(tgi)) { triggers.Add(tgi, new Dictionary <TriggerInteractionType, TriggerData>()); } if (triggers[tgi].ContainsKey(type)) { triggers[tgi][type] = tData; } else { triggers[tgi].Add(type, tData); } }
protected override void TriggerActivated(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras) { if (crateRight && crateLeft) { if (tgi == leftPortal && type == TriggerInteractionType.Portal_Player) { shouldAdvance = true; } } else if (crateLeft) { if (tgi == rightPortal && type == TriggerInteractionType.Portal_Inanimate && extras.colliderLevelItem.gameObject == crate) { crateRight = true; ParticlesManager.INSTANCE.DestroyCrateParticles(crate.transform.position); crate.SetActive(false); GameObject.Destroy(crate); PortalsAudio.INSTANCE.right2.Play(); } } else { if (tgi == leftPortal && type == TriggerInteractionType.Portal_Inanimate && extras.colliderLevelItem.gameObject == crate) { crateLeft = true; ParticlesManager.INSTANCE.DestroyCrateParticles(crate.transform.position); crate.SetActive(false); GameObject.Destroy(crate); crate = CreateSimpleLevelItem( LevelItemType.Crate, new Vector3(0, 8f, 0), Quaternion.AngleAxis(Random.Range(0f, 360f), Vector3.forward), savedParent ); PortalsAudio.INSTANCE.left2.Play(); } } }
protected override void TriggerActivated(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras) { shouldAdvance = true; }
protected abstract void TriggerActivated(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras);
public void Trigger(TriggeringGameItem tgi, TriggerInteractionType type) { Trigger(tgi, type, new ExtraTriggerData()); }