package com.hbm.handler.guncfg; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo22LR; import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; public class Gun22LRFactory { private static final CasingEjector EJECTOR_22LR; private static final SpentCasing CASING22LR; static { EJECTOR_22LR = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.2, 0.35).setAngleRange(0.01F, 0.03F); CASING22LR = new SpentCasing(CasingType.STRAIGHT).setScale(0.8F).setBounceMotion(0.05F, 0.02F).setColor(SpentCasing.COLOR_CASE_BRASS); } public static GunConfiguration getUziConfig() { GunConfiguration config = new GunConfiguration(); config.rateOfFire = 1; config.roundsPerCycle = 1; config.gunMode = GunConfiguration.MODE_NORMAL; config.firingMode = GunConfiguration.FIRE_AUTO; config.reloadDuration = 20; config.firingDuration = 0; config.ammoCap = 32; config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.crosshair = Crosshair.L_CROSS; config.durability = 3000; config.reloadSound = GunConfiguration.RSOUND_MAG; config.firingSound = "hbm:weapon.uziShoot"; config.reloadSoundEnd = false; config.name = "uzi"; config.manufacturer = EnumGunManufacturer.IMI; config.comment.add("Mom, where are my mittens?"); config.config = HbmCollection.twentyTwoLR; config.ejector = EJECTOR_22LR; return config; } public static GunConfiguration getSaturniteConfig() { GunConfiguration config = getUziConfig(); config.durability = 4500; config.name = "uziSatur"; config.manufacturer = EnumGunManufacturer.IMI_BIGMT; config.config = HbmCollection.twentyTwoLRFire; return config; } static float inaccuracy = 5; public static BulletConfiguration get22LRConfig() { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = new ComparableStack(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.STOCK)); bullet.spread *= inaccuracy; bullet.dmgMin = 6; bullet.dmgMax = 8; bullet.spentCasing = CASING22LR.clone().register("22LRStock"); return bullet; } public static BulletConfiguration get22LRAPConfig() { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = new ComparableStack(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.AP)); bullet.spread *= inaccuracy; bullet.dmgMin = 12; bullet.dmgMax = 16; bullet.leadChance = 10; bullet.wear = 15; bullet.spentCasing = CASING22LR.clone().register("22LRAP"); return bullet; } }