Add basic support for ammo

This commit is contained in:
2022-08-25 21:52:50 +02:00
parent 1a96932bca
commit fe828f9026
14 changed files with 197 additions and 22 deletions

View File

@@ -2,6 +2,8 @@ package com.bartlomiejpluta.demo.entity;
import com.bartlomiejpluta.base.api.character.Character;
import com.bartlomiejpluta.demo.world.item.Item;
import com.bartlomiejpluta.demo.world.weapon.Ammunition;
import com.bartlomiejpluta.demo.world.weapon.RangedWeapon;
import com.bartlomiejpluta.demo.world.weapon.Weapon;
import lombok.Getter;
import lombok.NonNull;
@@ -30,6 +32,10 @@ public abstract class Creature extends NamedCharacter {
@Setter
private Weapon weapon;
@Getter
@Setter
private Ammunition ammunition;
@Getter
private NamedCharacter lastAttacker;
@@ -44,6 +50,14 @@ public abstract class Creature extends NamedCharacter {
if (attackCooldown >= weapon.getCooldown()) {
if (weapon.attack(this)) {
if(weapon instanceof RangedWeapon) {
ammunition.decrease();
if(ammunition.getCount() == 0) {
ammunition = null;
}
}
attackCooldown = 0;
}
}
@@ -62,6 +76,11 @@ public abstract class Creature extends NamedCharacter {
public void useEquipmentItem(Item item) {
if (item instanceof Weapon weapon) {
setWeapon(weapon);
return;
}
if (item instanceof Ammunition ammunition) {
setAmmunition(ammunition);
}
}