Commit Graph

129 Commits

Author SHA1 Message Date
skizzerz
ef3c670a0d Make sleepy 10+
8-9p has only one safe, 2 wolves, and a dullahan. Usually this means
dulla controls the game and the winner is entirely determined by whether
or not both wolves are on the kill list. Aka it sucks.
2017-08-09 17:18:59 -05:00
skizzerz
ad5ab73e00 Forgot to update gamemodes del_player events to use new var names 2017-07-20 19:07:00 -05:00
skizzerz
ffb23f587d derp 2017-04-01 13:39:16 -05:00
skizzerz
8a8a79627f Overhaul how templates work
Templates are still applied on game start according to
var.TEMPLATE_RESTRICTIONS, but now any arbitrary role can be applied as
a template during gameplay without breaking things horribly.

Speaking of breaking things horribly, things are probably broken
horribly due to this. It was lightly tested, but there's a lot of
fundamental stuff that changed.
2017-03-31 12:45:53 -05:00
skizzerz
d029302ead Reduce delay range for villagergame
Now has a standard deviation of 1.5 seconds rather than 3 seconds, which
makes it a lot easier (hopefully) to identify when lykos is wolf.
2017-03-28 11:49:18 -05:00
Emanuel Barry
5d03ed414b Convert dullahan to use the new API (#292)
* Convert dullahan to use the new API

* Address small nitpicks about dullahan

* Totally unimportant commit, please do not pay attention at all
2017-03-28 09:39:51 -07:00
jacob1
268129bd9d fix potential recursion error during maelstrom
when calling chk_win_conditions, maelstrom uses a rolemap where all players are usually '0', this is casted to a set which makes it think there is only one player
2017-02-23 23:43:32 -05:00
jacob1
8f38900a44 fix chk_win events in gamemodes.py 2017-01-27 21:42:52 -05:00
Ryan Schmidt
69fa7d377f Split succubus (#284)
* Split + buff succubus

When all succubi die, all entranced people now die along with them. This
should prevent an entranced person from ratting out the succubus early
on so that they go back to their team, as they lose now even if succubus
dies. One exception is if EVERY succubus idles out, then everyone that
is entranced is freed of entrancement, as it isn't their fault that they
didn't protect their friends in that case.

Dullahans now have succubi entirely removed from their list as the
likelihood they get unentranced is low, and it's easier to implement
this way.

Ensure that entranced people can vote along with ANY succubus, even if
that vote isn't the one that succeeded. Before there were cases where
they could vote along with succubus but still end up dying (particularly
in respect to a vote passing when a succubus abstained).

Clear up some message wording with regards to succubi.

Cleaned up chk_win_conditions and eliminated chk_traitor, so they make
much more sense now.

Also fixed minor issues, such as end-game saying "same number" of wolves
even if there are more wolves than villagers, hunter/vigilante dying
during night sometimes not clearing variables correctly (thus causing
premature night end) and some various stupidity going on with some old
code I wrote that doesn't have any visible effects.

* Combine all players into the same succubus death message

* Fix stylistic issues and succubus idling not working
2017-01-27 14:08:41 -05:00
Vgr E. Barry
accba42ea2 Change var.ALL_PLAYERS to hold User instances
Also some unrelated things
2017-01-17 13:45:38 -05:00
Ryan Schmidt
9f4b1a243d Merge pull request #274 from lykoss/cmd-old-api
Add a backwards-compatibility handler for commands
2016-12-08 16:35:19 -07:00
Vgr E. Barry
e8338d1ef6 Add the new command API + converted commands
Converted commands mostly use some backwards-compatibility hack. Please don't mind it, I'll eventually get to it.
2016-11-28 20:19:48 -05:00
nyuszika7h
da502fa34c Require a minimum of 6 players for charming
In 5-player charming games, it is possible to get into a situation where
it's impossible for the village to win - if all players except for the
wolf are charmed, lynching the wolf results in the piper winning, and
lynching the piper results in the wolf winning.
2016-11-25 14:23:16 +01:00
skizzerz
08652301c2 Properly delay night properly in villagergame, all proper-like now 2016-11-23 16:27:37 -06:00
skizzerz
a01f8860d0 Delay night properly in villagergame 2016-11-23 16:26:06 -06:00
nyuszika7h
ed7d3eda6a Add a random delay to night in villagergame 2016-11-23 19:34:41 +01:00
skizzerz
11d626ab25 Revert old_api cmd change
Causing way too many bugs, need to use a more sane method of breaking
the cmd API, and only do so when it's actually ready to go. My
personal preference is to make the new API use @command instead of @cmd.

This reverts commits c90d35e6c0 and 5f5966a8b4.
2016-11-20 21:33:36 -06:00
jacob1
c90d35e6c0 add old_api=True to sleepy commands, default it to true 2016-11-20 22:30:13 -05:00
Emanuel Barry
5f5966a8b4 Add a transition method for the old->new interface (#272)
* Add a transition method for the old->new interface

* Modify direct calls to cmd to explicitly use the old API
2016-11-19 17:47:54 +01:00
jacob1
6293b61d83 fix error when villagergame kills someone with a retribution totem, fixes #224 2016-11-03 23:26:30 -04:00
nyuszika7h
0580915150 Allow specifying lover wins with fool in !fgame roles 2016-10-24 17:25:51 +02:00
jacob1
430fa3c7c7 really fix role_attribution argument order in random 2016-10-22 22:16:56 -04:00
nyuszika7h
d0c19357df Fix wrong order of arguments 2016-10-22 17:59:21 +02:00
skizzerz
55c70570af Switch param order of role_attribution event
Standardizing on first two params for event handlers to be cli, var
2016-10-18 21:56:56 -05:00
skizzerz
810433b656 Revamp alpha
Make 10+ because it's pointless otherwise.

Revamp low counts because it was too punishing towards village, if they
made a single mistake then alpha could win with a successful bite. This
reduces overall wolf count making that situation more difficult (and
until crow joins in 12p requires that alpha turns a lycan before being
able to bite). Higher counts rejiggered a bit too to be a bit more
interesting, although may still need further adjustment.
2016-09-23 23:28:28 -05:00
skizzerz
1bce120e1c Remove cursed and mayor from evilvillage
Both templates serve to make life miserable for village team, who
already have it rough as-is. Cursed makes it so that hunter's sole shot
misses half the time, and mayor makes it so that fakeclaiming has less
of a chance of working out (and wolf kills the fakeclaimer the next
night thus ending any confusion).
2016-09-17 13:29:17 -05:00
nyuszika7h
01b7cea83c Use regular lowercase for hosts + minor code cleanup 2016-09-11 19:59:46 +02:00
nyuszika7h
037065b40c Don't let dead players with same account/host rejoin in maelstrom 2016-09-11 17:40:39 +02:00
skizzerz
411d8a6509 Revert "Disable wild child in random"
This reverts commit b089a6eee8.
2016-08-21 14:10:43 -05:00
jacob1
b089a6eee8 Disable wild child in random
role is buggy, needs further testing
2016-08-21 15:09:14 -04:00
Vgr E. Barry
273db4b553 Move local import globally
This used to be needed since there used to be a circular import. Guess
it's gone now!
2016-08-13 12:09:19 -04:00
skizzerz
23f27b088a Split dullahan
Also fix the del_player event to be more sane, and fix some suicide bugs
in hunter/vigilante kills.
2016-08-10 18:06:37 -05:00
skizzerz
ac2f28e6ed Fix totem display glitch in maelstrom 2016-08-10 12:56:48 -05:00
skizzerz
09d90fd7e2 Revert "Revert last 3 commits - broken code"
This reverts commit 5e91556426.
2016-08-10 10:40:47 -05:00
nyuszika7h
5e91556426 Revert last 3 commits - broken code 2016-08-10 16:29:46 +02:00
skizzerz
97c0981e2a Split off wolf (WIP) 2016-08-09 17:10:56 -05:00
Vgr E.Barry
f38735d5a1 Allow everyone dying in {rapid,drunk}fire to make them all win
I could have avoided the two-liner in src/wolfgame.py, but it's much
more cleaner that way, even if it's not in src/gamemodes.py

To have the code in src/gamemodes.py means we'd have duplicated code
(and thus increased the chance of random bugs, as well as maintenance
burden). And practicality beats purity.
2016-08-03 14:12:47 -04:00
nyuszika7h
965e0481ec Remove redundant ALPHA_WOLF_NIGHTS definition for random
Alpha's target now turns immediately, this variable was not being used
by the code anymore.
2016-07-28 10:39:43 +02:00
skizzerz
1b7b2f6799 Make discrimination based on case ilegel
All hostmask and account comparisons are now case-insensitive (nicks
still aren't, related to #217 -- changing nick sensitivity would break
everything in numerous places).

Also, refactor some things into other files where it makes sense to do
so, because putting unrelated things into the same commit is fun.
2016-07-27 17:03:34 -05:00
skizzerz
81263bd822 Fix guardian winconds; now a game will always end with a team winning 2016-07-21 14:05:28 -05:00
Ryan Schmidt
dd05f5e6d8 make MS always skip over dead players in rapidfire 2016-07-16 23:29:32 -07:00
Ryan Schmidt
f6f05db7cc Disable succubus in maelstrom 2016-07-06 14:14:49 -07:00
nyuszika7h
e83e6caac3 Remove bureaucrat
Closes #220.
2016-06-23 22:20:33 +02:00
nyuszika7h
9ea9a1a317 Fix modelines in other files 2016-05-11 16:09:19 +02:00
nyuszika7h
accd75cfaf Changed winner = "none" to "no_team_wins" 2016-05-01 20:43:48 +02:00
Vgr E. Barry
a65b371111 Blacklist wild child from maelstrom 2016-04-18 22:50:35 -04:00
Ryan Schmidt
d9b5c0fd55 Don't add extra cursed to villagergame 2016-04-08 14:53:29 -07:00
jacob1
4d480e32c6 ensure player is added to var.PLAYERS upon midgame join in maelstrom
fixes wolfchat / !simple / maybe other stuff
2016-04-06 22:55:07 -04:00
Ryan Schmidt
949fe168bf Fix villagergame to actually make nobody win if they fail 2016-04-06 09:24:55 -07:00
Ryan Schmidt
2973decce8 aleatoire balance tweaks
12p aleatoire was too heavily skewed towards wolves, while 14+ was heavily
skewed towards village. The following changes hope to rectify this
(although there probably isn't enough for 14+ to be fixed yet).

- Guardian Angel moved from 13p to 12p
- 2nd Assassin moved from 12p to 13p
- Bureaucrat removed
- Turncoat replaces Lycan at 14p
2016-04-05 22:03:00 -07:00