Team.prototype.selectRandomTarget = function (targetTeam) {
if (!(targetTeam instanceof Team)) {
throw new TypeMismatchError("targetTeam must be an instance of 'Team'");
}
var numberOfMembers = targetTeam.members.length;
var target = null;
while(target == null || !target.isAlive())
{
var randomIndex = Math.floor(Math.random() * numberOfMembers);
target = targetTeam.members[randomIndex];
}
return target;
};
Unit.prototype.SelectSameType = function(targetTeam)
{ //Iterate through all the players and look for at least one of the same type that's alive
for(let i = 0; i < targetTeam.length; i++)
{
let target = targetTeam[i];
if(target.type === this.type && target.isAlive()) return target;
}
return null;
};
Team.prototype.kick = function(targetTeam) {
console.log(`\nTeam ${this.name} is attacking`);
for(var i=0; i < this.members.length; i++) {
var singleMember = this.members[i];
if(!this.isAlive() || !targetTeam.isAlive()) break;
if(!singleMember.isAlive()) continue;
//Check for the same type first
var target = singleMember.SelectSameType(targetTeam)
if(target === null) target = this.selectRandomTarget(targetTeam);
singleMember.kick(target);
if(target.isAlive()) target.kick(singleMember);
}
};
document.addEventListener("click", (e) => {
if (e.target === priceFilter) {
shop.sortProductsByPrice(Product.SORT_ORDER_ASC);
shop.show();
}
}, false);