]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - data/rbot/plugins/games/wheelfortune.rb
remove whitespace
[user/henk/code/ruby/rbot.git] / data / rbot / plugins / games / wheelfortune.rb
index e0b0930d93528d3d0e6f0295b17307351b267e92..7e81895378f288dc78703030e86cd6bed9a20031 100644 (file)
 class WoFQA
   attr_accessor :cat, :clue, :hint
   attr_reader :answer
+  attr_accessor :guessed
   def initialize(cat, clue, ans=nil)
     @cat = cat # category
     @clue = clue # clue phrase
     self.answer = ans
+    @guessed = false
+  end
+
+  def guessed?
+    @guessed
   end
 
   def catclue
@@ -149,6 +155,10 @@ class WoFGame
     end
   end
 
+  def mark_guessed(qa)
+    qa.guessed = true
+  end
+
   def mark_winner(user)
     @running = false
     k = user.botuser
@@ -331,7 +341,7 @@ class WheelOfFortune < Plugin
         :name => game.name,
         :count => game.length
       }
-      announce(m, p.merge({ :next => true }) ) unless game.running?
+      announce(m, p) unless game.running?
     else
       m.reply _("something went wrong, I can't seem to understand what you're trying to set up") if clue.empty?
     end
@@ -374,6 +384,7 @@ class WheelOfFortune < Plugin
           :chan => p[:chan]
         }
       end
+      return
     end
 
     cat = p[:cat].to_s
@@ -416,7 +427,10 @@ class WheelOfFortune < Plugin
       return
     end
     game = @games[ch]
-    qa = p[:next] ? game.next : game.current
+    qa = game.current
+    if !qa or qa.guessed?
+      qa = game.next
+    end
     if !qa
       m.reply _("there are no %{name} questions for %{chan}, I'm waiting for %{who} to add them") % {
         :name => game.name,
@@ -462,9 +476,7 @@ class WheelOfFortune < Plugin
       # m.reply "STUPID! YOU SO STUPID!"
       return
     when *game.must_buy
-      m.nickreply _("You must buy the %{vowel}") % {
-        :vowel => check
-      }
+      m.reply _("You must buy the %{vowel}") % {:vowel => check}, :nick => true
     when :wrong
       return
     when Numeric, :missing
@@ -472,6 +484,7 @@ class WheelOfFortune < Plugin
       # TODO what happens when the last hint reveals the whole answer?
       announce(m)
     when :gotit
+      game.mark_guessed(game.current)
       want_more = game.mark_winner(m.source)
       m.reply _("%{who} got it! The answer was: %{ans}") % {
         :who => m.sourcenick,
@@ -498,7 +511,7 @@ class WheelOfFortune < Plugin
           :nocolor => Irc.color()
         }
         score_table(m.channel, game)
-        announce(m, :next => true)
+        announce(m)
       end
     else
       # can this happen?
@@ -511,6 +524,7 @@ class WheelOfFortune < Plugin
     ch = m.channel.irc_downcase(m.server.casemap).intern
     return unless game = @games[ch]
     return unless game.running?
+    return unless game.current and not game.current.guessed?
     check = game.check(m.message, :buy => false)
     react_on_check(m, ch, game, check)
   end