Skip to content

Commit a29270a

Browse files
committed
-fix arrowdamage
-buf arrow accuracy(further adjustments needed) -nerfed arrow crit multiplier
1 parent 58fd25b commit a29270a

File tree

13 files changed

+49
-26
lines changed

13 files changed

+49
-26
lines changed

common/src/main/java/smartin/miapi/attributes/AttributeRegistry.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import net.minecraft.sound.SoundEvents;
1717
import net.minecraft.util.math.BlockPos;
1818
import net.minecraft.util.math.Vec3d;
19-
import oshi.software.os.unix.aix.AixOSFileStore;
19+
import smartin.miapi.Miapi;
2020
import smartin.miapi.entity.ItemProjectileEntity;
2121
import smartin.miapi.events.MiapiEvents;
2222
import smartin.miapi.events.MiapiProjectileEvents;
@@ -119,14 +119,15 @@ public static void setup() {
119119
MiapiProjectileEvents.MODULAR_PROJECTILE_ENTITY_HIT.register(listener -> {
120120
ItemProjectileEntity projectile = listener.projectile;
121121
if (projectile.isCritical()) {
122-
projectile.setDamage(projectile.getDamage() * AttributeProperty.getActualValue(projectile.asItemStack(), EquipmentSlot.MAINHAND, AttributeRegistry.PROJECTILE_CRIT_MULTIPLIER));
122+
listener.damage = (float) (listener.damage * AttributeProperty.getActualValue(projectile.asItemStack(), EquipmentSlot.MAINHAND, AttributeRegistry.PROJECTILE_CRIT_MULTIPLIER));
123+
Miapi.DEBUG_LOGGER.warn("criticalArrow " + projectile.getDamage() + " speed " + projectile.getVelocity().length());
123124
}
124125
return EventResult.pass();
125126
});
126127
}
127128

128129
public static double getAttribute(ItemStack stack, EntityAttribute attribute, EquipmentSlot slot, double defaultValue) {
129-
if(!stack.getAttributeModifiers(slot).containsKey(attribute)){
130+
if (!stack.getAttributeModifiers(slot).containsKey(attribute)) {
130131
return attribute.getDefaultValue();
131132
}
132133
Collection<EntityAttributeModifier> attributes = stack.getAttributeModifiers(slot).get(attribute);

common/src/main/java/smartin/miapi/client/gui/crafting/statdisplay/StatListWidget.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public static void setup() {
8585
.setTranslationKey("projectile_speed")
8686
.setFormat("##.##")
8787
.setDefault(0)
88+
.setMin(-3)
8889
.setMax(10).build());
8990
addStatDisplay(AttributeSingleDisplay
9091
.builder(AttributeRegistry.PROJECTILE_ACCURACY)
@@ -167,6 +168,11 @@ public static void setup() {
167168
.setMax(1)
168169
.setTranslationKey(MendingProperty.KEY).build());
169170

171+
AttributeSingleDisplay.attributesWithDisplay.add(AttributeRegistry.MINING_SPEED_AXE);
172+
AttributeSingleDisplay.attributesWithDisplay.add(AttributeRegistry.MINING_SPEED_PICKAXE);
173+
AttributeSingleDisplay.attributesWithDisplay.add(AttributeRegistry.MINING_SPEED_HOE);
174+
AttributeSingleDisplay.attributesWithDisplay.add(AttributeRegistry.MINING_SPEED_SHOVEL);
175+
AttributeSingleDisplay.attributesWithDisplay.add(AttributeRegistry.ARMOR_CRUSHING);
170176
Registries.ATTRIBUTE.forEach(entityAttribute -> {
171177
if (!AttributeSingleDisplay.attributesWithDisplay.contains(entityAttribute)) {
172178
addStatDisplay(AttributeSingleDisplay

common/src/main/java/smartin/miapi/entity/ItemProjectileEntity.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import net.minecraft.util.math.Vec3d;
2525
import net.minecraft.world.World;
2626
import org.jetbrains.annotations.Nullable;
27+
import smartin.miapi.Miapi;
2728
import smartin.miapi.attributes.AttributeRegistry;
2829
import smartin.miapi.config.MiapiConfig;
2930
import smartin.miapi.entity.arrowhitbehaviours.EntityBounceBehaviour;
@@ -231,7 +232,7 @@ protected void onEntityHit(EntityHitResult entityHitResult) {
231232
}
232233
damage = event.damage;
233234
this.dealtDamage = true;
234-
if (entity.damage(event.damageSource, damage)) {
235+
if (entity.damage(event.damageSource, (float) Math.ceil(damage))) {
235236
if (entity.getType() == EntityType.ENDERMAN) {
236237
return;
237238
}
@@ -275,8 +276,9 @@ public float getProjectileDamage() {
275276
float damage = (float) getDamage();
276277
if (this.getSpeedDamage()) {
277278
float speed = (float) this.getVelocity().length();
278-
damage = MathHelper.ceil(MathHelper.clamp((double) speed * damage, 0.0, 2.147483647E9));
279+
damage = (float) MathHelper.clamp((double) speed * damage, 0.0, 2.147483647E9);
279280
}
281+
Miapi.DEBUG_LOGGER.warn("Projectile Damage (arrow) " + getDamage() + " speed " + this.getVelocity().length());
280282
return damage;
281283
}
282284

common/src/main/java/smartin/miapi/item/modular/items/ModularBow.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import net.minecraft.util.Identifier;
1919
import net.minecraft.util.TypedActionResult;
2020
import net.minecraft.world.World;
21+
import smartin.miapi.Miapi;
2122
import smartin.miapi.attributes.AttributeRegistry;
2223
import smartin.miapi.client.model.ModularModelPredicateProvider;
2324
import smartin.miapi.config.MiapiConfig;
@@ -41,7 +42,7 @@ public ModularBow() {
4142
}
4243

4344
@Override
44-
public boolean isEnchantable(ItemStack itemStack){
45+
public boolean isEnchantable(ItemStack itemStack) {
4546
return true;
4647
}
4748

@@ -99,6 +100,7 @@ public void onStoppedUsing(ItemStack bowStack, World world, LivingEntity user, i
99100
itemProjectile.setVelocity(playerEntity, playerEntity.getPitch(), playerEntity.getYaw(), 0.0f, pullProgress * speed, divergence);
100101
if (pullProgress == 1.0f) {
101102
itemProjectile.setCritical(true);
103+
itemProjectile.isCritical();
102104
}
103105
if (powerLevel > 0) {
104106
itemProjectile.setDamage(itemProjectile.getDamage() + powerLevel * 0.5 + 0.5);
@@ -121,6 +123,8 @@ public void onStoppedUsing(ItemStack bowStack, World world, LivingEntity user, i
121123
}
122124
itemProjectile = event.projectile;
123125

126+
Miapi.DEBUG_LOGGER.warn("Projectile Damage (bow) " + itemProjectile.getDamage() + " speed " + itemProjectile.getVelocity().length());
127+
124128
world.spawnEntity(itemProjectile);
125129

126130
MiapiProjectileEvents.ModularBowShotEvent postEvent = new MiapiProjectileEvents.ModularBowShotEvent(itemProjectile, bowStack, playerEntity);

common/src/main/java/smartin/miapi/modules/properties/AttributeProperty.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,10 @@ private static Map<EquipmentSlot, Multimap<EntityAttribute, EntityAttributeModif
140140

141141
public static Map<EquipmentSlot, Multimap<EntityAttribute, EntityAttributeModifier>> equipmentSlotMultimapMap(ItemStack itemStack) {
142142
Map<EquipmentSlot, Multimap<EntityAttribute, EntityAttributeModifier>> replaceMap = new EnumMap<>(EquipmentSlot.class);
143-
return ModularItemCache.get(itemStack, KEY + "_unmodifieable",replaceMap);
143+
for (EquipmentSlot slot : EquipmentSlot.values()) {
144+
replaceMap.put(slot, ArrayListMultimap.create());
145+
}
146+
return ModularItemCache.get(itemStack, KEY + "_unmodifieable", replaceMap);
144147
}
145148

146149
public static Multimap<EntityAttribute, EntityAttributeModifier> getAttributeModifiersForSlot(ItemStack itemStack, EquipmentSlot slot, Multimap<EntityAttribute, EntityAttributeModifier> toAdding) {

common/src/main/java/smartin/miapi/modules/properties/HealthPercentDamage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public HealthPercentDamage() {
3737
public Double getValue(ItemStack stack) {
3838
Double value = property.getValueRaw(stack);
3939
if (value == null) {
40-
return 0.0;
40+
return null;
4141
}
4242
return ((200) / (1 + Math.exp(-Math.sqrt(value) / 50))) - 100;
4343
}
49 Bytes
Loading

common/src/main/resources/data/miapi/materials/rod/end_rod.json

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,34 @@
11
{
22
"key": "end_rod",
33
"translation": "miapi.material.rod.end_rod",
4-
"icon": "textures/item/end_rod.png",
4+
"icon": {
5+
"type": "item",
6+
"item": "minecraft:end_rod"
7+
},
58
"groups": ["rod"],
6-
"hardness": 3,
7-
"density": 3,
8-
"flexibility": 3,
9-
"durability": 196,
10-
"color": "A39E93",
9+
"hardness": 7,
10+
"density": 1.5,
11+
"flexibility": 0.5,
12+
"durability": 587,
13+
"color": "A39983",
1114
"mining_speed": 5,
1215
"mining_level": 1,
1316
"textures": [
1417
"emissive"
1518
],
19+
"color_palette": {
20+
"type": "grayscale_map",
21+
"colors": {
22+
"24": "373431",
23+
"68": "615F4C",
24+
"107": "9E9183",
25+
"150": "9E9183",
26+
"190": "9E9683",
27+
"216": "A39E93",
28+
"230": "A3A3A3",
29+
"255": "F3DFCB"
30+
}
31+
},
1632
"items": [
1733
{
1834
"item": "minecraft:end_rod",

common/src/main/resources/data/miapi/materials/wood/wood.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,6 @@
2929
"wood",
3030
"rough"
3131
],
32-
"properties": {
33-
"default": {
34-
"healthPercent": 50
35-
},
36-
"armor": {
37-
"armor_pen": -20
38-
}
39-
},
4032
"items": [
4133
{
4234
"item": "minecraft:stick",

common/src/main/resources/data/miapi/modules/arrow/head/arrow_head.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@
3939
},
4040
{
4141
"attribute": "miapi:generic.projectile_speed",
42-
"value": "( - [material.density] ) / 10",
42+
"value": "( - [material.density] ) / 10 + 0.3",
4343
"operation": "+",
4444
"slot": "mainhand"
4545
},
4646
{
4747
"attribute": "miapi:generic.projectile_crit_multiplier",
48-
"value": "[material.hardness] / (3.7) - 1",
48+
"value": "([material.hardness] / (3.7) - 1)*0.25",
4949
"operation": "+",
5050
"slot": "mainhand"
5151
}

0 commit comments

Comments
 (0)