将部分附魔修改为perk

This commit is contained in:
17146 2024-08-08 05:48:32 +08:00
parent 561fe80f57
commit 8a729db826
6 changed files with 32 additions and 31 deletions

View file

@ -53,7 +53,7 @@ public class LivingEventHandler {
} }
killIndication(event.getSource().getEntity()); killIndication(event.getSource().getEntity());
handleGunEnchantmentsWhenDeath(event); handleGunPerksWhenDeath(event);
handlePlayerKillEntity(event); handlePlayerKillEntity(event);
} }
@ -200,7 +200,7 @@ public class LivingEventHandler {
newStack.getOrCreateTag().putBoolean("sentinel_is_charging", false); newStack.getOrCreateTag().putBoolean("sentinel_is_charging", false);
newStack.getOrCreateTag().putInt("sentinel_charge_time", 0); newStack.getOrCreateTag().putInt("sentinel_charge_time", 0);
int level = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.KILLING_TALLY.get(), newStack); int level = PerkHelper.getItemPerkLevel(ModPerks.KILLING_TALLY.get(), newStack);
if (level != 0) { if (level != 0) {
newStack.getOrCreateTag().putInt("KillingTally", 0); newStack.getOrCreateTag().putInt("KillingTally", 0);
} }
@ -299,7 +299,7 @@ public class LivingEventHandler {
} }
} }
private static void handleGunEnchantmentsWhenDeath(LivingDeathEvent event) { private static void handleGunPerksWhenDeath(LivingDeathEvent event) {
DamageSource source = event.getSource(); DamageSource source = event.getSource();
Player attacker = null; Player attacker = null;
@ -320,7 +320,7 @@ public class LivingEventHandler {
} }
if (DamageTypeTool.isGunDamage(source) || source.is(ModDamageTypes.PROJECTILE_BOOM)) { if (DamageTypeTool.isGunDamage(source) || source.is(ModDamageTypes.PROJECTILE_BOOM)) {
handleClipEnchantments(stack); handleClipPerks(stack);
} }
if (DamageTypeTool.isGunDamage(source)) { if (DamageTypeTool.isGunDamage(source)) {
@ -328,8 +328,8 @@ public class LivingEventHandler {
} }
} }
private static void handleClipEnchantments(ItemStack stack) { private static void handleClipPerks(ItemStack stack) {
int healClipLevel = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.HEAL_CLIP.get(), stack); int healClipLevel = PerkHelper.getItemPerkLevel(ModPerks.HEAL_CLIP.get(), stack);
if (healClipLevel != 0) { if (healClipLevel != 0) {
stack.getOrCreateTag().putInt("HealClipTime", 80 + healClipLevel * 20); stack.getOrCreateTag().putInt("HealClipTime", 80 + healClipLevel * 20);
} }
@ -352,16 +352,16 @@ public class LivingEventHandler {
} }
private static void handleGutshotStraightDamage(ItemStack stack, LivingHurtEvent event) { private static void handleGutshotStraightDamage(ItemStack stack, LivingHurtEvent event) {
int enchantmentLevel = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.GUTSHOT_STRAIGHT.get(), stack); int level = PerkHelper.getItemPerkLevel(ModPerks.GUTSHOT_STRAIGHT.get(), stack);
if (enchantmentLevel == 0) { if (level == 0) {
return; return;
} }
event.setAmount(event.getAmount() * (1.15f + 0.05f * enchantmentLevel)); event.setAmount(event.getAmount() * (1.15f + 0.05f * level));
} }
private static void handleKillingTallyDamage(ItemStack stack, LivingHurtEvent event) { private static void handleKillingTallyDamage(ItemStack stack, LivingHurtEvent event) {
int level = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.KILLING_TALLY.get(), stack); int level = PerkHelper.getItemPerkLevel(ModPerks.KILLING_TALLY.get(), stack);
if (level == 0) { if (level == 0) {
return; return;
} }
@ -375,7 +375,7 @@ public class LivingEventHandler {
} }
private static void handleKillingTallyAddCount(ItemStack stack) { private static void handleKillingTallyAddCount(ItemStack stack) {
int level = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.KILLING_TALLY.get(), stack); int level = PerkHelper.getItemPerkLevel(ModPerks.KILLING_TALLY.get(), stack);
if (level != 0) { if (level != 0) {
stack.getOrCreateTag().putInt("KillingTally", Math.min(3, stack.getOrCreateTag().getInt("KillingTally") + 1)); stack.getOrCreateTag().putInt("KillingTally", Math.min(3, stack.getOrCreateTag().getInt("KillingTally") + 1));
} }

View file

@ -1,13 +1,11 @@
package net.mcreator.superbwarfare.event; package net.mcreator.superbwarfare.event;
import net.mcreator.superbwarfare.event.modevent.ReloadEvent; import net.mcreator.superbwarfare.event.modevent.ReloadEvent;
import net.mcreator.superbwarfare.init.ModEnchantments;
import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModPerks;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.perk.PerkHelper;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
@ -64,7 +62,7 @@ public class ReloadEventHandler {
return; return;
} }
int healClipLevel = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.HEAL_CLIP.get(), stack); int healClipLevel = PerkHelper.getItemPerkLevel(ModPerks.HEAL_CLIP.get(), stack);
if (healClipLevel == 0) { if (healClipLevel == 0) {
healClipLevel = 1; healClipLevel = 1;
} }
@ -96,7 +94,7 @@ public class ReloadEventHandler {
} }
private static void handleKillingTallyPre(ItemStack stack) { private static void handleKillingTallyPre(ItemStack stack) {
int level = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.KILLING_TALLY.get(), stack); int level = PerkHelper.getItemPerkLevel(ModPerks.KILLING_TALLY.get(), stack);
if (level == 0) { if (level == 0) {
return; return;
} }

View file

@ -15,8 +15,5 @@ public class ModEnchantments {
public static final RegistryObject<Enchantment> SUPER_RECHARGE = REGISTRY.register("super_recharge", SuperRecharge::new); public static final RegistryObject<Enchantment> SUPER_RECHARGE = REGISTRY.register("super_recharge", SuperRecharge::new);
public static final RegistryObject<Enchantment> LONGER_WIRE = REGISTRY.register("longer_wire", LongerWire::new); public static final RegistryObject<Enchantment> LONGER_WIRE = REGISTRY.register("longer_wire", LongerWire::new);
public static final RegistryObject<Enchantment> MONSTER_HUNTER = REGISTRY.register("monster_hunter", MonsterHunter::new); public static final RegistryObject<Enchantment> MONSTER_HUNTER = REGISTRY.register("monster_hunter", MonsterHunter::new);
public static final RegistryObject<Enchantment> HEAL_CLIP = REGISTRY.register("heal_clip", HealClip::new);
public static final RegistryObject<Enchantment> GUTSHOT_STRAIGHT = REGISTRY.register("gutshot_straight", GutshotStraight::new);
public static final RegistryObject<Enchantment> KILLING_TALLY = REGISTRY.register("killing_tally", KillingTally::new);
public static final RegistryObject<Enchantment> FOURTH_TIMES_CHARM = REGISTRY.register("fourth_times_charm", FourthTimesCharm::new); public static final RegistryObject<Enchantment> FOURTH_TIMES_CHARM = REGISTRY.register("fourth_times_charm", FourthTimesCharm::new);
} }

View file

@ -55,11 +55,19 @@ public class ModTabs {
) )
.build()); .build());
public static final RegistryObject<CreativeModeTab> PERK_TAB = TABS.register("perk",
() -> CreativeModeTab.builder()
.title(Component.translatable("item_group.superbwarfare.perk"))
.icon(() -> new ItemStack(ModItems.TRACHELIUM_BLUEPRINT.get()))
.withTabsBefore(GUN_TAB.getKey())
.displayItems((param, output) -> ModItems.PERKS.getEntries().forEach(registryObject -> output.accept(registryObject.get())))
.build());
public static final RegistryObject<CreativeModeTab> AMMO_TAB = TABS.register("ammo", public static final RegistryObject<CreativeModeTab> AMMO_TAB = TABS.register("ammo",
() -> CreativeModeTab.builder() () -> CreativeModeTab.builder()
.title(Component.translatable("item_group.superbwarfare.ammo")) .title(Component.translatable("item_group.superbwarfare.ammo"))
.icon(() -> new ItemStack(ModItems.SHOTGUN_AMMO_BOX.get())) .icon(() -> new ItemStack(ModItems.SHOTGUN_AMMO_BOX.get()))
.withTabsBefore(GUN_TAB.getKey()) .withTabsBefore(PERK_TAB.getKey())
.displayItems((param, output) -> ModItems.AMMO.getEntries().forEach(registryObject -> output.accept(registryObject.get()))) .displayItems((param, output) -> ModItems.AMMO.getEntries().forEach(registryObject -> output.accept(registryObject.get())))
.build()); .build());

View file

@ -1,5 +1,6 @@
{ {
"item_group.superbwarfare.guns": "Superb Warfare Guns", "item_group.superbwarfare.guns": "Superb Warfare Guns",
"item_group.superbwarfare.perk": "Superb Warfare Perks",
"item_group.superbwarfare.item": "Superb Warfare Items", "item_group.superbwarfare.item": "Superb Warfare Items",
"item_group.superbwarfare.block": "Superb Warfare Blocks", "item_group.superbwarfare.block": "Superb Warfare Blocks",
"item_group.superbwarfare.ammo": "Superb Warfare Ammo", "item_group.superbwarfare.ammo": "Superb Warfare Ammo",
@ -179,6 +180,10 @@
"des.superbwarfare.kill_clip": "Increases the damage of weapon after dealing a final blow", "des.superbwarfare.kill_clip": "Increases the damage of weapon after dealing a final blow",
"item.superbwarfare.heal_clip": "Heal Clip", "item.superbwarfare.heal_clip": "Heal Clip",
"des.superbwarfare.heal_clip": "Reloading after dealing a final blow will heal you and your nearby allies", "des.superbwarfare.heal_clip": "Reloading after dealing a final blow will heal you and your nearby allies",
"item.superbwarfare.killing_tally": "Killing Tally",
"des.superbwarfare.killing_tally": "Kill increases the weapon's damage until it is stowed or reloaded",
"item.superbwarfare.gutshot_straight": "Gutshot Straight",
"des.superbwarfare.gutshot_straight": "Aiming down sights increases body shot damage",
"perk.superbwarfare.tips": "[Perks]", "perk.superbwarfare.tips": "[Perks]",
"perk.superbwarfare.slot": "Type: ", "perk.superbwarfare.slot": "Type: ",
@ -268,12 +273,6 @@
"enchantment.superbwarfare.longer_wire.desc": "Increases the range of TaserGun", "enchantment.superbwarfare.longer_wire.desc": "Increases the range of TaserGun",
"enchantment.superbwarfare.monster_hunter": "Monster Hunter", "enchantment.superbwarfare.monster_hunter": "Monster Hunter",
"enchantment.superbwarfare.monster_hunter.desc": "Increases bullet damage against monsters", "enchantment.superbwarfare.monster_hunter.desc": "Increases bullet damage against monsters",
"enchantment.superbwarfare.heal_clip": "Heal Clip",
"enchantment.superbwarfare.heal_clip.desc": "Reloading after dealing a final blow will heal you and your nearby allies",
"enchantment.superbwarfare.gutshot_straight": "Gutshot Straight",
"enchantment.superbwarfare.gutshot_straight.desc": "Aiming down sights increases body shot damage",
"enchantment.superbwarfare.killing_tally": "Killing Tally",
"enchantment.superbwarfare.killing_tally.desc": "Kill increases the weapon's damage until it is stowed or reloaded",
"enchantment.superbwarfare.fourth_times_charm": "Fourth Time's The Charm", "enchantment.superbwarfare.fourth_times_charm": "Fourth Time's The Charm",
"enchantment.superbwarfare.fourth_times_charm.desc": "Rapidly landing precision hits will return two rounds to the magazine", "enchantment.superbwarfare.fourth_times_charm.desc": "Rapidly landing precision hits will return two rounds to the magazine",

View file

@ -1,5 +1,6 @@
{ {
"item_group.superbwarfare.guns": "卓越前线:枪械", "item_group.superbwarfare.guns": "卓越前线:枪械",
"item_group.superbwarfare.perk": "卓越前线:模组",
"item_group.superbwarfare.item": "卓越前线:物品", "item_group.superbwarfare.item": "卓越前线:物品",
"item_group.superbwarfare.block": "卓越前线:方块", "item_group.superbwarfare.block": "卓越前线:方块",
"item_group.superbwarfare.ammo": "卓越前线:弹药", "item_group.superbwarfare.ammo": "卓越前线:弹药",
@ -179,6 +180,10 @@
"des.superbwarfare.kill_clip": "完成击杀后填装可提升武器伤害", "des.superbwarfare.kill_clip": "完成击杀后填装可提升武器伤害",
"item.superbwarfare.heal_clip": "治疗弹匣", "item.superbwarfare.heal_clip": "治疗弹匣",
"des.superbwarfare.heal_clip": "最后一击后短时间内填装,可治疗自身和附近队友", "des.superbwarfare.heal_clip": "最后一击后短时间内填装,可治疗自身和附近队友",
"item.superbwarfare.killing_tally": "击杀记录",
"des.superbwarfare.killing_tally": "完成击杀可提高此武器的伤害,效果持续至切换或填装武器",
"item.superbwarfare.gutshot_straight": "直击要害",
"des.superbwarfare.gutshot_straight": "瞄准时增加身体射击伤害",
"perk.superbwarfare.tips": "[武器模组]", "perk.superbwarfare.tips": "[武器模组]",
"perk.superbwarfare.slot": "类型: ", "perk.superbwarfare.slot": "类型: ",
@ -268,12 +273,6 @@
"enchantment.superbwarfare.longer_wire.desc": "增加泰瑟枪的射程", "enchantment.superbwarfare.longer_wire.desc": "增加泰瑟枪的射程",
"enchantment.superbwarfare.monster_hunter": "怪物猎人", "enchantment.superbwarfare.monster_hunter": "怪物猎人",
"enchantment.superbwarfare.monster_hunter.desc": "增加对怪物的子弹伤害", "enchantment.superbwarfare.monster_hunter.desc": "增加对怪物的子弹伤害",
"enchantment.superbwarfare.heal_clip": "治疗弹匣",
"enchantment.superbwarfare.heal_clip.desc": "最后一击后短时间内填装,可治疗自身和附近队友",
"enchantment.superbwarfare.gutshot_straight": "直击要害",
"enchantment.superbwarfare.gutshot_straight.desc": "瞄准时增加身体射击伤害",
"enchantment.superbwarfare.killing_tally": "击杀记录",
"enchantment.superbwarfare.killing_tally.desc": "完成击杀可提高此武器的伤害,效果持续至切换或填装武器",
"enchantment.superbwarfare.fourth_times_charm": "事不过四", "enchantment.superbwarfare.fourth_times_charm": "事不过四",
"enchantment.superbwarfare.fourth_times_charm.desc": "快速精准命中目标会向弹匣中返还两枚弹药", "enchantment.superbwarfare.fourth_times_charm.desc": "快速精准命中目标会向弹匣中返还两枚弹药",