コード例 #1
0
 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);
         }
     }
 }
コード例 #2
0
 protected override void TriggerActivated(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras)
 {
     if (tgi == leftPortal && type == TriggerInteractionType.Portal_Player)
     {
         shouldAdvance = true;
     }
 }
コード例 #3
0
    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);
        }
    }
コード例 #4
0
    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);
        }
    }
コード例 #5
0
 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();
         }
     }
 }
コード例 #6
0
 protected override void TriggerActivated(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras)
 {
     shouldAdvance = true;
 }
コード例 #7
0
 protected abstract void TriggerActivated(TriggeringGameItem tgi, TriggerInteractionType type, ExtraTriggerData extras);
コード例 #8
0
 public void Trigger(TriggeringGameItem tgi, TriggerInteractionType type)
 {
     Trigger(tgi, type, new ExtraTriggerData());
 }