Sacred realms
This commit is contained in:
commit
aa1c13c74c
28 changed files with 1651 additions and 0 deletions
|
@ -0,0 +1,84 @@
|
|||
package me.unurled.sacredrealms.sr.components.combat;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.Component.comp;
|
||||
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.managers.Manager;
|
||||
import me.unurled.sacredrealms.sr.utils.Items;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Mob;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.EntityDamageByBlockEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.inventory.EntityEquipment;
|
||||
|
||||
public class CombatManager extends Manager {
|
||||
|
||||
@EventHandler
|
||||
public void onDamage(EntityDamageByBlockEvent e) {
|
||||
// TODO: Implement
|
||||
// blast enchant :shrug:
|
||||
}
|
||||
|
||||
// TODO: Finish this
|
||||
@EventHandler
|
||||
public void onDamage(EntityDamageByEntityEvent e) {
|
||||
e.setDamage(0.0);
|
||||
|
||||
if (!(e.getDamager() instanceof LivingEntity) || !(e.getEntity() instanceof LivingEntity)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LivingEntity damager = (LivingEntity) e.getDamager();
|
||||
LivingEntity entity = (LivingEntity) e.getEntity();
|
||||
|
||||
if (damager instanceof Player d) {
|
||||
if (entity instanceof Player) {
|
||||
// no pvp
|
||||
e.setCancelled(true);
|
||||
d.sendMessage(comp("<red>You can't attack players!"));
|
||||
d.playSound(d, Sound.BLOCK_ANVIL_HIT, 1.0f, 1.0f);
|
||||
return;
|
||||
}
|
||||
if (entity instanceof Mob) {
|
||||
Double dStrength = Items.getTotalAttribute(d, Attribute.STRENGTH);
|
||||
EntityEquipment equipment = ((Mob) entity).getEquipment();
|
||||
Double eDefense = Items.getTotalAttribute(equipment, Attribute.DEFENSE);
|
||||
|
||||
Double dLuck = Items.getTotalAttribute(d, Attribute.LUCK);
|
||||
Double eLuck = Items.getTotalAttribute(equipment, Attribute.LUCK);
|
||||
|
||||
Double luck = dLuck - eLuck;
|
||||
if (luck < -1000) {
|
||||
// 100% chance of miss
|
||||
luck = -10000d;
|
||||
d.sendMessage(comp("<red>You missed!"));
|
||||
// TODO: play miss sound
|
||||
// d.playSound();
|
||||
e.setCancelled(true);
|
||||
return;
|
||||
} else if (luck > 1000) {
|
||||
// 100% chance of critical hit
|
||||
luck = 10000d;
|
||||
}
|
||||
|
||||
if (luck < 0) {
|
||||
// chances of miss
|
||||
|
||||
} else if (luck > 0) {
|
||||
// chance of critical hit
|
||||
} else {
|
||||
}
|
||||
|
||||
}
|
||||
} else if (entity instanceof Player) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDamage(EntityDamageEvent e) {}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue