public override bool UseOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { this.AfterTurnCountEvent.CardTargets = cardTargets; this.AfterTurnCountEvent.EnemyTargets = targets; gameWorldManager.GameTurnManager.AfterTurnCountEvents.Add(this.AfterTurnCountEvent); return(true); }
public bool CanUse(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { var canBeUsed = CanUseOverridable(gameWorldManager, targets, cardTargets); Logger.Log($"Checking if card can be used: {canBeUsed}"); return(canBeUsed); }
public virtual int CalculateDamageOverridable(IGameWorldManager gameWorldManager, int baseDamage, IEnemyInstance target) { //TODO: actually calculate shit here var calculatedValue = baseDamage; return(calculatedValue); }
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 bool ActivateEffects(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { foreach (var cardEffect in CardEffects) { gameWorldManager.CardEffectManager.ActivateEffect(cardEffect.Key, cardEffect.Value, targets, cardTargets, this); } return(true); }
public int CalculateDamage(IGameWorldManager gameWorldManager, int baseDamage, IEnemyInstance target) { //TODO: actually calculate shit here var calculatedValue = CalculateDamageOverridable(gameWorldManager, baseDamage, target); Logger.Log($"Calculating actual damage: {calculatedValue} for target: {target.Name}({target.UniqueId})"); return(calculatedValue); }
public CardInstance(BaseCard baseCard, IGameWorldManager gameWorldManager) { UniqueId = Guid.NewGuid(); BaseCard = baseCard; GameWorldManager = gameWorldManager; ActualCost = CalculateActualCost(); CardUseType = BaseCard.CardUseType; }
public override bool UseOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { foreach (var cardInstance in cardTargets) { gameWorldManager.CardManager.MoveCardBetweenPiles(cardInstance, CardMovePoint.Hand, CardMovePoint.Deck); } return(true); }
public override bool ActionWhenTriggered(IGameWorldManager gameWorldManager) { gameWorldManager.CardEffectManager.DamageTarget(new Null(), new DamageMultipleTimesEffect() { HitTimes = gameWorldManager.HeroManager.MetaInformation[MetaInformation.TimesPlayerGotDamagedThisTurn], DamageAmount = 1 }, gameWorldManager.EnemyManager.Enemies); return(true); }
public override bool UseOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { foreach (var cardTarget in cardTargets) { CardInstance newCard = new CardInstance(cardTarget.BaseCard, gameWorldManager); gameWorldManager.CardManager.Hand.Add(newCard); } return(true); }
public override bool ActionWhenTriggered(IGameWorldManager gameWorldManager) { gameWorldManager.CardEffectManager.LoseHealth(1); gameWorldManager.CardEffectManager.DamageTarget(new Null(), new DamageMultipleTimesEffect() { HitTimes = 1, DamageAmount = 5 }, gameWorldManager.EnemyManager.Enemies); return(true); }
public override int CalculateDamageOverridable(IGameWorldManager gameWorldManager, int baseDamage, IEnemyInstance target) { int cardCountWithStrike = 0; cardCountWithStrike += gameWorldManager.CardManager.DeckPile.Count(x => x.Name.ToLower().Contains("strike")); cardCountWithStrike += gameWorldManager.CardManager.ExhaustPile.Count(x => x.Name.ToLower().Contains("strike")); cardCountWithStrike += gameWorldManager.CardManager.Hand.Count(x => x.Name.ToLower().Contains("strike")); cardCountWithStrike += gameWorldManager.CardManager.DiscardPile.Count(x => x.Name.ToLower().Contains("strike")); return(baseDamage + (cardCountWithStrike * 2)); }
public override bool UseOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { CardColor targetCardColor = CardColor.Any; CardType targetCardType = CardType.Attack; CardMovePoint targetCardMovePoint = CardMovePoint.Hand; gameWorldManager.CardManager.CreateRandomCard(targetCardColor, targetCardType, targetCardMovePoint, ShuffleFormat.Bottom); return(true); }
public override bool CanUseOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { foreach (var cardInHand in gameWorldManager.CardManager.Hand) { if (cardInHand.CardType != CardType.Attack) { return(false); } } return(true); }
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 override bool ActionWhenTriggered(IGameWorldManager gameWorldManager) { gameWorldManager.CardEffectManager.DamageTarget(BaseCard, new DamageMultipleTimesEffect() { DamageAmount = 4, HitTimes = 1 }, new List <IEnemyInstance>() { gameWorldManager.EnemyManager.ActiveEnemyInstance }); return(true); }
public override bool UseOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { foreach (var target in targets) { if (target.StatusValues[StatusEffect.Vulnerable] > 0) { gameWorldManager.HeroManager.CurrentEnergyCount += 1; gameWorldManager.CardManager.DrawFromDeck(); } } return(true); }
public bool Use(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { if (CanUse(gameWorldManager, targets, cardTargets)) { ActivateEffects(gameWorldManager, targets, cardTargets); var result = UseOverridable(gameWorldManager, targets, cardTargets); gameWorldManager.GameTurnManager.ActivateAvailablePowerTriggers(PowerTrigger.Always); if (this.CardType == CardType.Attack) { gameWorldManager.GameTurnManager.ActivateActiveSkillCardsThisTurn(ActiveSkillTrigger.OnAttack); } return(result); } return(false); }
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 bool UseOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { var potentialCopy = gameWorldManager.CardManager.DeckPile.FirstOrDefault(x => x.UniqueCardId == new Guid("3c27f381-00a0-415a-97ab-1d18337bbfaf")); if (potentialCopy != null) { gameWorldManager.CardManager.MoveCardBetweenPiles(potentialCopy, CardMovePoint.Deck, CardMovePoint.DiscardPile); } else { var potentialCopyFromHand = gameWorldManager.CardManager.Hand.FirstOrDefault(x => x.UniqueCardId == new Guid("3c27f381-00a0-415a-97ab-1d18337bbfaf")); if (potentialCopyFromHand != null) { gameWorldManager.CardManager.MoveCardBetweenPiles(potentialCopyFromHand, CardMovePoint.Hand, CardMovePoint.DiscardPile); } } return(true); }
public override bool ActionWhenTriggered(IGameWorldManager gameWorldManager) { foreach (var cardInstance in gameWorldManager.CardManager.Hand.Where(x => x.CardType == CardType.Skill)) { cardInstance.ActualCost = 0; cardInstance.BaseCard.CardUseType = CardUseType.Exhaust; } foreach (var cardInstance in gameWorldManager.CardManager.DeckPile.Where(x => x.CardType == CardType.Skill)) { cardInstance.ActualCost = 0; cardInstance.BaseCard.CardUseType = CardUseType.Exhaust; } foreach (var cardInstance in gameWorldManager.CardManager.DiscardPile.Where(x => x.CardType == CardType.Skill)) { cardInstance.ActualCost = 0; cardInstance.BaseCard.CardUseType = CardUseType.Exhaust; } foreach (var cardInstance in gameWorldManager.CardManager.ExhaustPile.Where(x => x.CardType == CardType.Skill)) { cardInstance.ActualCost = 0; cardInstance.BaseCard.CardUseType = CardUseType.Exhaust; } return(true); }
public HeroManager(IGameWorldManager gameWorldManager) { _gameWorldManager = gameWorldManager; }
public override bool ShouldTrigger(IGameWorldManager gameWorldManager) { return(true); }
public void AfterTurnCountEventOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { gameWorldManager.CardEffectManager.AddStrengthSelf(-2); }
public override bool ActionWhenTriggered(IGameWorldManager gameWorldManager) { gameWorldManager.CardManager.DrawFromDeck(); return(true); }
public override bool ShouldTrigger(IGameWorldManager gameWorldManager) { return(gameWorldManager.CardManager.LastCardPick != null && gameWorldManager.CardManager.LastCardPick.CardType == CardType.Status); }
public GameTurnManager(IGameWorldManager gameWorldManager) { _gameWorldManager = gameWorldManager; }
public override int CalculateDamageOverridable(IGameWorldManager gameWorldManager, int baseDamage, IEnemyInstance target) { return(baseDamage + (gameWorldManager.HeroManager.StatusValues[StatusEffect.Strength] * 3)); }
public override bool CanUseOverridable(IGameWorldManager gameWorldManager, List <IEnemyInstance> targets, List <ICardInstance> cardTargets) { return(false); }
public EnemyManager(IGameWorldManager gameWorldManager) { _gameWorldManager = gameWorldManager; }