comparison teh-lol.pl @ 18:acd4783e6bd1

Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
author Jordi Gutiérrez Hermoso <jordigh@gmail.com>
date Sun, 30 Jan 2011 16:55:09 -0600
parents 8a1f549776fa
children a7406b7600ab
comparison
equal deleted inserted replaced
17:8a1f549776fa 18:acd4783e6bd1
92 my %prev_loller; 92 my %prev_loller;
93 93
94 sub check_combo { 94 sub check_combo {
95 my $chan = Xchat::get_info("channel"); 95 my $chan = Xchat::get_info("channel");
96 my $msg = $_[0][1]; 96 my $msg = $_[0][1];
97 my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l/i; 97 my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l\b/i;
98 if(not $islol) { 98 if(not $islol) {
99 my $combo = $combo_count{$chan}; 99 my $combo = $combo_count{$chan};
100 100
101 # We have a combo to report! 101 # We have a combo to report!
102 if($combo > 2) { 102 if($combo > 2) {
103 my $qualifier; 103 my $qualifier;
104 if($combo == 3) { 104 if($combo == 3) {
105 $qualifier = "Good"; 105 $qualifier = "Good";
106 } 106 }
107 elsif ($combo > 3 and $combo < 5) { 107 elsif ($combo > 3 and $combo <= 5) {
108 $qualifier = "Great"; 108 $qualifier = "Great";
109 } 109 }
110 else{ 110 elsif ($combo > 5 and $combo <= 10) {
111 $qualifier = "Marvelous"; 111 $qualifier = "Marvelous";
112 }
113 else {
114 $qualifer = "M-M-M-MONSTER COMBO!";
112 } 115 }
113 my $report = "$combo-lol combo! $qualifier!"; 116 my $report = "$combo-lol combo! $qualifier!";
114 117
115 my $delay = (rand(3) + 1)*1e3; 118 my $delay = (rand(3) + 1)*1e3;
116 Xchat::hook_timer($delay, 119 Xchat::hook_timer($delay,
124 $combo_count{$chan} = 0; 127 $combo_count{$chan} = 0;
125 $prev_loller{$chan} = ""; 128 $prev_loller{$chan} = "";
126 } 129 }
127 else { 130 else {
128 my $loller = $_[0][0]; 131 my $loller = $_[0][0];
129 if( not $loller eq $prev_loller{$chan}) { 132
133 #A loller trying to cheat ruins the combo for everyone
134 if( $loller eq $prev_loller{$chan}) {
135 $combo_count{$chan} = 0;
136 }
137 else {
130 $combo_count{$chan}++; 138 $combo_count{$chan}++;
131 $prev_loller{$chan} = $loller;
132 } 139 }
140
141 $prev_loller{$chan} = $loller;
133 } 142 }
134 143
135 return Xchat::EAT_NONE; 144 return Xchat::EAT_NONE;
136 } 145 }
137 146