Я создаю текстовую RPG-игру с выбором, используя Javascript. Я могу добавлять функции внутри объекта и запускать их, однако я хочу, чтобы функция запускалась, если выбран параметр (текстовый узел).
В настоящее время я объявляю функцию, а затем вызываю ее по адресу внизу страницы. Проблема в том, что я хочу, чтобы функция работала, как только будет выбран выбор.
Вот код, который у меня есть ...
function addRadiatedStatus(){
character.radiated = true;
}
const textNodes = [
{
id: 1,
text: "Do you want to help this person?",
options: [
{
text: "Yes",
nextText: 2
},
{
text: "No",
nextText: 2
},
],
faction: "Greaser"
},
{
id: 2,
text: "It was a trap, do you run or kill them?",
options: [
{
text: "Run",
nextText: 3,
damage: 0,
},
{
text: "Kill",
nextText: 5,
damage: 8,
moneyDrop: 20,
radiationDamage: 2,
function: function update(){
if(character.greaser == true && textNodes[1].faction ==
"greaser"){
console.log("greaser check worked");
}
console.log("upadte function worked")
character.health -= this.damage;
character.cash += this.moneyDrop;
character.radiationLevel += this.radiationDamage;
character.maxHP -= this.radiationDamage;
if(this.radiationDamage >= 1 ){
addRadiatedStatus();
}
console.log("character HP" + " " + character.health);
console.log("character maxHP" + " " + character.maxHP);
console.log("moneyDrop " + " " + this.moneyDrop);
console.log("character cash" + " " + character.cash);
console.log("radiation level" + " " + character.radiationLevel);
console.log("character Raditated?" + " " + character.radiated);
}
}
],
faction: "Greaser",
}
]
textNodes[1].options[1].function();
Я пробовал несколько разных вещей, включая добавление еще одного ключа run: update()
, run: this.update()
, run: this.function
, et c.
I я также немного смущен, потому что я думал, что ES6 позволяет мне удалить ключевое слово function
, но это, похоже, не разрешено (я, вероятно, просто делаю это неправильно или сталкиваюсь с проблемой в зависимости от того, как я настроил свой объект).
Я не уверен, как go от вызова textNodes[1].options[1].function
к динамическому вызову той функции, которая вложена в указанный c вариант выбора.
Заранее благодарим за помощь.