mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-02-22 14:41:48 +01:00
Small method change
This commit is contained in:
parent
106aa6aafe
commit
211afef21b
@ -4,7 +4,6 @@ import io.lumine.mythic.lib.UtilityMethods;
|
||||
import io.lumine.mythic.lib.comp.target.InteractionType;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageType;
|
||||
import io.lumine.mythic.lib.player.modifier.ModifierSource;
|
||||
import io.lumine.mythic.lib.version.VersionSound;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.MMOUtils;
|
||||
@ -89,7 +88,7 @@ public enum TypeSet {
|
||||
target.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, target.getLocation().add(0, 1, 0), 0);
|
||||
double bluntPower = attack.getStat("BLUNT_POWER");
|
||||
if (bluntPower > 0) {
|
||||
double bluntRating = weapon.getValue(attack.getStat("BLUNT_RATING"),
|
||||
double bluntRating = weapon.requireNonZero(attack.getStat("BLUNT_RATING"),
|
||||
MMOItems.plugin.getConfig().getDouble("default.blunt-rating")) / 100;
|
||||
for (Entity entity : target.getNearbyEntities(bluntPower, bluntPower, bluntPower))
|
||||
if (UtilityMethods.canTarget(attack.getPlayer(), entity, InteractionType.OFFENSE_ACTION) && !entity.equals(target))
|
||||
|
@ -125,8 +125,10 @@ public class Weapon extends UseItem {
|
||||
return loc;
|
||||
}
|
||||
|
||||
// returns default getValue if stat equals 0
|
||||
public double getValue(double a, double def) {
|
||||
return a <= 0 ? def : a;
|
||||
/**
|
||||
* @return First argument, or second if zero or lower
|
||||
*/
|
||||
public double requireNonZero(double number, double elseNumber) {
|
||||
return number <= 0 ? elseNumber : number;
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ public class Crossbow extends UntargetedWeapon {
|
||||
getPlayer().getInventory().removeItem(new ItemStack(Material.ARROW));
|
||||
|
||||
final Arrow arrow = getPlayer().launchProjectile(Arrow.class);
|
||||
arrow.setVelocity(getPlayer().getEyeLocation().getDirection().multiply(3 * getValue(getNBTItem().getStat(ItemStats.ARROW_VELOCITY.getId()), 1)));
|
||||
arrow.setVelocity(getPlayer().getEyeLocation().getDirection().multiply(3 * requireNonZero(getNBTItem().getStat(ItemStats.ARROW_VELOCITY.getId()), 1)));
|
||||
getPlayer().setVelocity(getPlayer().getVelocity().setX(0).setZ(0));
|
||||
getPlayer().getWorld().playSound(getPlayer().getLocation(), Sound.ENTITY_ARROW_SHOOT, 1, 1);
|
||||
|
||||
|
@ -37,8 +37,8 @@ public class Lute extends UntargetedWeapon {
|
||||
|
||||
@Override
|
||||
public void applyAttackEffect(PlayerMetadata stats, EquipmentSlot slot) {
|
||||
double attackDamage = getValue(stats.getStat("ATTACK_DAMAGE"), 7);
|
||||
double range = getValue(getNBTItem().getStat(ItemStats.RANGE.getId()), MMOItems.plugin.getConfig().getDouble("default.range"));
|
||||
double attackDamage = requireNonZero(stats.getStat("ATTACK_DAMAGE"), 7);
|
||||
double range = requireNonZero(getNBTItem().getStat(ItemStats.RANGE.getId()), MMOItems.plugin.getConfig().getDouble("default.range"));
|
||||
Vector weight = new Vector(0, -.003 * getNBTItem().getStat(ItemStats.NOTE_WEIGHT.getId()), 0);
|
||||
|
||||
LuteAttackEffect effect = LuteAttackEffect.get(getNBTItem());
|
||||
|
@ -13,7 +13,6 @@ import org.bukkit.Color;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
public class Musket extends UntargetedWeapon {
|
||||
public Musket(Player player, NBTItem item) {
|
||||
@ -27,26 +26,23 @@ public class Musket extends UntargetedWeapon {
|
||||
|
||||
@Override
|
||||
public void applyAttackEffect(PlayerMetadata stats, EquipmentSlot slot) {
|
||||
double attackDamage = stats.getStat("ATTACK_DAMAGE");
|
||||
double range = getValue(getNBTItem().getStat(ItemStats.RANGE.getId()), MMOItems.plugin.getConfig().getDouble("default.range"));
|
||||
double recoil = getValue(getNBTItem().getStat(ItemStats.RECOIL.getId()), MMOItems.plugin.getConfig().getDouble("default.recoil"));
|
||||
final double range = requireNonZero(getNBTItem().getStat(ItemStats.RANGE.getId()), MMOItems.plugin.getConfig().getDouble("default.range"));
|
||||
final double recoil = requireNonZero(getNBTItem().getStat(ItemStats.RECOIL.getId()), MMOItems.plugin.getConfig().getDouble("default.recoil"));
|
||||
|
||||
// knockback
|
||||
double knockback = getNBTItem().getStat(ItemStats.KNOCKBACK.getId());
|
||||
final double knockback = getNBTItem().getStat(ItemStats.KNOCKBACK.getId());
|
||||
if (knockback > 0)
|
||||
getPlayer().setVelocity(getPlayer().getVelocity()
|
||||
.add(getPlayer().getEyeLocation().getDirection().setY(0).normalize().multiply(-1 * knockback).setY(-.2)));
|
||||
|
||||
double a = Math.toRadians(getPlayer().getEyeLocation().getYaw() + 90 + 45 * (slot == EquipmentSlot.MAIN_HAND ? 1 : -1));
|
||||
Location loc = getPlayer().getLocation().add(Math.cos(a) * .5, 1.5, Math.sin(a) * .5);
|
||||
|
||||
final double a = Math.toRadians(getPlayer().getEyeLocation().getYaw() + 90 + 45 * (slot == EquipmentSlot.MAIN_HAND ? 1 : -1));
|
||||
final Location loc = getPlayer().getLocation().add(Math.cos(a) * .5, 1.5, Math.sin(a) * .5);
|
||||
loc.setPitch((float) (loc.getPitch() + (RANDOM.nextDouble() - .5) * 2 * recoil));
|
||||
loc.setYaw((float) (loc.getYaw() + (RANDOM.nextDouble() - .5) * 2 * recoil));
|
||||
Vector vec = loc.getDirection();
|
||||
|
||||
RayTrace trace = new RayTrace(loc, vec, range, entity -> UtilityMethods.canTarget(stats.getPlayer(), entity, InteractionType.OFFENSE_ACTION));
|
||||
final RayTrace trace = new RayTrace(loc, loc.getDirection(), range, entity -> UtilityMethods.canTarget(stats.getPlayer(), entity, InteractionType.OFFENSE_ACTION));
|
||||
if (trace.hasHit())
|
||||
stats.attack(trace.getHit(), attackDamage, DamageType.WEAPON, DamageType.PHYSICAL, DamageType.PROJECTILE);
|
||||
stats.attack(trace.getHit(), stats.getStat("ATTACK_DAMAGE"), DamageType.WEAPON, DamageType.PHYSICAL, DamageType.PROJECTILE);
|
||||
|
||||
trace.draw(.5, Color.BLACK);
|
||||
getPlayer().getWorld().playSound(getPlayer().getLocation(), Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 2, 2);
|
||||
|
@ -4,8 +4,6 @@ import io.lumine.mythic.lib.UtilityMethods;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.comp.target.InteractionType;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageType;
|
||||
import io.lumine.mythic.lib.player.PlayerMetadata;
|
||||
import io.lumine.mythic.lib.util.RayTrace;
|
||||
@ -34,8 +32,8 @@ public class Staff extends UntargetedWeapon {
|
||||
@Override
|
||||
public void applyAttackEffect(PlayerMetadata stats, EquipmentSlot slot) {
|
||||
|
||||
double attackDamage = getValue(stats.getStat("ATTACK_DAMAGE"), 1);
|
||||
double range = getValue(getNBTItem().getStat(ItemStats.RANGE.getId()), MMOItems.plugin.getConfig().getDouble("default.range"));
|
||||
double attackDamage = requireNonZero(stats.getStat("ATTACK_DAMAGE"), 1);
|
||||
double range = requireNonZero(getNBTItem().getStat(ItemStats.RANGE.getId()), MMOItems.plugin.getConfig().getDouble("default.range"));
|
||||
|
||||
StaffSpirit spirit = StaffSpirit.get(getNBTItem());
|
||||
if (spirit != null) {
|
||||
|
@ -50,7 +50,7 @@ public abstract class UntargetedWeapon extends Weapon {
|
||||
return;
|
||||
|
||||
// Apply weapon costs
|
||||
double attackDelay = 1 / getValue(stats.getStat("ATTACK_SPEED"), MMOItems.plugin.getConfig().getDouble("default.attack-speed"));
|
||||
double attackDelay = 1 / requireNonZero(stats.getStat("ATTACK_SPEED"), MMOItems.plugin.getConfig().getDouble("default.attack-speed"));
|
||||
applyWeaponCosts(attackDelay, PlayerData.CooldownType.BASIC_ATTACK);
|
||||
|
||||
// Specific weapon attack effect
|
||||
|
@ -4,8 +4,6 @@ import io.lumine.mythic.lib.UtilityMethods;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.comp.target.InteractionType;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageType;
|
||||
import io.lumine.mythic.lib.player.PlayerMetadata;
|
||||
import io.lumine.mythic.lib.util.RayTrace;
|
||||
@ -28,8 +26,8 @@ public class Whip extends UntargetedWeapon {
|
||||
@Override
|
||||
public void applyAttackEffect(PlayerMetadata stats, EquipmentSlot slot) {
|
||||
|
||||
double attackDamage = getValue(stats.getStat("ATTACK_DAMAGE"), 7);
|
||||
double range = getValue(getNBTItem().getStat(ItemStats.RANGE.getId()), MMOItems.plugin.getConfig().getDouble("default.range"));
|
||||
double attackDamage = requireNonZero(stats.getStat("ATTACK_DAMAGE"), 7);
|
||||
double range = requireNonZero(getNBTItem().getStat(ItemStats.RANGE.getId()), MMOItems.plugin.getConfig().getDouble("default.range"));
|
||||
|
||||
RayTrace trace = new RayTrace(getPlayer(), slot, range, entity -> UtilityMethods.canTarget(stats.getPlayer(), entity, InteractionType.OFFENSE_ACTION));
|
||||
if (trace.hasHit())
|
||||
|
Loading…
Reference in New Issue
Block a user