Updated bonus weapons, completed Skeleton Class.

This commit is contained in:
2026-05-10 17:34:56 +03:30
parent c0c32b2dce
commit c1073ecbc7
6 changed files with 89 additions and 11 deletions
@@ -74,6 +74,24 @@ public abstract class Enemy implements Entity {
return hp; return hp;
} }
@Override
public void heal(int health) {
//checking mana
if (mp < healCost) {
System.out.println("Not enough mana to heal!");
return;
}
//reducing mana
mp -= healCost;
//increasing health
hp += health;
if (hp > getMaxHP()) {
hp = getMaxHP();
}
}
public int getMp() { public int getMp() {
return mp; return mp;
} }
@@ -94,4 +112,8 @@ public abstract class Enemy implements Entity {
} }
return "Dragon"; return "Dragon";
} }
public void setHp(int newHp) {
hp = newHp;
}
} }
@@ -1,4 +1,20 @@
package org.project.entity.enemies; package org.project.entity.enemies;
public class Goblin { import org.project.item.weapons.BoneDagger;
import org.project.item.weapons.ToothedHook;
public class Goblin extends Enemy {
public Goblin() {
super("Goblin", 30, 30, new ToothedHook());
}
@Override
public int getMaxHP() {
return 30;
}
@Override
public int getMaxMP() {
return 30;
}
} }
@@ -2,10 +2,53 @@ package org.project.entity.enemies;
import org.project.item.weapons.BoneDagger; import org.project.item.weapons.BoneDagger;
// TODO: UPDATE IMPLEMENTATION
public class Skeleton extends Enemy { public class Skeleton extends Enemy {
// TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR private boolean hasResurrected = false;
public Skeleton() { public Skeleton() {
super("Skeleton", 40, 25, new BoneDagger()); super("Skeleton", 40, 25, new BoneDagger());
} }
@Override
public void takeDamage(int damage) {
int newHp = getHp() - damage;
if (newHp <= 0 && !hasResurrected) {
//Resurrecting
int resurrectedHp = getMaxHP() * 50 / 100;
setHp(resurrectedHp);
hasResurrected = true;
System.out.println("💀 Skeleton has been defeated...");
System.out.println("☠️ But Skeleton rises again! Resurrected with " + resurrectedHp + " HP!");
return;
}
setHp(newHp);
if (getHp() < 0) setHp(0);
System.out.println("💥 Skeleton took " + damage + " damage! HP: " + getHp() + "/" + getMaxHP());
if (getHp() <= 0) {
System.out.println("☠️ Skeleton has been destroyed for good!");
}
}
@Override
public int getMaxHP() {
return 45;
}
@Override
public int getMaxMP() {
return 25;
}
public boolean hasResurrected() {
return hasResurrected;
}
public void setHasResurrected(boolean hasResurrected) {
this.hasResurrected = hasResurrected;
}
} }
@@ -1,6 +1,7 @@
package org.project.entity.players; package org.project.entity.players;
import org.project.entity.Entity; import org.project.entity.Entity;
import org.project.entity.enemies.Enemy;
import org.project.item.armors.Armor; import org.project.item.armors.Armor;
import org.project.item.weapons.Sword; import org.project.item.weapons.Sword;
import org.project.item.weapons.Wand; import org.project.item.weapons.Wand;
@@ -23,8 +24,7 @@ public class Wizard extends Player implements Entity,ICombatActions {
setMp(getMp()-15); setMp(getMp()-15);
target.takeDamage(30); target.takeDamage(30);
System.out.println("🔮 " + target.getName() + " took " + System.out.println("🔮 " + getName() + "used DEVASTATING SPELL Dealt" + 30 + " damage!");
30 + " damage from Devastating Spell!");
int newHp = getHp() + 10; int newHp = getHp() + 10;
if (newHp > getMaxHP()) newHp = getMaxHP(); if (newHp > getMaxHP()) newHp = getMaxHP();
@@ -77,4 +77,5 @@ public class Wizard extends Player implements Entity,ICombatActions {
if (getHp() > getMaxHP()) setHp(getMaxHP()); if (getHp() > getMaxHP()) setHp(getMaxHP());
System.out.println("💚 " + getName() + " healed " + healAmount + " HP!"); System.out.println("💚 " + getName() + " healed " + healAmount + " HP!");
} }
} }
@@ -4,8 +4,6 @@ import org.project.item.Item;
//The skeleton's weapon //The skeleton's weapon
public class BoneDagger extends Weapon implements Item { public class BoneDagger extends Weapon implements Item {
int abilityCharge;
public BoneDagger() { public BoneDagger() {
super(10, 5); super(10, 5);
} }
@@ -4,9 +4,7 @@ import org.project.item.Item;
//The goblin's weapon //The goblin's weapon
public class ToothedHook extends Weapon implements Item { public class ToothedHook extends Weapon implements Item {
int abilityCharge; public ToothedHook() {
super(15, 6);
public ToothedHook(int damage, int manaCost) {
super(damage, manaCost);
} }
} }