summaryrefslogtreecommitdiffhomepage
path: root/app/systems/collision_damage.rb
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2021-12-19 19:06:50 -0500
committerrealtradam <[email protected]>2021-12-19 19:06:50 -0500
commit844d8c194b48055ba60be4d185ad9ab688cce92a (patch)
tree8058c12295b9a6e03a678be2b50b9b328291c0e0 /app/systems/collision_damage.rb
parentbd645871ff96a45c23c05f6fc7a82ac1e2749616 (diff)
downloadSteelWings-844d8c194b48055ba60be4d185ad9ab688cce92a.tar.gz
SteelWings-844d8c194b48055ba60be4d185ad9ab688cce92a.zip
Bullets, Health, Collision systems implemented. Renamed plane sprites.
Diffstat (limited to 'app/systems/collision_damage.rb')
-rw-r--r--app/systems/collision_damage.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/app/systems/collision_damage.rb b/app/systems/collision_damage.rb
new file mode 100644
index 0000000..9e47c0c
--- /dev/null
+++ b/app/systems/collision_damage.rb
@@ -0,0 +1,14 @@
+FF::Scn::BoidRules.add(
+ FF::Sys.new("CollisionDamage", priority: 65) do
+ FF::Cmp::Hitcircle.each do |hitcircle_self|
+ boid_self = hitcircle_self.entities[0].components[FF::Cmp::Boid][0]
+ FF::Cmp::Hitcircle.each do |hitcircle_target|
+ next if hitcircle_self == hitcircle_target
+ boid_target = hitcircle_target.entities[0].components[FF::Cmp::Boid][0]
+ if Math.sqrt(((boid_self.x - boid_target.x) ** 2) + ((boid_self.y - boid_target.y) ** 2)) < (hitcircle_target.r + hitcircle_self.r)
+ hitcircle_target.entities[0].components[FF::Cmp::Hp][0].health -= hitcircle_self.entities[0].components[FF::Cmp::CollisionDamage][0].damage
+ end
+ end
+ end
+ end
+)