diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/factories/ships/sample_enemy.rb | 2 | ||||
| -rw-r--r-- | app/systems/ai/scatter.rb | 4 | ||||
| -rw-r--r-- | app/systems/ai/target_player.rb | 2 | ||||
| -rw-r--r-- | app/systems/collision_damage.rb | 47 | ||||
| -rw-r--r-- | app/systems/start_game.rb | 2 |
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 |
