コード例 #1
0
 public override void OnTileSelected(TileProxy tile)
 {
     if (currentUnit != null && visitableTiles.Contains(tile))
     {
         TileProxy startTile = BoardProxy.instance.GetTileAtPosition(currentUnit.GetPosition());
         if (startTile != tile)
         {
             UnitProxy unit = startTile.GetUnit();
             if (unit.GetData().GetTurnActions().CanMove())
             {
                 unit.GetData().GetTurnActions().Move();
                 PanelController.SwitchChar(unit);
                 StartCoroutine(currentUnit.CreatePathToTileAndLerpToPosition(tile,
                                                                              () =>
                 {
                     tile.ReceiveGridObjectProxy(currentUnit);
                     startTile.RemoveGridObjectProxy(currentUnit);
                     UnHighlightTiles();
                     InteractivityManager.instance.EnterDefaultMode();
                 }));
             }
             else
             {
                 Debug.Log("Out of actions. Send signal to player they can't move unit.");
             }
         }
         else
         {
             StartCoroutine(currentUnit.CreatePathToTileAndLerpToPosition(tile,
                                                                          () =>
             {
                 StartCoroutine(ResetTiles());
             }));
         }
     }
     else if (currentUnit != null)
     {
         //Select all the tiles with opp team in all tiles
         //List<TileProxy> visitableTiles = allTiles.Where(tl => tl.GetUnit().GetData().GetTeam() != currentUnit.GetData().GetTeam()).ToList<TileProxy>();
         if (!allTiles.Where(tl => tl.HasUnit() && (tl.GetUnit().GetData().GetTeam() != currentUnit.GetData().GetTeam())).ToList <TileProxy>().Contains(tile))
         {
             BoardProxy.instance.FlushTiles();
             PanelController.SwitchChar(null);
         }
         ////Player clicked out of unit range, reset tiles/UI so player can click somewhere else instead
         //BoardProxy.instance.FlushTiles();
         //PanelController.SwitchChar(null);
     }
 }
コード例 #2
0
 public static void InteractionDialogGameobject(Skill.Actions interaction, TileProxy tile, string msg, Color color)
 {
     //Debug.Log("Animation reason: " + animDesc);
     instance.StartCoroutine(instance.DialogAnim(msg, color, ReturnWaitTimeDialog(interaction), tile.GetUnit().transform));
     //instance.timeLeft = ANIMATION_WAIT_TIME_LIMIT;
 }