Legger til en del fremdeles uimplementerte items

This commit is contained in:
2018-03-10 15:17:50 +01:00
parent 478a8f02a3
commit d1b4f4a316
25 changed files with 433 additions and 58 deletions

View File

@ -0,0 +1,52 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.game.IGame;
import inf101.v18.rogue101.objects.IItem;
import java.util.Random;
public class Bow implements IRangedWeapon {
private static final Random random = new Random();
private final int damage = 3 + random.nextInt(20);
private final int hp = getMaxHealth();
@Override
public int getWeaponDamage() {
return damage;
}
@Override
public int getCurrentHealth() {
return hp;
}
@Override
public int getDefence() {
return 0;
}
@Override
public int getMaxHealth() {
return 110;
}
@Override
public String getName() {
return "Unknown bow";
}
@Override
public int getSize() {
return 2;
}
@Override
public String getSymbol() {
return "B";
}
@Override
public int handleDamage(IGame game, IItem source, int amount) {
return 0;
}
}

View File

@ -0,0 +1,33 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.objects.IItem;
interface IBuffItem extends IItem {
/**
* Retrieve damage increase done by the buff item.
*
* @return An int, May be 0
*/
int getBuffDamage();
/**
* Retrieve defence increase done by the buff item.
*
* @return An int, May be 0
*/
int getBuffDefence();
/**
* Retrieve defence increase done by the buff item.
*
* @return An int, May be 0
*/
int getBuffDamageReduction();
/**
* Retrieve visibility increase done by the buff item.
*
* @return An int, May be 0
*/
int getBuffVisibility();
}

View File

@ -0,0 +1,9 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.objects.IItem;
public interface IConsumable extends IItem {
void hpIncrease();
void attackIncrease();
void defenceIncrease();
}

View File

@ -0,0 +1,12 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.objects.IItem;
interface IMagicWeapon extends IItem {
/**
* Retrieves the damage points of a weapon.
*
* @return
*/
int getWeaponDamage();
}

View File

@ -0,0 +1,12 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.objects.IItem;
interface IMeleeWeapon extends IItem {
/**
* Retrieves the damage points of a weapon.
*
* @return
*/
int getWeaponDamage();
}

View File

@ -0,0 +1,12 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.objects.IItem;
interface IRangedWeapon extends IItem {
/**
* Retrieves the damage points of a weapon.
*
* @return
*/
int getWeaponDamage();
}

View File

@ -1,12 +1,10 @@
package inf101.v18.rogue101.items;
import inf101.v18.gfx.gfxmode.ITurtle;
import inf101.v18.rogue101.game.IGame;
import inf101.v18.rogue101.objects.IItem;
import javafx.scene.paint.Color;
public class Manga implements IItem {
int hp = getMaxHealth();
private int hp = getMaxHealth();
/*@Override
public boolean draw(ITurtle painter, double w, double h) {

View File

@ -0,0 +1,63 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.game.IGame;
import inf101.v18.rogue101.objects.IItem;
public class Shield implements IBuffItem {
private final int hp = getMaxHealth();
@Override
public int getBuffDamage() {
return 0;
}
@Override
public int getBuffDefence() {
return 10;
}
@Override
public int getBuffDamageReduction() {
return 5;
}
@Override
public int getBuffVisibility() {
return 0;
}
@Override
public int getCurrentHealth() {
return hp;
}
@Override
public int getDefence() {
return 0;
}
@Override
public int getMaxHealth() {
return 150;
}
@Override
public String getName() {
return "Unknown shield";
}
@Override
public int getSize() {
return 2;
}
@Override
public String getSymbol() {
return "";
}
@Override
public int handleDamage(IGame game, IItem source, int amount) {
return 0;
}
}

View File

@ -0,0 +1,53 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.game.IGame;
import inf101.v18.rogue101.objects.IItem;
import java.util.Random;
public class Staff implements IMagicWeapon {
private static final Random random = new Random();
private final int damage = 5 + random.nextInt(25);
private int hp = getMaxHealth();
@Override
public int getWeaponDamage() {
return damage;
}
@Override
public int getCurrentHealth() {
return hp;
}
@Override
public int getDefence() {
return 0;
}
@Override
public int getMaxHealth() {
return 90;
}
@Override
public String getName() {
return "Unknown staff";
}
@Override
public int getSize() {
return 0;
}
@Override
public String getSymbol() {
return "s";
}
@Override
public int handleDamage(IGame game, IItem source, int amount) {
hp -= amount;
return amount;
}
}

View File

@ -0,0 +1,53 @@
package inf101.v18.rogue101.items;
import inf101.v18.rogue101.game.IGame;
import inf101.v18.rogue101.objects.IItem;
import java.util.Random;
public class Sword implements IMeleeWeapon {
private static final Random random = new Random();
private final int damage = 5 + random.nextInt(25);
private int hp = getMaxHealth();
@Override
public int getWeaponDamage() {
return damage;
}
@Override
public int getCurrentHealth() {
return hp;
}
@Override
public int getDefence() {
return 0;
}
@Override
public int getMaxHealth() {
return 100;
}
@Override
public String getName() {
return "Unknown sword";
}
@Override
public int getSize() {
return 2;
}
@Override
public String getSymbol() {
return "S";
}
@Override
public int handleDamage(IGame game, IItem source, int amount) {
hp -= amount;
return amount;
}
}