* Werewolf: One bug fix and multiple bullets.
This commit is contained in:
1 parent
516d11a5f7
commit
cf6a99e170
2 files changed
+23
-9
No files matched your search
@@ -3,6 +3,7 @@ Auto IRC Bot 3.0: Change Log
|
|||||||
|
|
||||||
3.0 Indev
|
3.0 Indev
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
* Werewolf: One bug fix and multiple bullets.
|
||||||
* Werewolf: Fixed timeout bug.
|
* Werewolf: Fixed timeout bug.
|
||||||
* Werewolf: Fixed various warnings.
|
* Werewolf: Fixed various warnings.
|
||||||
* Werewolf: Handful of bugs fixed, timeouts rewritten, wolf assignment
|
* Werewolf: Handful of bugs fixed, timeouts rewritten, wolf assignment
|
||||||
|
|||||||
+22
-9
@@ -7,7 +7,7 @@ use warnings;
|
|||||||
use feature qw(switch);
|
use feature qw(switch);
|
||||||
use API::Std qw(cmd_add cmd_del trans hook_add hook_del timer_add timer_del trans conf_get has_priv match_user);
|
use API::Std qw(cmd_add cmd_del trans hook_add hook_del timer_add timer_del trans conf_get has_priv match_user);
|
||||||
use API::IRC qw(privmsg notice cmode);
|
use API::IRC qw(privmsg notice cmode);
|
||||||
my ($GAME, $PGAME, $GAMECHAN, $GAMETIME, %PLAYERS, %NICKS, @STATIC, $PHASE, $SEEN, $VISIT, $GUARD, %KILL, %WKILL, %LYNCH, %SPOKE, %WARN, $LVOTEN, $SHOT, $DETECTED);
|
my ($GAME, $PGAME, $GAMECHAN, $GAMETIME, %PLAYERS, %NICKS, @STATIC, $PHASE, $SEEN, $VISIT, $GUARD, %KILL, %WKILL, %LYNCH, %SPOKE, %WARN, $LVOTEN, $SHOT, $BULLETS, $DETECTED);
|
||||||
my $FCHAR = (conf_get('fantasy_pf'))[0][0];
|
my $FCHAR = (conf_get('fantasy_pf'))[0][0];
|
||||||
|
|
||||||
# Initialization subroutine.
|
# Initialization subroutine.
|
||||||
@@ -267,6 +267,9 @@ sub cmd_wolf {
|
|||||||
my $rpi = $plyrs[int rand scalar @plyrs];
|
my $rpi = $plyrs[int rand scalar @plyrs];
|
||||||
while ($PLAYERS{$rpi} =~ m/w/xsm || $PLAYERS{$rpi} =~ m/t/xsm) { $rpi = $plyrs[int rand scalar @plyrs] }
|
while ($PLAYERS{$rpi} =~ m/w/xsm || $PLAYERS{$rpi} =~ m/t/xsm) { $rpi = $plyrs[int rand scalar @plyrs] }
|
||||||
$PLAYERS{$rpi} .= 'b';
|
$PLAYERS{$rpi} .= 'b';
|
||||||
|
|
||||||
|
# And give them PLAYER COUNT * .12 bullets rounded up.
|
||||||
|
$BULLETS = POSIX::ceil(keys(%PLAYERS) * .12);
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set variables.
|
# Set variables.
|
||||||
@@ -473,6 +476,12 @@ sub cmd_wolf {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# They must have at least one bullet.
|
||||||
|
if (!$BULLETS) {
|
||||||
|
privmsg($src->{svr}, $src->{chan}, "$src->{nick}: You don't have any more bullets.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
# Requires an extra parameter.
|
# Requires an extra parameter.
|
||||||
if (!defined $argv[1]) {
|
if (!defined $argv[1]) {
|
||||||
notice($src->{svr}, $src->{nick}, trans('Not enough parameters').q{.});
|
notice($src->{svr}, $src->{nick}, trans('Not enough parameters').q{.});
|
||||||
@@ -531,8 +540,11 @@ sub cmd_wolf {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# Remove the gun from them.
|
|
||||||
$PLAYERS{lc $src->{nick}} =~ s/b//gxsm;
|
# Decrement bullet count.
|
||||||
|
$BULLETS--;
|
||||||
|
# Call lynch management.
|
||||||
|
_lynchmng();
|
||||||
}
|
}
|
||||||
when (/^(STATS|S)$/) {
|
when (/^(STATS|S)$/) {
|
||||||
# WOLF STATS
|
# WOLF STATS
|
||||||
@@ -1004,8 +1016,8 @@ sub _init_night {
|
|||||||
if ($data[2]) { privmsg($gsvr, $NICKS{$plyr}, $data[2]) }
|
if ($data[2]) { privmsg($gsvr, $NICKS{$plyr}, $data[2]) }
|
||||||
}
|
}
|
||||||
# Check if they have the gun.
|
# Check if they have the gun.
|
||||||
if ($role =~ m/b/xsm) {
|
if ($role =~ m/b/xsm and $BULLETS) {
|
||||||
privmsg($gsvr, $NICKS{$plyr}, 'You hold a special gun. You may only use it during the day. If you shoot a wolf, (s)he will die instantly, if you shoot a villager, they will likely live. You only get one shot, so use it wisely.');
|
privmsg($gsvr, $NICKS{$plyr}, 'You hold a special gun. You may only use it during the day. If you shoot a wolf, (s)he will die instantly, if you shoot a villager, they will likely live. You get '.$BULLETS.' shot(s).');
|
||||||
privmsg($gsvr, $NICKS{$plyr}, 'To shoot someone, type "'.$FCHAR.$COMMANDS{shoot}.'" in the channel during the day.');
|
privmsg($gsvr, $NICKS{$plyr}, 'To shoot someone, type "'.$FCHAR.$COMMANDS{shoot}.'" in the channel during the day.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1368,7 +1380,7 @@ sub _gameover {
|
|||||||
# Clear all variables.
|
# Clear all variables.
|
||||||
if ($PHASE) { if ($PHASE eq 'n') { timer_del('werewolf.goto_daytime') } }
|
if ($PHASE) { if ($PHASE eq 'n') { timer_del('werewolf.goto_daytime') } }
|
||||||
timer_del('werewolf.chkbed');
|
timer_del('werewolf.chkbed');
|
||||||
$GAME = $PGAME = $GAMECHAN = $GAMETIME = $PHASE = $SEEN = $VISIT = $GUARD = $LVOTEN = $SHOT = $DETECTED = 0;
|
$GAME = $PGAME = $GAMECHAN = $GAMETIME = $PHASE = $SEEN = $VISIT = $GUARD = $LVOTEN = $SHOT = $BULLETS = $DETECTED = 0;
|
||||||
%PLAYERS = ();
|
%PLAYERS = ();
|
||||||
%NICKS = ();
|
%NICKS = ();
|
||||||
%KILL = ();
|
%KILL = ();
|
||||||
@@ -1551,7 +1563,7 @@ sub on_rehash {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Start initialization.
|
# Start initialization.
|
||||||
API::Std::mod_init('Werewolf', 'Xelhua', '1.02', '3.0.0a10');
|
API::Std::mod_init('Werewolf', 'Xelhua', '1.03', '3.0.0a10');
|
||||||
# build: perl=5.010000
|
# build: perl=5.010000
|
||||||
|
|
||||||
__END__
|
__END__
|
||||||
@@ -1562,7 +1574,7 @@ Werewolf - IRC version of the Werewolf detective/social party game
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
1.02
|
1.03
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
@@ -1784,7 +1796,8 @@ off UP, not normal mathematical rounding.
|
|||||||
=item Villager (gun holder)
|
=item Villager (gun holder)
|
||||||
|
|
||||||
If a game has 6+ players, one villager (can also be seer/harlot/etc., but not
|
If a game has 6+ players, one villager (can also be seer/harlot/etc., but not
|
||||||
wolves or traitors.), will be given a gun with a single special silver bullet.
|
wolves or traitors.), will be given a gun with a certain amount special silver
|
||||||
|
bullets. To be exact, <PLAYER COUNT> * .12 rounded off UP.
|
||||||
|
|
||||||
During the day, (s)he can use "!wolf shoot <nick>" to shoot someone with that
|
During the day, (s)he can use "!wolf shoot <nick>" to shoot someone with that
|
||||||
gun, and the effect varies widely. Lets go over those.
|
gun, and the effect varies widely. Lets go over those.
|
||||||
|
|||||||
Reference in new issue
Block a user