Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dm-08 branch #5 #312

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

jyotiskaghosh
Copy link
Contributor

@jyotiskaghosh jyotiskaghosh commented Jan 21, 2025

Dependent on #308

Added:

  • Quazla
  • Nastasha
  • Kuukai
  • Megharia
  • Nariel
  • Thrumiss
  • Furious Onslaught
  • Dimension Splitter

return
}

SelectFilterSelectablesOnly(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

deprecated

c.ManaCost = 7
c.ManaRequirement = []string{civ.Fire}

c.Use(fx.Creature, fx.DragonEvolution, fx.Triplebreaker, fx.WheneverThisAttacks(fx.ManaBurnX(2)))

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if my PR will be accepted first, pls make sure when merging to refactor fx.WheneverThisAttacks to fx.When(fx.AttackConfirmed, ...)

fx.Creature,
fx.When(fx.TurboRushCondition, func(card *match.Card, ctx *match.Context) { turboRush = true }),
fx.When(fx.EndOfMyTurn, func(card *match.Card, ctx *match.Context) { turboRush = false }),
fx.When(func(c *match.Card, ctx *match.Context) bool { return turboRush }, fx.WheneverThisAttacks(fx.OpponentDiscardsHand)),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above, if my PR gets approved first, when you merge you will need to refactor WheneverThisAttacks to AttackConfirmed

fx.When(fx.TurboRushCondition, func(card *match.Card, ctx *match.Context) { turboRush = true }),
fx.When(fx.EndOfMyTurn, func(card *match.Card, ctx *match.Context) { turboRush = false }),
fx.When(func(c *match.Card, ctx *match.Context) bool { return turboRush },
fx.When(fx.WheneverThisAttacksAndIsntBlocked, fx.DestroyOpponentCreature(true, match.DestroyedByMiscAbility))),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above, if my PR gets approved first, when you merge you will need to refactor WheneverThisAttacks AndIsntBlocked to AttackConfirmed + a check for block

fx.Creature,
fx.When(fx.TurboRushCondition, func(card *match.Card, ctx *match.Context) { turboRush = true }),
fx.When(fx.EndOfMyTurn, func(card *match.Card, ctx *match.Context) { turboRush = false }),
fx.When(func(c *match.Card, ctx *match.Context) bool { return turboRush }, fx.WheneverThisAttacks(fx.DestroyOpCreatureXPowerOrLess(4000, match.DestroyedByMiscAbility))),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above with WheneverThisAttacks

fx.When(fx.TurboRushCondition, func(card *match.Card, ctx *match.Context) { turboRush = true }),
func(card *match.Card, ctx *match.Context) {
// NOTE: currently bugged as attack can be cancelled
// need to refactor Battle so that AttackConfirmed can tell if a creature was blocked while attacking a player

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Battle event should be modified to add a boolean flag "AttackedPlayer" true/false or something like that, so we can distinguish the Battle after an AttackCreature event, from the Battle after an AttackPlayer event. And you can get rid of "attackingOpponent" flag like that, and you can check only inside the Battle event to see if this card has been blocked, and indeed destroy OP's shield. Just my opinion

card.Player,
match.BATTLEZONE,
).Map(func(creature *match.Card) {
creature.AddUniqueSourceCondition(cnd.WheneverThisAttacks, tapOpponentCreature, card)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WheneverThisAttacks should be replaced by AttackConfirmed if my PR will be approved before this, as per all my comments above

true,
).Map(func(creature *match.Card) {
creature.Tapped = true
fx.RemoveBlockerFromList(creature, ctx)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fx.RemoveBlockerFromList will not be needed anymore if my PR will get approved before this PR

fx.Creature,
fx.When(fx.TurboRushCondition, func(card *match.Card, ctx *match.Context) { turboRush = true }),
fx.When(fx.EndOfMyTurn, func(card *match.Card, ctx *match.Context) { turboRush = false }),
fx.When(func(c *match.Card, ctx *match.Context) bool { return turboRush }, fx.WheneverThisAttacks(fx.ShowXShields(2))),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WheneverThisAttacks should be replaced by AttackConfirmed if my PR will be approved before this, as per all my comments above

event.Cards = validShields
}

ctx.Match.ReportActionInChat(card.Player, "Nastasha, Channeler of Suns was destoryed to protect a shield.")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo in text action + you can format string to use card name instead of hardcoding "nastasha, ...."

available above also

fx.Creature,
fx.When(fx.TurboRushCondition, func(card *match.Card, ctx *match.Context) { turboRush = true }),
fx.When(fx.EndOfMyTurn, func(card *match.Card, ctx *match.Context) { turboRush = false }),
fx.When(func(c *match.Card, ctx *match.Context) bool { return turboRush }, fx.WheneverThisAttacks(fx.SearchDeckTakeXCards(1))),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WheneverThisAttacks should be replaced by AttackConfirmed if my PR will be approved before this, as per all my comments above

return
}

if turboRush {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a question about turborush: the card description says: "If any of your other creatures broke any shields this turn, this creature gets its ​Turbo Rush ability until the end of the turn".

When the turn ends, turboRush flag is set to false, but the SpeedAttacker condition shouldn't be also removed on all other cards that received it from turboRush?

just a question, I might be wrong / not fully understood the implementation @jyotiskaghosh

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All conditions are cleared at the end of turn.

c.ManaCost = 6
c.ManaRequirement = []string{civ.Darkness}

c.Use(fx.Creature, fx.Doublebreaker, fx.WheneverThisAttacks(func(card *match.Card, ctx *match.Context) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WheneverThisAttacks should be replaced by AttackConfirmed if my PR will be approved before this, as per all my comments above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants