我正在尝试创建第5版D& D角色生成器应用程序(我知道,超级书呆子)。我试图根据角色的等级来询问某些问题。现在我想要它只是更新信息而不是重新获取所有相同的信息。例如,如果角色是1级的游侠,它会询问有利于地形和偏爱的敌人。如果我将角色提升到第2级,它将重新解决这些问题,并询问与第2级相关的下一个问题。如何使用第2级收集的信息进行更新等等?
我相信这个问题也将回答我如何更新经验值而不必一遍又一遍地问同样的问题。如果没有,这是我的下一个问题。
感谢。
以下是相关代码的示例:
if (level >= 1){
var favTerrain1 = prompt("Name your favorite terrain.");
var favEnemy1 = prompt("Name your favorite enemy type or 2 humanoid races. (If you select the latter, please separate with a comma.)");
document.getElementById("level1").innerHTML = "<h4><b> Favored Terrain: </b>" + favTerrain1 + "<br><b>Favored Enemy(Enemies): </b>" + favEnemy1 + "</h4>";
}
if (level >= 2) {
var lv2 = +prompt("Choose fighting style: 1. Archery 2. Defense 3. Dueling 4. Two-Weapon Fighting");
var level2;
switch(lv2){
case 1:
level2 = "<b>Archery</b> You gain +2 bonus attack rolls you make with ranged weapons.";
break;
case 2:
level2 = "<b>Defense</b> While you are wearing armor, you gain a +1 to armor class.";
armorClass = armorClass + 1;
break;
case 3:
level2 = "</b>Dueling</b> When you are wielding a melee weapon and no other weapons, you gain a +2 bonus to damage rolls with that weapon.";
break;
case 4:
level2 = "<b>Two-Weapon Fighting</b> When you engage in two-weapon fighting, you can add your ability modifier to the damage of the second attack.";
break;
}
} else {
level2= " ";
}
如果我将级别从1升级到2,它会询问level1和level2两组问题。
答案 0 :(得分:0)
通过构建角色,您将以最经典的方式创建一个对象:角色具有许多在升级时构建的属性。
要仅向用户提示必要的问题,您可以检查player
对象是否已具有使用hasOwnProperty功能在该级别获得的属性。
所以你可以使用像
这样的东西var player = new Object();
player.favoredTerrain = "jungle";
if (!player.hasOwnProperty('favoredMount')){
//whatever your code is to ask for the favored mount
};
if (!player.hasOwnProperty('favoredTerrain')){
//whatever code in here won't run because he has a favored Terrain already!
};
请注意,许多框架会使像 这样的内容更容易在大量值列表中执行,例如Angular的测试,看看是否填充了X值,然后隐藏/取消隐藏问题。或者,JQuery将使您可以轻松选择和隐藏已经回答的问题块。由于您的问题是“我如何使用Javascript执行此操作”,我尝试使用“纯”版本