private void EnterNode(MapNodeVisual Node) { switch (Node.Type) { case NodeType.Enemy: MapHud.Get().OpenWindow <EnemyWindow>(); break; case NodeType.EliteEnemy: MapHud.Get().OpenWindow <EnemyWindow>(); break; case NodeType.Town: MapHud.Get().OpenWindow <TownWindow>(); break; case NodeType.Rest: MapHud.Get().OpenWindow <RestWindow>(); break; case NodeType.Boss: MapHud.Get().OpenWindow <EnemyWindow>(); break; case NodeType.Examination: MapHud.Get().OpenWindow <TemplateMapWindow>(); break; case NodeType.Loot: MapHud.Get().OpenWindow <TemplateMapWindow>(); break; case NodeType.Question: MapHud.Get().OpenWindow <TemplateMapWindow>(); break; case NodeType.Relic: MapHud.Get().OpenWindow <TemplateMapWindow>(); break; case NodeType.Sanctuary: MapHud.Get().OpenWindow <TemplateMapWindow>(); break; case NodeType.Trap: MapHud.Get().OpenWindow <TemplateMapWindow>(); break; case NodeType.StartNode: MapHud.Get().OpenWindow <TemplateMapWindow>(); break; default: throw new ArgumentOutOfRangeException(); } }
private void Awake() { NodesList.AddRange(GetComponentsInChildren <MapNodeVisual>()); CurrentNode = NodesList.Find(node => node.Type == NodeType.StartNode); Player = Instantiate(MapPrefabsConfig.Get().MapPlayerPrefab); Player.transform.position = CurrentNode.transform.position; foreach (var node in NodesList) { node.OnNodePressed += TrySendPlayerToNode; } }
private void TrySendPlayerToNode(MapNodeVisual SelectedNode) { if (MapUtils.AreNeighbourNodes(CurrentNode, SelectedNode)) { Player.SendPlayerToNode(SelectedNode).onComplete += OnNodeReached; CurrentNode = SelectedNode; InputSystem.Get().bWorldInputEnabled = false; } else { print("Node " + SelectedNode.name + " is not reachable"); } }
public TweenerCore <Vector3, Vector3, VectorOptions> SendPlayerToNode(MapNodeVisual Node) { return(transform.DOMove(Node.transform.position, 0.7f)); }