147 Commits

Author SHA1 Message Date
Vgr E. Barry
2b50c75b18 Fix harlot bite event 2017-09-04 15:31:54 -04:00
Vgr E. Barry
516d1d0c8c Update the chk_nightdone function and event 2017-09-04 13:56:33 -04:00
Vgr E. Barry
a5c3f0694c Update night_acted event 2017-09-04 10:46:15 -04:00
Vgr E. Barry
b73d4e79c1 Fix oversight 2017-09-02 10:03:24 -04:00
Vgr E. Barry
d89534f259 Update !myrole and its event 2017-09-01 10:10:26 -04:00
Vgr E. Barry
07f14689c3 Properly display player list to wolves 2017-08-30 14:41:25 -04:00
Em Barry
a9067bb8ca Change a bunch of things because we felt like it
* Convert the del_player event
* HAAAAAAAAAAAAAAANDS
* <insert snarky commit message here>
2017-08-30 10:09:31 -07:00
Vgr E. Barry
17688050d6 Add get_all_players function and use it wherever necessary 2017-08-30 12:38:09 -04:00
Vgr E. Barry
0f1d513daa Convert the transition_night_end event 2017-08-30 10:16:02 -04:00
Vgr E. Barry
2f0d4f8b1c Update the get_special event 2017-08-30 08:40:54 -04:00
Vgr E. Barry
e32e142742 Remove the cli parameter from night_acted 2017-08-29 20:00:33 -04:00
Vgr E. Barry
95df73ac8d Remove cli from get_voters event 2017-08-29 19:49:56 -04:00
Vgr E. Barry
5fff9d2ce8 Update the begin_day event 2017-08-29 19:30:27 -04:00
skizzerz
b2589caccb Fix yet another bug with the hunter conversion 2017-08-29 17:36:21 -05:00
jacob1
9c0f96decc fix issue where night wouldn't end if wolves were diseased 2017-08-27 00:17:22 -04:00
skizzerz
d675f3183c Fix hunter prematurely ending night.
Idea: let's NOT mess with how the game logic is laid out unless you can
mathematically prove that your new cool shorthand way of doing things is
exactly equivalent to the old way.
2017-08-25 17:01:53 -05:00
Vgr E. Barry
746eb4171b I'm good at this 2017-08-23 23:21:59 -04:00
Vgr E. Barry
370b2c6ed2 Some function and event updates 2017-08-23 22:06:43 -04:00
skizzerz
fa82be59f3 Fix MS chained deaths not chaining correctly 2017-08-23 21:01:16 -05:00
Vgr E. Barry
401edb75cf Convert hunter to the new User API 2017-08-23 18:59:30 -04:00
skizzerz
ca628dfe2e Don't time out night if all wolves are silenced 2017-08-22 17:10:26 -05:00
Vgr E. Barry
5d14327380 make stuff prettier i guess 2017-08-21 14:16:04 -04:00
skizzerz
f766c76076 ... 2017-08-20 22:56:44 -05:00
jacob1
2cb25a3ad5 fix revealroles showing MS targets on every player 2017-08-20 22:33:15 -04:00
jacob1
a0055453fe fix succubi winning when all players die ... even if there were no succubi 2017-08-20 18:53:23 -04:00
jacob1
4dc86adc75 add mad scientist targets to myrole and revealroles 2017-08-20 18:46:04 -04:00
skizzerz
c47373dd3d Fix villagergame delay not working 2017-08-18 19:48:11 -05:00
skizzerz
9eaaa90c8e Split wolf cub, part 2
It turns out that actually staging the new file is helpful. Whodathunk?
2017-08-16 18:12:13 -05:00
skizzerz
63e8ad667b Split wolf cub
Was already mostly in wolf.py, but this takes it out and lays groundwork
for splitting out var.DISEASED_WOLVES and base events that the new
berserker wolf can use.
2017-08-16 18:08:05 -05:00
Ryan Schmidt
4bfa5f16f6 Split Mad Scientist (#295)
* Split Mad Scientist

Related changes:
- MS now honors all protections instead of only caring about blessed
  villagers
- Allow FA to bypass protection even if FA is applied as a template
- Make bodyguard swap themselves in as the assassination target rather
  than blocking the attempt outright and suiciding. This means that
  active protections on the bodyguard have a chance to save them as well.
- Redo some messages to make the above sound nice in the bot.
- Add some additional params to the assassinate event to see WHY the
  assassination is happening (source) and WHO is doing the assassination
  (killer; currently a nick but should be a user sometime in the future).
- Add a target data item to teh assassinate event so that listeners can
  change who is being assassinated. Protection boilerplate has been
  adjusted to account for this.
- Add helper function to get the targets, avoiding code duplication
2017-08-16 14:53:21 -04:00
skizzerz
c4282bd237 Fix wolf cub not working
The dead player is already removed from var.ROLES by the time the event
fires. Also, tweak del_player event to make it much easier to support
arbitrary roles as not being the player's main role by changing nicktpls
to allroles (which is a set that includes mainrole). The assassinate
event is similarly tweaked.
2017-07-20 14:19:04 -05:00
skizzerz
4ce8888274 add users import to wildchild 2017-04-13 16:04:25 -05:00
skizzerz
9076872726 Fix dulla 2017-04-01 14:06:08 -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
f096814fec Add additional aliases
mm = matchmaker, ms = mad scientist, vg = vengeful ghost

Additionally, allow all special keys to be queried via pstats in an
extensible manner (used for vg activated and vg driven off)
2017-03-28 12:13:59 -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
skizzerz
63efb85bbb Split harlot 2017-03-08 20:13:45 -06:00
skizzerz
750aa757e3 Move more cub stuff out of wolfgame.py 2017-02-28 09:32:31 -06:00
jacob1
c581801077 fix error when bodyguard saves assassin target 2017-02-25 00:27:14 -05:00
skizzerz
535d588c7b Succubus fixes
If in team reveal and succubus visits victim, show her as a neutral
player.

Don't try to double-kill people if all succubi die. While double tap is
a proven technique against zombies, it apparently breaks werewolf bots.
2017-02-14 21:35:02 -06:00
jacob1
0361c62406 ensure retribution_kill event for VG fires after "@wolves" is replaced with a nick 2017-02-13 20:44:03 -05:00
skizzerz
dd76f79603 Backend QoL adjustments for cub
Eliminate stupid get_final_role event and instead simply don't add cubs
to var.FINAL_ROLES when they grow up into wolf. That var is only ever
used for end-game stats readouts, so there is no mechanical impact in
omitting adding something there.

Add new event to experimental stats to allow roles like cub and clone to
reflect role swaps when players die. Cubs growing up now shows up in
experimental stats.
2017-02-08 10:40:18 -06: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
2354269ed2 Revert unintentional change to dullahan 2017-01-17 14:46:50 -05:00
Vgr E. Barry
bc63f2be4f Mad scientist fixes
Also stats fix
2017-01-17 14:43:28 -05:00
skizzerz
740d14ef72 Experimental stats: intelligently determine if traitor could have died
If it is impossible for other (non-wolf) roles to have killed at night,
we do not deduct from the traitor count. This logic isn't perfect yet,
but should cover the majority of cases.
2017-01-16 16:38:51 -06: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
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 c90d35e6c0a9ba96692e9d73bbe27efca405d542 and 5f5966a8b49e5214c82d806ac43a2553754fdee6.
2016-11-20 21:33:36 -06: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
skizzerz
ae5b39c36f Split traitor
As part of this, adjust team and accurate stats to no longer hide any
information. For team stats in particular, it was very misleading to
list traitor as villager, because it gives the village the impression
they have more time than they actually do (i.e. 2 wolfteam 5 vilteam
actually means 3 wolfteam 4 vilteam but that is not obvious). As team
stats were changed, team reveal was also changed to disregard hidden
traitor, so that the two can't be correlated to pick out if traitor died
(if traitor was revealed as vilteam but stats decremented wolfteam, that
would guarantee that traitor died).

Also commit groundwork for the stats rewrite, hidden behind an
"experimental" stats type (so it is not on by default). It is still very
WIP, many things do not yet work with it.
2016-11-16 22:19:54 +01:00