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; }
public void MoveToPortal(PortalTrigger portal, Vector2 pos) { rb.bodyType = RigidbodyType2D.Kinematic; rb.velocity = Vector2.zero; path.enabled = true; path.destination = pos; StartCoroutine(Moving(portal)); }
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; } } }
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; } }