169 похожих чатов

Class Enemy { constructor (name, id_name, xp,

health, health_max, stamina, stamina_max, lvl, attack, defence, magicAttack, magicDefense ) {
this.name = name;
this.id_name = id_name;
this.xp = xp;
this.health = health;
this.health_max = health_max;
this.stamina = stamina;
this.stamina_max = stamina_max;
this.lvl = lvl;
this.battle = {
attack: attack,
defence: defence,
magicAttack: magicAttack,
magicDefense: magicDefense
};
}
}
window.Enemy = Enemy; // attach to the global scope



class Goblin extends Enemy {
constructor(name, id_name, xp, health, health_max, stamina, stamina_max, lvl, attack, defence, magicAttack, magicDefense) {
super(name, id_name, xp, health, health_max, stamina, stamina_max, lvl, attack, defence, magicAttack, magicDefense);
this.kind = 'goblin';
this.xp ??= 20;
this.health ??= random(25,35);
this.health_max ??= random(25,35);
this.stamina ??= random(50,70);
this.stamina_max ??= random(50,70);
this.lvl ??= random(1,2);
this.battle.attack ??= random(1,2);
this.battle.defence ??= random(0,1);
this.battle.magicAttack ??= 0;
this.battle.magicDefense ??= 0;
}
}
window.Goblin = Goblin; // attach to the global scope



----------------------------------------

// First option
let goblin2 = new Goblin('Super goblin', 'goblin2', random(100, 200), 100, 100, 5, 5, 5, 5, 5);
// Second option
let temp_goblin3 = {
name: 'Generic goblin',
id_name: 'goblin2',
xp: 40,
...
}
$wolf2 = new Goblin(temp_goblin3.name, temp_goblin3.id_name, temp_goblin3.xp ...);

2 ответов

11 просмотров

Можешь передавать все параметры как объект, будет легче использовать, потому что сразу видно какой параметр устанавливаешь. class Enemy { constructor (config) { const defaultConfig = { healthMax: random(25,35), // ...etc }; this.cfg = { ...defaultConfig, ...config, } } } const enemy = new Enemy({ healthMax: 40, }); Так же можешь задать дефолтный конфиг и переписывать его переданным конфигом. Если передано свойство healthMax, то будет использоваться оно, а если нет то дефолтное. Но при таком подходе внутри класса придётся обращаться как this.cfg.healthMax.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта