summaryrefslogtreecommitdiffhomepage
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/components/rules/decay_speed.rb2
-rw-r--r--app/main.rb2
-rw-r--r--app/systems/rules/decay_speed.rb9
-rw-r--r--app/systems/start_game.rb1
4 files changed, 14 insertions, 0 deletions
diff --git a/app/components/rules/decay_speed.rb b/app/components/rules/decay_speed.rb
new file mode 100644
index 0000000..83a3938
--- /dev/null
+++ b/app/components/rules/decay_speed.rb
@@ -0,0 +1,2 @@
+FF::Cmp.new('DecaySpeed',
+ strength: 0.8)
diff --git a/app/main.rb b/app/main.rb
index 23851df..f4feee6 100644
--- a/app/main.rb
+++ b/app/main.rb
@@ -12,6 +12,7 @@ require 'app/components/rules/alignment.rb'
require 'app/components/rules/separation.rb'
require 'app/components/rules/follow.rb'
require 'app/components/rules/minimum_speed.rb'
+require 'app/components/rules/decay_speed.rb'
require 'app/components/debug/singleton_debug_vector_arrow.rb'
require 'app/components/singleton_camera.rb'
require 'app/components/stats/collision_damage.rb'
@@ -35,6 +36,7 @@ require 'app/systems/rules/alignment.rb'
require 'app/systems/rules/separation.rb'
require 'app/systems/rules/reset_change_vector.rb'
require 'app/systems/rules/follow.rb'
+require 'app/systems/rules/decay_speed.rb'
require 'app/systems/debug/debug_render_vector_arrow.rb'
require 'app/systems/camera.rb'
require 'app/systems/collision_damage.rb'
diff --git a/app/systems/rules/decay_speed.rb b/app/systems/rules/decay_speed.rb
new file mode 100644
index 0000000..490c7d0
--- /dev/null
+++ b/app/systems/rules/decay_speed.rb
@@ -0,0 +1,9 @@
+FF::Scn::BoidRules.add(
+ FF::Sys.new('DecaySpeed', priority: 50) do
+ FF::Cmp::DecaySpeed.each do |decay|
+ boid = decay.entities[0].components[FF::Cmp::Boid][0]
+ boid.vx *= decay.strength
+ boid.vy *= decay.strength
+ end
+ end
+)
diff --git a/app/systems/start_game.rb b/app/systems/start_game.rb
index ebb972d..51f26d4 100644
--- a/app/systems/start_game.rb
+++ b/app/systems/start_game.rb
@@ -45,6 +45,7 @@ FF::Sys.new('StartGame', priority: 50 ) do
FF::Cmp::Team.new(team: 'player'),
FF::Cmp::Weapon.new,
FF::Cmp::BoidMinimumSpeed.new,
+ FF::Cmp::DecaySpeed.new(strength: 0.9),
)