diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2019-08-24 21:58:57 -0700 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2019-08-24 21:58:57 -0700 |
commit | 078bd1abae826efdabf789bcfb4f265e4b20463f (patch) | |
tree | e024d70a7774ac6b08c493b638bd44feffa7a27d | |
parent | fc53ac5ae29af922e7446781a0fbc799298952e4 (diff) |
Fix accidentally removed stuff
-rw-r--r-- | rooms.rb | 135 |
1 files changed, 135 insertions, 0 deletions
@@ -5,6 +5,141 @@ module Rooms end def resolve command + @command = command + if @engine.state == 'invalid' + @engine.state = 'play' + end + + if @engine.state == 'play' + _do_resolve + end + end + + def check_death + if @engine.health <= 0 + @engine.state = 'dead' + elsif @engine.endurance <= 0 + @engine.state = 'dead' + end + end + + def _do_resolve + do_resolve + check_death + if !instant_resolve + @engine.add_message resolve_message + end + end + + # TODO: limit weapon/armor levels + def do_resolve + case @command + when 'c' + else + do_invalid + end + end + + def do_invalid + @engine.state = 'invalid' + @engine.add_message "Invalid command: #{@command}" + + if !instant_resolve + enter + else + list_options + end + end + + def resolve_message + if @engine.state == 'dead' + if @engine.health <= 0 + death_message + elsif @engine.endurance <= 0 + exhaust_message + end + else + success_message + end + end + + def enter_message + '' + end + + def death_message + 'You die' + end + + def exhaust_message + 'You fall over exhausted' + end + + def success_message + '' + end + + def options + [ + 'continue', + ] + end + + def list_options + options.each do |option| + @engine.add_message ">[#{option[0]}]#{option[1..]}" + end + end + + def enter + @engine.add_message enter_message + if instant_resolve + do_instant_resolve + @engine.add_message resolve_message + end + + list_options + end + end + + class Welcome < Room + def instant_resolve + false + end + + def do_resolve + end + + def success_message + <<~MSG.chomp + A curse has infested an ancient keep near your town. + The evil magic has filled the keep with monsters. + Can you save your home from this Hex? + MSG + end + + def to_s + 'welcome' + end + end + + class Store < Room + def instant_resolve + false + end + + def enter_message + 'You have enough XP to upgrade your equipment!' + end + + def options + [ + 'weapon upgrade', + 'armor upgrade' + ] + end + + def do_resolve case @command when 'a' @engine.xp -= 50 |