Commit Graph

206 Commits

Author SHA1 Message Date
jacob1
c964b556de update aleatoire roleset with description + likelihood 2014-11-28 16:29:37 -05:00
jacob1
857a9be355 balance adjustments to mad roleset 2014-11-28 16:25:42 -05:00
jacob1
185e750a0f fix !fgame roles to set MAX_PLAYERS to 35 (maybe useful for testing / huge games) 2014-11-28 16:25:42 -05:00
jacob1
a33e8cecd8 give the new rolesets real names 2014-11-28 16:25:42 -05:00
jacob1
d31a75c43f log stats for templates and "lover" 2014-11-28 16:24:55 -05:00
jacob1
059fe556ec gamestats are stored per roleset 2014-11-28 16:24:55 -05:00
jacob1
0708ace615 new test/unbalanced rolesets: drunkfire, lycan, something, potato 2014-11-28 16:24:55 -05:00
jacob1
d174fc4d89 rolesets are randomly picked with varying frequencies / add a !game command to make certain rolesets more likely
Not done, even if this is final it still needs more good rolesets to choose from
2014-11-28 16:23:56 -05:00
kernelpanic3
90dbbbe23e Fix comments 2014-11-28 01:55:58 -05:00
kernelpanic3
643dab58d0 More sensible and elegant name 2014-11-28 01:54:26 -05:00
skizzerz
21904cd33a Disable evilvillage since it's broken, and add a new roleset designed by Metacity 2014-11-28 00:47:48 -06:00
skizzerz
9ecd1075be 2 wolves instead of just 1, also make sure that hidden amnesiac is off (is by default, but just in case it gets changed) 2014-11-05 22:48:03 -06:00
skizzerz
7ad7580817 Add amnesia gamemode 2014-11-05 21:45:15 -06:00
jacob1
9f979439ea minor !fdeny change
to please the woffle god
2014-11-03 20:13:28 -05:00
jacob1
85675dedc6 remove ALLOW / DENY from botconfig 2014-11-03 13:44:39 -05:00
jacob1
c514296a80 save !fdeny / !fallow in database, also allow commands to be added / removed individually 2014-11-03 13:37:24 -05:00
Janik Kleinhoff
e16ed28787 settings/wolfgame.py: raise WAIT_AFTER_JOIN to 25 2014-11-02 04:15:21 +01:00
Ryan Schmidt
8a64f73715 Fix error in list_players
If a list of roles is passed to list_players, the function breaks if there aren't any alive players with that role and emits a stacktrace. Unsure of what this actually affects, but I saw it in the console a bunch of times.
2014-10-31 22:57:43 -05:00
Janik Kleinhoff
b2e0a6b1a3 Add quieting code again, but disabled by default
This reverts commit 5e4bb1ed5d and puts
the relevant quiet-related code in a conditional instead, depending on a
newly-added var.QUIET_DEAD_PLAYERS setting.
2014-09-18 16:12:17 +02:00
skizzerz
3620b05a96 Make mad scientist skip over dead players once the game size gets to 16p, number chosen arbitrarily. 2014-09-15 22:08:32 -05:00
Janik Kleinhoff
b8c2f6d841 Warn idlers a second time in PM 2014-09-12 14:59:03 +02:00
skizzerz
3a6280ad8c Add settings to disable abstain and also limit it
By default, abstain is enabled and limited to being used once per
game. Both of these can be changed in settings.py.
2014-09-08 22:38:57 -05:00
Janik Kleinhoff
41b8740eb1 Make stasis persist through restarts by saving it in the DB
Fixes lykoss/lykos#28.
2014-09-04 01:45:54 +02:00
Janik Kleinhoff
ff8912e8a3 Revert "Avoid having the village 'mourn' a wolfteam or monster death."
As it turns out, this has further implications that ought to be resolved
before making this part of the bot.
2014-08-29 20:49:39 +02:00
Janik Kleinhoff
dff9ec1e52 Avoid having the village 'mourn' a wolfteam or monster death. 2014-08-29 06:58:10 +02:00
Janik Kleinhoff
eb1387b7c2 Add a !notice toggle separate from !simple.
!simple used to determine whether you were given simple instructions
*and* whether the bot NOTICEs you; now, it only controls the former and
!notice controls the latter.
2014-08-29 04:12:35 +02:00
skizzerz
b82cc92997 Add option for mad scientist to skip over dead players, based on how many players joined the game 2014-08-22 01:03:50 -05:00
Ryan Schmidt
6e2cae8e6b Remove jester from default role set
The inclusion of jester was causing a disproportionately high number of wolf wins due to wolves voting jester as a strategy in order to bring numbers to even. Per discussion in -ops, it was decided that removing jester would be good in order to prevent this (an alternative option being reducing number of wolves so that the gameplay can still happen, but it requires more finesse on the wolves' part in order to utilize).
2014-08-18 19:02:23 -05:00
skizzerz
361cb0dd6e Fix typo in rapidfire where day ending warning was not shown 2014-08-17 21:45:28 -05:00
skizzerz
84b2fdc24e Improvements
- Make rapidfire more rapid by reducing timers and adding in time lord
- Correctly credit someone for a win if they die and THEN /part or /quit
  (someone that dies and is /kicked will not get a win, as that usually
  means they cheated or something.)
- Break up long messages (roles, player totals) at intelligent points.
2014-08-12 23:07:02 -05:00
skizzerz
50191bb4d3 move gunner to 10 2014-08-10 14:21:28 -05:00
skizzerz
bd2451b3b5 Redo default roles and fix bug where day timing out didn't correctly apply vote altering totems 2014-08-10 14:14:27 -05:00
Skizzerz
1627e21b8d Additional gamemodes 2014-08-08 21:25:03 -05:00
Skizzerz
8b49e1c0c8 Finish retribution totem and remove unused config var 2014-08-05 23:19:54 -05:00
Skizzerz
277c99db41 Fix exchange totem and wolf cub and other improvements 2014-08-05 21:34:46 -05:00
skizzerz
1d9b4f54e6 Various fixes plus code exchange totem. 2014-08-05 00:54:01 -05:00
Skizzerz
2d331cdcd7 Fix fool being lynched and begin shaman bonanza, most of the totems do nothing atm but it *should* theoretically work 2014-08-04 00:23:29 -05:00
Skizzerz
b47ab14632 Fix grammar on lynch messages 2014-08-03 21:26:37 -05:00
Skizzerz
4e31cc0a0f Gigantic update
1. Rewrite amnesiac: Instead of removing an existing role from the game for the first 2 days,
they now become a brand new random role. Seers, oracles, sorcerers, detectives, and revealing
totems will see through their amnesia so they can learn their actual role. Amnesiacs are neutral
until they clear up, and thus if the game ends while they are still amnesiac, they will win
alongside the default role (e.g. village if default is villagers, or wolves if default is cultists).

2. Make vengeful ghost take vengeance based on the role that killed them instead of making it based
on time of day. If they suicide due to being someone's lover, they will take vengeance on the team
that killed their lover. If they are gunner and their gun explodes, they take vengeance on the
village due to their shoddy gun construction processes.

3. Make clone always trigger even if their target idles out or !quits.

4. Make a harlot visiting victim, harlot visiting wolf, and bodyguard guarding victim able to
shoot wolves if they are also gunner, and for wolves to pick up their gun. In the event of a wolf
kill plus another non-wolf kill, the wolf kill takes precedence in the event of harlot visiting
victim and bodyguard guarding victim, and the non-wolf kill takes precedence in the event of
harlot visiting wolf (the non-wolf kill happens en-route to the wolves, and the gun disappears or
something, idk). Additionally, if the harlot visits victim or the bodyguard guards victim and the
harlot/bodyguard are also targeted by wolves, their special "died visiting/guarding victim" event
plays instead of the normal death message.

5. Change alive vengeful ghost win conditions to work like amnesiac: they win with the default
role if alive at the end of the game.

6. Minor wording fixes, such as the gunner shot wolf message with more commas than words.
Remember, every time you abuse a comma, God kills a kitten.
2014-08-03 17:04:18 -05:00
skizzerz
6920e2e20c Bugfixes: monster can no longer be mayor, and fix issue when bodyguard chooses not to guard anyone 2014-08-03 00:31:18 -05:00
skizzerz
2a0392bc42 Add back in regular lover win code that was accidentally removed, and make lover winning with fool configurable since there was a lot of pushback for the change. Still defaults to false though 2014-08-02 23:51:49 -05:00
skizzerz
137a4f2d03 Add jester role
Similar to fool, the jester wins if they are lynched. Unlike fool,
the game continues if jester is lynched and they win alongside the
normal winners.

Also change it so that a fool's lover does NOT win with fool, so
that fool/jester win mechanics are similar (since jester's lover
would die with jester). It doesn't pay to fall in love with fools!
2014-08-02 22:27:10 -05:00
skizzerz
7f269874d6 Disable amnesiac pending rewrite 2014-07-31 22:15:23 -05:00
skizzerz
b2d5d15606 Rework timers to track when they started and how long they last so \!time can be more accurate. Closes #42 2014-07-26 13:28:24 -05:00
skizzerz
0a9d5c8817 Swap what GA and bodyguard do because it makes more sense if bodyguard dies and GA doesn't 2014-07-26 12:20:47 -05:00
skizzerz
202c03d0d9 Merge branch 'master' of https://github.com/lykoss/lykos
Conflicts:
	modules/wolfgame.py
	settings/wolfgame.py
2014-07-25 08:30:53 -05:00
skizzerz
5cf86473e6 Expand the roles game mode to allow setting the default role and role reveal. Note that default role should always be either villager or cultist 2014-07-24 20:30:24 -05:00
nyuszika7h
360903c7ab Order player role stats descending by number of games 2014-07-24 17:14:30 +02:00
skizzerz
86abaf7f1b Vengeful ghost cannot be amnesiac. Allow werecrow and wolf cub to be amnesiac. Closes #35 2014-07-19 18:50:20 -05:00
skizzerz
f45a6279d5 Time lord changes:
Bump day time down to 60s and night time down to 30s
Time lord triggers if they die during day for any reason (except idling)
Reduce rate limit for !time to 10s instead of 60
2014-07-19 18:47:17 -05:00
Skizzerz
eb299c6232 Add check to ensure nightroles only act at night. Closes #39 2014-07-19 18:16:37 -05:00
nyuszika7h
0df8098ade Revert "autopep8"
This reverts commit 4189d5c874.
2014-07-19 19:09:24 +02:00
nyuszika7h
4189d5c874 autopep8 2014-07-19 19:05:49 +02:00
skizzerz
a670925779 Merge remote-tracking branch 'upstream/master'
Conflicts:
	modules/wolfgame.py
	settings/wolfgame.py
2014-07-18 08:53:11 -05:00
Ryan Schmidt
9fde1ca0a2 moar bugfixes 2014-07-15 23:39:20 -05:00
nyuszika7h
af253593c3 !pstats: fix total game count
Cursed and gunner are secondary roles so they shouldn't be counted.
2014-07-15 22:48:28 +02:00
nyuszika7h
bb3d505637 Fix previous commit (again) 2014-07-15 21:07:51 +02:00
nyuszika7h
2d6f212bb3 Fix previous commit 2014-07-15 21:06:43 +02:00
nyuszika7h
f3c6828611 Improve !pstats output 2014-07-15 21:03:31 +02:00
nyuszika7h
e40cc817a3 Remove bold 2014-07-15 21:00:53 +02:00
nyuszika7h
ab4bd8c799 Fix previous commit 2014-07-15 20:59:11 +02:00
nyuszika7h
748e0d95dd Add total games to !pstats 2014-07-15 20:52:50 +02:00
Skizzerz
48553663d6 fix evilvillage 2014-07-15 01:11:56 -05:00
skizzerz
36dd881411 much bug, many fixes, wow 2014-07-15 01:04:16 -05:00
Skizzerz
a31bf8b4e9 Finish matchmaker 2014-07-14 20:48:00 -05:00
skizzerz
f41b92a156 bugfixes 2014-07-14 02:20:08 -05:00
skizzerz
a10e706474 Fix syntax errors and some other miscellaneous issues 2014-07-14 01:06:41 -05:00
Skizzerz
d970aefdbe Finish adding roles, still completely untested 2014-07-13 17:43:11 -05:00
Skizzerz
7011c9b5d0 Roughly halfway done with adding new roles 2014-07-12 19:40:20 -05:00
Skizzerz
3f61a60f21 Merge branch 'master' of https://github.com/lykoss/lykos
Conflicts:
	modules/wolfgame.py
2014-07-12 13:13:56 -05:00
Skizzerz
23b2e755ca Initial commit to add a bunch of new roles 2014-07-12 13:10:44 -05:00
nyuszika7h
835e76c621 Disable !gstats rate limit 2014-07-12 16:41:12 +02:00
nyuszika7h
5c86786409 Set JOIN_TIME_LIMIT to 3600 2014-07-02 07:23:17 +02:00
Yizhe Shen
02b1a25644 Added a timer for joining the game. (issue #20)
- Usage: set a non-zero value for var.JOIN_TIMER_LIMIT in seconds
- Added kill_join() to handle game cancellations
- Join timers set on first join and canceled if everybody quits or when a
  game starts
2014-06-27 15:28:19 -04:00
nyuszika7h
b24c105f27 Set rate limit for !pstats and !gstats to 15s 2014-06-08 15:55:13 +02:00
nyuszika7h
2f95434e05 settings/wolfgame.py: Add TIME_RATE_LIMIT 2014-06-04 21:36:51 +02:00
jacob1
d56e1731b2 !p is case insensetive, and tells you when a player / role doesn't exist
At the request of / using some code from brrr
2014-05-31 23:37:04 -04:00
nyuszika7h
358788e893 Increase grace time for /part in-game to 30 seconds 2014-02-25 14:04:25 +01:00
nyuszika7h
d6c0ff209d Disable rate limit for !pstats (for now) 2014-02-24 10:47:32 +01:00
nyuszika7h
d051330b0f Revert "Add total games to !pstats without role"
This reverts commit 42b98813d0.

Total game count is inaccurate if the player is both gunner/cursed and
another role.
2014-02-21 10:18:52 +01:00
nyuszika7h
42b98813d0 Add total games to !pstats without role 2014-02-21 10:15:50 +01:00
nyuszika7h
9b10ba2851 Add aliases and rate limit for p/g/mystats 2014-02-20 16:36:55 +01:00
nyuszika7h
8342114844 Merge branch 'master' of git://github.com/xnrand/seerwolf 2014-02-17 10:43:19 +01:00
xnrand
d769943c0a Add feature for wait time added for each !join
Ineffective by default because the wait time is set to 0 in the default
configuration file.
2014-02-17 05:02:27 +01:00
Yizhe Shen
9ad5713471 Added MIN_PLAYERS setting. 2014-02-16 20:24:46 -05:00
Yizhe Shen
510dcfa9bf Fix for getting game totals.
Fixed upper limit of range in get_game_totals().
2014-02-16 19:34:05 -05:00
Yizhe Shen
3d367f6bea Minor changes.
Added grand total to the output of "gamestats" command when no size is
given. Changed camel case to '_' for a couple of variables. Added
identification check for "player" command.
2014-02-15 22:38:15 -05:00
Yizhe Shen
04d2702f36 Added get_player_totals(). Some code cleanup.
If the "player" or "mystats" command is called without a role,
then the bot will now list the total games that the player has
played in each role.
2014-02-13 21:59:52 -05:00
Yizhe Shen
32fa38a6c9 Refactored some stats code.
Made update_roles_stats() and update_game_stats() a bit cleaner.
2014-02-13 18:05:59 -05:00
Yizhe Shen
7f9def0b2c Added percentages to stats.
Added percentages when stats are outputted. Updated output for
"gamestats" command when no parameter is given.
2014-02-13 18:05:58 -05:00
Yizhe Shen
977112826f Updated stats text. Player stats command checks for account.
Updated game text for stats commands. Fixed error with "mystats" help
string. Added additional check in player stats commands to find the
associated account before attempting to retrieve stats.
2014-02-10 19:01:11 -05:00
Yizhe Shen
8b235580a2 Fix for secure SQL operations.
Removed Python string operations from SQL operations.
2014-02-10 19:01:10 -05:00
Yizhe Shen
829fd260e2 Changed behaviour of "gamestats" command.
"gamestats" without a parameter will list game totals for all game
sizes. The role parameter for player stats commands is now case
insensitive.
2014-02-10 19:01:09 -05:00
Yizhe Shen
cbae0291f8 Added game stats to database and "gamestats" command.
Added a game stats table to game DB to store wolf/village wins for
each game size. Added "gamestats" command to display stored stats.
2014-02-10 19:01:07 -05:00
Yizhe Shen
1994e7330f Added commands to access player stats.
Loosely based on code from jcao219. New commands are "player", "p", "mystats", "me". The commands access existing stats stored in the game database (data.sqlite3).
2014-02-10 19:01:06 -05:00
Yizhe Shen
2b57abc1fb Added an option for hidden traitor.
Added the option in ./modules/wolfgame.py. When activated, if traitor dies before turning, he will only be revealed as a villager.
Also, when "stats" command is used, traitor will be counted as a villager. By default, it is set to True.
2014-02-09 14:17:01 -05:00
xnrand
92cd0f5f34 implement extra wait time for !join
i.e. it makes sure that there are at least X seconds of wait time left after a !join.

Feb01[18:03:40] +Zazie_Lavender | I think there should be an enforced 10 to 20 second wait after last !join
2014-02-01 19:30:50 +01:00
nyuszika7h
ca1a864364 Fix fatal typo in settings/wolfgame.py 2013-11-13 20:02:55 +01:00
nyuszika7h
d78d4c877e Fix player limit, now is actually 21 2013-11-13 20:02:21 +01:00
nyuszika7h
9d1e0334f3 Update !rules 2013-11-11 20:25:38 +01:00