调整基础弹药数值,牛头王改为使用重型弹药

This commit is contained in:
Atsuihsio 2025-03-02 23:32:48 +08:00
parent 579aef4ace
commit 23b225e56d
45 changed files with 182 additions and 204 deletions

View file

@ -1,4 +1,4 @@
// 1.20.1 2025-02-09T16:13:02.6424176 Tags for minecraft:item mod id superbwarfare // 1.20.1 2025-03-02T22:54:17.1079906 Tags for minecraft:item mod id superbwarfare
cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json 0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json
295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json 295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json
@ -28,6 +28,7 @@ af6fd64b4a685c353f243763db268f7b2304c009 data/forge/tags/items/storage_blocks/le
144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json 144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json
96a9ddc01147520bc6f573454a329bd67e8d0962 data/superbwarfare/tags/items/gun.json 96a9ddc01147520bc6f573454a329bd67e8d0962 data/superbwarfare/tags/items/gun.json
409af265147e812b6f6558c51f1cb83b0f61b7d3 data/superbwarfare/tags/items/handgun.json 409af265147e812b6f6558c51f1cb83b0f61b7d3 data/superbwarfare/tags/items/handgun.json
0ab1b2a8f5433e0d1b03446a9d0d9428e9d64feb data/superbwarfare/tags/items/heavy_weapon.json
3cc00928c041f710b50eb1f7a817e0345f6f96b3 data/superbwarfare/tags/items/ingots/cemented_carbide.json 3cc00928c041f710b50eb1f7a817e0345f6f96b3 data/superbwarfare/tags/items/ingots/cemented_carbide.json
9b38dc57a6ea6b75f183dfe6376190aaf5b575f0 data/superbwarfare/tags/items/ingots/steel.json 9b38dc57a6ea6b75f183dfe6376190aaf5b575f0 data/superbwarfare/tags/items/ingots/steel.json
65ddb0a8a671cc65af8e3754fc23e7d24c3587b7 data/superbwarfare/tags/items/launcher.json 65ddb0a8a671cc65af8e3754fc23e7d24c3587b7 data/superbwarfare/tags/items/launcher.json
@ -38,10 +39,11 @@ a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/items/military_
aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/items/rifle.json aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/items/rifle.json
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/shotgun.json acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/shotgun.json
4aca0fa3f8b9f2a4920041e35e46dae7e93d5482 data/superbwarfare/tags/items/smg.json 4aca0fa3f8b9f2a4920041e35e46dae7e93d5482 data/superbwarfare/tags/items/smg.json
13a23684e04832bea5dfbd2c0a9d9ed52dcb3422 data/superbwarfare/tags/items/sniper_rifle.json 7a12c751d024c06b3e88657afddc84fce8e13295 data/superbwarfare/tags/items/sniper_rifle.json
30a6a2a2031c2fc53accf833c1760697462c5b33 data/superbwarfare/tags/items/storage_blocks/cemented_carbide.json 30a6a2a2031c2fc53accf833c1760697462c5b33 data/superbwarfare/tags/items/storage_blocks/cemented_carbide.json
a391df0529d05dbae8f9bc6e9ddce039b63e545a data/superbwarfare/tags/items/storage_blocks/steel.json a391df0529d05dbae8f9bc6e9ddce039b63e545a data/superbwarfare/tags/items/storage_blocks/steel.json
9af8a0147d1e920ef2a2b990bc9010367cf3b7df data/superbwarfare/tags/items/use_handgun_ammo.json 9af8a0147d1e920ef2a2b990bc9010367cf3b7df data/superbwarfare/tags/items/use_handgun_ammo.json
0ab1b2a8f5433e0d1b03446a9d0d9428e9d64feb data/superbwarfare/tags/items/use_heavy_ammo.json
2899774c6325135847a85b09121ce25587aa275e data/superbwarfare/tags/items/use_rifle_ammo.json 2899774c6325135847a85b09121ce25587aa275e data/superbwarfare/tags/items/use_rifle_ammo.json
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/use_shotgun_ammo.json acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/use_shotgun_ammo.json
13a23684e04832bea5dfbd2c0a9d9ed52dcb3422 data/superbwarfare/tags/items/use_sniper_ammo.json 7a12c751d024c06b3e88657afddc84fce8e13295 data/superbwarfare/tags/items/use_sniper_ammo.json

View file

@ -0,0 +1,5 @@
{
"values": [
"superbwarfare:ntw_20"
]
}

View file

@ -1,7 +1,6 @@
{ {
"values": [ "values": [
"superbwarfare:hunting_rifle", "superbwarfare:hunting_rifle",
"superbwarfare:ntw_20",
"superbwarfare:sentinel", "superbwarfare:sentinel",
"superbwarfare:svd", "superbwarfare:svd",
"superbwarfare:m_98b", "superbwarfare:m_98b",

View file

@ -0,0 +1,5 @@
{
"values": [
"superbwarfare:ntw_20"
]
}

View file

@ -1,7 +1,6 @@
{ {
"values": [ "values": [
"superbwarfare:hunting_rifle", "superbwarfare:hunting_rifle",
"superbwarfare:ntw_20",
"superbwarfare:sentinel", "superbwarfare:sentinel",
"superbwarfare:svd", "superbwarfare:svd",
"superbwarfare:m_98b", "superbwarfare:m_98b",

View file

@ -1,9 +1,9 @@
package com.atsuishio.superbwarfare.client.layer; package com.atsuishio.superbwarfare.client.layer;
import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.item.gun.heavy.Ntw20Item;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.atsuishio.superbwarfare.item.gun.sniper.Ntw20Item;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.OverlayTexture;

View file

@ -4,7 +4,7 @@ import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay; import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay;
import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.event.ClientEventHandler;
import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.item.gun.sniper.Ntw20Item; import com.atsuishio.superbwarfare.item.gun.heavy.Ntw20Item;
import com.atsuishio.superbwarfare.tools.GunsTool; import com.atsuishio.superbwarfare.tools.GunsTool;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
@ -89,7 +89,7 @@ public class Ntw20Model extends GeoModel<Ntw20Item> {
CrossHairOverlay.gunRot = shen.getRotZ(); CrossHairOverlay.gunRot = shen.getRotZ();
gun.setPosX(4.54f * (float) zp); gun.setPosX(4.54f * (float) zp);
gun.setPosY(-0.45f * (float) zp - (float) (0.2f * zpz)); gun.setPosY(-0.47f * (float) zp - (float) (0.2f * zpz));
gun.setPosZ(10.0f * (float) zp + (float) (0.3f * zpz)); gun.setPosZ(10.0f * (float) zp + (float) (0.3f * zpz));
gun.setRotZ((float) (0.02f * zpz)); gun.setRotZ((float) (0.02f * zpz));
gun.setScaleZ(1f - (0.8f * (float) zp)); gun.setScaleZ(1f - (0.8f * (float) zp));

View file

@ -249,6 +249,9 @@ public class AmmoBarOverlay {
if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
return "" + (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).sniperAmmo; return "" + (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).sniperAmmo;
} }
if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
return "" + (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).heavyAmmo;
}
return ""; return "";
} }
@ -286,6 +289,9 @@ public class AmmoBarOverlay {
if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
return "Sniper Ammo"; return "Sniper Ammo";
} }
if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
return "Heavy Ammo";
}
return ""; return "";
} }
} }

View file

@ -5,7 +5,7 @@ import com.atsuishio.superbwarfare.client.layer.Ntw20Layer;
import com.atsuishio.superbwarfare.client.model.item.Ntw20Model; import com.atsuishio.superbwarfare.client.model.item.Ntw20Model;
import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.event.ClientEventHandler;
import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.item.gun.sniper.Ntw20Item; import com.atsuishio.superbwarfare.item.gun.heavy.Ntw20Item;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;

View file

@ -37,6 +37,7 @@ public class AmmoCommand {
case RIFLE -> c.rifleAmmo; case RIFLE -> c.rifleAmmo;
case SHOTGUN -> c.shotgunAmmo; case SHOTGUN -> c.shotgunAmmo;
case SNIPER -> c.sniperAmmo; case SNIPER -> c.sniperAmmo;
case HEAVY -> c.heavyAmmo;
} }
).orElse(0); ).orElse(0);
context.getSource().sendSuccess(() -> Component.translatable("commands.ammo.get", Component.translatable(type.translatableKey), value), true); context.getSource().sendSuccess(() -> Component.translatable("commands.ammo.get", Component.translatable(type.translatableKey), value), true);
@ -54,6 +55,7 @@ public class AmmoCommand {
case RIFLE -> capability.rifleAmmo = value; case RIFLE -> capability.rifleAmmo = value;
case SHOTGUN -> capability.shotgunAmmo = value; case SHOTGUN -> capability.shotgunAmmo = value;
case SNIPER -> capability.sniperAmmo = value; case SNIPER -> capability.sniperAmmo = value;
case HEAVY -> capability.heavyAmmo = value;
} }
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);
}); });
@ -74,12 +76,14 @@ public class AmmoCommand {
case RIFLE -> capability.rifleAmmo += value; case RIFLE -> capability.rifleAmmo += value;
case SHOTGUN -> capability.shotgunAmmo += value; case SHOTGUN -> capability.shotgunAmmo += value;
case SNIPER -> capability.sniperAmmo += value; case SNIPER -> capability.sniperAmmo += value;
case HEAVY -> capability.heavyAmmo += value;
} }
// 迫真溢出检测 // 迫真溢出检测
if (capability.handgunAmmo < 0) capability.handgunAmmo = Integer.MAX_VALUE; if (capability.handgunAmmo < 0) capability.handgunAmmo = Integer.MAX_VALUE;
if (capability.rifleAmmo < 0) capability.rifleAmmo = Integer.MAX_VALUE; if (capability.rifleAmmo < 0) capability.rifleAmmo = Integer.MAX_VALUE;
if (capability.shotgunAmmo < 0) capability.shotgunAmmo = Integer.MAX_VALUE; if (capability.shotgunAmmo < 0) capability.shotgunAmmo = Integer.MAX_VALUE;
if (capability.sniperAmmo < 0) capability.sniperAmmo = Integer.MAX_VALUE; if (capability.sniperAmmo < 0) capability.sniperAmmo = Integer.MAX_VALUE;
if (capability.heavyAmmo < 0) capability.heavyAmmo = Integer.MAX_VALUE;
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);
}); });

View file

@ -82,9 +82,11 @@ public class ModItemTagProvider extends ItemTagsProvider {
this.tag(ModTags.Items.RIFLE).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(), this.tag(ModTags.Items.RIFLE).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(),
ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get()); ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get());
this.tag(ModTags.Items.SNIPER_RIFLE).add(ModItems.HUNTING_RIFLE.get(), ModItems.NTW_20.get(), ModItems.SENTINEL.get(), this.tag(ModTags.Items.SNIPER_RIFLE).add(ModItems.HUNTING_RIFLE.get(), ModItems.SENTINEL.get(),
ModItems.SVD.get(), ModItems.M_98B.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get()); ModItems.SVD.get(), ModItems.M_98B.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get());
this.tag(ModTags.Items.HEAVY_WEAPON).add(ModItems.NTW_20.get());
this.tag(ModTags.Items.SHOTGUN).add(ModItems.ABEKIRI.get(), ModItems.M_870.get(), ModItems.AA_12.get()); this.tag(ModTags.Items.SHOTGUN).add(ModItems.ABEKIRI.get(), ModItems.M_870.get(), ModItems.AA_12.get());
this.tag(ModTags.Items.MACHINE_GUN).add(ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.RPK.get(), ModItems.M_60.get()); this.tag(ModTags.Items.MACHINE_GUN).add(ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.RPK.get(), ModItems.M_60.get());
@ -101,9 +103,11 @@ public class ModItemTagProvider extends ItemTagsProvider {
this.tag(ModTags.Items.USE_SHOTGUN_AMMO).add(ModItems.ABEKIRI.get(), ModItems.M_870.get(), ModItems.AA_12.get()); this.tag(ModTags.Items.USE_SHOTGUN_AMMO).add(ModItems.ABEKIRI.get(), ModItems.M_870.get(), ModItems.AA_12.get());
this.tag(ModTags.Items.USE_SNIPER_AMMO).add(ModItems.HUNTING_RIFLE.get(), ModItems.NTW_20.get(), ModItems.SENTINEL.get(), this.tag(ModTags.Items.USE_SNIPER_AMMO).add(ModItems.HUNTING_RIFLE.get(), ModItems.SENTINEL.get(),
ModItems.SVD.get(), ModItems.M_98B.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get()); ModItems.SVD.get(), ModItems.M_98B.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get());
this.tag(ModTags.Items.USE_HEAVY_AMMO).add(ModItems.NTW_20.get());
this.tag(ModTags.Items.LAUNCHER).add(ModItems.M_79.get(), ModItems.RPG.get(), ModItems.JAVELIN.get(), ModItems.SECONDARY_CATACLYSM.get()); this.tag(ModTags.Items.LAUNCHER).add(ModItems.M_79.get(), ModItems.RPG.get(), ModItems.JAVELIN.get(), ModItems.SECONDARY_CATACLYSM.get());
this.tag(ModTags.Items.REVOLVER).add(ModItems.TRACHELIUM.get()); this.tag(ModTags.Items.REVOLVER).add(ModItems.TRACHELIUM.get());

View file

@ -194,7 +194,7 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity,
.multiply(0.1f, ModDamageTypes.MINE) .multiply(0.1f, ModDamageTypes.MINE)
.multiply(0.12f, ModDamageTypes.LUNGE_MINE) .multiply(0.12f, ModDamageTypes.LUNGE_MINE)
.multiply(0.22f, ModDamageTypes.CANNON_FIRE) .multiply(0.22f, ModDamageTypes.CANNON_FIRE)
.multiply(0.15f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE) .multiply(0.07f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.reduce(10); .reduce(10);
} }

View file

@ -374,7 +374,7 @@ public class ClientEventHandler {
double zoomSpread; double zoomSpread;
if (stack.is(ModTags.Items.SNIPER_RIFLE)) { if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) {
zoomSpread = 1 - (0.995 * zoomTime); zoomSpread = 1 - (0.995 * zoomTime);
} else if (stack.is(ModTags.Items.SHOTGUN)) { } else if (stack.is(ModTags.Items.SHOTGUN)) {
if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) { if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) {
@ -671,7 +671,7 @@ public class ClientEventHandler {
if (gunItem.ejectShell(stack)) { if (gunItem.ejectShell(stack)) {
if (stack.is(ModTags.Items.SHOTGUN)) { if (stack.is(ModTags.Items.SHOTGUN)) {
player.playSound(ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); player.playSound(ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1);
} else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { } else if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) {
player.playSound(ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); player.playSound(ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1);
} else { } else {
player.playSound(ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); player.playSound(ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1);

View file

@ -427,6 +427,8 @@ public class GunEventHandler {
GunsTool.reload(player, stack, GunInfo.Type.HANDGUN, true); GunsTool.reload(player, stack, GunInfo.Type.HANDGUN, true);
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
GunsTool.reload(player, stack, GunInfo.Type.RIFLE, gunItem.bulletInBarrel(stack)); GunsTool.reload(player, stack, GunInfo.Type.RIFLE, gunItem.bulletInBarrel(stack));
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
GunsTool.reload(player, stack, GunInfo.Type.HEAVY, gunItem.bulletInBarrel(stack));
} }
} }
stack.getOrCreateTag().putBoolean("is_normal_reloading", false); stack.getOrCreateTag().putBoolean("is_normal_reloading", false);
@ -450,6 +452,8 @@ public class GunEventHandler {
GunsTool.reload(player, stack, GunInfo.Type.HANDGUN); GunsTool.reload(player, stack, GunInfo.Type.HANDGUN);
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
GunsTool.reload(player, stack, GunInfo.Type.RIFLE); GunsTool.reload(player, stack, GunInfo.Type.RIFLE);
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
GunsTool.reload(player, stack, GunInfo.Type.HEAVY);
} else if (stack.getItem() == ModItems.TASER.get()) { } else if (stack.getItem() == ModItems.TASER.get()) {
GunsTool.setGunIntTag(stack, "Ammo", 1); GunsTool.setGunIntTag(stack, "Ammo", 1);
player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.TASER_ELECTRODE.get(), 1, player.inventoryMenu.getCraftSlots()); player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.TASER_ELECTRODE.get(), 1, player.inventoryMenu.getCraftSlots());
@ -590,6 +594,8 @@ public class GunEventHandler {
tag.putBoolean("force_stage3_start", true); tag.putBoolean("force_stage3_start", true);
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) { } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) {
tag.putBoolean("force_stage3_start", true); tag.putBoolean("force_stage3_start", true);
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO) && capability.heavyAmmo == 0) {
tag.putBoolean("force_stage3_start", true);
} else if (stack.is(ModTags.Items.LAUNCHER) && GunsTool.getGunIntTag(stack, "MaxAmmo") == 0) { } else if (stack.is(ModTags.Items.LAUNCHER) && GunsTool.getGunIntTag(stack, "MaxAmmo") == 0) {
tag.putBoolean("force_stage3_start", true); tag.putBoolean("force_stage3_start", true);
} else if (stack.is(ModItems.SECONDARY_CATACLYSM.get()) && GunsTool.getGunIntTag(stack, "Ammo", 0) >= GunsTool.getGunIntTag(stack, "Magazine", 0)) { } else if (stack.is(ModItems.SECONDARY_CATACLYSM.get()) && GunsTool.getGunIntTag(stack, "Ammo", 0) >= GunsTool.getGunIntTag(stack, "Magazine", 0)) {
@ -670,6 +676,8 @@ public class GunEventHandler {
tag.putInt("reload_stage", 3); tag.putInt("reload_stage", 3);
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) { } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) {
tag.putInt("reload_stage", 3); tag.putInt("reload_stage", 3);
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO) && capability.heavyAmmo == 0) {
tag.putInt("reload_stage", 3);
} }
} }
@ -734,6 +742,11 @@ public class GunEventHandler {
capability.rifleAmmo -= 1; capability.rifleAmmo -= 1;
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);
}); });
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.heavyAmmo -= 1;
capability.syncPlayerVariables(player);
});
} else if (stack.getItem() == ModItems.SECONDARY_CATACLYSM.get()) { } else if (stack.getItem() == ModItems.SECONDARY_CATACLYSM.get()) {
player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.GRENADE_40MM.get(), 1, player.inventoryMenu.getCraftSlots()); player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.GRENADE_40MM.get(), 1, player.inventoryMenu.getCraftSlots());
} }
@ -777,7 +790,7 @@ public class GunEventHandler {
ModUtils.queueServerWork((int) (GunsTool.getGunIntTag(stack, "PrepareEmptyTime", 0) / 2 + 3 + 1.5 * shooterHeight), () -> { ModUtils.queueServerWork((int) (GunsTool.getGunIntTag(stack, "PrepareEmptyTime", 0) / 2 + 3 + 1.5 * shooterHeight), () -> {
if (stack.is(ModTags.Items.SHOTGUN)) { if (stack.is(ModTags.Items.SHOTGUN)) {
SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1);
} else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { } else if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) {
SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1);
} else { } else {
SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1);
@ -807,7 +820,7 @@ public class GunEventHandler {
ModUtils.queueServerWork((int) (8 + 1.5 * shooterHeight), () -> { ModUtils.queueServerWork((int) (8 + 1.5 * shooterHeight), () -> {
if (stack.is(ModTags.Items.SHOTGUN)) { if (stack.is(ModTags.Items.SHOTGUN)) {
SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1);
} else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { } else if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) {
SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1);
} else { } else {
SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1);

View file

@ -146,14 +146,16 @@ public class LivingEventHandler {
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) { if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) {
damage = reduceDamageByDistance(amount, distance, 0.015, 50); damage = reduceDamageByDistance(amount, distance, 0.015, 30);
} else { } else {
damage = reduceDamageByDistance(amount, distance, 0.03, 25); damage = reduceDamageByDistance(amount, distance, 0.05, 15);
} }
} else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
damage = reduceDamageByDistance(amount, distance, 0.001, 150); damage = reduceDamageByDistance(amount, distance, 0.001, 150);
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
damage = reduceDamageByDistance(amount, distance, 0.0007, 250);
} else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) {
damage = reduceDamageByDistance(amount, distance, 0.02, 50); damage = reduceDamageByDistance(amount, distance, 0.03, 40);
} else if (stack.is(ModTags.Items.SMG)) { } else if (stack.is(ModTags.Items.SMG)) {
damage = reduceDamageByDistance(amount, distance, 0.02, 50); damage = reduceDamageByDistance(amount, distance, 0.02, 50);
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) || stack.getItem() == ModItems.BOCEK.get()) { } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) || stack.getItem() == ModItems.BOCEK.get()) {
@ -706,7 +708,7 @@ public class LivingEventHandler {
if (!entity.level().getLevelData().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && entity instanceof Player player) { if (!entity.level().getLevelData().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && entity instanceof Player player) {
var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()); var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables());
boolean drop = cap.rifleAmmo + cap.handgunAmmo + cap.shotgunAmmo + cap.sniperAmmo > 0; boolean drop = cap.rifleAmmo + cap.handgunAmmo + cap.shotgunAmmo + cap.sniperAmmo + cap.heavyAmmo > 0;
if (drop) { if (drop) {
ItemStack stack = new ItemStack(ModItems.AMMO_BOX.get()); ItemStack stack = new ItemStack(ModItems.AMMO_BOX.get());
@ -721,6 +723,8 @@ public class LivingEventHandler {
capability.shotgunAmmo = 0; capability.shotgunAmmo = 0;
tag.putInt("SniperAmmo", cap.sniperAmmo); tag.putInt("SniperAmmo", cap.sniperAmmo);
capability.sniperAmmo = 0; capability.sniperAmmo = 0;
tag.putInt("HeavyAmmo", cap.heavyAmmo);
capability.heavyAmmo = 0;
tag.putBoolean("IsDrop", true); tag.putBoolean("IsDrop", true);
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);
}); });

View file

@ -302,6 +302,9 @@ public class PlayerEventHandler {
if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && cap.rifleAmmo > 0) { if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && cap.rifleAmmo > 0) {
GunsTool.reload(player, stack, GunInfo.Type.RIFLE); GunsTool.reload(player, stack, GunInfo.Type.RIFLE);
} }
if (stack.is(ModTags.Items.USE_HEAVY_AMMO) && cap.heavyAmmo > 0) {
GunsTool.reload(player, stack, GunInfo.Type.HEAVY);
}
if (stack.getItem() == ModItems.TASER.get() && GunsTool.getGunIntTag(stack, "MaxAmmo") > 0 && GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) { if (stack.getItem() == ModItems.TASER.get() && GunsTool.getGunIntTag(stack, "MaxAmmo") > 0 && GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) {
GunsTool.setGunIntTag(stack, "Ammo", 1); GunsTool.setGunIntTag(stack, "Ammo", 1);

View file

@ -7,6 +7,7 @@ import com.atsuishio.superbwarfare.item.common.BlueprintItem;
import com.atsuishio.superbwarfare.item.common.MaterialPack; import com.atsuishio.superbwarfare.item.common.MaterialPack;
import com.atsuishio.superbwarfare.item.common.ammo.*; import com.atsuishio.superbwarfare.item.common.ammo.*;
import com.atsuishio.superbwarfare.item.gun.handgun.*; import com.atsuishio.superbwarfare.item.gun.handgun.*;
import com.atsuishio.superbwarfare.item.gun.heavy.Ntw20Item;
import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem; import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem;
import com.atsuishio.superbwarfare.item.gun.launcher.M79Item; import com.atsuishio.superbwarfare.item.gun.launcher.M79Item;
import com.atsuishio.superbwarfare.item.gun.launcher.RpgItem; import com.atsuishio.superbwarfare.item.gun.launcher.RpgItem;
@ -85,10 +86,11 @@ public class ModItems {
*/ */
public static final DeferredRegister<Item> AMMO = DeferredRegister.create(ForgeRegistries.ITEMS, ModUtils.MODID); public static final DeferredRegister<Item> AMMO = DeferredRegister.create(ForgeRegistries.ITEMS, ModUtils.MODID);
public static final RegistryObject<Item> HANDGUN_AMMO = AMMO.register("handgun_ammo", () -> new AmmoSupplierItem(GunInfo.Type.HANDGUN, 5, new Item.Properties())); public static final RegistryObject<Item> HANDGUN_AMMO = AMMO.register("handgun_ammo", () -> new AmmoSupplierItem(GunInfo.Type.HANDGUN, 1, new Item.Properties()));
public static final RegistryObject<Item> RIFLE_AMMO = AMMO.register("rifle_ammo", () -> new AmmoSupplierItem(GunInfo.Type.RIFLE, 5, new Item.Properties())); public static final RegistryObject<Item> RIFLE_AMMO = AMMO.register("rifle_ammo", () -> new AmmoSupplierItem(GunInfo.Type.RIFLE, 1, new Item.Properties()));
public static final RegistryObject<Item> SNIPER_AMMO = AMMO.register("sniper_ammo", () -> new AmmoSupplierItem(GunInfo.Type.SNIPER, 2, new Item.Properties())); public static final RegistryObject<Item> SNIPER_AMMO = AMMO.register("sniper_ammo", () -> new AmmoSupplierItem(GunInfo.Type.SNIPER, 1, new Item.Properties()));
public static final RegistryObject<Item> SHOTGUN_AMMO = AMMO.register("shotgun_ammo", () -> new AmmoSupplierItem(GunInfo.Type.SHOTGUN, 2, new Item.Properties())); public static final RegistryObject<Item> SHOTGUN_AMMO = AMMO.register("shotgun_ammo", () -> new AmmoSupplierItem(GunInfo.Type.SHOTGUN, 1, new Item.Properties()));
public static final RegistryObject<Item> HEAVY_AMMO = AMMO.register("heavy_ammo", () -> new AmmoSupplierItem(GunInfo.Type.HEAVY, 1, new Item.Properties()));
public static final RegistryObject<Item> HANDGUN_AMMO_BOX = AMMO.register("handgun_ammo_box", HandgunAmmoBox::new); public static final RegistryObject<Item> HANDGUN_AMMO_BOX = AMMO.register("handgun_ammo_box", HandgunAmmoBox::new);
public static final RegistryObject<Item> RIFLE_AMMO_BOX = AMMO.register("rifle_ammo_box", RifleAmmoBox::new); public static final RegistryObject<Item> RIFLE_AMMO_BOX = AMMO.register("rifle_ammo_box", RifleAmmoBox::new);
public static final RegistryObject<Item> SNIPER_AMMO_BOX = AMMO.register("sniper_ammo_box", SniperAmmoBox::new); public static final RegistryObject<Item> SNIPER_AMMO_BOX = AMMO.register("sniper_ammo_box", SniperAmmoBox::new);
@ -108,7 +110,6 @@ public class ModItems {
public static final RegistryObject<Item> RGO_GRENADE = AMMO.register("rgo_grenade", RgoGrenade::new); public static final RegistryObject<Item> RGO_GRENADE = AMMO.register("rgo_grenade", RgoGrenade::new);
public static final RegistryObject<Item> CLAYMORE_MINE = AMMO.register("claymore_mine", ClaymoreMine::new); public static final RegistryObject<Item> CLAYMORE_MINE = AMMO.register("claymore_mine", ClaymoreMine::new);
public static final RegistryObject<Item> C4_BOMB = AMMO.register("c4_bomb", C4Bomb::new); public static final RegistryObject<Item> C4_BOMB = AMMO.register("c4_bomb", C4Bomb::new);
public static final RegistryObject<Item> HEAVY_AMMO = AMMO.register("heavy_ammo", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> SMALL_SHELL = AMMO.register("small_shell", () -> new Item(new Item.Properties())); public static final RegistryObject<Item> SMALL_SHELL = AMMO.register("small_shell", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> ROCKET_70 = AMMO.register("rocket_70", () -> new Item(new Item.Properties())); public static final RegistryObject<Item> ROCKET_70 = AMMO.register("rocket_70", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> WIRE_GUIDE_MISSILE = AMMO.register("wire_guide_missile", () -> new Item(new Item.Properties())); public static final RegistryObject<Item> WIRE_GUIDE_MISSILE = AMMO.register("wire_guide_missile", () -> new Item(new Item.Properties()));

View file

@ -3,6 +3,7 @@ package com.atsuishio.superbwarfare.init;
import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.item.ArmorPlate; import com.atsuishio.superbwarfare.item.ArmorPlate;
import com.atsuishio.superbwarfare.item.gun.handgun.*; import com.atsuishio.superbwarfare.item.gun.handgun.*;
import com.atsuishio.superbwarfare.item.gun.heavy.Ntw20Item;
import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem; import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem;
import com.atsuishio.superbwarfare.item.gun.launcher.M79Item; import com.atsuishio.superbwarfare.item.gun.launcher.M79Item;
import com.atsuishio.superbwarfare.item.gun.launcher.RpgItem; import com.atsuishio.superbwarfare.item.gun.launcher.RpgItem;

View file

@ -18,6 +18,7 @@ public class ModTags {
public static final TagKey<Item> USE_RIFLE_AMMO = tag("use_rifle_ammo"); public static final TagKey<Item> USE_RIFLE_AMMO = tag("use_rifle_ammo");
public static final TagKey<Item> USE_SHOTGUN_AMMO = tag("use_shotgun_ammo"); public static final TagKey<Item> USE_SHOTGUN_AMMO = tag("use_shotgun_ammo");
public static final TagKey<Item> USE_SNIPER_AMMO = tag("use_sniper_ammo"); public static final TagKey<Item> USE_SNIPER_AMMO = tag("use_sniper_ammo");
public static final TagKey<Item> USE_HEAVY_AMMO = tag("use_heavy_ammo");
public static final TagKey<Item> SMG = tag("smg"); public static final TagKey<Item> SMG = tag("smg");
public static final TagKey<Item> HANDGUN = tag("handgun"); public static final TagKey<Item> HANDGUN = tag("handgun");
@ -25,6 +26,8 @@ public class ModTags {
public static final TagKey<Item> SNIPER_RIFLE = tag("sniper_rifle"); public static final TagKey<Item> SNIPER_RIFLE = tag("sniper_rifle");
public static final TagKey<Item> MACHINE_GUN = tag("machine_gun"); public static final TagKey<Item> MACHINE_GUN = tag("machine_gun");
public static final TagKey<Item> SHOTGUN = tag("shotgun"); public static final TagKey<Item> SHOTGUN = tag("shotgun");
public static final TagKey<Item> HEAVY_WEAPON = tag("heavy_weapon");
public static final TagKey<Item> LAUNCHER = tag("launcher"); public static final TagKey<Item> LAUNCHER = tag("launcher");
public static final TagKey<Item> REVOLVER = tag("revolver"); public static final TagKey<Item> REVOLVER = tag("revolver");

View file

@ -50,29 +50,29 @@ public class ModVillagers {
new ItemStack(Items.EMERALD, 2), 16, 5, 0.05f)); new ItemStack(Items.EMERALD, 2), 16, 5, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1), trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1),
new ItemStack(ModItems.HANDGUN_AMMO.get(), 4), 16, 1, 0.05f)); new ItemStack(ModItems.HANDGUN_AMMO.get(), 20), 16, 1, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1), trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1),
new ItemStack(ModItems.RIFLE_AMMO.get(), 3), 16, 1, 0.05f)); new ItemStack(ModItems.RIFLE_AMMO.get(), 15), 16, 1, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1), trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1),
new ItemStack(ModItems.SNIPER_AMMO.get(), 2), 16, 1, 0.05f)); new ItemStack(ModItems.SNIPER_AMMO.get(), 8), 16, 1, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1), trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1),
new ItemStack(ModItems.SHOTGUN_AMMO.get(), 2), 16, 1, 0.05f)); new ItemStack(ModItems.SHOTGUN_AMMO.get(), 8), 16, 1, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1), trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1),
new ItemStack(ModItems.HEAVY_AMMO.get(), 2), 32, 1, 0.05f)); new ItemStack(ModItems.HEAVY_AMMO.get(), 6), 32, 1, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1), trades.get(1).add(new BasicItemListing(new ItemStack(Items.EMERALD, 1),
new ItemStack(ModItems.SMALL_SHELL.get(), 1), 32, 1, 0.05f)); new ItemStack(ModItems.SMALL_SHELL.get(), 4), 32, 1, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.HANDGUN_AMMO.get(), 8), trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.HANDGUN_AMMO.get(), 40),
new ItemStack(Items.EMERALD, 1), 32, 2, 0.05f)); new ItemStack(Items.EMERALD, 1), 32, 2, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.RIFLE_AMMO.get(), 6), trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.RIFLE_AMMO.get(), 30),
new ItemStack(Items.EMERALD, 1), 32, 2, 0.05f)); new ItemStack(Items.EMERALD, 1), 32, 2, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.SNIPER_AMMO.get(), 4), trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.SNIPER_AMMO.get(), 16),
new ItemStack(Items.EMERALD, 1), 32, 2, 0.05f)); new ItemStack(Items.EMERALD, 1), 32, 2, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.SHOTGUN_AMMO.get(), 4), trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.SHOTGUN_AMMO.get(), 16),
new ItemStack(Items.EMERALD, 1), 32, 2, 0.05f)); new ItemStack(Items.EMERALD, 1), 32, 2, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.HEAVY_AMMO.get(), 4), trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.HEAVY_AMMO.get(), 12),
new ItemStack(Items.EMERALD, 1), 64, 2, 0.05f)); new ItemStack(Items.EMERALD, 1), 64, 2, 0.05f));
trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.SMALL_SHELL.get(), 2), trades.get(1).add(new BasicItemListing(new ItemStack(ModItems.SMALL_SHELL.get(), 8),
new ItemStack(Items.EMERALD, 1), 64, 2, 0.05f)); new ItemStack(Items.EMERALD, 1), 64, 2, 0.05f));
// 等级 2 交易 // 等级 2 交易
@ -230,6 +230,8 @@ public class ModVillagers {
new ItemStack(ModItems.AP_5_INCHES.get(), 1), 8, 10, 0.05f)); new ItemStack(ModItems.AP_5_INCHES.get(), 1), 8, 10, 0.05f));
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 24), trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 24),
new ItemStack(ModItems.JAVELIN_MISSILE.get(), 1), 8, 10, 0.05f)); new ItemStack(ModItems.JAVELIN_MISSILE.get(), 1), 8, 10, 0.05f));
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 24),
new ItemStack(ModItems.WIRE_GUIDE_MISSILE.get(), 1), 8, 10, 0.05f));
trades.get(5).add(new BasicItemListing(new ItemStack(ModItems.HE_5_INCHES.get(), 1), trades.get(5).add(new BasicItemListing(new ItemStack(ModItems.HE_5_INCHES.get(), 1),
new ItemStack(Items.EMERALD, 8), 32, 4, 0.05f)); new ItemStack(Items.EMERALD, 8), 32, 4, 0.05f));
@ -237,6 +239,8 @@ public class ModVillagers {
new ItemStack(Items.EMERALD, 7), 32, 4, 0.05f)); new ItemStack(Items.EMERALD, 7), 32, 4, 0.05f));
trades.get(5).add(new BasicItemListing(new ItemStack(ModItems.JAVELIN_MISSILE.get(), 1), trades.get(5).add(new BasicItemListing(new ItemStack(ModItems.JAVELIN_MISSILE.get(), 1),
new ItemStack(Items.EMERALD, 12), 32, 4, 0.05f)); new ItemStack(Items.EMERALD, 12), 32, 4, 0.05f));
trades.get(5).add(new BasicItemListing(new ItemStack(ModItems.WIRE_GUIDE_MISSILE.get(), 1),
new ItemStack(Items.EMERALD, 12), 32, 4, 0.05f));
} }
} }

View file

@ -58,6 +58,11 @@ public class AmmoBox extends Item {
tag.putInt("SniperAmmo", 0); tag.putInt("SniperAmmo", 0);
} }
if (type == 0 || type == 5) {
capability.heavyAmmo = cap.heavyAmmo + tag.getInt("HeavyAmmo");
tag.putInt("HeavyAmmo", 0);
}
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);
if (!level.isClientSide()) { if (!level.isClientSide()) {
@ -88,6 +93,11 @@ public class AmmoBox extends Item {
capability.sniperAmmo = 0; capability.sniperAmmo = 0;
} }
if (type == 0 || type == 5) {
tag.putInt("HeavyAmmo", tag.getInt("HeavyAmmo") + cap.heavyAmmo);
capability.heavyAmmo = 0;
}
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);
if (!level.isClientSide()) { if (!level.isClientSide()) {
@ -103,7 +113,7 @@ public class AmmoBox extends Item {
if (entity instanceof Player player && player.isCrouching()) { if (entity instanceof Player player && player.isCrouching()) {
int type = stack.getOrCreateTag().getInt("Type"); int type = stack.getOrCreateTag().getInt("Type");
++type; ++type;
type %= 5; type %= 6;
switch (type) { switch (type) {
case 0 -> case 0 ->
@ -116,6 +126,8 @@ public class AmmoBox extends Item {
player.displayClientMessage(Component.translatable("des.superbwarfare.ammo_box.type.shotgun").withStyle(ChatFormatting.RED), true); player.displayClientMessage(Component.translatable("des.superbwarfare.ammo_box.type.shotgun").withStyle(ChatFormatting.RED), true);
case 4 -> case 4 ->
player.displayClientMessage(Component.translatable("des.superbwarfare.ammo_box.type.sniper").withStyle(ChatFormatting.GOLD), true); player.displayClientMessage(Component.translatable("des.superbwarfare.ammo_box.type.sniper").withStyle(ChatFormatting.GOLD), true);
case 5 ->
player.displayClientMessage(Component.translatable("des.superbwarfare.ammo_box.type.heavy").withStyle(ChatFormatting.LIGHT_PURPLE), true);
} }
entity.playSound(ModSounds.FIRE_RATE.get(), 1f, 1f); entity.playSound(ModSounds.FIRE_RATE.get(), 1f, 1f);
@ -145,6 +157,10 @@ public class AmmoBox extends Item {
tooltip.add(Component.translatable("des.superbwarfare.ammo_box.sniper").withStyle(ChatFormatting.GOLD) tooltip.add(Component.translatable("des.superbwarfare.ammo_box.sniper").withStyle(ChatFormatting.GOLD)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(FormatTool.format0D(ItemNBTTool.getInt(stack, "SniperAmmo", 0)) + ((type == 0 || type == 4) ? " ←-" : " ")).withStyle(ChatFormatting.BOLD))); .append(Component.literal(FormatTool.format0D(ItemNBTTool.getInt(stack, "SniperAmmo", 0)) + ((type == 0 || type == 4) ? " ←-" : " ")).withStyle(ChatFormatting.BOLD)));
tooltip.add(Component.translatable("des.superbwarfare.ammo_box.heavy").withStyle(ChatFormatting.LIGHT_PURPLE)
.append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(FormatTool.format0D(ItemNBTTool.getInt(stack, "HeavyAmmo", 0)) + ((type == 0 || type == 5) ? " ←-" : " ")).withStyle(ChatFormatting.BOLD)));
} }
} }

View file

@ -36,12 +36,14 @@ public class AmmoSupplierItem extends Item {
case RIFLE -> capability.rifleAmmo; case RIFLE -> capability.rifleAmmo;
case SHOTGUN -> capability.shotgunAmmo; case SHOTGUN -> capability.shotgunAmmo;
case SNIPER -> capability.sniperAmmo; case SNIPER -> capability.sniperAmmo;
case HEAVY -> capability.heavyAmmo;
} + ammoToAdd * count; } + ammoToAdd * count;
switch (this.type) { switch (this.type) {
case HANDGUN -> capability.handgunAmmo = newAmmoCount; case HANDGUN -> capability.handgunAmmo = newAmmoCount;
case RIFLE -> capability.rifleAmmo = newAmmoCount; case RIFLE -> capability.rifleAmmo = newAmmoCount;
case SHOTGUN -> capability.shotgunAmmo = newAmmoCount; case SHOTGUN -> capability.shotgunAmmo = newAmmoCount;
case SNIPER -> capability.sniperAmmo = newAmmoCount; case SNIPER -> capability.sniperAmmo = newAmmoCount;
case HEAVY -> capability.heavyAmmo = newAmmoCount;
} }
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);
}); });

View file

@ -88,7 +88,10 @@ public abstract class GunItem extends Item {
capability.handgunAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).handgunAmmo + count; capability.handgunAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).handgunAmmo + count;
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
capability.rifleAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).rifleAmmo + count; capability.rifleAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).rifleAmmo + count;
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
capability.rifleAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).heavyAmmo + count;
} }
capability.syncPlayerVariables(entity); capability.syncPlayerVariables(entity);
}); });

View file

@ -1,4 +1,4 @@
package com.atsuishio.superbwarfare.item.gun.sniper; package com.atsuishio.superbwarfare.item.gun.heavy;
import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.client.PoseTool; import com.atsuishio.superbwarfare.client.PoseTool;

View file

@ -73,6 +73,7 @@ public class ModVariables {
clone.handgunAmmo = original.handgunAmmo; clone.handgunAmmo = original.handgunAmmo;
clone.shotgunAmmo = original.shotgunAmmo; clone.shotgunAmmo = original.shotgunAmmo;
clone.sniperAmmo = original.sniperAmmo; clone.sniperAmmo = original.sniperAmmo;
clone.heavyAmmo = original.heavyAmmo;
clone.bowPullHold = original.bowPullHold; clone.bowPullHold = original.bowPullHold;
clone.bowPull = original.bowPull; clone.bowPull = original.bowPull;
clone.playerDoubleJump = original.playerDoubleJump; clone.playerDoubleJump = original.playerDoubleJump;
@ -213,6 +214,7 @@ public class ModVariables {
public int handgunAmmo = 0; public int handgunAmmo = 0;
public int shotgunAmmo = 0; public int shotgunAmmo = 0;
public int sniperAmmo = 0; public int sniperAmmo = 0;
public int heavyAmmo = 0;
public boolean bowPullHold = false; public boolean bowPullHold = false;
public boolean bowPull = false; public boolean bowPull = false;
public boolean playerDoubleJump = false; public boolean playerDoubleJump = false;
@ -237,6 +239,7 @@ public class ModVariables {
nbt.putInt("HandgunAmmo", handgunAmmo); nbt.putInt("HandgunAmmo", handgunAmmo);
nbt.putInt("ShotgunAmmo", shotgunAmmo); nbt.putInt("ShotgunAmmo", shotgunAmmo);
nbt.putInt("SniperAmmo", sniperAmmo); nbt.putInt("SniperAmmo", sniperAmmo);
nbt.putInt("HeavyAmmo", heavyAmmo);
nbt.putBoolean("BowPullHold", bowPullHold); nbt.putBoolean("BowPullHold", bowPullHold);
nbt.putBoolean("BowPull", bowPull); nbt.putBoolean("BowPull", bowPull);
nbt.putBoolean("DoubleJump", playerDoubleJump); nbt.putBoolean("DoubleJump", playerDoubleJump);
@ -260,6 +263,7 @@ public class ModVariables {
handgunAmmo = nbt.getInt("HandgunAmmo"); handgunAmmo = nbt.getInt("HandgunAmmo");
shotgunAmmo = nbt.getInt("ShotgunAmmo"); shotgunAmmo = nbt.getInt("ShotgunAmmo");
sniperAmmo = nbt.getInt("SniperAmmo"); sniperAmmo = nbt.getInt("SniperAmmo");
heavyAmmo = nbt.getInt("HeavyAmmo");
bowPullHold = nbt.getBoolean("BowPullHold"); bowPullHold = nbt.getBoolean("BowPullHold");
bowPull = nbt.getBoolean("BowPull"); bowPull = nbt.getBoolean("BowPull");
playerDoubleJump = nbt.getBoolean("DoubleJump"); playerDoubleJump = nbt.getBoolean("DoubleJump");
@ -313,6 +317,7 @@ public class ModVariables {
variables.handgunAmmo = message.data.handgunAmmo; variables.handgunAmmo = message.data.handgunAmmo;
variables.shotgunAmmo = message.data.shotgunAmmo; variables.shotgunAmmo = message.data.shotgunAmmo;
variables.sniperAmmo = message.data.sniperAmmo; variables.sniperAmmo = message.data.sniperAmmo;
variables.heavyAmmo = message.data.heavyAmmo;
variables.bowPullHold = message.data.bowPullHold; variables.bowPullHold = message.data.bowPullHold;
variables.bowPull = message.data.bowPull; variables.bowPull = message.data.bowPull;
variables.playerDoubleJump = message.data.playerDoubleJump; variables.playerDoubleJump = message.data.playerDoubleJump;

View file

@ -74,6 +74,8 @@ public class ReloadMessage {
return; return;
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) { } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) {
return; return;
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO) && capability.heavyAmmo == 0) {
return;
} else if (stack.getItem() == ModItems.TASER.get() && GunsTool.getGunIntTag(stack, "MaxAmmo") == 0) { } else if (stack.getItem() == ModItems.TASER.get() && GunsTool.getGunIntTag(stack, "MaxAmmo") == 0) {
return; return;
} else if (stack.is(ModTags.Items.LAUNCHER) && GunsTool.getGunIntTag(stack, "MaxAmmo") == 0) { } else if (stack.is(ModTags.Items.LAUNCHER) && GunsTool.getGunIntTag(stack, "MaxAmmo") == 0) {

View file

@ -5,7 +5,8 @@ public class GunInfo {
HANDGUN("item.superbwarfare.ammo.handgun"), HANDGUN("item.superbwarfare.ammo.handgun"),
RIFLE("item.superbwarfare.ammo.rifle"), RIFLE("item.superbwarfare.ammo.rifle"),
SHOTGUN("item.superbwarfare.ammo.shotgun"), SHOTGUN("item.superbwarfare.ammo.shotgun"),
SNIPER("item.superbwarfare.ammo.sniper"); SNIPER("item.superbwarfare.ammo.sniper"),
HEAVY("item.superbwarfare.ammo.heavy");
public final String translatableKey; public final String translatableKey;
Type(String translatableKey) { Type(String translatableKey) {

View file

@ -119,6 +119,7 @@ public class GunsTool {
case HANDGUN -> c.handgunAmmo; case HANDGUN -> c.handgunAmmo;
case SHOTGUN -> c.shotgunAmmo; case SHOTGUN -> c.shotgunAmmo;
case SNIPER -> c.sniperAmmo; case SNIPER -> c.sniperAmmo;
case HEAVY -> c.heavyAmmo;
}).orElse(0); }).orElse(0);
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
@ -128,6 +129,7 @@ public class GunsTool {
case HANDGUN -> capability.handgunAmmo = newAmmoCount; case HANDGUN -> capability.handgunAmmo = newAmmoCount;
case SHOTGUN -> capability.shotgunAmmo = newAmmoCount; case SHOTGUN -> capability.shotgunAmmo = newAmmoCount;
case SNIPER -> capability.sniperAmmo = newAmmoCount; case SNIPER -> capability.sniperAmmo = newAmmoCount;
case HEAVY -> capability.heavyAmmo = newAmmoCount;
} }
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);

View file

@ -9,6 +9,7 @@
"item.superbwarfare.ammo.handgun": "Handgun", "item.superbwarfare.ammo.handgun": "Handgun",
"item.superbwarfare.ammo.rifle": "Rifle", "item.superbwarfare.ammo.rifle": "Rifle",
"item.superbwarfare.ammo.sniper": "Sniper", "item.superbwarfare.ammo.sniper": "Sniper",
"item.superbwarfare.ammo.heavy": "Heavy Weapon",
"item.superbwarfare.sentinel": "SENTINEL", "item.superbwarfare.sentinel": "SENTINEL",
"item.superbwarfare.rpk": "RPK", "item.superbwarfare.rpk": "RPK",
@ -62,11 +63,13 @@
"des.superbwarfare.ammo_box.handgun": "Storage Handgun Ammo: ", "des.superbwarfare.ammo_box.handgun": "Storage Handgun Ammo: ",
"des.superbwarfare.ammo_box.shotgun": "Storage Shotgun Ammo: ", "des.superbwarfare.ammo_box.shotgun": "Storage Shotgun Ammo: ",
"des.superbwarfare.ammo_box.sniper": "Storage Sniper Ammo: ", "des.superbwarfare.ammo_box.sniper": "Storage Sniper Ammo: ",
"des.superbwarfare.ammo_box.heavy": "Storage Heavy Ammo: ",
"des.superbwarfare.ammo_box.type.all": "All Ammo Chosen", "des.superbwarfare.ammo_box.type.all": "All Ammo Chosen",
"des.superbwarfare.ammo_box.type.rifle": "Rifle Ammo Chosen", "des.superbwarfare.ammo_box.type.rifle": "Rifle Ammo Chosen",
"des.superbwarfare.ammo_box.type.handgun": "Handgun Ammo Chosen", "des.superbwarfare.ammo_box.type.handgun": "Handgun Ammo Chosen",
"des.superbwarfare.ammo_box.type.shotgun": "Shotgun Ammo Chosen", "des.superbwarfare.ammo_box.type.shotgun": "Shotgun Ammo Chosen",
"des.superbwarfare.ammo_box.type.sniper": "Sniper Ammo Chosen", "des.superbwarfare.ammo_box.type.sniper": "Sniper Ammo Chosen",
"des.superbwarfare.ammo_box.type.heavy": "Sniper Heavy Chosen",
"des.superbwarfare.ammo_box": "When sneaking, left-click to switch ammo types, right-click to store that type of ammo. Right-click with out sneaking to take out the corresponding type of ammo ", "des.superbwarfare.ammo_box": "When sneaking, left-click to switch ammo types, right-click to store that type of ammo. Right-click with out sneaking to take out the corresponding type of ammo ",
"item.superbwarfare.vector_blueprint": "VECTOR Blueprint", "item.superbwarfare.vector_blueprint": "VECTOR Blueprint",
@ -135,25 +138,25 @@
"item.superbwarfare.potion_mortar_shell": "Potion Mortar Shell", "item.superbwarfare.potion_mortar_shell": "Potion Mortar Shell",
"item.superbwarfare.grenade_40mm": "40mm Gun Grenade", "item.superbwarfare.grenade_40mm": "40mm Gun Grenade",
"item.superbwarfare.rocket": "RPG Rocket", "item.superbwarfare.rocket": "RPG Rocket",
"item.superbwarfare.sniper_ammo": "Sniper Ammo *2", "item.superbwarfare.sniper_ammo": "Sniper Ammo",
"item.superbwarfare.sniper_ammo_box": "Sniper Ammo Box", "item.superbwarfare.sniper_ammo_box": "Sniper Ammo Box",
"des.superbwarfare.sniper_ammo_box": "Sniper Ammo *12", "des.superbwarfare.sniper_ammo_box": "Sniper Ammo *12",
"des.superbwarfare.sniper_ammo_box.use": "Sniper Ammo +12", "des.superbwarfare.sniper_ammo_box.use": "Sniper Ammo +12",
"item.superbwarfare.rifle_ammo": "Rifle Ammo *5", "item.superbwarfare.rifle_ammo": "Rifle Ammo",
"item.superbwarfare.rifle_ammo_box": "Rifle Ammo Box", "item.superbwarfare.rifle_ammo_box": "Rifle Ammo Box",
"des.superbwarfare.rifle_ammo_box": "Rifle Ammo *30", "des.superbwarfare.rifle_ammo_box": "Rifle Ammo *30",
"item.superbwarfare.shotgun_ammo": "Shotgun Ammo *2", "item.superbwarfare.shotgun_ammo": "Shotgun Ammo",
"item.superbwarfare.shotgun_ammo_box": "Shotgun Ammo Box", "item.superbwarfare.shotgun_ammo_box": "Shotgun Ammo Box",
"des.superbwarfare.shotgun_ammo_box": "Shotgun Ammo *12", "des.superbwarfare.shotgun_ammo_box": "Shotgun Ammo *12",
"item.superbwarfare.handgun_ammo": "Handgun Ammo *5", "item.superbwarfare.handgun_ammo": "Handgun Ammo",
"item.superbwarfare.handgun_ammo_box": "Handgun Ammo Box", "item.superbwarfare.handgun_ammo_box": "Handgun Ammo Box",
"des.superbwarfare.handgun_ammo_box": "Handgun Ammo *30", "des.superbwarfare.handgun_ammo_box": "Handgun Ammo *30",
"item.superbwarfare.heavy_ammo": "Heavy Ammo",
"item.superbwarfare.creative_ammo_box": "Creative Ammo Box", "item.superbwarfare.creative_ammo_box": "Creative Ammo Box",
"item.superbwarfare.ammo_supplier.supply": "%1$s Ammo +%2$s", "item.superbwarfare.ammo_supplier.supply": "%1$s Ammo +%2$s",
"item.superbwarfare.he_5_inches": "HE Shell", "item.superbwarfare.he_5_inches": "HE Shell",
"item.superbwarfare.ap_5_inches": "AP Shell", "item.superbwarfare.ap_5_inches": "AP Shell",
"item.superbwarfare.javelin_missile": "Javelin Missile", "item.superbwarfare.javelin_missile": "Javelin Missile",
"item.superbwarfare.heavy_ammo": "Heavy Ammo",
"item.superbwarfare.lunge_mine": "Lunge Mine", "item.superbwarfare.lunge_mine": "Lunge Mine",
"item.superbwarfare.rocket_70": "70mm Rocket", "item.superbwarfare.rocket_70": "70mm Rocket",
"item.superbwarfare.small_shell": "Small Caliber Shells", "item.superbwarfare.small_shell": "Small Caliber Shells",

View file

@ -9,6 +9,7 @@
"item.superbwarfare.ammo.handgun": "手枪", "item.superbwarfare.ammo.handgun": "手枪",
"item.superbwarfare.ammo.rifle": "步枪", "item.superbwarfare.ammo.rifle": "步枪",
"item.superbwarfare.ammo.sniper": "狙击枪", "item.superbwarfare.ammo.sniper": "狙击枪",
"item.superbwarfare.ammo.heavy": "重型武器",
"item.superbwarfare.sentinel": "哨兵狙击步枪", "item.superbwarfare.sentinel": "哨兵狙击步枪",
"item.superbwarfare.rpk": "RPK轻机枪", "item.superbwarfare.rpk": "RPK轻机枪",
@ -62,11 +63,13 @@
"des.superbwarfare.ammo_box.handgun": "已存储的手枪弹药: ", "des.superbwarfare.ammo_box.handgun": "已存储的手枪弹药: ",
"des.superbwarfare.ammo_box.shotgun": "已存储的霰弹弹药: ", "des.superbwarfare.ammo_box.shotgun": "已存储的霰弹弹药: ",
"des.superbwarfare.ammo_box.sniper": "已存储的狙击弹药: ", "des.superbwarfare.ammo_box.sniper": "已存储的狙击弹药: ",
"des.superbwarfare.ammo_box.heavy": "已存储的重型弹药: ",
"des.superbwarfare.ammo_box.type.all": "已选择所有弹药种类", "des.superbwarfare.ammo_box.type.all": "已选择所有弹药种类",
"des.superbwarfare.ammo_box.type.rifle": "已选择步枪弹药", "des.superbwarfare.ammo_box.type.rifle": "已选择步枪弹药",
"des.superbwarfare.ammo_box.type.handgun": "已选择手枪弹药", "des.superbwarfare.ammo_box.type.handgun": "已选择手枪弹药",
"des.superbwarfare.ammo_box.type.shotgun": "已选择霰弹弹药", "des.superbwarfare.ammo_box.type.shotgun": "已选择霰弹弹药",
"des.superbwarfare.ammo_box.type.sniper": "已选择狙击弹药", "des.superbwarfare.ammo_box.type.sniper": "已选择狙击弹药",
"des.superbwarfare.ammo_box.type.heavy": "已选择重型弹药",
"des.superbwarfare.ammo_box": "潜行时,左击选择弹药类型,右击存入该类型的弹药,非潜行时右击取出对应类型的弹药", "des.superbwarfare.ammo_box": "潜行时,左击选择弹药类型,右击存入该类型的弹药,非潜行时右击取出对应类型的弹药",
"item.superbwarfare.vector_blueprint": "短剑冲锋枪蓝图", "item.superbwarfare.vector_blueprint": "短剑冲锋枪蓝图",
@ -135,25 +138,25 @@
"item.superbwarfare.potion_mortar_shell": "药水炮弹", "item.superbwarfare.potion_mortar_shell": "药水炮弹",
"item.superbwarfare.grenade_40mm": "40mm枪榴弹", "item.superbwarfare.grenade_40mm": "40mm枪榴弹",
"item.superbwarfare.rocket": "RPG火箭", "item.superbwarfare.rocket": "RPG火箭",
"item.superbwarfare.sniper_ammo": "狙击枪弹药 *2", "item.superbwarfare.sniper_ammo": "狙击枪弹药",
"item.superbwarfare.sniper_ammo_box": "狙击枪弹药盒", "item.superbwarfare.sniper_ammo_box": "狙击枪弹药盒",
"des.superbwarfare.sniper_ammo_box": "狙击枪弹药 *12", "des.superbwarfare.sniper_ammo_box": "狙击枪弹药 *12",
"des.superbwarfare.sniper_ammo_box.use": "狙击枪弹药 +12", "des.superbwarfare.sniper_ammo_box.use": "狙击枪弹药 +12",
"item.superbwarfare.rifle_ammo": "步枪弹药 *5", "item.superbwarfare.rifle_ammo": "步枪弹药",
"item.superbwarfare.rifle_ammo_box": "步枪弹药盒", "item.superbwarfare.rifle_ammo_box": "步枪弹药盒",
"des.superbwarfare.rifle_ammo_box": "步枪弹药 *30", "des.superbwarfare.rifle_ammo_box": "步枪弹药 *30",
"item.superbwarfare.shotgun_ammo": "霰弹枪弹药 *2", "item.superbwarfare.shotgun_ammo": "霰弹枪弹药",
"item.superbwarfare.shotgun_ammo_box": "霰弹枪弹药盒", "item.superbwarfare.shotgun_ammo_box": "霰弹枪弹药盒",
"des.superbwarfare.shotgun_ammo_box": "霰弹枪弹药 *12", "des.superbwarfare.shotgun_ammo_box": "霰弹枪弹药 *12",
"item.superbwarfare.handgun_ammo": "手枪弹药 *5", "item.superbwarfare.handgun_ammo": "手枪弹药",
"item.superbwarfare.handgun_ammo_box": "手枪弹药盒", "item.superbwarfare.handgun_ammo_box": "手枪弹药盒",
"des.superbwarfare.handgun_ammo_box": "手枪弹药 *30", "des.superbwarfare.handgun_ammo_box": "手枪弹药 *30",
"item.superbwarfare.heavy_ammo": "重型弹药",
"item.superbwarfare.creative_ammo_box": "创造弹药盒", "item.superbwarfare.creative_ammo_box": "创造弹药盒",
"item.superbwarfare.ammo_supplier.supply": "%1$s弹药 +%2$s", "item.superbwarfare.ammo_supplier.supply": "%1$s弹药 +%2$s",
"item.superbwarfare.he_5_inches": "高爆弹", "item.superbwarfare.he_5_inches": "高爆弹",
"item.superbwarfare.ap_5_inches": "穿甲弹", "item.superbwarfare.ap_5_inches": "穿甲弹",
"item.superbwarfare.javelin_missile": "标枪导弹", "item.superbwarfare.javelin_missile": "标枪导弹",
"item.superbwarfare.heavy_ammo": "重型弹药",
"item.superbwarfare.lunge_mine": "突刺爆雷", "item.superbwarfare.lunge_mine": "突刺爆雷",
"item.superbwarfare.rocket_70": "70mm火箭弹", "item.superbwarfare.rocket_70": "70mm火箭弹",
"item.superbwarfare.small_shell": "小口径炮弹", "item.superbwarfare.small_shell": "小口径炮弹",
@ -461,8 +464,8 @@
"tips.superbwarfare.drone.warning": "警告!", "tips.superbwarfare.drone.warning": "警告!",
"tips.superbwarfare.shoot.rings": "环", "tips.superbwarfare.shoot.rings": "环",
"tips.superbwarfare.annihilator.energy_not_enough": "能量不足", "tips.superbwarfare.annihilator.energy_not_enough": "能量不足",
"tips.superbwarfare.target.down": "目标倒下 %1$s", "tips.superbwarfare.target.down": "击倒目标 %1$s",
"tips.superbwarfare.target.damage": "伤害:%1$s 距离:%2$s", "tips.superbwarfare.target.damage": "伤害:%1$s 距离:%2$s M",
"tips.superbwarfare.mortar.range": "射程:", "tips.superbwarfare.mortar.range": "射程:",
"tips.superbwarfare.mortar.yaw": "水平朝向:", "tips.superbwarfare.mortar.yaw": "水平朝向:",
"tips.superbwarfare.mortar.pitch": "俯仰角度:", "tips.superbwarfare.mortar.pitch": "俯仰角度:",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 B

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 B

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 583 B

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 426 B

View file

@ -361,56 +361,56 @@
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:handgun_ammo", "name": "superbwarfare:handgun_ammo_box",
"weight": 12, "weight": 12,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 4, "min": 1,
"max": 10 "max": 2
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:rifle_ammo", "name": "superbwarfare:rifle_ammo_box",
"weight": 20, "weight": 20,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 4, "min": 1,
"max": 8 "max": 2
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:sniper_ammo", "name": "superbwarfare:sniper_ammo_box",
"weight": 10, "weight": 10,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 2, "min": 1,
"max": 5 "max": 2
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:shotgun_ammo", "name": "superbwarfare:shotgun_ammo_box",
"weight": 17, "weight": 17,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 2, "min": 1,
"max": 6 "max": 2
} }
} }
] ]

View file

@ -333,56 +333,56 @@
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:handgun_ammo", "name": "superbwarfare:handgun_ammo_box",
"weight": 12, "weight": 12,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 16, "min": 2,
"max": 40 "max": 4
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:rifle_ammo", "name": "superbwarfare:rifle_ammo_box",
"weight": 20, "weight": 20,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 16, "min": 2,
"max": 32 "max": 4
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:sniper_ammo", "name": "superbwarfare:sniper_ammo_box",
"weight": 10, "weight": 10,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 8, "min": 2,
"max": 20 "max": 4
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:shotgun_ammo", "name": "superbwarfare:shotgun_ammo_box",
"weight": 17, "weight": 17,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 8, "min": 2,
"max": 24 "max": 4
} }
} }
] ]

View file

@ -487,56 +487,56 @@
"entries": [ "entries": [
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:handgun_ammo", "name": "superbwarfare:handgun_ammo_box",
"weight": 12, "weight": 12,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 8, "min": 1,
"max": 20 "max": 3
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:rifle_ammo", "name": "superbwarfare:rifle_ammo_box",
"weight": 20, "weight": 20,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 8, "min": 1,
"max": 16 "max": 3
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:sniper_ammo", "name": "superbwarfare:sniper_ammo_box",
"weight": 10, "weight": 10,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 4, "min": 1,
"max": 10 "max": 3
} }
} }
] ]
}, },
{ {
"type": "minecraft:item", "type": "minecraft:item",
"name": "superbwarfare:shotgun_ammo", "name": "superbwarfare:shotgun_ammo_box",
"weight": 17, "weight": 17,
"functions": [ "functions": [
{ {
"function": "set_count", "function": "set_count",
"count": { "count": {
"min": 4, "min": 1,
"max": 12 "max": 3
} }
} }
] ]

View file

@ -1,28 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "superbwarfare:handgun_ammo"
},
{
"item": "superbwarfare:handgun_ammo"
},
{
"item": "superbwarfare:handgun_ammo"
},
{
"item": "superbwarfare:handgun_ammo"
},
{
"item": "superbwarfare:handgun_ammo"
},
{
"item": "superbwarfare:handgun_ammo"
}
],
"result": {
"item": "superbwarfare:handgun_ammo_box",
"count": 1
}
}

View file

@ -22,6 +22,6 @@
}, },
"result": { "result": {
"item": "superbwarfare:handgun_ammo", "item": "superbwarfare:handgun_ammo",
"count": 16 "count": 90
} }
} }

View file

@ -1,28 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "superbwarfare:rifle_ammo"
},
{
"item": "superbwarfare:rifle_ammo"
},
{
"item": "superbwarfare:rifle_ammo"
},
{
"item": "superbwarfare:rifle_ammo"
},
{
"item": "superbwarfare:rifle_ammo"
},
{
"item": "superbwarfare:rifle_ammo"
}
],
"result": {
"item": "superbwarfare:rifle_ammo_box",
"count": 1
}
}

View file

@ -22,6 +22,6 @@
}, },
"result": { "result": {
"item": "superbwarfare:rifle_ammo", "item": "superbwarfare:rifle_ammo",
"count": 12 "count": 60
} }
} }

View file

@ -1,28 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "superbwarfare:shotgun_ammo"
},
{
"item": "superbwarfare:shotgun_ammo"
},
{
"item": "superbwarfare:shotgun_ammo"
},
{
"item": "superbwarfare:shotgun_ammo"
},
{
"item": "superbwarfare:shotgun_ammo"
},
{
"item": "superbwarfare:shotgun_ammo"
}
],
"result": {
"item": "superbwarfare:shotgun_ammo_box",
"count": 1
}
}

View file

@ -22,6 +22,6 @@
}, },
"result": { "result": {
"item": "superbwarfare:shotgun_ammo", "item": "superbwarfare:shotgun_ammo",
"count": 8 "count": 24
} }
} }

View file

@ -1,28 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "superbwarfare:sniper_ammo"
},
{
"item": "superbwarfare:sniper_ammo"
},
{
"item": "superbwarfare:sniper_ammo"
},
{
"item": "superbwarfare:sniper_ammo"
},
{
"item": "superbwarfare:sniper_ammo"
},
{
"item": "superbwarfare:sniper_ammo"
}
],
"result": {
"item": "superbwarfare:sniper_ammo_box",
"count": 1
}
}

View file

@ -22,6 +22,6 @@
}, },
"result": { "result": {
"item": "superbwarfare:sniper_ammo", "item": "superbwarfare:sniper_ammo",
"count": 8 "count": 20
} }
} }