+ def spawn(self, channel, timestamp, delay=0):
+ if channel in self.play_channels:
+ if delay>0:
+ self.serv.execute_delayed(delay, self.spawn, (channel, timestamp))
+ self.status[channel] = [1, timestamp]
+ else:
+ # on teste le timestamp pour pas s'emmêler dans les spawn
+ infos = self.status.get(channel, [0,0])
+ if infos == [1, timestamp]:
+ spawn_sentence = random.choice(config.canards) + random.choice(config.spawn_sentences)
+ self.serv.privmsg(channel, spawn_sentence.encode("utf8"))
+ self.status[channel] = [2, timestamp]
+ times_up_delay = random.randrange(*config.times_up_delays)
+ self.serv.execute_delayed(times_up_delay, self.too_slow, (channel, timestamp))
+
+ def too_slow(self, channel, timestamp):
+ infos = self.status.get(channel, [0,0])
+ if infos == [2, timestamp]:
+ self.serv.privmsg(channel, random.choice(config.times_up_sentences).encode("utf8"))
+ respawn_delay = random.randrange(*config.spawn_delays)
+ self.spawn(channel, time.time(), respawn_delay)
+
+ def shot(self, channel, auteur):
+ if self.status.get(channel, [0, 0])[0] == 2:
+ succeed = random.randrange(0,101) > config.proba_miss
+ if succeed:
+ self.serv.privmsg(channel, random.choice(config.killed_templates).format(auteur).encode("utf8"))
+ self.add_score(auteur, 1)
+ if random.randrange(0, 101) < config.proba_killed_sentence:
+ self.serv.privmsg(channel, random.choice(config.killed_sentences).encode("utf8"))
+ respawn_delay = random.randrange(*config.spawn_delays)
+ self.spawn(channel, time.time(), respawn_delay)
+ else:
+ self.serv.privmsg(channel, random.choice(config.miss_templates).format(auteur).encode("utf8"))
+ if random.randrange(0,101) < config.proba_miss_sentence:
+ self.serv.privmsg(channel, random.choice(config.miss_sentences).encode("utf8"))
+