清理tag,翻新AK12换弹动画,修复雷达在瓦尔基里结构上不起作用的问题
This commit is contained in:
parent
a24c966b57
commit
aa9f9caed3
61 changed files with 1251 additions and 997 deletions
|
@ -317,7 +317,7 @@ public class ClickHandler {
|
||||||
player.playSound(ModSounds.TRIGGER_CLICK.get(), 1, 1);
|
player.playSound(ModSounds.TRIGGER_CLICK.get(), 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gunItem.useBackpackAmmo(stack) && gunItem.getAmmoCount(stack) <= 0 && stack.getOrCreateTag().getInt("ReloadTime") == 0) {
|
if (!gunItem.useBackpackAmmo(stack) && GunsTool.getGunIntTag(stack, "Ammo", 0) <= 0 && stack.getOrCreateTag().getInt("ReloadTime") == 0) {
|
||||||
if (ReloadConfig.LEFT_CLICK_RELOAD.get()) {
|
if (ReloadConfig.LEFT_CLICK_RELOAD.get()) {
|
||||||
ModUtils.PACKET_HANDLER.sendToServer(new ReloadMessage(0));
|
ModUtils.PACKET_HANDLER.sendToServer(new ReloadMessage(0));
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,12 @@ package com.atsuishio.superbwarfare.client.screens;
|
||||||
import com.atsuishio.superbwarfare.block.entity.FuMO25BlockEntity;
|
import com.atsuishio.superbwarfare.block.entity.FuMO25BlockEntity;
|
||||||
import com.atsuishio.superbwarfare.menu.FuMO25Menu;
|
import com.atsuishio.superbwarfare.menu.FuMO25Menu;
|
||||||
import com.atsuishio.superbwarfare.tools.SeekTool;
|
import com.atsuishio.superbwarfare.tools.SeekTool;
|
||||||
|
import net.minecraft.client.Camera;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.event.TickEvent;
|
import net.minecraftforge.event.TickEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
@ -27,14 +29,18 @@ public class FuMO25ScreenHelper {
|
||||||
public static void onClientTick(TickEvent.ClientTickEvent event) {
|
public static void onClientTick(TickEvent.ClientTickEvent event) {
|
||||||
if (event.side != LogicalSide.CLIENT) return;
|
if (event.side != LogicalSide.CLIENT) return;
|
||||||
if (event.phase != TickEvent.Phase.END) return;
|
if (event.phase != TickEvent.Phase.END) return;
|
||||||
Player player = Minecraft.getInstance().player;
|
Minecraft mc = Minecraft.getInstance();
|
||||||
|
LocalPlayer player = mc.player;
|
||||||
|
Camera camera = mc.gameRenderer.getMainCamera();
|
||||||
|
Vec3 cameraPos = camera.getPosition();
|
||||||
|
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
var menu = player.containerMenu;
|
var menu = player.containerMenu;
|
||||||
if (!(menu instanceof FuMO25Menu fuMO25Menu)) return;
|
if (!(menu instanceof FuMO25Menu fuMO25Menu)) return;
|
||||||
if (pos == null) return;
|
if (pos == null) return;
|
||||||
|
|
||||||
if (pos.distToCenterSqr(player.getOnPos().getX(), player.getOnPos().getY(), player.getOnPos().getZ()) > TOLERANCE_DISTANCE * TOLERANCE_DISTANCE) {
|
if (pos.distToCenterSqr(cameraPos) > TOLERANCE_DISTANCE * TOLERANCE_DISTANCE) {
|
||||||
pos = player.getOnPos();
|
pos = BlockPos.containing(cameraPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fuMO25Menu.getEnergy() <= 0) {
|
if (fuMO25Menu.getEnergy() <= 0) {
|
||||||
|
|
|
@ -70,10 +70,10 @@ public abstract class GunItem extends Item {
|
||||||
handleGunPerks(stack);
|
handleGunPerks(stack);
|
||||||
handleGunAttachment(stack);
|
handleGunAttachment(stack);
|
||||||
|
|
||||||
if ((gunItem.bulletInBarrel(stack) && gunItem.getAmmoCount(stack) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + 1)
|
if ((gunItem.bulletInBarrel(stack) && GunsTool.getGunIntTag(stack, "Ammo", 0) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + 1)
|
||||||
|| (!gunItem.bulletInBarrel(stack) && gunItem.getAmmoCount(stack) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag"))
|
|| (!gunItem.bulletInBarrel(stack) && GunsTool.getGunIntTag(stack, "Ammo", 0) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag"))
|
||||||
) {
|
) {
|
||||||
int count = gunItem.getAmmoCount(stack) - GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") - (gunItem.bulletInBarrel(stack) ? 1 : 0);
|
int count = GunsTool.getGunIntTag(stack, "Ammo", 0) - GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") - (gunItem.bulletInBarrel(stack) ? 1 : 0);
|
||||||
entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||||
|
|
||||||
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
|
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
|
||||||
|
@ -247,10 +247,6 @@ public abstract class GunItem extends Item {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAmmoCount(ItemStack stack) {
|
|
||||||
return GunsTool.getGunIntTag(stack, "Ammo", 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -294,4 +290,16 @@ public abstract class GunItem extends Item {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean burst(ItemStack stack) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,4 +167,19 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean burst(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -175,4 +175,14 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -158,4 +158,9 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -343,4 +343,9 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean canCustomStock(ItemStack stack) {
|
public boolean canCustomStock(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -159,4 +159,9 @@ public class DevotionItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -183,4 +183,9 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -160,4 +160,14 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -205,6 +205,11 @@ public class AK12Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk);
|
return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isMagazineReload(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -254,4 +259,14 @@ public class AK12Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -268,4 +268,14 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -270,4 +270,14 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -269,4 +269,14 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -175,4 +175,9 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isIterativeReload(ItemStack stack) {
|
public boolean isIterativeReload(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -268,4 +268,14 @@ public class Mk14Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -266,4 +266,14 @@ public class Qbz95Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -168,4 +168,9 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -192,4 +192,14 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -153,4 +153,9 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,4 +182,9 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isIterativeReload(ItemStack stack) {
|
public boolean isIterativeReload(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -244,4 +244,19 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean burst(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean auto(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -134,4 +134,9 @@ public class HuntingRifleItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isMagazineReload(ItemStack stack) {
|
public boolean isMagazineReload(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -182,4 +182,9 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isIterativeReload(ItemStack stack) {
|
public boolean isIterativeReload(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -165,4 +165,9 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean bulletInBarrel(ItemStack stack) {
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -177,4 +177,9 @@ public class MosinNagantItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isIterativeReload(ItemStack stack) {
|
public boolean isIterativeReload(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -166,4 +166,9 @@ public class Ntw20Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean bulletInBarrel(ItemStack stack) {
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -248,4 +248,9 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean bulletInBarrel(ItemStack stack) {
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -153,4 +153,9 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean ejectShell(ItemStack stack) {
|
public boolean ejectShell(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean semi(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -2,7 +2,7 @@ package com.atsuishio.superbwarfare.network.message;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.init.ModItems;
|
import com.atsuishio.superbwarfare.init.ModItems;
|
||||||
import com.atsuishio.superbwarfare.init.ModSounds;
|
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||||
import com.atsuishio.superbwarfare.init.ModTags;
|
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
|
@ -54,93 +54,92 @@ public class FireModeMessage {
|
||||||
|
|
||||||
public static void changeFireMode(Player player) {
|
public static void changeFireMode(Player player) {
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
if (!stack.is(ModTags.Items.GUN)) return;
|
if (stack.getItem() instanceof GunItem gunItem) {
|
||||||
|
CompoundTag data = stack.getOrCreateTag().getCompound("GunData");
|
||||||
|
int fireMode = data.getInt("FireMode");
|
||||||
|
|
||||||
CompoundTag data = stack.getOrCreateTag().getCompound("GunData");
|
CompoundTag tag = stack.getOrCreateTag();
|
||||||
int fireMode = data.getInt("FireMode");
|
|
||||||
|
|
||||||
CompoundTag tag = stack.getOrCreateTag();
|
if (fireMode == 0) {
|
||||||
|
if (gunItem.burst(stack)) {
|
||||||
if (fireMode == 0) {
|
GunsTool.setGunIntTag(stack, "FireMode", 1);
|
||||||
if (GunsTool.getGunBooleanTag(stack, "Burst", false)) {
|
playChangeModeSound(player);
|
||||||
GunsTool.setGunIntTag(stack, "FireMode", 1);
|
return;
|
||||||
playChangeModeSound(player);
|
}
|
||||||
return;
|
if (gunItem.auto(stack)) {
|
||||||
|
GunsTool.setGunIntTag(stack, "FireMode", 2);
|
||||||
|
playChangeModeSound(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (GunsTool.getGunBooleanTag(stack, "Auto", false)) {
|
|
||||||
GunsTool.setGunIntTag(stack, "FireMode", 2);
|
|
||||||
playChangeModeSound(player);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fireMode == 1) {
|
if (fireMode == 1) {
|
||||||
if (GunsTool.getGunBooleanTag(stack, "Auto", false)) {
|
if (gunItem.auto(stack)) {
|
||||||
GunsTool.setGunIntTag(stack, "FireMode", 2);
|
GunsTool.setGunIntTag(stack, "FireMode", 2);
|
||||||
playChangeModeSound(player);
|
playChangeModeSound(player);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
if (gunItem.semi(stack)) {
|
||||||
|
GunsTool.setGunIntTag(stack, "FireMode", 0);
|
||||||
|
playChangeModeSound(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (GunsTool.getGunBooleanTag(stack, "Semi", false)) {
|
|
||||||
GunsTool.setGunIntTag(stack, "FireMode", 0);
|
if (fireMode == 2) {
|
||||||
playChangeModeSound(player);
|
if (gunItem.semi(stack)) {
|
||||||
return;
|
GunsTool.setGunIntTag(stack, "FireMode", 0);
|
||||||
|
playChangeModeSound(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (gunItem.burst(stack)) {
|
||||||
|
GunsTool.setGunIntTag(stack, "FireMode", 1);
|
||||||
|
playChangeModeSound(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (fireMode == 2) {
|
if (stack.getItem() == ModItems.SENTINEL.get()
|
||||||
if (GunsTool.getGunBooleanTag(stack, "Semi", false)) {
|
&& !player.isSpectator()
|
||||||
GunsTool.setGunIntTag(stack, "FireMode", 0);
|
&& !(player.getCooldowns().isOnCooldown(stack.getItem()))
|
||||||
playChangeModeSound(player);
|
&& GunsTool.getGunIntTag(stack, "ReloadTime") == 0
|
||||||
return;
|
&& !stack.getOrCreateTag().getBoolean("sentinel_is_charging")) {
|
||||||
}
|
|
||||||
if (GunsTool.getGunBooleanTag(stack, "Burst", false)) {
|
|
||||||
GunsTool.setGunIntTag(stack, "FireMode", 1);
|
|
||||||
playChangeModeSound(player);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stack.getItem() == ModItems.SENTINEL.get()
|
for (var cell : player.getInventory().items) {
|
||||||
&& !player.isSpectator()
|
if (cell.is(ModItems.CELL.get())) {
|
||||||
&& !(player.getCooldowns().isOnCooldown(stack.getItem()))
|
AtomicBoolean flag = new AtomicBoolean(false);
|
||||||
&& GunsTool.getGunIntTag(stack, "ReloadTime") == 0
|
cell.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
||||||
&& !stack.getOrCreateTag().getBoolean("sentinel_is_charging")) {
|
iEnergyStorage -> flag.set(iEnergyStorage.getEnergyStored() >= 0)
|
||||||
|
);
|
||||||
|
|
||||||
for (var cell : player.getInventory().items) {
|
if (flag.get()) {
|
||||||
if (cell.is(ModItems.CELL.get())) {
|
tag.putBoolean("start_sentinel_charge", true);
|
||||||
AtomicBoolean flag = new AtomicBoolean(false);
|
}
|
||||||
cell.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
|
||||||
iEnergyStorage -> flag.set(iEnergyStorage.getEnergyStored() >= 0)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (flag.get()) {
|
|
||||||
tag.putBoolean("start_sentinel_charge", true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (stack.getItem() == ModItems.JAVELIN.get()) {
|
if (stack.getItem() == ModItems.JAVELIN.get()) {
|
||||||
tag.putBoolean("TopMode", !tag.getBoolean("TopMode"));
|
tag.putBoolean("TopMode", !tag.getBoolean("TopMode"));
|
||||||
if (player instanceof ServerPlayer serverPlayer) {
|
if (player instanceof ServerPlayer serverPlayer) {
|
||||||
serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(ModSounds.CANNON_ZOOM_OUT.get()),
|
serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(ModSounds.CANNON_ZOOM_OUT.get()),
|
||||||
SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 1f, 1f, serverPlayer.level().random.nextLong()));
|
SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 1f, 1f, serverPlayer.level().random.nextLong()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stack.getItem() == ModItems.TRACHELIUM.get() && !GunsTool.getGunBooleanTag(stack, "NeedBoltAction", false)) {
|
||||||
|
if (!tag.getBoolean("DA")) {
|
||||||
|
tag.putBoolean("DA", true);
|
||||||
|
player.displayClientMessage(Component.translatable("des.superbwarfare.revolver.sa").withStyle(ChatFormatting.BOLD), true);
|
||||||
|
} else {
|
||||||
|
tag.putBoolean("DA", false);
|
||||||
|
player.displayClientMessage(Component.translatable("des.superbwarfare.revolver.da").withStyle(ChatFormatting.BOLD), true);
|
||||||
|
}
|
||||||
|
if (!tag.getBoolean("canImmediatelyShoot")) {
|
||||||
|
GunsTool.setGunBooleanTag(stack, "NeedBoltAction", true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack.getItem() == ModItems.TRACHELIUM.get() && !GunsTool.getGunBooleanTag(stack, "NeedBoltAction", false)) {
|
|
||||||
if (!tag.getBoolean("DA")) {
|
|
||||||
tag.putBoolean("DA", true);
|
|
||||||
player.displayClientMessage(Component.translatable("des.superbwarfare.revolver.sa").withStyle(ChatFormatting.BOLD), true);
|
|
||||||
} else {
|
|
||||||
tag.putBoolean("DA", false);
|
|
||||||
player.displayClientMessage(Component.translatable("des.superbwarfare.revolver.da").withStyle(ChatFormatting.BOLD), true);
|
|
||||||
}
|
|
||||||
if (!tag.getBoolean("canImmediatelyShoot")) {
|
|
||||||
GunsTool.setGunBooleanTag(stack, "NeedBoltAction", true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void playChangeModeSound(Player player) {
|
private static void playChangeModeSound(Player player) {
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class ReloadMessage {
|
||||||
|
|
||||||
boolean canSingleReload = gunItem.isIterativeReload(stack);
|
boolean canSingleReload = gunItem.isIterativeReload(stack);
|
||||||
boolean canReload = gunItem.isMagazineReload(stack) && !gunItem.isClipReload(stack);
|
boolean canReload = gunItem.isMagazineReload(stack) && !gunItem.isClipReload(stack);
|
||||||
boolean clipLoad = gunItem.getAmmoCount(stack) == 0 && gunItem.isClipReload(stack);
|
boolean clipLoad = GunsTool.getGunIntTag(stack, "Ammo", 0) == 0 && gunItem.isClipReload(stack);
|
||||||
|
|
||||||
// 检查备弹
|
// 检查备弹
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -96,12 +96,26 @@ public class ReloadMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canReload || clipLoad) {
|
if (canReload || clipLoad) {
|
||||||
tag.putBoolean("start_reload", true);
|
int magazine = GunsTool.getGunIntTag(stack, "Magazine", 0);
|
||||||
|
|
||||||
|
if (gunItem.isOpenBolt(stack)) {
|
||||||
|
if (gunItem.bulletInBarrel(stack)) {
|
||||||
|
if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag") + 1) {
|
||||||
|
tag.putBoolean("start_reload", true);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag")) {
|
||||||
|
tag.putBoolean("start_reload", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag")) {
|
||||||
|
tag.putBoolean("start_reload", true);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canSingleReload) {
|
if (canSingleReload) {
|
||||||
if (gunItem.getAmmoCount(stack) < GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag")) {
|
if (GunsTool.getGunIntTag(stack, "Ammo", 0) < GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag")) {
|
||||||
tag.putBoolean("start_single_reload", true);
|
tag.putBoolean("start_single_reload", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ public class GunsTool {
|
||||||
if (!(stack.getItem() instanceof GunItem gunItem)) return;
|
if (!(stack.getItem() instanceof GunItem gunItem)) return;
|
||||||
|
|
||||||
int mag = GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag");
|
int mag = GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag");
|
||||||
int ammo = gunItem.getAmmoCount(stack);
|
int ammo = GunsTool.getGunIntTag(stack, "Ammo", 0);
|
||||||
int ammoToAdd = mag - ammo + (extraOne ? 1 : 0);
|
int ammoToAdd = mag - ammo + (extraOne ? 1 : 0);
|
||||||
|
|
||||||
// 空仓换弹的栓动武器应该在换弹后取消待上膛标记
|
// 空仓换弹的栓动武器应该在换弹后取消待上膛标记
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -9,8 +9,6 @@
|
||||||
"ProjectileAmount": 12,
|
"ProjectileAmount": 12,
|
||||||
"Weight": 7,
|
"Weight": 7,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 64,
|
"NormalReloadTime": 64,
|
||||||
"EmptyReloadTime": 85,
|
"EmptyReloadTime": 85,
|
||||||
"BypassesArmor": 0.05,
|
"BypassesArmor": 0.05,
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
"Magazine": 2,
|
"Magazine": 2,
|
||||||
"ProjectileAmount": 12,
|
"ProjectileAmount": 12,
|
||||||
"Weight": 1,
|
"Weight": 1,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"NormalReloadTime": 66,
|
"NormalReloadTime": 66,
|
||||||
"EmptyReloadTime": 83,
|
"EmptyReloadTime": 83,
|
||||||
"BypassesArmor": 0.01,
|
"BypassesArmor": 0.01,
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
"Magazine": 30,
|
"Magazine": 30,
|
||||||
"Weight": 4,
|
"Weight": 4,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 52,
|
"NormalReloadTime": 52,
|
||||||
"EmptyReloadTime": 58,
|
"EmptyReloadTime": 58,
|
||||||
"BypassesArmor": 0.23,
|
"BypassesArmor": 0.23,
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
"Magazine": 30,
|
"Magazine": 30,
|
||||||
"Weight": 5,
|
"Weight": 5,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 52,
|
"NormalReloadTime": 52,
|
||||||
"EmptyReloadTime": 65,
|
"EmptyReloadTime": 65,
|
||||||
"BypassesArmor": 0.2,
|
"BypassesArmor": 0.2,
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
"Magazine": 55,
|
"Magazine": 55,
|
||||||
"Weight": 6,
|
"Weight": 6,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 73,
|
"NormalReloadTime": 73,
|
||||||
"EmptyReloadTime": 95,
|
"EmptyReloadTime": 95,
|
||||||
"BypassesArmor": 0.25,
|
"BypassesArmor": 0.25,
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
"Velocity": 17,
|
"Velocity": 17,
|
||||||
"Magazine": 17,
|
"Magazine": 17,
|
||||||
"Weight": 1,
|
"Weight": 1,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"NormalReloadTime": 30,
|
"NormalReloadTime": 30,
|
||||||
"EmptyReloadTime": 35,
|
"EmptyReloadTime": 35,
|
||||||
"BypassesArmor": 0.15,
|
"BypassesArmor": 0.15,
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
"Magazine": 17,
|
"Magazine": 17,
|
||||||
"Weight": 1,
|
"Weight": 1,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 30,
|
"NormalReloadTime": 30,
|
||||||
"EmptyReloadTime": 35,
|
"EmptyReloadTime": 35,
|
||||||
"BypassesArmor": 0.15,
|
"BypassesArmor": 0.15,
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
"Magazine": 30,
|
"Magazine": 30,
|
||||||
"Weight": 4,
|
"Weight": 4,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 56,
|
"NormalReloadTime": 56,
|
||||||
"EmptyReloadTime": 64,
|
"EmptyReloadTime": 64,
|
||||||
"BypassesArmor": 0.25,
|
"BypassesArmor": 0.25,
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
"Velocity": 38,
|
"Velocity": 38,
|
||||||
"Magazine": 1,
|
"Magazine": 1,
|
||||||
"Weight": 5,
|
"Weight": 5,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"EmptyReloadTime": 64,
|
"EmptyReloadTime": 64,
|
||||||
"BypassesArmor": 0.7,
|
"BypassesArmor": 0.7,
|
||||||
"SoundRadius": 20
|
"SoundRadius": 20
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
"BoltActionTime": 22,
|
"BoltActionTime": 22,
|
||||||
"Weight": 5,
|
"Weight": 5,
|
||||||
"FireMode": 0,
|
"FireMode": 0,
|
||||||
"Semi": 1,
|
|
||||||
"EmptyReloadTime": 59,
|
"EmptyReloadTime": 59,
|
||||||
"PrepareTime": 29,
|
"PrepareTime": 29,
|
||||||
"IterativeTime": 11,
|
"IterativeTime": 11,
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
"Velocity": 15,
|
"Velocity": 15,
|
||||||
"Magazine": 7,
|
"Magazine": 7,
|
||||||
"Weight": 2,
|
"Weight": 2,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"NormalReloadTime": 30,
|
"NormalReloadTime": 30,
|
||||||
"EmptyReloadTime": 35,
|
"EmptyReloadTime": 35,
|
||||||
"BypassesArmor": 0.2,
|
"BypassesArmor": 0.2,
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
"Magazine": 30,
|
"Magazine": 30,
|
||||||
"Weight": 4,
|
"Weight": 4,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 56,
|
"NormalReloadTime": 56,
|
||||||
"EmptyReloadTime": 64,
|
"EmptyReloadTime": 64,
|
||||||
"BypassesArmor": 0.25,
|
"BypassesArmor": 0.25,
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
"Magazine": 100,
|
"Magazine": 100,
|
||||||
"Weight": 8,
|
"Weight": 8,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 114,
|
"NormalReloadTime": 114,
|
||||||
"EmptyReloadTime": 133,
|
"EmptyReloadTime": 133,
|
||||||
"BypassesArmor": 0.25,
|
"BypassesArmor": 0.25,
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
"Magazine": 8,
|
"Magazine": 8,
|
||||||
"ProjectileAmount": 12,
|
"ProjectileAmount": 12,
|
||||||
"Weight": 4,
|
"Weight": 4,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"PrepareTime": 7,
|
"PrepareTime": 7,
|
||||||
"PrepareLoadTime": 36,
|
"PrepareLoadTime": 36,
|
||||||
"IterativeTime": 16,
|
"IterativeTime": 16,
|
||||||
|
|
|
@ -11,8 +11,6 @@
|
||||||
"Magazine": 5,
|
"Magazine": 5,
|
||||||
"BoltActionTime": 18,
|
"BoltActionTime": 18,
|
||||||
"Weight": 7,
|
"Weight": 7,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"NormalReloadTime": 60,
|
"NormalReloadTime": 60,
|
||||||
"EmptyReloadTime": 78,
|
"EmptyReloadTime": 78,
|
||||||
"BypassesArmor": 0.6,
|
"BypassesArmor": 0.6,
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
"Velocity": 38,
|
"Velocity": 38,
|
||||||
"Magazine": 8,
|
"Magazine": 8,
|
||||||
"Weight": 3,
|
"Weight": 3,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"PrepareTime": 7,
|
"PrepareTime": 7,
|
||||||
"IterativeTime": 16,
|
"IterativeTime": 16,
|
||||||
"FinishTime": 19,
|
"FinishTime": 19,
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
"Headshot": 2,
|
"Headshot": 2,
|
||||||
"Velocity": 46,
|
"Velocity": 46,
|
||||||
"Weight": 10,
|
"Weight": 10,
|
||||||
"FireMode": 2,
|
|
||||||
"BypassesArmor": 0.3,
|
"BypassesArmor": 0.3,
|
||||||
"SoundRadius": 14,
|
"SoundRadius": 14,
|
||||||
"RPM": 1200
|
"RPM": 1200
|
||||||
|
|
|
@ -9,9 +9,7 @@
|
||||||
"Velocity": 42.5,
|
"Velocity": 42.5,
|
||||||
"Magazine": 20,
|
"Magazine": 20,
|
||||||
"Weight": 5,
|
"Weight": 5,
|
||||||
"FireMode": 0,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 54,
|
"NormalReloadTime": 54,
|
||||||
"EmptyReloadTime": 71,
|
"EmptyReloadTime": 71,
|
||||||
"BypassesArmor": 0.4,
|
"BypassesArmor": 0.4,
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
"Magazine": 5,
|
"Magazine": 5,
|
||||||
"BoltActionTime": 22,
|
"BoltActionTime": 22,
|
||||||
"Weight": 5,
|
"Weight": 5,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"PrepareTime": 29,
|
"PrepareTime": 29,
|
||||||
"PrepareEmptyTime": 16,
|
"PrepareEmptyTime": 16,
|
||||||
"IterativeTime": 11,
|
"IterativeTime": 11,
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
"Magazine": 3,
|
"Magazine": 3,
|
||||||
"BoltActionTime": 37,
|
"BoltActionTime": 37,
|
||||||
"Weight": 10,
|
"Weight": 10,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"NormalReloadTime": 63,
|
"NormalReloadTime": 63,
|
||||||
"EmptyReloadTime": 92,
|
"EmptyReloadTime": 92,
|
||||||
"BypassesArmor": 1,
|
"BypassesArmor": 1,
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
"Magazine": 30,
|
"Magazine": 30,
|
||||||
"Weight": 4,
|
"Weight": 4,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 60,
|
"NormalReloadTime": 60,
|
||||||
"EmptyReloadTime": 74,
|
"EmptyReloadTime": 74,
|
||||||
"BypassesArmor": 0.28,
|
"BypassesArmor": 0.28,
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
"Magazine": 75,
|
"Magazine": 75,
|
||||||
"Weight": 6,
|
"Weight": 6,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"NormalReloadTime": 73,
|
"NormalReloadTime": 73,
|
||||||
"EmptyReloadTime": 95,
|
"EmptyReloadTime": 95,
|
||||||
"BypassesArmor": 0.23,
|
"BypassesArmor": 0.23,
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
"Velocity": 70,
|
"Velocity": 70,
|
||||||
"BoltActionTime": 22,
|
"BoltActionTime": 22,
|
||||||
"Weight": 7,
|
"Weight": 7,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"NormalReloadTime": 59,
|
"NormalReloadTime": 59,
|
||||||
"EmptyReloadTime": 89,
|
"EmptyReloadTime": 89,
|
||||||
"BypassesArmor": 0.8,
|
"BypassesArmor": 0.8,
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
"Velocity": 36,
|
"Velocity": 36,
|
||||||
"Magazine": 20,
|
"Magazine": 20,
|
||||||
"Weight": 4,
|
"Weight": 4,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"NormalReloadTime": 54,
|
"NormalReloadTime": 54,
|
||||||
"EmptyReloadTime": 75,
|
"EmptyReloadTime": 75,
|
||||||
"BypassesArmor": 0.23,
|
"BypassesArmor": 0.23,
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
"Velocity": 42,
|
"Velocity": 42,
|
||||||
"Magazine": 10,
|
"Magazine": 10,
|
||||||
"Weight": 5,
|
"Weight": 5,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"NormalReloadTime": 56,
|
"NormalReloadTime": 56,
|
||||||
"EmptyReloadTime": 70,
|
"EmptyReloadTime": 70,
|
||||||
"BypassesArmor": 0.45,
|
"BypassesArmor": 0.45,
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
"Velocity": 24,
|
"Velocity": 24,
|
||||||
"Magazine": 6,
|
"Magazine": 6,
|
||||||
"Weight": 2,
|
"Weight": 2,
|
||||||
"FireMode": 0,
|
|
||||||
"Semi": 1,
|
|
||||||
"EmptyReloadTime": 65,
|
"EmptyReloadTime": 65,
|
||||||
"BypassesArmor": 0.3,
|
"BypassesArmor": 0.3,
|
||||||
"SoundRadius": 10,
|
"SoundRadius": 10,
|
||||||
|
|
|
@ -8,9 +8,6 @@
|
||||||
"Magazine": 13,
|
"Magazine": 13,
|
||||||
"Weight": 3,
|
"Weight": 3,
|
||||||
"FireMode": 2,
|
"FireMode": 2,
|
||||||
"Semi": 1,
|
|
||||||
"Burst": 1,
|
|
||||||
"Auto": 1,
|
|
||||||
"BurstSize": 3,
|
"BurstSize": 3,
|
||||||
"NormalReloadTime": 46,
|
"NormalReloadTime": 46,
|
||||||
"EmptyReloadTime": 64,
|
"EmptyReloadTime": 64,
|
||||||
|
|
Loading…
Add table
Reference in a new issue