Support Unown formes

This adds Unown formes as true cosmetic formes, and also applies word
filters to them.
This commit is contained in:
Guangcong Luo 2020-04-29 14:54:49 -07:00
parent 15e4d4f2bd
commit 2b83a5ed51
2 changed files with 44 additions and 1 deletions

View File

@ -409,6 +409,34 @@ export const BattleAliases: {[alias: string]: string} = {
miniorblue: "Minior",
miniorindigo: "Minior",
miniorviolet: "Minior",
unownb: "Unown",
unownc: "Unown",
unownd: "Unown",
unowne: "Unown",
unownf: "Unown",
unowng: "Unown",
unownh: "Unown",
unowni: "Unown",
unownj: "Unown",
unownk: "Unown",
unownl: "Unown",
unownm: "Unown",
unownn: "Unown",
unowno: "Unown",
unownp: "Unown",
unownq: "Unown",
unownr: "Unown",
unowns: "Unown",
unownt: "Unown",
unownu: "Unown",
unownv: "Unown",
unownw: "Unown",
unownx: "Unown",
unowny: "Unown",
unownz: "Unown",
unownexclamation: "Unown",
unownquestion: "Unown",
pokestargiant2: "Pokestar Giant",
pokestarmonica2: "Pokestar Giant",
pokestarufopropu1: "Pokestar UFO",

View File

@ -103,10 +103,15 @@ class Ladder extends LadderStore {
return null;
}
const regex = /(?:^|])([^|]*)\|/g;
const regex = /(?:^|])([^|]*)\|([^|]*)\|/g;
let match = regex.exec(team);
let unownWord = '';
while (match) {
let nickname = match[1];
const speciesid = toID(match[2] || match[1]);
if (speciesid.length <= 6 && speciesid.startsWith('unown')) {
unownWord += speciesid.charAt(5) || 'a';
}
if (nickname) {
nickname = Chat.nicknamefilter(nickname, user);
if (!nickname || nickname !== match[1]) {
@ -119,6 +124,16 @@ class Ladder extends LadderStore {
}
match = regex.exec(team);
}
if (unownWord) {
const filtered = Chat.nicknamefilter(unownWord, user);
if (!filtered || filtered !== unownWord) {
connection.popup(
`Your team was rejected for the following reason:\n\n` +
`- Your Unowns spell out a banned word: ${unownWord.toUpperCase()}`
);
return null;
}
}
let rating = 0;
let valResult;