//should only be called if CanPutHenchmanAtSpace() returns true public void PutHenchmanAtSpace(HenchmanCard henchman, BoardSpaceEnum space) { //put it on the board board[space] = henchman; henchman.SetPlayState(PlayStateEnum.BOARD); henchman.SetLocation(space); //move the henchman visually VisuallyPutHenchmanAtSpace(henchman, space); //invoke its flashy event henchman.FlashyEvent.Invoke(); //invoke all other henchmen's attention-seeker events TriggerAttentionSeekerEvents(); //add it to the order henchmenOrder.Enqueue(space); }
//should only be called if CanRemoveHenchmanFromBoard() returns true public void RemoveHenchmanFromBoard(BoardSpaceEnum space) { HenchmanCard henchman = board[space]; //remove it from the board board[space] = null; henchman.SetPlayState(PlayStateEnum.DONE); henchman.SetLocation(BoardSpaceEnum.NONE); //remove it from the order henchmenOrder.RemoveArbitrary(space); //remove the henchman visually henchman.gameObject.SetActive(false); //set up the henchman to be destroyed henchman.GetController().GetDeck().DestroyCard(henchman); //invoke its closing-act event henchman.ClosingActEvent.Invoke(); }