代码拉取完成,页面将自动刷新
const Role = require('./role');
class Team {
constructor(server, option, creator) {
this.server = server;
this.option = option;
this.size = this.server.config.team.size;
this.roles = new Array(this.size).fill(creator || true, 0, 1).fill(true, 1);
}
add(role) {
if (this.roles[role.index] === true) {
this.roles[role.index] = role;
} else {
throw '';
}
}
remove(role) {
if (this.roles[role.index] === role) {
this.roles[role.index] = true;
} else {
throw '';
}
}
dispose() {
this.roles.forEach(role => role instanceof Role && delete role.player.room);
this.roles = new Array(this.size).fill(true);
}
get count() {
return this.roles.filter(role => role instanceof Role).length;
}
get emptyIndex() {
return this.roles.findIndex(role => role === true);
}
get emptyCount() {
return this.roles.filter(role => role === true).length;
}
get openCount() {
return this.roles.filter(role => role !== false).length;
}
get data() {
return {
name: this.option.name,
color: this.option.color,
icon: this.option.icon,
roles: this.roles.map(role => role instanceof Role ? role.data : role)
}
}
static create(server, option, creator) {
return new (server.config.Team || Team)(server, option, creator);
}
static createTeams(server, creator) {
let teams = server.config.teams;
if (teams && teams.length) {
return [ Team.create(server, teams[0], creator), ...teams.slice(1).map(team => Team.create(server, team)) ];
} else {
return [ Team.create(server, { }, creator) ];
}
}
}
module.exports = Team;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。