Beispiel #1
0
        public override List <GameAction> GetActions()
        {
            List <GameAction> res = new List <GameAction>();

            ActionCommandPairs.Clear();

            GameAction cancel = new GameAction(-2, -2, "Cancel");

            res.Add(cancel);
            ActionCommandPairs.Add(-2, null);

            int i = 0;

            foreach (LazyGameObject <ManaPoint> lmp in MyPlayer.Value(MyGame).ManaPool)
            {
                ManaPoint mp = lmp.Value(MyGame);
                foreach (ManaCostPart mcp in MyActivatable.MyCost.ManaParts.Where(x => { return(!MyActivatable.MyCost.PaidMana.Contains(x)); }))
                {
                    if (mp.MyColor == mcp.Color || mcp.Color == ManaColor.Colorless)
                    {
                        GameAction ga = new GameAction(i++, mp.ID, "Pay " + mp.MyColor + " mana for " + mcp.ToString());
                        res.Add(ga);

                        ActionCommandPairs.Add(ga.ID, new CommandPayMana(MyPlayer.ID, mp.ID, MyActivatable.MyCost.ManaParts.IndexOf(mcp)));
                    }
                }
            }

            return(res);
        }
Beispiel #2
0
        public override void Do(Game g)
        {
            Player p = Player.Value(g);

            point         = new ManaPoint();
            point.MyColor = Color;

            g.RegisterGameObject(point);

            p.ManaPool.Add(new LazyGameObject <ManaPoint>(point));
        }
 public void Pay(ManaPoint mp, Game g)
 {
     PaidPoint = mp;
 }