public async Task OnMouseDown(MouseEventArgs e) { if (e.Button == 2 && !e.CtrlKey) { ObjectClicked.Right = true; await ObjectClickedChanged.InvokeAsync(ObjectClicked); await OnEdgeRightClick.InvokeAsync(Edge); } else { ObjectClicked.Left = true; await ObjectClickedChanged.InvokeAsync(ObjectClicked); if (e.CtrlKey) { if (Active) { await RemoveActiveEdge.InvokeAsync(Edge); } else { await AddActiveEdge.InvokeAsync(Edge); } } else if (!Active) { await OnEdgeClick.InvokeAsync(Edge); } } }
public void OnGameEvent(OnEdgeClick edgeEvent) { gameObject.SetActive(true); UpdaterProxy.Get().SetPause(true); m_CurrentEdge = edgeEvent.GetEdge(); m_ChoosePathButton.interactable = m_Player.CanMoveToEdge(m_CurrentEdge); EdgeResource tempEdgeResource = m_CurrentEdge.GetEdgeResource(); switch (tempEdgeResource.GetEdgeType()) { case EEdgeType.Normal: m_MoveType = EEdgeType.Normal; break; case EEdgeType.Combat: if (TeamManagerProxy.Get().IsNotTooMuchCharacters(tempEdgeResource.GetEdgeCharacterNumber())) { m_MoveType = EEdgeType.Normal; } else { m_MoveType = EEdgeType.Combat; } break; case EEdgeType.Obstacle: if (TeamManagerProxy.Get().IsCharacterClass(tempEdgeResource.GetEdgeCharacterClass())) { m_MoveType = EEdgeType.Normal; } else { m_MoveType = EEdgeType.Obstacle; m_ChoosePathButton.interactable = false; } break; case EEdgeType.Diversion: if (TeamManagerProxy.Get().IsNotTooMuchCharacters(tempEdgeResource.GetEdgeCharacterNumber())) { m_MoveType = EEdgeType.Normal; } else { m_MoveType = EEdgeType.Diversion; } break; } m_Description.text = tempEdgeResource.GetDescription(); }