summaryrefslogtreecommitdiffhomepage
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/components/label.rb13
-rw-r--r--app/components/singleton_score.rb4
-rw-r--r--app/main.rb3
-rw-r--r--app/systems/death.rb2
-rw-r--r--app/systems/render.rb3
-rw-r--r--app/systems/start_game.rb28
-rw-r--r--app/systems/ui/score.rb7
7 files changed, 58 insertions, 2 deletions
diff --git a/app/components/label.rb b/app/components/label.rb
new file mode 100644
index 0000000..25b5529
--- /dev/null
+++ b/app/components/label.rb
@@ -0,0 +1,13 @@
+FF::Cmp.new("Label", props: {
+ x: 0,
+ y: 0,
+ text: 'label',
+ size_enum: 2,
+ alignment_enum: 1,
+ r: 255,
+ g: 255,
+ b: 255,
+ a: 255,
+ font: "font.ttf",
+ vertical_alignment_enum: 0
+})
diff --git a/app/components/singleton_score.rb b/app/components/singleton_score.rb
new file mode 100644
index 0000000..4f6514b
--- /dev/null
+++ b/app/components/singleton_score.rb
@@ -0,0 +1,4 @@
+FF::Cmp.new('SingletonScore',
+ score: 0,
+ singleton: true)
+FF::Cmp::SingletonScore.new
diff --git a/app/main.rb b/app/main.rb
index 1854893..28ce373 100644
--- a/app/main.rb
+++ b/app/main.rb
@@ -29,8 +29,11 @@ require 'app/components/teams/team.rb'
require 'app/components/singleton_title.rb'
require 'app/components/singleton_ai_timer.rb'
require 'app/components/singleton_random_ai_pick.rb'
+require 'app/components/label.rb'
+require 'app/components/singleton_score.rb'
+require 'app/systems/ui/score.rb'
require 'app/systems/init_title_screen.rb'
require 'app/systems/ui/button.rb'
require 'app/systems/ui/return_to_menu.rb'
diff --git a/app/systems/death.rb b/app/systems/death.rb
index edeb493..ae02dec 100644
--- a/app/systems/death.rb
+++ b/app/systems/death.rb
@@ -5,6 +5,8 @@ FF::Scn::BoidRules.add(
hp.entities[0].components.each do |manager, manager_array|
if manager.equal?(FF::Cmp::SingletonPlayer)
FF::Sys::EndGame.call
+ elsif manager.equal?(FF::Cmp::SingletonEnemyTeam)
+ FF::Sys::Score.call
end
next if manager.equal?(FF::Cmp::Hp)
manager_array.reverse_each do |component|
diff --git a/app/systems/render.rb b/app/systems/render.rb
index 4bd117c..a067613 100644
--- a/app/systems/render.rb
+++ b/app/systems/render.rb
@@ -3,5 +3,8 @@ FF::Scn::Render.add(
FF::Cmp::Sprite.each do |sprite|
$gtk.args.outputs.sprites << sprite.props
end
+ FF::Cmp::Label.each do |label|
+ $gtk.args.outputs.labels << label.props
+ end
end
)
diff --git a/app/systems/start_game.rb b/app/systems/start_game.rb
index a936c21..e2e5501 100644
--- a/app/systems/start_game.rb
+++ b/app/systems/start_game.rb
@@ -57,14 +57,38 @@ FF::Sys.new('StartGame', priority: 50 ) do
FF::Cmp::Hitcircle.new(r: 16),
)
-
+ score_label_shadow = FF::Cmp::Label.new
+ score_label_shadow.props.merge!({
+ x: 50,
+ y: 667,
+ text: '0',
+ size_enum: 8,
+ r: 100,
+ g: 100,
+ b: 100,
+ font: 'fonts/kenvector_future_thin.ttf',
+ })
+ score_label = FF::Cmp::Label.new
+ score_label.props.merge!({
+ x: 50,
+ y: 670,
+ text: '0',
+ size_enum: 8,
+ font: 'fonts/kenvector_future_thin.ttf',
+ })
+ score = FF::Cmp::SingletonScore[0]
+ score.score = 0
+ FF::Ent.new(
+ score_label,
+ score_label_shadow,
+ score,
+ )
FF::Stg.add(
FF::Scn::BoidRules,
FF::Scn::Camera,
FF::Scn::Cleanup,
)
-
FF::Scn::Debug.add(FF::Sys::DebugRenderVectorArrow)
@pause = false
#FF::Stg.remove FF::Scn::BoidRules
diff --git a/app/systems/ui/score.rb b/app/systems/ui/score.rb
new file mode 100644
index 0000000..c761561
--- /dev/null
+++ b/app/systems/ui/score.rb
@@ -0,0 +1,7 @@
+FF::Sys.new("Score", priority: 50) do
+ score = FF::Cmp::SingletonScore[0]
+ score.score += 100
+ score.entities[0].components[FF::Cmp::Label].each do |label|
+ label.props[:text] = score.score.to_s
+ end
+end