diff --git a/app/lib/game/flammable_decoration.dart b/app/lib/game/flammable_decoration.dart index b8a8507..f0c0019 100644 --- a/app/lib/game/flammable_decoration.dart +++ b/app/lib/game/flammable_decoration.dart @@ -13,15 +13,13 @@ class FlammableDecoration extends GameDecoration with Sensor { animation: PlatformSpritesheet.fire, position: position..translate(0, -8), size: Vector2(128 * 1.5, 128 * 1.5), - ) { - controller.configure(maxLife: 100, maxProgress: controller.maxProgress + 1); - } + ) {} @override void onContact(GameComponent component) { if (component is Player && !_onFire) { // change the animation to burning fire - controller.increaseProgress(1); + controller.goals--; AudioController.playEffect('fire.wav'); PlatformSpritesheet.fireOn.then((fire) { setAnimation(fire); diff --git a/app/lib/game/rakshasa.dart b/app/lib/game/rakshasa.dart index 9732c36..8482d02 100644 --- a/app/lib/game/rakshasa.dart +++ b/app/lib/game/rakshasa.dart @@ -1,11 +1,13 @@ import 'dart:math'; import 'package:bonfire/bonfire.dart'; +import 'package:ramayana/game/ui/score_controller.dart'; import 'package:ramayana/user_prefs/audioController.dart'; import 'player_one.dart'; import 'platform_spritesheet.dart'; class Rakshasa extends PlatformEnemy with HandleForces { int _timeToWaitBeforeJump = 4000; + ProgressBarController controller = ProgressBarController(); Rakshasa({required super.position}) : super( size: Vector2(471 * .7, 480 * .7), @@ -46,6 +48,7 @@ class Rakshasa extends PlatformEnemy with HandleForces { @override void die() { + controller.enemies--; AudioController.playEffect('enemy_die.mp3'); super.die(); animation?.playOnce( diff --git a/app/lib/game/ui/score_controller.dart b/app/lib/game/ui/score_controller.dart index 6487ffe..588e390 100644 --- a/app/lib/game/ui/score_controller.dart +++ b/app/lib/game/ui/score_controller.dart @@ -10,50 +10,34 @@ class ProgressBarController extends ChangeNotifier { ProgressBarController._internal(); - double _maxLife = 100; - double _maxProgress = 0; - get maxLife => _maxLife; - get maxProgress => _maxProgress; - double _life = 0; - double _progress = 0; + int _goals = 0; + int _enemies = 0; - double get score => _life; - double get progress => _progress; + double get life => _life; + int get goals => _goals; + int get enemies => _enemies; - set score(double newLife) { + set life(double newLife) { _life = newLife; notifyListeners(); } - set progress(double progress) { - _progress = progress; + set goals(int g) { + _goals = g; notifyListeners(); } - void configure({required double maxLife, required double maxProgress}) { - _life = _maxLife = maxLife; - _maxProgress = maxProgress; + set enemies(int e) { + _enemies = e; notifyListeners(); } - void increaseProgress(int value) { - progress += value; - if (progress > 100) { - progress = 100; - } - } - - void decrementProgress(int value) { - progress -= value; - if (progress < 0) { - progress = 0; - } - } - - void updateLife(double life) { - if (this.score != life) { - this.score = life; - } + void configure( + {required double life, required int goals, required int enemies}) { + _life = life; + _goals = goals; + _enemies = enemies; + notifyListeners(); } } diff --git a/app/lib/game/ui/score_widget.dart b/app/lib/game/ui/score_widget.dart index 228ea0e..faa0bc4 100644 --- a/app/lib/game/ui/score_widget.dart +++ b/app/lib/game/ui/score_widget.dart @@ -19,17 +19,9 @@ class ProgressBarWidget extends StatelessWidget { Row( children: [ Text( - controller.progress.toInt().toString(), + '${(controller.goals).toInt()}🔥 ${(controller.enemies).toInt()} 👹', style: const TextStyle(color: Colors.yellowAccent), - ), - const Text( - ' / ', - style: TextStyle(color: Colors.yellowAccent), - ), - Text( - controller.maxProgress.toInt().toString(), - style: const TextStyle(color: Colors.yellowAccent), - ), + ) ], ), ],