class Explosion
Public Class Methods
new(object_pool, x, y, source)
click to toggle source
Calls superclass method
GameObject::new
# File lib/entities/explosion.rb, line 3 def initialize(object_pool, x, y, source) super(object_pool, x, y) @source = source @object_pool = object_pool if @object_pool.map.can_move_to?(x, y) Damage.new(@object_pool, x, y) end ExplosionGraphics.new(self) ExplosionSounds.play(self, object_pool.camera) inflict_damage end
Public Instance Methods
effect?()
click to toggle source
# File lib/entities/explosion.rb, line 15 def effect? true end
mark_for_removal()
click to toggle source
Calls superclass method
GameObject#mark_for_removal
# File lib/entities/explosion.rb, line 19 def mark_for_removal super end
Private Instance Methods
inflict_damage()
click to toggle source
# File lib/entities/explosion.rb, line 25 def inflict_damage object_pool.nearby(self, 100).each do |obj| if obj.respond_to?(:health) obj.health.inflict_damage( Math.sqrt(3 * 100 - Utils.distance_between( obj.x, obj.y, @x, @y)), @source) end end end