diff options
| author | Arnold <[email protected]> | 2021-12-26 23:09:29 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-12-26 23:09:29 -0500 |
| commit | 0a611afcb8474afe01a451b20fa5608be334053b (patch) | |
| tree | 6af89bbdab20d6f9ded6c711aefd450ca12e7350 /app/systems/collision_damage.rb | |
| parent | b7dea8016b5b1328808e28b76cc12343907de63e (diff) | |
| parent | 20da68139878d9286cb642c9bcb5e20c28077ba7 (diff) | |
| download | SteelWings-0a611afcb8474afe01a451b20fa5608be334053b.tar.gz SteelWings-0a611afcb8474afe01a451b20fa5608be334053b.zip | |
Merge pull request #12 from realtradam/development
version 1.0
Diffstat (limited to 'app/systems/collision_damage.rb')
| -rw-r--r-- | app/systems/collision_damage.rb | 63 |
1 files changed, 49 insertions, 14 deletions
diff --git a/app/systems/collision_damage.rb b/app/systems/collision_damage.rb index cc052bd..676589d 100644 --- a/app/systems/collision_damage.rb +++ b/app/systems/collision_damage.rb @@ -1,20 +1,55 @@ 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 - next if hitcircle_self.entities[0].components[FF::Cmp::Team][0].team == hitcircle_target.entities[0].components[FF::Cmp::Team][0].team - #puts 'passed first check' - 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 + FF::Sys.new("CollisionDamage", priority: 98) do + + FF::Cmp::SingletonEnemyTeam[0].entities.each do |enemy_entity| + 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 + + 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 end ) +=begin +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 + next if hitcircle_self.entities[0].components[FF::Cmp::Team][0].team == hitcircle_target.entities[0].components[FF::Cmp::Team][0].team + #puts 'passed first check' + 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 + end + end +end +end +) +=end |
