From 46daf130928903ebd0c9cf0e5f865a1201fd6601 Mon Sep 17 00:00:00 2001 From: dillandatanerd Date: Mon, 28 Jul 2025 16:23:53 +0200 Subject: [PATCH 1/2] upto war section --- src/viking.js | 89 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 85 insertions(+), 4 deletions(-) diff --git a/src/viking.js b/src/viking.js index 9017bfc8a..70d2a3781 100755 --- a/src/viking.js +++ b/src/viking.js @@ -1,11 +1,92 @@ // Soldier -class Soldier {} +class Soldier { + constructor(health, strength) { + this.health=health + this.strength=strength + } + + attack(){ + return this.strength + } + + receiveDamage(damage){ + this.health -= damage + + } +} // Viking -class Viking {} +class Viking extends Soldier{ + constructor(name,health,strength){ + super (health,strength) + this.name=name + } + + receiveDamage(damage){ + this.health -= damage + + if (this.health>0){ + return `${this.name} has received ${damage} points of damage` + } + else{ + return `${this.name} has died in act of combat` + } + } + + battleCry(){ + return`Odin Owns You All!` + } + +} // Saxon -class Saxon {} +class Saxon extends Soldier{ + constructor(health,strength){ + super (health,strength) +} + + receiveDamage(damage){ + this.health -= damage + + if (this.health>0){ + return `A Saxon has received ${damage} points of damage` + } + else{ + return `A Saxon has died in combat` + } + } +} // War -class War {} +class War { +constructor(){ + this.vikingArmy=[] + this.saxonArmy=[] +} + +addViking(viking){ + this.vikingArmy.push(viking) +} + +addSaxon(saxon){ + this.saxonArmy.push(saxon) +} + +vikingAttack(){ + let randomSax=randomSoldierSelector(this.saxonArmy) + let randomViking=randomSoldierSelector(this.vikingArmy) + + this.saxonArmy[randomSax].receiveDamage(this.vikingArmy[randomViking].attack()) + if (this.saxonArmy[randomSax].health<=0){ + reutnarmy.splice(randomSax, 1) + } +} + +} + + +function randomSoldierSelector(army){ + return Math.floor(Math.random() * army.length) +} + + From d6e5b1fda5cfc4cf192c36ba3fd80314f59ce164 Mon Sep 17 00:00:00 2001 From: dillandatanerd Date: Mon, 28 Jul 2025 18:07:23 +0200 Subject: [PATCH 2/2] completed lab --- src/viking.js | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/src/viking.js b/src/viking.js index 70d2a3781..2e47c8f76 100755 --- a/src/viking.js +++ b/src/viking.js @@ -72,16 +72,46 @@ addSaxon(saxon){ this.saxonArmy.push(saxon) } -vikingAttack(){ - let randomSax=randomSoldierSelector(this.saxonArmy) - let randomViking=randomSoldierSelector(this.vikingArmy) +vikingAttack() { + let randomSax = randomSoldierSelector(this.saxonArmy); + let randomViking = randomSoldierSelector(this.vikingArmy); - this.saxonArmy[randomSax].receiveDamage(this.vikingArmy[randomViking].attack()) - if (this.saxonArmy[randomSax].health<=0){ - reutnarmy.splice(randomSax, 1) + let result = this.saxonArmy[randomSax].receiveDamage( + this.vikingArmy[randomViking].attack() + ); + + if (this.saxonArmy[randomSax].health <= 0) { + this.saxonArmy.splice(randomSax, 1); + } + + return result; +} + + saxonAttack() { + let randomSax = randomSoldierSelector(this.saxonArmy); + let randomViking = randomSoldierSelector(this.vikingArmy); + + let result = this.vikingArmy[randomViking].receiveDamage(this.saxonArmy[randomSax].attack()) + if (this.vikingArmy[randomViking].health <= 0) { + this.vikingArmy.splice(randomViking, 1); } + + return result; + +} + +showStatus(){ + if (this.vikingArmy.length === 0){ + return "Saxons have fought for their lives and survived another day..." + } + else if(this.saxonArmy.length === 0){ + return "Vikings have won the war of the century!" + } else { + return "Vikings and Saxons are still in the thick of battle." + } } + }