Skip to content

Commit 41be204

Browse files
committed
revert: 80ad349
1 parent 0a09276 commit 41be204

File tree

3 files changed

+22
-30
lines changed

3 files changed

+22
-30
lines changed

src/main/java/io/github/sefiraat/slimetinker/events/PlayerDamagedEvents.java

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
import io.github.sefiraat.slimetinker.utils.ThemeUtils;
1212
import io.github.sefiraat.slimetinker.utils.WorldUtils;
1313
import io.github.thebusybiscuit.slimefun4.libraries.dough.data.persistent.PersistentDataAPI;
14-
import org.bukkit.*;
14+
import org.bukkit.Color;
15+
import org.bukkit.Effect;
16+
import org.bukkit.Location;
17+
import org.bukkit.Material;
18+
import org.bukkit.NamespacedKey;
19+
import org.bukkit.Particle;
1520
import org.bukkit.attribute.Attribute;
1621
import org.bukkit.entity.EnderDragon;
1722
import org.bukkit.entity.Enderman;
@@ -152,43 +157,34 @@ public static void plateBrass(EventFriend friend) {
152157
if (!(itemMeta instanceof Damageable)) {
153158
return;
154159
}
155-
// fix issue # 93: nerf brass
156-
// its logic is wrongly coded , mismatching its description
157-
// And it is truly overpowered at current values
158-
// Note: getDamage() returns the durability already used
159-
// Imagine you have a set of brass plate armor each piece with only 1 / 10 durability
160-
// you will get total of -1 damageMod, which means the event will be cancelled and armor will not be damaged by the attack, and the player will be invulnerable
161-
// even if you only got 2/ 10 of durability, hold a carbon mesh bind tool will result in -1.13 damageMod
162-
// Note: tools with infinity rod and carbon mesh bind decrease damageMod to 1/2 (1 - 33%) = 0.33, if we provide more than 0.33 in add operation, the player will be invulnerable again. so we decide to use multiplication, which provide a maxinum of 0.125 reduce of damageMod per piece
163-
// we decided to cut it in half , letting it result in about -0.4 of CURRENT damageMod for a set of armor
164-
// Note: providing a total of (1 - 0.25)^4 = 0.3 damageMod multiplier is also too op, (you're granted the same dameg reduction as infinite rod = carbon mesh bind just by wearing armor)
160+
165161
Damageable damagable = (Damageable) itemMeta;
166162
int maxDurability = itemStack.getType().getMaxDurability();
167163
int damage = damagable.getDamage();
168164
float dmgPerc = ((float) damage) / ((float) maxDurability);
169165

170166
if (dmgPerc <= 0) {
171-
friend.setDamageMod(friend.getDamageMod() * (1 - 0.125));
167+
friend.setDamageMod(friend.getDamageMod() + 0.25);
172168
} else if (dmgPerc <= 0.1) {
173-
friend.setDamageMod(friend.getDamageMod() * (1 - 0.1));
169+
friend.setDamageMod(friend.getDamageMod() + 0.20);
174170
} else if (dmgPerc <= 0.2) {
175-
friend.setDamageMod(friend.getDamageMod() * (1 - 0.075));
171+
friend.setDamageMod(friend.getDamageMod() + 0.15);
176172
} else if (dmgPerc <= 0.3) {
177-
friend.setDamageMod(friend.getDamageMod() * (1 - 0.050));
173+
friend.setDamageMod(friend.getDamageMod() + 0.10);
178174
} else if (dmgPerc <= 0.4) {
179-
friend.setDamageMod(friend.getDamageMod() * (1 - 0.025));
175+
friend.setDamageMod(friend.getDamageMod() + 0.05);
180176
} else if (dmgPerc <= 0.5) {
181-
// friend.setDamageMod(friend.getDamageMod() + );
177+
friend.setDamageMod(friend.getDamageMod() + 0.00);
182178
} else if (dmgPerc <= 0.6) {
183-
friend.setDamageMod(friend.getDamageMod() * (1 + 0.05));
179+
friend.setDamageMod(friend.getDamageMod() - 0.05);
184180
} else if (dmgPerc <= 0.7) {
185-
friend.setDamageMod(friend.getDamageMod() * (1 + 0.10));
181+
friend.setDamageMod(friend.getDamageMod() - 0.10);
186182
} else if (dmgPerc <= 0.8) {
187-
friend.setDamageMod(friend.getDamageMod() * (1 + 0.15));
183+
friend.setDamageMod(friend.getDamageMod() - 0.15);
188184
} else if (dmgPerc <= 0.9) {
189-
friend.setDamageMod(friend.getDamageMod() * (1 + 0.20));
185+
friend.setDamageMod(friend.getDamageMod() - 0.20);
190186
} else if (dmgPerc <= 1) {
191-
friend.setDamageMod(friend.getDamageMod() * (1 + 0.25));
187+
friend.setDamageMod(friend.getDamageMod() - 0.25);
192188
}
193189
}
194190

@@ -643,13 +639,12 @@ public static void linksMagThor(EventFriend friend) {
643639
public static void plateIridium(EventFriend friend) {
644640
Player p = friend.getPlayer();
645641
Entity e = friend.getDamagingEntity();
646-
//fix issue #92, damage from player should also be blocked
647-
if (e instanceof Mob || e instanceof Player) {
642+
if (e instanceof Mob) {
648643
if (e.getType() == EntityType.GUARDIAN) {
649644
return;
650645
}
651646

652-
((org.bukkit.entity.Damageable) e).damage(friend.getInitialDamage() * 0.1, p);
647+
((Mob) e).damage(friend.getInitialDamage() * 0.1, p);
653648
friend.setDamageMod(friend.getDamageMod() - 0.1);
654649
}
655650
}

src/main/java/io/github/sefiraat/slimetinker/items/tinkermaterials/setup/Traits.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -759,9 +759,8 @@ private Traits() {
759759
.setLore(
760760
"+200% 耐久消耗",
761761
"承受伤害将根据耐久度计算:",
762-
"耐久高于一半时减少承受伤害,满耐久度时最多减少12.5%",
763-
"耐久低于一半时增加承受伤害,1耐久度时最多增加25%",
764-
"每件护甲单独计算"
762+
"耐久高于一半时减少承受伤害,满耐久度时最多减少25%",
763+
"耐久低于一半时增加承受伤害,1耐久度时最多增加25%"
765764
)
766765
.addConsumer(TraitEventType.PLAYER_DAMAGED, PlayerDamagedEvents::plateBrass)
767766
.addConsumer(TraitEventType.DURABILITY, DurabilityEvents::plateBrass);

src/main/java/io/github/sefiraat/slimetinker/listeners/PlayerDamagedListener.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ public void onPlayerDamaged(EntityDamageEvent event) {
4949
// Settle
5050
settlePotionEffects(friend);
5151
event.setDamage(friend.getDamageOverride() == null ? event.getDamage() * friend.getDamageMod() : friend.getDamageOverride());
52-
// fix: issue #93 : damageMod < 0 should also be cancelled
5352
if (friend.getDamageMod() <= 0 || friend.isCancelEvent()) {
5453
event.setCancelled(true);
5554
}
@@ -81,7 +80,6 @@ public void onPlayerDamagedByEntity(EntityDamageByEntityEvent event) {
8180
// Settle
8281
settlePotionEffects(friend);
8382
event.setDamage(friend.getDamageOverride() == null ? event.getDamage() * friend.getDamageMod() : friend.getDamageOverride());
84-
// fix: issue #93 : damageMod < 0 should also be cancelled
8583
if (friend.getDamageMod() <= 0 || friend.isCancelEvent()) {
8684
event.setCancelled(true);
8785
}

0 commit comments

Comments
 (0)