private static int CalculateCardInHandScoreFromManaCost(ManaAmount mana) { var converted = Math.Min(7, mana.Converted); var score = Scores.ManaCostToScore[converted] - 100; return(score > 120 ? score : 120); }
void Start() { manaAmount = FindObjectOfType <ManaAmount>(); cardsHand = FindObjectOfType <CardsInHand>(); cardMask = LayerMask.GetMask("Cards"); playfieldMask = LayerMask.GetMask("Playfield"); defaultMask = ~cardMask; }
public PayMana( ManaAmount amount, bool hasX = false, bool supportsRepetitions = false) { _amount = amount; _hasX = hasX; _supportsRepetitions = supportsRepetitions; }
public static ManaAmount Repeat(this ManaAmount amount, int count) { var result = amount; for (var i = 1; i < count; i++) { result = result.Add(amount); } return(result); }
protected Card GetBasicLandCard(Player owner, ManaColor color, CardType[] types, string[] subtypes, bool isSnow) { var card = new Card(owner, types, subtypes, true, 0, 0, false, isSnow); card._attrs = CardAttrs; // Basic Lands tap for 1 mana of their specific color var cost = new TapCost(card); var manaGenerated = new ManaAmount(1, color); card.AddAbility(new ManaAbility(card, cost, manaGenerated, $"{cost}: Add {manaGenerated}")); return(card); }
public AddToManaPoolAction(Player you, ManaAmount toAdd) { this.toAdd = toAdd; this.you = you; }
public FixedManaOutput(ManaAmount amount) { _amount = amount; }
public DefaultLevelUpTimingRule(ManaAmount cost, params LevelDefinition[] levelDefinitions) { _cost = cost; _levelDefinitions.AddRange(levelDefinitions); }
public RegenerateCombatRule(ManaAmount cost) { _cost = cost; }
public IncreaseManaOutput(ManaAmount amount) { _amount = amount; }
public override bool Pay() { var controller = _controller; if (controller == null) { return(false); } var temp = new List <ManaAmount>(_manaAmounts.Select(c => new ManaAmount(c.Amount, c.Color))); if (temp.Any(c => c.Color == ManaColor.GenericX)) { int x = controller.GetValueForX(stringify(temp)); ValueforXChosen?.Invoke(x); var amt = temp.Where(c => c.Color == ManaColor.GenericX).Sum(c => c.Amount); temp.RemoveAll(c => c.Color == ManaColor.GenericX); if (temp.Any(c => c.Color == ManaColor.Generic)) { var generic = temp.First(c => c.Color == ManaColor.Generic); temp.Remove(generic); temp.Add(new ManaAmount(generic.Amount + (amt * x), ManaColor.Generic)); } else { temp.Add(new ManaAmount(amt * x, ManaColor.Generic)); } } List <ManaColor> manaPaid = new List <ManaColor>(); while (temp.Count > 0) { var colorPaid = controller.PayManaCost(stringify(temp)); if (!colorPaid.HasValue) { // If the player cancelled, return the paid mana to their mana pool foreach (var mana in manaPaid) { controller.ManaPool.Add(new ManaAmount(1, mana)); } return(false); } manaPaid.Add(colorPaid.Value); switch (colorPaid) { case ManaColor.White: case ManaColor.Blue: case ManaColor.Black: case ManaColor.Red: case ManaColor.Green: case ManaColor.Colorless: ManaAmount amount = null; if (temp.Any(c => c.Color == colorPaid)) { amount = temp.First(c => c.Color == colorPaid); } else if (temp.Any(c => c.Color == ManaColor.Generic)) { amount = temp.First(c => c.Color == ManaColor.Generic); } temp.Remove(amount); if (amount.Amount == 1) { continue; } temp.Add(new ManaAmount(amount.Amount - 1, amount.Color)); break; } } return(true); }
public PumpCombatRule(int power, int toughness, ManaAmount cost) { _power = power; _toughness = toughness; _cost = cost; }
public ManaAbility(Card source, Cost cost, ManaAmount manaGenerated, string text) : base(source, cost, text) { ManaGenerated = manaGenerated; }