diff --git a/events.txt b/events.txt index fc62e5451e65d9c4f17242d0529c9b4de0d4082e..d9aa030de807e5a152eaa1422af60f3fca1b36a5 100644 --- a/events.txt +++ b/events.txt @@ -1,9 +1,9 @@ C was bitten by drdink C fell into a hole C bit their tongue -C set <g>self on fire +C set <p_obj>self on fire C ate a poisonous fruit -C lost <g_pos> mind +C lost <p_poss> mind C died, temporarily.. C was caught in a terrible snowstorm C EXPLODED, somewhat.. diff --git a/irpg_bot.pl b/irpg_bot.pl index a4477c8d90a056959dda8524d5dfd01593c784de..a9fe8414a64aa9e7067c91f796be9cce2adb103b 100644 --- a/irpg_bot.pl +++ b/irpg_bot.pl @@ -256,6 +256,7 @@ sts("USER $opts{botuser} 0 0 :$opts{botrlnm}"); # MAIN LOOP # #-----------------# while (1) { + # CHECK MSG -> Irc module my($readable) = IO::Select->select($sel,undef,undef,0.5); if (defined($readable)) { my $fh = $readable->[0]; @@ -280,7 +281,10 @@ while (1) { close($fh); $sel->remove($fh); + # to keep --- if ($opts{reconnect}) { + # to keep --- + # reconnect sub in Irc undef(@queue); undef($sock); debug("Socket closed; disconnected. Cleared outgoing message ". @@ -289,7 +293,9 @@ while (1) { sleep($opts{reconnect_wait}); goto CONNECT; } + # to keep --- else { debug("Socket closed; disconnected.",1); } + # to keep --- } } else { select(undef,undef,undef,1); } @@ -1166,11 +1172,20 @@ sub ts { # timestamp } sub pronoun { + my $type = {1=>'subj', + 2=>'poss', + 3=>'obj'}->{shift}; + return undef unless defined $type; my $gender = shift; - my $poss = shift; - if ($gender eq 'm') { return $poss ? 'his' : 'him'; } - if ($gender eq 'f') { return 'her'; } - if ($gender eq 'n') { return $poss ? 'their' : 'them'; } + if ($gender eq 'm') { return {'subj'=>'he', + 'poss'=>'his', + 'obj'=>'him'}->{$type};} + if ($gender eq 'f') { return {'subj'=>'she', + 'poss'=>'her', + 'obj'=>'her'}->{$type};} + return {'subj'=>'they', + 'poss'=>'their', + 'obj'=>'them'}->{$type}; } sub hog { # summon the hand of god @@ -1891,12 +1906,12 @@ sub calamity { # suffer a little one chomp($line); if ($line =~ /^C (.*)/ && rand(++$i) < 1) { $actioned = $1; } } - my $pron = pronoun($rps{$player}{gender}); - my $pron_poss = pronoun($rps{$player}{gender}, 1); - $actioned =~ s/<g>/$pron/g; - $actioned =~ s/<g_pos>/$pron_poss/g; + my $pron_obj = pronoun(3, $rps{$player}{gender}); + my $pron_poss = pronoun(2, $rps{$player}{gender}); + $actioned =~ s/<p_obj>/$pron_obj/g; + $actioned =~ s/<p_poss>/$pron_poss/g; chanmsg(clog("$player $actioned. This terrible calamity has slowed ". - $pron." ".duration($time)." from level ". + $pron_obj." ".duration($time)." from level ". ($rps{$player}{level}+1).".")); $rps{$player}{next} += $time; chanmsg("$player reaches next level in ".duration($rps{$player}{next}). @@ -1952,12 +1967,12 @@ sub godsend { # bless the unworthy chomp($line); if ($line =~ /^G (.*)/ && rand(++$i) < 1) { $actioned = $1; } } - my $pron = pronoun($rps{$player}{gender}); - my $pron_poss = pronoun($rps{$player}{gender}, 1); - $actioned =~ s/<g>/$pron/g; - $actioned =~ s/<g_pos>/$pron_poss/g; + my $pron_obj = pronoun(3, $rps{$player}{gender}); + my $pron_poss = pronoun(2, $rps{$player}{gender}); + $actioned =~ s/<p_obj>/$pron_obj/g; + $actioned =~ s/<g_poss>/$pron_poss/g; chanmsg(clog("$player $actioned! This wondrous godsend has ". - "accelerated ".$pron." ".duration($time). + "accelerated ".$pron_obj." ".duration($time). " towards level ".($rps{$player}{level}+1).".")); $rps{$player}{next} -= $time; chanmsg("$player reaches next level in ".duration($rps{$player}{next}). @@ -2191,7 +2206,7 @@ sub collision_fight { $gain = 7 if $gain < 7; $gain = int(($gain/100)*$rps{$u}{next}); chanmsg(clog("$u [$myroll/$mysum] has come upon $opp [$opproll/$oppsum". - "] and taken ".pronoun($rps{$opp}{gender})." in combat! ".duration($gain)." is ". + "] and taken ".pronoun(3, $rps{$opp}{gender})." in combat! ".duration($gain)." is ". "removed from $u\'s clock.")); $rps{$u}{next} -= $gain; chanmsg("$u reaches next level in ".duration($rps{$u}{next})."."); @@ -2304,8 +2319,11 @@ sub evilness { $rps{$me}{item}{$type} = $rps{$target}{item}{$type}; $rps{$target}{item}{$type} = $tempitem; chanmsg(clog("$me stole $target\'s level ". - int($rps{$me}{item}{$type})." $type while they were ". - "sleeping! $me leaves his old level ". + int($rps{$me}{item}{$type})." $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.")); }