优化NBT#Damage

This commit is contained in:
17146 2024-12-24 15:40:11 +08:00
parent 676d825f2e
commit ec4e956572
42 changed files with 59 additions and 56 deletions

View file

@ -1,11 +1,11 @@
package com.atsuishio.superbwarfare.client.tooltip; package com.atsuishio.superbwarfare.client.tooltip;
import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent;
import com.atsuishio.superbwarfare.perk.AmmoPerk; import com.atsuishio.superbwarfare.perk.AmmoPerk;
import com.atsuishio.superbwarfare.perk.Perk; import com.atsuishio.superbwarfare.perk.Perk;
import com.atsuishio.superbwarfare.perk.PerkHelper; import com.atsuishio.superbwarfare.perk.PerkHelper;
import com.atsuishio.superbwarfare.tools.ItemNBTTool; import com.atsuishio.superbwarfare.tools.GunsTool;
import com.atsuishio.superbwarfare.tools.TooltipTool; import com.atsuishio.superbwarfare.tools.TooltipTool;
import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
@ -26,7 +26,7 @@ public class ClientBocekImageTooltip extends ClientGunImageTooltip {
slug = true; slug = true;
} }
double total = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); double total = GunsTool.getGunDoubleTag(stack, "Damage", 0) * TooltipTool.perkDamage(stack);
if (slug) { if (slug) {
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)

View file

@ -89,7 +89,7 @@ public class ClientGunImageTooltip implements ClientTooltipComponent {
* 获取武器伤害的文本组件 * 获取武器伤害的文本组件
*/ */
protected Component getDamageComponent() { protected Component getDamageComponent() {
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); double damage = GunsTool.getGunDoubleTag(stack, "Damage", 0) * TooltipTool.perkDamage(stack);
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? " + " .append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? " + "

View file

@ -1,6 +1,7 @@
package com.atsuishio.superbwarfare.client.tooltip; package com.atsuishio.superbwarfare.client.tooltip;
import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent; import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent;
import com.atsuishio.superbwarfare.tools.GunsTool;
import com.atsuishio.superbwarfare.tools.ItemNBTTool; import com.atsuishio.superbwarfare.tools.ItemNBTTool;
import com.atsuishio.superbwarfare.tools.TooltipTool; import com.atsuishio.superbwarfare.tools.TooltipTool;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
@ -16,13 +17,13 @@ public class ClientLauncherImageTooltip extends ClientGunImageTooltip {
@Override @Override
protected Component getDamageComponent() { protected Component getDamageComponent() {
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); double damage = GunsTool.getGunDoubleTag(stack, "Damage", 0) * TooltipTool.perkDamage(stack);
double explosionDamage = ItemNBTTool.getDouble(stack, "ExplosionDamage", 0); double explosionDamage = ItemNBTTool.getDouble(stack, "ExplosionDamage", 0);
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(new DecimalFormat("##.#").format(damage)).withStyle(ChatFormatting.GREEN) .append(Component.literal(new DecimalFormat("##.#").format(damage)).withStyle(ChatFormatting.GREEN)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(" + " + new DecimalFormat("##.#").format(explosionDamage)).withStyle(ChatFormatting.GOLD))); .append(Component.literal(" + " + new DecimalFormat("##.#").format(explosionDamage)).withStyle(ChatFormatting.GOLD)));
} }
} }

View file

@ -1,8 +1,9 @@
package com.atsuishio.superbwarfare.client.tooltip; package com.atsuishio.superbwarfare.client.tooltip;
import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent;
import com.atsuishio.superbwarfare.tools.GunsTool;
import com.atsuishio.superbwarfare.tools.ItemNBTTool; import com.atsuishio.superbwarfare.tools.ItemNBTTool;
import com.atsuishio.superbwarfare.tools.TooltipTool; import com.atsuishio.superbwarfare.tools.TooltipTool;
import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.capabilities.ForgeCapabilities;
@ -25,7 +26,7 @@ public class ClientSentinelImageTooltip extends ClientEnergyImageTooltip {
); );
if (flag.get()) { if (flag.get()) {
double damage = (ItemNBTTool.getDouble(stack, "damage", 0) + double damage = (GunsTool.getGunDoubleTag(stack, "Damage", 0) +
ItemNBTTool.getDouble(stack, "sentinelChargeDamage", 0)) ItemNBTTool.getDouble(stack, "sentinelChargeDamage", 0))
* TooltipTool.perkDamage(stack); * TooltipTool.perkDamage(stack);
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
@ -34,7 +35,7 @@ public class ClientSentinelImageTooltip extends ClientEnergyImageTooltip {
.format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")) .format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : ""))
.withStyle(ChatFormatting.AQUA).withStyle(ChatFormatting.BOLD)); .withStyle(ChatFormatting.AQUA).withStyle(ChatFormatting.BOLD));
} else { } else {
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); double damage = GunsTool.getGunDoubleTag(stack, "Damage", 0) * TooltipTool.perkDamage(stack);
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? new DecimalFormat("##.#") .append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? new DecimalFormat("##.#")

View file

@ -5,7 +5,6 @@ import com.atsuishio.superbwarfare.perk.AmmoPerk;
import com.atsuishio.superbwarfare.perk.Perk; import com.atsuishio.superbwarfare.perk.Perk;
import com.atsuishio.superbwarfare.perk.PerkHelper; import com.atsuishio.superbwarfare.perk.PerkHelper;
import com.atsuishio.superbwarfare.tools.GunsTool; import com.atsuishio.superbwarfare.tools.GunsTool;
import com.atsuishio.superbwarfare.tools.ItemNBTTool;
import com.atsuishio.superbwarfare.tools.TooltipTool; import com.atsuishio.superbwarfare.tools.TooltipTool;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
@ -28,13 +27,13 @@ public class ClientShotgunImageTooltip extends ClientGunImageTooltip {
} }
if (slug) { if (slug) {
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * GunsTool.getGunIntTag(stack, "ProjectileAmount", 1) * TooltipTool.perkDamage(stack); double damage = GunsTool.getGunDoubleTag(stack, "Damage", 0) * GunsTool.getGunIntTag(stack, "ProjectileAmount", 1) * TooltipTool.perkDamage(stack);
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? " + " + new DecimalFormat("##.#") .append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? " + " + new DecimalFormat("##.#")
.format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)); .format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN));
} else { } else {
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack); double damage = GunsTool.getGunDoubleTag(stack, "Damage", 0) * TooltipTool.perkDamage(stack);
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(new DecimalFormat("##.#").format(damage) + " * " + new DecimalFormat("##").format(GunsTool.getGunIntTag(stack, "ProjectileAmount", 1))).withStyle(ChatFormatting.GREEN)); .append(Component.literal(new DecimalFormat("##.#").format(damage) + " * " + new DecimalFormat("##").format(GunsTool.getGunIntTag(stack, "ProjectileAmount", 1))).withStyle(ChatFormatting.GREEN));

View file

@ -186,7 +186,7 @@ public class GunEventHandler {
if (!player.level().isClientSide()) { if (!player.level().isClientSide()) {
float headshot = (float) GunsTool.getGunDoubleTag(heldItem, "Headshot", 0); float headshot = (float) GunsTool.getGunDoubleTag(heldItem, "Headshot", 0);
float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) perkDamage(heldItem); float damage = (float) (GunsTool.getGunDoubleTag(heldItem, "Damage", 0) + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) perkDamage(heldItem);
float velocity = (float) ((GunsTool.getGunDoubleTag(heldItem, "Velocity", 0) + heldItem.getOrCreateTag().getDouble("CustomVelocity")) * perkSpeed(heldItem)); float velocity = (float) ((GunsTool.getGunDoubleTag(heldItem, "Velocity", 0) + heldItem.getOrCreateTag().getDouble("CustomVelocity")) * perkSpeed(heldItem));
int projectileAmount = GunsTool.getGunIntTag(heldItem, "ProjectileAmount", 1); int projectileAmount = GunsTool.getGunIntTag(heldItem, "ProjectileAmount", 1);
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor"); float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");

View file

@ -277,12 +277,12 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
if (scopeType > 0 || gripType > 0) { if (scopeType > 0 || gripType > 0) {
tag.putDouble("CustomVelocity", 15); tag.putDouble("CustomVelocity", 15);
tag.putDouble("BypassesArmor", 0.4); tag.putDouble("BypassesArmor", 0.4);
tag.putDouble("damage", 21); GunsTool.setGunDoubleTag(stack, "Damage", 21);
GunsTool.setGunDoubleTag(stack, "Headshot", 2.5); GunsTool.setGunDoubleTag(stack, "Headshot", 2.5);
} else { } else {
tag.putDouble("CustomVelocity", 0); tag.putDouble("CustomVelocity", 0);
tag.putDouble("BypassesArmor", 0.3); tag.putDouble("BypassesArmor", 0.3);
tag.putDouble("damage", 19); GunsTool.setGunDoubleTag(stack, "Damage", 19);
GunsTool.setGunDoubleTag(stack, "Headshot", 2); GunsTool.setGunDoubleTag(stack, "Headshot", 2);
} }

View file

@ -186,7 +186,7 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem {
int energyStored = energy.getEnergyStored(); int energyStored = energy.getEnergyStored();
if (energyStored > 0) { if (energyStored > 0) {
energy.extractEnergy(1, false); energy.extractEnergy(1, false);
tag.putDouble("sentinelChargeDamage", 0.2857142857142857 * tag.getDouble("damage")); tag.putDouble("sentinelChargeDamage", 0.2857142857142857 * GunsTool.getGunDoubleTag(itemStack, "Damage", 0));
} else { } else {
tag.putDouble("sentinelChargeDamage", 0); tag.putDouble("sentinelChargeDamage", 0);
} }

View file

@ -248,10 +248,11 @@ public class FireMessage {
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zoom) { if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zoom) {
spread = 0.01f; spread = 0.01f;
damage = 0.08333333 * tag.getDouble("damage") * tag.getDouble("speed") * perkDamage(heldItem); damage = 0.08333333 * GunsTool.getGunDoubleTag(heldItem, "Damage", 0) * tag.getDouble("speed") * perkDamage(heldItem);
} else { } else {
spread = perk instanceof AmmoPerk ammoPerk && ammoPerk.slug ? 0.5f : 2.5f; spread = perk instanceof AmmoPerk ammoPerk && ammoPerk.slug ? 0.5f : 2.5f;
damage = (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug ? 0.08333333 : 0.008333333) * tag.getDouble("damage") * tag.getDouble("speed") * perkDamage(heldItem); damage = (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug ? 0.08333333 : 0.008333333) *
GunsTool.getGunDoubleTag(heldItem, "Damage", 0) * tag.getDouble("speed") * perkDamage(heldItem);
} }
ProjectileEntity projectile = new ProjectileEntity(player.level()) ProjectileEntity projectile = new ProjectileEntity(player.level())
@ -337,7 +338,8 @@ public class FireMessage {
Level level = player.level(); Level level = player.level();
if (!level.isClientSide()) { if (!level.isClientSide()) {
TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage"), volt, wireLength); TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level,
(float) GunsTool.getGunDoubleTag(stack, "Damage", 0), volt, wireLength);
taserBulletProjectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ()); taserBulletProjectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
taserBulletProjectile.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) GunsTool.getGunDoubleTag(stack, "Velocity", 0), taserBulletProjectile.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) GunsTool.getGunDoubleTag(stack, "Velocity", 0),
@ -371,7 +373,7 @@ public class FireMessage {
Level level = player.level(); Level level = player.level();
if (!level.isClientSide()) { if (!level.isClientSide()) {
GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(player, level, GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(player, level,
(float) stack.getOrCreateTag().getDouble("damage"), (float) stack.getOrCreateTag().getDouble("ExplosionDamage"), (float) stack.getOrCreateTag().getDouble("ExplosionRadius")); (float) GunsTool.getGunDoubleTag(stack, "Damage", 0), (float) stack.getOrCreateTag().getDouble("ExplosionDamage"), (float) stack.getOrCreateTag().getDouble("ExplosionRadius"));
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE); var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) { if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {
@ -422,7 +424,7 @@ public class FireMessage {
if (!level.isClientSide()) { if (!level.isClientSide()) {
RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level,
(float) tag.getDouble("damage"), (float) tag.getDouble("ExplosionDamage"), (float) tag.getDouble("ExplosionRadius")); (float) GunsTool.getGunDoubleTag(stack, "Damage", 0), (float) tag.getDouble("ExplosionDamage"), (float) tag.getDouble("ExplosionRadius"));
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE); var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) { if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {
@ -486,7 +488,7 @@ public class FireMessage {
if (!level.isClientSide()) { if (!level.isClientSide()) {
JavelinMissileEntity missileEntity = new JavelinMissileEntity(player, level, JavelinMissileEntity missileEntity = new JavelinMissileEntity(player, level,
(float) tag.getDouble("damage"), (float) tag.getDouble("ExplosionDamage"), (float) tag.getDouble("ExplosionRadius")); (float) GunsTool.getGunDoubleTag(stack, "Damage", 0), (float) tag.getDouble("ExplosionDamage"), (float) tag.getDouble("ExplosionRadius"));
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE); var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) { if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {

View file

@ -55,7 +55,7 @@ public class GunsTool {
// TODO 临时使用移植完毕后删除 // TODO 临时使用移植完毕后删除
private static final Set<String> STRING_SET = Set.of("EmptyReloadTime", "FireMode", "Weight", "SoundRadius", "BurstSize", "ProjectileAmount", private static final Set<String> STRING_SET = Set.of("EmptyReloadTime", "FireMode", "Weight", "SoundRadius", "BurstSize", "ProjectileAmount",
"Spread", "NormalReloadTime", "Headshot", "Semi", "Burst", "Auto", "RecoilX", "RecoilY", "Velocity"); "Spread", "NormalReloadTime", "Headshot", "Semi", "Burst", "Auto", "RecoilX", "RecoilY", "Velocity", "Damage");
public static void initGun(Level level, ItemStack stack, String location) { public static void initGun(Level level, ItemStack stack, String location) {
if (level.getServer() == null) return; if (level.getServer() == null) return;

View file

@ -2,7 +2,7 @@
"Spread": 3.5, "Spread": 3.5,
"RecoilX": 0.006, "RecoilX": 0.006,
"RecoilY": 0.018, "RecoilY": 0.018,
"damage": 2.5, "Damage": 2.5,
"Headshot": 1.5, "Headshot": 1.5,
"Velocity": 17, "Velocity": 17,
"mag": 25, "mag": 25,

View file

@ -2,7 +2,7 @@
"Spread": 4, "Spread": 4,
"RecoilX": 0.005, "RecoilX": 0.005,
"RecoilY": 0.026, "RecoilY": 0.026,
"damage": 5, "Damage": 5,
"Headshot": 1.5, "Headshot": 1.5,
"Velocity": 15, "Velocity": 15,
"mag": 2, "mag": 2,

View file

@ -4,7 +4,7 @@
"Spread": 3.5, "Spread": 3.5,
"RecoilX": 0.0015, "RecoilX": 0.0015,
"RecoilY": 0.01, "RecoilY": 0.01,
"damage": 7.7, "Damage": 7.7,
"Headshot": 2, "Headshot": 2,
"Velocity": 44.5, "Velocity": 44.5,
"mag": 30, "mag": 30,

View file

@ -4,7 +4,7 @@
"Spread": 4, "Spread": 4,
"RecoilX": 0.002, "RecoilX": 0.002,
"RecoilY": 0.012, "RecoilY": 0.012,
"damage": 8.5, "Damage": 8.5,
"Headshot": 2, "Headshot": 2,
"Velocity": 36, "Velocity": 36,
"mag": 30, "mag": 30,

View file

@ -2,7 +2,7 @@
"CustomZoom": 0.75, "CustomZoom": 0.75,
"Spread": 4, "Spread": 4,
"Headshot": 2.5, "Headshot": 2.5,
"damage": 48, "Damage": 48,
"Weight": 3, "Weight": 3,
"BypassesArmor": 0.25 "BypassesArmor": 0.25
} }

View file

@ -3,7 +3,7 @@
"Spread": 5, "Spread": 5,
"RecoilX": 0.0018, "RecoilX": 0.0018,
"RecoilY": 0.01, "RecoilY": 0.01,
"damage": 9.5, "Damage": 9.5,
"Headshot": 2, "Headshot": 2,
"Velocity": 40, "Velocity": 40,
"mag": 55, "mag": 55,

View file

@ -2,7 +2,7 @@
"Spread": 2.5, "Spread": 2.5,
"RecoilX": 0.004, "RecoilX": 0.004,
"RecoilY": 0.013, "RecoilY": 0.013,
"damage": 5.5, "Damage": 5.5,
"Headshot": 1.5, "Headshot": 1.5,
"Velocity": 17, "Velocity": 17,
"mag": 17, "mag": 17,

View file

@ -2,7 +2,7 @@
"Spread": 2.5, "Spread": 2.5,
"RecoilX": 0.004, "RecoilX": 0.004,
"RecoilY": 0.013, "RecoilY": 0.013,
"damage": 5.5, "Damage": 5.5,
"Headshot": 1.5, "Headshot": 1.5,
"Velocity": 17, "Velocity": 17,
"mag": 17, "mag": 17,

View file

@ -4,7 +4,7 @@
"Spread": 3.5, "Spread": 3.5,
"RecoilX": 0.0016, "RecoilX": 0.0016,
"RecoilY": 0.009, "RecoilY": 0.009,
"damage": 7.5, "Damage": 7.5,
"Headshot": 2, "Headshot": 2,
"Velocity": 44, "Velocity": 44,
"mag": 30, "mag": 30,

View file

@ -2,7 +2,7 @@
"Spread": 7, "Spread": 7,
"RecoilX": 0.004, "RecoilX": 0.004,
"RecoilY": 0.04, "RecoilY": 0.04,
"damage": 65, "Damage": 65,
"Headshot": 3, "Headshot": 3,
"Velocity": 38, "Velocity": 38,
"mag": 1, "mag": 1,

View file

@ -5,7 +5,7 @@
"mag": 1, "mag": 1,
"Weight": 10, "Weight": 10,
"EmptyReloadTime": 78, "EmptyReloadTime": 78,
"damage": 300, "Damage": 300,
"ExplosionDamage": 100, "ExplosionDamage": 100,
"ExplosionRadius": 6 "ExplosionRadius": 6
} }

View file

@ -2,7 +2,7 @@
"Spread": 5, "Spread": 5,
"RecoilX": 0.002, "RecoilX": 0.002,
"RecoilY": 0.063, "RecoilY": 0.063,
"damage": 35, "Damage": 35,
"Headshot": 3, "Headshot": 3,
"Velocity": 37.75, "Velocity": 37.75,
"mag": 5, "mag": 5,

View file

@ -2,7 +2,7 @@
"Spread": 2.5, "Spread": 2.5,
"RecoilX": 0.006, "RecoilX": 0.006,
"RecoilY": 0.018, "RecoilY": 0.018,
"damage": 9.5, "Damage": 9.5,
"Headshot": 1.5, "Headshot": 1.5,
"Velocity": 15, "Velocity": 15,
"mag": 7, "mag": 7,

View file

@ -4,7 +4,7 @@
"Spread": 4, "Spread": 4,
"RecoilX": 0.0015, "RecoilX": 0.0015,
"RecoilY": 0.011, "RecoilY": 0.011,
"damage": 7, "Damage": 7,
"Headshot": 2, "Headshot": 2,
"Velocity": 44, "Velocity": 44,
"mag": 30, "mag": 30,

View file

@ -2,7 +2,7 @@
"Spread": 5, "Spread": 5,
"RecoilX": 0.004, "RecoilX": 0.004,
"RecoilY": 0.014, "RecoilY": 0.014,
"damage": 9, "Damage": 9,
"Headshot": 2, "Headshot": 2,
"Velocity": 43, "Velocity": 43,
"mag": 100, "mag": 100,

View file

@ -2,7 +2,7 @@
"Spread": 1.5, "Spread": 1.5,
"RecoilX": 0.004, "RecoilX": 0.004,
"RecoilY": 0.023, "RecoilY": 0.023,
"damage": 40, "Damage": 40,
"ExplosionDamage": 80, "ExplosionDamage": 80,
"ExplosionRadius": 5, "ExplosionRadius": 5,
"Velocity": 3.75, "Velocity": 3.75,

View file

@ -2,7 +2,7 @@
"Spread": 3, "Spread": 3,
"RecoilX": 0.009, "RecoilX": 0.009,
"RecoilY": 0.04, "RecoilY": 0.04,
"damage": 3, "Damage": 3,
"Headshot": 1.5, "Headshot": 1.5,
"Velocity": 17, "Velocity": 17,
"mag": 8, "mag": 8,

View file

@ -5,7 +5,7 @@
"Spread": 6, "Spread": 6,
"RecoilX": 0.007, "RecoilX": 0.007,
"RecoilY": 0.013, "RecoilY": 0.013,
"damage": 38, "Damage": 38,
"Headshot": 3, "Headshot": 3,
"Velocity": 47.2, "Velocity": 47.2,
"mag": 5, "mag": 5,

View file

@ -2,7 +2,7 @@
"Spread": 2, "Spread": 2,
"RecoilX": 0.004, "RecoilX": 0.004,
"RecoilY": 0.031, "RecoilY": 0.031,
"damage": 16, "Damage": 16,
"Headshot": 2.5, "Headshot": 2.5,
"Velocity": 38, "Velocity": 38,
"mag": 8, "mag": 8,

View file

@ -2,7 +2,7 @@
"Spread": 1.5, "Spread": 1.5,
"RecoilX": 0.003, "RecoilX": 0.003,
"RecoilY": 0.02, "RecoilY": 0.02,
"damage": 8, "Damage": 8,
"Headshot": 2, "Headshot": 2,
"Velocity": 46, "Velocity": 46,
"Weight": 10, "Weight": 10,

View file

@ -4,7 +4,7 @@
"Spread": 5, "Spread": 5,
"RecoilX": 0.006, "RecoilX": 0.006,
"RecoilY": 0.014, "RecoilY": 0.014,
"damage": 12, "Damage": 12,
"Headshot": 2.5, "Headshot": 2.5,
"Velocity": 42.5, "Velocity": 42.5,
"mag": 20, "mag": 20,

View file

@ -3,7 +3,7 @@
"Spread": 4.8, "Spread": 4.8,
"RecoilX": 0.002, "RecoilX": 0.002,
"RecoilY": 0.063, "RecoilY": 0.063,
"damage": 33, "Damage": 33,
"Headshot": 3, "Headshot": 3,
"Velocity": 42, "Velocity": 42,
"mag": 5, "mag": 5,

View file

@ -3,7 +3,7 @@
"Spread": 8, "Spread": 8,
"RecoilX": 0.01, "RecoilX": 0.01,
"RecoilY": 0.038, "RecoilY": 0.038,
"damage": 140, "Damage": 140,
"Headshot": 3, "Headshot": 3,
"Velocity": 36, "Velocity": 36,
"mag": 3, "mag": 3,

View file

@ -4,7 +4,7 @@
"Spread": 3.7, "Spread": 3.7,
"RecoilX": 0.0013, "RecoilX": 0.0013,
"RecoilY": 0.009, "RecoilY": 0.009,
"damage": 8.25, "Damage": 8.25,
"Headshot": 2, "Headshot": 2,
"Velocity": 46, "Velocity": 46,
"mag": 30, "mag": 30,

View file

@ -2,7 +2,7 @@
"Spread": 5, "Spread": 5,
"RecoilX": 0.008, "RecoilX": 0.008,
"RecoilY": 0.018, "RecoilY": 0.018,
"damage": 200, "Damage": 200,
"ExplosionDamage": 150, "ExplosionDamage": 150,
"ExplosionRadius": 10, "ExplosionRadius": 10,
"Velocity": 4, "Velocity": 4,

View file

@ -2,7 +2,7 @@
"Spread": 5.5, "Spread": 5.5,
"RecoilX": 0.0018, "RecoilX": 0.0018,
"RecoilY": 0.012, "RecoilY": 0.012,
"damage": 8.75, "Damage": 8.75,
"Headshot": 2, "Headshot": 2,
"Velocity": 38, "Velocity": 38,
"mag": 75, "mag": 75,

View file

@ -3,7 +3,7 @@
"Spread": 6, "Spread": 6,
"RecoilX": 0.007, "RecoilX": 0.007,
"RecoilY": 0.018, "RecoilY": 0.018,
"damage": 35, "Damage": 35,
"mag": 5, "mag": 5,
"Headshot": 3, "Headshot": 3,
"Velocity": 70, "Velocity": 70,

View file

@ -2,7 +2,7 @@
"Spread": 4.5, "Spread": 4.5,
"RecoilX": 0.004, "RecoilX": 0.004,
"RecoilY": 0.015, "RecoilY": 0.015,
"damage": 9.5, "Damage": 9.5,
"Headshot": 2, "Headshot": 2,
"Velocity": 36, "Velocity": 36,
"mag": 20, "mag": 20,

View file

@ -3,7 +3,7 @@
"Spread": 5.5, "Spread": 5.5,
"RecoilX": 0.004, "RecoilX": 0.004,
"RecoilY": 0.009, "RecoilY": 0.009,
"damage": 18, "Damage": 18,
"Headshot": 2, "Headshot": 2,
"Velocity": 42, "Velocity": 42,
"mag": 10, "mag": 10,

View file

@ -2,7 +2,7 @@
"Spread": 2, "Spread": 2,
"RecoilX": 0.0001, "RecoilX": 0.0001,
"RecoilY": 0.002, "RecoilY": 0.002,
"damage": 5, "Damage": 5,
"Velocity": 3, "Velocity": 3,
"mag": 1, "mag": 1,
"Weight": 1, "Weight": 1,

View file

@ -2,7 +2,7 @@
"Spread": 3, "Spread": 3,
"RecoilX": 0.005, "RecoilX": 0.005,
"RecoilY": 0.032, "RecoilY": 0.032,
"damage": 19, "Damage": 19,
"Headshot": 2, "Headshot": 2,
"Velocity": 24, "Velocity": 24,
"mag": 6, "mag": 6,

View file

@ -2,7 +2,7 @@
"Spread": 2.3, "Spread": 2.3,
"RecoilX": 0.002, "RecoilX": 0.002,
"RecoilY": 0.007, "RecoilY": 0.007,
"damage": 6, "Damage": 6,
"Headshot": 1.5, "Headshot": 1.5,
"Velocity": 16, "Velocity": 16,
"mag": 13, "mag": 13,