public override async Task MoveEffect(CombatInstance inst, List <BasicCard> targets) { foreach (BasicCard card in targets) { List <int> rolls = RandomGen.RollDice(12, 4); bool latchState = false; int damage = 0; foreach (int roll in rolls) { damage += roll; } damage = inst.GetCardTurn().ApplyDamageBuffs(damage); var damages = card.TakeDamage(damage); //If any latches are detected, set latchState to true var latches = inst.SearchForMarker(inst.TurnNumber); if (latches.Count > 0 && latches.Contains(card)) { latchState = true; } await MessageHandler.DiceThrow(inst.Location, "12d4", rolls); await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} unloads a clip into {card.Signature}. {card.DamageTakenString(damages)}"); if (latchState) { await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} chomps down harder, causing {card.Signature} to bleed!"); card.AddBuff(new BuffDebuff() { Name = "Chomp Wound", Buff = false, Origin = $"({inst.GetCardTurn().Signature})", Description = "receive 10 bleed damage on next attack.", BleedAttackDamage = 10, Attacks = 1 }); } } OnCooldown = true; CurrentCooldown = Cooldown; inst.GetCardTurn().Actions--; }
public override async Task MoveEffect(CombatInstance inst) { string str = ""; inst.GetCardTurn().AddBuff(new BuffDebuff() { Name = $"Demigod Of Earth ({inst.GetCardTurn().Signature})", Buff = true, Description = "Immune to damage for 2 turns.", DefenseSetBuff = 0, Turns = 2 }); //If any latches are already detected, pin them var latches = inst.SearchForMarker(inst.TurnNumber); if (latches.Count > 0) { foreach (BasicCard card in latches) { card.AddBuff(new BuffDebuff() { Name = "Demigod Of Earth", Buff = true, Origin = $"({inst.GetCardTurn().Signature})", Description = "Pinned for 2 turns.", TurnSkip = true, Turns = 2 }); str += $"\n{card.Signature} is pinned under {inst.GetCardTurn().Signature} and cannot move for 2 turns!"; } } await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} gains a massive amount of mass {str}"); OnCooldown = true; CurrentCooldown = Cooldown; inst.GetCardTurn().Actions--; }
public override async Task MoveEffect(CombatInstance inst, List <BasicCard> targets) { foreach (BasicCard card in targets) { var damage = 60; //If any latches are already detected, add damage var latches = inst.SearchForMarker(inst.TurnNumber); if (latches.Count > 0) { foreach (BasicCard card2 in latches) { if (card2 == card) { damage += 60; foreach (BuffDebuff eff in card2.Effects) { if (eff.Name.Equals($"Demigod Of Earth ({inst.GetCardTurn().Signature})") && eff.Description.Equals("Pinned for 2 turns.")) { damage += 50; } } } } } damage = inst.GetCardTurn().ApplyDamageBuffs(damage); var damages = card.TakeDamage(damage); await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} Stomps on {card.Signature} with the force of a mountain! {card.DamageTakenString(damages)}"); } OnCooldown = true; CurrentCooldown = Cooldown; inst.GetCardTurn().Actions--; }
public override async Task MoveEffect(CombatInstance inst, List <BasicCard> targets) { foreach (BasicCard card in targets) { List <int> rolls = RandomGen.RollDice(3, 15, true); var flip = RandomGen.CoinFlip(); bool latchState = false; int damage = 0; foreach (int roll in rolls) { damage += roll; } damage = inst.GetCardTurn().ApplyDamageBuffs(damage); var damages = card.TakeDamage(damage); //If any latches are already detected, remove them. var latches = inst.SearchForMarker(inst.TurnNumber); if (latches.Count > 0) { latchState = true; foreach (BasicCard card2 in latches) { for (int i = card2.Markers.Count - 1; i >= 0; i--) { if (card2.Markers[i].OriginTurnNum == inst.TurnNumber) { card2.Markers.RemoveAt(i); } } } } await MessageHandler.DiceThrow(inst.Location, "3d15!", rolls); await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} chomps down on {card.Signature}! {card.DamageTakenString(damages)}"); await MessageHandler.CoinFlip(inst.Location, flip); if (!latchState) { if (flip) { await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} is latched on!"); card.AddMarker(new Marker(true) { CardOrigin = "Ghub", MoveOrigin = "Chomp", MarkerName = "Latched", OriginTurnNum = inst.TurnNumber, IgnoreBool = false, MarkerBool = true }); } } else { await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} is no longer latched!"); } } inst.GetCardTurn().Actions--; }