1
|
|
|
from event import Event |
2
|
|
|
import random |
3
|
|
|
|
4
|
|
|
class Bonk: |
5
|
|
|
def __init__(self, events=None, printer_handle=None, bot=None, say=None): |
6
|
|
|
self.events = events |
7
|
|
|
self.printer = printer_handle |
8
|
|
|
self.interests = ['__.bonk__'] |
9
|
|
|
self.bot = bot |
10
|
|
|
self.say = say |
11
|
|
|
|
12
|
|
|
bonk = Event("__.bonk__") |
13
|
|
|
bonk.define(msg_definition="^\.bonk ") |
14
|
|
|
bonk.subscribe(self) |
15
|
|
|
self.bot.register_event(bonk, self) |
16
|
|
|
|
17
|
|
|
self.help = ".bonk <bonkee>" |
18
|
|
|
|
19
|
|
|
def get_bonked(self, bonkee=''): |
20
|
|
|
"""Randomly selects and returns a string with a bonk action directed toward a given bonkee.""" |
21
|
|
|
bonk_actions = ['drops a Titan on %s', |
22
|
|
|
'hadoukens %s', |
23
|
|
|
'slaps %s around with a large trout', |
24
|
|
|
'slaps %s around wiiIIITTTTHHH.....A HERRING!', |
25
|
|
|
'bitch slaps %s', |
26
|
|
|
'feeds %s a knuckle sandwich', |
27
|
|
|
'sucker punches %s', |
28
|
|
|
'drops an ACME anvil on %s', |
29
|
|
|
'forces %s to exit the building through the window', |
30
|
|
|
'forces %s to watch all the TSD Productions', |
31
|
|
|
'roundhouse kicks %s', |
32
|
|
|
'bonks %s', |
33
|
|
|
'gently caresses %s', |
34
|
|
|
'falcon punches %s', |
35
|
|
|
'pulls a Mike Tyson on %s\'s ear', |
36
|
|
|
'charges up his lazer and fries %s', |
37
|
|
|
'introduces %s to his fist', |
38
|
|
|
'boinks %s', |
39
|
|
|
'immolates %s', |
40
|
|
|
'throws %s into the fires of Mount Doom', |
41
|
|
|
'ties %s to the railroad tracks, curls his mustache, and grins evilly', |
42
|
|
|
'shoryukens %s', |
43
|
|
|
'goes medieval on %s', |
44
|
|
|
'spoils the endings to popular fiction for %s', |
45
|
|
|
'beats %s in Halo 1v1', |
46
|
|
|
'ruins %s', |
47
|
|
|
'reks %s', |
48
|
|
|
'tramples %s under foot', |
49
|
|
|
'unleashes his wrath upon %s', |
50
|
|
|
'goes all ninja assassin on %s', |
51
|
|
|
'beats %s down with the flag and teabags the body', |
52
|
|
|
'takes %s\'s mother out for a nice dinner and then never calls her back', |
53
|
|
|
'rockets %s from across the map', |
54
|
|
|
'telefrags %s', |
55
|
|
|
'throws a Dorito into %s\'s jugular from the shadows', |
56
|
|
|
'wub-wubs %s' |
57
|
|
|
] |
58
|
|
|
bonk_action = random.choice(bonk_actions) % bonkee |
59
|
|
|
return "\001ACTION " + bonk_action |
60
|
|
|
|
61
|
|
|
def handle(self, event): |
62
|
|
|
_z = event.msg.split(None, 1) |
63
|
|
|
if len(_z) == 1: |
64
|
|
|
self.printer("PRIVMSG " + event.channel + " :You must specify who you want me to bonk!\n") |
65
|
|
|
return |
66
|
|
|
else: |
67
|
|
|
self.printer("PRIVMSG " + event.channel + " :" + self.get_bonked(_z[1]) + "\001\n") |
68
|
|
|
|
69
|
|
|
|