code refactoring for visibility
This commit is contained in:
parent
f70b335264
commit
cff22c8f18
2 changed files with 53 additions and 62 deletions
|
@ -99,13 +99,11 @@ public class CombatManager extends Manager {
|
|||
d.sendMessage(comp("<red>You missed!"));
|
||||
return;
|
||||
}
|
||||
} else if (luck > 0 && luck < 1000) {
|
||||
} else if (luck > 0 && luck < 1000 && RANDOM.nextBoolean()) {
|
||||
// chance of critical hit
|
||||
if (RANDOM.nextBoolean()) {
|
||||
d.playSound(d, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1.0f, 1.0f);
|
||||
// damage * 2
|
||||
damage = damage * 2;
|
||||
}
|
||||
d.playSound(d, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1.0f, 1.0f);
|
||||
// damage * 2
|
||||
damage = damage * 2;
|
||||
}
|
||||
// apply damage
|
||||
|
||||
|
@ -150,71 +148,64 @@ public class CombatManager extends Manager {
|
|||
spawnIndicator(entity, false, damage);
|
||||
// TODO: check for status effects (apply status effects depending item of damager)
|
||||
}
|
||||
} else if (entity instanceof Player player) {
|
||||
} else if (entity instanceof Player player && damager instanceof Mob mob) {
|
||||
// damager is not player
|
||||
if (damager instanceof Mob mob) {
|
||||
// get equipment of damager
|
||||
EntityEquipment equipment = mob.getEquipment();
|
||||
Double dStrength = Items.getTotalAttribute(equipment, Attribute.STRENGTH);
|
||||
Double eDefense = Items.getTotalAttribute(player, Attribute.DEFENSE);
|
||||
// get equipment of damager
|
||||
EntityEquipment equipment = mob.getEquipment();
|
||||
Double dStrength = Items.getTotalAttribute(equipment, Attribute.STRENGTH);
|
||||
Double eDefense = Items.getTotalAttribute(player, Attribute.DEFENSE);
|
||||
|
||||
double damage = dStrength - eDefense;
|
||||
double damage = dStrength - eDefense;
|
||||
|
||||
Double dLuck = Items.getTotalAttribute(equipment, Attribute.LUCK);
|
||||
Double eLuck = Items.getTotalAttribute(player, Attribute.LUCK);
|
||||
Double dLuck = Items.getTotalAttribute(equipment, Attribute.LUCK);
|
||||
Double eLuck = Items.getTotalAttribute(player, Attribute.LUCK);
|
||||
|
||||
double luck = dLuck - eLuck;
|
||||
double luck = dLuck - eLuck;
|
||||
|
||||
if (luck < -1000) {
|
||||
// 100% chance of miss
|
||||
player.sendMessage(comp("<red>You dodged!"));
|
||||
if (luck < -1000) {
|
||||
// 100% chance of miss
|
||||
player.sendMessage(comp("<red>You dodged!"));
|
||||
player.playSound(player, Sound.ENTITY_ARROW_SHOOT, 1.0f, 1.0f);
|
||||
e.setCancelled(true);
|
||||
return;
|
||||
} else if (luck > 1000) {
|
||||
// 100% chance of critical hit
|
||||
luck = 10000d;
|
||||
player.playSound(player, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1.0f, 1.0f);
|
||||
damage = damage * 2;
|
||||
}
|
||||
|
||||
if (luck < 0) {
|
||||
// chances of miss
|
||||
if (RANDOM.nextBoolean()) {
|
||||
player.playSound(player, Sound.ENTITY_ARROW_SHOOT, 1.0f, 1.0f);
|
||||
e.setCancelled(true);
|
||||
player.sendMessage(comp("<red>You dodged!"));
|
||||
return;
|
||||
} else if (luck > 1000) {
|
||||
// 100% chance of critical hit
|
||||
luck = 10000d;
|
||||
player.playSound(player, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1.0f, 1.0f);
|
||||
damage = damage * 2;
|
||||
}
|
||||
|
||||
if (luck < 0) {
|
||||
// chances of miss
|
||||
if (RANDOM.nextBoolean()) {
|
||||
player.playSound(player, Sound.ENTITY_ARROW_SHOOT, 1.0f, 1.0f);
|
||||
e.setCancelled(true);
|
||||
player.sendMessage(comp("<red>You dodged!"));
|
||||
return;
|
||||
}
|
||||
} else if (luck > 0 && luck < 1000) {
|
||||
// chance of critical hit
|
||||
if (RANDOM.nextBoolean()) {
|
||||
player.playSound(player, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1.0f, 1.0f);
|
||||
// damage * 2
|
||||
damage = damage * 2;
|
||||
}
|
||||
}
|
||||
|
||||
// apply damage
|
||||
player.damage(damage);
|
||||
// add an
|
||||
|
||||
SRPlayer player1 = pm.getPlayer(player.getUniqueId());
|
||||
if (player1 != null) {
|
||||
player1.setHealth(player.getHealth() - damage, DamageCause.ENTITY_ATTACK);
|
||||
if (player1.getHealth() <= 0) {
|
||||
player.damage(player.getHealth());
|
||||
}
|
||||
updateActionBar(player, player1);
|
||||
}
|
||||
|
||||
spawnIndicator(player, false, damage);
|
||||
|
||||
// TODO: check for status effects (apply status effects depending item of damager)
|
||||
} else if (luck > 0 && luck < 1000 && RANDOM.nextBoolean()) {
|
||||
// chance of critical hit
|
||||
player.playSound(player, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1.0f, 1.0f);
|
||||
// damage * 2
|
||||
damage = damage * 2;
|
||||
}
|
||||
|
||||
// apply damage
|
||||
player.damage(damage);
|
||||
// add an
|
||||
|
||||
SRPlayer player1 = pm.getPlayer(player.getUniqueId());
|
||||
if (player1 != null) {
|
||||
player1.setHealth(player.getHealth() - damage, DamageCause.ENTITY_ATTACK);
|
||||
if (player1.getHealth() <= 0) {
|
||||
player.damage(player.getHealth());
|
||||
}
|
||||
updateActionBar(player, player1);
|
||||
}
|
||||
|
||||
spawnIndicator(player, false, damage);
|
||||
|
||||
// TODO: check for status effects (apply status effects depending item of damager)
|
||||
}
|
||||
}
|
||||
|
||||
/*@EventHandler
|
||||
public void onDamage(EntityDamageEvent e) {}*/
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue