Implemented two new Striker sets, Windry and Luci.
This commit is contained in:
parent
17c29a33df
commit
19a418d1e0
Binary file not shown.
@ -107,7 +107,12 @@ public class Buff {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addBuff(LivingEntity l, String name, Buff buff) {
|
public static void addBuff(LivingEntity l, String name, Buff buff) {
|
||||||
|
addBuff(l,name,buff,false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void addBuff(LivingEntity l, String name, Buff buff, boolean stacking) {
|
||||||
if (l instanceof Player) {
|
if (l instanceof Player) {
|
||||||
Player p = (Player)l;
|
Player p = (Player)l;
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
@ -116,6 +121,11 @@ public class Buff {
|
|||||||
if (hasBuff(p,name)) {
|
if (hasBuff(p,name)) {
|
||||||
oldlv = pd.buffs.get(name).getAmplifier();
|
oldlv = pd.buffs.get(name).getAmplifier();
|
||||||
oldduration = pd.buffs.get(name).getRemainingBuffTime();
|
oldduration = pd.buffs.get(name).getRemainingBuffTime();
|
||||||
|
if (stacking) {
|
||||||
|
buff.setStacks(buff.getAmplifier()+oldlv);
|
||||||
|
pd.buffs.put(name, buff);
|
||||||
|
return;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
pd.buffs.put(name, buff);
|
pd.buffs.put(name, buff);
|
||||||
return;
|
return;
|
||||||
@ -136,6 +146,11 @@ public class Buff {
|
|||||||
if (hasBuff(l,name)) {
|
if (hasBuff(l,name)) {
|
||||||
oldlv = les.buffs.get(name).getAmplifier();
|
oldlv = les.buffs.get(name).getAmplifier();
|
||||||
oldduration = les.buffs.get(name).getRemainingBuffTime();
|
oldduration = les.buffs.get(name).getRemainingBuffTime();
|
||||||
|
if (stacking) {
|
||||||
|
buff.setStacks(buff.getAmplifier()+oldlv);
|
||||||
|
les.buffs.put(name, buff);
|
||||||
|
return;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
les.buffs.put(name, buff);
|
les.buffs.put(name, buff);
|
||||||
return;
|
return;
|
||||||
|
@ -274,6 +274,8 @@ public class CustomDamage {
|
|||||||
dmg += addMultiplierToPlayerLogger(damager,target,"WEAKNESS Mult",dmg * calculateWeaknessEffectMultiplier(shooter,target));
|
dmg += addMultiplierToPlayerLogger(damager,target,"WEAKNESS Mult",dmg * calculateWeaknessEffectMultiplier(shooter,target));
|
||||||
dmg += addMultiplierToPlayerLogger(damager,target,"POISON Mult",dmg * calculatePoisonEffectMultiplier(target));
|
dmg += addMultiplierToPlayerLogger(damager,target,"POISON Mult",dmg * calculatePoisonEffectMultiplier(target));
|
||||||
dmg += addMultiplierToPlayerLogger(damager,target,"Airborne Mult",dmg * calculateAirborneAttackMultiplier(shooter));
|
dmg += addMultiplierToPlayerLogger(damager,target,"Airborne Mult",dmg * calculateAirborneAttackMultiplier(shooter));
|
||||||
|
dmg += addMultiplierToPlayerLogger(damager,target,"Dodge Chance Set Bonus Mult",dmg * calculateDodgeChanceSetBonusMultiplier(shooter));
|
||||||
|
dmg += addMultiplierToPlayerLogger(damager,target,"Damage Reduction Set Bonus Mult",dmg * calculateDamageReductionSetBonusMultiplier(shooter));
|
||||||
if (reason==null || !reason.equalsIgnoreCase("Test Damage")) {
|
if (reason==null || !reason.equalsIgnoreCase("Test Damage")) {
|
||||||
double critdmg = addMultiplierToPlayerLogger(damager,target,"Critical Strike Mult",dmg * calculateCriticalStrikeMultiplier(weapon,shooter,target,reason,flags));
|
double critdmg = addMultiplierToPlayerLogger(damager,target,"Critical Strike Mult",dmg * calculateCriticalStrikeMultiplier(weapon,shooter,target,reason,flags));
|
||||||
if (critdmg!=0.0) {crit=true;
|
if (critdmg!=0.0) {crit=true;
|
||||||
@ -308,6 +310,30 @@ public class CustomDamage {
|
|||||||
return dmg;
|
return dmg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static double calculateDodgeChanceSetBonusMultiplier(LivingEntity shooter) {
|
||||||
|
double mult = 0.0;
|
||||||
|
if (shooter instanceof Player) {
|
||||||
|
Player p = (Player)shooter;
|
||||||
|
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LUCI, 3)) {
|
||||||
|
double dodgechance = CalculateDodgeChance((Player)shooter);
|
||||||
|
mult = dodgechance*ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.LUCI, 3, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mult;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double calculateDamageReductionSetBonusMultiplier(LivingEntity shooter) {
|
||||||
|
double mult = 0.0;
|
||||||
|
if (shooter instanceof Player) {
|
||||||
|
Player p = (Player)shooter;
|
||||||
|
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LUCI, 3)) {
|
||||||
|
double damagered = 1-CalculateDamageReduction(1,(Player)shooter,null);
|
||||||
|
mult = damagered*ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.LUCI, 4, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mult;
|
||||||
|
}
|
||||||
|
|
||||||
private static double getDamageReduction(LivingEntity target) {
|
private static double getDamageReduction(LivingEntity target) {
|
||||||
if (target instanceof Player) {
|
if (target instanceof Player) {
|
||||||
double reduction = 0;
|
double reduction = 0;
|
||||||
@ -679,6 +705,8 @@ public class CustomDamage {
|
|||||||
pd.lastcombat=TwosideKeeper.getServerTickTime();
|
pd.lastcombat=TwosideKeeper.getServerTickTime();
|
||||||
increaseBarbarianStacks(p,weapon);
|
increaseBarbarianStacks(p,weapon);
|
||||||
damage = applyBarbarianBonuses(p,target,weapon,damage,reason);
|
damage = applyBarbarianBonuses(p,target,weapon,damage,reason);
|
||||||
|
increaseWindCharges(p);
|
||||||
|
applyWindSlashEffects(p,target,damage,reason);
|
||||||
|
|
||||||
if (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER) {
|
if (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER) {
|
||||||
if (isFlagSet(pd.lasthitproperties,IS_CRIT)) {
|
if (isFlagSet(pd.lasthitproperties,IS_CRIT)) {
|
||||||
@ -747,6 +775,32 @@ public class CustomDamage {
|
|||||||
return damage;
|
return damage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void applyWindSlashEffects(Player p, LivingEntity target, double damage, String reason) {
|
||||||
|
if (reason!=null && reason.equalsIgnoreCase("Wind Slash")) {
|
||||||
|
GenericFunctions.knockupEntities(0.4d, target);
|
||||||
|
if (damage>target.getHealth()) {
|
||||||
|
//Target killed.
|
||||||
|
int settier = ItemSet.GetItemTier(p.getEquipment().getItemInMainHand());
|
||||||
|
Buff.addBuff(p, "WINDCHARGE", new Buff("Wind",20*60,settier*5,Color.GRAY,"๑",true), true);
|
||||||
|
CustomDamage.setAbsorptionHearts(p, CustomDamage.getAbsorptionHearts(p)+settier);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void increaseWindCharges(Player p) {
|
||||||
|
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.WINDRY, 2)) {
|
||||||
|
int windchargeamt = (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.WINDRY, 2, 2);
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
Buff.addBuff(p, "WINDCHARGE", new Buff("Wind",20*60,windchargeamt,Color.GRAY,"๑",true),true);
|
||||||
|
Buff b = Buff.getBuff(p, "WINDCHARGE");
|
||||||
|
int maxWindStacks = ItemSet.getHighestTierInSet(p,ItemSet.WINDRY)*10;
|
||||||
|
if (b.getAmplifier()>maxWindStacks) {
|
||||||
|
b.setStacks(maxWindStacks);
|
||||||
|
}
|
||||||
|
GenericFunctions.sendActionBarMessage(p, "", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static double IncreaseDamageDealtByElites(Player p, Entity damager, double damage) {
|
private static double IncreaseDamageDealtByElites(Player p, Entity damager, double damage) {
|
||||||
LivingEntity shooter = getDamagerEntity(damager);
|
LivingEntity shooter = getDamagerEntity(damager);
|
||||||
if (shooter!=null) {
|
if (shooter!=null) {
|
||||||
@ -1851,7 +1905,9 @@ public class CustomDamage {
|
|||||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(p, ItemSet.DARNYS)/100d);
|
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(p, ItemSet.DARNYS)/100d);
|
||||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(p, ItemSet.JAMDAK)/100d);
|
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(p, ItemSet.JAMDAK)/100d);
|
||||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(p, ItemSet.LORASAADI)/100d);
|
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(p, ItemSet.LORASAADI)/100d);
|
||||||
|
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LUCI, 2)) {
|
||||||
|
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.LUCI, 2, 2)/100d);
|
||||||
|
}
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
|
||||||
if (ArtifactAbility.containsEnchantment(ArtifactAbility.SHADOWWALKER, p.getEquipment().getItemInMainHand()) &&
|
if (ArtifactAbility.containsEnchantment(ArtifactAbility.SHADOWWALKER, p.getEquipment().getItemInMainHand()) &&
|
||||||
@ -1899,7 +1955,8 @@ public class CustomDamage {
|
|||||||
dodgechance=0.95;
|
dodgechance=0.95;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pd.fulldodge || pd.slayermegahit) {
|
if (pd.fulldodge || pd.slayermegahit ||
|
||||||
|
Buff.hasBuff(p, "BEASTWITHIN")) {
|
||||||
dodgechance = 1.0;
|
dodgechance = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1923,7 +1980,7 @@ public class CustomDamage {
|
|||||||
int partylevel = 0;
|
int partylevel = 0;
|
||||||
int rangeraegislevel = 0;
|
int rangeraegislevel = 0;
|
||||||
double magmacubediv = 0;
|
double magmacubediv = 0;
|
||||||
double rangerdmgdiv = 0;
|
double dmgreductiondiv = 0;
|
||||||
double tacticspct = 0;
|
double tacticspct = 0;
|
||||||
double darknessdiv = 0;
|
double darknessdiv = 0;
|
||||||
double playermodediv = 0;
|
double playermodediv = 0;
|
||||||
@ -1934,8 +1991,8 @@ public class CustomDamage {
|
|||||||
ItemStack[] armor = GenericFunctions.getEquipment(target,true);
|
ItemStack[] armor = GenericFunctions.getEquipment(target,true);
|
||||||
if (target instanceof Player) {
|
if (target instanceof Player) {
|
||||||
Player p = (Player)target;
|
Player p = (Player)target;
|
||||||
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 2, 2)/100d;
|
dmgreductiondiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 2, 2)/100d;
|
||||||
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 3, 3)/100d;
|
dmgreductiondiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 3, 3)/100d;
|
||||||
/*rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 2, 2)/100d;
|
/*rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 2, 2)/100d;
|
||||||
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.JAMDAK, 2, 2)/100d;
|
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.JAMDAK, 2, 2)/100d;
|
||||||
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 2, 2)/100d;
|
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 2, 2)/100d;
|
||||||
@ -1944,6 +2001,7 @@ public class CustomDamage {
|
|||||||
if ((p).getLocation().getY()>=0 && (p).getLocation().getY()<=255 && (p).getLocation().add(0,0,0).getBlock().getLightLevel()<=7) {
|
if ((p).getLocation().getY()>=0 && (p).getLocation().getY()<=255 && (p).getLocation().add(0,0,0).getBlock().getLightLevel()<=7) {
|
||||||
darknessdiv += ItemSet.GetTotalBaseAmount(p, ItemSet.RUDOLPH)/100d;
|
darknessdiv += ItemSet.GetTotalBaseAmount(p, ItemSet.RUDOLPH)/100d;
|
||||||
}
|
}
|
||||||
|
dmgreductiondiv += ItemSet.GetTotalBaseAmount(p, ItemSet.LUCI)/100d;
|
||||||
} else {
|
} else {
|
||||||
LivingEntityStructure les = LivingEntityStructure.GetLivingEntityStructure(target);
|
LivingEntityStructure les = LivingEntityStructure.GetLivingEntityStructure(target);
|
||||||
if (!les.checkedforcubes) {
|
if (!les.checkedforcubes) {
|
||||||
@ -2126,7 +2184,7 @@ public class CustomDamage {
|
|||||||
*(1d-((protectionlevel)/100d))
|
*(1d-((protectionlevel)/100d))
|
||||||
*(1d-((projectileprotectionlevel)/100d))
|
*(1d-((projectileprotectionlevel)/100d))
|
||||||
*(1d-((explosionprotectionlevel)/100d))
|
*(1d-((explosionprotectionlevel)/100d))
|
||||||
*(1d-rangerdmgdiv)
|
*(1d-dmgreductiondiv)
|
||||||
*(1d-magmacubediv)
|
*(1d-magmacubediv)
|
||||||
*(1d-darknessdiv)
|
*(1d-darknessdiv)
|
||||||
*(1d-((partylevel*10d)/100d))
|
*(1d-((partylevel*10d)/100d))
|
||||||
@ -2147,7 +2205,11 @@ public class CustomDamage {
|
|||||||
Player p = (Player)target;
|
Player p = (Player)target;
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
pd.prev_armordef = finaldmg;
|
pd.prev_armordef = finaldmg;
|
||||||
|
if (Buff.hasBuff(p, "BEASTWITHIN")) {
|
||||||
|
finaldmg = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return finaldmg;
|
return finaldmg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2455,6 +2517,7 @@ public class CustomDamage {
|
|||||||
if (ItemSet.meetsLorasysSwordConditions(40, 4, (Player)shooter)) {
|
if (ItemSet.meetsLorasysSwordConditions(40, 4, (Player)shooter)) {
|
||||||
dmg += 55;
|
dmg += 55;
|
||||||
}
|
}
|
||||||
|
dmg += ItemSet.GetTotalBaseAmount((Player)shooter, ItemSet.WINDRY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return dmg;
|
return dmg;
|
||||||
@ -2693,6 +2756,10 @@ public class CustomDamage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Buff.hasBuff(p, "WINDCHARGE") &&
|
||||||
|
ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.WINDRY, 4)) {
|
||||||
|
critchance = addMultiplicativeValue(critchance,Buff.getBuff(p, "WINDCHARGE").getAmplifier()*0.01);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return critchance;
|
return critchance;
|
||||||
@ -2866,6 +2933,10 @@ public class CustomDamage {
|
|||||||
finaldmg += dmg*0.5;
|
finaldmg += dmg*0.5;
|
||||||
}
|
}
|
||||||
finaldmg += dmg*aPlugin.API.getPlayerBonuses(p).getBonusArmorPenetration();
|
finaldmg += dmg*aPlugin.API.getPlayerBonuses(p).getBonusArmorPenetration();
|
||||||
|
if (Buff.hasBuff(p, "WINDCHARGE") &&
|
||||||
|
ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.WINDRY, 3)) {
|
||||||
|
finaldmg += dmg*(Buff.getBuff(p, "WINDCHARGE").getAmplifier()*0.01);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (finaldmg>=dmg) {
|
if (finaldmg>=dmg) {
|
||||||
return dmg;
|
return dmg;
|
||||||
|
@ -90,6 +90,7 @@ import sig.plugin.TwosideKeeper.HelperStructures.EliteMonsterLocationFinder;
|
|||||||
import sig.plugin.TwosideKeeper.HelperStructures.ItemSet;
|
import sig.plugin.TwosideKeeper.HelperStructures.ItemSet;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.PlayerMode;
|
import sig.plugin.TwosideKeeper.HelperStructures.PlayerMode;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.WorldShop;
|
import sig.plugin.TwosideKeeper.HelperStructures.WorldShop;
|
||||||
|
import sig.plugin.TwosideKeeper.HelperStructures.Effects.WindSlash;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ArrayUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ArrayUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ArtifactUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.ArtifactUtils;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.BlockUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.BlockUtils;
|
||||||
@ -3312,13 +3313,16 @@ public class GenericFunctions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack UpdateItemLore(ItemStack item) {
|
public static ItemStack UpdateItemLore(ItemStack item) {
|
||||||
|
//TwosideKeeper.log("Queue Update Item Lore for "+item, 0);
|
||||||
if (RemoveInvalidItem(item)) {
|
if (RemoveInvalidItem(item)) {
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
if (ItemSet.isSetItem(item)) {
|
if (ItemSet.isSetItem(item)) {
|
||||||
|
//TwosideKeeper.log("Is Set Item Check", 0);
|
||||||
//Update the lore. See if it's hardened. If it is, we will save just that piece.
|
//Update the lore. See if it's hardened. If it is, we will save just that piece.
|
||||||
//Save the tier and type as well.
|
//Save the tier and type as well.
|
||||||
ItemSet set = ItemSet.GetItemSet(item);
|
ItemSet set = ItemSet.GetItemSet(item);
|
||||||
|
//TwosideKeeper.log("Set is "+set, 0);
|
||||||
int tier = ItemSet.GetItemTier(item);
|
int tier = ItemSet.GetItemTier(item);
|
||||||
item = UpdateSetLore(set,tier,item);
|
item = UpdateSetLore(set,tier,item);
|
||||||
}
|
}
|
||||||
@ -5158,4 +5162,39 @@ public class GenericFunctions {
|
|||||||
TileEntityHopper NMSHopper = (TileEntityHopper) BukkitHopper.getTileEntity();
|
TileEntityHopper NMSHopper = (TileEntityHopper) BukkitHopper.getTileEntity();
|
||||||
NMSHopper.a(title);
|
NMSHopper.a(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void performWindSlash(Player p) {
|
||||||
|
//Consume wind charge stacks.
|
||||||
|
if (Buff.hasBuff(p, "WINDCHARGE")) {
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
if (pd.lastusedwindslash+GetModifiedCooldown(TwosideKeeper.WINDSLASH_COOLDOWN,p)<=TwosideKeeper.getServerTickTime()) {
|
||||||
|
int windcharges = Buff.getBuff(p, "WINDCHARGE").getAmplifier();
|
||||||
|
Buff.removeBuff(p, "WINDCHARGE");
|
||||||
|
TwosideKeeper.windslashes.add(
|
||||||
|
new WindSlash(p.getLocation(),p,ItemSet.GetItemTier(p.getEquipment().getItemInMainHand())*windcharges,20*10));
|
||||||
|
p.setVelocity(p.getLocation().getDirection().multiply(-0.7f-(0.01f*(windcharges/10))*((p.isOnGround())?1d:2d)));
|
||||||
|
GenericFunctions.sendActionBarMessage(p, "", true);
|
||||||
|
aPlugin.API.sendCooldownPacket(p, p.getEquipment().getItemInMainHand(), GetModifiedCooldown(TwosideKeeper.WINDSLASH_COOLDOWN,p));
|
||||||
|
pd.lastusedwindslash = TwosideKeeper.getServerTickTime();
|
||||||
|
}
|
||||||
|
} //TILTED /////////////////\\\\\\\\\\\\\\\\\\\\\\\\\////////////////
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void knockupEntities(double amt, LivingEntity...ents) {
|
||||||
|
for (LivingEntity l : ents) {
|
||||||
|
l.setVelocity(new Vector(l.getVelocity().getX(),amt,l.getVelocity().getZ()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void performBeastWithin(Player p) {
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
if (ItemSet.hasFullSet(p, ItemSet.LUCI) && pd.lastusedbeastwithin+GetModifiedCooldown(TwosideKeeper.BEASTWITHIN_COOLDOWN,p)<=TwosideKeeper.getServerTickTime()) {
|
||||||
|
GenericFunctions.logAndApplyPotionEffectToEntity(PotionEffectType.NIGHT_VISION, 20, 1, p);
|
||||||
|
SoundUtils.playGlobalSound(p.getLocation(), Sound.ENTITY_GENERIC_DRINK, 1.0f, 1.0f);
|
||||||
|
Buff.addBuff(p, "BEASTWITHIN", new Buff("Beast Within",(ItemSet.GetItemTier(p.getEquipment().getItemInMainHand())+ItemSet.BEASTWITHIN_DURATION)*20,1,org.bukkit.Color.MAROON,"♦",true));
|
||||||
|
GenericFunctions.sendActionBarMessage(p, "", true);
|
||||||
|
aPlugin.API.sendCooldownPacket(p, p.getEquipment().getItemInMainHand(), GetModifiedCooldown(TwosideKeeper.BEASTWITHIN_COOLDOWN,p));
|
||||||
|
pd.lastusedbeastwithin=TwosideKeeper.getServerTickTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package sig.plugin.TwosideKeeper.HelperStructures.Effects;
|
|||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Particle;
|
import org.bukkit.Particle;
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
@ -9,6 +10,7 @@ import sig.plugin.TwosideKeeper.CustomDamage;
|
|||||||
import sig.plugin.TwosideKeeper.TwosideKeeper;
|
import sig.plugin.TwosideKeeper.TwosideKeeper;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
|
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
|
||||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.BlockUtils;
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.BlockUtils;
|
||||||
|
import sig.plugin.TwosideKeeper.HelperStructures.Utils.SoundUtils;
|
||||||
|
|
||||||
public class WindSlash {
|
public class WindSlash {
|
||||||
Location loc;
|
Location loc;
|
||||||
@ -23,11 +25,12 @@ public class WindSlash {
|
|||||||
final static float SPEED_MULT = 3.5f;
|
final static float SPEED_MULT = 3.5f;
|
||||||
|
|
||||||
public WindSlash(Location loc, Player p, double dmg, int tick_duration) {
|
public WindSlash(Location loc, Player p, double dmg, int tick_duration) {
|
||||||
this.loc=loc.clone();
|
this.loc=loc.clone().add(0,p.getEyeHeight(),0);
|
||||||
this.sourcep=p;
|
this.sourcep=p;
|
||||||
this.dmg=dmg;
|
this.dmg=dmg;
|
||||||
this.death_time = TwosideKeeper.getServerTickTime()+tick_duration;
|
this.death_time = TwosideKeeper.getServerTickTime()+tick_duration;
|
||||||
this.lasteffect=TwosideKeeper.getServerTickTime();
|
this.lasteffect=TwosideKeeper.getServerTickTime();
|
||||||
|
SoundUtils.playGlobalSound(loc,Sound.BLOCK_PORTAL_TRIGGER, 0.2f, 2.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean runTick() {
|
public boolean runTick() {
|
||||||
@ -51,6 +54,7 @@ public class WindSlash {
|
|||||||
Vector move = origloc.getDirection().setY(origloc.getDirection().getY()/1.4).multiply(SPEED_MULT);
|
Vector move = origloc.getDirection().setY(origloc.getDirection().getY()/1.4).multiply(SPEED_MULT);
|
||||||
float dist = SPEED_MULT;
|
float dist = SPEED_MULT;
|
||||||
loc.add(move);
|
loc.add(move);
|
||||||
|
SoundUtils.playGlobalSound(loc, Sound.ENTITY_PLAYER_ATTACK_NODAMAGE, 0.4f, 1.0f);
|
||||||
while (dist-->0) {
|
while (dist-->0) {
|
||||||
if (!BlockUtils.isPassThrough(origloc.add(origloc.getDirection()))) {
|
if (!BlockUtils.isPassThrough(origloc.add(origloc.getDirection()))) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -45,7 +45,7 @@ public enum ItemSet {
|
|||||||
RUDOLPH(5,5, 10,10, 2,1, 0,0),
|
RUDOLPH(5,5, 10,10, 2,1, 0,0),
|
||||||
OLIVE(3,2, 10,10, 2,1, 0,0),
|
OLIVE(3,2, 10,10, 2,1, 0,0),
|
||||||
WINDRY(2,2, 1,1, 1,0, 1,0),
|
WINDRY(2,2, 1,1, 1,0, 1,0),
|
||||||
LUCI(2,2, 4,4, 2,2, 2,2),
|
LUCI(2,2, 4,4, 1,0, 1,0),
|
||||||
SHARD(2,1, 10,10, 20,20, 10,10),
|
SHARD(2,1, 10,10, 20,20, 10,10),
|
||||||
TOXIN(2,2, 20,5, 10,3, 10,3),
|
TOXIN(2,2, 20,5, 10,3, 10,3),
|
||||||
PROTECTOR(5,2, 10,5, 10,10, 1,1),
|
PROTECTOR(5,2, 10,5, 10,10, 1,1),
|
||||||
@ -60,6 +60,8 @@ public enum ItemSet {
|
|||||||
final static String ABILITY_LABEL = ChatColor.BOLD+""+ChatColor.GOLD;
|
final static String ABILITY_LABEL = ChatColor.BOLD+""+ChatColor.GOLD;
|
||||||
final static String ABILITY_LABEL_END = ""+ChatColor.RESET;
|
final static String ABILITY_LABEL_END = ""+ChatColor.RESET;
|
||||||
|
|
||||||
|
final public static int BEASTWITHIN_DURATION = 6;
|
||||||
|
|
||||||
public static ItemSet[] bauble_sets;
|
public static ItemSet[] bauble_sets;
|
||||||
int baseval;
|
int baseval;
|
||||||
int increase_val;
|
int increase_val;
|
||||||
@ -813,6 +815,8 @@ public enum ItemSet {
|
|||||||
lore.add(ChatColor.GRAY+" ");
|
lore.add(ChatColor.GRAY+" ");
|
||||||
lore.add(ChatColor.GRAY+" Gain +"+(tier*5)+" wind charges for each killing blow dealt");
|
lore.add(ChatColor.GRAY+" Gain +"+(tier*5)+" wind charges for each killing blow dealt");
|
||||||
lore.add(ChatColor.GRAY+" with Wind Slash and gain "+(tier)+" Absorption Health.");
|
lore.add(ChatColor.GRAY+" with Wind Slash and gain "+(tier)+" Absorption Health.");
|
||||||
|
lore.add(ChatColor.GRAY+" ");
|
||||||
|
lore.add(ChatColor.GRAY+" (5 second cooldown)");
|
||||||
break;
|
break;
|
||||||
case ASSASSIN:
|
case ASSASSIN:
|
||||||
lore.add(ChatColor.GOLD+""+ChatColor.ITALIC+"Increases in power based on "+ChatColor.BOLD+"Total Tier Amount");
|
lore.add(ChatColor.GOLD+""+ChatColor.ITALIC+"Increases in power based on "+ChatColor.BOLD+"Total Tier Amount");
|
||||||
@ -860,7 +864,7 @@ public enum ItemSet {
|
|||||||
lore.add(ChatColor.DARK_AQUA+" 4 - "+ChatColor.WHITE+" Adds "+ItemSet.GetBaseAmount(set, tier, 4)+"% Damage");
|
lore.add(ChatColor.DARK_AQUA+" 4 - "+ChatColor.WHITE+" Adds "+ItemSet.GetBaseAmount(set, tier, 4)+"% Damage");
|
||||||
lore.add(ChatColor.DARK_AQUA+" "+ChatColor.GRAY+" for every 1% Damage Reduction");
|
lore.add(ChatColor.DARK_AQUA+" "+ChatColor.GRAY+" for every 1% Damage Reduction");
|
||||||
lore.add(ChatColor.DARK_AQUA+" 5 - "+ABILITY_LABEL+" Beast Within"+ABILITY_LABEL_END);
|
lore.add(ChatColor.DARK_AQUA+" 5 - "+ABILITY_LABEL+" Beast Within"+ABILITY_LABEL_END);
|
||||||
lore.add(ChatColor.GRAY+" Press the drop key to obtain a buff lasting "+(tier+6));
|
lore.add(ChatColor.GRAY+" Press the drop key to obtain a buff lasting "+(tier+BEASTWITHIN_DURATION));
|
||||||
lore.add(ChatColor.GRAY+" seconds, giving you 100% Dodge Chance and");
|
lore.add(ChatColor.GRAY+" seconds, giving you 100% Dodge Chance and");
|
||||||
lore.add(ChatColor.GRAY+" Damage Reduction. Beast Within's Cooldown");
|
lore.add(ChatColor.GRAY+" Damage Reduction. Beast Within's Cooldown");
|
||||||
lore.add(ChatColor.GRAY+" decreases by 1 second for each successful");
|
lore.add(ChatColor.GRAY+" decreases by 1 second for each successful");
|
||||||
@ -1088,6 +1092,20 @@ public enum ItemSet {
|
|||||||
return ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LORASYS, 1) && ItemSet.GetBaubleTier(p)>=baubletier && (swordtier==1 || ItemSet.GetItemTier(p.getEquipment().getItemInMainHand())>=swordtier);
|
return ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LORASYS, 1) && ItemSet.GetBaubleTier(p)>=baubletier && (swordtier==1 || ItemSet.GetItemTier(p.getEquipment().getItemInMainHand())>=swordtier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getHighestTierInSet(Player p, ItemSet set) {
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
int highest = 0;
|
||||||
|
if (pd.itemsets.containsKey(set.name())) {
|
||||||
|
HashMap<Integer,Integer> tiermap = pd.itemsets.get(set.name());
|
||||||
|
for (Integer tier : tiermap.keySet()) {
|
||||||
|
if (tiermap.get(tier)>=highest) {
|
||||||
|
highest = tiermap.get(tier);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return highest;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Purely for API support. DO NOT USE OTHERWISE!!
|
* Purely for API support. DO NOT USE OTHERWISE!!
|
||||||
*/
|
*/
|
||||||
|
@ -75,7 +75,8 @@ public class BlockUtils {
|
|||||||
l.getBlock().getType()==Material.STEP ||
|
l.getBlock().getType()==Material.STEP ||
|
||||||
l.getBlock().getType()==Material.WOOD_STEP ||
|
l.getBlock().getType()==Material.WOOD_STEP ||
|
||||||
l.getBlock().getType()==Material.PURPUR_SLAB ||
|
l.getBlock().getType()==Material.PURPUR_SLAB ||
|
||||||
l.getBlock().getType()==Material.STONE_SLAB2;
|
l.getBlock().getType()==Material.STONE_SLAB2 ||
|
||||||
|
l.getBlock().getType()==Material.WEB;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isSign(Block b) {
|
public static boolean isSign(Block b) {
|
||||||
|
@ -95,7 +95,11 @@ public class EntityUtils {
|
|||||||
aec.setRadius(0.1f);
|
aec.setRadius(0.1f);
|
||||||
},delay);
|
},delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Use Buff.addBuff() instead.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void applyBuff(LivingEntity l, String buffname, Buff buff) {
|
public static void applyBuff(LivingEntity l, String buffname, Buff buff) {
|
||||||
HashMap<String,Buff> buffMap;
|
HashMap<String,Buff> buffMap;
|
||||||
if (l instanceof Player) {
|
if (l instanceof Player) {
|
||||||
@ -108,7 +112,11 @@ public class EntityUtils {
|
|||||||
buffMap.put(buffname, buff);
|
buffMap.put(buffname, buff);
|
||||||
updateBuffDisplay(l);
|
updateBuffDisplay(l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Use Buff.addBuff() instead.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void applyBuffs(LivingEntity l, String[] buffnames, Buff ... buffArr) {
|
public static void applyBuffs(LivingEntity l, String[] buffnames, Buff ... buffArr) {
|
||||||
HashMap<String,Buff> buffMap;
|
HashMap<String,Buff> buffMap;
|
||||||
if (buffnames.length==buffArr.length) {
|
if (buffnames.length==buffArr.length) {
|
||||||
@ -128,7 +136,11 @@ public class EntityUtils {
|
|||||||
DebugUtils.showStackTrace();
|
DebugUtils.showStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Use Buff.removeBuff() instead.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void removeBuff(LivingEntity l, String buffName) {
|
public static void removeBuff(LivingEntity l, String buffName) {
|
||||||
HashMap<String,Buff> buffMap;
|
HashMap<String,Buff> buffMap;
|
||||||
if (l instanceof Player) {
|
if (l instanceof Player) {
|
||||||
@ -141,7 +153,11 @@ public class EntityUtils {
|
|||||||
buffMap.remove(buffName);
|
buffMap.remove(buffName);
|
||||||
updateBuffDisplay(l);
|
updateBuffDisplay(l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Use Buff.removeBuff() instead.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public static void removeBuffs(LivingEntity l, String ... buffNames) {
|
public static void removeBuffs(LivingEntity l, String ... buffNames) {
|
||||||
HashMap<String,Buff> buffMap;
|
HashMap<String,Buff> buffMap;
|
||||||
if (l instanceof Player) {
|
if (l instanceof Player) {
|
||||||
|
@ -24,7 +24,9 @@ public class SoundUtils {
|
|||||||
*/
|
*/
|
||||||
public static void playIndividualGlobalSound(Location loc, Sound sound, float vol, float pitch) {
|
public static void playIndividualGlobalSound(Location loc, Sound sound, float vol, float pitch) {
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||||
p.playSound(loc, sound, vol, pitch);
|
if (p.getLocation().distanceSquared(loc)<=2500) {
|
||||||
|
p.playSound(loc, sound, vol, pitch);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -149,6 +149,8 @@ public class PlayerStructure {
|
|||||||
public long icewandused = TwosideKeeper.getServerTickTime();
|
public long icewandused = TwosideKeeper.getServerTickTime();
|
||||||
public PlayerMode playermode_on_death=PlayerMode.NORMAL;
|
public PlayerMode playermode_on_death=PlayerMode.NORMAL;
|
||||||
public long lastusedearthwave = TwosideKeeper.getServerTickTime();
|
public long lastusedearthwave = TwosideKeeper.getServerTickTime();
|
||||||
|
public long lastusedwindslash = TwosideKeeper.getServerTickTime();
|
||||||
|
public long lastusedbeastwithin = TwosideKeeper.getServerTickTime();
|
||||||
|
|
||||||
public long iframetime = 0;
|
public long iframetime = 0;
|
||||||
|
|
||||||
@ -257,7 +259,9 @@ public class PlayerStructure {
|
|||||||
this.last_rejuvenate=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
this.last_rejuvenate=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
||||||
this.lastassassinatetime=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
this.lastassassinatetime=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
||||||
this.lastlifesavertime=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
this.lastlifesavertime=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
||||||
|
this.lastusedwindslash=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
||||||
this.icewandused=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
this.icewandused=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
||||||
|
this.lastusedbeastwithin=(TwosideKeeper.getServerType()==ServerType.MAIN)?TwosideKeeper.getServerTickTime():0;
|
||||||
this.damagedata = new DamageLogger(p);
|
this.damagedata = new DamageLogger(p);
|
||||||
this.damagelogging=false;
|
this.damagelogging=false;
|
||||||
this.isPlayingSpleef=false;
|
this.isPlayingSpleef=false;
|
||||||
@ -327,6 +331,8 @@ public class PlayerStructure {
|
|||||||
aPlugin.API.sendCooldownPacket(p, Material.WATCH, GenericFunctions.GetRemainingCooldownTime(p, pd.icewandused, TwosideKeeper.ICEWAND_COOLDOWN));
|
aPlugin.API.sendCooldownPacket(p, Material.WATCH, GenericFunctions.GetRemainingCooldownTime(p, pd.icewandused, TwosideKeeper.ICEWAND_COOLDOWN));
|
||||||
aPlugin.API.sendCooldownPacket(p, Material.RAW_FISH, GenericFunctions.GetRemainingCooldownTime(p, pd.lastcandyconsumed, 40));
|
aPlugin.API.sendCooldownPacket(p, Material.RAW_FISH, GenericFunctions.GetRemainingCooldownTime(p, pd.lastcandyconsumed, 40));
|
||||||
aPlugin.API.sendCooldownPacket(p, Material.GOLDEN_APPLE, GenericFunctions.GetRemainingCooldownTime(p, pd.lastrevivecandyconsumed, 200));
|
aPlugin.API.sendCooldownPacket(p, Material.GOLDEN_APPLE, GenericFunctions.GetRemainingCooldownTime(p, pd.lastrevivecandyconsumed, 200));
|
||||||
|
applyCooldownToAllTypes(p,"SWORD",GenericFunctions.GetRemainingCooldownTime(p, pd.lastusedwindslash, TwosideKeeper.WINDSLASH_COOLDOWN));
|
||||||
|
applyCooldownToAllTypes(p,"SWORD",GenericFunctions.GetRemainingCooldownTime(p, pd.lastusedbeastwithin, TwosideKeeper.BEASTWITHIN_COOLDOWN));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void applyCooldownToAllTypes(Player p, String item, int cooldown) {
|
private static void applyCooldownToAllTypes(Player p, String item, int cooldown) {
|
||||||
@ -407,6 +413,8 @@ public class PlayerStructure {
|
|||||||
workable.set("COOLDOWN_lastmock", last_mock);
|
workable.set("COOLDOWN_lastmock", last_mock);
|
||||||
workable.set("COOLDOWN_lastassassinatetime", lastassassinatetime);
|
workable.set("COOLDOWN_lastassassinatetime", lastassassinatetime);
|
||||||
workable.set("COOLDOWN_lastlifesavertime", lastlifesavertime);
|
workable.set("COOLDOWN_lastlifesavertime", lastlifesavertime);
|
||||||
|
workable.set("COOLDOWN_lastusedwindslash", lastusedwindslash);
|
||||||
|
workable.set("COOLDOWN_lastusedbeastwithin", lastusedbeastwithin);
|
||||||
int buffcounter=0;
|
int buffcounter=0;
|
||||||
for (String key : buffs.keySet()) {
|
for (String key : buffs.keySet()) {
|
||||||
Buff b = buffs.get(key);
|
Buff b = buffs.get(key);
|
||||||
@ -500,6 +508,8 @@ public class PlayerStructure {
|
|||||||
workable.addDefault("COOLDOWN_lastmock", last_mock);
|
workable.addDefault("COOLDOWN_lastmock", last_mock);
|
||||||
workable.addDefault("COOLDOWN_lastassassinatetime", lastassassinatetime);
|
workable.addDefault("COOLDOWN_lastassassinatetime", lastassassinatetime);
|
||||||
workable.addDefault("COOLDOWN_lastlifesavertime", lastlifesavertime);
|
workable.addDefault("COOLDOWN_lastlifesavertime", lastlifesavertime);
|
||||||
|
workable.addDefault("COOLDOWN_lastusedwindslash", lastusedwindslash);
|
||||||
|
workable.addDefault("COOLDOWN_lastusedbeastwithin", lastusedbeastwithin);
|
||||||
workable.addDefault("BUFFCOUNT", 0);
|
workable.addDefault("BUFFCOUNT", 0);
|
||||||
|
|
||||||
workable.options().copyDefaults();
|
workable.options().copyDefaults();
|
||||||
@ -556,6 +566,8 @@ public class PlayerStructure {
|
|||||||
this.last_mock = workable.getLong("COOLDOWN_lastmock");
|
this.last_mock = workable.getLong("COOLDOWN_lastmock");
|
||||||
this.lastassassinatetime = workable.getLong("COOLDOWN_lastassassinatetime");
|
this.lastassassinatetime = workable.getLong("COOLDOWN_lastassassinatetime");
|
||||||
this.lastlifesavertime = workable.getLong("COOLDOWN_lastlifesavertime");
|
this.lastlifesavertime = workable.getLong("COOLDOWN_lastlifesavertime");
|
||||||
|
this.lastusedwindslash = workable.getLong("COOLDOWN_lastusedwindslash");
|
||||||
|
this.lastusedbeastwithin = workable.getLong("COOLDOWN_lastusedbeastwithin");
|
||||||
this.vacuumsuckup = workable.getBoolean("vacuumsuckup");
|
this.vacuumsuckup = workable.getBoolean("vacuumsuckup");
|
||||||
this.equipweapons = workable.getBoolean("equipweapons");
|
this.equipweapons = workable.getBoolean("equipweapons");
|
||||||
this.equiparmor = workable.getBoolean("equiparmor");
|
this.equiparmor = workable.getBoolean("equiparmor");
|
||||||
|
@ -450,6 +450,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
public static final int SIPHON_COOLDOWN = 700;
|
public static final int SIPHON_COOLDOWN = 700;
|
||||||
public static final int MOCK_COOLDOWN = 400;
|
public static final int MOCK_COOLDOWN = 400;
|
||||||
public static final int ICEWAND_COOLDOWN = 1200;
|
public static final int ICEWAND_COOLDOWN = 1200;
|
||||||
|
public static final int WINDSLASH_COOLDOWN = 100;
|
||||||
|
public static final int BEASTWITHIN_COOLDOWN = 2400;
|
||||||
|
|
||||||
public static int damagequeue = 0;
|
public static int damagequeue = 0;
|
||||||
public static List<DamageStructure> damagequeuelist = new ArrayList<DamageStructure>();
|
public static List<DamageStructure> damagequeuelist = new ArrayList<DamageStructure>();
|
||||||
@ -1886,6 +1888,11 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
//new TemporaryBlock(p.getLocation().getBlock(),Material.STAINED_GLASS,(byte)6,200,"TEST");
|
//new TemporaryBlock(p.getLocation().getBlock(),Material.STAINED_GLASS,(byte)6,200,"TEST");
|
||||||
//TwosideKeeper.log(TextUtils.outputHashmap(TwosideKeeper.temporaryblocks), 0);
|
//TwosideKeeper.log(TextUtils.outputHashmap(TwosideKeeper.temporaryblocks), 0);
|
||||||
}break;
|
}break;
|
||||||
|
case "RENAME":{
|
||||||
|
ItemMeta meta = p.getEquipment().getItemInMainHand().getItemMeta();
|
||||||
|
meta.setDisplayName(args[1]);
|
||||||
|
p.getEquipment().getItemInMainHand().setItemMeta(meta);
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4975,6 +4982,25 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ev.getItemDrop().getItemStack().getType().toString().contains("SWORD") &&
|
||||||
|
!GenericFunctions.isViewingInventory(ev.getPlayer())) {
|
||||||
|
if (ItemSet.hasFullSet(ev.getPlayer(),ItemSet.WINDRY)) {
|
||||||
|
ev.setCancelled(true);
|
||||||
|
ev.getPlayer().getEquipment().setItemInMainHand(ev.getItemDrop().getItemStack());
|
||||||
|
GenericFunctions.performWindSlash(ev.getPlayer());
|
||||||
|
ev.getPlayer().getEquipment().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
return;
|
||||||
|
} else
|
||||||
|
if (ItemSet.hasFullSet(ev.getPlayer(),ItemSet.LUCI)) {
|
||||||
|
ev.setCancelled(true);
|
||||||
|
ev.getPlayer().getEquipment().setItemInMainHand(ev.getItemDrop().getItemStack());
|
||||||
|
//GenericFunctions.performWindSlash(ev.getPlayer());
|
||||||
|
GenericFunctions.performBeastWithin(ev.getPlayer());
|
||||||
|
ev.getPlayer().getEquipment().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (GenericFunctions.holdingNoShield(ev.getPlayer()) &&
|
if (GenericFunctions.holdingNoShield(ev.getPlayer()) &&
|
||||||
ev.getItemDrop().getItemStack().getType().toString().contains("SWORD") &&
|
ev.getItemDrop().getItemStack().getType().toString().contains("SWORD") &&
|
||||||
!GenericFunctions.isViewingInventory(ev.getPlayer())) {
|
!GenericFunctions.isViewingInventory(ev.getPlayer())) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user