public void LevelEvent()
    {
        if (evented)
        {
            return;
        }

        evented = true;

        // If debugging unlink player partner.
        if (/*debugEvent && player != null && */ player.Partner != null)
        {
            WaypointSeek partnerSeek = player.Partner.GetComponent <WaypointSeek>();
            if (partnerSeek != null)
            {
                partnerSeek.moveWithoutPartner = true;
            }
            player.Partner.seekingPartner = false;
            //player.Partner.fading = true;
            ConversationManager.Instance.EndConversation(player, player.Partner);
        }

        // Update the looping boundary.
        boundary.ChangeWorldSize(worldWidth, worldHeight);
        boundary.transform.Translate(worldOffset);

        // Enable specified objects for looping.
        for (int i = 0; i < enableObjects.Count; i++)
        {
            LoopTag loopTag = enableObjects[i].GetComponent <LoopTag>();
            if (loopTag)
            {
                loopTag.stayOutsideBounds = false;
                loopTag.passThrough       = false;
                loopTag.trackObject       = true;
            }
            WaypointSeek waypointSeek = enableObjects[i].GetComponent <WaypointSeek>();
            if (waypointSeek)
            {
                waypointSeek.moveWithoutPartner = true;
            }
        }

        // Disable specified object for looping.
        for (int i = 0; i < disableObjects.Count; i++)
        {
            LoopTag loopTag = disableObjects[i].GetComponent <LoopTag>();
            if (loopTag)
            {
                loopTag.stayOutsideBounds = true;
                loopTag.passThrough       = true;
                loopTag.trackObject       = false;
            }
        }
    }
 void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Converser")
     {
         if (other.GetComponent <PartnerLink>().isPlayer)
         {
             transform.parent.GetComponent <TriggerLooping>().MoveWorld(colliderLocation);
         }
         else
         {
             LoopTag loopTag = other.GetComponentInChildren <LoopTag>();
             if (loopTag != null && !loopTag.passThrough)
             {
                 transform.parent.GetComponent <TriggerLooping>().MoveIndividual(colliderLocation, loopTag.gameObject, other.GetComponent <Tracer>());
             }
         }
     }
 }
Beispiel #3
0
 private static void HandleLoop(XElement step, Route routeObj, Exchange exchange)
 {
     LoopTag.Execute(step, exchange, routeObj);
 }