Modify Barrage perk to support setting levels to indicate arrows
This commit is contained in:
parent
6439fc93c2
commit
e3b0843b2c
|
@ -40,14 +40,20 @@ public class PerkBarrage extends Perk
|
||||||
private long _tick;
|
private long _tick;
|
||||||
private boolean _remove;
|
private boolean _remove;
|
||||||
private boolean _noDelay;
|
private boolean _noDelay;
|
||||||
|
private boolean _useExp;
|
||||||
|
|
||||||
public PerkBarrage(int max, long tick, boolean remove, boolean noDelay)
|
public PerkBarrage(int max, long tick, boolean remove, boolean noDelay)
|
||||||
|
{
|
||||||
|
this(max, tick, remove, noDelay, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PerkBarrage(int max, long tick, boolean remove, boolean noDelay, boolean useExpAndBar)
|
||||||
{
|
{
|
||||||
super("Barrage", new String[]
|
super("Barrage", new String[]
|
||||||
{
|
{
|
||||||
C.cYellow + "Charge" + C.cGray + " your Bow to use " + C.cGreen + "Barrage"
|
C.cYellow + "Charge" + C.cGray + " your Bow to use " + C.cGreen + "Barrage"
|
||||||
});
|
});
|
||||||
|
_useExp = useExpAndBar;
|
||||||
_max = max;
|
_max = max;
|
||||||
_tick = tick;
|
_tick = tick;
|
||||||
_remove = remove;
|
_remove = remove;
|
||||||
|
@ -115,6 +121,10 @@ public class PerkBarrage extends Perk
|
||||||
// No Longer Holding Bow
|
// No Longer Holding Bow
|
||||||
if (cur.getItemInHand() == null || cur.getItemInHand().getType() != Material.BOW)
|
if (cur.getItemInHand() == null || cur.getItemInHand().getType() != Material.BOW)
|
||||||
{
|
{
|
||||||
|
if (_useExp)
|
||||||
|
{
|
||||||
|
cur.setLevel(_charge.get(cur));
|
||||||
|
}
|
||||||
_charge.remove(cur);
|
_charge.remove(cur);
|
||||||
_chargeLast.remove(cur);
|
_chargeLast.remove(cur);
|
||||||
continue;
|
continue;
|
||||||
|
@ -122,6 +132,11 @@ public class PerkBarrage extends Perk
|
||||||
|
|
||||||
// Increase Charge
|
// Increase Charge
|
||||||
_charge.put(cur, _charge.get(cur) + 1);
|
_charge.put(cur, _charge.get(cur) + 1);
|
||||||
|
|
||||||
|
if (_useExp)
|
||||||
|
{
|
||||||
|
cur.setLevel(_charge.get(cur));
|
||||||
|
}
|
||||||
_chargeLast.put(cur, System.currentTimeMillis());
|
_chargeLast.put(cur, System.currentTimeMillis());
|
||||||
|
|
||||||
// Effect
|
// Effect
|
||||||
|
@ -184,6 +199,10 @@ public class PerkBarrage extends Perk
|
||||||
}
|
}
|
||||||
|
|
||||||
_charge.put(cur, arrows - 1);
|
_charge.put(cur, arrows - 1);
|
||||||
|
if (_useExp)
|
||||||
|
{
|
||||||
|
cur.setLevel(_charge.get(cur));
|
||||||
|
}
|
||||||
|
|
||||||
// Fire Arrow
|
// Fire Arrow
|
||||||
Vector random = new Vector((Math.random() - 0.5) / 10, (Math.random() - 0.5) / 10, (Math.random() - 0.5) / 10);
|
Vector random = new Vector((Math.random() - 0.5) / 10, (Math.random() - 0.5) / 10, (Math.random() - 0.5) / 10);
|
||||||
|
@ -195,6 +214,10 @@ public class PerkBarrage extends Perk
|
||||||
|
|
||||||
for (Player cur : remove)
|
for (Player cur : remove)
|
||||||
{
|
{
|
||||||
|
if (_useExp)
|
||||||
|
{
|
||||||
|
cur.setLevel(0);
|
||||||
|
}
|
||||||
_charge.remove(cur);
|
_charge.remove(cur);
|
||||||
_chargeLast.remove(cur);
|
_chargeLast.remove(cur);
|
||||||
_firing.remove(cur);
|
_firing.remove(cur);
|
||||||
|
@ -226,9 +249,8 @@ public class PerkBarrage extends Perk
|
||||||
event.GetProjectile().remove();
|
event.GetProjectile().remove();
|
||||||
|
|
||||||
// Damage Event
|
// Damage Event
|
||||||
Manager.GetDamage().NewDamageEvent(event.GetDamageeEntity(), damager, null,
|
Manager.GetDamage().NewDamageEvent(event.GetDamageeEntity(), damager, null, DamageCause.THORNS, event.GetDamage(), true,
|
||||||
DamageCause.THORNS, event.GetDamage(), true, true, false,
|
true, false, damager.getName(), GetName());
|
||||||
damager.getName(), GetName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|
Loading…
Reference in New Issue