class Dungeon
Public Class Methods
new()
click to toggle source
can get here from town, initialize just gives a one time (per visit) message
# File lib/places.rb, line 57 def initialize map = <<-MAP 0 1 2 3 4 5 6 7 8 9 0| | |r| | |w| |c| | | 1| | | | |w|c| | | | | 2|r| | |c| |i| | |w| | 3| | |c| | | |i| | | | 4| |w| | | | | | | | | 5|w|c|i| | | | | | | | 6| | | |i| | | |w| |r| 7|c| | | | | |w| | |i| 8| | |w| | | | | | |c| 9| | | | | | |r|i|c| | MAP @map = map.split("\n")[1..map.length].map {|line| line.split('|')[1..map.length]} @dungeon_map = DungeonMap.new @map puts # formatting rand_greet = dice(3) rand_greet = "You have entered the dungeon! DUM DUM DUM!!" if rand_greet == 1 rand_greet = "Stepping into the dungeon, you prepare for adventure." if rand_greet == 2 rand_greet = "As you enter the dungeon, you notice strange markings along the walls..." if rand_greet == 3 puts rand_greet end
Public Instance Methods
choices()
click to toggle source
# File lib/places.rb, line 82 def choices move = 0 load_data room_id = 0 # start at room 0 until move == "t" and room_id == 0 puts # formatting puts bar_top.yellow puts stat_bar(@player.name, @player.xp, @player.lvl, @player.coin, @player.cur_hp, @player.cur_mana) puts bar_low.yellow puts # formatting c = @dungeon_map.choices room_id c.add('t', 'Go back to town.') if room_id == 0 if @player.class.to_s == "Wizard" and @player.spell_buff == false c.add('f', "Conjure Wizard Familar") end move = c.prompt # apply food buff @player.cur_hp = @player.cur_hp + @player.lvl if @player.buff_food == true # prevent food buff from raising current health points above maximum @player.cur_hp = @player.hp if @player.cur_hp > @player.hp # now apply drink buff @player.cur_mana = @player.cur_mana + @player.lvl if @player.buff_drink == true # prevent drink buff from raising current mana points above maximum @player.cur_mana = @player.mana if @player.cur_mana > @player.mana new_room_id = @dungeon_map.door_to room_id, move if new_room_id != room_id room_id = new_room_id puts # formatting rand_msg = dice(3) rand_msg = "You walk further into the dark, dank, dirty, dungeon, smirking slightly at your awesome alliteration ability." if rand_msg == 1 rand_msg = "You feel a slight draft and your torch flickers briefly..." if rand_msg == 2 rand_msg = "More strange markings, they seem to mean something, but what and who wrote them?" if rand_msg == 3 puts rand_msg puts # formatting random_encounter elsif move == "t" # back to town puts # formatting puts "You make it back to town in one piece!" puts # formatting # remove food buffs from player when they leave the dungeon @player.buff_food = false @player.buff_drink = false if @player.class.to_s == "Wizard" and @player.spell_buff == true puts "Drako wishes you well and fades away, ready to help another day." puts #formatting @player.spell_buff = false end save_data return # wizard familiar elsif move == "f" and @player.class.to_s == "Wizard" and @player.spell_buff == false puts # formatting puts "#{@player.name} concentrates intently while waving the magic wand and casting the spell..." puts # formatting puts "A tiny dragon appears and curls up on your shoulder, snoring loudly." @player.spell_buff = true @player.cur_mana = @player.cur_mana - @player.lvl*2 save_data end end end