private void HandlePieceViewDestroy(IPieceView pieceView) { _pieceViewMap.Remove(pieceView.piece); if (_pieceViewMap.Count == 0) { onDestroy(this); Despawn(); } }
public BoardController(IBoardView view, Board model, System.Func <IPieceView> createNewPieceFunc) { this.view = view; this.model = model; // Initialization view.Size = model.BoardLength; foreach (Piece piece in model.Pieces) { IPieceView newPieceView = createNewPieceFunc.Invoke(); newPieceView.Board = view; pieces.Add(new PieceController(piece, newPieceView)); } }
public PieceController(Piece model, IPieceView view) { this.model = model; this.view = view; // View callbacks view.OnSetMoveToTile += HandleSetPosition; // Model callbacks model.OnCoordinatesChanged += (o, e) => SyncPosition(); // Initialization SyncPosition(); SyncType(); view.Team = model.Team; }
public IResponse MovePiece(IPieceView pieceView, Coord coord) { return(Agent.Move(pieceView.Agent, coord)); }
public IResponse Remove(IPieceView pieceView) { return(Agent.Remove(pieceView.Agent)); }