changeset 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
files teh-lol.pl
diffstat 1 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/teh-lol.pl
+++ b/teh-lol.pl
@@ -94,7 +94,7 @@
 sub check_combo {
   my $chan = Xchat::get_info("channel");
   my $msg = $_[0][1];
-  my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l/i;
+  my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l\b/i;
   if(not $islol) {
     my $combo = $combo_count{$chan};
 
@@ -104,12 +104,15 @@
       if($combo == 3) {
         $qualifier = "Good";
       }
-      elsif ($combo > 3 and $combo < 5) {
+      elsif ($combo > 3 and $combo <= 5) {
         $qualifier = "Great";
       }
-      else{
+      elsif ($combo > 5 and $combo <= 10) {
         $qualifier = "Marvelous";
       }
+      else {
+        $qualifer = "M-M-M-MONSTER COMBO!";
+      }
       my $report = "$combo-lol combo! $qualifier!";
 
       my $delay = (rand(3) + 1)*1e3;
@@ -126,10 +129,16 @@
   }
   else {
     my $loller = $_[0][0];
-    if( not $loller eq $prev_loller{$chan}) {
+
+    #A loller trying to cheat ruins the combo for everyone
+    if( $loller eq $prev_loller{$chan}) {
+      $combo_count{$chan} = 0;
+    }
+    else {
       $combo_count{$chan}++;
-      $prev_loller{$chan} = $loller;
     }
+
+    $prev_loller{$chan} = $loller;
   }
 
   return Xchat::EAT_NONE;