コード例 #1
0
ファイル: ActionsUI.cs プロジェクト: Ziden/Lisergy
        public void Show(ClientParty party, ClientTile tile)
        {
            if (party.Tile == tile || tile == null)
            {
                Hide();
                return;
            }
            var pos = Camera.main.WorldToScreenPoint(tile.GetGameObject().transform.position);

            _gameObject.transform.position = pos;
            _gameObject.SetActive(true);
            var actions = new List <EntityAction>();

            if (tile.StaticEntity is ClientDungeon)
            {
                actions.Add(EntityAction.CHECK);
                actions.Add(EntityAction.ATTACK);
            }
            else
            {
                actions.Add(EntityAction.MOVE);
            }
            actions.Add(EntityAction.GUARD);
            BuildActions(actions.ToArray());
        }
コード例 #2
0
 internal void Add(ClientTile tile, params GameObject [] pathLines)
 {
     if (!_pathLines.ContainsKey(tile))
     {
         _pathLines[tile] = new List <GameObject>();
     }
     _pathLines[tile].AddRange(pathLines);
 }
コード例 #3
0
ファイル: TileUI.cs プロジェクト: Ziden/Lisergy
 private void CameraMove(Vector3 old, Vector3 newPos)
 {
     if (IsActive(_tileCursor))
     {
         Inactivate(_tileCursor);
     }
     _selectedTile = null;
 }
コード例 #4
0
ファイル: TileUI.cs プロジェクト: Ziden/Lisergy
 public void StartMoveReq(ClientParty party, List <ClientTile> path)
 {
     if (IsActive(_tileCursor))
     {
         Inactivate(_tileCursor);
     }
     _selectedTile = null;
 }
コード例 #5
0
ファイル: DungeonUI.cs プロジェクト: Ziden/Lisergy
 public void OnClickTile(ClientTile tile)
 {
     /*
      * var dungeon = tile.StaticEntity as ClientDungeon;
      * if (dungeon == null) return;
      * UIManager.DungeonsUI.Display(dungeon);
      */
 }
コード例 #6
0
ファイル: ActionsUI.cs プロジェクト: Ziden/Lisergy
 private void OnClickTile(ClientTile tile)
 {
     Log.Debug("Actions click tile");
     if (UIManager.PartyUI.HasSelectedParty)
     {
         Show(UIManager.PartyUI.SelectedParty, tile);
     }
 }
コード例 #7
0
    public static void FocusOnTile(ClientTile t)
    {
        Log.Debug($"Focusing on tile {t}");

        var camera    = Get();
        var coroutine = camera.LerpFromTo(camera.transform.position, new Vector3(t.X - 2, 5, t.Y - 2), 0.2f);

        camera.StartCoroutine(coroutine);
    }
コード例 #8
0
ファイル: ActionsUI.cs プロジェクト: Ziden/Lisergy
        private void MoveToSelectedTile(MovementIntent intent)
        {
            ClientParty party        = UIManager.PartyUI.SelectedParty;
            ClientTile  selectedTile = UIManager.TileUI.SelectedTile;

            Log.Debug($"Moving {party} to {selectedTile}");
            var map      = selectedTile.Chunk.Map;
            var path     = map.FindPath(party.Tile, selectedTile);
            var tilePath = path.Select(node => (ClientTile)map.GetTile(node.X, node.Y)).ToList();

            ClientEvents.StartMovementRequest(party, tilePath);
            MainBehaviour.Networking.Send(new MoveRequestEvent()
            {
                PartyIndex = party.PartyIndex,
                Path       = path.Select(p => new Game.World.Position(p.X, p.Y)).ToList(),
                Intent     = intent
            });
        }
コード例 #9
0
ファイル: ClientEvents.cs プロジェクト: Ziden/Lisergy
 public static void ActionSelected(ClientParty p, ClientTile tile, EntityAction action)
 {
     OnActionSelected?.Invoke(p, tile, action);
 }
コード例 #10
0
ファイル: ClientEvents.cs プロジェクト: Ziden/Lisergy
 public static void PartyFinishedMove(ClientParty p, ClientTile o, ClientTile n)
 {
     OnPartyFinishedMove?.Invoke(p, o, n);
 }
コード例 #11
0
ファイル: ClientEvents.cs プロジェクト: Ziden/Lisergy
 public static void ClickTile(ClientTile tile)
 {
     OnClickTile?.Invoke(tile);
 }