diff --git a/.gitignore b/.gitignore
index 01f7afd..25b476e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
.*
/bin
/projectBuilder.xml
-/TwosideKeeper.jar
diff --git a/TwosideKeeper.jar b/TwosideKeeper.jar
new file mode 100644
index 0000000..e8e8010
Binary files /dev/null and b/TwosideKeeper.jar differ
diff --git a/projectBuilder.xml b/projectBuilder.xml
deleted file mode 100644
index 4faeb1b..0000000
--- a/projectBuilder.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/sig/plugin/TwosideKeeper/CustomDamage.java b/src/sig/plugin/TwosideKeeper/CustomDamage.java
index a9cd6fe..0ae4a8b 100644
--- a/src/sig/plugin/TwosideKeeper/CustomDamage.java
+++ b/src/sig/plugin/TwosideKeeper/CustomDamage.java
@@ -772,7 +772,7 @@ public class CustomDamage {
restoreHealthToPartyMembersWithProtectorSet(p);
applySustenanceSetonHitEffects(p);
reduceStrengthAmountForStealthSet(p);
- increaseBlockStacks(p);
+ handleBlockStacks(p);
if (!isFlagSet(flags,NOAOE)) {
if (damage
0) {
+ pd.blockStacks--;
+ GenericFunctions.sendActionBarMessage(p, "", true);
+ pd.customtitle.updateSideTitleStats(p);
+ }
}
}
+ return damage;
}
private static void updateAggroValues(LivingEntity damager, LivingEntity target, double damage, String reason) {
@@ -2027,6 +2035,16 @@ public class CustomDamage {
}
return;
}
+ if (PlayerMode.isDefender(p)) {
+ if (DefenderStance.getDefenderStance(p)==DefenderStance.TANK) {
+ Bukkit.getScheduler().scheduleSyncDelayedTask(TwosideKeeper.plugin, new Runnable() {
+ @Override
+ public void run() {
+ p.setVelocity(p.getVelocity().multiply(0));
+ }
+ },1);
+ }
+ }
/*if (PlayerMode.isDefender(p) && p.isBlocking()) {
Bukkit.getScheduler().scheduleSyncDelayedTask(TwosideKeeper.plugin, new Runnable() {
@Override
@@ -2772,6 +2790,9 @@ public class CustomDamage {
if (ds==DefenderStance.BLOCK) {
defenderstancemult = 0.25;
} else
+ if (ds==DefenderStance.CHARGE) {
+ defenderstancemult = 0.1;
+ } else
if (ds==DefenderStance.TANK) {
defenderstancemult = 0.5;
}
diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
index 14662ec..73711fc 100644
--- a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
+++ b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
@@ -4134,6 +4134,7 @@ public class GenericFunctions {
basedmg=origdmg;
boolean isForcefulStrike = (reason!=null && reason.equalsIgnoreCase("forceful strike"));
boolean isSweepUp = (reason!=null && reason.equalsIgnoreCase("sweep up"));
+ boolean isShieldCharge = (reason!=null && reason.equalsIgnoreCase("shield charge"));
if (isSweepUp) {
aPlugin.API.sendSoundlessExplosion(m.getLocation(), 1.5f);
if (damager instanceof Player) {
@@ -4141,6 +4142,12 @@ public class GenericFunctions {
p.playEffect(m.getLocation(), Effect.LAVA_POP, null);
}
}
+ if (isShieldCharge) {
+ GenericFunctions.addSuppressionTime(m, (int)(20*0.5));
+ Player p = (Player)damager;
+ double dmg = CustomDamage.getBaseWeaponDamage(p.getEquipment().getItemInMainHand(), p, m);;
+ CustomDamage.ApplyDamage(dmg*0.25, p, m, p.getEquipment().getItemInMainHand(), "Shield Charge", CustomDamage.IGNORE_DAMAGE_TICK|CustomDamage.TRUEDMG);
+ }
if (isForcefulStrike) {
GenericFunctions.addSuppressionTime(m, 20*2);
}
@@ -4152,7 +4159,7 @@ public class GenericFunctions {
}
}
} else {
- if (CustomDamage.ApplyDamage(basedmg, damager, m, weapon, reason)) {
+ if (CustomDamage.ApplyDamage(basedmg, damager, m, weapon, reason, CustomDamage.IGNORE_DAMAGE_TICK)) {
if (knockup) {
m.setVelocity(new Vector(0,knockupamt,0));
}
diff --git a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java
index fdc8b05..60228b3 100644
--- a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java
+++ b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java
@@ -4492,7 +4492,17 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
/*double dmg = CustomDamage.CalculateDamage(0,p,);
CustomDamage.ApplyDamage(, damager, target, weapon, reason, flags)*/
//GenericFunctions.DealBlitzenLightningStrikeToNearbyMobs(l, basedmg, range, damager, flags);
- GenericFunctions.DealDamageToNearbyMobs(checkpos, 0, 1, true, 2, p, p.getEquipment().getItemInMainHand(), false, "Shield Charge");
+ Block bb = checkpos.getBlock().getRelative(0, -1, 0);
+ if (bb!=null && bb.getType()!=Material.AIR) {
+ GenericFunctions.DealDamageToNearbyMobs(checkpos, 0, 1, true, 2, p, p.getEquipment().getItemInMainHand(), false, "Shield Charge");
+ }
+ }
+ List ents = GenericFunctions.getNearbyMobs(p.getLocation(), 16);
+ for (LivingEntity ent : ents) {
+ if (!(ent instanceof Player)) {
+ LivingEntityStructure les = LivingEntityStructure.GetLivingEntityStructure(ent);
+ les.increaseAggro(p, 50);
+ }
}
}
}