update
Some checks failed
Tests / headless (push) Has been cancelled
Tests / fenster-schnell (push) Has been cancelled
Tests / fenster-voll (push) Has been cancelled
Tests / balance (push) Has been cancelled

This commit is contained in:
Team3
2026-10-04 22:40:18 +02:00
parent 5f9442497a
commit 0a612f91b3
16 changed files with 177 additions and 79 deletions

View File

@@ -16,6 +16,7 @@ var game: Game
var perspective: Game.Player # der Mensch, dessen Hand unten liegt
var fx: BattleFx
var selected = null # Game.Creature
var hover_target = null # fremdes Wesen unter der Maus: Vorschau des Angriffs mit dem gewählten Wesen
var fuse_first = null # Karte oder Wesen, für das im Menü „Verschmelzen mit …“ gewählt wurde
var hold_time := 1.0 # so lange still über dem Ziel halten, dann verschmelzen die beiden
var press_target = null # Karte oder Wesen unter der gedrückten linken Maustaste
@@ -928,6 +929,23 @@ func matchup_for(cr: Game.Creature) -> int:
return 0
## Vorschau für den Angriff auf das Wesen unter der Maus: der Angreifer zeigt seinen Angriff mit
## Elementvorteil, und wer dabei stirbt, bekommt die Marke. Verdeckte Ziele bleiben unbekannt.
func update_attack_preview() -> void:
var target = hover_target
if selected == null or target == null or target.hidden or not game.can_attack(selected, target)[0]:
target = null
for v in enemy_views:
v.doomed = target != null and v.creature == target and selected.power() + Game.matchup_bonus(selected, target) >= target.health
v.queue_redraw()
for v in own_views:
var mine: bool = v.creature == selected
v.attack_shift = Game.matchup_bonus(selected, target) if mine and target != null else 0
var counter: int = target.power() + Game.matchup_bonus(target, selected) if target != null and target.power() > 0 else 0
v.doomed = mine and target != null and counter >= selected.health
v.queue_redraw()
class Deck extends Control:
signal clicked
var enabled := true
@@ -1078,6 +1096,8 @@ func refresh() -> void:
tile_layer.add_child(tile)
var looks: Dictionary = p.looks
tile.hover.connect(func(card, entered):
hover_target = tile.creature if entered else null
update_attack_preview()
if tile.secret:
show_preview(null, false)
else:
@@ -1123,6 +1143,7 @@ func refresh() -> void:
var t: CreatureView = tiles[uid]
tiles.erase(uid)
fx.fade_out(t)
update_attack_preview()
deck.visible = not spectating()
deck.enabled = mine and g.can_draw(h)[0]
deck.count = g.deck.size()