class SemiGuidedMissile

Follows targets location only at time of launch. Will not follow target

Constants

ADVANCED_HIT_BOX_DETECTION

ADVANCED_HIT_BOX_DETECTION = true

AOE
COOLDOWN_DELAY
DAMAGE
INITIAL_DELAY
MAX_CURSOR_FOLLOW
MAX_SPEED
SPEED_INCREASE_FACTOR
STARTING_SPEED

Attributes

health[R]
mouse_start_x[R]
mouse_start_y[R]
time_alive[R]
x[R]
y[R]

Public Class Methods

new(scale, screen_width, screen_height, object, homing_object, angle_min = nil, angle_max = nil, angle_init = nil, options = {}) click to toggle source
Calls superclass method Projectile::new
# File line-em-up/models/semi_guided_missile.rb, line 22
def initialize(scale, screen_width, screen_height, object, homing_object, angle_min = nil, angle_max = nil, angle_init = nil, options = {})
  options[:relative_object] = object
  super(scale, screen_width, screen_height, object, homing_object.x, homing_object.y, angle_min, angle_max, angle_init, options)
  @health = 5
  # puts "CUSTOM DELAY: #{@custom_initial_delay}"
end

Public Instance Methods

destructable?() click to toggle source
# File line-em-up/models/semi_guided_missile.rb, line 29
def destructable?
  true
end
drops() click to toggle source
# File line-em-up/models/semi_guided_missile.rb, line 37
def drops
  [
    SmallExplosion.new(@scale, @screen_width, @screen_height, @x, @y, nil, {ttl: 2, third_scale: true}),
  ]
end
get_image() click to toggle source
# File line-em-up/models/semi_guided_missile.rb, line 17
def get_image
  # Gosu::Image.new("#{MEDIA_DIRECTORY}/mini_missile_reverse.png")
  Gosu::Image.new("#{MEDIA_DIRECTORY}/tiny_missile.png")
end
is_alive() click to toggle source
# File line-em-up/models/semi_guided_missile.rb, line 33
def is_alive
  @health > 0
end
take_damage(damage) click to toggle source
# File line-em-up/models/semi_guided_missile.rb, line 44
def take_damage damage
  @health -= damage
end
update(mouse_x = nil, mouse_y = nil, player = nil, scroll_factor = 1) click to toggle source
Calls superclass method Projectile#update
# File line-em-up/models/semi_guided_missile.rb, line 49
def update mouse_x = nil, mouse_y = nil, player = nil, scroll_factor = 1
  if is_alive
    super(mouse_x, mouse_y)
  else
    false
  end
end