Git Product home page Git Product logo

lykos's Issues

Bot randomly fails to notice player quit/changed nick.

What the title says. I don't have account-notify or something enabled, but that's better than losing entirely the log of what happened. Timestamps are UTC-5. Happened on January 18th, 2015. Full, unfiltered log:

[07:52:39] <erry> !join
[07:52:39] * lykos sets mode: +v erry
[07:52:39] <@lykos> erry has started a game of Werewolf. Type "!join" to join. Type "!start" to start the game. Type "!wait" to increase start wait time.
[07:52:43] <NeonWabbit> Good work, erry.
[07:52:48] <u-ou> but how did you know?
[07:52:48] <+erry> :D
[07:52:49] <NeoMahler> :D
[07:52:50] <u-ou> !j
[07:52:50] * lykos sets mode: +v u-ou
[07:52:50] <@lykos> u-ou has joined the game and raised the number of players to 2.
[07:52:55] <greenpuffles> !j
[07:52:55] * lykos sets mode: +v greenpuffles
[07:52:56] <@lykos> greenpuffles has joined the game and raised the number of players to 3.
[07:53:37] <+greenpuffles> !game Lycan
[07:53:38] <@lykos> greenpuffles votes for the lycan game mode.
[07:53:48] <+erry> !roles lycan
[07:53:48] <@lykos> [7] wolf, hunter, lycan, seer, cursed villager [9] wolf(2), clone, lycan(2) [10] guardian angel, hunter(2), mayor [12] lycan(3), cursed villager(2) [15] traitor, detective, lycan(4), matchmaker [17] clone(2), sharpshooter, gunner [20] lycan(5)
[07:53:54] <+erry> we need at least 7 for that
[07:54:37] <+greenpuffles> !roles def
[07:54:37] <@lykos> [4] wolf, seer [6] cursed villager [7] cultist, shaman [8] traitor, -cultist, harlot, bureaucrat [9] crazed shaman [10] wolf cub, sharpshooter, gunner [11] matchmaker [12] werecrow [13] detective, assassin [15] wolf(2), hunter [16] monster [18] bodyguard [20] sorcerer, augur, cursed villager(2) [21] wolf(3), gunner(2) [23] amnesiac, mayor [24] hag
[07:55:00] <+greenpuffles> !game def
[07:55:01] <@lykos> greenpuffles votes for the default game mode.
[07:55:28] <NeoMahler> !j
[07:55:29] * lykos sets mode: +v NeoMahler
[07:55:29] <@lykos> NeoMahler has joined the game and raised the number of players to 4.
[07:56:23] <+NeoMahler> !leave
[07:56:23] <@lykos> NeoMahler suddenly falls over dead before the astonished villagers. New player count: 3
[07:56:23] * lykos sets mode: -v NeoMahler
[07:56:38] * NeoMahler is now known as NeoAbsent
[07:59:10] <+greenpuffles> JOIN GAME
[07:59:33] <+greenpuffles> JOIN GAME
[08:00:13] <+greenpuffles> !game def
[08:00:13] <@lykos> greenpuffles votes for the default game mode.
[08:00:22] <+greenpuffles> JOIN GAME
[08:00:47] <away> greenpuffles: can you not
[08:01:41] * greenpuffles is now known as orangepuffles
[08:02:13] * orangepuffles is now known as puffles
[08:03:56] <+puffles> !pony
[08:03:57] <@lykos> puffles tosses a pony into the air...
[08:03:57] <@lykos> The pony lands on hoof.
[08:05:00] <+puffles> !pony
[08:05:00] <@lykos> puffles tosses a pony into the air...
[08:05:01] <@lykos> The pony lands on hoof.
[08:05:05] <+puffles> !pony
[08:05:05] <@lykos> puffles tosses a pony into the air...
[08:05:06] <@lykos> The pony lands on hoof.
[08:05:09] <+puffles> !pony
[08:05:09] <@lykos> puffles tosses a pony into the air...
[08:05:09] <@lykos> The pony lands on plot.
[08:05:14] <+puffles> .
[08:07:29] <+puffles> !pony
[08:07:29] <@lykos> puffles tosses a pony into the air...
[08:07:30] <@lykos> The pony lands on hoof.
[08:12:16] <+u-ou> !quit
[08:12:17] <@lykos> u-ou is crushed to death by a falling tree. The villagers desperately try to save them, but it is too late. New player count: 2
[08:12:17] * lykos sets mode: -v u-ou
[08:18:15] <away> puffles: don't spam
[08:18:17] <+erry> D:
[08:18:38] * nimoot (~HomoSapie@unaffiliated/toomin) Quit (Ping timeout: 264 seconds)
[08:23:11] * NeoAbsent is now known as NeoMahler
[08:23:19] <NeoMahler> !j
[08:23:19] * lykos sets mode: +v NeoMahler
[08:23:20] <@lykos> NeoMahler has joined the game and raised the number of players to 3.
[08:23:26] <+NeoMahler> !ping
[08:23:27] <@ lykos> PING! Agent_Isai c74d CrissiD evilworm Hjalpa JonathanD mrs_girl NeonWabbit Pachirisu ParuNexus RyanDecarie splook u-ou
[08:26:32] <+NeoMahler> join!
[08:31:13] * Consuela (~Consuela@unaffiliated/stupid) Quit (Ping timeout: 252 seconds)
[08:31:53] * puffles is now known as morepuffles
[08:31:55] * Consuela (~Consuela@unaffiliated/stupid) has joined ##werewolf
[08:32:25] <+NeoMahler> !ping join!!
[08:32:25] <@lykos> PING! Agent_Isai c74d CrissiD evilworm Hjalpa JonathanD mrs_girl NeonWabbit Pachirisu ParuNexus RyanDecarie splook u-ou
[08:34:04] <+morepuffles> join!
[08:35:23] <+morepuffles> join game!
[08:40:35] <+morepuffles> join game!
[08:42:15] <+morepuffles> !pony
[08:42:15] <@lykos> morepuffles tosses a pony into the air...
[08:42:16] <@lykos> The pony lands on hoof.
[08:42:26] <+morepuffles> !leave
[08:42:30] <+morepuffles> !j
[08:42:31] * lykos sets mode: +v morepuffles
[08:42:31] <@lykos> morepuffles has joined the game and raised the number of players to 4.
[08:42:36] <+morepuffles> !start
[08:42:37] <@lykos> erry, puffles, NeoMahler, morepuffles: Welcome to Werewolf, the popular detective/social party game (a theme of Mafia). Using the default game mode.
[08:42:37] * lykos sets mode: +m
[08:42:38] <@lykos> It is now nighttime. All players check for PMs from me for instructions.
[08:42:44] <+erry> :o
[08:42:52] <+NeoMahler> :O
[08:42:53] <+erry> mv
[08:42:54] <+morepuffles> iam villager
[08:43:03] <@lykos> Night lasted 00:25. It is now daytime. The villagers awake, thankful for surviving the night, and search the village... 
[08:43:03] <@lykos> The dead body of puffles, a villager, is found. Those remaining mourn the tragedy.
[08:43:03] <@lykos> The villagers must now vote for whom to lynch. Use "!lynch <nick>" to cast your vote. 2 votes are required to lynch.
[08:43:53] <+erry> wait
[08:43:54] * ChanServ sets mode: +o nyuszika7h
[08:43:56] <@nyuszika7h> bot is broken
[08:43:57] <+erry> why are you cloning
[08:43:58] <@nyuszika7h> !fsrop
[08:44:02] <@nyuszika7h> !fstop
[08:44:02] <@lykos> nyuszika7h has forced the game to stop.
[08:44:02] <@lykos> Game lasted 01:25. 00:59 was day. 00:25 was night. 
[08:44:02] <@lykos> The wolf was NeoMahler. The seer was erry. The villagers were puffles and morepuffles.
[08:44:02] * lykos sets mode: -mvvv erry morepuffles NeoMahler
[08:44:03] <NeoMahler> :O
[08:44:06] <NeoMahler> XD
[08:44:12] <erry> nyuszika7h, what broke?
[08:44:19] <@nyuszika7h> it isn't devoicing people
[08:44:27] <erry> nyuszika7h, i think morepuffles was cloning :[
[08:44:47] <@nyuszika7h> well we have enough reasons to ban him anyway
[08:44:54] <erry> nyuszika7h, wait!
[08:44:56] <erry> i know what broke
[08:44:57] <morepuffles> no, i changed
[08:45:01] <erry> puffles joined as puffles, then /nicked
[08:45:01] <morepuffles> my nick
[08:45:04] <erry> but lykos kept both of them
[08:45:08] <erry> that's why the devoicing broke
[08:45:09] <away> lykos pls
[08:45:12] <morepuffles> yes
[08:45:18] * nyuszika7h sets mode: +b $a:Quackerpingu
[08:45:19] <erry> that... seems like a major bug
[08:45:23] * morepuffles was kicked by nyuszika7h (morepuffles)

Error with !votes

<Zhaofeng_Li> !votes
<lykos> Zhaofeng_Li: enchilado: 1 (kru), kru: 1 (enchilado)
<lykos> An error has occurred and has been logged.

[04/Aug/2014 05:47:21] Traceback (most recent call last):
  File "/home/lykos/lykos/modules/common.py", line 40, in on_privmsg
    fn(cli, rawnick, chan, h.lstrip())
  File "/home/lykos/lykos/tools/decorators.py", line 61, in innerf
    return f(*largs)
  File "/home/lykos/lykos/modules/wolfgame.py", line 809, in show_votes
    'vote.').format(nick, len(pl), votesneeded, avail)
ValueError: cannot switch from automatic field numbering to manual field specification

Make stasis check both time and amount of games.

An idea that came up in Esper's #Werewolf was to make stasis look for amount of time elapsed since the game that applied stasis, since fewer games are played than on freenode, and so people who get stasised in a game might need to wait a large amount of time before being unstasised, or to have an admin manually remove their stasis (what we do) after some time being stasised.

Require two people to start

A suggestion discussing in ##werewolf is requiring two people to start a game. This would prevent an individual from starting the game prematurely, which is fairly common if they were unaware the other players were waiting for a larger number for more roles. It would also allow for more people to be ready to play the game when it begins, instead of someone starting the game when other people are afk.

Night may end prematurely if a night role idles out after acting

How to reproduce:

  1. Start a game with (at least) two night roles other than wolf, and have them survive the first night.
  2. End the first day after e.g. seer has received an idle warning.
  3. Have all night roles but one act, including the idling role.
  4. Wait for seer to actually idle out.

Expected result: Night doesn't end until the remaining night role acts.

Actual result: Night ends immediately; the remaining night role gets no chance to act.

This is because var.SEEN has been added to already, but the idler's role isn't counted for determining how many roles have to have acted anymore in chk_nightdone.

Why can't you change your target as an assassin?

You are an assassin. Choose a target with "target ". If you die you will take out your target with you. If your target dies you may choose another one.
Players: foo, bar, foobar, baz
Because you forgot to select a target at night, you are now targeting baz.
target foobar
You may only target people at night.
target foobar
You have already chosen a target.

The text doesn't say that once you pick a target, it's permanent unless that player dies.

Plus, why does the bot auto-select a target for you instead of not having one selected? You could end up targeting a safe picked by the bot, getting killed and taking down a member of your own team.

fstasis requires an exact match in order to apply or remove

[06:46:09 P] * ChiyoTest (~Chiyo@pdpc/supporter/active/chiyo) has joined ##werewolf

If you try and apply a stasis, you need to use the nick exactly as it appears as shown below:

[06:48:08 P] fstasis chiyotest 1
[06:48:08 P] Sorry, that user cannot be found.
[06:49:51 P] fstasis ChiyoTest 1
[06:49:51 P] ChiyoTest is now in stasis for 1 games

It appears this only applies to applying/removing stasis manually.

Respond to CTCP PING requests ;)

It might be nice if lykos responded to CTCP PING requests, to allow players to test their connection lag to the bot. That way, a player can easily find out how long it takes until lykos receives a command from them.

Can we add another idled out death line?

An example idle-out-death-line is:

Makiavel didn't get out of bed for a very long time and has been found dead. The survivors bury the villager's body.

Could we add:

$name became infected with the idle virus. Sadly, they did not respond to treatment and subsequently died.

Logging

Proper useful logging of all game mechanics (for debugging) is needed, including, but not limited to, what totem was given to whom and when.
Possibly held in memory until the end of a game and then written to disk.

Ideas for new totems (give some ideas!)

I've been meaning to add a black/wolf shaman to lykos for a while now, and I've already done the architecture changes that will let us add another shaman with very few code changes. However, to be viable, it would need some totems on its own (that it could share with crazed, probably). Here are the totems I thought of for this (few ones so far, I had more but forgot, this is why I'm opening this issue):

  • Deceit totem; the person who has this totem is seen as wolf if they're villager-aligned, and as villager if they're wolf-aligned.

Ideas? I would like 4-5 totems for wolfteam to use, instead or in addition to existing ones (lycanthropy totem could be a lot of fun), but first need to draw out what we want and what we don't want.

a new command needed: "!joinif <number>"

Sometimes I want to play the game if at least 8 people is playing.

So it can be like that:

fka: !joinif 8
lycan: You will be joined to the next 8 or more people game.

And, if anyone starts the game before 8 people are joined, it'll be started without me. But it'll remember my choice so whenever it's 8 people game I'll be joined. And after my name, I've to !joinif or !join again as usual.

IDK if I can tell well or not but I think you all got it :)

Moved from https://github.com/skizzerz/lykos/issues/56

Mysterious plague counted as village win

At the moment, if neither seer nor wolves act, the game is counted as a village win (the wolves all die of a mysterious plague). Notably, the seer (who idled) will still win, and all wolfteam-aligned players will lose even if they had no ability to act.

Someone (@ishanyx?) suggested that seer and wolves are automatically assigned stasis in this case; others suggested the set of roles "essential" for this purpose should be adjusted. Either way, the current approach unfairly penalizes traitors who in fact spent the night yelling at their idling co-wolves to wake up and kill.

Unneeded text in fstasis

[08:16:41 P] fstasis
[08:16:41 P] current illegal joins: defaultdict(<class 'int'>, {})

Could the "defaultdict..." be removed?

The same applies if there is someone in stasis too.

[08:21:24 P] fstasis
[08:21:24 P] current illegal joins: defaultdict(<class 'int'>, {'example/cloak': 1})

Could this maybe changed to:

Currently in stasis: @example/cloak1 1, @example/cloak2 1

!stats, when not in a game, ignores !notice settings.

This is from ##werewolf

[08:55:19 P] * ChanServ sets mode: +o Chiyo
[08:55:49 P] !stats
[08:55:49 P] -lykos- Chiyo: 7 players: ...
[08:55:50 P] -lykos- Chiyo: It is currently ...
[08:55:53 P] !notice
[08:55:53 P] -lykos- The bot will now always NOTICE you.

The bot sent the stats as a notice, ignoring !notice's preferences.

[08:55:59 P] !notice
[08:55:59 P] -lykos- Gameplay interactions will now use PRIVMSG for you.
[08:56:01 P] !stats
[08:56:01 P] -lykos- Chiyo: 7 players: ...
[08:56:01 P] -lykos- Chiyo: It is currently day. ...

The bot is saying that it will send messages, but again sends a notice.

If the command is sent in a private message, it will reply in a private message.

Mode +m and quiet

lykos sets +m on the channel at the start of the game meaning that nobody can talk except if op'd or voiced.
So i'm wondering is it really necessary to set quiet on the user that got lynched or died?

Make it so lykos can't troll voters

Due to the way the voting system works, it is still possible for the bot to pick game modes that were not explicitly voted for. It makes far more sense that once people have voted for modes that only the modes voted for will show up.

Topics to consider for discussion:

  • Do we want it so that we need a critical mass of votes (say 20% of players having voted for a gamemode) before we exclude modes not voted for?
  • Do we want to adjust the "special" modes so that it only needs half of the voters to vote for it rather than half of the total players?

My personal opinion is no and yes, respectively, as I believe that will encourage more participation in voting for game modes if you literally count for nothing at all if you don't vote.

!help ignores !notice

(in /msg) [06:29:55 P] !notice
(a notice) [06:29:56 P] -lykos- Gameplay interactions will now use PRIVMSG for you.
(in /msg) [06:29:58 P] help
(a notice) [06:29:58 P] -lykos- Commands: admins, ....

Traitor didn't win although they survived and didn't idle out/leave

[10:56:17] <+NecromancerMorty> !stats
[10:56:18] <@lykos> NecromancerMorty: �3� players: errietta, NecromancerMorty, Cydrobolt
[10:56:18] <@lykos> NecromancerMorty: It is currently day. There is �1� wolf, ��no�� seers, ��no�� shamans, �1� crazed shaman, ��no�� harlots, and �1� villager.
[10:56:24] <+Cydrobolt> can a woffle kill me
[10:56:34] <+NecromancerMorty> it's day
[10:56:36] <+Cydrobolt> nevermind
[10:56:37] <+Cydrobolt> last night
[10:56:47] <+Cydrobolt> is anyone a safe here
[10:56:49] <+Cydrobolt> !stats
[10:56:53] <+NecromancerMorty> I'm safe
[10:56:57] <+NecromancerMorty> !v err
[10:56:58] <@lykos> �NecromancerMorty� votes for �errietta�.
[10:57:00] <+Cydrobolt> !v err
[10:57:01] <@lykos> �Cydrobolt� votes for �errietta�.
[10:57:01] <@lykos> Under a lot of noise, the pitchfork-bearing villagers lynch �errietta�, who turned out to be... a �crazed shaman�.
[10:57:01] * lykos sets mode: -v+q errietta errietta!*@*
[10:57:01] <@lykos> Game over! There are the same number of wolves as uninjured villagers. The wolves overpower the villagers and win.
[10:57:01] <@lykos> Game lasted �09:23�. �04:35� was day. �04:47� was night. 
[10:57:01] <@lykos> The wolf was �Vgr�. The seer was �Andrio�. The traitor was �NecromancerMorty�. The crazed shaman was �errietta�. The bureaucrat was �kru�. The shaman was �rotta666�. The harlot was �Mp5shooter�. The cursed villager was �errietta�.
[10:57:02] <@lykos> The winner is �Vgr�.
[10:57:02] * lykos sets mode: -m

I was the sole winner, but NecromancerMorty should have won as well, as they did not idle out nor quit. Full log is here, as you may notice NecromancerMorty did quit, but rejoined back in the game shortly after.

Ratelimit !roles / !pstats

With the role list now really long, it might be worth ratelimiting it or sending the list in a notice or private message.

[11:17:31 P] <+Janthran> !roles
[11:17:32 P] <lykos> Janthran: There are 14 playing. [4] seer, wolf [6] cursed villager, jester [7] shaman, cultist [8] bureaucrat, traitor, harlot, cultist [9] crazed shaman [10] gunner, sharpshooter, wolf cub [11] matchmaker [12] werecrow [13] detective, assassin [15] hunter, wolf(2) [16] monster [18] bodyguard [20] cursed villager(2), sorcerer, augur [21] gunner(2), wolf(3) [23] amnesiac, mayor [24] hag 
[11:17:32 P] <+bcode> !roles
[11:17:33 P] <lykos> bcode: There are 14 playing. [4] seer, wolf [6] cursed villager, jester [7] shaman, cultist [8] bureaucrat, traitor, harlot, cultist [9] crazed shaman [10] gunner, sharpshooter, wolf cub [11] matchmaker [12] werecrow [13] detective, assassin [15] hunter, wolf(2) [16] monster [18] bodyguard [20] cursed villager(2), sorcerer, augur [21] gunner(2), wolf(3) [23] amnesiac, mayor [24] hag 
[11:17:46 P] <+Chiyo> !roles
[11:17:46 P] <+Chiyo> !roles
[11:17:47 P] <lykos> Chiyo: There are 14 playing. [4] seer, wolf [6] cursed villager, jester [7] shaman, cultist [8] bureaucrat, traitor, harlot, cultist [9] crazed shaman [10] gunner, sharpshooter, wolf cub [11] matchmaker [12] werecrow [13] detective, assassin [15] hunter, wolf(2) [16] monster [18] bodyguard [20] cursed villager(2), sorcerer, augur [21] gunner(2), wolf(3) [23] amnesiac, mayor [24] hag 
[11:17:47 P] <lykos> Chiyo: There are 14 playing. [4] seer, wolf [6] cursed villager, jester [7] shaman, cultist [8] bureaucrat, traitor, harlot, cultist [9] crazed shaman [10] gunner, sharpshooter, wolf cub [11] matchmaker [12] werecrow [13] detective, assassin [15] hunter, wolf(2) [16] monster [18] bodyguard [20] cursed villager(2), sorcerer, augur [21] gunner(2), wolf(3) [23] amnesiac, mayor [24] hag

Werekitten?

So, erry bcode, but still giving credit to erry suggested the idea of a werekitten. Now while I can't think of a role where this could be in use, but I did think that:

  • A werekitten is something you randomly got as a wolf cub so instead of it appearing as "wolf cub" it would appear as "were kitten", but it's the same role.
  • A preference you could set. Again, it's not a new role, but it would give you the label of "werekitten" every time you got the wolf cub role.

Thoughts?

Add a "time" command.

This command informs the user the time remaining until the current phase of the game ends. Potentially useful, potentially spam-worthy.

Replace "the winners are" line with the team that won?

Currently, the bot says this at the end of a game:

<@lykos> Game lasted 09:35. 08:53 was day. 00:41 was night.
<@lykos> The wolf was Chelsie. The seer was woffle. The cultist was Mithadon. The jester was rika. The shaman was nyuszika7h. The cursed villager was auror.
<@lykos> The winners are Chelsie, Mithadon, and rika.

In big games, this list could get really long with everyone with a role being listed.

Is "The winners are..." line really needed? It's essentially adding more to the big list of nicks what already exist.

Would it be possible to simply replace the line with "The village team won" or "The wolf team won"?

An additional feature could be "The $x team won, brining their total wins to $y."

Influence totem does not seem to do anything

[23:02:41] < lykos> You are a �shaman�. You can select a player to receive a totem each night by using "give ". You may give yourself a totem, but you may not give the same player a totem two nights in a row.
[23:02:41] < lykos> You have the �influence� totem. Votes by the player who is given this totem count twice.
[23:02:42] < lykos> Players: Corin, deSouza, modulus, Mandog, Jaekke, SithNexus, Sir_Burpalot, Makiavel, Polsaker, aeth, Vgr
[23:04:27] < Vgr> give vgr
[23:04:28] < lykos> You have given a totem of influence to �Vgr�.

[...]

[23:07:37] <+Vgr> !votes
[23:07:37] @Lykos Vgr: Mandog: 1 (Polsaker)
[23:07:38] @Lykos Vgr: �8� players, �5� votes required to lynch, �8� players available to vote. �0� players have refrained from voting.
[23:07:44] <+deSouza> man
[23:07:45] <+Mandog> wait what?
[23:07:49] <+deSouza> im getting sleepy
[23:07:49] <+Polsaker> just randovoting
[23:07:52] <+Mandog> yes de?
[23:08:00] <+Mandog> well fine
[23:08:00] <+Vgr> !vote man
[23:08:01] @Lykos �Vgr� votes for �Mandog�.
[23:08:03] <+Vgr> !votes
[23:08:03] @Lykos Vgr: Mandog: 2 (Polsaker Vgr)
[23:08:04] <+Polsaker> !vote man
[23:08:04] @Lykos Vgr: �8� players, �5� votes required to lynch, �8� players available to vote. �0� players have refrained from voting.
[23:08:04] @Lykos �Polsaker� votes for �Mandog�.
[23:08:05] <+Mandog> i'm not important anyway
[23:08:08] <+Jaekke> !lynch man
[23:08:08] @Lykos �Jaekke� votes for �Mandog�.
[23:08:10] <+Mandog> kill a villager
[23:08:11] <+Corin> !vote Mandog
[23:08:11] @Lykos �Corin� votes for �Mandog�.
[23:08:11] @Lykos The villagers, after much debate, finally decide on lynching �Mandog�, who turned out to be... a �villager�.

It was definitely on the day I got the influence totem, I double-checked. I was also sharpshooter (killed a wolf). It should have lynched Mandog after Jaekke voted, not after Corin did.

ghost's alignment in !revealroles is unclear

05 141013 [freenode] -lykos(lykos@unaffiliated/nyuszika7h/bot/lykos)- wolf: mikicat | traitor: rika | amnesiac: NeoMahler (will become vengeful ghost) | seer: Axew | shaman: t0fu|work (gave retribution totem to NeoMahler) | villager: Dabo, Vgr | cursed villager: t0fu|work | dead vengeful ghost: bcode (villagers)

In this game bcode died of an exploding gun and was therefore on wolfteam, against village. If I hadn't known exploding guns counted as being killed by villagers, I would have assumed this listing was saying he was on the village team. The other status notes are much clearer. It should probably say something like (against villagers) here to remove the ambiguity.

Make mad scientist skip over dead people

Let's say join order is A B C D and B is scientist. If C dies night 1 and B is lynched, this would change it so that both A and D would die as well instead of just A.

Should be configurable, both by an on/off switch as well as a number of players based on how large game was started at (as skipping over dead people is OP in small games, but needed in larger ones).

Seer accidentally contacting safe after death

Issue by kholerabbi from 2014-01-19 10:53:48 UTC
Originally opened as https://github.com/lykoss/lykos-next-old/issues/9


The problem

After they see a villager, the seer may choose to PM the villager to tell them that they're safe. However, if night ends immediately and the seer is killed, then it's a common issue that the seer will PM their safe after death.

This is against the rules but happens by accident all the time, simply because the seer may rush to inform their safe, not realising that they have died.

The solution

Players who use clients (such as irssi) that support a split notification window are able to see that they have died without switching back to the main channel—but many players don't have this option.

My suggested solution is to have lykos notify the seer that they have died, so that the seer does not have to switch back to the main channel before contacting their safe.

Furthermore, more often than not, I suspect this situation is due to the seer being the last night role to take action. In this case, lykos knows in advance that the seer is going to die and could customise the message. Indeed, lykos could choose not to inform the seer at all (e.g. “Sorry, you died before you managed to complete your vision”) which, although the safest option, might remove some of the fun as they continue to observe the game.

I've been playing this game off and on for a couple of years, and this has always been a problem. So it would be very nice to at least try to see if we can find a solution.

New player count isn't displayed if someone parts

!join
foobar has joined the game and raised the number of players to 7.

  • +Foo (~Foo@foo) has left ##werewolf
    foo, a person, ate some poisonous berries and has died.
    <+bar> !leave
    bar, a person, has died of an unknown disease. New player count: 5

Add !help for roles

Going to the wiki is more tedious/distracting than a !command to get help on a particular role; I don't know if we need to duplicate the entire wiki entry but wouldn't hurt if we did...

Harlot dies twice if lover

[23:04:28] @Lykos Night lasted �01:52�. It is now daytime. The villagers awake, thankful for surviving the night, and search the village...
[23:04:28] @Lykos The dead body of �Makiavel�, a �villager�, is found. Those remaining mourn the tragedy.
[23:04:28] @Lykos �SithNexus�, a �harlot�, made the unfortunate mistake of visiting a wolf's house last night and is now dead.
[23:04:28] @Lykos Saddened by the loss of their lover, �SithNexus�, a �harlot�, commits suicide.

2nd traitor at 17p

Even with the recent GA change, games are very much in favor of the village side at large game sizes. During the transition from 15p to 20p no wolves are added, just a very powerful safe role. That's why I think another traitor should be at 17p. The game supports it fine.

In a recent game last night, wolves killed a villager night one, then I think gunner exploded, GA was killed (using the recent change) night two, detective killed night three, and seer killed night four. It really should have been a win or at least more fair.

Also there's the problem of det iding traitor and game being basically won by village :P

Mode resets are sometimes delayed when game ends

Issue by ishanyx from 2014-01-02 00:38:59
Originally opened as https://github.com/nyuszika7h/seerwolf/issues/13


01190524 <@✓lykos​> Game over! All the wolves are dead! The villagers chop them up, BBQ
them, and have a hearty meal.
01190524 <@✓lykos​> Game lasted 06:27. 05:51 was day. 00:35 was night. 
01190524 <@✓lykos​> The wolf was Tuxedo[Qyou]. The seer was elky. The cursed villager was
rww.
01190531 <+✓jacob1​> :D
01190612 <@✓lykos​> As the sun sinks inexorably toward the horizon, turning the lanky pine
trees into fire-edged silhouettes, the villagers are reminded that very little time remains 
for them to reach a decision; if darkness falls before they have done so, the majority will
win the vote. No one will be lynched if there are no votes or an even split.
01190623 <+✓elky​> wat
01190636 -!- mode/##werewolf [+o ishanyx] by ChanServ
01190638 <+✓jacob1​> oh
01190640 <+✓jacob1​> is this still going?
01190641 <@ishanyx> lykos, what
01190643 <+✓jacob1​> um
01190643 <+✓jacob1​> lol
01190649 -!- mode/##werewolf [-m] by lykos
01190649 -!- mode/##werewolf [-vvvq elky jacob1 rww billion57!*@*] by lykos
01190649 -!- mode/##werewolf [-qq [ps]!*@* Tuxedo[Qyou]!*@*] by lykos

I have no idea what's causing this, I haven't noticed any consistent patterns, but often at the end of a game lykos waits several seconds to over a minute before updating channel modes. (The timestamp in the pasted logs is day/hour/minute/second.) This isn't network lag or high load on cadoth, it happens even when the bot is working perfectly fine otherwise. During the interval between the game ending and lykos waking up and fixing the modes, responses to commands in channel or PM are delayed too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.