Skip to content

Commit ccdff6d

Browse files
committed
Some fixes to damage handling and config
1 parent 9b50127 commit ccdff6d

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/main/java/com/programmerdan/minecraft/addgun/guns/StandardGun.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,7 @@ public void manageDamage(HitDigest hitData, Damageable hit, Projectile bullet, B
651651
double variance = (absVelocity - (this.avgSpeed)) / ((this.maxSpeed - this.minSpeed + 1) / 4.0); // variance is now "centered" on average speed, in range [-avg, +avg]
652652

653653
double baseRealDamage = (twosigma / 4) * (1 + (variance / Math.sqrt( 1 + (variance* variance)))) + median;
654+
double originalBaseDamage = baseRealDamage;
654655

655656
double finalDamage = baseRealDamage;
656657
ItemStack armorHit = null;
@@ -784,9 +785,9 @@ public void manageDamage(HitDigest hitData, Damageable hit, Projectile bullet, B
784785
// Basically, unbreaking reduces the amount of durability damage that the armor will sustain
785786
double unbReduction = (1.0 + StandardGun.baseUnbreakingProtection * StandardGun.protectionCurve[unbLevel]);
786787
double finalDuraDamage = baseRealDamage * (1.0 - (1.0 - bulletType.getArmorDamage(grade)) * unbReduction);
787-
if (armorHit.getDurability() < finalDuraDamage) {
788+
if (armorHit.getDurability() + finalDuraDamage > armorHit.getType().getMaxDurability()) {
788789
// broken.
789-
double directDamage = finalDuraDamage - armorHit.getDurability();
790+
double directDamage = finalDuraDamage - (armorHit.getType().getMaxDurability() - armorHit.getDurability());
790791

791792
finalDamage += directDamage; // this is the bit of damage the armor was meant to absorb, but didn't.
792793

@@ -795,7 +796,7 @@ public void manageDamage(HitDigest hitData, Damageable hit, Projectile bullet, B
795796
AddGun.getPlugin().debug(String.format("Armor broken by dura damage %.2f, adding the remaining %.2f to the player damage",
796797
finalDuraDamage, directDamage));
797798
} else {
798-
armorHit.setDurability((short) (armorHit.getDurability() - Math.round(finalDuraDamage)));
799+
armorHit.setDurability((short) (armorHit.getDurability() + Math.round(finalDuraDamage)));
799800

800801
AddGun.getPlugin().debug(String.format("Armor damaged by %.2f", finalDuraDamage));
801802
}
@@ -842,6 +843,9 @@ public void manageDamage(HitDigest hitData, Damageable hit, Projectile bullet, B
842843
break;
843844
}
844845
}
846+
847+
AddGun.getPlugin().debug(String.format("Orig Base damage %.2f, Base damage of %.2f, Final damage of %.2f",
848+
originalBaseDamage, baseRealDamage, finalDamage));
845849

846850
final double trueFinalDamage = finalDamage;
847851
//TODO: player states? custom shit? event?

src/main/resources/config-devoted.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -979,8 +979,8 @@ guns:
979979
health:
980980
max: 1500
981981
misfire:
982-
inflection: 300
983-
spread: 15
982+
inflection: 200
983+
spread: 5
984984
blowout:
985985
chance: 0.01
986986
strength: 1.0

0 commit comments

Comments
 (0)