import 'package:flame/components.dart'; import '../ember_quest.dart'; enum HeartState { available, unavailable, } class HeartHealthComponent extends SpriteGroupComponent with HasGameReference { final int heartNumber; HeartHealthComponent({ required this.heartNumber, required super.position, required super.size, super.scale, super.angle, super.anchor, super.priority, }); @override Future onLoad() async { await super.onLoad(); final availableSprite = await game.loadSprite( 'heart.png', srcSize: Vector2.all(32), ); final unavailableSprite = await game.loadSprite( 'heart_half.png', srcSize: Vector2.all(32), ); sprites = { HeartState.available: availableSprite, HeartState.unavailable: unavailableSprite, }; current = HeartState.available; } @override void update(double dt) { if (game.health < heartNumber) { current = HeartState.unavailable; } else { current = HeartState.available; } super.update(dt); } }