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-08 14:28:52 +02:00
parent 5bc8569717
commit c245c7af87
21 changed files with 496 additions and 347 deletions

View File

@@ -3,6 +3,7 @@ extends Control
## Zeichnet ein Wesen auf dem Feld. Bleibt über Zustandsänderungen bestehen (für Animationen).
signal pressed(view: CreatureView, pos: Vector2) # linke Maustaste gedrückt; der Kampf macht daraus Klick oder Ziehen
signal double_clicked(view: CreatureView) # Doppelklick: eigenes Wesen greift das Leben des Gegners an
signal hover(card: Cards.Card, entered: bool)
var creature: Game.Creature
@@ -38,7 +39,10 @@ func _process(_delta: float) -> void:
func _gui_input(event: InputEvent) -> void:
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
accept_event()
pressed.emit(self, event.global_position)
if event.double_click:
double_clicked.emit(self)
else:
pressed.emit(self, event.global_position)
func rarity() -> String:
@@ -76,7 +80,7 @@ func _draw() -> void:
var badge := ""
var bw := 0.0
if creature.aura != 0:
badge = "+%d/+%d" % [creature.aura, creature.aura] if creature.aura > 0 else "−%d/−%d" % [-creature.aura, -creature.aura]
badge = "+%d" % creature.aura if creature.aura > 0 else "−%d" % -creature.aura
bw = Style.FONT_BOLD.get_string_size(badge, HORIZONTAL_ALIGNMENT_LEFT, -1, Style.fs(10)).x + 8
var by := Style.fs(fs) + 13
draw_rect(Rect2(size.x - bw - 4, by, bw, 16), Color(0.05, 0.05, 0.08, 0.75))
@@ -127,11 +131,11 @@ func _draw_back(rect: Rect2) -> void:
## Angriff und Leben für den Angriff, der gerade vorbereitet wird. Fremdes Wesen bei gewähltem
## Angreifer: sein Konter gegen ihn (im Nachteil 1 weniger, wer 0 Angriff hat, kontert gar nicht),
## Angreifer: sein Konter gegen ihn (im Nachteil 1 weniger, im Vorteil 1 mehr, auch bei 0 Angriff),
## das Leben bleibt echt. Eigener Angreifer über einem Ziel: sein Angriff mit Elementvorteil.
func shown_stats() -> Array:
if matchup != 0:
var atk := 0 if creature.power() <= 0 else maxi(0, creature.power() - matchup)
var atk := maxi(0, creature.power() - matchup)
return [atk, creature.health]
if attack_shift != 0:
return [maxi(0, creature.power() + attack_shift), creature.health]