Improved calculation speed for damage dealing formulas and checking for
item set conditions. Should improve fluidity of combat in regards to the server significantly.
This commit is contained in:
parent
25bb73a670
commit
6b2c6e3d11
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
name: TwosideKeeper
|
||||
main: sig.plugin.TwosideKeeper.TwosideKeeper
|
||||
version: 3.10.10
|
||||
version: 3.11.0
|
||||
loadbefore: [aPlugin]
|
||||
commands:
|
||||
money:
|
||||
|
@ -68,7 +68,7 @@ public class ActionBarBuffUpdater{
|
||||
effectString.append(" ");
|
||||
}
|
||||
if (pd.lastvendettastack+200>TwosideKeeper.getServerTickTime() &&
|
||||
ItemSet.hasFullSet(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL)) {
|
||||
ItemSet.hasFullSet((Player)p, ItemSet.SONGSTEEL)) {
|
||||
effectString.append(ChatColor.GRAY);
|
||||
effectString.append("☉");
|
||||
effectString.append(AppendAmplifier(((int)((pd.lastvendettastack+200)-TwosideKeeper.getServerTickTime())/20)-1,false));
|
||||
|
@ -186,7 +186,7 @@ public class CustomDamage {
|
||||
double bonus_truedmg = 0;
|
||||
Player p = (Player)getDamagerEntity(damager);
|
||||
bonus_truedmg += API.getPlayerBonuses(p).getBonusTrueDamage();
|
||||
bonus_truedmg += ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(shooter), (Player)shooter, ItemSet.ALUSTINE, 7)?((Player)shooter).getLevel():0;
|
||||
bonus_truedmg += ItemSet.HasSetBonusBasedOnSetBonusCount((Player)shooter, ItemSet.ALUSTINE, 7)?((Player)shooter).getLevel():0;
|
||||
return bonus_truedmg;
|
||||
} else {
|
||||
return 0.0;
|
||||
@ -251,8 +251,8 @@ public class CustomDamage {
|
||||
dmg += addToPlayerLogger(damager,target,"Execute",(((GenericFunctions.getAbilityValue(ArtifactAbility.EXECUTION, weapon)*5.0)*(1-(target.getHealth()/target.getMaxHealth())))));
|
||||
if (shooter instanceof Player) {
|
||||
dmg += addToPlayerLogger(damager,target,"Tactics Bonus Damage",API.getPlayerBonuses((Player)shooter).getBonusDamage());
|
||||
dmg += addToPlayerLogger(damager,target,"Execute Set Bonus",(((ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.LORASAADI, 4, 4)*5.0)*(1-(target.getHealth()/target.getMaxHealth())))));
|
||||
if (!((Player)shooter).isOnGround()) {dmg += addToPlayerLogger(damager,target,"Prancer Set Bonus",ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(shooter), (Player)shooter, ItemSet.PRANCER));}
|
||||
dmg += addToPlayerLogger(damager,target,"Execute Set Bonus",(((ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.LORASAADI, 4, 4)*5.0)*(1-(target.getHealth()/target.getMaxHealth())))));
|
||||
if (!((Player)shooter).isOnGround()) {dmg += addToPlayerLogger(damager,target,"Prancer Set Bonus",ItemSet.GetTotalBaseAmount((Player)shooter, ItemSet.PRANCER));}
|
||||
if (PlayerMode.getPlayerMode((Player)shooter)==PlayerMode.BARBARIAN) {
|
||||
dmg += addMultiplierToPlayerLogger(damager,target,"Barbarian Execute Mult",dmg * (1-(target.getHealth()/target.getMaxHealth())));
|
||||
}
|
||||
@ -339,7 +339,7 @@ public class CustomDamage {
|
||||
private static double getDamageFromBarbarianSetBonus(LivingEntity target) {
|
||||
if (target instanceof Player) {
|
||||
Player p = (Player)target;
|
||||
return (ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER)+1)/3;
|
||||
return (ItemSet.GetTotalBaseAmount(p, ItemSet.DAWNTRACKER)+1)/3;
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
@ -400,10 +400,10 @@ public class CustomDamage {
|
||||
if (damager instanceof Player) {
|
||||
Player p = (Player)damager;
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DANCER)>0) {
|
||||
dmg += 93.182445*pd.velocity*ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DANCER);
|
||||
if (ItemSet.GetTotalBaseAmount(p, ItemSet.DANCER)>0) {
|
||||
dmg += 93.182445*pd.velocity*ItemSet.GetTotalBaseAmount(p, ItemSet.DANCER);
|
||||
pd.lasthighwinderhit=TwosideKeeper.getServerTickTime();
|
||||
GenericFunctions.sendActionBarMessage(p, TwosideKeeper.drawVelocityBar(pd.velocity,ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DANCER)),true);
|
||||
GenericFunctions.sendActionBarMessage(p, TwosideKeeper.drawVelocityBar(pd.velocity,ItemSet.GetTotalBaseAmount(p, ItemSet.DANCER)),true);
|
||||
}
|
||||
}
|
||||
return dmg;
|
||||
@ -489,7 +489,7 @@ public class CustomDamage {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (PlayerMode.isDefender(p)) {
|
||||
GenericFunctions.addStackingPotionEffect(p, PotionEffectType.DAMAGE_RESISTANCE, 20*5, 4);
|
||||
if (p.isBlocking() && ItemSet.hasFullSet(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL)) {
|
||||
if (p.isBlocking() && ItemSet.hasFullSet(p, ItemSet.SONGSTEEL)) {
|
||||
ApplyVendettaStackTimer(pd);
|
||||
pd.vendetta_amt+=((1-CalculateDamageReduction(1,target,damager))*pd.lastrawdamage)*0.40;
|
||||
if (TwosideKeeper.getMaxThornsLevelOnEquipment(target)>0) {
|
||||
@ -683,7 +683,7 @@ public class CustomDamage {
|
||||
GenericFunctions.addSuppressionTime(target, 15);
|
||||
}
|
||||
if (isFlagSet(pd.lasthitproperties,IS_PREEMPTIVE)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.WOLFSBANE, 7)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.WOLFSBANE, 7)) {
|
||||
if (pd.slayermodehp+2<p.getMaxHealth()) {
|
||||
pd.slayermodehp+=2;
|
||||
p.setHealth(pd.slayermodehp);
|
||||
@ -692,13 +692,13 @@ public class CustomDamage {
|
||||
p.setHealth(pd.slayermodehp);
|
||||
}
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.ALUSTINE, 5)) {
|
||||
GenericFunctions.spawnXP(target.getLocation(), (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.ALUSTINE, 5, 4));
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.ALUSTINE, 5)) {
|
||||
GenericFunctions.spawnXP(target.getLocation(), (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALUSTINE, 5, 4));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.MOONSHADOW, 2)) {
|
||||
int poisonlv = (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.MOONSHADOW, 2, 2);
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.MOONSHADOW, 2)) {
|
||||
int poisonlv = (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.MOONSHADOW, 2, 2);
|
||||
/*if (target.hasPotionEffect(PotionEffectType.BLINDNESS) && GenericFunctions.getPotionEffectLevel(PotionEffectType.BLINDNESS, target)<=poisonlv) {
|
||||
GenericFunctions.logAndApplyPotionEffectToEntity(PotionEffectType.BLINDNESS, 20*15, (int)poisonlv, target);
|
||||
} else {
|
||||
@ -898,7 +898,7 @@ public class CustomDamage {
|
||||
}
|
||||
|
||||
private static void giveAbsorptionHealth(Player p) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(p), p, ItemSet.OLIVE, 4)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.OLIVE, 4)) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (pd.lastabsorptionhealthgiven+600<TwosideKeeper.getServerTickTime()) {
|
||||
pd.lastabsorptionhealthgiven=TwosideKeeper.getServerTickTime();
|
||||
@ -912,7 +912,7 @@ public class CustomDamage {
|
||||
Monster m = (Monster)damager;
|
||||
List<Player> partymembers = PartyManager.getPartyMembers(p);
|
||||
for (Player pl : partymembers) {
|
||||
if (!pl.equals(p) && ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(pl), pl, ItemSet.DONNER, 4)) {
|
||||
if (!pl.equals(p) && ItemSet.HasSetBonusBasedOnSetBonusCount(pl, ItemSet.DONNER, 4)) {
|
||||
//Aggro to them instead.
|
||||
if (!m.hasPotionEffect(PotionEffectType.GLOWING)) {
|
||||
setMonsterTarget(m,pl);
|
||||
@ -925,7 +925,7 @@ public class CustomDamage {
|
||||
}
|
||||
|
||||
private static void applyLightningStriketoFoe(Player p, LivingEntity target) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(p),p,ItemSet.BLITZEN,4)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p,ItemSet.BLITZEN,4)) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (pd.lastlightningstrike+100<TwosideKeeper.getServerTickTime()) {
|
||||
p.getWorld().strikeLightningEffect(target.getLocation());
|
||||
@ -940,8 +940,8 @@ public class CustomDamage {
|
||||
LivingEntity shooter = getDamagerEntity(damager);
|
||||
if (shooter!=null) {
|
||||
if (p.isBlocking() &&
|
||||
ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.OLIVE)>0) {
|
||||
CustomDamage.ApplyDamage(ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.OLIVE), p, shooter, null, "Retaliation", TRUEDMG);
|
||||
ItemSet.GetTotalBaseAmount(p, ItemSet.OLIVE)>0) {
|
||||
CustomDamage.ApplyDamage(ItemSet.GetTotalBaseAmount(p, ItemSet.OLIVE), p, shooter, null, "Retaliation", TRUEDMG);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1067,7 +1067,7 @@ public class CustomDamage {
|
||||
public static void IncreaseWeaponCharges(Player p, int amt) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (pd.rage_time<=TwosideKeeper.getServerTickTime()) {
|
||||
if (ItemSet.hasFullSet(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER)) {
|
||||
if (ItemSet.hasFullSet(p, ItemSet.DAWNTRACKER)) {
|
||||
amt*=2;
|
||||
}
|
||||
pd.weaponcharges+=amt;
|
||||
@ -1077,7 +1077,7 @@ public class CustomDamage {
|
||||
|
||||
public static void IncreaseLifestealStacks(Player p, int amt) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (ItemSet.hasFullSet(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER)) {
|
||||
if (ItemSet.hasFullSet(p, ItemSet.DAWNTRACKER)) {
|
||||
amt*=2;
|
||||
}
|
||||
pd.lifestealstacks=Math.min(100,pd.lifestealstacks+amt*((pd.rage_time>TwosideKeeper.getServerTickTime())?2:1));
|
||||
@ -1119,7 +1119,7 @@ public class CustomDamage {
|
||||
}
|
||||
|
||||
private static void removeExperienceFromAlustineSetBonus(Player p) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.ALUSTINE, 7)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.ALUSTINE, 7)) {
|
||||
aPlugin.API.setTotalExperience(p, aPlugin.API.getTotalExperience(p)-p.getLevel());
|
||||
}
|
||||
}
|
||||
@ -1428,7 +1428,7 @@ public class CustomDamage {
|
||||
}
|
||||
|
||||
private static void applyDonnerSetAggro(Monster m, Player p) {
|
||||
double aggrotime = ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DONNER)*20;
|
||||
double aggrotime = ItemSet.GetTotalBaseAmount(p, ItemSet.DONNER)*20;
|
||||
setAggroGlowTickTime(m,(int)aggrotime);
|
||||
}
|
||||
|
||||
@ -1640,14 +1640,14 @@ public class CustomDamage {
|
||||
TwosideKeeper.log("Enough ticks have passed.", 5);
|
||||
|
||||
if (CanResistExplosionsWithExperienceSet(damager, target, reason)) {
|
||||
aPlugin.API.setTotalExperience((Player)target, (int)Math.max(aPlugin.API.getTotalExperience((Player)target)-ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(target), (Player)target, ItemSet.ALUSTINE, 2, 2),0));
|
||||
aPlugin.API.setTotalExperience((Player)target, (int)Math.max(aPlugin.API.getTotalExperience((Player)target)-ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)target, ItemSet.ALUSTINE, 2, 2),0));
|
||||
SoundUtils.playGlobalSound(((Player)target).getLocation(), Sound.ENTITY_PLAYER_ATTACK_SWEEP, 3.0f, 1.0f);
|
||||
((Player)target).playSound(((Player)target).getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1.0f, 0.5f);
|
||||
GenericFunctions.updateNoDamageTickMap(target, damager);
|
||||
return true;
|
||||
}
|
||||
if (CanResistDotsWithExperienceSet(damager, target, reason)) {
|
||||
aPlugin.API.setTotalExperience((Player)target, (int)Math.max(aPlugin.API.getTotalExperience((Player)target)-ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(target), (Player)target, ItemSet.ALUSTINE, 3, 3),0));
|
||||
aPlugin.API.setTotalExperience((Player)target, (int)Math.max(aPlugin.API.getTotalExperience((Player)target)-ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)target, ItemSet.ALUSTINE, 3, 3),0));
|
||||
SoundUtils.playGlobalSound(((Player)target).getLocation(), Sound.ENTITY_PLAYER_ATTACK_SWEEP, 3.0f, 1.0f);
|
||||
((Player)target).playSound(((Player)target).getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1.0f, 0.5f);
|
||||
GenericFunctions.updateNoDamageTickMap(target, damager);
|
||||
@ -1710,7 +1710,7 @@ public class CustomDamage {
|
||||
double attackrate = 0.0;
|
||||
if (damager instanceof Player) {
|
||||
Player p = (Player)damager;
|
||||
attackrate += ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.BLITZEN)/100d;
|
||||
attackrate += ItemSet.GetTotalBaseAmount(p, ItemSet.BLITZEN)/100d;
|
||||
}
|
||||
return attackrate;
|
||||
}
|
||||
@ -1725,16 +1725,16 @@ public class CustomDamage {
|
||||
}
|
||||
|
||||
public static boolean CanResistExplosionsWithExperienceSet(Entity damager, LivingEntity target, String reason) {
|
||||
return target instanceof Player && ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(target), (Player)target, ItemSet.ALUSTINE, 2) &&
|
||||
return target instanceof Player && ItemSet.HasSetBonusBasedOnSetBonusCount((Player)target, ItemSet.ALUSTINE, 2) &&
|
||||
((reason!=null && (reason.equalsIgnoreCase("explosion") || reason.equalsIgnoreCase("entity_explosion")))
|
||||
|| damager instanceof Creeper) &&
|
||||
aPlugin.API.getTotalExperience((Player)target)>=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(target), (Player)target, ItemSet.ALUSTINE, 2, 2);
|
||||
aPlugin.API.getTotalExperience((Player)target)>=ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)target, ItemSet.ALUSTINE, 2, 2);
|
||||
}
|
||||
|
||||
public static boolean CanResistDotsWithExperienceSet(Entity damager, LivingEntity target, String reason) {
|
||||
return target instanceof Player && ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(target), (Player)target, ItemSet.ALUSTINE, 3) &&
|
||||
return target instanceof Player && ItemSet.HasSetBonusBasedOnSetBonusCount((Player)target, ItemSet.ALUSTINE, 3) &&
|
||||
((reason!=null && (reason.equalsIgnoreCase("poison") || reason.equalsIgnoreCase("wither") || reason.equalsIgnoreCase("fire_tick") || reason.equalsIgnoreCase("lava") || reason.equalsIgnoreCase("fire")))) &&
|
||||
aPlugin.API.getTotalExperience((Player)target)>=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(target), (Player)target, ItemSet.ALUSTINE, 3, 3);
|
||||
aPlugin.API.getTotalExperience((Player)target)>=ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)target, ItemSet.ALUSTINE, 3, 3);
|
||||
}
|
||||
|
||||
private static boolean canHitMobDueToWeakness(Entity damager) {
|
||||
@ -1762,7 +1762,7 @@ public class CustomDamage {
|
||||
duration += 0.1+GenericFunctions.getAbilityValue(ArtifactAbility.GRACEFULDODGE, equip[i]);
|
||||
}
|
||||
}
|
||||
duration+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(target), (Player)target,ItemSet.JAMDAK,4,4)/20d;
|
||||
duration+=ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)target,ItemSet.JAMDAK,4,4)/20d;
|
||||
//Convert from seconds to ticks.
|
||||
int tick_duration = (int)(duration*20);
|
||||
//Apply iframes.
|
||||
@ -1784,7 +1784,7 @@ public class CustomDamage {
|
||||
Player p = (Player)target;
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
double rawdmg = CalculateDamage(0,damager,target,null,null,NONE)*(1d/CalculateDamageReduction(1,target,damager));
|
||||
if (p.isBlocking() && ItemSet.hasFullSet(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL)) {
|
||||
if (p.isBlocking() && ItemSet.hasFullSet(p, ItemSet.SONGSTEEL)) {
|
||||
ApplyVendettaStackTimer(pd);
|
||||
pd.vendetta_amt+=((1-CalculateDamageReduction(1,target,damager))*(rawdmg*0.40));
|
||||
if (TwosideKeeper.getMaxThornsLevelOnEquipment(target)>0) {
|
||||
@ -1793,7 +1793,7 @@ public class CustomDamage {
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
GenericFunctions.sendActionBarMessage(p, ChatColor.YELLOW+" Vendetta: "+ChatColor.GREEN+Math.round(pd.vendetta_amt)+((pd.thorns_amt>0)?"/"+ChatColor.GOLD+df.format(pd.thorns_amt):"")+ChatColor.GREEN+" dmg stored",true);
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(p), p, ItemSet.VIXEN, 4)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.VIXEN, 4)) {
|
||||
p.setHealth(Math.min(p.getHealth()+(p.getMaxHealth()*0.1), p.getMaxHealth()));
|
||||
}
|
||||
return true;
|
||||
@ -1845,10 +1845,10 @@ public class CustomDamage {
|
||||
}
|
||||
dodgechance=addMultiplicativeValue(dodgechance,API.getPlayerBonuses(p).getBonusDodgeChance());
|
||||
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.ALIKAHN)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DARNYS)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.JAMDAK)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.LORASAADI)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(p, ItemSet.ALIKAHN)/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.LORASAADI)/100d);
|
||||
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
|
||||
@ -1857,14 +1857,14 @@ public class CustomDamage {
|
||||
dodgechance=addMultiplicativeValue(dodgechance,0.01*ArtifactUtils.getArtifactTier(p.getEquipment().getItemInMainHand()));
|
||||
}
|
||||
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p,ItemSet.PANROS,3,3)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p,ItemSet.PANROS,3,3)/100d);
|
||||
if (p.isBlocking()) {
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.GetTotalBaseAmount(p, ItemSet.SONGSTEEL)/100d);
|
||||
}
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p,ItemSet.JAMDAK,2,2)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p,ItemSet.JAMDAK,3,3)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p,ItemSet.JAMDAK,2,2)/100d);
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p,ItemSet.JAMDAK,3,3)/100d);
|
||||
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(p), p, ItemSet.VIXEN, 4)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.VIXEN, 4)) {
|
||||
dodgechance=addMultiplicativeValue(dodgechance,0.2);
|
||||
}
|
||||
|
||||
@ -1876,11 +1876,11 @@ public class CustomDamage {
|
||||
}
|
||||
}
|
||||
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.GLADOMAIN, 3, 3)/100d);
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.GLADOMAIN, 7)) {
|
||||
dodgechance=addMultiplicativeValue(dodgechance,(93.182445*pd.velocity)*(0.05+(0.01*ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.GLADOMAIN, 7, 4)))); //For every 1m, give 5%.
|
||||
dodgechance=addMultiplicativeValue(dodgechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.GLADOMAIN, 3, 3)/100d);
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.GLADOMAIN, 7)) {
|
||||
dodgechance=addMultiplicativeValue(dodgechance,(93.182445*pd.velocity)*(0.05+(0.01*ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.GLADOMAIN, 7, 4)))); //For every 1m, give 5%.
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.MOONSHADOW, 7) &&
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.MOONSHADOW, 7) &&
|
||||
GenericFunctions.hasStealth(p)) {
|
||||
dodgechance=addMultiplicativeValue(dodgechance,0.4);
|
||||
}
|
||||
@ -1932,15 +1932,15 @@ public class CustomDamage {
|
||||
ItemStack[] armor = GenericFunctions.getEquipment(target,true);
|
||||
if (target instanceof Player) {
|
||||
Player p = (Player)target;
|
||||
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(target), p, ItemSet.DARNYS, 2, 2)/100d;
|
||||
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(target), p, ItemSet.DARNYS, 3, 3)/100d;
|
||||
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 2, 2)/100d;
|
||||
rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 3, 3)/100d;
|
||||
/*rangerdmgdiv += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 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.LORASAADI, 2, 2)/100d;*/
|
||||
rangeraegislevel += GenericFunctions.getSwiftAegisAmt(p);
|
||||
if ((p).getLocation().getY()>=0 && (p).getLocation().getY()<=255 && (p).getLocation().add(0,0,0).getBlock().getLightLevel()<=7) {
|
||||
darknessdiv += ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.RUDOLPH)/100d;
|
||||
darknessdiv += ItemSet.GetTotalBaseAmount(p, ItemSet.RUDOLPH)/100d;
|
||||
}
|
||||
} else {
|
||||
LivingEntityStructure les = LivingEntityStructure.GetLivingEntityStructure(target);
|
||||
@ -2089,7 +2089,7 @@ public class CustomDamage {
|
||||
dmgreduction /= ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, p.getEquipment().getItemInMainHand())?2:1;
|
||||
}*/
|
||||
tacticspct = API.getPlayerBonuses(p).getBonusPercentDamageReduction();
|
||||
setbonus = ((100-ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL, 4, 4))/100d);
|
||||
setbonus = ((100-ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.SONGSTEEL, 4, 4))/100d);
|
||||
|
||||
playermodediv=(PlayerMode.getPlayerMode(p)==PlayerMode.NORMAL)?0.2d:0;
|
||||
}
|
||||
@ -2152,7 +2152,7 @@ public class CustomDamage {
|
||||
private static double ShredDamageReduction(double dmgreduction, LivingEntity target, Entity damager) {
|
||||
LivingEntity shooter = getDamagerEntity(damager);
|
||||
if (shooter!=null && (shooter instanceof Player) &&
|
||||
ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor((Player)shooter), (Player)shooter, ItemSet.PRANCER, 4)) {
|
||||
ItemSet.HasSetBonusBasedOnSetBonusCount((Player)shooter, ItemSet.PRANCER, 4)) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure((Player)shooter);
|
||||
if (pd.ignoretargetarmor+200<TwosideKeeper.getServerTickTime()) {
|
||||
pd.ignoretargetarmor=TwosideKeeper.getServerTickTime();
|
||||
@ -2423,36 +2423,34 @@ public class CustomDamage {
|
||||
LivingEntity shooter = getDamagerEntity(damager);
|
||||
|
||||
if (shooter instanceof Player) {
|
||||
dmg += ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(shooter),shooter,ItemSet.PANROS);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.PANROS, 2, 2);
|
||||
//dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.DAWNTRACKER, 4, 4);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.LORASAADI, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.LORASAADI, 3, 3);
|
||||
dmg += ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(shooter), (Player)shooter, ItemSet.LORASYS);
|
||||
dmg += ItemSet.GetTotalBaseAmount((Player)shooter,ItemSet.PANROS);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.PANROS, 2, 2);
|
||||
//dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.DAWNTRACKER, 4, 4);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.LORASAADI, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.LORASAADI, 3, 3);
|
||||
dmg += ItemSet.GetTotalBaseAmount((Player)shooter, ItemSet.LORASYS);
|
||||
//dmg += ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getHotbarItems(shooter), (Player)shooter, ItemSet.ALUSTINE, 7)?((Player)shooter).getLevel():0;
|
||||
/*dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.JAMDAK, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.DARNYS, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.ALIKAHN, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.LORASAADI, 3, 3);*/
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.DASHER, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.DANCER, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.PRANCER, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.VIXEN, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.BLITZEN, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.COMET, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.CUPID, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.DONNER, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.RUDOLPH, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter),(Player)shooter, ItemSet.OLIVE, 3, 3);
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter), (Player)shooter, ItemSet.PANROS, 5) ||
|
||||
ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter,true), (Player)shooter, ItemSet.DAWNTRACKER, 5) ||
|
||||
(ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter), (Player)shooter, ItemSet.LORASYS, 1) &&
|
||||
ItemSet.GetBaubleTier((Player)shooter)>=9) ||
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.DASHER, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.DANCER, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.PRANCER, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.VIXEN, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.BLITZEN, 2, 2);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.COMET, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.CUPID, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.DONNER, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.RUDOLPH, 3, 3);
|
||||
dmg += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.OLIVE, 3, 3);
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount((Player)shooter, ItemSet.PANROS, 5) ||
|
||||
ItemSet.HasSetBonusBasedOnSetBonusCount((Player)shooter, ItemSet.DAWNTRACKER, 5) ||
|
||||
(ItemSet.meetsLorasysSwordConditions(9, 1, (Player)shooter)) ||
|
||||
GenericFunctions.HasFullRangerSet((Player)shooter)) {
|
||||
dmg += 15;
|
||||
}
|
||||
if ((ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter), (Player)shooter, ItemSet.LORASYS, 1) &&
|
||||
ItemSet.GetBaubleTier((Player)shooter)>=40) && ItemSet.GetTier(shooter.getEquipment().getItemInMainHand())>=4) {
|
||||
if (ItemSet.meetsLorasysSwordConditions(40, 4, (Player)shooter)) {
|
||||
dmg += 55;
|
||||
}
|
||||
}
|
||||
@ -2613,9 +2611,9 @@ public class CustomDamage {
|
||||
!p.equals(check) && NotTankReason(reason)) {
|
||||
//This is a defender. Transfer half the damage to them!
|
||||
double origdmg = dmg;
|
||||
dmg = origdmg-(origdmg*(ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(check), check, ItemSet.CUPID)/100d));
|
||||
dmg = origdmg-(origdmg*(ItemSet.GetTotalBaseAmount(check, ItemSet.CUPID)/100d));
|
||||
//Send the rest of the damage to the defender.
|
||||
double defenderdmg = origdmg*(ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(check), check, ItemSet.CUPID)/100d);
|
||||
double defenderdmg = origdmg*(ItemSet.GetTotalBaseAmount(check, ItemSet.CUPID)/100d);
|
||||
//defenderdmg=CalculateDamageReduction(dmg, check, entity);
|
||||
ApplyDamage(defenderdmg, shooter, check, null, "Cupid Set Tank", IGNOREDODGE|IGNORE_DAMAGE_TICK);
|
||||
//TwosideKeeper.log("Damage was absorbed by "+check.getName()+". Took "+defenderdmg+" reduced damage. Original damage: "+dmg,0);
|
||||
@ -2634,7 +2632,7 @@ public class CustomDamage {
|
||||
}
|
||||
|
||||
private static boolean isCupidTank(Player p) {
|
||||
if (ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.CUPID)>0) {
|
||||
if (ItemSet.GetTotalBaseAmount(p, ItemSet.CUPID)>0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@ -2671,24 +2669,26 @@ public class CustomDamage {
|
||||
Player p = (Player)shooter;
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
critchance = addMultiplicativeValue(critchance,(PlayerMode.isStriker(p)?0.2:0.0));
|
||||
critchance = addMultiplicativeValue(critchance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p,ItemSet.PANROS,4,4)/100d);
|
||||
critchance = addMultiplicativeValue(critchance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p,ItemSet.PANROS,4,4)/100d);
|
||||
critchance = addMultiplicativeValue(critchance,(PlayerMode.isRanger(p)?(GenericFunctions.getPotionEffectLevel(PotionEffectType.SLOW, p)+1)*0.1:0.0));
|
||||
critchance = addMultiplicativeValue(critchance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.MOONSHADOW, 5, 4)/100d);
|
||||
critchance = addMultiplicativeValue(critchance,ItemSet.GetTotalBaseAmount(GenericFunctions.getBaubles(p), p, ItemSet.WOLFSBANE)/100d);
|
||||
critchance = addMultiplicativeValue(critchance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.MOONSHADOW, 5, 4)/100d);
|
||||
critchance = addMultiplicativeValue(critchance,ItemSet.GetTotalBaseAmount(p, ItemSet.WOLFSBANE)/100d);
|
||||
critchance = addMultiplicativeValue(critchance,API.getPlayerBonuses(p).getBonusCriticalChance());
|
||||
critchance = addMultiplicativeValue(critchance,(pd.slayermegahit)?1.0:0.0);
|
||||
if (reason!=null && reason.equalsIgnoreCase("power swing")) {
|
||||
critchance = addMultiplicativeValue(critchance,1.0d);
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(shooter), (Player)shooter, ItemSet.LORASYS, 1)) {
|
||||
if (ItemSet.GetBaubleTier((Player)shooter)>=18 && ItemSet.GetTier(shooter.getEquipment().getItemInMainHand())>=2) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount((Player)shooter, ItemSet.LORASYS, 1)) {
|
||||
int baubletier = ItemSet.GetBaubleTier((Player)shooter);
|
||||
int swordtier = ItemSet.GetItemTier(shooter.getEquipment().getItemInMainHand());
|
||||
if (baubletier>=18 && swordtier>=2) {
|
||||
critchance = addMultiplicativeValue(critchance,0.1d);
|
||||
}
|
||||
if (ItemSet.GetBaubleTier((Player)shooter)>=27 && ItemSet.GetTier(shooter.getEquipment().getItemInMainHand())>=3) {
|
||||
critchance = addMultiplicativeValue(critchance,0.2d);
|
||||
}
|
||||
if (ItemSet.GetBaubleTier((Player)shooter)>=40 && ItemSet.GetTier(shooter.getEquipment().getItemInMainHand())>=4) {
|
||||
critchance = addMultiplicativeValue(critchance,0.45d);
|
||||
if (baubletier>=27 && swordtier>=3) {
|
||||
critchance = addMultiplicativeValue(critchance,0.2d);
|
||||
if (baubletier>=40 && swordtier>=4) {
|
||||
critchance = addMultiplicativeValue(critchance,0.45d);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2733,7 +2733,7 @@ public class CustomDamage {
|
||||
critdmg+=1.0;
|
||||
}
|
||||
critdmg+=API.getPlayerBonuses(p).getBonusCriticalDamage();
|
||||
critdmg+=ItemSet.GetTotalBaseAmount(GenericFunctions.getBaubles(p), p, ItemSet.MOONSHADOW)/100d;
|
||||
critdmg+=ItemSet.GetTotalBaseAmount(p, ItemSet.MOONSHADOW)/100d;
|
||||
}
|
||||
TwosideKeeper.log("Crit Damage is "+critdmg, 5);
|
||||
return critdmg;
|
||||
@ -2854,14 +2854,13 @@ public class CustomDamage {
|
||||
}
|
||||
finaldmg += dmg*0.5;
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.PANROS, 5)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.PANROS, 5)) {
|
||||
finaldmg += dmg*0.5;
|
||||
} else
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER, 5)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER, 5)) {
|
||||
finaldmg += dmg*0.5;
|
||||
} else
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.LORASYS, 1) &&
|
||||
ItemSet.GetBaubleTier(p)>=9) {
|
||||
if (ItemSet.meetsLorasysSwordConditions(9, 1, p)) {
|
||||
finaldmg += dmg*0.5;
|
||||
}
|
||||
finaldmg += dmg*aPlugin.API.getPlayerBonuses(p).getBonusArmorPenetration();
|
||||
@ -3058,7 +3057,7 @@ public class CustomDamage {
|
||||
public static double calculateLifeStealAmount(Player p, ItemStack weapon, String reason) {
|
||||
double lifestealpct = GenericFunctions.getAbilityValue(ArtifactAbility.LIFESTEAL, weapon)/100;
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
lifestealpct += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER, 3, 3)/100d;
|
||||
lifestealpct += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER, 3, 3)/100d;
|
||||
lifestealpct += pd.lifestealstacks/100d;
|
||||
lifestealpct += API.getPlayerBonuses(p).getBonusLifesteal();
|
||||
if (reason!=null && reason.equalsIgnoreCase("power swing")) {
|
||||
@ -3067,8 +3066,8 @@ public class CustomDamage {
|
||||
if (pd.rage_time>TwosideKeeper.getServerTickTime()) {
|
||||
lifestealpct += (pd.rage_amt/2)*0.01;
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(p, true), p, ItemSet.DAWNTRACKER,6)) {
|
||||
lifestealpct+=0.25d*ItemSet.GetTier(p.getEquipment().getItemInMainHand());
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER,6)) {
|
||||
lifestealpct+=0.25d*ItemSet.GetItemTier(p.getEquipment().getItemInMainHand());
|
||||
}
|
||||
if (reason!=null && reason.equalsIgnoreCase("sweep up")) {
|
||||
lifestealpct*=2;
|
||||
@ -3208,9 +3207,9 @@ public class CustomDamage {
|
||||
*/
|
||||
public static double calculateCooldownReduction(Player p) {
|
||||
double cooldown = 0.0;
|
||||
cooldown=addMultiplicativeValue(cooldown,ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.GLADOMAIN, 2, 2)/100d);
|
||||
cooldown=addMultiplicativeValue(cooldown,ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.VIXEN)/100d);
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.LORASYS, 1) && ItemSet.GetBaubleTier(p)>=40 && ItemSet.GetTier(p.getEquipment().getItemInMainHand())>=4) {
|
||||
cooldown=addMultiplicativeValue(cooldown,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.GLADOMAIN, 2, 2)/100d);
|
||||
cooldown=addMultiplicativeValue(cooldown,ItemSet.GetTotalBaseAmount(p, ItemSet.VIXEN)/100d);
|
||||
if (ItemSet.meetsLorasysSwordConditions(40, 4, p)) {
|
||||
cooldown = addMultiplicativeValue(cooldown,0.45d);
|
||||
}
|
||||
return cooldown;
|
||||
@ -3228,7 +3227,7 @@ public class CustomDamage {
|
||||
removechance=addMultiplicativeValue(removechance,resistamt);
|
||||
}
|
||||
}
|
||||
removechance=addMultiplicativeValue(removechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER, 2, 2)/100d);
|
||||
removechance=addMultiplicativeValue(removechance,ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER, 2, 2)/100d);
|
||||
return removechance*100d;
|
||||
}
|
||||
|
||||
@ -3293,7 +3292,7 @@ public class CustomDamage {
|
||||
double mult = 0.0;
|
||||
LivingEntity shooter = getDamagerEntity(damager);
|
||||
if (shooter instanceof Player) {
|
||||
mult += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(shooter), (Player)shooter, ItemSet.MOONSHADOW, 3, 3)/100;
|
||||
mult += ItemSet.TotalBaseAmountBasedOnSetBonusCount((Player)shooter, ItemSet.MOONSHADOW, 3, 3)/100;
|
||||
}
|
||||
return mult;
|
||||
}
|
||||
@ -3318,7 +3317,7 @@ public class CustomDamage {
|
||||
}
|
||||
|
||||
public static int GetDamageReductionFromDawntrackerPieces(Player p) {
|
||||
return (ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER))/3;
|
||||
return (ItemSet.GetTotalBaseAmount(p, ItemSet.DAWNTRACKER))/3;
|
||||
}
|
||||
|
||||
private static double increaseDamageDealtByFireTicks(Player p, double damage, String reason) {
|
||||
|
@ -525,7 +525,7 @@ public class GenericFunctions {
|
||||
type.getType()!=Material.AIR) {
|
||||
if (type.hasItemMeta() &&
|
||||
type.getItemMeta().hasDisplayName()) {
|
||||
return type.getItemMeta().getDisplayName()+((ItemSet.isSetItem(type) && displayTier)?" (T"+ItemSet.GetTier(type)+")":"");
|
||||
return type.getItemMeta().getDisplayName()+((ItemSet.isSetItem(type) && displayTier)?" (T"+ItemSet.GetItemTier(type)+")":"");
|
||||
}
|
||||
switch (type.getType()) {
|
||||
case ACACIA_DOOR_ITEM:{
|
||||
@ -2603,10 +2603,10 @@ public class GenericFunctions {
|
||||
}
|
||||
|
||||
public static boolean HasFullRangerSet(Player p) {
|
||||
return ItemSet.hasFullSet(GenericFunctions.getEquipment(p), p, ItemSet.ALIKAHN) ||
|
||||
ItemSet.hasFullSet(GenericFunctions.getEquipment(p), p, ItemSet.DARNYS) ||
|
||||
ItemSet.hasFullSet(GenericFunctions.getEquipment(p), p, ItemSet.JAMDAK) ||
|
||||
ItemSet.hasFullSet(GenericFunctions.getEquipment(p), p, ItemSet.LORASAADI);
|
||||
return ItemSet.hasFullSet(p, ItemSet.ALIKAHN) ||
|
||||
ItemSet.hasFullSet(p, ItemSet.DARNYS) ||
|
||||
ItemSet.hasFullSet(p, ItemSet.JAMDAK) ||
|
||||
ItemSet.hasFullSet(p, ItemSet.LORASAADI);
|
||||
/*int rangerarmort1 = 0; //Count the number of each tier of sets. //LEGACY CODE.
|
||||
int rangerarmort2 = 0;
|
||||
int rangerarmort3 = 0;
|
||||
@ -3317,8 +3317,8 @@ public class GenericFunctions {
|
||||
if (ItemSet.isSetItem(item)) {
|
||||
//Update the lore. See if it's hardened. If it is, we will save just that piece.
|
||||
//Save the tier and type as well.
|
||||
ItemSet set = ItemSet.GetSet(item);
|
||||
int tier = ItemSet.GetTier(item);
|
||||
ItemSet set = ItemSet.GetItemSet(item);
|
||||
int tier = ItemSet.GetItemTier(item);
|
||||
item = UpdateSetLore(set,tier,item);
|
||||
}
|
||||
UpdateOldRangerPieces(item);
|
||||
@ -3658,9 +3658,8 @@ public class GenericFunctions {
|
||||
pd.slayermodehp = p.getMaxHealth();
|
||||
|
||||
ItemStack[] equips = p.getEquipment().getArmorContents();
|
||||
ItemStack[] hotbar = GenericFunctions.getBaubles(p);
|
||||
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(hotbar, p, ItemSet.GLADOMAIN, 5) &&
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.GLADOMAIN, 5) &&
|
||||
pd.lastlifesavertime+GenericFunctions.GetModifiedCooldown(TwosideKeeper.LIFESAVER_COOLDOWN, p)<=TwosideKeeper.getServerTickTime()) {
|
||||
pd.lastlifesavertime=TwosideKeeper.getServerTickTime();
|
||||
RevivePlayer(p,p.getMaxHealth());
|
||||
@ -3718,7 +3717,7 @@ public class GenericFunctions {
|
||||
Inventory inv = d.getInventory();
|
||||
for (int i=0;i<inv.getContents().length;i++) {
|
||||
ItemStack bauble = inv.getContents()[i];
|
||||
ItemSet set = ItemSet.GetSet(bauble);
|
||||
ItemSet set = ItemSet.GetItemSet(bauble);
|
||||
if (set!=null &&
|
||||
(set==ItemSet.GLADOMAIN ||
|
||||
set==ItemSet.MOONSHADOW ||
|
||||
@ -3726,16 +3725,16 @@ public class GenericFunctions {
|
||||
set==ItemSet.WOLFSBANE)) {
|
||||
double basechance = 1/8d;
|
||||
if (set==ItemSet.WOLFSBANE) {
|
||||
basechance += 0.0d * ItemSet.GetTier(bauble);
|
||||
basechance += 0.0d * ItemSet.GetItemTier(bauble);
|
||||
}
|
||||
if (set==ItemSet.ALUSTINE) {
|
||||
basechance += 1/16d * ItemSet.GetTier(bauble);
|
||||
basechance += 1/16d * ItemSet.GetItemTier(bauble);
|
||||
}
|
||||
if (set==ItemSet.MOONSHADOW) {
|
||||
basechance += 1/8d * ItemSet.GetTier(bauble);
|
||||
basechance += 1/8d * ItemSet.GetItemTier(bauble);
|
||||
}
|
||||
if (set==ItemSet.GLADOMAIN) {
|
||||
basechance += 1/4d * ItemSet.GetTier(bauble);
|
||||
basechance += 1/4d * ItemSet.GetItemTier(bauble);
|
||||
}
|
||||
if (Math.random()<=basechance) {
|
||||
if (GenericFunctions.isHardenedItem(bauble)) {
|
||||
@ -4270,7 +4269,7 @@ public class GenericFunctions {
|
||||
|
||||
public static void ApplySwiftAegis(Player p) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
int swiftaegislv=(int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.DARNYS, 4, 4);
|
||||
int swiftaegislv=(int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 4, 4);
|
||||
/*if (swiftaegislv>0) {
|
||||
TwosideKeeper.log("Applying "+swiftaegislv+" levels of Swift Aegis.",5);
|
||||
int resistancelv = 0;
|
||||
@ -4493,7 +4492,7 @@ public class GenericFunctions {
|
||||
Bukkit.getPluginManager().callEvent(ev);
|
||||
if (!ev.isCancelled()) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
boolean ex_version = ItemSet.hasFullSet(GenericFunctions.getEquipment(p), p, ItemSet.PANROS);
|
||||
boolean ex_version = ItemSet.hasFullSet(p, ItemSet.PANROS);
|
||||
Vector facing = p.getLocation().getDirection();
|
||||
if (!second_charge) {
|
||||
facing = p.getLocation().getDirection().setY(0);
|
||||
@ -4585,16 +4584,16 @@ public class GenericFunctions {
|
||||
aPlugin.API.sendCooldownPacket(player, name, GetModifiedCooldown(TwosideKeeper.ASSASSINATE_COOLDOWN,player));
|
||||
}
|
||||
pd.lastassassinatetime=TwosideKeeper.getServerTickTime();
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(player), player, ItemSet.WOLFSBANE, 5)) {
|
||||
GenericFunctions.addIFrame(player, (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(player), player, ItemSet.WOLFSBANE, 5, 4));
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(player, ItemSet.WOLFSBANE, 5)) {
|
||||
GenericFunctions.addIFrame(player, (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(player, ItemSet.WOLFSBANE, 5, 4));
|
||||
} else {
|
||||
GenericFunctions.addIFrame(player, 10);
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(player), player, ItemSet.WOLFSBANE, 3)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(player, ItemSet.WOLFSBANE, 3)) {
|
||||
GenericFunctions.logAndApplyPotionEffectToEntity(PotionEffectType.SPEED, 100, 4, player);
|
||||
GenericFunctions.addSuppressionTime(target, (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(player), player, ItemSet.WOLFSBANE, 3, 3));
|
||||
GenericFunctions.addSuppressionTime(target, (int)ItemSet.TotalBaseAmountBasedOnSetBonusCount(player, ItemSet.WOLFSBANE, 3, 3));
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(player), player, ItemSet.WOLFSBANE, 7) &&
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(player, ItemSet.WOLFSBANE, 7) &&
|
||||
target.getLocation().distanceSquared(originalloc)<=25) {
|
||||
pd.lastassassinatetime = TwosideKeeper.getServerTickTime()-GetModifiedCooldown(TwosideKeeper.ASSASSINATE_COOLDOWN,player)+40;
|
||||
if (name!=Material.SKULL_ITEM || pd.lastlifesavertime+GetModifiedCooldown(TwosideKeeper.LIFESAVER_COOLDOWN,player)<TwosideKeeper.getServerTickTime()) { //Don't overwrite life saver cooldowns.
|
||||
@ -4683,8 +4682,8 @@ public class GenericFunctions {
|
||||
}
|
||||
|
||||
public static void DamageRandomTool(Player p) {
|
||||
if (ItemSet.GetSetCount(GenericFunctions.getEquipment(p), ItemSet.LORASYS, p)>=1 &&
|
||||
ItemSet.GetBaubleTier(p)>=27 && ItemSet.GetTier(p.getEquipment().getItemInMainHand())>=3) {
|
||||
if (ItemSet.GetSetCount(ItemSet.LORASYS, p)>=1 &&
|
||||
ItemSet.GetBaubleTier(p)>=27 && ItemSet.GetItemTier(p.getEquipment().getItemInMainHand())>=3) {
|
||||
return;
|
||||
} else {
|
||||
if (!aPlugin.API.isAFK(p)) {
|
||||
|
@ -7,15 +7,19 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import aPlugin.API;
|
||||
import sig.plugin.TwosideKeeper.PlayerStructure;
|
||||
import sig.plugin.TwosideKeeper.TwosideKeeper;
|
||||
import sig.plugin.TwosideKeeper.HelperStructures.Common.BaublePouch;
|
||||
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
|
||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.DebugUtils;
|
||||
import sig.plugin.TwosideKeeper.HelperStructures.Utils.TextUtils;
|
||||
|
||||
public enum ItemSet {
|
||||
PANROS(1,1, 6,4, 10,10, 20,10),
|
||||
@ -41,6 +45,7 @@ public enum ItemSet {
|
||||
RUDOLPH(5,5, 10,10, 2,1, 0,0),
|
||||
OLIVE(3,2, 10,10, 2,1, 0,0);
|
||||
|
||||
public static ItemSet[] bauble_sets;
|
||||
int baseval;
|
||||
int increase_val;
|
||||
int baseval_bonus2;
|
||||
@ -101,10 +106,10 @@ public enum ItemSet {
|
||||
}
|
||||
|
||||
public static boolean isSetItem(ItemStack item) {
|
||||
return GetSet(item)!=null;
|
||||
return GetItemSet(item)!=null;
|
||||
}
|
||||
|
||||
public static ItemSet GetSet(ItemStack item) {
|
||||
public static ItemSet GetItemSet(ItemStack item) {
|
||||
if ((GenericFunctions.isEquip(item) || GenericFunctions.isSkullItem(item)) &&
|
||||
!GenericFunctions.isArtifactEquip(item) &&
|
||||
item.getItemMeta().hasLore()) {
|
||||
@ -119,7 +124,7 @@ public enum ItemSet {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static int GetTier(ItemStack item) {
|
||||
public static int GetItemTier(ItemStack item) {
|
||||
if (isSetItem(item) &&
|
||||
item.getItemMeta().hasLore()) {
|
||||
List<String> lore = item.getItemMeta().getLore();
|
||||
@ -142,7 +147,7 @@ public enum ItemSet {
|
||||
for (int i=0;i<lore.size();i++) {
|
||||
if (lore.get(i).contains(ChatColor.GOLD+""+ChatColor.BOLD+"T")) {
|
||||
//This is the tier line.
|
||||
int oldtier=GetTier(item);
|
||||
int oldtier=GetItemTier(item);
|
||||
//TwosideKeeper.log("In lore: "+lore.get(i)+". Old tier: "+oldtier,2);
|
||||
lore.set(i, lore.get(i).replace("T"+oldtier, "T"+tier));
|
||||
found=true;
|
||||
@ -153,7 +158,7 @@ public enum ItemSet {
|
||||
m.setLore(lore);
|
||||
item.setItemMeta(m);
|
||||
GenericFunctions.UpdateItemLore(item); //Update this item now that we upgraded the tier.
|
||||
GenericFunctions.ConvertSetColor(item, GetSet(item));
|
||||
GenericFunctions.ConvertSetColor(item, GetItemSet(item));
|
||||
if (!found) {
|
||||
TwosideKeeper.log(ChatColor.RED+"[ERROR] Could not detect proper tier of "+item.toString()+"!", 1);
|
||||
}
|
||||
@ -180,12 +185,12 @@ public enum ItemSet {
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int GetBaseAmount(ItemStack item) {
|
||||
return baseval+((GetTier(item)-1)*increase_val);
|
||||
public int GetBaseAmount(int tier) {
|
||||
return baseval+((tier-1)*increase_val);
|
||||
}
|
||||
|
||||
public static int GetSetCount(ItemStack[] equips, ItemSet set, LivingEntity ent) {
|
||||
int count = 0;
|
||||
public static int GetSetCount(ItemSet set, Player p) {
|
||||
/*int count = 0;
|
||||
for (ItemStack item : equips) {
|
||||
ItemSet temp = ItemSet.GetSet(item);
|
||||
if (temp!=null) {
|
||||
@ -195,11 +200,21 @@ public enum ItemSet {
|
||||
}
|
||||
}
|
||||
TwosideKeeper.log("Currently have "+count+" pieces from the "+set.name()+" set.", 5);
|
||||
return count;*/
|
||||
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
int count = 0;
|
||||
if (pd.itemsets.containsKey(set.name())) {
|
||||
HashMap<Integer,Integer> tiermap = pd.itemsets.get(set.name());
|
||||
for (Integer tier : tiermap.keySet()) {
|
||||
count += tiermap.get(tier);
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
public static int GetTierSetCount(ItemStack[] equips, ItemSet set, int tier, LivingEntity ent) {
|
||||
int count = 0;
|
||||
public static int GetTierSetCount(ItemSet set, int tier, Player p) {
|
||||
/*int count = 0;
|
||||
for (ItemStack item : equips) {
|
||||
ItemSet temp = ItemSet.GetSet(item);
|
||||
if (temp!=null) {
|
||||
@ -209,11 +224,21 @@ public enum ItemSet {
|
||||
}
|
||||
}
|
||||
TwosideKeeper.log("Currently have "+count+" pieces from the "+set.name()+" set of Tier +"+tier+".", 5);
|
||||
return count;*/
|
||||
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
int count = 0;
|
||||
if (pd.itemsets.containsKey(set.name())) {
|
||||
HashMap<Integer,Integer> tiermap = pd.itemsets.get(set.name());
|
||||
if (tiermap.containsKey(tier)) {
|
||||
count += tiermap.get(tier);
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
public static int GetTotalBaseAmount(ItemStack[] equips, LivingEntity ent, ItemSet set) {
|
||||
int count = 0;
|
||||
public static int GetTotalBaseAmount(Player p, ItemSet set) {
|
||||
/*int count = 0;
|
||||
for (ItemStack item : equips) {
|
||||
ItemSet temp = ItemSet.GetSet(item);
|
||||
if (temp!=null) {
|
||||
@ -223,12 +248,21 @@ public enum ItemSet {
|
||||
}
|
||||
}
|
||||
TwosideKeeper.log("Base Total of all equipment from this set is "+count, 5);
|
||||
return count;
|
||||
return count;*/
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
int val = 0;
|
||||
if (pd.itemsets.containsKey(set.name())) {
|
||||
HashMap<Integer,Integer> tiermap = pd.itemsets.get(set.name());
|
||||
for (Integer tier : tiermap.keySet()) {
|
||||
val += set.GetBaseAmount(tier)*tiermap.get(tier);
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
public static boolean hasFullSet(ItemStack[] equips, LivingEntity ent, ItemSet set) {
|
||||
public static boolean hasFullSet(Player p, ItemSet set) {
|
||||
//Return a mapping of all tier values that meet the count requirement for that set.
|
||||
for (ItemStack item : equips) {
|
||||
/*for (ItemStack item : equips) {
|
||||
ItemSet temp = ItemSet.GetSet(item);
|
||||
if (temp!=null) {
|
||||
int tier = ItemSet.GetTier(item);
|
||||
@ -239,12 +273,22 @@ public enum ItemSet {
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;*/
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (pd.itemsets.containsKey(set.name()) && pd.itemsets.get(set.name()).size()==1) { //We can only possibly have a full set if we only have one tier of that set.
|
||||
HashMap<Integer,Integer> tiermap = pd.itemsets.get(set.name());
|
||||
for (Integer tier : tiermap.keySet()) {
|
||||
if (tiermap.get(tier)>=5) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static List<Integer> GetSetBonusCount(ItemStack[] equips, LivingEntity ent, ItemSet set, int count) {
|
||||
/*public static List<Integer> GetSetBonusCount(ItemStack[] equips, LivingEntity ent, ItemSet set, int count) {
|
||||
//Return a mapping of all tier values that meet the count requirement for that set.
|
||||
List<Integer> mapping = new ArrayList<Integer>();
|
||||
/*List<Integer> mapping = new ArrayList<Integer>();
|
||||
for (ItemStack item : equips) {
|
||||
ItemSet temp = ItemSet.GetSet(item);
|
||||
if (temp!=null) {
|
||||
@ -257,19 +301,25 @@ public enum ItemSet {
|
||||
}
|
||||
}
|
||||
return mapping;
|
||||
}
|
||||
}*/
|
||||
|
||||
public static boolean HasSetBonusBasedOnSetBonusCount(ItemStack[] equips, Player p, ItemSet set, int count) {
|
||||
//Similar to HasFullSet, but lets you decide how many pieces to check for from that particular set and matching tiers.
|
||||
return ItemSet.GetSetBonusCount(equips, p, set, count).size()>0;
|
||||
}
|
||||
|
||||
public static double TotalBaseAmountBasedOnSetBonusCount(ItemStack[] equips, Player p, ItemSet set, int count, int set_bonus) {
|
||||
double amt = 0.0;
|
||||
public static double TotalBaseAmountBasedOnSetBonusCount(Player p, ItemSet set, int count, int set_bonus) {
|
||||
/*double amt = 0.0;
|
||||
List<Integer> mapping = ItemSet.GetSetBonusCount(equips, p, set, count);
|
||||
for (Integer tier : mapping) {
|
||||
amt+=ItemSet.GetBaseAmount(set, tier, set_bonus);
|
||||
}
|
||||
return amt;*/
|
||||
double amt = 0.0;
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (pd.itemsets.containsKey(set.name())) {
|
||||
HashMap<Integer,Integer> tiermap = pd.itemsets.get(set.name());
|
||||
for (Integer tier : tiermap.keySet()) {
|
||||
if (tiermap.get(tier)>=count) {
|
||||
amt+=ItemSet.GetBaseAmount(set, tier, set_bonus);
|
||||
}
|
||||
}
|
||||
}
|
||||
return amt;
|
||||
}
|
||||
|
||||
@ -685,7 +735,7 @@ public enum ItemSet {
|
||||
for (int i=0;i<lore.size();i++) {
|
||||
if (lore.get(i).contains(ChatColor.GOLD+""+ChatColor.BOLD+"T")) {
|
||||
//This is the tier line.
|
||||
ItemSet oldset=GetSet(item);
|
||||
ItemSet oldset=GetItemSet(item);
|
||||
//TwosideKeeper.log("In lore: "+lore.get(i)+". Old tier: "+oldtier,2);
|
||||
//lore.set(i, lore.get(i).replace("T"+oldtier, "T"+tier));
|
||||
lore.set(i, lore.get(i).replace(GenericFunctions.CapitalizeFirstLetters(oldset.name()), GenericFunctions.CapitalizeFirstLetters(set.name())));
|
||||
@ -707,11 +757,109 @@ public enum ItemSet {
|
||||
int tier = 0;
|
||||
if (BaublePouch.isBaublePouch(p.getEquipment().getItemInOffHand())) {
|
||||
int id = BaublePouch.getBaublePouchID(p.getEquipment().getItemInOffHand());
|
||||
List<ItemStack> contents = BaublePouch.getBaublePouchContents(id);
|
||||
/*List<ItemStack> contents = BaublePouch.getBaublePouchContents(id);
|
||||
for (ItemStack item : contents) {
|
||||
tier += ItemSet.GetTier(item);
|
||||
}*/
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
for (ItemSet set : bauble_sets) {
|
||||
TwosideKeeper.log("Checking for set "+set.name(), 5);
|
||||
if (pd.itemsets.containsKey(set.name())) {
|
||||
tier+=GetTotalBaubleTier(pd.itemsets,set.name());
|
||||
}
|
||||
}
|
||||
}
|
||||
return tier;
|
||||
}
|
||||
|
||||
private static int GetTotalBaubleTier(HashMap<String, HashMap<Integer, Integer>> itemsets, String name) {
|
||||
if (itemsets.containsKey(name)) {
|
||||
//TwosideKeeper.log("Found key "+name, 0);
|
||||
HashMap<Integer,Integer> tiermap = itemsets.get(name);
|
||||
int tiers = 0;
|
||||
for (Integer tier : tiermap.keySet()) {
|
||||
tiers += tier*tiermap.get(tier);
|
||||
TwosideKeeper.log("Tiers increased by: "+(tier*tiermap.get(tier))+". Total: "+tiers, 5);
|
||||
}
|
||||
return tiers;
|
||||
}
|
||||
TwosideKeeper.log("Set does not exist in map! Could not get tier! THIS SHOULD NOT BE HAPPENING!!", 0);
|
||||
DebugUtils.showStackTrace();
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static void updateItemSets(Player p) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
HashMap<String,HashMap<Integer,Integer>> map = pd.itemsets;
|
||||
map.clear();
|
||||
for (ItemStack item : GenericFunctions.getEquipment(p, true)) {
|
||||
if (isSetItem(item) && item.getType()!=Material.SKULL_ITEM) {
|
||||
ItemSet set = GetItemSet(item);
|
||||
Integer tier = GetItemTier(item);
|
||||
insertSetIntoMap(map,set,tier);
|
||||
} else
|
||||
if (p.getInventory().getExtraContents()[0]!=null && p.getInventory().getExtraContents()[0].equals(item) && BaublePouch.isBaublePouch(item)) {
|
||||
List<ItemStack> contents = BaublePouch.getBaublePouchContents(BaublePouch.getBaublePouchID(item));
|
||||
for (ItemStack it : contents) {
|
||||
if (isSetItem(it)) {
|
||||
ItemSet set = GetItemSet(it);
|
||||
Integer tier = GetItemTier(it);
|
||||
insertSetIntoMap(map,set,tier);
|
||||
}
|
||||
}
|
||||
}
|
||||
TwosideKeeper.log("Offhand: "+p.getInventory().getExtraContents()[0]+";;"+item+ChatColor.RESET+"Is equal? "+p.getInventory().getExtraContents()[0].equals(item)+";; Is Bauble Pouch? "+BaublePouch.isBaublePouch(item), 5);
|
||||
}
|
||||
TwosideKeeper.log("Updated HashMap for player "+p.getName()+". New Map: \n"+TextUtils.outputHashmap(map), 5);
|
||||
}
|
||||
|
||||
private static void insertSetIntoMap(HashMap<String, HashMap<Integer,Integer>> map, ItemSet set, Integer tier) {
|
||||
String keystring = set.name();
|
||||
if (map.containsKey(keystring)) {
|
||||
HashMap<Integer,Integer> innermap = map.get(keystring);
|
||||
if (innermap.containsKey(tier)) {
|
||||
innermap.put(tier, innermap.get(tier)+1);
|
||||
} else {
|
||||
innermap.put(tier, 1);
|
||||
}
|
||||
//map.put(keystring, innermap);
|
||||
} else {
|
||||
HashMap<Integer,Integer> innermap = new HashMap<Integer,Integer>();
|
||||
innermap.put(tier, 1);
|
||||
map.put(keystring, innermap);
|
||||
//map.put(keystring, 1);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean HasSetBonusBasedOnSetBonusCount(Player player, ItemSet set, int count) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(player);
|
||||
if (pd.itemsets.containsKey(set.name())) {
|
||||
HashMap<Integer,Integer> tiermap = pd.itemsets.get(set.name());
|
||||
for (Integer tier : tiermap.keySet()) {
|
||||
if (tiermap.get(tier)>=count) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean meetsLorasysSwordConditions(int baubletier, int swordtier, Player p) {
|
||||
//TwosideKeeper.log("["+baubletier+"||"+swordtier+"] Is a Lorasys Set? "+ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LORASYS, 1)+";;Bauble Tier: "+(ItemSet.GetBaubleTier(p))+"/"+baubletier+";;Meets Sword Requirement? "+((swordtier==1 || ItemSet.GetItemTier(p.getEquipment().getItemInMainHand())>=swordtier)), 0);
|
||||
return ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LORASYS, 1) && ItemSet.GetBaubleTier(p)>=baubletier && (swordtier==1 || ItemSet.GetItemTier(p.getEquipment().getItemInMainHand())>=swordtier);
|
||||
}
|
||||
|
||||
/**
|
||||
* Purely for API support. DO NOT USE OTHERWISE!!
|
||||
*/
|
||||
public static ItemSet GetSet(ItemStack item) {
|
||||
return GetItemSet(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Purely for API support. DO NOT USE OTHERWISE!!
|
||||
*/
|
||||
public static int GetTier(ItemStack item) {
|
||||
return GetItemTier(item);
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ public class StringConverter {
|
||||
return EntityType.valueOf(val);
|
||||
}
|
||||
case "Color":{
|
||||
return Color.(val);
|
||||
//return Color.(val);
|
||||
}
|
||||
default:{
|
||||
TwosideKeeper.log("WARNING! Could not convert String to Object class type "+c.getSimpleName(), 1);
|
||||
|
@ -2,6 +2,7 @@ package sig.plugin.TwosideKeeper.HelperStructures.Utils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
@ -63,6 +64,17 @@ public class TextUtils {
|
||||
builder.append("\n "+obj.toString());
|
||||
}
|
||||
}
|
||||
} else
|
||||
if (val instanceof Map) {
|
||||
builder.append("\n");
|
||||
boolean first=true;
|
||||
for (Object obj : ((Map) val).keySet()) {
|
||||
if (first) {
|
||||
builder.append(" "+obj.toString()+": "+((Map) val).get(obj).toString());
|
||||
} else {
|
||||
builder.append("\n "+obj.toString()+": "+((Map) val).get(obj).toString());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
builder.append(val.toString());
|
||||
}
|
||||
|
@ -207,6 +207,7 @@ public class PlayerStructure {
|
||||
public HashMap<Material,List<Integer>> filtercubestructure = new HashMap<Material, List<Integer>>();
|
||||
public List<UUID> ignoreItemsList = new ArrayList<UUID>();
|
||||
public HashMap<String,Buff> buffs = new HashMap<String,Buff>();
|
||||
public HashMap<String,HashMap<Integer,Integer>> itemsets = new HashMap<String,HashMap<Integer,Integer>>(); //HashMap<"Set Name",HashMap<"Tier","Amt">>
|
||||
|
||||
//Needs the instance of the player object to get all other info. Only to be called at the beginning.
|
||||
@SuppressWarnings("deprecation")
|
||||
@ -311,24 +312,24 @@ public class PlayerStructure {
|
||||
|
||||
//Joined always gets set to new time.
|
||||
this.joined = serverTickTime;
|
||||
setDefaultCooldowns(p);
|
||||
}
|
||||
}
|
||||
|
||||
private void setDefaultCooldowns(Player p) {
|
||||
aPlugin.API.sendCooldownPacket(p, Material.BOW, GenericFunctions.GetRemainingCooldownTime(p, last_dodge, TwosideKeeper.DODGE_COOLDOWN));
|
||||
applyCooldownToAllTypes(p,"HOE",GenericFunctions.GetRemainingCooldownTime(p, last_deathmark, TwosideKeeper.DEATHMARK_COOLDOWN));
|
||||
applyCooldownToAllTypes(p,"SPADE",GenericFunctions.GetRemainingCooldownTime(p, lastusedearthwave, TwosideKeeper.EARTHWAVE_COOLDOWN));
|
||||
applyCooldownToAllTypes(p,"SWORD",GenericFunctions.GetRemainingCooldownTime(p, last_strikerspell, TwosideKeeper.LINEDRIVE_COOLDOWN));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.SHIELD, GenericFunctions.GetRemainingCooldownTime(p, last_rejuvenate, TwosideKeeper.REJUVENATE_COOLDOWN));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.SKULL_ITEM, GenericFunctions.GetRemainingCooldownTime(p, lastlifesavertime, TwosideKeeper.LIFESAVER_COOLDOWN));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.CHORUS_FLOWER, GenericFunctions.GetRemainingCooldownTime(p, lastlifesavertime, TwosideKeeper.LIFESAVER_COOLDOWN));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.WATCH, GenericFunctions.GetRemainingCooldownTime(p, icewandused, TwosideKeeper.ICEWAND_COOLDOWN));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.RAW_FISH, GenericFunctions.GetRemainingCooldownTime(p, lastcandyconsumed, 40));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.GOLDEN_APPLE, GenericFunctions.GetRemainingCooldownTime(p, lastrevivecandyconsumed, 200));
|
||||
public static void setDefaultCooldowns(Player p) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
aPlugin.API.sendCooldownPacket(p, Material.BOW, GenericFunctions.GetRemainingCooldownTime(p, pd.last_dodge, TwosideKeeper.DODGE_COOLDOWN));
|
||||
applyCooldownToAllTypes(p,"HOE",GenericFunctions.GetRemainingCooldownTime(p, pd.last_deathmark, TwosideKeeper.DEATHMARK_COOLDOWN));
|
||||
applyCooldownToAllTypes(p,"SPADE",GenericFunctions.GetRemainingCooldownTime(p, pd.lastusedearthwave, TwosideKeeper.EARTHWAVE_COOLDOWN));
|
||||
applyCooldownToAllTypes(p,"SWORD",GenericFunctions.GetRemainingCooldownTime(p, pd.last_strikerspell, TwosideKeeper.LINEDRIVE_COOLDOWN));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.SHIELD, GenericFunctions.GetRemainingCooldownTime(p, pd.last_rejuvenate, TwosideKeeper.REJUVENATE_COOLDOWN));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.SKULL_ITEM, GenericFunctions.GetRemainingCooldownTime(p, pd.lastlifesavertime, TwosideKeeper.LIFESAVER_COOLDOWN));
|
||||
aPlugin.API.sendCooldownPacket(p, Material.CHORUS_FLOWER, GenericFunctions.GetRemainingCooldownTime(p, pd.lastlifesavertime, TwosideKeeper.LIFESAVER_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.GOLDEN_APPLE, GenericFunctions.GetRemainingCooldownTime(p, pd.lastrevivecandyconsumed, 200));
|
||||
}
|
||||
|
||||
private void applyCooldownToAllTypes(Player p, String item, int cooldown) {
|
||||
private static void applyCooldownToAllTypes(Player p, String item, int cooldown) {
|
||||
aPlugin.API.sendCooldownPacket(p, Material.valueOf("WOOD_"+item), cooldown);
|
||||
aPlugin.API.sendCooldownPacket(p, Material.valueOf("IRON_"+item), cooldown);
|
||||
aPlugin.API.sendCooldownPacket(p, Material.valueOf("STONE_"+item), cooldown);
|
||||
|
@ -670,7 +670,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
private final class ReapplyAbsorptionHeartsFromSet implements Runnable {
|
||||
public void run(){
|
||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||
double absorption_amt = ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL, 3, 3)-4;
|
||||
double absorption_amt = ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.SONGSTEEL, 3, 3)-4;
|
||||
if (absorption_amt>0) {
|
||||
if (p.hasPotionEffect(PotionEffectType.ABSORPTION)) {
|
||||
int oldlv = GenericFunctions.getPotionEffectLevel(PotionEffectType.ABSORPTION, p);
|
||||
@ -926,13 +926,13 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
totalregen += ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.ALIKAHN, 4, 4)/2;
|
||||
totalregen += ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 4, 4)/2;
|
||||
if (p.hasPotionEffect(PotionEffectType.REGENERATION)) {
|
||||
totalregen += (GenericFunctions.getPotionEffectLevel(PotionEffectType.REGENERATION, p)+1)*baseregen;
|
||||
}
|
||||
totalregen += (totalregen+baseregen)*pd.pctbonusregen;
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(p, true), p, ItemSet.DAWNTRACKER,6)) {
|
||||
totalregen += (totalregen+baseregen) * (0.25d*ItemSet.GetTier(p.getEquipment().getItemInMainHand()));
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER,6)) {
|
||||
totalregen += (totalregen+baseregen) * (0.25d*ItemSet.GetItemTier(p.getEquipment().getItemInMainHand()));
|
||||
}
|
||||
return totalregen+baseregen;
|
||||
}
|
||||
@ -1054,6 +1054,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
validsetitems.add(Material.GOLD_SWORD);
|
||||
validsetitems.add(Material.SKULL_ITEM);
|
||||
|
||||
ItemSet.bauble_sets = new ItemSet[]{ItemSet.MOONSHADOW,ItemSet.GLADOMAIN,ItemSet.WOLFSBANE,ItemSet.ALUSTINE};
|
||||
|
||||
TEMPORARYABILITIES.add(ArtifactAbility.GREED);
|
||||
TEMPORARYABILITIES.add(ArtifactAbility.SURVIVOR);
|
||||
|
||||
@ -1420,6 +1422,14 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
if (args.length>0) {
|
||||
((org.bukkit.craftbukkit.v1_9_R1.entity.CraftLivingEntity)p).getHandle().setAbsorptionHearts(Float.valueOf(args[0]));
|
||||
}*/
|
||||
Set<Material> set = null;
|
||||
long timer = System.nanoTime();
|
||||
/*TwosideKeeper.log("Target block is "+p.getTargetBlock(set, 100)+" Time: "+((System.nanoTime()-(timer))/1000000)+"ms", 0);timer=System.nanoTime();
|
||||
TwosideKeeper.log("Line of sight is:", 0);
|
||||
for (Block b : p.getLineOfSight(set,100)) {
|
||||
TwosideKeeper.log(" "+b, 0);
|
||||
}
|
||||
TwosideKeeper.log("Time: "+((System.nanoTime()-(timer))/1000000)+"ms", 0);*/
|
||||
if (args.length>0) {
|
||||
switch (args[0]) {
|
||||
case "ADD":{
|
||||
@ -2587,6 +2597,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
|
||||
AnnounceDealOfTheDay(ev.getPlayer());
|
||||
playerdata.put(ev.getPlayer().getUniqueId(), new PlayerStructure(ev.getPlayer(),getServerTickTime()));
|
||||
PlayerStructure.setDefaultCooldowns(ev.getPlayer());
|
||||
ItemSet.updateItemSets(ev.getPlayer());
|
||||
log("[TASK] New Player Data has been added. Size of array: "+playerdata.size(),4);
|
||||
|
||||
PLAYERJOINTOGGLE=true;
|
||||
@ -3218,7 +3230,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (p.getHealth()>p.getMaxHealth()*0.1 && ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(p), p, ItemSet.COMET, 4)) {
|
||||
if (p.getHealth()>p.getMaxHealth()*0.1 && ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.COMET, 4)) {
|
||||
if (ev.getRightClicked() instanceof Player) {
|
||||
Player pl = (Player)ev.getRightClicked();
|
||||
if (pl.getHealth()<pl.getMaxHealth()) {
|
||||
@ -3232,7 +3244,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(p), p, ItemSet.CUPID, 4)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.CUPID, 4)) {
|
||||
if (ev.getRightClicked() instanceof Player) {
|
||||
Player pl = (Player)ev.getRightClicked();
|
||||
LinkPlayerToOtherPlayer(p,pl);
|
||||
@ -4886,7 +4898,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
ev.getPlayer().getEquipment().setItemInMainHand(ev.getItemDrop().getItemStack());
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(ev.getPlayer());
|
||||
Player p = ev.getPlayer();
|
||||
boolean hasFullSet = ItemSet.hasFullSet(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER);
|
||||
boolean hasFullSet = ItemSet.hasFullSet(p, ItemSet.DAWNTRACKER);
|
||||
if (PlayerMode.getPlayerMode(p)==PlayerMode.BARBARIAN &&
|
||||
((hasFullSet && pd.last_mock+GenericFunctions.GetModifiedCooldown(TwosideKeeper.MOCK_COOLDOWN/2,ev.getPlayer())<=TwosideKeeper.getServerTickTime()) || pd.last_mock+GenericFunctions.GetModifiedCooldown(TwosideKeeper.MOCK_COOLDOWN,ev.getPlayer())<=TwosideKeeper.getServerTickTime())) {
|
||||
pd.last_mock=getServerTickTime();
|
||||
@ -5077,6 +5089,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
ItemSet.updateItemSets(p);
|
||||
}
|
||||
}
|
||||
public void DropDeathInventoryContents(Player p, Location deathloc) {
|
||||
@ -5137,6 +5150,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
@Override
|
||||
public void run() {
|
||||
setPlayerMaxHealth(player,player.getHealth()/player.getMaxHealth());
|
||||
ItemSet.updateItemSets(player);
|
||||
}
|
||||
},1);
|
||||
Christmas.RunPlayerItemHeldEvent(ev);
|
||||
@ -5831,6 +5845,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
ItemSet.updateItemSets(player);
|
||||
}
|
||||
|
||||
public void PerformVacuumCubeChecks(InventoryClickEvent ev) {
|
||||
@ -6355,8 +6370,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
dmgdealt=0.25;
|
||||
} else
|
||||
if (PlayerMode.isSlayer((Player)ev.getEntity()) &&
|
||||
ItemSet.GetSetCount(GenericFunctions.getEquipment((Player)ev.getEntity()), ItemSet.LORASYS, (Player)ev.getEntity())>0 &&
|
||||
ItemSet.GetBaubleTier((Player)ev.getEntity())>=18 && ItemSet.GetTier(((Player)ev.getEntity()).getEquipment().getItemInMainHand())>=2) {
|
||||
ItemSet.meetsLorasysSwordConditions(18, 2, (Player)ev.getEntity())) {
|
||||
dmgdealt=0.0;
|
||||
}
|
||||
}
|
||||
@ -6408,7 +6422,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
if (CustomDamage.getDamagerEntity(ev.getDamager()) instanceof Player) {
|
||||
Player p = (Player)CustomDamage.getDamagerEntity(ev.getDamager());
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (PlayerMode.isDefender(p) && p.isSneaking() && ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL,5) && pd.vendetta_amt>0.0) { //Deal Vendetta damage instead.
|
||||
if (PlayerMode.isDefender(p) && p.isSneaking() && ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.SONGSTEEL,5) && pd.vendetta_amt>0.0) { //Deal Vendetta damage instead.
|
||||
SoundUtils.playLocalSound(p, Sound.BLOCK_GLASS_BREAK, 1.0f, 0.5f);
|
||||
GenericFunctions.removeNoDamageTick((LivingEntity)ev.getEntity(), ev.getDamager());
|
||||
CustomDamage.ApplyDamage(pd.vendetta_amt, ev.getDamager(), (LivingEntity)ev.getEntity(), null, "Vendetta");
|
||||
@ -6648,10 +6662,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
if (amt>500) {
|
||||
testamt=500;
|
||||
}
|
||||
ev.setAmount((int)(ev.getAmount()+(ev.getAmount()*(ItemSet.GetTotalBaseAmount(GenericFunctions.getBaubles(ev.getPlayer()), ev.getPlayer(), ItemSet.ALUSTINE)/100d))));
|
||||
ev.setAmount((int)(ev.getAmount()+(ev.getAmount()*(ItemSet.GetTotalBaseAmount(ev.getPlayer(), ItemSet.ALUSTINE)/100d))));
|
||||
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.ALUSTINE, 5)) {
|
||||
if (Math.random()<=Math.min((ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.ALUSTINE, 5, 4)/20d),1)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.ALUSTINE, 5)) {
|
||||
if (Math.random()<=Math.min((ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALUSTINE, 5, 4)/20d),1)) {
|
||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||
if (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER) {
|
||||
if (pd.slayermodehp+2<p.getMaxHealth()) {
|
||||
@ -7028,7 +7042,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
}
|
||||
GenericFunctions.addStackingPotionEffect(p, PotionEffectType.SPEED, 10*20, 4);
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.MOONSHADOW, 7)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.MOONSHADOW, 7)) {
|
||||
//Apply damage to everything around the player.
|
||||
//List<Monster> mobs = GenericFunctions.getNearbyMobs(m.getLocation(), 8);
|
||||
List<Monster> mobs = CustomDamage.trimNonMonsterEntities(m.getNearbyEntities(8, 8, 8));
|
||||
@ -7046,13 +7060,13 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
} else {
|
||||
GenericFunctions.addStackingPotionEffect(p, PotionEffectType.INCREASE_DAMAGE, 10*20, 9);
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.GLADOMAIN, 7)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.GLADOMAIN, 7)) {
|
||||
pd.slayermegahit=true;
|
||||
}
|
||||
GenericFunctions.applyStealth(p, false);
|
||||
} else { //Failed Assassination.
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.WOLFSBANE, 2)) {
|
||||
pd.lastassassinatetime-=GenericFunctions.GetModifiedCooldown(TwosideKeeper.ASSASSINATE_COOLDOWN,p)*(ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.WOLFSBANE, 2, 2)/100d);
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.WOLFSBANE, 2)) {
|
||||
pd.lastassassinatetime-=GenericFunctions.GetModifiedCooldown(TwosideKeeper.ASSASSINATE_COOLDOWN,p)*(ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.WOLFSBANE, 2, 2)/100d);
|
||||
ItemStack[] inv = p.getInventory().getContents();
|
||||
for (int i=0;i<9;i++) {
|
||||
if (inv[i]!=null && (inv[i].getType()!=Material.SKULL_ITEM || pd.lastlifesavertime+GenericFunctions.GetModifiedCooldown(TwosideKeeper.LIFESAVER_COOLDOWN,p)<TwosideKeeper.getServerTickTime())) {
|
||||
@ -7065,13 +7079,11 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
|
||||
if (isSlayer) {
|
||||
int restore_amt = 2;
|
||||
if (ItemSet.GetSetCount(GenericFunctions.getEquipment(p), ItemSet.LORASYS, p)>0) {
|
||||
if (ItemSet.GetBaubleTier(p)>=18 && ItemSet.GetTier((p).getEquipment().getItemInMainHand())>=2) {
|
||||
restore_amt = 4;
|
||||
} else
|
||||
if (ItemSet.GetBaubleTier(p)>=27 && ItemSet.GetTier((p).getEquipment().getItemInMainHand())>=3) {
|
||||
restore_amt = 6;
|
||||
}
|
||||
if (ItemSet.meetsLorasysSwordConditions(18, 2, p)) {
|
||||
restore_amt = 4;
|
||||
} else
|
||||
if (ItemSet.meetsLorasysSwordConditions(27, 3, p)) {
|
||||
restore_amt = 6;
|
||||
}
|
||||
if (pd.slayermodehp+restore_amt<p.getMaxHealth()) {
|
||||
pd.slayermodehp+=restore_amt;
|
||||
@ -7523,6 +7535,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
breakdownItem(item,p);
|
||||
}
|
||||
ItemSet.updateItemSets(p);
|
||||
}
|
||||
|
||||
@EventHandler(priority=EventPriority.LOW,ignoreCancelled = true)
|
||||
@ -7538,7 +7551,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
GenericFunctions.sendActionBarMessage(ev.getPlayer(), drawVelocityBar(pd.velocity,pd.highwinderdmg),true);
|
||||
}
|
||||
}
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(ev.getPlayer()), ev.getPlayer(), ItemSet.DANCER, 4)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(ev.getPlayer(), ItemSet.DANCER, 4)) {
|
||||
PlayerStructure pd = (PlayerStructure)playerdata.get(ev.getPlayer().getUniqueId());
|
||||
int sign1 = (int) Math.signum(ev.getFrom().getX()-ev.getTo().getX());
|
||||
int sign2 = (int) Math.signum(ev.getFrom().getZ()-ev.getTo().getZ());
|
||||
@ -7944,6 +7957,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
PlayPickupParticle(ev.getPlayer(),ev.getItem());
|
||||
ev.getItem().remove();
|
||||
ItemSet.updateItemSets(ev.getPlayer());
|
||||
return;
|
||||
}
|
||||
public static void PlayPickupParticle(Player p, Item item) {
|
||||
@ -7993,10 +8007,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
!PlayerMode.isSlayer(p) &&
|
||||
pd.equiparmor) {
|
||||
p.getEquipment().setBoots(armor);
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
} else
|
||||
if (armor.getType().toString().contains("LEGGINGS") &&
|
||||
@ -8005,10 +8016,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
!PlayerMode.isSlayer(p) &&
|
||||
pd.equiparmor) {
|
||||
p.getEquipment().setLeggings(armor);
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
} else
|
||||
if (armor.getType().toString().contains("CHESTPLATE") &&
|
||||
@ -8017,10 +8025,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
!PlayerMode.isSlayer(p) &&
|
||||
pd.equiparmor) {
|
||||
p.getEquipment().setChestplate(armor);
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
} else
|
||||
if (armor.getType().toString().contains("HELMET") &&
|
||||
@ -8029,10 +8034,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
!PlayerMode.isSlayer(p) &&
|
||||
pd.equiparmor) {
|
||||
p.getEquipment().setHelmet(armor);
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
} else
|
||||
if (armor.getType().toString().contains("SHIELD") &&
|
||||
@ -8045,10 +8047,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
} else {
|
||||
p.getInventory().setExtraContents(new ItemStack[]{armor});
|
||||
}
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
} else
|
||||
if (armor.getType().toString().contains("_AXE") &&
|
||||
@ -8059,10 +8058,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
} else {
|
||||
p.getInventory().setExtraContents(new ItemStack[]{armor});
|
||||
}
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
} else
|
||||
if (armor.getType().toString().contains("BOW") &&
|
||||
@ -8070,34 +8066,33 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
GenericFunctions.AllLeatherArmor(p) &&
|
||||
pd.equipweapons) {
|
||||
p.getEquipment().setItemInMainHand(armor);
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
} else
|
||||
if (ArrowQuiver.isValidQuiver(armor) && p.getInventory().getExtraContents()[0]==null &&
|
||||
pd.equipweapons) {
|
||||
p.getInventory().setExtraContents(new ItemStack[]{armor});
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
} else
|
||||
if (BaublePouch.isBaublePouch(armor) && p.getInventory().getExtraContents()[0]==null &&
|
||||
!PlayerMode.isStriker(p) &&
|
||||
pd.equipweapons) {
|
||||
p.getInventory().setExtraContents(new ItemStack[]{armor});
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
PerformAutoEquipInventoryUpdates(item, p, armor);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static void PerformAutoEquipInventoryUpdates(ItemStack item, Player p, ItemStack armor) {
|
||||
p.sendMessage(ChatColor.DARK_AQUA+"Automatically equipped "+ChatColor.YELLOW+(item.getItemMeta().hasDisplayName()?item.getItemMeta().getDisplayName():GenericFunctions.UserFriendlyMaterialName(item)));
|
||||
SoundUtils.playLocalSound(p, Sound.ENTITY_ITEM_PICKUP, 0.6f, SoundUtils.DetermineItemPitch(armor));
|
||||
GenericFunctions.playProperEquipSound(p,armor.getType());
|
||||
p.updateInventory();
|
||||
ItemSet.updateItemSets(p);
|
||||
}
|
||||
|
||||
@EventHandler(priority=EventPriority.LOW,ignoreCancelled = true)
|
||||
public void onHopperSuction(InventoryMoveItemEvent ev) {
|
||||
@ -9581,7 +9576,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
|
||||
long time = System.nanoTime();
|
||||
//Check the hotbar for set equips.
|
||||
hp+=ItemSet.GetTotalBaseAmount(GenericFunctions.getBaubles(p), p, ItemSet.GLADOMAIN);
|
||||
hp+=ItemSet.GetTotalBaseAmount(p, ItemSet.GLADOMAIN);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Gladomain Set Increase", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
log("Health is now "+hp,5);
|
||||
if (ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, p.getEquipment().getItemInMainHand())) {
|
||||
@ -9601,9 +9596,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Barbarian HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
|
||||
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p,true), p, ItemSet.DAWNTRACKER, 4, 4);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER, 4, 4);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dawntracker HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL, 2, 2);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.SONGSTEEL, 2, 2);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Songsteel HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
|
||||
/*
|
||||
@ -9615,35 +9610,35 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
}
|
||||
}
|
||||
}*/
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.ALIKAHN, 2, 2)+ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.ALIKAHN, 3, 3);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 2, 2)+ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 3, 3);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Alikahn HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.COMET, 2, 2);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.COMET, 2, 2);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Comet HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.CUPID, 2, 2);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.CUPID, 2, 2);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Cupid HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.DONNER, 2, 2);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DONNER, 2, 2);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Donner HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.RUDOLPH, 2, 2);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.RUDOLPH, 2, 2);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Rudolph HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.OLIVE, 2, 2);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.OLIVE, 2, 2);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Olive HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.DASHER, 3, 3);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DASHER, 3, 3);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dasher HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.DANCER, 3, 3);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DANCER, 3, 3);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dancer HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.PRANCER, 3, 3);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.PRANCER, 3, 3);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Prancer HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.VIXEN, 3, 3);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.VIXEN, 3, 3);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Vixen HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(GenericFunctions.getEquipment(p), p, ItemSet.BLITZEN, 3, 3);
|
||||
hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.BLITZEN, 3, 3);
|
||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Blitzen HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||
/*hp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 4, 4)+
|
||||
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 4, 4)+
|
||||
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.LORASAADI, 4, 4)+
|
||||
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.JAMDAK, 4, 4);*/
|
||||
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getEquipment(p, true), p, ItemSet.DAWNTRACKER,6)) {
|
||||
hp+=0.25d*ItemSet.GetTier(p.getEquipment().getItemInMainHand());
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER,6)) {
|
||||
hp+=0.25d*ItemSet.GetItemTier(p.getEquipment().getItemInMainHand());
|
||||
}
|
||||
|
||||
if (PlayerMode.getPlayerMode(p)==PlayerMode.NORMAL) {
|
||||
@ -10091,7 +10086,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
||||
if (PlayerMode.isDefender(p)) {
|
||||
double dodgechance=0.0;
|
||||
if (!p.isBlocking()) {
|
||||
dodgechance+=ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.SONGSTEEL)/100d;
|
||||
dodgechance+=ItemSet.GetTotalBaseAmount(p, ItemSet.SONGSTEEL)/100d;
|
||||
}
|
||||
if (all || dodgechance>0) {
|
||||
receiver.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"Block Chance: "+ChatColor.RESET+""+ChatColor.DARK_AQUA+df.format((CustomDamage.CalculateDodgeChance(p)+dodgechance)*100)+"%");
|
||||
|
@ -516,8 +516,8 @@ final class runServerHeartbeat implements Runnable {
|
||||
}
|
||||
|
||||
private void ModifyDasherSetSpeedMultiplier(Player p) {
|
||||
if (ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DASHER)>0) {
|
||||
double spdmult = ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.DASHER)/100d;
|
||||
if (ItemSet.GetTotalBaseAmount(p, ItemSet.DASHER)>0) {
|
||||
double spdmult = ItemSet.GetTotalBaseAmount(p, ItemSet.DASHER)/100d;
|
||||
aPlugin.API.setPlayerSpeedMultiplier(p, (float)(1.0f+spdmult));
|
||||
}
|
||||
}
|
||||
@ -599,13 +599,13 @@ final class runServerHeartbeat implements Runnable {
|
||||
|
||||
private void DasherFoodRegenPerk(Player p) {
|
||||
if (p.isSprinting() && p.getFoodLevel()<20
|
||||
&& ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(p), p, ItemSet.DASHER, 4)) {
|
||||
&& ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.DASHER, 4)) {
|
||||
p.setFoodLevel(p.getFoodLevel()+1);
|
||||
}
|
||||
}
|
||||
|
||||
private void GivePartyNightVision(Player p) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getArmor(p), p, ItemSet.RUDOLPH, 4)) {
|
||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.RUDOLPH, 4)) {
|
||||
if (!p.hasPotionEffect(PotionEffectType.NIGHT_VISION)) {
|
||||
GenericFunctions.logAndApplyPotionEffectToEntity(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 1, p, true);
|
||||
}
|
||||
@ -619,7 +619,7 @@ final class runServerHeartbeat implements Runnable {
|
||||
}
|
||||
|
||||
private void ApplyCometRegenBonus(Player p) {
|
||||
double regenbuff = ItemSet.GetTotalBaseAmount(GenericFunctions.getEquipment(p), p, ItemSet.COMET);
|
||||
double regenbuff = ItemSet.GetTotalBaseAmount(p, ItemSet.COMET);
|
||||
if (regenbuff>0) {
|
||||
List<Player> partymembers = PartyManager.getPartyMembers(p);
|
||||
for (Player pl : partymembers) {
|
||||
@ -634,7 +634,7 @@ final class runServerHeartbeat implements Runnable {
|
||||
if (PlayerMode.isSlayer(p)) {
|
||||
if (pd.lastsneak+50<=serverTickTime &&
|
||||
p.isSneaking() &&
|
||||
ItemSet.HasSetBonusBasedOnSetBonusCount(GenericFunctions.getBaubles(p), p, ItemSet.MOONSHADOW, 7)) {
|
||||
ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.MOONSHADOW, 7)) {
|
||||
GenericFunctions.deAggroNearbyTargets(p);
|
||||
GenericFunctions.applyStealth(p, true);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user