回滚撞击经验吸取
This commit is contained in:
parent
ee36a54567
commit
01c90f1b47
1 changed files with 7 additions and 14 deletions
|
@ -740,23 +740,16 @@ public class LivingEventHandler {
|
||||||
public static void onLivingExperienceDrop(LivingExperienceDropEvent event) {
|
public static void onLivingExperienceDrop(LivingExperienceDropEvent event) {
|
||||||
Player player = event.getAttackingPlayer();
|
Player player = event.getAttackingPlayer();
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
DamageSource source = event.getAttackingPlayer().getLastDamageSource();
|
|
||||||
if (source == null) return;
|
|
||||||
|
|
||||||
if (player.getVehicle() instanceof IVehicleEntity && source.is(ModDamageTypes.VEHICLE_STRIKE)) {
|
|
||||||
player.giveExperiencePoints(event.getDroppedExperience());
|
|
||||||
event.setCanceled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
if (stack.is(ModTags.Items.GUN)) {
|
if (!stack.is(ModTags.Items.GUN)) return;
|
||||||
|
|
||||||
int level = PerkHelper.getItemPerkLevel(ModPerks.POWERFUL_ATTRACTION.get(), stack);
|
int level = PerkHelper.getItemPerkLevel(ModPerks.POWERFUL_ATTRACTION.get(), stack);
|
||||||
if (level > 0) {
|
if (level > 0) {
|
||||||
player.giveExperiencePoints((int) (event.getDroppedExperience() * (0.8f + 0.2f * level)));
|
player.giveExperiencePoints((int) (event.getDroppedExperience() * (0.8f + 0.2f * level)));
|
||||||
|
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static void handlePlayerBeamReset(Player player) {
|
public static void handlePlayerBeamReset(Player player) {
|
||||||
player.getCapability(ModCapabilities.LASER_CAPABILITY).ifPresent(LaserCapability.ILaserCapability::end);
|
player.getCapability(ModCapabilities.LASER_CAPABILITY).ifPresent(LaserCapability.ILaserCapability::end);
|
||||||
|
|
Loading…
Add table
Reference in a new issue