添加判定character[4]的一些init后的filter基底

This commit is contained in:
mengxinzxz 2024-02-01 08:08:48 +08:00
parent 2766fbbad1
commit 6dde6321e4
2 changed files with 19 additions and 0 deletions

View File

@ -540,6 +540,13 @@ export class Get extends Uninstantable {
} }
return info; return info;
} }
static characterInitFilter(name) {
const info = get.character(name);
if (!info || !info[4]) return [];
const filter = info[4].find(tag => tag.startsWith('InitFilter'));
if (!filter) return [];
return filter.split(':').slice(1);
}
static characterIntro(name) { static characterIntro(name) {
if (lib.characterIntro[name]) return lib.characterIntro[name]; if (lib.characterIntro[name]) return lib.characterIntro[name];
var tags = get.character(name, 4); var tags = get.character(name, 4);

View File

@ -8321,6 +8321,18 @@ export class Player extends HTMLDivElement {
if (mode == 'versus' && (_status.mode == 'four' || _status.mode == 'guandu')) return true; if (mode == 'versus' && (_status.mode == 'four' || _status.mode == 'guandu')) return true;
return false; return false;
} }
isInitFilter(tag) {
const player = this;
for (const name of [player.name, player.name1, player.name2]) {
if (name && lib.character[name]) {
const filter = get.characterInitFilter(name);
if (!filter.includes(tag)) continue;
if (lib.characterInitFilter[name] && lib.characterInitFilter[name](tag) === false) continue;
return true;
}
}
return false;
}
hasZhuSkill(skill, player) { hasZhuSkill(skill, player) {
if (!this.hasSkill(skill)) return false; if (!this.hasSkill(skill)) return false;
if (player) { if (player) {