changeset 10:1e42c7711d01 draft

Implement hunger system
author Stian Ellingsen <stian@plaimi.net>
date Mon, 15 Apr 2013 15:15:37 +0200
parents 2d4132c95e92
children a1363582450f
files q
diffstat 1 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/q
+++ b/q
@@ -59,6 +59,8 @@
         self.dbcur.execute('CREATE TABLE IF NOT EXISTS hiscore (quizzer TEXT'
                            ' unique, wins INTEGER)')
         self.db.commit()
+        self.hunger = 0
+        self.complained = False
         irc.IRCClient.connectionMade(self)
 
     def signedOn(self):
@@ -79,6 +81,7 @@
         """Overrides USERJOINED."""
         name = self.clean_nick(user)
         self.add_quizzer(name)
+        self.complained = False
 
     def userLeft(self, user, channel):
         """Overrides USERLEFT."""
@@ -142,6 +145,13 @@
 
     def ask(self):
         """Ask a question."""
+        self.hunger += 1
+        if self.hunger > 6:
+            if not self.complained:
+                self.msg(self.factory.channel,
+                         "I'm hungry. Please feed me with !botsnack.")
+                self.complained = True
+            return
         # Make sure there have been ten questions in between this question.
         while self.question in self.recently_asked or not self.question:
             cqa = choice(q.questions)
@@ -208,6 +218,7 @@
                 (self.answer, awardee))
         if self.quizzers[awardee] == self.target_score:
             self.win(awardee)
+        self.hunger = max(0, self.hunger - 1)
         self.answered = time()
 
     def win(self, winner):
@@ -259,6 +270,8 @@
 
     def feed(self):
         """Feed quizbot."""
+        self.hunger = 0
+        self.complained = False
         self.msg(self.factory.channel, 'ta. :-)')
 
     def op(self, user):