summaryrefslogtreecommitdiffhomepage
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/factories/ships/sample_enemy.rb2
-rw-r--r--app/systems/ai/scatter.rb4
-rw-r--r--app/systems/ai/target_player.rb2
-rw-r--r--app/systems/collision_damage.rb47
-rw-r--r--app/systems/start_game.rb2
5 files changed, 28 insertions, 29 deletions
diff --git a/app/factories/ships/sample_enemy.rb b/app/factories/ships/sample_enemy.rb
index 9355c2f..6ebaef3 100644
--- a/app/factories/ships/sample_enemy.rb
+++ b/app/factories/ships/sample_enemy.rb
@@ -4,7 +4,7 @@ class Factory
@defaults ||= {
boid_bounds_strength: 0.6,
boids_alignment_strength: 0.002,
- boids_seperation_strength: 0.001,
+ boids_seperation_strength: 0.0005,
boids_seperation_distance: 150,
boids_cohesion_strength: 0.0005,
hp_health: 100,
diff --git a/app/systems/ai/scatter.rb b/app/systems/ai/scatter.rb
index 034fa28..1b51061 100644
--- a/app/systems/ai/scatter.rb
+++ b/app/systems/ai/scatter.rb
@@ -1,10 +1,6 @@
FF::Sys.new("Scatter", priority: 40) do
FF::Cmp::SingletonRandomAIPick[0].entities.each do |entity|
sep = entity.components[FF::Cmp::BoidsSeparation][0]
- # I did times 3 becase then it will always be greater then
- # what it was before and that means it will force a
- # seperation to happen even if the default value is
- # changed and you forget to update this number here
sep.distance = Factory::SampleEnemy.defaults[:boids_seperation_distance] * 10
sep.strength = Factory::SampleEnemy.defaults[:boids_seperation_strength]
#puts 'remove align/cohesion/follow'.upcase
diff --git a/app/systems/ai/target_player.rb b/app/systems/ai/target_player.rb
index 5e5ac18..bf8b9e8 100644
--- a/app/systems/ai/target_player.rb
+++ b/app/systems/ai/target_player.rb
@@ -6,7 +6,7 @@ FF::Sys.new("TargetPlayer", priority: 40) do
follow_mgr = entity.components[FF::Cmp::Follow]
player_boid = FF::Cmp::SingletonPlayer[0].entities[0].components[FF::Cmp::Boid][0]
if follow_mgr.nil? || follow_mgr.empty?
- entity.add FF::Cmp::Follow.new(target: player_boid, strength: 0.5)
+ entity.add FF::Cmp::Follow.new(target: player_boid, strength: 0.6)
end
end
end
diff --git a/app/systems/collision_damage.rb b/app/systems/collision_damage.rb
index df2e050..676589d 100644
--- a/app/systems/collision_damage.rb
+++ b/app/systems/collision_damage.rb
@@ -1,30 +1,33 @@
FF::Scn::BoidRules.add(
- FF::Sys.new("CollisionDamage", priority: 65) do
+ FF::Sys.new("CollisionDamage", priority: 98) do
FF::Cmp::SingletonEnemyTeam[0].entities.each do |enemy_entity|
- hitcircle_self = enemy_entity.components[FF::Cmp::Hitcircle][0]
- boid_self = hitcircle_self.entities[0].components[FF::Cmp::Boid][0]
- FF::Cmp::SingletonBullet[0].entities.each do |bullet_entity|
- hitcircle_target = bullet_entity.components[FF::Cmp::Hitcircle][0]
- 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)
- #puts 'checks here'.upcase
- #puts 'hp dont exist' if hitcircle_target.entities[0].components[FF::Cmp::Hp].nil?
- #puts 'collision damage dont exist' if hitcircle_target.entities[0].components[FF::Cmp::CollisionDamage].nil?
- #puts 'checks end'.upcase
- hitcircle_target.entities[0].components[FF::Cmp::Hp][0].health -= hitcircle_self.entities[0].components[FF::Cmp::CollisionDamage][0].damage
- hitcircle_self.entities[0].components[FF::Cmp::Hp][0].health -= hitcircle_target.entities[0].components[FF::Cmp::CollisionDamage][0].damage
- end
+ sprite = enemy_entity.components[FF::Cmp::Sprite][0].props
+ if (sprite[:x] < 1312) && (sprite[:x] > -32) && (sprite[:y] < 752) && (sprite[:y] > -32)
+ hitcircle_self = enemy_entity.components[FF::Cmp::Hitcircle][0]
+ boid_self = hitcircle_self.entities[0].components[FF::Cmp::Boid][0]
+ FF::Cmp::SingletonBullet[0].entities.each do |bullet_entity|
+ hitcircle_target = bullet_entity.components[FF::Cmp::Hitcircle][0]
+ 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)
+ #puts 'checks here'.upcase
+ #puts 'hp dont exist' if hitcircle_target.entities[0].components[FF::Cmp::Hp].nil?
+ #puts 'collision damage dont exist' if hitcircle_target.entities[0].components[FF::Cmp::CollisionDamage].nil?
+ #puts 'checks end'.upcase
+ hitcircle_target.entities[0].components[FF::Cmp::Hp][0].health -= hitcircle_self.entities[0].components[FF::Cmp::CollisionDamage][0].damage
+ hitcircle_self.entities[0].components[FF::Cmp::Hp][0].health -= hitcircle_target.entities[0].components[FF::Cmp::CollisionDamage][0].damage
+ end
- end
+ end
- player = FF::Cmp::SingletonPlayer[0].entities[0]
- unless player.nil?
- hitcircle_target = player.components[FF::Cmp::Hitcircle][0]
- 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
- hitcircle_self.entities[0].components[FF::Cmp::Hp][0].health -= hitcircle_target.entities[0].components[FF::Cmp::CollisionDamage][0].damage
+ player = FF::Cmp::SingletonPlayer[0].entities[0]
+ unless player.nil?
+ hitcircle_target = player.components[FF::Cmp::Hitcircle][0]
+ 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
+ hitcircle_self.entities[0].components[FF::Cmp::Hp][0].health -= hitcircle_target.entities[0].components[FF::Cmp::CollisionDamage][0].damage
+ end
end
end
end
diff --git a/app/systems/start_game.rb b/app/systems/start_game.rb
index 9efbf14..a936c21 100644
--- a/app/systems/start_game.rb
+++ b/app/systems/start_game.rb
@@ -28,7 +28,7 @@ FF::Sys.new('StartGame', priority: 50 ) do
FF::Cmp::Boid.new(h: 1920 * 2, w: 1920 * 2)
)
posneg = [1,-1]
- 20.times do |pos|
+ 16.times do |pos|
Factory::SampleEnemy.new(x: position_range.sample * posneg.sample, y: position_range.sample * posneg.sample)
end