From 81ac9805299be2b32ea592c7e7e9713199a543bc Mon Sep 17 00:00:00 2001 From: HbmMods Date: Fri, 27 Dec 2019 11:08:32 +0100 Subject: [PATCH] stuff --- assets/hbm/lang/en_US.lang | 4 +- com/hbm/explosion/ExplosionNukeGeneric.java | 3 +- com/hbm/handler/BobmazonOfferFactory.java | 265 +++++++++--------- com/hbm/inventory/MachineRecipes.java | 16 +- com/hbm/inventory/gui/GUIScreenBobmazon.java | 2 +- com/hbm/items/weapon/ItemGunBase.java | 9 +- com/hbm/main/ClientProxy.java | 11 + com/hbm/main/ModEventHandler.java | 117 +------- com/hbm/packet/ItemBobmazonPacket.java | 89 +++--- com/hbm/particle/ParticleRadiationFog.java | 131 +++++++++ com/hbm/saveddata/RadiationSavedData.java | 10 +- .../machine/TileEntityMachineAssembler.java | 13 +- .../machine/TileEntityMachineChemplant.java | 12 +- .../machine/TileEntityMachineCyclotron.java | 12 +- .../machine/TileEntityMachineKeyForge.java | 27 +- .../TileEntityMachineMissileAssembly.java | 16 +- 16 files changed, 403 insertions(+), 334 deletions(-) create mode 100644 com/hbm/particle/ParticleRadiationFog.java diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 9e636e235..f4329f87d 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -1837,8 +1837,8 @@ item.mp_thruster_20_kerosene.name=Size 20 Liquid Fuel Thruster item.mp_thruster_20_kerosene_dual.name=Size 20 Liquid Fuel Twin Thrusters item.mp_thruster_20_kerosene_triple.name=Size 20 Liquid Fuel Triple Thrusters item.mp_thruster_20_solid.name=Size 20 Solid Fuel Thruster -item.mp_thruster_20_solid_multi.name=Size 20 Solid Fuel Hexdecuple 30-Fold Thrusters -item.mp_thruster_20_solid_multier.name=Size 20 Solid Fuel Hexdecuple 47-Fold Thrusters +item.mp_thruster_20_solid_multi.name=Size 20 Solid Fuel 30-Fold Thrusters +item.mp_thruster_20_solid_multier.name=Size 20 Solid Fuel 47-Fold Thrusters item.missile_skin_camo.name=Missile Skin: Camo item.missile_skin_desert.name=Missile Skin: Desert Camo diff --git a/com/hbm/explosion/ExplosionNukeGeneric.java b/com/hbm/explosion/ExplosionNukeGeneric.java index a78719f66..517154092 100644 --- a/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/com/hbm/explosion/ExplosionNukeGeneric.java @@ -32,6 +32,7 @@ import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.grenade.EntityGrenadeASchrab; import com.hbm.entity.grenade.EntityGrenadeNuclear; import com.hbm.entity.missile.EntityMIRV; +import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityExplosiveBeam; import com.hbm.entity.projectile.EntityMiniMIRV; import com.hbm.entity.projectile.EntityMiniNuke; @@ -153,7 +154,7 @@ public class ExplosionNukeGeneric { && !(entity instanceof EntityMIRV) && !(entity instanceof EntityMiniNuke) && !(entity instanceof EntityMiniMIRV) && !(entity instanceof EntityGrenadeASchrab) && !(entity instanceof EntityGrenadeNuclear) && !(entity instanceof EntityExplosiveBeam) - && !(entity instanceof EntityPlayer + && !(entity instanceof EntityBulletBase) && !(entity instanceof EntityPlayer && Library.checkArmor((EntityPlayer) entity, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots))) { d5 /= d9; diff --git a/com/hbm/handler/BobmazonOfferFactory.java b/com/hbm/handler/BobmazonOfferFactory.java index f9f17707c..68dbfb3d3 100644 --- a/com/hbm/handler/BobmazonOfferFactory.java +++ b/com/hbm/handler/BobmazonOfferFactory.java @@ -21,141 +21,142 @@ public class BobmazonOfferFactory { public static void init() { - materials.add(new Offer(new ItemStack(ModItems.ingot_uranium), Requirement.NUCLEAR, 6)); - materials.add(new Offer(new ItemStack(ModItems.ingot_u233), Requirement.NUCLEAR, 20)); - materials.add(new Offer(new ItemStack(ModItems.ingot_u238), Requirement.NUCLEAR, 15)); - materials.add(new Offer(new ItemStack(ModItems.ingot_th232), Requirement.NUCLEAR, 4)); - materials.add(new Offer(new ItemStack(ModItems.ingot_plutonium), Requirement.NUCLEAR, 25)); - materials.add(new Offer(new ItemStack(ModItems.ingot_titanium), Requirement.STEEL, 2)); - materials.add(new Offer(new ItemStack(ModItems.ingot_copper), Requirement.STEEL, 2)); - materials.add(new Offer(new ItemStack(ModItems.ingot_red_copper), Requirement.STEEL, 4)); - materials.add(new Offer(new ItemStack(ModItems.ingot_tungsten), Requirement.STEEL, 3)); - materials.add(new Offer(new ItemStack(ModItems.ingot_aluminium), Requirement.STEEL, 2)); - materials.add(new Offer(new ItemStack(ModItems.ingot_steel), Requirement.STEEL, 4)); - materials.add(new Offer(new ItemStack(ModItems.ingot_lead), Requirement.STEEL, 2)); - materials.add(new Offer(new ItemStack(ModItems.ingot_polymer), Requirement.OIL, 8)); - materials.add(new Offer(new ItemStack(ModItems.ingot_uranium_fuel), Requirement.NUCLEAR, 18)); - materials.add(new Offer(new ItemStack(ModItems.ingot_thorium_fuel), Requirement.NUCLEAR, 16)); - materials.add(new Offer(new ItemStack(ModItems.ingot_desh), Requirement.OIL, 16)); - materials.add(new Offer(new ItemStack(ModItems.ingot_saturnite), Requirement.STEEL, 8)); - materials.add(new Offer(new ItemStack(ModItems.lithium), Requirement.CHEMICS, 6)); - materials.add(new Offer(new ItemStack(ModItems.solid_fuel), Requirement.OIL, 4)); - materials.add(new Offer(new ItemStack(ModItems.lignite), Requirement.STEEL, 2)); - materials.add(new Offer(new ItemStack(ModItems.canister_oil), Requirement.OIL, 4)); - materials.add(new Offer(new ItemStack(ModItems.canister_fuel), Requirement.OIL, 16)); - materials.add(new Offer(new ItemStack(ModItems.canister_petroil), Requirement.OIL, 12)); - materials.add(new Offer(new ItemStack(ModItems.canister_kerosene), Requirement.OIL, 20)); - materials.add(new Offer(new ItemStack(ModItems.canister_NITAN), Requirement.OIL, 100)); - materials.add(new Offer(new ItemStack(ModItems.gas_petroleum), Requirement.OIL, 8)); - materials.add(new Offer(new ItemStack(ModItems.motor), Requirement.ASSEMBLY, 12)); - materials.add(new Offer(new ItemStack(ModItems.rtg_unit), Requirement.NUCLEAR, 25)); - materials.add(new Offer(new ItemStack(ModItems.circuit_aluminium), Requirement.ASSEMBLY, 4)); - materials.add(new Offer(new ItemStack(ModItems.circuit_copper), Requirement.ASSEMBLY, 6)); - materials.add(new Offer(new ItemStack(ModItems.circuit_red_copper), Requirement.ASSEMBLY, 10)); - materials.add(new Offer(new ItemStack(ModItems.circuit_gold), Requirement.CHEMICS, 16)); - materials.add(new Offer(new ItemStack(ModItems.pellet_gas), Requirement.CHEMICS, 4)); - materials.add(new Offer(new ItemStack(ModItems.magnetron), Requirement.ASSEMBLY, 10)); - materials.add(new Offer(new ItemStack(ModItems.pellet_rtg), Requirement.NUCLEAR, 27)); - materials.add(new Offer(new ItemStack(ModItems.piston_selenium), Requirement.ASSEMBLY, 12)); - materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_advanced), Requirement.ASSEMBLY, 15)); - materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_lithium), Requirement.CHEMICS, 30)); - materials.add(new Offer(new ItemStack(ModItems.arc_electrode), Requirement.ASSEMBLY, 15)); - materials.add(new Offer(new ItemStack(ModItems.fuse), Requirement.ASSEMBLY, 5)); + int inflation = 5; + materials.add(new Offer(new ItemStack(ModItems.ingot_uranium), Requirement.NUCLEAR, 6 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_u233), Requirement.NUCLEAR, 20 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_u238), Requirement.NUCLEAR, 15 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_th232), Requirement.NUCLEAR, 4 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_plutonium), Requirement.NUCLEAR, 25 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_titanium), Requirement.STEEL, 2 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_copper), Requirement.STEEL, 2 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_red_copper), Requirement.STEEL, 4 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_tungsten), Requirement.STEEL, 3 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_aluminium), Requirement.STEEL, 2 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_steel), Requirement.STEEL, 4 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_lead), Requirement.STEEL, 2 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_polymer), Requirement.OIL, 8 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_uranium_fuel), Requirement.NUCLEAR, 18 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_thorium_fuel), Requirement.NUCLEAR, 16 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_desh), Requirement.OIL, 16 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.ingot_saturnite), Requirement.STEEL, 8 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.lithium), Requirement.CHEMICS, 6 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.solid_fuel), Requirement.OIL, 4 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.lignite), Requirement.STEEL, 2 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_oil), Requirement.OIL, 4 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_fuel), Requirement.OIL, 16 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_petroil), Requirement.OIL, 12 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_kerosene), Requirement.OIL, 20 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.canister_NITAN), Requirement.OIL, 100 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.gas_petroleum), Requirement.OIL, 8 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.motor), Requirement.ASSEMBLY, 12 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.rtg_unit), Requirement.NUCLEAR, 25 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.circuit_aluminium), Requirement.ASSEMBLY, 4 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.circuit_copper), Requirement.ASSEMBLY, 6 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.circuit_red_copper), Requirement.ASSEMBLY, 10 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.circuit_gold), Requirement.CHEMICS, 16 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.pellet_gas), Requirement.CHEMICS, 4 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.magnetron), Requirement.ASSEMBLY, 10 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.pellet_rtg), Requirement.NUCLEAR, 27 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.piston_selenium), Requirement.ASSEMBLY, 12 * inflation)); + materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_advanced), Requirement.ASSEMBLY, 15 * inflation)); + materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_lithium), Requirement.CHEMICS, 30 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.arc_electrode), Requirement.ASSEMBLY, 15 * inflation)); + materials.add(new Offer(new ItemStack(ModItems.fuse), Requirement.ASSEMBLY, 5 * inflation)); - machines.add(new Offer(new ItemStack(ModBlocks.concrete_smooth, 16), Requirement.CHEMICS, 32)); - machines.add(new Offer(new ItemStack(ModBlocks.brick_compound, 8), Requirement.CHEMICS, 48)); - machines.add(new Offer(new ItemStack(ModBlocks.barbed_wire, 16), Requirement.ASSEMBLY, 12)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_siren), Requirement.ASSEMBLY, 12)); - machines.add(new Offer(new ItemStack(ModBlocks.vault_door), Requirement.CHEMICS, 250)); - machines.add(new Offer(new ItemStack(ModBlocks.blast_door), Requirement.CHEMICS, 120)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_epress), Requirement.OIL, 60)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_difurnace_off), Requirement.STEEL, 26)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_gascent), Requirement.OIL, 100)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_diesel), Requirement.CHEMICS, 65)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_geo), Requirement.CHEMICS, 30)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_battery), Requirement.ASSEMBLY, 30)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_lithium_battery), Requirement.CHEMICS, 60)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_assembler), Requirement.ASSEMBLY, 30)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_chemplant), Requirement.CHEMICS, 50)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_off), Requirement.CHEMICS, 25)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_electric_off), Requirement.OIL, 60)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_shredder), Requirement.ASSEMBLY, 45)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_well), Requirement.OIL, 40)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_refinery), Requirement.OIL, 80)); - machines.add(new Offer(new ItemStack(ModBlocks.absorber), Requirement.CHEMICS, 10)); - machines.add(new Offer(new ItemStack(ModBlocks.absorber_green), Requirement.OIL, 25)); - machines.add(new Offer(new ItemStack(ModBlocks.decon), Requirement.CHEMICS, 15)); + machines.add(new Offer(new ItemStack(ModBlocks.concrete_smooth, 16), Requirement.CHEMICS, 32 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.brick_compound, 8), Requirement.CHEMICS, 48 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.barbed_wire, 16), Requirement.ASSEMBLY, 12 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_siren), Requirement.ASSEMBLY, 12 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.vault_door), Requirement.CHEMICS, 250 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.blast_door), Requirement.CHEMICS, 120 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_epress), Requirement.OIL, 60 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_difurnace_off), Requirement.STEEL, 26 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_gascent), Requirement.OIL, 100 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_diesel), Requirement.CHEMICS, 65 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_geo), Requirement.CHEMICS, 30 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_battery), Requirement.ASSEMBLY, 30 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_lithium_battery), Requirement.CHEMICS, 60 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_assembler), Requirement.ASSEMBLY, 30 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_chemplant), Requirement.CHEMICS, 50 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_off), Requirement.CHEMICS, 25 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_electric_off), Requirement.OIL, 60 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_shredder), Requirement.ASSEMBLY, 45 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_well), Requirement.OIL, 40 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_refinery), Requirement.OIL, 80 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.absorber), Requirement.CHEMICS, 10 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.absorber_green), Requirement.OIL, 25 * inflation)); + machines.add(new Offer(new ItemStack(ModBlocks.decon), Requirement.CHEMICS, 15 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.loot_10), Requirement.OIL, 50)); - weapons.add(new Offer(new ItemStack(ModItems.loot_15), Requirement.OIL, 65)); - weapons.add(new Offer(new ItemStack(ModItems.loot_misc), Requirement.NUCLEAR, 65)); - weapons.add(new Offer(new ItemStack(ModBlocks.launch_pad), Requirement.OIL, 95)); - weapons.add(new Offer(new ItemStack(ModBlocks.machine_radar), Requirement.OIL, 90)); - weapons.add(new Offer(new ItemStack(ModItems.designator), Requirement.CHEMICS, 35)); - weapons.add(new Offer(new ItemStack(ModItems.designator_range), Requirement.CHEMICS, 50)); - weapons.add(new Offer(new ItemStack(ModItems.sat_chip), Requirement.CHEMICS, 35)); - weapons.add(new Offer(new ItemStack(ModBlocks.turret_cheapo), Requirement.CHEMICS, 70)); - weapons.add(new Offer(new ItemStack(ModItems.turret_cheapo_ammo), Requirement.ASSEMBLY, 20)); - weapons.add(new Offer(new ItemStack(ModItems.turret_control), Requirement.CHEMICS, 35)); - weapons.add(new Offer(new ItemStack(ModItems.turret_chip), Requirement.CHEMICS, 80)); - weapons.add(new Offer(new ItemStack(ModItems.turret_biometry), Requirement.CHEMICS, 15)); - weapons.add(new Offer(new ItemStack(ModBlocks.mine_ap, 4), Requirement.ASSEMBLY, 25)); - weapons.add(new Offer(new ItemStack(ModBlocks.emp_bomb), Requirement.CHEMICS, 90)); - weapons.add(new Offer(new ItemStack(ModBlocks.det_cord, 16), Requirement.ASSEMBLY, 50)); - weapons.add(new Offer(new ItemStack(ModBlocks.det_charge), Requirement.CHEMICS, 25)); - weapons.add(new Offer(new ItemStack(ModItems.detonator), Requirement.ASSEMBLY, 15)); - weapons.add(new Offer(new ItemStack(ModItems.detonator_laser), Requirement.CHEMICS, 60)); - weapons.add(new Offer(new ItemStack(ModItems.defuser), Requirement.OIL, 5)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver), Requirement.ASSEMBLY, 15)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_nopip), Requirement.ASSEMBLY, 20)); - weapons.add(new Offer(new ItemStack(ModItems.gun_minigun), Requirement.OIL, 100)); - weapons.add(new Offer(new ItemStack(ModItems.gun_panzerschreck), Requirement.ASSEMBLY, 95)); - weapons.add(new Offer(new ItemStack(ModItems.gun_hk69), Requirement.ASSEMBLY, 60)); - weapons.add(new Offer(new ItemStack(ModItems.gun_uzi), Requirement.OIL, 80)); - weapons.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.ASSEMBLY, 60)); - weapons.add(new Offer(new ItemStack(ModItems.gun_bolt_action), Requirement.ASSEMBLY, 35)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_ammo, 6), Requirement.OIL, 12)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_357_desh, 6), Requirement.OIL, 36)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_44, 6), Requirement.OIL, 12)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_44_ap, 6), Requirement.OIL, 18)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm, 50), Requirement.OIL, 50)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm_du, 50), Requirement.OIL, 75)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket), Requirement.OIL, 5)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_incendiary), Requirement.OIL, 8)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_sleek), Requirement.OIL, 12)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade), Requirement.OIL, 4)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_incendiary), Requirement.OIL, 6)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_sleek), Requirement.OIL, 10)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr, 32), Requirement.OIL, 24)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr_ap, 32), Requirement.OIL, 32)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge, 6), Requirement.OIL, 18)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_slug, 6), Requirement.OIL, 20)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_flechette, 6), Requirement.OIL, 22)); - weapons.add(new Offer(new ItemStack(ModItems.grenade_if_generic, 3), Requirement.CHEMICS, 15)); - weapons.add(new Offer(new ItemStack(ModItems.grenade_if_he, 3), Requirement.CHEMICS, 25)); + weapons.add(new Offer(new ItemStack(ModItems.loot_10), Requirement.OIL, 50 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.loot_15), Requirement.OIL, 65 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.loot_misc), Requirement.NUCLEAR, 65 * inflation)); + weapons.add(new Offer(new ItemStack(ModBlocks.launch_pad), Requirement.OIL, 95 * inflation)); + weapons.add(new Offer(new ItemStack(ModBlocks.machine_radar), Requirement.OIL, 90 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.designator), Requirement.CHEMICS, 35 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.designator_range), Requirement.CHEMICS, 50 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.sat_chip), Requirement.CHEMICS, 35 * inflation)); + weapons.add(new Offer(new ItemStack(ModBlocks.turret_cheapo), Requirement.CHEMICS, 70 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.turret_cheapo_ammo), Requirement.ASSEMBLY, 20 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.turret_control), Requirement.CHEMICS, 35 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.turret_chip), Requirement.CHEMICS, 80 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.turret_biometry), Requirement.CHEMICS, 15 * inflation)); + weapons.add(new Offer(new ItemStack(ModBlocks.mine_ap, 4), Requirement.ASSEMBLY, 25 * inflation)); + weapons.add(new Offer(new ItemStack(ModBlocks.emp_bomb), Requirement.CHEMICS, 90 * inflation)); + weapons.add(new Offer(new ItemStack(ModBlocks.det_cord, 16), Requirement.ASSEMBLY, 50 * inflation)); + weapons.add(new Offer(new ItemStack(ModBlocks.det_charge), Requirement.CHEMICS, 25 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.detonator), Requirement.ASSEMBLY, 15 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.detonator_laser), Requirement.CHEMICS, 60 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.defuser), Requirement.OIL, 5 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver), Requirement.ASSEMBLY, 15 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_nopip), Requirement.ASSEMBLY, 20 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_minigun), Requirement.OIL, 100 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_panzerschreck), Requirement.ASSEMBLY, 95 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_hk69), Requirement.ASSEMBLY, 60 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_uzi), Requirement.OIL, 80 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.ASSEMBLY, 60 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_bolt_action), Requirement.ASSEMBLY, 35 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_ammo, 6), Requirement.OIL, 12 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_357_desh, 6), Requirement.OIL, 36 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_44, 6), Requirement.OIL, 12 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_44_ap, 6), Requirement.OIL, 18 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm, 50), Requirement.OIL, 50 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm_du, 50), Requirement.OIL, 75 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket), Requirement.OIL, 5 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_incendiary), Requirement.OIL, 8 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_sleek), Requirement.OIL, 12 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade), Requirement.OIL, 4 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_incendiary), Requirement.OIL, 6 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_sleek), Requirement.OIL, 10 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr, 32), Requirement.OIL, 24 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr_ap, 32), Requirement.OIL, 32 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge, 6), Requirement.OIL, 18 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_slug, 6), Requirement.OIL, 20 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_flechette, 6), Requirement.OIL, 22 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.grenade_if_generic, 3), Requirement.CHEMICS, 15 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.grenade_if_he, 3), Requirement.CHEMICS, 25 * inflation)); - tools.add(new Offer(new ItemStack(ModBlocks.crate_can, 1), Requirement.STEEL, 20)); - tools.add(new Offer(new ItemStack(ModBlocks.machine_keyforge), Requirement.STEEL, 10)); - tools.add(new Offer(new ItemStack(ModBlocks.machine_telelinker), Requirement.CHEMICS, 35)); - tools.add(new Offer(new ItemStack(ModBlocks.machine_satlinker), Requirement.CHEMICS, 50)); - tools.add(new Offer(new ItemStack(ModItems.oil_detector), Requirement.CHEMICS, 45)); - tools.add(new Offer(new ItemStack(ModItems.geiger_counter), Requirement.CHEMICS, 10)); - tools.add(new Offer(new ItemStack(ModItems.key), Requirement.STEEL, 2)); - tools.add(new Offer(new ItemStack(ModItems.padlock), Requirement.STEEL, 5)); - tools.add(new Offer(new ItemStack(ModItems.padlock_reinforced), Requirement.OIL, 15)); - tools.add(new Offer(new ItemStack(ModItems.syringe_antidote, 6), Requirement.STEEL, 10)); - tools.add(new Offer(new ItemStack(ModItems.syringe_metal_stimpak, 4), Requirement.STEEL, 10)); - tools.add(new Offer(new ItemStack(ModItems.syringe_metal_medx, 4), Requirement.STEEL, 10)); - tools.add(new Offer(new ItemStack(ModItems.radaway, 6), Requirement.ASSEMBLY, 30)); - tools.add(new Offer(new ItemStack(ModItems.radaway_strong, 3), Requirement.ASSEMBLY, 35)); - tools.add(new Offer(new ItemStack(ModItems.radx, 4), Requirement.ASSEMBLY, 20)); - tools.add(new Offer(new ItemStack(ModItems.pill_iodine, 6), Requirement.ASSEMBLY, 20)); - tools.add(new Offer(new ItemStack(ModItems.gas_mask_filter, 1), Requirement.ASSEMBLY, 5)); - tools.add(new Offer(new ItemStack(ModItems.gun_kit_1, 4), Requirement.OIL, 20)); - tools.add(new Offer(new ItemStack(ModItems.gun_kit_2, 2), Requirement.OIL, 45)); - tools.add(new Offer(new ItemStack(ModItems.hazmat_kit), Requirement.ASSEMBLY, 40)); - tools.add(new Offer(new ItemStack(ModItems.hazmat_red_kit), Requirement.CHEMICS, 100)); - tools.add(new Offer(new ItemStack(ModItems.hazmat_grey_kit), Requirement.OIL, 160)); + tools.add(new Offer(new ItemStack(ModBlocks.crate_can, 1), Requirement.STEEL, 20 * inflation)); + tools.add(new Offer(new ItemStack(ModBlocks.machine_keyforge), Requirement.STEEL, 10 * inflation)); + tools.add(new Offer(new ItemStack(ModBlocks.machine_telelinker), Requirement.CHEMICS, 35 * inflation)); + tools.add(new Offer(new ItemStack(ModBlocks.machine_satlinker), Requirement.CHEMICS, 50 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.oil_detector), Requirement.CHEMICS, 45 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.geiger_counter), Requirement.CHEMICS, 10 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.key), Requirement.STEEL, 2 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.padlock), Requirement.STEEL, 5 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.padlock_reinforced), Requirement.OIL, 15 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.syringe_antidote, 6), Requirement.STEEL, 10 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.syringe_metal_stimpak, 4), Requirement.STEEL, 10 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.syringe_metal_medx, 4), Requirement.STEEL, 10 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.radaway, 6), Requirement.ASSEMBLY, 30 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.radaway_strong, 3), Requirement.ASSEMBLY, 35 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.radx, 4), Requirement.ASSEMBLY, 20 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.pill_iodine, 6), Requirement.ASSEMBLY, 20 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.gas_mask_filter, 1), Requirement.ASSEMBLY, 5 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.gun_kit_1, 4), Requirement.OIL, 20 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.gun_kit_2, 2), Requirement.OIL, 45 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_kit), Requirement.ASSEMBLY, 40 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_red_kit), Requirement.CHEMICS, 100 * inflation)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_grey_kit), Requirement.OIL, 160 * inflation)); special.add(new Offer(new ItemStack(ModItems.nuke_starter_kit), Requirement.STEEL, 200)); special.add(new Offer(new ItemStack(ModItems.nuke_advanced_kit), Requirement.STEEL, 300)); diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index acdd1c4f6..7351b2188 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -660,8 +660,8 @@ public class MachineRecipes { if(input.getItem() == ModItems.assembly_nopip) return new ItemStack(ModItems.ammo_44); - if(input.getItem() == ModItems.ammo_rocket) - return new ItemStack(ModItems.ammo_44_rocket); + //if(input.getItem() == ModItems.ammo_rocket) + // return new ItemStack(ModItems.ammo_44_rocket); } if(stamp.getItem() == ModItems.stamp_9) { @@ -675,8 +675,8 @@ public class MachineRecipes { if(input.getItem() == ModItems.assembly_lacunae) return new ItemStack(ModItems.ammo_5mm); - if(input.getItem() == ModItems.ammo_rocket) - return new ItemStack(ModItems.ammo_9mm_rocket); + //if(input.getItem() == ModItems.ammo_rocket) + // return new ItemStack(ModItems.ammo_9mm_rocket); } if(stamp.getItem() == ModItems.stamp_50) { @@ -758,13 +758,13 @@ public class MachineRecipes { recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_nopip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_nopip)); //recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_pip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_pip)); - recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.ammo_rocket) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.ammo_rocket)); + //recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.ammo_rocket) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.ammo_rocket)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_smg) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_smg)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_uzi) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_uzi)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_lacunae) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_lacunae)); recipes.put(new Object[] { i_stamps_9, new ItemStack(Items.gold_ingot) }, getPressResultNN(i_stamps_9.get(0).getItem(), Items.gold_ingot)); - recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.ammo_rocket) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.ammo_rocket)); + //recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.ammo_rocket) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.ammo_rocket)); recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_actionexpress) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_actionexpress)); recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_calamity) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_calamity)); @@ -954,10 +954,6 @@ public class MachineRecipes { return new ItemStack(ModBlocks.sellafield_core, 1); } - if (item == ModItems.bobmazon_materials) { - return new ItemStack(ModItems.bobmazon_hidden); - } - return null; } diff --git a/com/hbm/inventory/gui/GUIScreenBobmazon.java b/com/hbm/inventory/gui/GUIScreenBobmazon.java index c16e42bac..24f229ef7 100644 --- a/com/hbm/inventory/gui/GUIScreenBobmazon.java +++ b/com/hbm/inventory/gui/GUIScreenBobmazon.java @@ -197,7 +197,7 @@ public class GUIScreenBobmazon extends GuiScreen { public void executeAction() { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); if(type == 0) { - PacketDispatcher.wrapper.sendToServer(new ItemBobmazonPacket(offer)); + PacketDispatcher.wrapper.sendToServer(new ItemBobmazonPacket(player, offer)); } else if(type == 1) { if(currentPage > 0) currentPage--; diff --git a/com/hbm/items/weapon/ItemGunBase.java b/com/hbm/items/weapon/ItemGunBase.java index 79e6800f9..7b27e4769 100644 --- a/com/hbm/items/weapon/ItemGunBase.java +++ b/com/hbm/items/weapon/ItemGunBase.java @@ -353,7 +353,12 @@ public class ItemGunBase extends Item implements IHoldableWeapon { //now with less WET and more DRY //compact, readable and most importantly, FUNCTIONAL protected void reload2(ItemStack stack, World world, EntityPlayer player) { - + + if(getMag(stack) >= mainConfig.ammoCap) { + setIsReloading(stack, false); + return; + } + if(getReloadCycle(stack) < 0) { if(getMag(stack) == 0) @@ -382,7 +387,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon { } } - if(getMag(stack) == mainConfig.ammoCap) { + if(getMag(stack) >= mainConfig.ammoCap) { setIsReloading(stack, false); } else { resetReloadCycle(stack); diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index f8ebae473..f62ee0285 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -26,6 +26,7 @@ import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.items.ModItems; import com.hbm.particle.ParticleContrail; +import com.hbm.particle.ParticleRadiationFog; import com.hbm.particle.ParticleSmokePlume; import com.hbm.render.block.*; import com.hbm.render.entity.*; @@ -495,6 +496,12 @@ public class ClientProxy extends ServerProxy ParticleContrail contrail = new ParticleContrail(man, world, x, y, z); Minecraft.getMinecraft().effectRenderer.addEffect(contrail); break; + + case 3: + + ParticleRadiationFog fog = new ParticleRadiationFog(man, world, x, y, z); + Minecraft.getMinecraft().effectRenderer.addEffect(fog); + break; } } @@ -526,6 +533,10 @@ public class ClientProxy extends ServerProxy ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0.2F, 0.7F, 0.2F, 1F); Minecraft.getMinecraft().effectRenderer.addEffect(contrail); } + if("radSmoke".equals(type)) { + ParticleRadiationFog contrail = new ParticleRadiationFog(man, world, x, y, z); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } } @Override diff --git a/com/hbm/main/ModEventHandler.java b/com/hbm/main/ModEventHandler.java index 5db0647e3..4a71b60ad 100644 --- a/com/hbm/main/ModEventHandler.java +++ b/com/hbm/main/ModEventHandler.java @@ -124,6 +124,8 @@ public class ModEventHandler //try { ///// + + /// METEOR SHOWER START /// if(event.world != null && !event.world.isRemote && event.world.provider.isSurfaceWorld() && MainRegistry.enableMeteorStrikes) { if(event.world.rand.nextInt(meteorShower > 0 ? MainRegistry.meteorShowerChance : MainRegistry.meteorStrikeChance) == 0) { if(!event.world.playerEntities.isEmpty()) { @@ -157,7 +159,9 @@ public class ModEventHandler MainRegistry.logger.info("Started meteor shower! Duration: " + meteorShower); } } - + /// METEOR SHOWER END /// + + /// RADIATION STUFF START /// if(event.world != null && !event.world.isRemote && MainRegistry.enableRads) { int thunder = AuxSavedData.getThunder(event.world); @@ -306,120 +310,11 @@ public class ModEventHandler if(event.world.rand.nextInt(700) == 0) entity.addPotionEffect(new PotionEffect(Potion.hunger.id, 3 * 20, 2)); } - - /*PotionEffect effect = entity.getActivePotionEffect(HbmPotion.radiation); - - if(effect != null && !entity.isDead && entity.getHealth() > 0) { - - if(entity instanceof EntityCreeper) { - - if(event.world.rand.nextInt(5) == 0 ) { - EntityNuclearCreeper creep = new EntityNuclearCreeper(event.world); - creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - - if(!entity.isDead) - if(!event.world.isRemote) - event.world.spawnEntityInWorld(creep); - entity.setDead(); - } else { - entity.attackEntityFrom(ModDamageSource.radiation, 100F); - } - - } else if(entity instanceof EntityCow && !(entity instanceof EntityMooshroom)) { - EntityMooshroom creep = new EntityMooshroom(event.world); - creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - - if(!entity.isDead) - if(!event.world.isRemote) - event.world.spawnEntityInWorld(creep); - entity.setDead(); - - } else if(entity instanceof EntityVillager) { - EntityZombie creep = new EntityZombie(event.world); - creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - - if(!entity.isDead) - if(!event.world.isRemote) - event.world.spawnEntityInWorld(creep); - entity.setDead(); - - } else if(!(entity instanceof EntityNuclearCreeper) && !(entity instanceof EntityMooshroom) && !(entity instanceof EntityZombie)) { - - int level = effect.getAmplifier(); - - if(level > 14) { - if(event.world.rand.nextInt(100) == 0) - entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); - if(event.world.rand.nextInt(300) == 0) - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 5 * 20, 3)); - if(event.world.rand.nextInt(300) == 0) - entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 5 * 20, 3)); - if(event.world.rand.nextInt(300) == 0) - entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 5 * 20, 2)); - if(event.world.rand.nextInt(500) == 0) - entity.addPotionEffect(new PotionEffect(Potion.wither.id, 3 * 20, 4)); - } else if(level > 9) { - if(event.world.rand.nextInt(150) == 0) - entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); - if(event.world.rand.nextInt(400) == 0) - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 5 * 20, 3)); - if(event.world.rand.nextInt(400) == 0) - entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 5 * 20, 3)); - if(event.world.rand.nextInt(400) == 0) - entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 5 * 20, 2)); - } else if(level > 4) { - if(event.world.rand.nextInt(300) == 0) - entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); - if(event.world.rand.nextInt(500) == 0) - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 5 * 20, 1)); - if(event.world.rand.nextInt(500) == 0) - entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 5 * 20, 1)); - } - } - } - //radiation end - - //effect for tainted heart - if(entity.isPotionActive(HbmPotion.mutation) && !entity.isDead && entity.getHealth() > 0) { - - if(event.world.rand.nextInt(300) == 0) - entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 10 * 20, 1)); - if(event.world.rand.nextInt(300) == 0) - entity.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 15 * 20, 0)); - if(event.world.rand.nextInt(300) == 0) - entity.addPotionEffect(new PotionEffect(Potion.jump.id, 30 * 20, 1)); - - if(entity.getHealth() <= entity.getMaxHealth() / 10F * 5F) - entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 5 * 20, 2)); - if(entity.getHealth() <= entity.getMaxHealth() / 10F * 4F) - entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 5 * 20, 1)); - if(entity.getHealth() <= entity.getMaxHealth() / 10F * 3F) - entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 5 * 20, 4)); - if(entity.getHealth() <= entity.getMaxHealth() / 10F * 2F) - entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 5 * 20, 3)); - if(entity.getHealth() <= entity.getMaxHealth() / 10F * 1F) - entity.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 5 * 20, 0)); - - if(entity.isPotionActive(Potion.poison)) - entity.removePotionEffect(Potion.poison.id); - if(entity.isPotionActive(Potion.wither)) - entity.removePotionEffect(Potion.wither.id); - if(entity.isPotionActive(Potion.hunger)) - entity.removePotionEffect(Potion.hunger.id); - if(entity.isPotionActive(Potion.confusion)) - entity.removePotionEffect(Potion.confusion.id); - if(entity.isPotionActive(Potion.digSlowdown)) - entity.removePotionEffect(Potion.digSlowdown.id); - if(entity.isPotionActive(Potion.moveSlowdown)) - entity.removePotionEffect(Potion.moveSlowdown.id); - }*/ - //effect end - - //apply radiation } } } } + /// RADIATION STUFF END /// ////////////////////// /*} catch(Exception x) { diff --git a/com/hbm/packet/ItemBobmazonPacket.java b/com/hbm/packet/ItemBobmazonPacket.java index d81f1b355..0ac113f9f 100644 --- a/com/hbm/packet/ItemBobmazonPacket.java +++ b/com/hbm/packet/ItemBobmazonPacket.java @@ -4,12 +4,14 @@ import java.util.List; import java.util.Random; import com.hbm.entity.missile.EntityBobmazon; +import com.hbm.handler.BobmazonOfferFactory; import com.hbm.inventory.gui.GUIScreenBobmazon.Offer; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemAssemblyTemplate; import com.hbm.items.tool.ItemCassette; import com.hbm.items.tool.ItemChemistryTemplate; import com.hbm.items.tool.ItemFluidIdentifier; +import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineAssembler; @@ -31,52 +33,35 @@ import net.minecraft.world.World; public class ItemBobmazonPacket implements IMessage { - int item; - int stacksize; - int meta; - int cost; - int achievement; + int offer; public ItemBobmazonPacket() { } - public ItemBobmazonPacket(Offer offer) + public ItemBobmazonPacket(EntityPlayer player, Offer offer) { - this.item = Item.getIdFromItem(offer.offer.getItem()); - this.stacksize = offer.offer.stackSize; - this.meta = offer.offer.getItemDamage(); - this.cost = offer.cost; - - if(offer.requirement.achievement == MainRegistry.bobMetalworks) - this.achievement = 0; - if(offer.requirement.achievement == MainRegistry.bobAssembly) - this.achievement = 1; - if(offer.requirement.achievement == MainRegistry.bobChemistry) - this.achievement = 2; - if(offer.requirement.achievement == MainRegistry.bobOil) - this.achievement = 3; - if(offer.requirement.achievement == MainRegistry.bobNuclear) - this.achievement = 4; + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.bobmazon_materials) + this.offer = BobmazonOfferFactory.materials.indexOf(offer); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.bobmazon_machines) + this.offer = BobmazonOfferFactory.machines.indexOf(offer); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.bobmazon_weapons) + this.offer = BobmazonOfferFactory.weapons.indexOf(offer); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.bobmazon_tools) + this.offer = BobmazonOfferFactory.tools.indexOf(offer); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.bobmazon_hidden) + this.offer = BobmazonOfferFactory.special.indexOf(offer); } @Override public void fromBytes(ByteBuf buf) { - item = buf.readInt(); - stacksize = buf.readInt(); - meta = buf.readInt(); - cost = buf.readInt(); - achievement = buf.readInt(); + offer = buf.readInt(); } @Override public void toBytes(ByteBuf buf) { - buf.writeInt(item); - buf.writeInt(stacksize); - buf.writeInt(meta); - buf.writeInt(cost); - buf.writeInt(achievement); + buf.writeInt(offer); } public static class Handler implements IMessageHandler { @@ -86,26 +71,36 @@ public class ItemBobmazonPacket implements IMessage { EntityPlayerMP p = ctx.getServerHandler().playerEntity; World world = p.worldObj; - ItemStack stack = new ItemStack(Item.getItemById(m.item), m.stacksize, m.meta); - - Achievement req = null; - if(m.achievement == 0) - req = MainRegistry.bobMetalworks; - if(m.achievement == 1) - req = MainRegistry.bobAssembly; - if(m.achievement == 2) - req = MainRegistry.bobChemistry; - if(m.achievement == 3) - req = MainRegistry.bobOil; - if(m.achievement == 4) - req = MainRegistry.bobNuclear; + Offer offer = null; + if(p.getHeldItem() != null && p.getHeldItem().getItem() == ModItems.bobmazon_materials) + offer = BobmazonOfferFactory.materials.get(m.offer); + if(p.getHeldItem() != null && p.getHeldItem().getItem() == ModItems.bobmazon_machines) + offer = BobmazonOfferFactory.machines.get(m.offer); + if(p.getHeldItem() != null && p.getHeldItem().getItem() == ModItems.bobmazon_weapons) + offer = BobmazonOfferFactory.weapons.get(m.offer); + if(p.getHeldItem() != null && p.getHeldItem().getItem() == ModItems.bobmazon_tools) + offer = BobmazonOfferFactory.tools.get(m.offer); + if(p.getHeldItem() != null && p.getHeldItem().getItem() == ModItems.bobmazon_hidden) + offer = BobmazonOfferFactory.special.get(m.offer); - if(req != null && p.func_147099_x().hasAchievementUnlocked(req)) { + if(offer == null) { + p.addChatMessage(new ChatComponentText("[BOBMAZON] There appears to be a mismatch between the offer you have requested and the offers that exist.")); + p.addChatMessage(new ChatComponentText("[BOBMAZON] Engaging fail-safe...")); + p.attackEntityFrom(ModDamageSource.nuclearBlast, 1000); + p.motionY = 2.0D; + return null; + } + + ItemStack stack = offer.offer; + + Achievement req = offer.requirement.achievement; + + if(req != null && p.func_147099_x().hasAchievementUnlocked(req) || p.capabilities.isCreativeMode) { - if(countCaps(p) >= m.cost) { + if(countCaps(p) >= offer.cost || p.capabilities.isCreativeMode) { - payCaps(p, m.cost); + payCaps(p, offer.cost); p.inventoryContainer.detectAndSendChanges(); Random rand = world.rand; diff --git a/com/hbm/particle/ParticleRadiationFog.java b/com/hbm/particle/ParticleRadiationFog.java new file mode 100644 index 000000000..03f7a01d2 --- /dev/null +++ b/com/hbm/particle/ParticleRadiationFog.java @@ -0,0 +1,131 @@ +package com.hbm.particle; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleRadiationFog extends EntityFX { + + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/fog.png"); + private TextureManager theRenderEngine; + private int age; + private int maxAge; + + public ParticleRadiationFog(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_) { + super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); + theRenderEngine = p_i1213_1_; + maxAge = 100 + rand.nextInt(40); + + this.particleRed = this.particleGreen = this.particleBlue = 0; + this.particleScale = 7.5F; + } + + public ParticleRadiationFog(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_, float red, float green, float blue, float scale) { + super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); + theRenderEngine = p_i1213_1_; + maxAge = 100 + rand.nextInt(40); + + this.particleRed = red; + this.particleGreen = green; + this.particleBlue = blue; + + this.particleScale = scale; + } + + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + if(maxAge < 400) + { + maxAge = 400; + } + + this.particleAge++; + + if (this.particleAge >= maxAge) + { + this.setDead(); + } + + this.motionX *= 0.9599999785423279D; + this.motionY *= 0.9599999785423279D; + this.motionZ *= 0.9599999785423279D; + + if (this.onGround) + { + this.motionX *= 0.699999988079071D; + this.motionZ *= 0.699999988079071D; + } + } + + public int getFXLayer() { + return 3; + } + + public void renderParticle(Tessellator tess, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) { + + this.theRenderEngine.bindTexture(texture); + + float alpha = 0; + + alpha = (float) Math.sin(particleAge * Math.PI / (400F)) * 0.25F; + + GL11.glColor4f(0.85F, 0.9F, 0.5F, alpha); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + RenderHelper.disableStandardItemLighting(); + + Random rand = new Random(50); + + for(int i = 0; i < 25; i++) { + + double dX = (rand.nextGaussian() - 1D) * 2.5D; + double dY = (rand.nextGaussian() - 1D) * 0.15D; + double dZ = (rand.nextGaussian() - 1D) * 2.5D; + double size = rand.nextDouble() * particleScale; + + GL11.glTranslatef((float) dX, (float) dY, (float) dZ); + + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double)p_70539_2_ - interpPosX) + rand.nextGaussian() * 0.5); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double)p_70539_2_ - interpPosY) + rand.nextGaussian() * 0.5); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double)p_70539_2_ - interpPosZ) + rand.nextGaussian() * 0.5); + + tess.startDrawingQuads(); + tess.setNormal(0.0F, 1.0F, 0.0F); + tess.setBrightness(240); + tess.addVertexWithUV((double)(pX - p_70539_3_ * size - p_70539_6_ * size), (double)(pY - p_70539_4_ * size), (double)(pZ - p_70539_5_ * size - p_70539_7_ * size), 1, 1); + tess.addVertexWithUV((double)(pX - p_70539_3_ * size + p_70539_6_ * size), (double)(pY + p_70539_4_ * size), (double)(pZ - p_70539_5_ * size + p_70539_7_ * size), 1, 0); + tess.addVertexWithUV((double)(pX + p_70539_3_ * size + p_70539_6_ * size), (double)(pY + p_70539_4_ * size), (double)(pZ + p_70539_5_ * size + p_70539_7_ * size), 0, 0); + tess.addVertexWithUV((double)(pX + p_70539_3_ * size - p_70539_6_ * size), (double)(pY - p_70539_4_ * size), (double)(pZ + p_70539_5_ * size - p_70539_7_ * size), 0, 1); + tess.draw(); + + GL11.glTranslatef((float) -dX, (float) -dY, (float) -dZ); + } + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthMask(true); + + GL11.glPolygonOffset(0.0F, 0.0F); + GL11.glEnable(GL11.GL_LIGHTING); + } +} diff --git a/com/hbm/saveddata/RadiationSavedData.java b/com/hbm/saveddata/RadiationSavedData.java index e22df2ae4..4b500d779 100644 --- a/com/hbm/saveddata/RadiationSavedData.java +++ b/com/hbm/saveddata/RadiationSavedData.java @@ -5,7 +5,10 @@ import java.util.List; import com.hbm.entity.particle.EntityFogFX; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacket; +import com.hbm.packet.PacketDispatcher; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.WorldProviderHell; @@ -120,10 +123,11 @@ public class RadiationSavedData extends WorldSavedData { int z = struct.chunkY * 16 + worldObj.rand.nextInt(16); int y = worldObj.getHeightValue(x, z) + worldObj.rand.nextInt(5); - EntityFogFX fog = new EntityFogFX(worldObj); - fog.setPosition(x, y, z); + //EntityFogFX fog = new EntityFogFX(worldObj); + //fog.setPosition(x, y, z); //System.out.println(x + " " + y + " " + z); - worldObj.spawnEntityInWorld(fog); + //worldObj.spawnEntityInWorld(fog); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(x, y, z, 3), new TargetPoint(worldObj.provider.dimensionId, x, y, z, 100)); } if(struct.radiation > 1) { diff --git a/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index f653ae52c..adb2a124d 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; import java.util.List; import java.util.Random; @@ -449,7 +450,7 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve if(MachineRecipes.getOutputFromTempate(slots[4]) == null || MachineRecipes.getRecipeFromTempate(slots[4]) == null) return false; else { - List list = MachineRecipes.getRecipeFromTempate(slots[4]); + List list = copyItemStackList(MachineRecipes.getRecipeFromTempate(slots[4])); for(int i = 0; i < list.size(); i++) list.get(i).stackSize = 1; @@ -582,6 +583,16 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve return false; } + + public static List copyItemStackList(List list){ + List newList = new ArrayList(); + if(list == null || list.isEmpty()) + return newList; + for(ItemStack stack : list){ + newList.add(stack.copy()); + } + return newList; + } @Override public void setPower(long i) { diff --git a/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index bd5c838d5..135e58cb0 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -650,7 +650,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve (MachineRecipes.getChemOutputFromTempate(slots[4]) != null || !Library.isArrayEmpty(outputs)))) return false; else { - List list = MachineRecipes.getChemInputFromTempate(slots[4]); + List list = copyItemStackList(MachineRecipes.getChemInputFromTempate(slots[4])); if(list == null || list.isEmpty()) return false; @@ -785,6 +785,16 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve return false; } + + public static List copyItemStackList(List list){ + List newList = new ArrayList(); + if(list == null || list.isEmpty()) + return newList; + for(ItemStack stack : list){ + newList.add(stack.copy()); + } + return newList; + } @Override public void setPower(long i) { diff --git a/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index ab20f2b63..a06176ca8 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -40,7 +40,7 @@ public class TileEntityMachineCyclotron extends TileEntity implements ISidedInve public long power; public int progress; public int soundCycle = 0; - public static final long maxPower = 1000000000; + public static final long maxPower = 10000000; public static final int processTime = 690; public boolean isOn = false; public int age = 0; @@ -507,15 +507,15 @@ public class TileEntityMachineCyclotron extends TileEntity implements ISidedInve public int getPower(ItemStack stack) { if(stack != null) { if(stack.getItem() == ModItems.part_lithium) - return 25000; + return 250; if(stack.getItem() == ModItems.part_beryllium) - return 35000; + return 350; if(stack.getItem() == ModItems.part_carbon) - return 60000; + return 600; if(stack.getItem() == ModItems.part_copper) - return 75000; + return 750; if(stack.getItem() == ModItems.part_plutonium) - return 100000; + return 1000; } return 0; } diff --git a/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java b/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java index de5341c7a..d941a46f7 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java +++ b/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java @@ -186,31 +186,40 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven //DEBUG, remove later if(slots[2] != null && slots[2].getItem() == Items.wheat_seeds) { - slots[2] = new ItemStack(ModItems.nuke_starter_kit); + //slots[2] = new ItemStack(ModItems.nuke_starter_kit); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } if(slots[2] != null && slots[2].getItem() == Items.bone) { - slots[2] = new ItemStack(ModItems.nuke_advanced_kit); + //slots[2] = new ItemStack(ModItems.nuke_advanced_kit); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } if(slots[2] != null && slots[2].getItem() == Items.feather) { - slots[2] = new ItemStack(ModItems.nuke_commercially_kit); + //slots[2] = new ItemStack(ModItems.nuke_commercially_kit); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } if(slots[2] != null && slots[2].getItem() == Items.apple) { - slots[2] = new ItemStack(ModItems.nuke_electric_kit); + //slots[2] = new ItemStack(ModItems.nuke_electric_kit); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } if(slots[2] != null && slots[2].getItem() == Items.clay_ball) { - slots[2] = new ItemStack(ModItems.t45_kit); + //slots[2] = new ItemStack(ModItems.t45_kit); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } if(slots[2] != null && slots[2].getItem() == Items.stick) { - slots[2] = new ItemStack(ModItems.missile_kit); + //slots[2] = new ItemStack(ModItems.missile_kit); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } if(slots[2] != null && slots[2].getItem() == Items.string) { - slots[2] = new ItemStack(ModItems.grenade_kit); + //slots[2] = new ItemStack(ModItems.grenade_kit); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } if(slots[2] != null && slots[2].getItem() == Items.reeds) { - slots[2] = new ItemStack(ModItems.man_kit); + //slots[2] = new ItemStack(ModItems.man_kit); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } if(slots[2] != null && slots[2].getItem() == ModItems.battery_generic) { - slots[2] = new ItemStack(ModItems.memory); + //slots[2] = new ItemStack(ModItems.memory); + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); } // } diff --git a/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java b/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java index c617c7666..b5c487715 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java +++ b/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java @@ -228,12 +228,13 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid ItemMissile fuselage = (ItemMissile)slots[2].getItem(); ItemMissile thruster = (ItemMissile)slots[4].getItem(); - float weight = (Float)part.attributes[2]; - float thrust = (Float)thruster.attributes[2]; - - if(part.type == PartType.WARHEAD && fuselage.type == PartType.FUSELAGE && - part.bottom == fuselage.top && weight <= thrust) - return 1; + if(part.type == PartType.WARHEAD && fuselage.type == PartType.FUSELAGE && thruster.type == PartType.THRUSTER) { + float weight = (Float)part.attributes[2]; + float thrust = (Float)thruster.attributes[2]; + + if(part.bottom == fuselage.top && weight <= thrust) + return 1; + } } return 0; @@ -250,8 +251,7 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid ItemMissile part = (ItemMissile)slots[3].getItem(); ItemMissile fuselage = (ItemMissile)slots[2].getItem(); - if(part.type == PartType.FINS && fuselage.type == PartType.FUSELAGE && - part.top == fuselage.bottom) + if(part.top == fuselage.bottom) return 1; }