public override List <GameAction> GetActions()
        {
            List <GameAction> res = new List <GameAction>();

            ActionCommandMap.Clear();

            GameAction done = new GameAction(-1, -1, "Done");

            ActionCommandMap.Add(done, null); //Advance to blocking phase.
            res.Add(done);

            int i = 0;
            IEnumerable <Card> availableCreatures = MyGame.GetCards(ZoneType.Battlefield, MyPlayer.Value(MyGame)).Where(x => { return(x.CurrentCharacteristics.CardTypes.Contains("Creature")); });

            foreach (Card creat in availableCreatures)
            {
                if (!creat.HasSummoningSickness)
                {
                    IEnumerable <Player> opponents = MyGame.GetPlayers().Where(x => { return(x.ID != MyPlayer.ID); });
                    foreach (Player p in opponents)
                    {
                        GameAction gaplayer = new GameAction(i++, creat.ID, "Attack " + p.ToString(MyGame) + "with " + creat.ToString(MyGame));

                        ActionCommandMap.Add(gaplayer, new CommandAddAttacker(creat.ID, p.ID));
                        res.Add(gaplayer);

                        IEnumerable <LazyGameObject <Card> > walkers = p.MyZones[ZoneType.Battlefield].Contents.Where(x => { return(x.Value(MyGame).CurrentCharacteristics.CardTypes.Contains("Planeswalker")); });
                        foreach (LazyGameObject <Card> plw in walkers)
                        {
                            GameAction gaplw = new GameAction(i++, creat.ID, "Attack with " + creat.ToString(MyGame));

                            ActionCommandMap.Add(gaplw, new CommandAddAttacker(creat.ID, plw.ID));
                            res.Add(gaplw);
                        }
                    }
                }
            }

            foreach (Card att in MyGame.MyCombatHandler.AttackerToTargetMap.Keys)
            {
                GameAction garem = new GameAction(i++, att.ID, "Remove " + att.ToString(MyGame) + " from attacking.");

                ActionCommandMap.Add(garem, new CommandRemoveAttacker(att.ID));
                res.Add(garem);
            }

            return(res);
        }