changeset 16:895bcfde1df4

Fix bugs, ensure a single person can't combo
author Jordi Gutiérrez Hermoso <jordigh@gmail.com>
date Sun, 30 Jan 2011 16:34:37 -0600
parents 0d8587643fc6
children 8a1f549776fa
files teh-lol.pl
diffstat 1 files changed, 23 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/teh-lol.pl
+++ b/teh-lol.pl
@@ -88,36 +88,51 @@
 }
 
 my $prev_msg = "";
-my %chan_combo_count;
+my %combo_count;
+my %prev_loller;
 
 sub check_combo {
   my $chan = Xchat::get_info("channel");
   my $msg = $_[0][1];
   my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l/i;
   if(not $islol) {
-    my $combo = $chan_combo_count{$chan};
+    my $combo = $combo_count{$chan};
 
     # We have a combo to report!
     if($combo > 2) {
       my $qualifier;
-      if($combo == 3){
+      if($combo == 3) {
         $qualifier = "Good";
       }
-      else if ($combo > 3 and $combo < 5) {
+      elsif ($combo > 3 and $combo < 5) {
         $qualifier = "Great";
       }
       else{
         $qualifier = "Marvelous";
       }
       my $report = "$combo-lol combo! $qualifier!";
-      Xchat::command("say $report");
-      return Xchat::REMOVE;
+
+      my $delay = (rand(3) + 1)*1e3;
+      Xchat::hook_timer($delay,
+                        sub {
+                          Xchat::command("say $report");
+                          return Xchat::REMOVE;
+                        }
+                        );
     }
-    $chan_combo_count{$chan} = 0;
+
+    $combo_count{$chan} = 0;
+    $prev_loller{$chan} = "";
   }
   else {
-    $chan_combo_count{$chan}++;
+    my $loller = $_[0][0];
+    print $loller; # debug
+    if( not $loller eq $prev_loller{$chan}) {
+      $combo_count{$chan}++;
+      $prev_loller{$chan} = $loller;
+    }
   }
+
   return Xchat::EAT_NONE;
 }