Exemplo n.º 1
0
    protected IEnumerator Moving(PortalTrigger portal = null)
    {
        playerState = PlayerState.WALKING;

        yield return(null);

        while (true)
        {
            if (path.reachedEndOfPath)      // ako je stigao do destinacije
            {
                break;
            }

            yield return(null);
        }

        if (portal)
        {
            portal.DoFunction();
        }

        playerState  = PlayerState.IDLE;
        rb.bodyType  = RigidbodyType2D.Dynamic;
        path.enabled = false;
    }
Exemplo n.º 2
0
    public void MoveToPortal(PortalTrigger portal, Vector2 pos)
    {
        rb.bodyType = RigidbodyType2D.Kinematic;
        rb.velocity = Vector2.zero;

        path.enabled = true;

        path.destination = pos;

        StartCoroutine(Moving(portal));
    }
Exemplo n.º 3
0
 public void PortToNextPortal(PortalTrigger currentPortal)
 {
     foreach(var portal in _portals)
     {
         if(portal.ID == currentPortal.ID + 1)
         {
             if(_gameController != null)
             {
                 _gameController.Player.transform.position = portal.transform.position;
                 portal.PlayerArrive();
             }
             else
             {
                 Debug.Log("GameController is missing on protal");
             }
             break;
         }
     }
 }
Exemplo n.º 4
0
        protected override void ParseXML(System.Xml.XmlElement root, System.Xml.XmlElement current, ActorPortal item)
        {
            switch (root.Name.ToLower())
            {
            case "portal":
            {
                switch (current.Name.ToLower())
                {
                case "id":
                    item.ID = uint.Parse(current.InnerText);
                    break;

                case "mapid":
                    item.MapID = uint.Parse(current.InnerText);
                    break;

                case "x":
                    item.X = short.Parse(current.InnerText);
                    break;

                case "y":
                    item.Y = short.Parse(current.InnerText);
                    break;

                case "z":
                    item.Z = short.Parse(current.InnerText);
                    break;

                case "teleport":
                {
                    PortalTrigger trigger = new PortalTrigger();
                    if (current.HasAttribute("dir"))
                    {
                        trigger.Dir = int.Parse(current.Attributes["dir"].Value);
                    }

                    if (current.HasAttribute("quest"))
                    {
                        trigger.Quest = ushort.Parse(current.Attributes["quest"].Value);
                    }

                    if (current.HasAttribute("step"))
                    {
                        trigger.Step = int.Parse(current.Attributes["step"].Value);
                    }

                    if (current.HasAttribute("x"))
                    {
                        trigger.X = int.Parse(current.Attributes["x"].Value);
                    }

                    if (current.HasAttribute("y"))
                    {
                        trigger.Y = int.Parse(current.Attributes["y"].Value);
                    }

                    if (current.HasAttribute("z"))
                    {
                        trigger.Z = int.Parse(current.Attributes["z"].Value);
                    }

                    trigger.MapTarget = uint.Parse(current.InnerText);
                    item.PortalTriggers.Add(trigger);
                }
                break;
                }
            }
            break;
            }
        }