移除全部附魔,重做为perk

This commit is contained in:
17146 2024-09-09 10:11:47 +08:00
parent 5c28aa083e
commit 5813fb846b
13 changed files with 51 additions and 204 deletions

View file

@ -51,7 +51,6 @@ public class ModUtils {
ModParticleTypes.REGISTRY.register(bus);
ModPotion.POTIONS.register(bus);
ModMenuTypes.REGISTRY.register(bus);
ModEnchantments.REGISTRY.register(bus);
ModVillagers.register(bus);
bus.addListener(this::onCommonSetup);

View file

@ -1,34 +0,0 @@
package net.mcreator.superbwarfare.enchantment;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.tools.EnchantmentCategoryTool;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.item.enchantment.Enchantment;
public class LongerWire extends Enchantment {
public LongerWire(EquipmentSlot... slots) {
super(Rarity.UNCOMMON, EnchantmentCategoryTool.TASER, slots);
}
@Override
public int getMinCost(int pLevel) {
return 8 + 6 * pLevel;
}
@Override
public int getMaxCost(int pLevel) {
return super.getMaxCost(pLevel) + 20;
}
@Override
public int getMaxLevel() {
return 5;
}
@Override
public boolean canApplyAtEnchantingTable(ItemStack itemstack) {
return Ingredient.of(new ItemStack(ModItems.TASER.get())).test(itemstack);
}
}

View file

@ -1,34 +0,0 @@
package net.mcreator.superbwarfare.enchantment;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.tools.EnchantmentCategoryTool;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.item.enchantment.Enchantment;
public class SuperRecharge extends Enchantment {
public SuperRecharge(EquipmentSlot... slots) {
super(Rarity.UNCOMMON, EnchantmentCategoryTool.TASER, slots);
}
@Override
public int getMinCost(int pLevel) {
return 10 + 5 * pLevel;
}
@Override
public int getMaxCost(int pLevel) {
return super.getMaxCost(pLevel) + 25;
}
@Override
public int getMaxLevel() {
return 5;
}
@Override
public boolean canApplyAtEnchantingTable(ItemStack itemstack) {
return Ingredient.of(new ItemStack(ModItems.TASER.get())).test(itemstack);
}
}

View file

@ -1,35 +0,0 @@
package net.mcreator.superbwarfare.enchantment;
import net.mcreator.superbwarfare.tools.EnchantmentCategoryTool;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.EquipmentSlot;
import net.mcreator.superbwarfare.init.ModItems;
public class VoltOverload extends Enchantment {
public VoltOverload(EquipmentSlot... slots) {
super(Enchantment.Rarity.UNCOMMON, EnchantmentCategoryTool.TASER, slots);
}
@Override
public int getMinCost(int pLevel) {
return 8 + 6 * pLevel;
}
@Override
public int getMaxCost(int pLevel) {
return super.getMaxCost(pLevel) + 20;
}
@Override
public int getMaxLevel() {
return 5;
}
@Override
public boolean canApplyAtEnchantingTable(ItemStack itemstack) {
return Ingredient.of(new ItemStack(ModItems.TASER.get())).test(itemstack);
}
}

View file

@ -1,10 +1,7 @@
package net.mcreator.superbwarfare.entity;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModDamageTypes;
import net.mcreator.superbwarfare.init.ModEntities;
import net.mcreator.superbwarfare.init.ModMobEffects;
import net.mcreator.superbwarfare.init.ModSounds;
import net.mcreator.superbwarfare.init.*;
import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage;
import net.minecraft.core.BlockPos;
import net.minecraft.network.protocol.Packet;
@ -21,7 +18,6 @@ import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BellBlock;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult;
@ -36,19 +32,19 @@ import net.minecraftforge.network.PlayMessages;
public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSupplier {
private float damage = 1f;
private int volt = 0;
private int wire_length = 0;
private int wireLength = 0;
private boolean stop = false;
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR);
public static final ItemStack PROJECTILE_ITEM = new ItemStack(ModItems.TASER_ELECTRODE.get());
public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level world) {
super(ModEntities.TASER_BULLET_PROJECTILE.get(), world);
}
public TaserBulletProjectileEntity(LivingEntity entity, Level level, float damage, int volt, int wire_length) {
public TaserBulletProjectileEntity(LivingEntity entity, Level level, float damage, int volt, int wireLength) {
super(ModEntities.TASER_BULLET_PROJECTILE.get(), entity, level);
this.damage = damage;
this.volt = volt;
this.wire_length = wire_length;
this.wireLength = wireLength;
}
public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, Level world) {
@ -114,7 +110,7 @@ public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSu
public void tick() {
super.tick();
if (this.getOwner() != null && this.position().distanceTo(this.getOwner().position()) > 10 + 4 * wire_length && !stop) {
if (this.getOwner() != null && this.position().distanceTo(this.getOwner().position()) > 10 + 4 * wireLength && !stop) {
stop = true;
this.setDeltaMovement(new Vec3(0, 0, 0));
}

View file

@ -1,17 +0,0 @@
package net.mcreator.superbwarfare.init;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.enchantment.*;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraft.world.item.enchantment.Enchantment;
public class ModEnchantments {
public static final DeferredRegister<Enchantment> REGISTRY = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, ModUtils.MODID);
public static final RegistryObject<Enchantment> VOLT_OVERLOAD = REGISTRY.register("volt_overload", VoltOverload::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);
}

View file

@ -37,6 +37,7 @@ public class ModPerks {
.mobEffect(() -> MobEffects.POISON)));
public static final RegistryObject<Perk> BEAST_BULLET = AMMO_PERKS.register("beast_bullet",
() -> new AmmoPerk(new AmmoPerk.Builder("beast_bullet", Perk.Type.AMMO).bypassArmorRate(0.0f).rgb(134, 65, 14)));
public static final RegistryObject<Perk> LONGER_WIRE = AMMO_PERKS.register("longer_wire", () -> new Perk("longer_wire", Perk.Type.AMMO));
/**
* Functional Perks
@ -47,6 +48,7 @@ public class ModPerks {
public static final RegistryObject<Perk> FOURTH_TIMES_CHARM = FUNC_PERKS.register("fourth_times_charm", () -> new Perk("fourth_times_charm", Perk.Type.FUNCTIONAL));
public static final RegistryObject<Perk> SUBSISTENCE = FUNC_PERKS.register("subsistence", () -> new Perk("subsistence", Perk.Type.FUNCTIONAL));
public static final RegistryObject<Perk> FIELD_DOCTOR = FUNC_PERKS.register("field_doctor", () -> new Perk("field_doctor", Perk.Type.FUNCTIONAL));
public static final RegistryObject<Perk> SUPER_RECHARGE = FUNC_PERKS.register("super_recharge", () -> new Perk("super_recharge", Perk.Type.FUNCTIONAL));
/**
* Damage Perks
@ -58,7 +60,7 @@ public class ModPerks {
public static final RegistryObject<Perk> KILLING_TALLY = DAMAGE_PERKS.register("killing_tally", () -> new Perk("killing_tally", Perk.Type.DAMAGE));
public static final RegistryObject<Perk> HEAD_SEEKER = DAMAGE_PERKS.register("head_seeker", () -> new Perk("head_seeker", Perk.Type.DAMAGE));
public static final RegistryObject<Perk> MONSTER_HUNTER = DAMAGE_PERKS.register("monster_hunter", () -> new Perk("monster_hunter", Perk.Type.DAMAGE));
public static final RegistryObject<Perk> VOLT_OVERLOAD = DAMAGE_PERKS.register("volt_overload", () -> new Perk("volt_overload", Perk.Type.DAMAGE));
public static void registerCompatPerks() {
if (ModList.get().isLoaded(CompatHolder.DMV)) {

View file

@ -7,7 +7,6 @@ import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.EnchantmentCategoryTool;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.ItemNBTTool;
import net.mcreator.superbwarfare.tools.TooltipTool;
@ -133,19 +132,14 @@ public abstract class GunItem extends Item {
}
}
@Override
public int getEnchantmentValue(ItemStack stack) {
return 15;
}
@Override
public boolean isEnchantable(ItemStack stack) {
return true;
return false;
}
@Override
public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment) {
return enchantment.category == EnchantmentCategoryTool.GUN;
return false;
}
private void handleGunPerks(ItemStack stack) {

View file

@ -4,18 +4,21 @@ import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.client.renderer.item.TaserItemRenderer;
import net.mcreator.superbwarfare.init.ModEnchantments;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModPerks;
import net.mcreator.superbwarfare.init.ModSounds;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.AnimatedItem;
import net.mcreator.superbwarfare.item.gun.GunItem;
import net.mcreator.superbwarfare.tools.*;
import net.mcreator.superbwarfare.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.ItemNBTTool;
import net.mcreator.superbwarfare.tools.PoseTool;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.Mth;
@ -28,9 +31,10 @@ import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.*;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
@ -42,7 +46,6 @@ import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
@ -100,14 +103,13 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
transformType = type;
}
private PlayState idlePredicate(AnimationState event) {
private PlayState idlePredicate(AnimationState<TaserItem> event) {
LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return PlayState.STOP;
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
if (this.animationProcedure.equals("empty")) {
if (stack.getOrCreateTag().getInt("draw_time") < 11) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.taser.draw"));
}
@ -133,7 +135,7 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
return PlayState.STOP;
}
private PlayState procedurePredicate(AnimationState event) {
private PlayState procedurePredicate(AnimationState<TaserItem> event) {
if (transformType != null && transformType.firstPerson()) {
if (!(this.animationProcedure.equals("empty")) && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
@ -171,11 +173,6 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
return this.cache;
}
@Override
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
TooltipTool.addGunTips(list, stack);
}
public static int getAmmoCount(Player player) {
int sum = 0;
for (int i = 0; i < player.getInventory().getContainerSize(); ++i) {
@ -194,10 +191,10 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
if (entity instanceof Player player) {
stack.getOrCreateTag().putInt("max_ammo", getAmmoCount(player));
}
int charge_speed = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.SUPER_RECHARGE.get(), stack);
if (ItemNBTTool.getInt(stack, TAG_POWER, 1200) < 1200) {
ItemNBTTool.setInt(stack, TAG_POWER, Mth.clamp(ItemNBTTool.getInt(stack, TAG_POWER, 1200) + 1 + charge_speed,0,1200));
int perkLevel = PerkHelper.getItemPerkLevel(ModPerks.SUPER_RECHARGE.get(), stack);
if (ItemNBTTool.getInt(stack, TAG_POWER, 1200) < MAX_POWER_SIZE) {
ItemNBTTool.setInt(stack, TAG_POWER, Mth.clamp(ItemNBTTool.getInt(stack, TAG_POWER, 1200) + 1 + perkLevel, 0, MAX_POWER_SIZE));
}
}
@ -227,17 +224,11 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
}
@Override
public int getEnchantmentValue(ItemStack stack) {
return 10;
}
@Override
public boolean isEnchantable(ItemStack stack) {
return true;
}
@Override
public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment) {
return enchantment.category == EnchantmentCategoryTool.TASER;
public boolean canApplyPerk(Perk perk) {
return switch (perk.type) {
case AMMO -> perk == ModPerks.LONGER_WIRE.get();
case FUNCTIONAL -> perk == ModPerks.SUPER_RECHARGE.get();
case DAMAGE -> perk == ModPerks.VOLT_OVERLOAD.get();
};
}
}

View file

@ -3,7 +3,10 @@ package net.mcreator.superbwarfare.network.message;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.entity.*;
import net.mcreator.superbwarfare.event.GunEventHandler;
import net.mcreator.superbwarfare.init.*;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModPerks;
import net.mcreator.superbwarfare.init.ModSounds;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.perk.AmmoPerk;
import net.mcreator.superbwarfare.perk.Perk;
@ -27,7 +30,6 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.level.Level;
import net.minecraftforge.network.NetworkEvent;
import org.joml.Vector3d;
@ -352,8 +354,8 @@ public class FireMessage {
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.TASER_FIRE_3P.get(), SoundSource.PLAYERS, 1, 1);
}
int volt = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.VOLT_OVERLOAD.get(), stack);
int wire_length = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.LONGER_WIRE.get(), stack);
int volt = PerkHelper.getItemPerkLevel(ModPerks.VOLT_OVERLOAD.get(), stack);
int wireLength = PerkHelper.getItemPerkLevel(ModPerks.LONGER_WIRE.get(), stack);
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = stack.getOrCreateTag().getDouble("spread");
@ -361,7 +363,7 @@ public class FireMessage {
Level level = player.level();
if (!level.isClientSide()) {
TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage"), volt, wire_length);
TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage"), volt, wireLength);
taserBulletProjectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
taserBulletProjectile.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"),

View file

@ -1,15 +0,0 @@
package net.mcreator.superbwarfare.tools;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.gun.GunItem;
import net.mcreator.superbwarfare.item.gun.special.TaserItem;
import net.minecraft.world.item.enchantment.EnchantmentCategory;
public class EnchantmentCategoryTool {
public static final EnchantmentCategory TASER = EnchantmentCategory.create("superbwarfare:taser",
item -> item instanceof TaserItem);
public static final EnchantmentCategory GUN = EnchantmentCategory.create("superbwarfare:gun",
item -> item instanceof GunItem && !(item instanceof TaserItem));
public static final EnchantmentCategory CAN_RELOAD = EnchantmentCategory.create("superbwarfare:can_reload",
item -> item.getDefaultInstance().is(ModTags.Items.CAN_RELOAD));
}

View file

@ -205,6 +205,8 @@
"des.superbwarfare.blade_bullet": "Makes the target bleeding after landing a hit",
"item.superbwarfare.curse_flame_bullet": "Curse Flame Bullet",
"des.superbwarfare.curse_flame_bullet": "命中后会使目标受到咒火效果",
"item.superbwarfare.longer_wire": "Longer Wire",
"des.superbwarfare.longer_wire": "Increases the range of Taser Gun",
"item.superbwarfare.heal_clip": "Heal Clip",
"des.superbwarfare.heal_clip": "Reloading after dealing a final blow will heal you and your nearby allies",
@ -214,6 +216,8 @@
"des.superbwarfare.subsistence": "Defeating targets partially reloads the magazine from reserves",
"item.superbwarfare.field_doctor": "Field Doctor",
"des.superbwarfare.field_doctor": "腰射时发射的子弹可以治疗队友",
"item.superbwarfare.super_recharge": "Super Recharge",
"des.superbwarfare.super_recharge": "Increases the recharge speed of Taser Gun",
"item.superbwarfare.kill_clip": "Kill Clip",
"des.superbwarfare.kill_clip": "Increases the damage of weapon after dealing a final blow",
@ -225,6 +229,8 @@
"des.superbwarfare.head_seeker": "Body shots landed with this weapon increase precision damage for a short time",
"item.superbwarfare.monster_hunter": "Monster Hunter",
"des.superbwarfare.monster_hunter": "Increases the damage of weapon against monsters",
"item.superbwarfare.volt_overload": "Volt Overload",
"des.superbwarfare.volt_overload": "Increases the shock damage of Taser Gun",
"perk.superbwarfare.tips": "[Perks]",
"perk.superbwarfare.slot": "Type: ",
@ -296,13 +302,6 @@
"item.minecraft.splash_potion.effect.superbwarfare_long_shock": "Splash Potion of Shock",
"item.minecraft.lingering_potion.effect.superbwarfare_long_shock": "Lingering Potion of Shock",
"enchantment.superbwarfare.volt_overload": "Volt Overload",
"enchantment.superbwarfare.volt_overload.desc": "Increases the shock damage of TaserGun",
"enchantment.superbwarfare.super_recharge": "Super Recharge",
"enchantment.superbwarfare.super_recharge.desc": "Increases the recharge speed of TaserGun",
"enchantment.superbwarfare.longer_wire": "Longer Wire",
"enchantment.superbwarfare.longer_wire.desc": "Increases the range of TaserGun",
"des.superbwarfare.sensitivity": "Current Sensitivity of This Gun: %1$s",
"des.superbwarfare.need_bolt_action": "[ Need Bolt Action ]",

View file

@ -205,6 +205,8 @@
"des.superbwarfare.blade_bullet": "命中后会使目标流血",
"item.superbwarfare.curse_flame_bullet": "咒火弹",
"des.superbwarfare.curse_flame_bullet": "命中后会使目标受到咒火效果",
"item.superbwarfare.longer_wire": "延长导线",
"des.superbwarfare.longer_wire": "增加泰瑟枪的射程",
"item.superbwarfare.heal_clip": "治疗弹匣",
"des.superbwarfare.heal_clip": "最后一击后短时间内填装,可治疗自身和附近队友",
@ -214,6 +216,8 @@
"des.superbwarfare.subsistence": "消灭目标会使弹药从备弹中转移并填装部分弹匣",
"item.superbwarfare.field_doctor": "役医师",
"des.superbwarfare.field_doctor": "腰射时发射的子弹可以治疗队友",
"item.superbwarfare.super_recharge": "超级快充",
"des.superbwarfare.super_recharge": "增加泰瑟枪充能的速度",
"item.superbwarfare.kill_clip": "杀戮弹匣",
"des.superbwarfare.kill_clip": "完成击杀后填装可提升武器伤害",
@ -225,6 +229,8 @@
"des.superbwarfare.head_seeker": "使用此武器命中身体可在短时间内提高精准伤害",
"item.superbwarfare.monster_hunter": "怪物猎人",
"des.superbwarfare.monster_hunter": "增加武器对怪物的伤害",
"item.superbwarfare.volt_overload": "电压过载",
"des.superbwarfare.volt_overload": "增加泰瑟枪电击的伤害",
"perk.superbwarfare.tips": "[武器模组]",
"perk.superbwarfare.slot": "类型: ",
@ -296,13 +302,6 @@
"item.minecraft.splash_potion.effect.superbwarfare_long_shock": "喷溅型电击药水",
"item.minecraft.lingering_potion.effect.superbwarfare_long_shock": "滞留型电击药水",
"enchantment.superbwarfare.volt_overload": "电压过载",
"enchantment.superbwarfare.volt_overload.desc": "增加泰瑟枪电击的伤害",
"enchantment.superbwarfare.super_recharge": "超级快充",
"enchantment.superbwarfare.super_recharge.desc": "增加泰瑟枪充能的速度",
"enchantment.superbwarfare.longer_wire": "延长导线",
"enchantment.superbwarfare.longer_wire.desc": "增加泰瑟枪的射程",
"des.superbwarfare.sensitivity": "当前枪械的灵敏度为:%1$s",
"des.superbwarfare.need_bolt_action": "【需要拉栓】",