public void AddTileAction(int tileId, TileActions action)
 {
     if (Changes.ContainsKey(tileId))
     {
         Changes[tileId].Add(action);
     }
     else
     {
         List <TileActions> list = new List <TileActions>();
         list.Add(action);
         Changes.Add(tileId, list);
     }
 }
示例#2
0
    private void IllustrateSelection(Brick target, bool selectionDone)
    {
        TileActions current = GetTileAction(target, selectionDone);

        switch (current)
        {
        case TileActions.None:
            //TODO: This need to revert if not performed or something
            var resetAction = tile.GetPlayerAction(Match.ActivePlayer);
            if (resetAction == PlayerAction.None)
            {
                anim.SetTrigger("None");
                LeftSelectBrick.arrow.Hide();
            }
            else if (resetAction == PlayerAction.Migration)
            {
                LeftSelectBrick.arrow.ReShow();
                anim.SetTrigger("None");
            }
            else if (resetAction == PlayerAction.Diffusion)
            {
                anim.SetTrigger("Diffusion");
                LeftSelectBrick.arrow.Hide();
            }
            else
            {
                LeftSelectBrick.arrow.Hide();
                tile.ShowSelectedPopAction(Match.ActivePlayer);
            }

            break;

        case TileActions.NotYetDiffusion:
        //TODO: Should fade in or something
        case TileActions.Diffusion:
            LeftSelectBrick.arrow.Hide();
            anim.SetTrigger("Diffusion");
            break;

        case TileActions.Migration:
            if (LeftSelectBrick.tile.IsNeighbour(target.tile))
            {
                anim.SetTrigger("None");
                LeftSelectBrick.arrow.ShowMigration(target.transform);
            }
            break;
        }

        prevAction = current;
    }