Skip to content

Commit

Permalink
11-17 role audit (#1245)
Browse files Browse the repository at this point in the history
Went through every Village-aligned role from Watcher to Funsmith. Mostly
bugfixes or extra flavor text. A few new albeit basic roles for the
other alignment rosters

---------

Co-authored-by: ammico <[email protected]>
Co-authored-by: ultimafia-bot <[email protected]>
  • Loading branch information
3 people authored Nov 16, 2023
1 parent 7603746 commit af8e4da
Show file tree
Hide file tree
Showing 454 changed files with 712 additions and 1,867 deletions.
4 changes: 2 additions & 2 deletions Games/types/Mafia/const/Priority.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const PRIORITY_UNTARGETABLE = -180;
const PRIORITY_MODIFY_ACTION_LABELS = -120;

const PRIORITY_REDIRECT_ACTION = -110;
const PRIORITY_STEAL_ACTIONS = -105;
const PRIORITY_COPY_ACTIONS = -105;
const PRIORITY_SWAP_VISITORS = -104;

const PRIORITY_CANCEL_ROLEBLOCK_ACTIONS = -100;
Expand Down Expand Up @@ -85,7 +85,7 @@ module.exports = {
PRIORITY_MODIFY_ACTION_DELAY,

PRIORITY_REDIRECT_ACTION,
PRIORITY_STEAL_ACTIONS,
PRIORITY_COPY_ACTIONS,
PRIORITY_SWAP_VISITORS,

PRIORITY_CANCEL_ROLEBLOCK_ACTIONS,
Expand Down
11 changes: 10 additions & 1 deletion Games/types/Mafia/items/Armor.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,13 @@ module.exports = class Armor extends Item {
// if armour starts out cursed, the setter will handle the logic of making it cursed
this.cursedUses = 0;
this.optionCursed = options?.cursed;
//this.cultUses = 1
//this.optionCult = options?.cult

this.listeners = {
immune: function (action, player) {
let killer = this.getVisitors(this.target, "kill");

if (player == this.holder && action.hasLabel("kill")) {
if (this.holder.tempImmunity["kill"]) return;

Expand All @@ -25,13 +29,16 @@ module.exports = class Armor extends Item {
}
}

this.uses--;
this.uses--;
this.holder.queueAlert(
":armor: Shattering to pieces, your armor saves your life!"
);

if (this.uses <= 0) {
this.removeEffectsIfNeeded();
/*if (this.cultUses <= 0) {
this.killer.giveEffect("Insanity", this.holder);
}*/
if (this.cursedUses <= 0) {
this.drop();
}
Expand Down Expand Up @@ -72,12 +79,14 @@ module.exports = class Armor extends Item {
if (item.name == "Armor") {
item.uses += this.uses;
item.cursedUses += this.cursedUses;
//item.cultUses += this.cultUses;
item.applyEffectsIfNeeded();
return;
}
}

super.hold(player);
this.cursed = this.optionCursed;
//this.cult = this.optionCult;
}
};
14 changes: 14 additions & 0 deletions Games/types/Mafia/roles/Cult/Ghoul.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const Role = require("../../Role");

module.exports = class Ghoul extends Role {
constructor(player, data) {
super("Ghoul", player, data);
this.alignment = "Cult";
this.cards = [
"VillageCore",
"WinWithCult",
"MeetingCult",
"CopyActions",
];
}
};
15 changes: 15 additions & 0 deletions Games/types/Mafia/roles/Cult/Ritualist.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const Role = require("../../Role");

module.exports = class Ritualist extends Role {
constructor(player, data) {
super("Ritualist", player, data);

this.alignment = "Cult";
this.cards = [
"VillageCore",
"WinWithCult",
"MeetingCult",
"Sacrifice",
];
}
};
14 changes: 14 additions & 0 deletions Games/types/Mafia/roles/Cult/Shadow.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const Role = require("../../Role");

module.exports = class Shadow extends Role {
constructor(player, data) {
super("Shadow", player, data);
this.alignment = "Cult";
this.cards = [
"VillageCore",
"WinWithCult",
"MeetingCult",
"TrackAndWatchPlayer",
];
}
};
7 changes: 7 additions & 0 deletions Games/types/Mafia/roles/Hostile/Tofurkey.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,12 @@ module.exports = class Tofurkey extends Role {
"FamineImmune",
"WinIfOnlyTurkeyAlive",
];
this.appearance = {
self: "real",
reveal: "Turkey",
condemn: "real",
death: "real",
investigate: "Turkey",
};
}
};
14 changes: 14 additions & 0 deletions Games/types/Mafia/roles/Mafia/Ape.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const Role = require("../../Role");

module.exports = class Ape extends Role {
constructor(player, data) {
super("Ape", player, data);
this.alignment = "Mafia";
this.cards = [
"VillageCore",
"WinWithMafia",
"MeetingMafia",
"CopyActions",
];
}
};
15 changes: 15 additions & 0 deletions Games/types/Mafia/roles/Mafia/Don.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const Role = require("../../Role");

module.exports = class Don extends Role {
constructor(player, data) {
super("Don", player, data);

this.alignment = "Mafia";
this.cards = [
"VillageCore",
"WinWithMafia",
"MeetingMafia",
"OverturnVote",
];
}
};
15 changes: 15 additions & 0 deletions Games/types/Mafia/roles/Mafia/Santista.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const Role = require("../../Role");
const { PRIORITY_MAFIA_KILL } = require("../../const/Priority");

module.exports = class Santista extends Role {
constructor(player, data) {
super("Santista", player, data);
this.alignment = "Mafia";
this.cards = [
"VillageCore",
"WinWithMafia",
"MeetingMafia",
"MeetWithMasons",
];
}
};
15 changes: 15 additions & 0 deletions Games/types/Mafia/roles/Village/Apothecary.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const Role = require("../../Role");

module.exports = class Apothecary extends Role {
constructor(player, data) {
super("Apothecary", player, data);

this.alignment = "Village";
this.cards = [
"VillageCore",
"WinWithVillage",
"CleanseVisitors",
];
this.immunity.wolfBite = 1;
}
};
2 changes: 1 addition & 1 deletion Games/types/Mafia/roles/Village/Blacksmith.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ module.exports = class Blacksmith extends Role {
super("Blacksmith", player, data);

this.alignment = "Village";
this.cards = ["VillageCore", "WinWithVillage", "ArmorGiver"];
this.cards = ["VillageCore", "WinWithVillage", "GiveArmor"];
}
};
2 changes: 1 addition & 1 deletion Games/types/Mafia/roles/Village/Miller.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ module.exports = class Miller extends Role {
super("Miller", player, data);

this.alignment = "Village";
this.cards = ["VillageCore", "WinWithVillage", "GuiltyAppearance"];
this.cards = ["VillageCore", "WinWithVillage", "AppearAsMafioso"];
}
};
10 changes: 9 additions & 1 deletion Games/types/Mafia/roles/Village/Monkey.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ module.exports = class Monkey extends Role {
super("Monkey", player, data);

this.alignment = "Village";
this.cards = ["VillageCore", "WinWithVillage", "StealActions"];
this.cards = ["VillageCore", "WinWithVillage", "CopyActions"];
this.meetingMods = {
Copy: {
actionName: "Monkey See",
},
Imitate: {
actionName: "Monkey Do",
},
};
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ module.exports = class Occultist extends Role {
constructor(player, data) {
super("Occultist", player, data);

this.alignment = "Independent";
this.winCount = "Village";
this.cards = ["VillageCore", "WinWithCult", "Oblivious"];
this.alignment = "Village";
this.cards = ["VillageCore", "WinWithVillage", "AppearAsCultist"];
}
};
4 changes: 0 additions & 4 deletions Games/types/Mafia/roles/Village/Priest.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ module.exports = class Priest extends Role {
"VillageCore",
"WinWithVillage",
"LearnVisitorsRole",
"CleanseLycanVisitors",
"CureAlcoholicVisitors",
"KillWerewolfVisitors",
"ConvertKillersOnDeath",
];
this.immunity.wolfBite = 1;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
const Role = require("../../Role");

module.exports = class Monitor extends Role {
module.exports = class Voyeur extends Role {
constructor(player, data) {
super("Monitor", player, data);
super("Voyeur", player, data);

this.alignment = "Village";
this.cards = ["VillageCore", "WinWithVillage", "WatchPlayerRole"];
Expand Down
42 changes: 0 additions & 42 deletions Games/types/Mafia/roles/cards/AlignmentLearnerDelayed.js

This file was deleted.

22 changes: 22 additions & 0 deletions Games/types/Mafia/roles/cards/AppearAsCultist.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
const Card = require("../../Card");

module.exports = class AppearAsCultist extends Card {
constructor(role) {
super(role);

const selfAppearance = role.name == "Occultist" ? "Villager" : "real";

this.appearance = {
self: selfAppearance,
reveal: "real",
condemn: "Cultist",
death: "real",
investigate: "Cultist",
};

this.hideModifier = {
condemn: true,
investigate: true,
};
}
};
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const Card = require("../../Card");

module.exports = class GuiltyAppearance extends Card {
module.exports = class AppearAsMafioso extends Card {
constructor(role) {
super(role);

Expand Down
44 changes: 0 additions & 44 deletions Games/types/Mafia/roles/cards/CleanseLycanVisitors.js

This file was deleted.

Loading

0 comments on commit af8e4da

Please sign in to comment.