mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
248 lines
7.8 KiB
Java
248 lines
7.8 KiB
Java
package com.hbm.items.special;
|
|
|
|
import java.util.List;
|
|
|
|
import com.hbm.blocks.ModBlocks;
|
|
import com.hbm.entity.effect.EntityVortex;
|
|
import com.hbm.entity.missile.EntityMIRV;
|
|
import com.hbm.entity.projectile.EntityBoxcar;
|
|
import com.hbm.explosion.ExplosionChaos;
|
|
import com.hbm.explosion.ExplosionLarge;
|
|
import com.hbm.items.ModItems;
|
|
import com.hbm.lib.ModDamageSource;
|
|
import com.hbm.main.MainRegistry;
|
|
|
|
import api.hbm.energymk2.IBatteryItem;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.potion.Potion;
|
|
import net.minecraft.potion.PotionEffect;
|
|
import net.minecraft.util.ChatComponentText;
|
|
import net.minecraft.world.World;
|
|
|
|
public class ItemGlitch extends Item implements IBatteryItem {
|
|
|
|
public ItemGlitch()
|
|
{
|
|
this.maxStackSize = 1;
|
|
this.setMaxDamage(1);
|
|
}
|
|
|
|
|
|
@Override
|
|
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
|
|
|
stack.damageItem(5, player);
|
|
|
|
if(!world.isRemote)
|
|
switch(itemRand.nextInt(31)) {
|
|
case 0:
|
|
player.addChatMessage(new ChatComponentText("Sorry nothing."));
|
|
break;
|
|
case 1:
|
|
player.addChatMessage(new ChatComponentText("Prometheus was punished by the gods by giving the gift of knowledge to man. He was cast into the bowels of the earth and pecked by birds."));
|
|
break;
|
|
case 2:
|
|
player.attackEntityFrom(ModDamageSource.radiation, 1000);
|
|
break;
|
|
case 3:
|
|
player.attackEntityFrom(ModDamageSource.boxcar, 1000);
|
|
break;
|
|
case 4:
|
|
player.attackEntityFrom(ModDamageSource.blackhole, 1000);
|
|
break;
|
|
case 5:
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.block_meteor_treasure.getItemDropped(0, itemRand, 0)));
|
|
break;
|
|
case 6:
|
|
for(int i = 0; i < 3; i++)
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.block_meteor_treasure.getItemDropped(0, itemRand, 0)));
|
|
break;
|
|
case 7:
|
|
for(int i = 0; i < 10; i++)
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.block_meteor_treasure.getItemDropped(0, itemRand, 0)));
|
|
break;
|
|
case 8:
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_container, 10));
|
|
player.addChatMessage(new ChatComponentText("Oh, and by the way: The polaroid shifts reality. Things can be different if the polaroid is broken."));
|
|
break;
|
|
case 9:
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.nuke_advanced_kit, 1));
|
|
break;
|
|
case 10:
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.nuke_starter_kit, 1));
|
|
break;
|
|
case 11:
|
|
EntityBoxcar pip = new EntityBoxcar(world);
|
|
pip.posX = player.posX;
|
|
pip.posY = player.posY + 50;
|
|
pip.posZ = player.posZ;
|
|
world.spawnEntityInWorld(pip);
|
|
break;
|
|
case 12:
|
|
for(int i = 0; i < 10; i++) {
|
|
EntityBoxcar pippo = new EntityBoxcar(world);
|
|
pippo.posX = player.posX + itemRand.nextGaussian() * 25;
|
|
pippo.posY = player.posY + 50;
|
|
pippo.posZ = player.posZ + itemRand.nextGaussian() * 25;
|
|
world.spawnEntityInWorld(pippo);
|
|
}
|
|
break;
|
|
case 13:
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_pip));
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle_sparkle));
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter));
|
|
player.addChatMessage(new ChatComponentText("Have some free stuff. You'll need it for that one cryptic achievement."));
|
|
break;
|
|
case 14:
|
|
player.inventory.dropAllItems();
|
|
ExplosionChaos.burn(world, (int)player.posX, (int)player.posY, (int)player.posZ, 5);
|
|
break;
|
|
case 15:
|
|
for(int i = 0; i < 36; i++)
|
|
player.inventory.addItemStackToInventory(new ItemStack(Blocks.dirt, 64));
|
|
break;
|
|
case 16:
|
|
player.addChatMessage(new ChatComponentText("v yvxr lbhe nggvghqr!"));
|
|
break;
|
|
case 17:
|
|
player.addChatMessage(new ChatComponentText("89% of magic tricks are not magic. Technically, they are sorcery."));
|
|
break;
|
|
case 18:
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lever_action));
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12));
|
|
player.addChatMessage(new ChatComponentText("Here ya go."));
|
|
break;
|
|
case 19:
|
|
player.addChatMessage(new ChatComponentText("Ë"));
|
|
break;
|
|
case 20:
|
|
player.addChatMessage(new ChatComponentText("Good day, I am text"));
|
|
break;
|
|
case 21:
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear));
|
|
player.addChatMessage(new ChatComponentText("73616d706c652074657874!"));
|
|
break;
|
|
case 22:
|
|
player.addChatMessage(new ChatComponentText("Budget cuts, no effect for you."));
|
|
break;
|
|
case 23:
|
|
player.addChatMessage(new ChatComponentText("oof"));
|
|
break;
|
|
case 24:
|
|
player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 9));
|
|
player.addChatMessage(new ChatComponentText("Tank!"));
|
|
break;
|
|
case 25:
|
|
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 9));
|
|
player.addChatMessage(new ChatComponentText("More devastating than a falling boxcar!"));
|
|
break;
|
|
case 26:
|
|
player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 60 * 20, 9));
|
|
player.addChatMessage(new ChatComponentText("Ha!"));
|
|
break;
|
|
case 27:
|
|
EntityVortex vortex = new EntityVortex(world, 2.5F);
|
|
vortex.posX = player.posX;
|
|
vortex.posY = player.posY - 15;
|
|
vortex.posZ = player.posZ;
|
|
world.spawnEntityInWorld(vortex);
|
|
break;
|
|
case 28:
|
|
EntityMIRV mirv = new EntityMIRV(world);
|
|
mirv.posX = player.posX;
|
|
mirv.posY = player.posY + 100;
|
|
mirv.posZ = player.posZ;
|
|
world.spawnEntityInWorld(mirv);
|
|
player.addChatMessage(new ChatComponentText("Watch your head!"));
|
|
break;
|
|
case 29:
|
|
ExplosionLarge.spawnBurst(world, player.posX, player.posY, player.posZ, 27, 3);
|
|
player.addChatMessage(new ChatComponentText("Bam!"));
|
|
break;
|
|
case 30:
|
|
player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_saturnite));
|
|
player.addChatMessage(new ChatComponentText("It's dangerous to go alone, take this!"));
|
|
break;
|
|
}
|
|
|
|
player.inventoryContainer.detectAndSendChanges();
|
|
|
|
return stack;
|
|
}
|
|
|
|
@Override
|
|
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool)
|
|
{
|
|
list.add("It's a gamble!");
|
|
list.add("");
|
|
switch(MainRegistry.polaroidID) {
|
|
case 1:
|
|
list.add("Click-click-click!");
|
|
break;
|
|
case 2:
|
|
list.add("Creek!");
|
|
break;
|
|
case 3:
|
|
list.add("Bzzzt!");
|
|
break;
|
|
case 4:
|
|
list.add("TS staring off into space.");
|
|
break;
|
|
case 5:
|
|
list.add("BANG!!");
|
|
break;
|
|
case 6:
|
|
list.add("Woop!");
|
|
break;
|
|
case 7:
|
|
list.add("Poow!");
|
|
break;
|
|
case 8:
|
|
list.add("Pft!");
|
|
break;
|
|
case 9:
|
|
list.add("GF fgnevat bss vagb fcnpr.");
|
|
break;
|
|
case 10:
|
|
list.add("Backup memory #8 on 1.44 million bytes.");
|
|
break;
|
|
case 11:
|
|
list.add("PTANG!");
|
|
break;
|
|
case 12:
|
|
list.add("Bzzt-zrrt!");
|
|
break;
|
|
case 13:
|
|
list.add("Clang, click-brrthththrtrtrtrtrtr!");
|
|
break;
|
|
case 14:
|
|
list.add("KABLAM!");
|
|
break;
|
|
case 15:
|
|
list.add("PLENG!");
|
|
break;
|
|
case 16:
|
|
list.add("Wheeeeeeee-");
|
|
break;
|
|
case 17:
|
|
list.add("Thump.");
|
|
break;
|
|
case 18:
|
|
list.add("BANG! Choo-chooo! B A N G ! ! !");
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
@Override public void chargeBattery(ItemStack stack, long i) { }
|
|
@Override public void setCharge(ItemStack stack, long i) { }
|
|
@Override public void dischargeBattery(ItemStack stack, long i) { }
|
|
@Override public long getCharge(ItemStack stack) { return 200; }
|
|
@Override public long getMaxCharge() { return 200; }
|
|
@Override public long getChargeRate() { return 0; }
|
|
@Override public long getDischargeRate() { return 200; }
|
|
}
|