public int CalculateCost(IGameWorldManager gameWorldManager, int baseDamage, ICardInstance cardInstance) { //TODO: actually calculate shit here var calculatedValue = CalculateCostOverridable(gameWorldManager, cardInstance); Logger.Log($"Calculating actual cost: {calculatedValue} for card: {cardInstance.Name}({cardInstance.UniqueId})"); return(calculatedValue); }
public PlayCardCommandData( PlayerKey sender, ICardInstance cardInstance, Vector2Int targetTile) { this._sender = sender; this.cardInstance = cardInstance; this.targetTile = targetTile; }
public bool TryDraw(out ICardInstance card) { card = null; if (drawOrder.Count > 0) { card = drawOrder[0]; drawOrder.RemoveAt(0); return(true); } return(false); }
private void UpdateDisplay(ICardInstance card) { if (card == null) { throw new NotImplementedException(); } NameUI.text = card.Name; DescriptionUI.text = card.Description; CostUI.text = card.Cost.ToString(); GraphicUI.sprite = card.Graphic; }
public void CardCreated(CardMovePoint targetPoint, ICardInstance cardInstance) { if (OnCardCreated == null) { return; } CardCreatedEventArgs args = new CardCreatedEventArgs() { TargetPoint = targetPoint, CardInstance = cardInstance }; OnCardCreated(this, args); }
public void CardUpgraded(ICardInstance baseCardInstance, BaseCard upgradeTarget, ICardInstance upgradedInstance) { if (OnCardUpgraded == null) { return; } CardUpgradedEventArgs args = new CardUpgradedEventArgs() { BaseCardInstance = baseCardInstance, UpgradeTarget = upgradeTarget, UpgradedInstance = upgradedInstance }; OnCardUpgraded(this, args); }
public void CardUsed(ICardInstance cardInstance) { if (OnCardUsed == null) { return; } CardUsedEventArgs args = new CardUsedEventArgs() { CardInstance = cardInstance }; OnCardUsed(this, args); }
public void CardDrawn(ICardInstance cardInstance) { if (OnCardDrawn == null) { return; } CardDrawnEventArgs args = new CardDrawnEventArgs() { CardInstance = cardInstance }; OnCardDrawn(this, args); }
/// <summary> /// Gets the first card in the DrawOrder and removes it from the DrawOrder. /// Will throw NullReferenceException if DrawOrder is null or empty. /// </summary> /// <returns></returns> public ICardInstance DrawNext() { if (drawOrder == null || drawOrder.Count <= 0) { throw new System.NullReferenceException("Tried to draw a card but no cards were in DrawOrder"); } ICardInstance inst = drawOrder[0]; drawOrder.RemoveAt(0); return(inst); }
private void Start() { if (_card == null) { if (cardSo != null) { _card = cardSo.CreateInstance(); } } if (_card != null) { UpdateDisplay(_card); } }
public MatchData( Decklist deckPlayer1, Decklist deckPlayer2, Vector2Int gridSizeX, Vector2Int crystalPosition, int crystalStrength) { playerDatas = new Dictionary <PlayerKey, PlayerData>(); cardInstances = new Dictionary <ICardInstance, PlayerKey>(); fieldEntities = new Dictionary <Vector2Int, IFieldEntity>(); player1Key = new PlayerKey(); player2Key = new PlayerKey(); List <ICardInstance> player1Instances = new List <ICardInstance>(); List <ICardInstance> player2Instances = new List <ICardInstance>(); foreach (DecklistEntry entry in deckPlayer1.cards) { ICardData cardData = Cards.DB[entry.cardName]; ICardInstance cardInstance = Cards.CreateCardInstance(cardData, player1Key); cardInstances.Add(cardInstance, player1Key); player1Instances.Add(cardInstance); } foreach (DecklistEntry entry in deckPlayer2.cards) { ICardData cardData = Cards.DB[entry.cardName]; ICardInstance cardInstance = Cards.CreateCardInstance(cardData, player2Key); cardInstances.Add(cardInstance, player1Key); player2Instances.Add(cardInstance); } DrawOrder drawOrderP1 = new DrawOrder(player1Instances); DrawOrder drawOrderP2 = new DrawOrder(player2Instances); playerDatas.Add(player1Key, new PlayerData(drawOrderP1, player1Key, 5, 5)); playerDatas.Add(player2Key, new PlayerData(drawOrderP2, player2Key, 5, 5)); _crystal = new Crystal(crystalStrength); new FieldEntity <Crystal>(this, _crystal, crystalPosition); this.crystalPosition = crystalPosition; currentState = new MatchState(MatchStateType.Idle, player1Key, player2Key); }
internal static ICardInstance CreateCardInstance(ICardData cardData, PlayerKey player1Key) { Type cardType = cardData.type; ICardInstance cardInstance = null; if (cardType == typeof(Monster)) { cardInstance = new CardInstance <Monster>(cardData); } else if (cardType == typeof(Spell)) { cardInstance = new CardInstance <Spell>(cardData); } if (cardInstance == null) { throw new System.Exception("Invalid Card Type"); } return(cardInstance); }
public RuleEvaluationInfo() { actionAllowed = true; ruleDeniedMessage = "NULL"; cardInstance = null; }
public void CardMovedBetweenPiles(CardMovePoint sourcePoint, CardMovePoint targetPoint, ICardInstance cardInstance) { if (OnCardMovedBetweenPiles == null) { return; } CardMovedBetweenPilesEventArgs args = new CardMovedBetweenPilesEventArgs() { CardInstance = cardInstance, SourcePoint = sourcePoint, TargetPoint = targetPoint }; OnCardMovedBetweenPiles(this, args); }
public virtual int CalculateCostOverridable(IGameWorldManager gameWorldManager, ICardInstance cardInstance) { //TODO: actually calculate shit here // In case of CorruptionPower: if (CardType == CardType.Skill) { var hasCorruption = gameWorldManager.HeroManager.ActivePowerCards.Any(x => x.UniquePowerId == new Guid("05bbe85a-f7da-4555-a7cc-cc60bbc21bed")); if (hasCorruption) { return(0); } } var calculatedCost = Cost; return(calculatedCost); }
public override int CalculateCostOverridable(IGameWorldManager gameWorldManager, ICardInstance cardInstance) { var baseCost = base.CalculateCostOverridable(gameWorldManager, cardInstance); var newValue = Cost - (gameWorldManager.HeroManager.MetaInformation[MetaInformation.TimesPlayerGotAttacked] * 1); if (newValue > baseCost) { return(baseCost); } return(newValue >= 0 ? newValue : 0); }
public RuleEvaluationInfo(bool actionAllowed, ICardInstance cardInstance = null) { this.actionAllowed = actionAllowed; this.ruleDeniedMessage = ""; this.cardInstance = cardInstance; }
public void SetCard(ICardInstance card) { _card = card; UpdateDisplay(_card); }
public int CalculateCostOverridable(GameWorldManager gameWorldManager, ICardInstance cardInstance) { return(Cost); }