local frame = {
  InitCommand = function(self)
    self:visible(false)
    return self:sleep(1000)
  end
}
local orbOffset = 200
local orbflakeCmd = {
  OnCommand = function(self)
    return self:queuecommand('Fall')
  end,
  FallCommand = function(self)
    self:x(math.random(SCREEN_LEFT, SCREEN_RIGHT + orbOffset))
    self:y(SCREEN_BOTTOM + 35)
    self:sleep(math.random() * 6)
    if GAMESTATE:GetSongBeat() < 111 then
      self:linear(6)
    end
    if GAMESTATE:GetSongBeat() >= 111 then
      self:linear(2)
    end
    self:x(self:GetX() - math.random(-25, 25))
    self:y(-35)
    self:addrotationz(-720)
    if GAMESTATE:GetSongBeat() < 177 then
      return self:queuecommand('Fall')
    end
  end
}
local snowflake = LoadActor('violetOrb') .. orbflakeCmd
for i = 1, 100 do
  table.insert(frame, snowflake)
end
return Def.ActorFrame(frame)
