init: add workspace files
This commit is contained in:
94
os/skill/family.js
Normal file
94
os/skill/family.js
Normal file
@@ -0,0 +1,94 @@
|
||||
FAMILY = function () {
|
||||
this.titles = [];
|
||||
this.npcs = [];
|
||||
this.battle_family = null;
|
||||
//this.scores = new Map();
|
||||
this.battle_score = 0;
|
||||
this.battle_gift = 0;
|
||||
this.can_battle = false;
|
||||
}
|
||||
|
||||
FAMILY.inherits(BASE);
|
||||
FAMILIES = {};
|
||||
FAMILY.prototype.set_titles = function () {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
this.titles.push(arguments[i]);
|
||||
}
|
||||
}
|
||||
FAMILY.prototype.create = function (path) {
|
||||
FAMILIES[this.id] = this;
|
||||
|
||||
}
|
||||
FAMILY.prototype.update = function (path) {
|
||||
FAMILIES[this.id] = this;
|
||||
}
|
||||
FAMILY.prototype.query_title = function (level) {
|
||||
return this.titles[level];
|
||||
}
|
||||
|
||||
|
||||
FAMILY.prototype.query_temp = CHARACTER.prototype.query_temp;
|
||||
FAMILY.prototype.set_temp = CHARACTER.prototype.set_temp;
|
||||
FAMILY.prototype.remove_temp = CHARACTER.prototype.remove_temp;
|
||||
FAMILY.prototype.add_temp = CHARACTER.prototype.add_temp;
|
||||
|
||||
FAMILY.prototype.send = function (str) {
|
||||
for (var i = 0; i < WORLD.USERS.length; i++) {
|
||||
if (WORLD.USERS[i].family == this) {
|
||||
WORLD.USERS[i].send(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
FAMILY.prototype.is_battle = function (fam) {
|
||||
return this.battle_family == fam.id;
|
||||
}
|
||||
FAMILY.prototype.add_score = function (me, sc) {
|
||||
this.battle_score += sc;
|
||||
}
|
||||
|
||||
|
||||
|
||||
CHARACTER.prototype.send_fam = function (str) {
|
||||
this.family.send(str);
|
||||
}
|
||||
FAMILY.prototype.create_name = function () {
|
||||
return UTIL.random_name(this.gender);
|
||||
}
|
||||
FAMILY.prototype.query_skill = function (grade) {
|
||||
if (!this.skill_levels) {
|
||||
this.skill_levels = [];
|
||||
for (var i = 0; i < this.skills.length; i++) {
|
||||
if (!this.skill_levels[this.skills[i].grade]) {
|
||||
this.skill_levels[this.skills[i].grade] = [];
|
||||
}
|
||||
this.skill_levels[this.skills[i].grade].push(this.skills[i]);
|
||||
}
|
||||
}
|
||||
if (grade >= this.skill_levels.length) grade = this.skill_levels.length - 1;
|
||||
return this.skill_levels[grade].random();
|
||||
}
|
||||
FAMILY.prototype.query_skills = function (grade) {
|
||||
if (!this.skill_levels) {
|
||||
this.skill_levels = [];
|
||||
for (var i = 0; i < this.skills.length; i++) {
|
||||
if (!this.skill_levels[this.skills[i].grade]) {
|
||||
this.skill_levels[this.skills[i].grade] = [];
|
||||
}
|
||||
this.skill_levels[this.skills[i].grade].push(this.skills[i]);
|
||||
}
|
||||
}
|
||||
if (grade >= this.skill_levels.length) grade = this.skill_levels.length - 1;
|
||||
return this.skill_levels[grade];
|
||||
}
|
||||
FAMILY.prototype.add_gongji = function (me, count) {
|
||||
if (!count) return;
|
||||
me.add_temp("gongji", count);
|
||||
if (count < 0) return;
|
||||
if (!this.tops) this.tops = {};
|
||||
var old = this.tops[me.id];
|
||||
if (!old) this.tops[me.id] = { name: me.name, score: count };
|
||||
else {
|
||||
old.score += count;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user