summaryrefslogtreecommitdiffhomepage
path: root/app/systems/ai/scatter.rb
blob: 82bcb6553659ebc46c56873b3a7638c0bba3f47a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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] * 3
    #puts 'remove align/cohesion/follow'.upcase
    alignment_mgr = entity.components[FF::Cmp::BoidsAlignment]
    cohesion_mgr = entity.components[FF::Cmp::BoidsCohesion]
    follow_mgr = entity.components[FF::Cmp::Follow]
    unless follow_mgr.nil? || follow_mgr.empty?
      follow_mgr[0].delete
    end
    unless alignment_mgr.nil? || alignment_mgr.empty?
      alignment_mgr[0].delete
    end
    unless cohesion_mgr.nil? || cohesion_mgr.empty?
      cohesion_mgr[0].delete
    end
  end
end