修复重生自动换弹bug,添加插板和防弹衣能减伤的伤害类型
This commit is contained in:
parent
906ce63a8b
commit
994f2afa4a
4 changed files with 42 additions and 189 deletions
|
@ -108,7 +108,14 @@ public class LivingEventHandler {
|
|||
}
|
||||
|
||||
//计算防弹插板减伤
|
||||
if (source.is(ModTags.DamageTypes.PROJECTILE) || source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) {
|
||||
if (source.is(ModTags.DamageTypes.PROJECTILE) || source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
|
||||
|| source.is(ModDamageTypes.PROJECTILE_BOOM)
|
||||
|| source.is(ModDamageTypes.MINE)
|
||||
|| source.is(ModDamageTypes.CANNON_FIRE)
|
||||
|| source.is(ModDamageTypes.CUSTOM_EXPLOSION)
|
||||
|| source.is(DamageTypes.EXPLOSION)
|
||||
|| source.is(DamageTypes.PLAYER_EXPLOSION)
|
||||
|| source.is(DamageTypes.MOB_PROJECTILE)) {
|
||||
ItemStack armor = entity.getItemBySlot(EquipmentSlot.CHEST);
|
||||
|
||||
if (armor != ItemStack.EMPTY && armor.getTag() != null && armor.getTag().contains("ArmorPlate")) {
|
||||
|
@ -119,13 +126,18 @@ public class LivingEventHandler {
|
|||
}
|
||||
|
||||
//计算防弹护具减伤
|
||||
if (source.is(ModTags.DamageTypes.PROJECTILE)) {
|
||||
if (source.is(ModTags.DamageTypes.PROJECTILE) || source.is(DamageTypes.MOB_PROJECTILE)) {
|
||||
damage *= 1 - 0.8 * Mth.clamp(entity.getAttributeValue(ModAttributes.BULLET_RESISTANCE.get()), 0, 1);
|
||||
}
|
||||
|
||||
if (source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) {
|
||||
damage *= 1 - 0.2 * Mth.clamp(entity.getAttributeValue(ModAttributes.BULLET_RESISTANCE.get()), 0, 1);
|
||||
}
|
||||
|
||||
if (source.is(ModDamageTypes.PROJECTILE_BOOM) || source.is(ModDamageTypes.MINE) || source.is(ModDamageTypes.CANNON_FIRE) || source.is(ModDamageTypes.CUSTOM_EXPLOSION)
|
||||
|| source.is(DamageTypes.EXPLOSION) || source.is(DamageTypes.PLAYER_EXPLOSION)) {
|
||||
damage *= 1 - 0.3 * Mth.clamp(entity.getAttributeValue(ModAttributes.BULLET_RESISTANCE.get()), 0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
event.setAmount((float) damage);
|
||||
|
|
|
@ -299,24 +299,33 @@ public class PlayerEventHandler {
|
|||
|
||||
for (ItemStack stack : player.getInventory().items) {
|
||||
if (stack.is(ModTags.Items.GUN)) {
|
||||
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
|
||||
var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables());
|
||||
|
||||
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && cap.shotgunAmmo > 0) {
|
||||
GunsTool.reload(player, GunInfo.Type.SHOTGUN);
|
||||
} else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
|
||||
}
|
||||
if (stack.is(ModTags.Items.USE_SNIPER_AMMO) && cap.sniperAmmo > 0) {
|
||||
GunsTool.reload(player, GunInfo.Type.SNIPER);
|
||||
} else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) {
|
||||
}
|
||||
if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)&& cap.handgunAmmo > 0) {
|
||||
GunsTool.reload(player, GunInfo.Type.HANDGUN);
|
||||
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
|
||||
}
|
||||
if (stack.is(ModTags.Items.USE_RIFLE_AMMO)&& cap.rifleAmmo > 0) {
|
||||
GunsTool.reload(player, GunInfo.Type.RIFLE);
|
||||
} else if (stack.getItem() == ModItems.TASER.get()) {
|
||||
}
|
||||
if (stack.getItem() == ModItems.TASER.get() && stack.getOrCreateTag().getInt("max_ammo") > 0) {
|
||||
stack.getOrCreateTag().putInt("ammo", 1);
|
||||
player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.TASER_ELECTRODE.get(), 1, player.inventoryMenu.getCraftSlots());
|
||||
} else if (stack.getItem() == ModItems.M_79.get()) {
|
||||
}
|
||||
if (stack.getItem() == ModItems.M_79.get() && stack.getOrCreateTag().getInt("max_ammo") > 0) {
|
||||
stack.getOrCreateTag().putInt("ammo", 1);
|
||||
player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.GRENADE_40MM.get(), 1, player.inventoryMenu.getCraftSlots());
|
||||
} else if (stack.getItem() == ModItems.RPG.get()) {
|
||||
}
|
||||
if (stack.getItem() == ModItems.RPG.get() && stack.getOrCreateTag().getInt("max_ammo") > 0) {
|
||||
stack.getOrCreateTag().putInt("ammo", 1);
|
||||
player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.ROCKET.get(), 1, player.inventoryMenu.getCraftSlots());
|
||||
} else if (stack.getItem() == ModItems.JAVELIN.get()) {
|
||||
}
|
||||
if (stack.getItem() == ModItems.JAVELIN.get() && stack.getOrCreateTag().getInt("max_ammo") > 0) {
|
||||
stack.getOrCreateTag().putInt("ammo", 1);
|
||||
player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.JAVELIN_MISSILE.get(), 1, player.inventoryMenu.getCraftSlots());
|
||||
}
|
||||
|
|
|
@ -78,174 +78,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"animation.ak47.changefirerate": {
|
||||
"animation_length": 0.5,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [0, 0, 4],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [-0.98905, -0.20901, -1.99637],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [0, 0.1, 0],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [0, -0.23, 0],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [-0.78478, 1.92167, -26.98046],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [8.15618, 10.19589, -5.96653],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [1.05, -0.1, -1],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [1.04, -0.08, -0.75]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [27.6003, 27.5697, -16.00843]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-0.6, -2.7, -3.3]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.ak47.changefirerate2": {
|
||||
"animation_length": 0.5,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [-0.98905, -0.20901, -1.99637],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [0, 0, -1],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [0, 0.00828, 0],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [0, 0.1, 0],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [8.15618, 10.19589, -5.96653],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [5.21522, 1.92167, -26.98046],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [0.85, 1.92, -0.75]
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [1.05, 0.9, -1],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [27.6003, 27.5697, -16.00843]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-0.6, -2.7, -3.3]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.ak47.run": {
|
||||
"loop": true,
|
||||
"animation_length": 0.8,
|
||||
|
@ -482,7 +314,7 @@
|
|||
"easing": "easeInOutSine"
|
||||
},
|
||||
"2.15": {
|
||||
"vector": [0.49, 0, 0]
|
||||
"vector": [0.99, 0, 0]
|
||||
},
|
||||
"2.25": {
|
||||
"vector": [0, 0, 0]
|
||||
|
@ -541,7 +373,7 @@
|
|||
"easing": "easeInSine"
|
||||
},
|
||||
"2.15": {
|
||||
"vector": [0.04, 0.15993, 0.24478]
|
||||
"vector": [0.04, 0, 0.24478]
|
||||
},
|
||||
"2.2667": {
|
||||
"vector": [0, 0, 0],
|
||||
|
@ -910,7 +742,7 @@
|
|||
"easing": "easeInOutSine"
|
||||
},
|
||||
"3.0833": {
|
||||
"vector": [0.49, 0, 0]
|
||||
"vector": [0.99, 0, 0]
|
||||
},
|
||||
"3.1833": {
|
||||
"vector": [0, 0, 0]
|
||||
|
@ -990,7 +822,7 @@
|
|||
"easing": "easeInSine"
|
||||
},
|
||||
"3.0833": {
|
||||
"vector": [0.04, 0.15993, 0.24478]
|
||||
"vector": [0.04, 0, 0.24478]
|
||||
},
|
||||
"3.2": {
|
||||
"vector": [0, 0, 0],
|
||||
|
|
|
@ -159,7 +159,7 @@
|
|||
"vector": [-71.5441, 21.19359, 4.89071]
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [-70.25009, 19.57377, 12.8696],
|
||||
"vector": [-68.62934, 10.13346, 9.45227],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.35": {
|
||||
|
@ -167,7 +167,7 @@
|
|||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [-72.13904, 19.33922, 0.51567],
|
||||
"vector": [-73.2118, 28.82149, 4.00081],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.7": {
|
||||
|
@ -176,23 +176,23 @@
|
|||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [-5.16449, 5.24106, -2.41075],
|
||||
"vector": [-5.16449, 3.24106, -2.41075],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [-6.01808, 7.20195, -2.4316],
|
||||
"vector": [-6.01808, 5.20195, -2.4316],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-7.14782, 5.23777, -2.41358],
|
||||
"vector": [-7.14782, 3.23777, -2.41358],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [-6.27505, 7.25654, -2.3913],
|
||||
"vector": [-6.27505, 5.25654, -2.3913],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [-5.16513, 5.23951, -2.40714],
|
||||
"vector": [-5.16513, 3.23951, -2.40714],
|
||||
"easing": "easeOutSine"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue