use of icbm.classic.content.explosive.blast.BlastEMP in project ICBM-Classic by BuiltBrokenModding.
the class CommandICBM method processCommand.
@Override
public void processCommand(ICommandSender sender, String[] args) {
try {
EntityPlayer entityPlayer = (EntityPlayer) sender;
int dimension = entityPlayer.worldObj.provider.dimensionId;
if (args == null || args.length == 0 || args[0].equalsIgnoreCase("help")) {
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("/icbmc help"));
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("/icbmc lag <radius>"));
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("/icbmc remove <All/Missile/Explosion> <radius>"));
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("/icbmc emp <radius>"));
return;
} else if (args.length >= 2 && args[0].equalsIgnoreCase("lag")) {
int radius = parseInt(sender, args[1]);
if (radius > 0) {
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(entityPlayer.posX - radius, entityPlayer.posY - radius, entityPlayer.posZ - radius, entityPlayer.posX + radius, entityPlayer.posY + radius, entityPlayer.posZ + radius);
List<Entity> entitiesNearby = entityPlayer.worldObj.getEntitiesWithinAABB(Entity.class, bounds);
for (Entity entity : entitiesNearby) {
if (entity instanceof EntityFlyingBlock) {
((EntityFlyingBlock) entity).setBlock();
} else if (entity instanceof EntityMissile) {
entity.setDead();
} else if (entity instanceof EntityExplosion) {
entity.setDead();
}
}
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("Removed all ICBM lag sources within " + radius + " radius."));
return;
} else {
throw new WrongUsageException("Radius needs to be higher than zero");
}
} else if (args.length >= 3 && args[0].equalsIgnoreCase("remove")) {
int radius = parseInt(sender, args[2]);
boolean all = args[1].equalsIgnoreCase("all");
boolean missile = args[1].equalsIgnoreCase("missiles");
boolean explosion = args[1].equalsIgnoreCase("explosion");
String str = "entities";
if (missile) {
str = "missiles";
}
if (explosion) {
str = "explosions";
}
if (radius > 0) {
EntityPlayer player = (EntityPlayer) sender;
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(player.posX - radius, player.posY - radius, player.posZ - radius, player.posX + radius, player.posY + radius, player.posZ + radius);
List<Entity> entitiesNearby = player.worldObj.getEntitiesWithinAABB(Entity.class, bounds);
for (Entity entity : entitiesNearby) {
if ((all || explosion) && entity instanceof EntityFlyingBlock) {
((EntityFlyingBlock) entity).setBlock();
} else if ((all || missile) && entity instanceof EntityMissile) {
entity.setDead();
} else if ((all || explosion) && entity instanceof EntityExplosion) {
entity.setDead();
}
}
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("Removed all ICBM " + str + " within " + radius + " radius."));
return;
} else {
throw new WrongUsageException("Radius needs to be higher than zero");
}
} else if (args.length >= 2 && args[0].equalsIgnoreCase("emp")) {
int radius = parseInt(sender, args[1]);
if (radius > 0) {
new BlastEMP(entityPlayer.worldObj, null, entityPlayer.posX, entityPlayer.posY, entityPlayer.posZ, radius).setEffectBlocks().setEffectEntities().doExplode();
switch(entityPlayer.worldObj.rand.nextInt(20)) {
case 0:
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("Did you pay the power bill?"));
return;
case 1:
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("See them power their toys now!"));
return;
case 2:
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("Hey who turned the lights out."));
return;
case 3:
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("Ha! I run on steam power!"));
return;
case 4:
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("The power of lighting at my finger tips!"));
return;
default:
((EntityPlayer) sender).addChatComponentMessage(new ChatComponentText("Zap!"));
return;
}
} else {
throw new WrongUsageException("Radius needs to be higher than zero");
}
}
} catch (Exception e) {
}
throw new WrongUsageException(this.getCommandUsage(sender));
}
use of icbm.classic.content.explosive.blast.BlastEMP in project ICBM-Classic by BuiltBrokenModding.
the class TileEMPTower method fire.
//@Callback(limit = 1)
public boolean fire() {
if (this.checkExtract()) {
if (isReady()) {
switch(this.empMode) {
default:
new BlastEMP(this.worldObj, null, this.xCoord + 0.5, this.yCoord + 1.2, this.zCoord + 0.5, this.empRadius).setEffectBlocks().setEffectEntities().explode();
break;
case 1:
new BlastEMP(this.worldObj, null, this.xCoord + 0.5, this.yCoord + 1.2, this.zCoord + 0.5, this.empRadius).setEffectEntities().explode();
break;
case 2:
new BlastEMP(this.worldObj, null, this.xCoord + 0.5, this.yCoord + 1.2, this.zCoord + 0.5, this.empRadius).setEffectBlocks().explode();
break;
}
this.extractEnergy();
this.cooldownTicks = getMaxCooldown();
return true;
}
}
return false;
}
Aggregations