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); }
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; }