diff --git a/client/src/ui/modals/ChangelogModal.scss b/client/src/ui/modals/ChangelogModal.scss
index 57531233..894a450a 100644
--- a/client/src/ui/modals/ChangelogModal.scss
+++ b/client/src/ui/modals/ChangelogModal.scss
@@ -30,11 +30,12 @@
}
.primary-link {
- color: lime;
+ color: rgb(91, 80, 255);
font-size: 120%;
font-weight: bold;
display: inline-block;
margin: 20px auto;
+ font-size: 15px;
}
}
diff --git a/client/src/ui/modals/ChangelogModal.tsx b/client/src/ui/modals/ChangelogModal.tsx
index 75eed6c2..908820c6 100644
--- a/client/src/ui/modals/ChangelogModal.tsx
+++ b/client/src/ui/modals/ChangelogModal.tsx
@@ -13,10 +13,9 @@ function ChangelogModal() {
(Credit to A-Bot, cool guy 53, and Battleship)
- Winter Event (Part 2)
- - 12 New Skins! (7 are event skins!)
- - Even better sales for the Skin Sale!
- - New shop UI + better buy counters!
+ Winter Event (Part 3)
+ - Reworked Evolutions! (P.S. - you can also press G to use your ability!)
+ - Join the Swordbattle Discord to give feedback on this update and help us improve it!
);
diff --git a/server/src/game/components/Health.js b/server/src/game/components/Health.js
index baf3c089..0cd67d4c 100644
--- a/server/src/game/components/Health.js
+++ b/server/src/game/components/Health.js
@@ -1,7 +1,7 @@
const Property = require('./Property');
class Health {
- constructor(max, regen = 1, regenWait = 5000) {
+ constructor(max, regen = 1, regenWait = 2500) {
this.max = new Property(max);
this.regen = new Property(regen);
this.regenWait = new Property(regenWait);
diff --git a/server/src/game/components/LevelSystem.js b/server/src/game/components/LevelSystem.js
index c50a2a27..ae624a8b 100644
--- a/server/src/game/components/LevelSystem.js
+++ b/server/src/game/components/LevelSystem.js
@@ -51,7 +51,7 @@ class LevelSystem {
[Types.Buff.Speed]: {
level: 0,
max: 10,
- step: 0.05,
+ step: 0.04,
buyable: true,
},
[Types.Buff.Size]: {
@@ -62,7 +62,7 @@ class LevelSystem {
},
[Types.Buff.Health]: {
level: 0,
- step: 0.08,
+ step: 0.065,
max: 10,
buyable: true,
},
@@ -74,7 +74,7 @@ class LevelSystem {
},
[Types.Buff.Damage]: {
level: 0,
- step: 0.045,
+ step: 0.04,
max: 10,
buyable: true,
},
@@ -101,12 +101,6 @@ class LevelSystem {
if (buy && !this.buffs[type].buyable) return;
this.buffs[type].level += 1;
if(buy) this.upgradePoints -= 1;
-
- // if health buff, increase current health
- if (type === Types.Buff.Health) {
- this.player.health.percent *= 1.5;
- this.player.health.percent = Math.min(1, this.player.health.percent);
- }
}
}
diff --git a/server/src/game/evolutions/Berserker.js b/server/src/game/evolutions/Berserker.js
index 1c243422..edf99673 100644
--- a/server/src/game/evolutions/Berserker.js
+++ b/server/src/game/evolutions/Berserker.js
@@ -9,18 +9,24 @@ module.exports = class Berserker extends Evolution {
static abilityCooldown = 60;
applyAbilityEffects() {
- this.player.sword.damage.multiplier *= 1.15;
+ this.player.shape.setScale(0.95);
+ this.player.sword.damage.multiplier *= 1.35;
this.player.sword.knockback.multiplier['ability'] = 1.8;
- this.player.speed.multiplier *= 1.5;
- this.player.sword.swingDuration.multiplier['ability'] = 0.6;
+ this.player.speed.multiplier *= 1.4;
+ this.player.sword.swingDuration.multiplier['ability'] = 0.7;
+ this.player.health.max.multiplier *= 0.75;
+ this.player.health.regenWait.multiplier *= 2;
+ this.player.health.regen.multiplier *= 2;
}
update(dt) {
super.update(dt);
- this.player.sword.damage.multiplier *= 1.1;
- this.player.knockbackResistance.multiplier *= 1.05;
+ this.player.sword.damage.multiplier *= 1.25;
+ this.player.knockbackResistance.multiplier *= 1.1;
this.player.speed.multiplier *= 1.1;
- this.player.health.max.multiplier *= 0.9;
+ this.player.health.max.multiplier *= 0.85;
+ this.player.health.regenWait.multiplier *= 1.25;
+ this.player.health.regen.multiplier *= 1.2;
}
}
diff --git a/server/src/game/evolutions/Knight.js b/server/src/game/evolutions/Knight.js
index 452a9223..8ae63f77 100644
--- a/server/src/game/evolutions/Knight.js
+++ b/server/src/game/evolutions/Knight.js
@@ -4,22 +4,24 @@ const Types = require('../Types');
module.exports = class Knight extends Evolution {
static type = Types.Evolution.Knight;
static level = 14;
- static abilityDuration = 6;
+ static abilityDuration = 7;
static abilityCooldown = 90;
applyAbilityEffects() {
- this.player.sword.damage.multiplier *= 1.15;
- this.player.sword.knockback.multiplier['ability'] = 1.8;
- this.player.speed.multiplier *= 1.5;
- this.player.sword.swingDuration.multiplier['ability'] = 0.6;
+ this.player.shape.setScale(1.45);
+ this.player.sword.damage.multiplier *= 1.25;
+ this.player.sword.knockback.multiplier['ability'] = 1.4;
+ this.player.speed.multiplier *= 0.75;
+ this.player.sword.swingDuration.multiplier['ability'] = 0.5;
+ this.player.knockbackResistance.multiplier *= 1.3;
}
update(dt) {
super.update(dt);
-
- this.player.sword.damage.multiplier *= 1.1;
- // this.player.knockbackResistance.multiplier *= 1.05;
- this.player.speed.multiplier *= 1.05;
+ this.player.shape.setScale(0.95);
+ this.player.sword.damage.multiplier *= 1;
+ this.player.knockbackResistance.multiplier *= 1.05;
+ this.player.speed.multiplier *= 1.15;
this.player.health.max.multiplier *= 0.9;
}
}
diff --git a/server/src/game/evolutions/Rook.js b/server/src/game/evolutions/Rook.js
index a2d08b79..c19da6fa 100644
--- a/server/src/game/evolutions/Rook.js
+++ b/server/src/game/evolutions/Rook.js
@@ -6,7 +6,7 @@ module.exports = class Rook extends Evolution {
static level = 22;
static previousEvol = Types.Evolution.Tank;
static abilityDuration = 0.2;
- static abilityCooldown = 60;
+ static abilityCooldown = 6;
applyAbilityEffects() {
const downInputs = this.player.inputs?.downInputs;
@@ -30,20 +30,22 @@ module.exports = class Rook extends Evolution {
}
}
- this.player.shape.x = this.player.shape.x + (10000000 * Math.cos(angle));
- this.player.shape.y = this.player.shape.y + (10000000 * Math.sin(angle));
+ this.player.shape.x = this.player.shape.x + (375 * Math.cos(angle));
+ this.player.shape.y = this.player.shape.y + (375 * Math.sin(angle));
}
update(dt) {
this.player.modifiers.disableDiagonalMovement = true;
- this.player.shape.setScale(1.25);
- this.player.sword.damage.multiplier *= 1.2;
- this.player.sword.knockback.multiplier['ability'] = 1.25;
- this.player.knockbackResistance.multiplier *= 1.25;
- this.player.health.max.multiplier *= 1.25;
- this.player.health.regen.multiplier *= 1.25;
- this.player.health.regenWait.multiplier *= 1.15;
+ this.player.shape.setScale(1.135);
+ this.player.speed.multiplier *= 0.7;
+ this.player.sword.damage.multiplier *= 1.425;
+ this.player.sword.swingDuration.multiplier['ability'] = 1.65;
+ this.player.sword.knockback.multiplier['ability'] = 0.9;
+ this.player.knockbackResistance.multiplier *= 1.35;
+ this.player.health.max.multiplier *= 1.3;
+ this.player.health.regen.multiplier *= 1.5;
+ this.player.health.regenWait.multiplier *= 1.5;
super.update(dt);
}
}
diff --git a/server/src/game/evolutions/Samurai.js b/server/src/game/evolutions/Samurai.js
index 272c550e..d95453ba 100644
--- a/server/src/game/evolutions/Samurai.js
+++ b/server/src/game/evolutions/Samurai.js
@@ -5,29 +5,29 @@ module.exports = class Samurai extends Evolution {
static type = Types.Evolution.Samurai;
static level = 22;
static previousEvol = Types.Evolution.Tank;
- static abilityDuration = 6;
- static abilityCooldown = 60;
+ static abilityDuration = 8.5;
+ static abilityCooldown = 55;
applyAbilityEffects() {
- this.player.sword.damage.multiplier *= 1.5;
- this.player.sword.knockback.multiplier['ability'] = 2.5;
- this.player.knockbackResistance.multiplier *= 1.5;
- this.player.health.regen.multiplier *= 8;
- this.player.speed.multiplier *= 1.25;
+ this.player.shape.setScale(1.1);
+ this.player.sword.damage.multiplier *= 0.75;
+ this.player.knockbackResistance.multiplier *= 100;
+ this.player.health.regen.multiplier *= 4;
+ this.player.speed.multiplier *= 1.2;
this.player.health.regenWait.multiplier = 0;
- this.player.sword.swingDuration.multiplier['ability'] = 0.5;
}
update(dt) {
super.update(dt);
- this.player.speed.multiplier *= 0.85;
+ this.player.speed.multiplier *= 0.875;
this.player.shape.setScale(1.05);
- this.player.sword.damage.multiplier *= 1.15;
+ this.player.sword.damage.multiplier *= 0.85;
this.player.sword.knockback.multiplier['ability'] = 1.15;
- this.player.knockbackResistance.multiplier *= 1.15;
- this.player.health.max.multiplier *= 1.15;
+ this.player.sword.swingDuration.multiplier['ability'] = 0.7;
+ this.player.knockbackResistance.multiplier *= 2;
+ this.player.health.max.multiplier *= 1.125;
this.player.health.regen.multiplier *= 1.15;
this.player.health.regenWait.multiplier *= 1;
//TODO: Damagecooldown: 1.1
diff --git a/server/src/game/evolutions/Tank.js b/server/src/game/evolutions/Tank.js
index a98f5297..ca80fd63 100644
--- a/server/src/game/evolutions/Tank.js
+++ b/server/src/game/evolutions/Tank.js
@@ -9,10 +9,10 @@ module.exports = class Tank extends Evolution {
applyAbilityEffects() {
this.player.sword.damage.multiplier *= 1.5;
- this.player.sword.knockback.multiplier['ability'] = 2.5;
- this.player.knockbackResistance.multiplier *= 1.5;
+ this.player.sword.knockback.multiplier['ability'] = 1.2;
+ this.player.knockbackResistance.multiplier *= 2;
this.player.shape.setScale(1.75);
- this.player.health.regen.multiplier *= 8;
+ this.player.health.regen.multiplier *= 7;
this.player.health.regenWait.multiplier = 0;
this.player.sword.swingDuration.multiplier['ability'] = 0.5;
@@ -21,13 +21,13 @@ module.exports = class Tank extends Evolution {
update(dt) {
super.update(dt);
this.player.speed.multiplier *= 0.7;
- this.player.shape.setScale(1.15);
+ this.player.shape.setScale(1.175);
this.player.sword.damage.multiplier *= 1.15;
- this.player.sword.knockback.multiplier['ability'] = 1.15;
- this.player.knockbackResistance.multiplier *= 1.15;
- this.player.health.max.multiplier *= 1.15;
- this.player.health.regen.multiplier *= 1.15;
- this.player.health.regenWait.multiplier *= 1;
+ this.player.sword.knockback.multiplier['ability'] = 1.35;
+ this.player.knockbackResistance.multiplier *= 1.2;
+ this.player.health.max.multiplier *= 1.3;
+ this.player.health.regen.multiplier *= 1;
+ this.player.health.regenWait.multiplier *= 0.8;
//TODO: Damagecooldown: 1.1
}
}
diff --git a/server/src/game/evolutions/Vampire.js b/server/src/game/evolutions/Vampire.js
index 472cb857..2000257e 100644
--- a/server/src/game/evolutions/Vampire.js
+++ b/server/src/game/evolutions/Vampire.js
@@ -6,17 +6,23 @@ module.exports = class Vampire extends Evolution {
static level = 22;
static previousEvol = Types.Evolution.Knight;
// static level = 1;
- static abilityDuration = 6;
- static abilityCooldown = 90;
+ static abilityDuration = 4;
+ static abilityCooldown = 75;
applyAbilityEffects() {
+ this.player.shape.setScale(0.75);
this.player.modifiers.leech = 2;
this.player.sword.knockback.multiplier['ability'] = 1.8;
- this.player.speed.multiplier *= 1.5;
+ this.player.speed.multiplier *= 1.55;
+ this.player.sword.damage.multiplier *= 1.1;
+ this.player.sword.swingDuration.multiplier['ability'] = 2;
+ this.player.health.max.multiplier *= 0.5;
}
update(dt) {
- this.player.modifiers.leech = 0.5;
+ this.player.modifiers.leech = 0.35;
+ this.player.sword.damage.multiplier *= 0.9;
+ this.player.health.max.multiplier *= 0.9;
super.update(dt);
}
}