From bfc60e7a496b1352d168ea8a33c9efb5f4d789f8 Mon Sep 17 00:00:00 2001
From: ElTata <eltata@firemail.cc>
Date: Wed, 8 Apr 2020 13:17:42 +0200
Subject: [PATCH] Remove warning 'isn't numeric' when comparing new legendary
 stuff

---
 Irpg/Event.pm | 79 ++++++++++++++++++++++++++++-----------------------
 1 file changed, 43 insertions(+), 36 deletions(-)

diff --git a/Irpg/Event.pm b/Irpg/Event.pm
index 8440995..bd489c5 100644
--- a/Irpg/Event.pm
+++ b/Irpg/Event.pm
@@ -36,7 +36,8 @@ sub find_item { # find item for argument player
     $level = $rps->{$u}{class}->real_lvl($level);
     if ($rps->{$u}{level} >= 25 && rand(40) < 1) {
         $ulevel = $rps->{$u}{class}->real_lvl(50+int(rand(25)));
-        if ($ulevel >= $level && $ulevel > int($rps->{$u}{item}{helm})) {
+        $rps->{$u}{item}{helm} =~ m/(\d+)\D?/;
+        if ($ulevel >= $level && $ulevel > $1) {
             Irpg::Irc::notice("The light of the gods shines down upon you! You have ".
                    "found the level $ulevel Mattt's Omniscience Grand Crown! ".
                    "Your enemies fall before you as you anticipate their ".
@@ -47,7 +48,8 @@ sub find_item { # find item for argument player
     }
     elsif ($rps->{$u}{level} >= 25 && rand(40) < 1) {
         $ulevel = $rps->{$u}{class}->real_lvl(50+int(rand(25)));
-        if ($ulevel >= $level && $ulevel > int($rps->{$u}{item}{ring})) {
+        $rps->{$u}{item}{ring} =~ m/(\d+)\D?/;
+        if ($ulevel >= $level && $ulevel > $1) {
             Irpg::Irc::notice("The light of the gods shines down upon you! You have ".
                    "found the level $ulevel Juliet's Glorious Ring of ".
                    "Sparkliness! You enemies are blinded by both its glory ".
@@ -59,7 +61,8 @@ sub find_item { # find item for argument player
     }
     elsif ($rps->{$u}{level} >= 30 && rand(40) < 1) {
         $ulevel = $rps->{$u}{class}->real_lvl(75+int(rand(25)));
-        if ($ulevel >= $level && $ulevel > int($rps->{$u}{item}{tunic})) {
+        $rps->{$u}{item}{tunic} =~ m/(\d+)\D?/;
+        if ($ulevel >= $level && $ulevel > $1) {
             Irpg::Irc::notice("The light of the gods shines down upon you! You have ".
                    "found the level $ulevel Res0's Protectorate Plate Mail! ".
                    "Your enemies cower in fear as their attacks have no ".
@@ -70,7 +73,8 @@ sub find_item { # find item for argument player
     }
     elsif ($rps->{$u}{level} >= 35 && rand(40) < 1) {
         $ulevel = $rps->{$u}{class}->real_lvl(100+int(rand(25)));
-        if ($ulevel >= $level && $ulevel > int($rps->{$u}{item}{amulet})) {
+        $rps->{$u}{item}{amulet} =~ m/(\d+)\D?/;
+        if ($ulevel >= $level && $ulevel > $1) {
             Irpg::Irc::notice("The light of the gods shines down upon you! You have ".
                    "found the level $ulevel Dwyn's Storm Magic Amulet! Your ".
                    "enemies are swept away by an elemental fury before the ".
@@ -81,7 +85,8 @@ sub find_item { # find item for argument player
     }
     elsif ($rps->{$u}{level} >= 40 && rand(40) < 1) {
         $ulevel = $rps->{$u}{class}->real_lvl(150+int(rand(25)));
-        if ($ulevel >= $level && $ulevel > int($rps->{$u}{item}{weapon})) {
+        $rps->{$u}{item}{weapon} =~ m/(\d+)\D?/;
+        if ($ulevel >= $level && $ulevel > $1) {
             Irpg::Irc::notice("The light of the gods shines down upon you! You have ".
                    "found the level $ulevel Jotun's Fury Colossal Sword! Your ".
                    "enemies' hatred is brought to a quick end as you arc your ".
@@ -92,7 +97,8 @@ sub find_item { # find item for argument player
     }
     elsif ($rps->{$u}{level} >= 45 && rand(40) < 1) {
         $ulevel = $rps->{$u}{class}->real_lvl(175+int(rand(26)));
-        if ($ulevel >= $level && $ulevel > int($rps->{$u}{item}{weapon})) {
+        $rps->{$u}{item}{weapon} =~ m/(\d+)\D?/;
+        if ($ulevel >= $level && $ulevel > $1) {
             Irpg::Irc::notice("The light of the gods shines down upon you! You have ".
                    "found the level $ulevel Drdink's Cane of Blind Rage! Your ".
                    "enemies are tossed aside as you blindly swing your arm ".
@@ -103,8 +109,8 @@ sub find_item { # find item for argument player
     }
     elsif ($rps->{$u}{level} >= 48 && rand(40) < 1) {
         $ulevel = $rps->{$u}{class}->real_lvl(250+int(rand(51)));
-        if ($ulevel >= $level && $ulevel >
-            int($rps->{$u}{item}{"pair of boots"})) {
+        $rps->{$u}{item}{"pair of boots"} =~ m/(\d+)\D?/;
+        if ($ulevel >= $level && $ulevel > $1) {
             Irpg::Irc::notice("The light of the gods shines down upon you! You have ".
                    "found the level $ulevel Mrquick's Magical Boots of ".
                    "Swiftness! Your enemies are left choking on your dust as ".
@@ -115,7 +121,8 @@ sub find_item { # find item for argument player
     }
     elsif ($rps->{$u}{level} >= 52 && rand(40) < 1) {
         $ulevel = $rps->{$u}{class}->real_lvl(300+int(rand(51)));
-        if ($ulevel >= $level && $ulevel > int($rps->{$u}{item}{weapon})) {
+        $rps->{$u}{item}{weapon} =~ m/(\d+)\D?/;
+        if ($ulevel >= $level && $ulevel > $1) {
             Irpg::Irc::notice("The light of the gods shines down upon you! You have ".
                    "found the level $ulevel Jeff's Cluehammer of Doom! Your ".
                    "enemies are left with a sudden and intense clarity of ".
@@ -124,24 +131,24 @@ sub find_item { # find item for argument player
             return;
         }
     }
-    if ($level > int($rps->{$u}{item}{$type})) {
+    my ($iteml,) = $rps->{$u}{item}{$type} =~ m/(\d+)\D?/;
+    if ($level > $iteml) {
         Irpg::Irc::notice("You found a level $level $type! Your current $type is only ".
-               "level ".int($rps->{$u}{item}{$type}).", so it seems Luck is ".
-               "with you!",$rps->{$u}{nick});
+               "level ".$iteml.", so it seems Luck is with you!", $rps->{$u}{nick});
         $rps->{$u}{item}{$type} = $level;
     }
     else {
         Irpg::Irc::notice("You found a level $level $type. Your current $type is level ".
-               int($rps->{$u}{item}{$type}).", so it seems Luck is against you. ".
-               "You toss the $type.",$rps->{$u}{nick});
+               $iteml.", so it seems Luck is against you. You toss the $type.",
+               $rps->{$u}{nick});
     }
 }
 
 
 sub hog { # summon the hand of god
-	#my @players = grep { $rps->{$_}{online} } keys(%$rps);
-	#my $player = $players[rand(@players)];
-	my $player = choose_player() || return;
+    #my @players = grep { $rps->{$_}{online} } keys(%$rps);
+    #my $player = $players[rand(@players)];
+    my $player = choose_player() || return;
     my $win = int(rand(5));
     my $time = int(((5 + int(rand(71)))/100) * $rps->{$player}{next});
     if ($win) {
@@ -167,7 +174,7 @@ sub choose_player {
     my @players = grep { $rps->{$_}{online} } keys(%$rps);
     return unless @players;
 
-	#sort players by group of same levels
+    #sort players by group of same levels
     my %levels = ();
     foreach (@players) {
         if (exists $levels{$rps->{$_}{level}}) {
@@ -177,21 +184,21 @@ sub choose_player {
             $levels{$rps->{$_}{level}} = [$_,];
         }
     }
-	@players = @levels{sort keys %levels};
+    @players = @levels{sort keys %levels};
 
     #exponential distribution on levels (lambda = 0.5)
-	my $rand_val = $#players+1;
-	$rand_val = int(-log(rand) / 0.5) while ($rand_val > $#players);
-	@players = @{$players[$rand_val]};
-	#then uniform distribution for players of the same level
-	return $players[rand(@players)];
+    my $rand_val = $#players+1;
+    $rand_val = int(-log(rand) / 0.5) while ($rand_val > $#players);
+    @players = @{$players[$rand_val]};
+    #then uniform distribution for players of the same level
+    return $players[rand(@players)];
 }
 
 sub calamity { # suffer a little one
-	#my @players = grep { $rps->{$_}{online} } keys(%$rps);
+    #my @players = grep { $rps->{$_}{online} } keys(%$rps);
     #return unless @players;
     #my $player = $players[rand(@players)];
-	my $player = choose_player() || return;
+    my $player = choose_player() || return;
     if (rand(10) < 1) {
         my @items = ("amulet","charm","weapon","tunic","set of leggings",
                      "shield");
@@ -260,10 +267,10 @@ sub calamity { # suffer a little one
 }
 
 sub godsend { # bless the unworthy
-	#my @players = grep { $rps->{$_}{online} } keys(%$rps);
-	#return unless @players;
-	#my $player = $players[rand(@players)];
-	my $player = choose_player() || return;
+    #my @players = grep { $rps->{$_}{online} } keys(%$rps);
+    #return unless @players;
+    #my $player = $players[rand(@players)];
+    my $player = choose_player() || return;
     if (rand(10) < 1) {
         my @items = ("amulet","charm","weapon","tunic","set of leggings",
                      "shield");
@@ -342,19 +349,19 @@ sub evilness {
                      "pair of gloves","set of leggings","shield",
                      "pair of boots");
         my $type = $items[rand(@items)];
-        if (int($rps->{$target}{item}{$type}) > int($rps->{$me}{item}{$type})) {
+        my ($target_lvl,) = $rps->{$target}{item}{$type} =~ m/(\d+)\D?/;
+        my ($me_lvl,) = $rps->{$me}{item}{$type} =~ m/(\d+)\D?/;
+        if ($target_lvl > $me_lvl) {
             my $tempitem = $rps->{$me}{item}{$type};
             $rps->{$me}{item}{$type} = $rps->{$target}{item}{$type};
             $rps->{$target}{item}{$type} = $tempitem;
             Irpg::Irc::chanmsg(Irpg::Utils::clog(
-                "$me stole $target\'s level ".
-                int($rps->{$me}{item}{$type})." $type while ".
+                "$me stole $target\'s level $target_lvl $type while ".
                 pronoun(1, $rps->{$target}{gender}).
                 ($rps->{$target}{gender} eq 'n' ? " were " : " was ").
                 "sleeping! $me leaves ".
-                pronoun(2, $rps->{$me}{gender})." old level ".
-                int($rps->{$target}{item}{$type})." $type behind, ".
-                "which $target then takes."));
+                pronoun(2, $rps->{$me}{gender})." old level $me_lvl ".
+                "$type behind, which $target then takes."));
         }
         else {
             Irpg::Irc::notice("You made to steal $target\'s $type, but realized it was ".
-- 
GitLab