From 537882dcbcc6ca041010ce71cbc82bc6f3a8d978 Mon Sep 17 00:00:00 2001 From: Daniel S <4135641+DanieloV@users.noreply.github.com> Date: Fri, 6 Sep 2024 20:33:29 +0300 Subject: [PATCH] add card preview match chat --- game/fx/creature.go | 8 +-- game/match/match.go | 10 +++- webapp/src/components/CardPreviewPopup.vue | 62 +++++++++++++++++++++ webapp/src/views/DecksNew.vue | 39 ++++--------- webapp/src/views/Match.vue | 65 +++++++++++++++++++--- 5 files changed, 143 insertions(+), 41 deletions(-) create mode 100644 webapp/src/components/CardPreviewPopup.vue diff --git a/game/fx/creature.go b/game/fx/creature.go index 25543407..7f2253db 100644 --- a/game/fx/creature.go +++ b/game/fx/creature.go @@ -616,15 +616,15 @@ func Creature(card *match.Card, ctx *match.Context) { if attackerPower > defenderPower { m.HandleFx(match.NewContext(m, &match.CreatureDestroyed{Card: defender, Source: attacker, Blocked: blocked})) - m.Chat("Server", fmt.Sprintf("%s (%v) was destroyed by %s (%v)", defender.Name, defenderPower, attacker.Name, attackerPower)) + m.Chat("Server", fmt.Sprintf("%s (%v) was destroyed by %s (%v)", ctx.Match.FormatDisplayableCard(defender), defenderPower, ctx.Match.FormatDisplayableCard(attacker), attackerPower)) } else if attackerPower == defenderPower { m.HandleFx(match.NewContext(m, &match.CreatureDestroyed{Card: attacker, Source: defender, Blocked: blocked})) - m.Chat("Server", fmt.Sprintf("%s (%v) was destroyed by %s (%v)", attacker.Name, attackerPower, defender.Name, defenderPower)) + m.Chat("Server", fmt.Sprintf("%s (%v) was destroyed by %s (%v)", ctx.Match.FormatDisplayableCard(attacker), attackerPower, ctx.Match.FormatDisplayableCard(defender), defenderPower)) m.HandleFx(match.NewContext(m, &match.CreatureDestroyed{Card: defender, Source: attacker, Blocked: blocked})) - m.Chat("Server", fmt.Sprintf("%s (%v) was destroyed by %s (%v)", defender.Name, defenderPower, attacker.Name, attackerPower)) + m.Chat("Server", fmt.Sprintf("%s (%v) was destroyed by %s (%v)", ctx.Match.FormatDisplayableCard(defender), defenderPower, ctx.Match.FormatDisplayableCard(attacker), attackerPower)) } else if attackerPower < defenderPower { m.HandleFx(match.NewContext(m, &match.CreatureDestroyed{Card: attacker, Source: defender, Blocked: blocked})) - m.Chat("Server", fmt.Sprintf("%s (%v) was destroyed by %s (%v)", attacker.Name, attackerPower, defender.Name, defenderPower)) + m.Chat("Server", fmt.Sprintf("%s (%v) was destroyed by %s (%v)", ctx.Match.FormatDisplayableCard(attacker), attackerPower, ctx.Match.FormatDisplayableCard(defender), defenderPower)) } }) } diff --git a/game/match/match.go b/game/match/match.go index 91d89cb1..a6364f98 100644 --- a/game/match/match.go +++ b/game/match/match.go @@ -242,7 +242,7 @@ func (m *Match) MoveCard(card *Card, destination string, source *Card) { return } - m.Chat("Server", fmt.Sprintf("%s was moved to %s %s by %s", card.Name, card.Player.Username(), destination, source.Name)) + m.Chat("Server", fmt.Sprintf("%s was moved to %s %s by %s", m.FormatDisplayableCard(card), card.Player.Username(), destination, m.FormatDisplayableCard(source))) } @@ -422,6 +422,10 @@ func (m *Match) Chat(sender string, message string) { m.ColorChat(sender, message, "#ccc") } +func (m *Match) FormatDisplayableCard(card *Card) string { + return fmt.Sprintf("(%s;%s)", card.Name, card.ImageID) +} + func (m *Match) Broadcast(msg interface{}) { defer func() { @@ -925,7 +929,9 @@ func (m *Match) ChargeMana(p *PlayerReference, cardID string) { if card, err := p.Player.MoveCard(cardID, HAND, MANAZONE, cardID); err == nil { p.Player.HasChargedMana = true m.BroadcastState() - m.Chat("Server", fmt.Sprintf("%s was added to %s's manazone", card.Name, p.Socket.User.Username)) + m.Chat("Server", fmt.Sprintf("%s was added to %s's manazone", + m.FormatDisplayableCard(card), + p.Socket.User.Username)) } } diff --git a/webapp/src/components/CardPreviewPopup.vue b/webapp/src/components/CardPreviewPopup.vue new file mode 100644 index 00000000..6aa7ab23 --- /dev/null +++ b/webapp/src/components/CardPreviewPopup.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/webapp/src/views/DecksNew.vue b/webapp/src/views/DecksNew.vue index c1f0a0d0..bc91c2aa 100644 --- a/webapp/src/views/DecksNew.vue +++ b/webapp/src/views/DecksNew.vue @@ -2,20 +2,12 @@
- -
- Full card -
-
+

{{ warning }}

@@ -240,6 +232,7 @@