Witch converted to Google Sheets

This commit is contained in:
Sam 2017-04-25 18:20:34 +01:00
parent 044a3754cf
commit af25aa0b00
4 changed files with 78 additions and 43 deletions

View File

@ -25,8 +25,8 @@ public class KitWitch extends SmashKit
{
private static final Perk[] PERKS = {
new PerkSmashStats(6, 1.5, 0.3, 5),
new PerkDoubleJump("Double Jump", 0.9, 0.9, false),
new PerkSmashStats(),
new PerkDoubleJump("Double Jump"),
new PerkWitchPotion(),
new PerkBatWave(),
new SmashWitch()

View File

@ -44,14 +44,15 @@ import nautilus.game.arcade.game.games.smash.perks.SmashPerk;
public class PerkBatWave extends SmashPerk
{
private static final int COOLDOWN = 8000;
private static final int LEASH_COOLDOWN = 500;
private static final int HIT_COOLDOWN = 200;
private static final int HIT_BOX = 2;
private static final int DAMAGE = 3;
private static final int DISABLE_DAMAGE = 20;
private static final float KNOCKBACK_MAGNITUDE = 1.75F;
private int _cooldown;
private int _hitCooldown;
private int _hitBox;
private int _damage;
private int _disableDamage;
private float _knockbackMagnitude;
private static final String LEASH = "Leash Bats";
private static final String HIT = "Hit By Bat";
@ -69,6 +70,17 @@ public class PerkBatWave extends SmashPerk
+ C.cGreen + "Bat Leash" });
}
@Override
public void setupValues()
{
_cooldown = getPerkTime("Cooldown");
_hitCooldown = getPerkInt("Hit Cooldown (ms)");
_hitBox = getPerkInt("Hit Box");
_damage = getPerkInt("Damage");
_disableDamage = getPerkInt("Disable Damage");
_knockbackMagnitude = getPerkFloat("Knockback Magnitude");
}
@EventHandler
public void Activate(PlayerInteractEvent event)
{
@ -106,7 +118,7 @@ public class PerkBatWave extends SmashPerk
UUID key = player.getUniqueId();
if (!Recharge.Instance.use(player, GetName(), COOLDOWN, false, true))
if (!Recharge.Instance.use(player, GetName(), _cooldown, false, true))
{
if (_active.containsKey(key))
{
@ -138,7 +150,7 @@ public class PerkBatWave extends SmashPerk
else
{
// Inform
Recharge.Instance.use(player, GetName(), COOLDOWN, true, true);
Recharge.Instance.use(player, GetName(), _cooldown, true, true);
}
}
else
@ -219,10 +231,10 @@ public class PerkBatWave extends SmashPerk
continue;
}
if (UtilEnt.hitBox(bat.getLocation(), other, HIT_BOX, null))
if (UtilEnt.hitBox(bat.getLocation(), other, _hitBox, null))
{
// Damage Event
Manager.GetDamage().NewDamageEvent(other, cur, null, DamageCause.CUSTOM, DAMAGE, true, true, false, cur.getName(), GetName());
Manager.GetDamage().NewDamageEvent(other, cur, null, DamageCause.CUSTOM, _damage, true, true, false, cur.getName(), GetName());
// Effect
bat.getWorld().playSound(bat.getLocation(), Sound.BAT_HURT, 1f, 1f);
@ -231,7 +243,7 @@ public class PerkBatWave extends SmashPerk
bat.remove();
// Recharge on hit
Recharge.Instance.useForce(other, HIT, HIT_COOLDOWN);
Recharge.Instance.useForce(other, HIT, _hitCooldown);
}
}
}
@ -299,7 +311,7 @@ public class PerkBatWave extends SmashPerk
{
_damageTaken.put(key, (_damageTaken.get(key) + event.GetDamage()));
if (_damageTaken.get(key) >= DISABLE_DAMAGE)
if (_damageTaken.get(key) >= _disableDamage)
{
Clear(player);
}
@ -311,6 +323,6 @@ public class PerkBatWave extends SmashPerk
return;
}
event.AddKnockback(GetName(), KNOCKBACK_MAGNITUDE);
event.AddKnockback(GetName(), _knockbackMagnitude);
}
}

View File

@ -40,11 +40,11 @@ import nautilus.game.arcade.game.games.smash.perks.SmashPerk;
public class PerkWitchPotion extends SmashPerk implements IThrown
{
private static final int COOLDOWN = 2000;
private static final int RANGE_NOMRAL = 3;
private static final int DAMAGE_DIRECT = 7;
private static final int DAMAGE_DISTANCE = 6;
private static final int KNOCKBACK_MAGNITUDE = 2;
private int _cooldown;
private int _range;
private int _damageDirect;
private int _damageDistance;
private int _knockbackMagnitude;
private List<Projectile> _proj = new ArrayList<>();
@ -53,6 +53,16 @@ public class PerkWitchPotion extends SmashPerk implements IThrown
super("Daze Potion", new String[] { C.cYellow + "Right-Click" + C.cGray + " with Axe to use " + C.cGreen + "Daze Potion" });
}
@Override
public void setupValues()
{
_cooldown = getPerkTime("Cooldown");
_range = getPerkInt( "Range");
_damageDirect = getPerkInt("Damage Direct");
_damageDistance = getPerkInt("Damage Distance");
_knockbackMagnitude = getPerkInt("Knockback Magnitude");
}
@EventHandler
public void Activate(PlayerInteractEvent event)
{
@ -88,7 +98,7 @@ public class PerkWitchPotion extends SmashPerk implements IThrown
return;
}
if (!Recharge.Instance.use(player, GetName(), COOLDOWN, true, true))
if (!Recharge.Instance.use(player, GetName(), _cooldown, true, true))
{
return;
}
@ -137,7 +147,7 @@ public class PerkWitchPotion extends SmashPerk implements IThrown
return;
}
event.AddKnockback(GetName(), KNOCKBACK_MAGNITUDE);
event.AddKnockback(GetName(), _knockbackMagnitude);
}
@Override
@ -153,18 +163,18 @@ public class PerkWitchPotion extends SmashPerk implements IThrown
for (Player player : directHit)
{
Manager.GetDamage().NewDamageEvent(player, thrower, null, DamageCause.CUSTOM, DAMAGE_DIRECT, true, true, false, thrower.getName(), GetName());
Manager.GetDamage().NewDamageEvent(player, thrower, null, DamageCause.CUSTOM, _damageDirect, true, true, false, thrower.getName(), GetName());
}
players.removeAll(directHit);
Vector a = data.getThrown().getLocation().subtract(RANGE_NOMRAL, RANGE_NOMRAL, RANGE_NOMRAL).toVector();
Vector b = data.getThrown().getLocation().add(RANGE_NOMRAL, RANGE_NOMRAL, RANGE_NOMRAL).toVector();
Vector a = data.getThrown().getLocation().subtract(_range, _range, _range).toVector();
Vector b = data.getThrown().getLocation().add(_range, _range, _range).toVector();
for (Player player : players)
{
if(!UtilEnt.isInsideBoundingBox(player, a, b)) continue;
Manager.GetDamage().NewDamageEvent(player, thrower, null, DamageCause.CUSTOM, DAMAGE_DISTANCE, true, true, false, thrower.getName(), GetName());
Manager.GetDamage().NewDamageEvent(player, thrower, null, DamageCause.CUSTOM, _damageDistance, true, true, false, thrower.getName(), GetName());
}
}

View File

@ -43,20 +43,33 @@ import nautilus.game.arcade.kit.perks.data.SonicBoomData;
public class SmashWitch extends SmashUltimate
{
private static final int DURATION = 20000;
private static final int COOLDOWN = 1200;
private static final int MAX_TIME = 12000;
private static final int HIT_BOX = 4;
private static final int DAMAGE_RADIUS = 10;
private static final int DAMAGE = 12;
private static final int FLAP_COOLDOWN = 40;
private static final int KNOCKBACK_MAGNITUDE = 2;
private int _cooldown;
private int _maxTime;
private int _hitBox;
private int _damageRadius;
private int _damage;
private int _flapCooldown;
private int _knockbackMagnitude;
private List<SonicBoomData> _sonic = new ArrayList<>();
public SmashWitch()
{
super("Bat Form", new String[] {}, Sound.BAT_HURT, DURATION);
super("Bat Form", new String[] {}, Sound.BAT_HURT, 0);
}
@Override
public void setupValues()
{
super.setupValues();
_cooldown = getPerkInt("Cooldown (ms)");
_maxTime = getPerkTime("Max Time");
_hitBox = getPerkInt("Hit Box");
_damageRadius = getPerkInt("Damage Radius");
_damage = getPerkInt("Damage");
_flapCooldown = getPerkInt("Flap Cooldown (ms)");
_knockbackMagnitude = getPerkInt("Knockback Magnitude");
}
@Override
@ -148,7 +161,7 @@ public class SmashWitch extends SmashUltimate
return;
}
if (!Recharge.Instance.use(player, GetName() + " Screech", COOLDOWN, false, false))
if (!Recharge.Instance.use(player, GetName() + " Screech", _cooldown, false, false))
{
return;
}
@ -174,7 +187,7 @@ public class SmashWitch extends SmashUltimate
SonicBoomData data = sonicIter.next();
// Time Boom
if (UtilTime.elapsed(data.Time, MAX_TIME))
if (UtilTime.elapsed(data.Time, _maxTime))
{
sonicIter.remove();
explode(data);
@ -202,7 +215,7 @@ public class SmashWitch extends SmashUltimate
continue;
}
if (UtilMath.offset(player.getLocation().add(0, 1, 0), data.Location) < HIT_BOX)
if (UtilMath.offset(player.getLocation().add(0, 1, 0), data.Location) < _hitBox)
{
sonicIter.remove();
explode(data);
@ -226,7 +239,7 @@ public class SmashWitch extends SmashUltimate
data.Location.getWorld().playSound(data.Location, Sound.EXPLODE, 1f, 1.5f);
// Damage
Map<LivingEntity, Double> targets = UtilEnt.getInRadius(data.Location, DAMAGE_RADIUS);
Map<LivingEntity, Double> targets = UtilEnt.getInRadius(data.Location, _damageRadius);
for (LivingEntity cur : targets.keySet())
{
@ -235,7 +248,7 @@ public class SmashWitch extends SmashUltimate
continue;
}
Manager.GetDamage().NewDamageEvent(cur, data.Shooter, null, DamageCause.CUSTOM, DAMAGE * targets.get(cur) + 0.5, true, false, false, data.Shooter.getName(), GetName());
Manager.GetDamage().NewDamageEvent(cur, data.Shooter, null, DamageCause.CUSTOM, _damage * targets.get(cur) + 0.5, true, false, false, data.Shooter.getName(), GetName());
}
}
@ -272,7 +285,7 @@ public class SmashWitch extends SmashUltimate
player.getWorld().playSound(player.getLocation(), Sound.BAT_TAKEOFF, (float) (0.3 + player.getExp()), (float) (Math.random() / 2 + 0.5));
// Set Recharge
Recharge.Instance.use(player, GetName() + " Flap", FLAP_COOLDOWN, false, false);
Recharge.Instance.use(player, GetName() + " Flap", _flapCooldown, false, false);
}
@EventHandler
@ -316,6 +329,6 @@ public class SmashWitch extends SmashUltimate
return;
}
event.AddKnockback(GetName(), KNOCKBACK_MAGNITUDE);
event.AddKnockback(GetName(), _knockbackMagnitude);
}
}