summaryrefslogtreecommitdiffhomepage
path: root/app/systems/collision_damage.rb
blob: cc052bd23e0a6c485f7c75cfd6071ee3611be968 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
        end
      end
    end
  end
)