Death OmenA fairly straight-forward, but somewhat deductive reasoning intensive theme. Kind of gimmicky, but I hope that it can work. Scenario Everyone in this game has a /stalk command, that they can use to see who visited whom during the night. Meanwhile, the Death Omen can /poison a target once every two nights, and anyone who stalks the Death Omen will be poisoned as well. Since Poison is silent (I hope?), it won't be possible for the village to know who is poisoned or not until they eventually die. Given this situation, the village must deduce that the only possible Death Omen is the player who either visited someone who died or was visited by someone who died. Roles Investigators: All Villis are on the list as "Investigators". Some villagers are more or less resistant to Poison, but it's impossible to know who, because they are all seen as "Investigators". Resistors last 4 turns, while susceptibles last 1 turn. All of them can /Stalk one target per night to see whom they /Stalk'd or /Poison'd. [I'm concerned about how the priority of /Stalk will play out here, because for obvious reasons there can't be different priority for different roles. It might be impossible for this theme to work properly without some advanced coding to make the initial command happen earlier than the actual /Stalk command feedback.] Death Omen: The Death Omen can /Doom someone every two nights, and can /Stalk on other nights so they don't look suspicious. Anyone who /Stalks the Death Omen will be Cursed to the same fate as /Doom, which is in 1-3 turns they will end up Poisoned with a count of 1. Death Omen gets hax on everyone's /Stalk, allowing them to manipulate the playing board accordingly. It also allows them to bluff that they /Stalk'd someone even if they didn't. So please let me know what you think of this theme. If you have feedback about the complications of the code in multiple /Stalks, I could use the help. Code below - updated as of 5/3 http://pastebin.com/3928FJNb
Bad news for you: Poison cannot be silent. The poisoned player WILL know they are poisoned. Good news for you: You can instead use curse to simulate a poison. Curse can be completely silent. Bad news for you: There's no "curseattacker" to replace "poisonattacker" in case you decide to use the curse simulating poison. Good news for you: You can simply use a copy action instead, so if someone stalks the Death Omen, they will also copy them and get converted into the cursed (poisoned) role. Bad news for you: Stalk will only see people who moved before you. Even if you assign the same number for the actions, the script will still follow an order, so there's no way to make sure everyone will be able to properly stalk any player. Good news for you: With some really complicated code, it may be possible to make stalk find who your target visited regardless of priority issues. But it could be a bit too complicated, as you would need to make all roles have 2 forms: The first one would use a copy action renamed as /stalk. That would copy the stalker into an almost identical role with another action named /stalk (but with lower priority), and then this second form would actually get a more accurate result. If it's too complicated, I may write a sample tomorrow. Finally, good news for you: That's a cool concept.
Thank you for the recommendations RiceKirby, I've now implemented those changes. Changing the Poison to Curse was easy, as expected. Although silent Poison would've made the code a little cleaner. Rearranging the /Stalk commands to copy based on their target and then provide the Stalk feedback was pretty simple as well. Assuming this won't cause an infinite feedback loop (and it shouldn't) the roles will undergo a double-conversion, with the second version having lower priority, thus being able to accurately see who visited whom, while being returned to their regular state by the end of the night phase. Spoiler { "role": "invest", "translation": "Investigator", "side": "village", "help": "Type /Stalk to see who visits whom!", "info": "Can inspect one person's role during the night. Sided with Village.", "actions": { "night": { "stalk": { "command": "copy", "copyAs": "invest2", "target": "AnyButSelf", "common": "Self", "priority": 5 } } } }, { "role": "invest2", "translation": "Investigator", "side": "village", "help": "Type /Stalk to see who visits whom!", "info": "Can inspect one person's role during the night. Sided with Village.", "actions": { "night": { "stalk": { "command": ["stalk", "copy"], "copyAs": { "invest": ["invest", "invest2", "invest2p", "winvest", "winvest2", "winvest2p", "sinvest", "sinvest2", "sinvest2p"], "investp": ["deathomen"] }, "target": "AnyButSelf", "silent": true, "common": "Self", "priority": 10 } } } }, And if the Investigator happens to hit the Death Omen, the second conversion will change them into a 'dying' role instead of reverting them to their original form. Spoiler { "role": "investp", "translation": "Investigator", "side": "village", "help": "Type /Stalk to see who visits whom!", "info": "Can inspect one person's role during the night. Sided with Village.", "actions": { "initialCondition": { "curse": { "cursedRole": "deadinvest", curseCount": 2, "silentCurse": true } "night": { "stalk": { "command": "copy", "copyAs": "invest2", "target": "AnyButSelf", "common": "Self", "priority": 5 } } } }, The only difference here is the initial condition Curse, which will eventually turn it into the role "deadinvest" which has an initial poison of -1. Other than that, the role functions identically, and in fact, if it visits someone who isn't the death omen it will return to being a regular investigator - however, the curse should remain. Meanwhile, the Death Omen can convert their target into an "investp" before all other actions happen. Since all Stalks are visible to other Stalkers, giving it higher priority shouldn't be an issue. Spoiler { "role": "deathomen", "translation": "Death Omen", "side": "omen", "help": "Anyone who crosses your path with die! Every two nights you can /Poison [name] and they will die in 2 turns. On other nights, /stalk someone so that you don't look suspicious!", "actions": { "teamTalk": true, "hax": { "stalk": { "revealPlayer": 1 } }, "night": { "convert": { "target": "AnyButTeam", "common": "Self", "newRole": { "investp": "invest" }, "priority": 4, "recharge": 2, "restrict": [ "stalk" ], "silent": true, "broadcast": "team" }, "stalk": { "target": "AnyButTeam", "common": "Team", "priority": 4, "restrict": [ "poison" ], "broadcast": "team" } }, "startup": "team-reveal" } } Hopefully this will work correctly, but since I don't know the ins and outs of the mafia code I'd have to test it on a server to be sure. If anything stands out as impossible, let me know and I'll try and fix it.
I forgot to mention that a new curse will always override any existing curse the player already has, so you may need to tweak your copy actions (possibly with more roles) to make sure someone won't live forever by constantly inspecting the Death Omen. If you see me on the server, PM me and I may set my test server for you to test.
I really like this concept a lot, and would love to see it sometime on the server and would love to try it out sometime.
Just made a few tweaks and updates and I think it's ready to go after a few more. Previously, in the event that two players are poisoned the same night (one from being targeted, the other by stalking the DO), the game would have them both eliminated suddenly without giving them a chance to vote. Simultaneous deaths would also occur if two Investigators with different resistance rates hit the DO consecutive nights. This would be fine in large games, because it is highly unprovable that 80% of the population manage to die in the same night. However, in small games, the village would have no chance of winning in unfortunate circumstances. Thus, players who have contacted the Omen will become Poisoned, instead of instantly dying, once they finish their transformation cycle. The main advantage of the above alteration is now games as small as 4 are possible. Previously, the risk of 2 or 3 players dying without warning made this impossible. The actual roles appear on the List at the beginning of the game, but like in Dethy, a silent curse covers up their names after night 1. This allows the village and the Omen to make deductions according to known facts, not generalized assumptions, while refraining from disclosing any discreet information as to who exactly is what role. All that's left is to clean up the code a bit and add more flavor text.
After a month of doing nothing with this theme (other than dreading its intricate code), I'm revamping it to accommodate for medium sized games. First of all, one class of investigators. Shrinking the code considerably. All investigators die from poison after 1 night. Also, there are now 3 different kinds of Death Omens. Wraiths: Can /Stalk someone during the night like an investigator. If Stalk'd by an investigator, that investigator receives a silent poison and dies the following night. Alternatively, it can /Doom someone to silent poison them. Doom still reveals the Stalk. If it uses Doom, it won't poison Stalkers. Can't be killed by Demons unless they indirectly kill them with /Possess. Demons: Can /Kill someone straight up or /Possess someone to kill whomever they were going to stalk. Basically /Possess transfers the kill through the target in order to duck suspicion. Trickster: For 3p games mostly. Can /Trick someone to give them a -2 vote. Can't be poisoned, though it can be killed. Auto-wins if it has Tricked everyone. I'll finish coding this over the next few days. Having a role that specifies "Inspector who has been Trick'd who will die the next day who is being possessed by a demon" is lots of fun.
@Roild More than 10. Would still be non-peak, probaby 15-16 max. Maybe more if I decide to add another role in, but right now I'm focusing on making the current ones fit.
That's doable then. Given the current setup I'd have 8 village, 1 Trickster, 1 Wraith, 1 Demon + 1 Demon host at 12 players. Demon host being a backup for Demon, converts to Demon when Demon is killed/lynched.
Couldn't the players just lynch the guy who got stalked by that poisoned player? My strategy to win would be to simply lynch whoever the psned player stalked. I didnt read every detail though. Good luck on your theme.
Then you missed the main points of the theme: Death Omen itself can poison, so that's not really a invincible strategy. Also, the poison in this theme is silent.