mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
miserable mutant glyphids
This commit is contained in:
parent
7b8a8e5706
commit
402690cb87
@ -28,6 +28,11 @@
|
||||
* Cable connections (connectors, pylons, substations) now render about 10x faster and no longer have weird inaccuracies where the segments meet
|
||||
* Cables can be made even faster by setting `RENDER_CABLE_HANG` in the config to `false`
|
||||
* This causes cable connections to render taut, eliminating the need for multiple segments per pylon side
|
||||
* Heat exchanging heaters are now set to 24,000mB/t by default
|
||||
* The ICF GUI now lists the laser input as "per tick"
|
||||
* Glpyhid hives caught in a fallout zone now turn radioactive
|
||||
* Glyphids spawned by radioactive hives are immune to fire, twice as fast and five times as strong
|
||||
* Radioactive glpyhids however are NOT immune to radiation, and typically die quickly
|
||||
|
||||
## Fixed
|
||||
* The conveyor grabber should no longer skip over items when used in long lines
|
||||
|
||||
@ -22,6 +22,7 @@ public class BlockGlyphid extends Block implements IBlockMulti {
|
||||
|
||||
public IIcon[] iconsStandard = new IIcon[2];
|
||||
public IIcon[] iconsInfested = new IIcon[2];
|
||||
public IIcon[] iconsRad = new IIcon[2];
|
||||
|
||||
public BlockGlyphid(Material mat) {
|
||||
super(mat);
|
||||
@ -57,16 +58,19 @@ public class BlockGlyphid extends Block implements IBlockMulti {
|
||||
iconsStandard[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_alt");
|
||||
iconsInfested[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_infested");
|
||||
iconsInfested[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_infested_alt");
|
||||
iconsRad[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_rad");
|
||||
iconsRad[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_rad_alt");
|
||||
}
|
||||
|
||||
protected IIcon[] getIconArray(int meta) {
|
||||
if(meta == 1) return this.iconsInfested;
|
||||
if(meta == 2) return this.iconsRad;
|
||||
return this.iconsStandard;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSubCount() {
|
||||
return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -38,7 +38,7 @@ import net.minecraft.world.World;
|
||||
|
||||
public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti {
|
||||
|
||||
public IIcon[] icons = new IIcon[2];
|
||||
public IIcon[] icons = new IIcon[3];
|
||||
|
||||
public BlockGlyphidSpawner(Material mat) {
|
||||
super(mat);
|
||||
@ -61,11 +61,12 @@ public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti {
|
||||
public void registerBlockIcons(IIconRegister reg) {
|
||||
icons[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_alt");
|
||||
icons[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_infested");
|
||||
icons[2] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_rad");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSubCount() {
|
||||
return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -168,6 +169,7 @@ public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti {
|
||||
if(soot >= chance[2] && rand.nextInt(100) <= adjustedChance) {
|
||||
EntityGlyphid entity = glyphid.getKey().apply(worldObj);
|
||||
if(meta == 1) entity.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED);
|
||||
if(meta == 2) entity.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_RADIOACTIVE);
|
||||
currentSpawns.add(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,6 +72,9 @@ public class FalloutConfigJSON {
|
||||
entries.add(new FalloutEntry() .mB(ModBlocks.waste_leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange));
|
||||
entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange - 5D));
|
||||
entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange - 5D));
|
||||
|
||||
entries.add(new FalloutEntry() .mB(ModBlocks.glyphid_base) .prim(new Triplet(ModBlocks.glyphid_base, 2, 1)));
|
||||
entries.add(new FalloutEntry() .mB(ModBlocks.glyphid_spawner) .prim(new Triplet(ModBlocks.glyphid_spawner, 2, 1)));
|
||||
|
||||
entries.add(new FalloutEntry().mB(Blocks.mossy_cobblestone).prim(new Triplet(Blocks.coal_ore, 0, 1)));
|
||||
entries.add(new FalloutEntry().mB(ModBlocks.ore_nether_uranium).prim(new Triplet(ModBlocks.ore_nether_schrabidium, 0, 1), new Triplet(ModBlocks.ore_nether_uranium_scorched, 0, 99)));
|
||||
|
||||
@ -86,6 +86,7 @@ public class EntityGlyphid extends EntityMob {
|
||||
//subtypes
|
||||
public static final int TYPE_NORMAL = 0;
|
||||
public static final int TYPE_INFECTED = 1;
|
||||
public static final int TYPE_RADIOACTIVE = 2;
|
||||
|
||||
//data watcher keys
|
||||
public static final int DW_WALL = 16;
|
||||
@ -116,9 +117,10 @@ public class EntityGlyphid extends EntityMob {
|
||||
@Override
|
||||
protected void applyEntityAttributes() {
|
||||
super.applyEntityAttributes();
|
||||
int variant = this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE);
|
||||
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getGrunt().health);
|
||||
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getGrunt().speed);
|
||||
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getGrunt().damage);
|
||||
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getGrunt().speed * (variant == TYPE_RADIOACTIVE ? 2D : 1D));
|
||||
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getGrunt().damage * (variant == TYPE_RADIOACTIVE ? 5D : 1D));
|
||||
}
|
||||
|
||||
public float getDivisorPerArmorPoint() {
|
||||
|
||||
@ -137,6 +137,7 @@ public abstract class GlyphidStats {
|
||||
|
||||
// If damage is fire damage, reduce damage above 5 then ignore armor
|
||||
if(source.isFireDamage()) {
|
||||
if(glyphid.getDataWatcher().getWatchableObjectByte(glyphid.DW_SUBTYPE) == glyphid.TYPE_RADIOACTIVE) return false;
|
||||
float dmg = Math.min(amount, 5F);
|
||||
if(amount > 5) dmg += (amount - 5F) * 0.1F;
|
||||
return glyphid.attackSuperclass(source, dmg);
|
||||
|
||||
@ -32,7 +32,7 @@ public class GUIICF extends GuiInfoContainer {
|
||||
icf.tanks[1].renderTankInfo(this, x, y, guiLeft + 188, guiTop + 18, 16, 70);
|
||||
icf.tanks[2].renderTankInfo(this, x, y, guiLeft + 224, guiTop + 18, 16, 70);
|
||||
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 8, guiTop + 18, 16, 70, x, y, icf.maxLaser <= 0 ? "OFFLINE" : (BobMathUtil.getShortNumber(icf.laser) + "TU - " + (icf.laser * 1000 / icf.maxLaser) / 10D + "%"));
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 8, guiTop + 18, 16, 70, x, y, icf.maxLaser <= 0 ? "OFFLINE" : (BobMathUtil.getShortNumber(icf.laser) + "TU/t - " + (icf.laser * 1000 / icf.maxLaser) / 10D + "%"));
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 187, guiTop + 89, 18, 18, x, y, BobMathUtil.getShortNumber(icf.heat) + " / " + BobMathUtil.getShortNumber(icf.maxHeat) + "TU");
|
||||
}
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHeatSource, INBTPacketReceiver, IFluidStandardTransceiver, IGUIProvider, IControlReceiver, IFluidCopiable {
|
||||
|
||||
public FluidTank[] tanks;
|
||||
public int amountToCool = 1;
|
||||
public int amountToCool = 24_000;
|
||||
public int tickDelay = 1;
|
||||
public int heatEnergy;
|
||||
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/glyphid.png
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/glyphid.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 599 B |
Binary file not shown.
|
After Width: | Height: | Size: 562 B |
Binary file not shown.
|
After Width: | Height: | Size: 408 B |
Binary file not shown.
|
After Width: | Height: | Size: 765 B |
Loading…
x
Reference in New Issue
Block a user