Updated bonus weapons, completed Skeleton Class.
This commit is contained in:
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user