Javascript 如何使用class属性正确创建条件?

Javascript 如何使用class属性正确创建条件?,javascript,Javascript,如何在类团队中更改方法kick的逻辑。如果英雄还活着,他会在英雄队伍中随机选择一个目标,并对她造成伤害,因此在职业游戏中,两个队伍1队和2队之间发生了战斗。有必要先选择同一类型的球门,并使用该球门的踢法:从AM1射门的弓箭手从AM2射门,然后返回。若弓箭手死亡,那个么选择目标是偶然的 伪代码,我的意思是: var simpletypeUnit = this.members.type[i]; if(simpletypeUnit.type == target.type && this

如何在类团队中更改方法kick的逻辑。如果英雄还活着,他会在英雄队伍中随机选择一个目标,并对她造成伤害,因此在职业游戏中,两个队伍1队和2队之间发生了战斗。有必要先选择同一类型的球门,并使用该球门的踢法:从AM1射门的弓箭手从AM2射门,然后返回。若弓箭手死亡,那个么选择目标是偶然的

伪代码,我的意思是:

var simpletypeUnit = this.members.type[i];
if(simpletypeUnit.type == target.type && this.isAlive) {
  simpletypeUnit.kick(target)
}else {
 //random target selection 
}
//用于创建单元的构造函数 函数UnitmaxHealth,基本损坏,类型{ this.maxHealth=maxHealth; this.currentHealth=maxHealth; this.basicDamage=basicDamage; this.type=type; } /*显示生命状态的方法,如果生命值更大,则为true 小于0,如果等于或小于,则为false*/ Unit.prototype.isAlive=函数{ 返回此值。currentHealth>0; }; /*一种方法 显示健康水平*/ Unit.prototype.getFormattedHealth=函数{ 返回this.currentHealth+/+this.maxHealth+HP; }; /*一种返回英雄的基础伤害和对敌人的伤害的方法 武器,如果它被设置*/ Unit.prototype.getDamage=函数{ 返回此.basicDamage; }; /*击球法 为所选择的目的而奋斗的英雄*/ Unit.prototype.kick=功能目标{ 如果这是我的生活{ target.currentHealth=Math.max0, target.currentHealth-this.getDamage; console.logthis.type+hit+this.type; } console.logthis.type+hit+target.type; 归还这个; }; /*显示英雄的所有特征和变化的方法 和他们在一起*/ Unit.prototype.toString=函数{ 返回类型-+this.Type+,处于活动状态-+ this.isAlive+,+this.getFormattedHealth+ '英雄当前伤害-'+this.getDamage+'点数'; }; /*我们将使用的主要单元类型的构造函数*/ 功能、健康、基本损害{ 单位。应用程序,参数; this.type=弓箭手; } 功能:最大健康、基本损害{ 单位。应用程序,参数; 这个类型=剑客; } 函数MagemaxHealth,basicDamage{ 单位。应用程序,参数; this.type=mage; } Archer.prototype=Object.createUnit.prototype; browsman.prototype=Object.createUnit.prototype; Mage.prototype=Object.createUnit.prototype; /*我们创建单元,然后将其写入团队。 每队三个单位*/ var archer=新archer 60,5; var剑客=新剑客100,10; var mage=新Mage40,15; var troll=新的Archer70,5; var orc=新剑客150,10; var德鲁伊=新法师50,15; /*用于创建团队的类*/ 功能组名{ this.name=名称; 这是。成员=[]; } /*用于添加具有任意单位数的新单位的方法*/ Team.prototype.addMember=函数…成员{ 这个。会员。推……会员; }; /*团队的生活方式,如果所有参与者 目前的健康状况; }; /*随机选择目标的方法,如果英雄还活着, 然后随机选择目标,并使用 踢法*/ Team.prototype.selectRandomTarget=功能目标AM{ var numberOfMembers=targettam.members.length; var目标=null; whiletarget==null | |!target.isAlive { var randomIndex=Math.floorMath.random*numberOfMembers; target=targettam.members[随机索引]; } 回报目标; }; /*方法的伤害,我们通过数组的成员,如果目标 如果他还活着,那么我们会使用selectRandomTarget方法意外造成伤害*/ Team.prototype.kick=函数targettem{ console.log`\nTeam${this.name}正在攻击`; forvar i=0;in.currentHealth} `; 回来 } 团队1.2; 团队2.1; requestAnimationFramethis.battle.bindthis; }; var game=新游戏团队1、团队2;
游戏。战斗 您可以在代码中添加这两个小的调整。如果我理解这个问题,这应该可以满足你的需要

Unit.prototype.SelectSameType=functionTargetAM {//遍历所有玩家,并查找至少一个活动的相同类型的玩家 forlet i=0;i只是澄清一下,如果轮到弓箭手,他们应该攻击另一个弓箭手。如果那个弓箭手死了,攻击另一个职业?同样,每次循环的时候,你都应该检查W targetTeam是否还活着,否则就有机会运行一个初始循环目标搜索的逻辑是在同一类型的英雄活着的时候击败他,当他死了,搜索随机目标进行攻击修正了一个小的拼写错误,现在应该可以了。我使用的是targettam.length而不是targettam.members.lengthIt不起作用,同样的英雄打败了其他英雄,而同样类型的英雄仍然存在。你运行了多少次迭代?另一个需要考虑的是,统计数据是恒定的,一个团队总是比另一个更强大,尝试在一定范围内随机化攻击强度。