Mercurial > hg > q
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):