gluxon / phpwolf

The popular Werewolf game (variant of Mafia) powered by a PHP IRC bot
GNU General Public License v3.0
12 stars 7 forks source link

Werecrow role #38

Closed Mithadon closed 11 years ago

Mithadon commented 11 years ago

Visit http://code.google.com/p/wolf/issues/detail?id=69 for jcao's eloquent suggestion.

Here's a description of the werecrow role.

Currently, the werecrow (change name to crow? since werewolf => wolf) is a wolf-aligned role that can !observe, at night, any villager to see if they were "in bed" all night.

A seer that sees would not be "in bed" all night.
A harlot that visits somebody would not be "in bed" all night.
A guardian angels that guards somebody would not be "in bed" all night.
If any of those roles do not use their powers at night, they would be observed as "in bed" all night.
Any villager (no night powers, so the detective is included) would always be observed as "in bed" all night.

So it's some sort of a role-blind seer for the wolves.

In all other respects, a werecrow is like a wolf. It can kill villagers like other wolves. If it decides to kill, it cannot observe, and vice versa.

By the way, I would like to get feedback on whether the following is a good idea:

The werecrow can be a weapon against the guardian angel. If the werecrow observes somebody who is guarded by an angel, they find out the angel's identity.
This would be effective because if the wolves fail once to kill somebody because of the angel's protection, they can observe the next night to find out who the angel is. Also, it can be a deterrent against the detective+angel, where a detective openly reveals and is invincible because he is protected by angel continually.

JXPheonix commented 11 years ago

/me is going to (try to) incorporate this in a pull request

JXPheonix commented 11 years ago

Idea: Werecrow, like the detective, has a chance of being revealed to the village each night (but only the villager they saw).

Also I'm seeing a $crow variable in the code which I think is intended for this role. Any comment, @gluxon ?

gluxon commented 11 years ago

The $crow variable is for assigning the crow. Role assigning for the crow is done. Mainly, the observe command needs to be implemented.

gluxon commented 11 years ago

Log of lycanthrope as werecrow. http://pastebin.com/4fjX3ckH

ceradon commented 11 years ago

Implementation complete.

gluxon commented 11 years ago

Actually, two more things have to be done.

ceradon, it'd be great if you could tackle either.

ceradon commented 11 years ago

Fixed in the above commit.