Class: Termfront::Game

Inherits:
Object
  • Object
show all
Defined in:
lib/termfront/game.rb

Instance Method Summary collapse

Constructor Details

#initializeGame

Returns a new instance of Game.



5
6
7
8
9
10
11
12
13
# File 'lib/termfront/game.rb', line 5

def initialize
  @stdout = STDOUT
  @audio = AudioManager.new
  @renderer = Renderer.new(@stdout)
  @input = Input.new
  @scene_player = ScenePlayer.new(@stdout, audio: @audio)
  @demo_player = DemoPlayer.new(@stdout, @renderer)
  @difficulty = nil
end

Instance Method Details

#startObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/termfront/game.rb', line 15

def start
  enter_alt_screen
  loop do
    reset_title_screen_state
    @input.clear
    title = TitleScreen.new(@stdout)
    @audio.play_bgm(:title)
    choice = title.show
    @audio.stop_bgm
    case choice
    when :singleplayer then run_singleplayer
    when :wavesfight   then run_wavesfight
    when :campaign     then run_campaign
    when :pvp          then Network::Client.new(@stdout).run
    when :quit         then break
    end
  end
rescue Interrupt
  # normal exit
rescue StandardError => e
  @crash = e
ensure
  @audio.close
  leave_alt_screen
  if @crash
    warn "#{@crash.class}: #{@crash.message}"
    @crash.backtrace.first(10).each { |l| warn "  #{l}" }
  end
end