List of usage examples for org.apache.commons.lang3.mutable MutableFloat getValue
@Override
public Float getValue()
From source file:de.sanandrew.mods.claysoldiers.util.soldier.effect.EffectSlowMotion.java
@Override public void getAiMoveSpeed(EntityClayMan clayMan, SoldierEffectInst effectInst, MutableFloat speed) { speed.setValue(speed.getValue() / 2.0F); }
From source file:de.sanandrew.mods.claysoldiers.util.soldier.upgrade.misc.enchantment.UpgradeGoldIngot.java
@Override public boolean onSoldierHurt(EntityClayMan clayMan, SoldierUpgradeInst upgradeInst, DamageSource source, MutableFloat damage) { damage.setValue(Math.max(0.25F, damage.getValue() - 1.0F)); return false; }
From source file:de.sanandrew.mods.claysoldiers.util.soldier.upgrade.misc.enchantment.UpgradeWool.java
@Override public boolean onSoldierHurt(EntityClayMan clayMan, SoldierUpgradeInst upgradeInst, DamageSource source, MutableFloat damage) { if (!source.isUnblockable()) { damage.setValue(Math.max(0.25F, damage.getValue() - 1.0F)); }//from w w w . ja v a 2 s . com return false; }
From source file:de.sanandrew.mods.claysoldiers.util.soldier.upgrade.misc.enchantment.UpgradeIronBlock.java
@Override public boolean onSoldierHurt(EntityClayMan clayMan, SoldierUpgradeInst upgradeInst, DamageSource source, MutableFloat damage) { damage.setValue(Math.max(0.0F, damage.getValue() - 1.0F)); if (SAPUtils.RNG.nextBoolean()) { if (source == UpgradeBlazePowder.BLAZEPOWDER_DAMAGE_SRC) { return true; }/*from w w w . ja v a 2 s.c o m*/ if (clayMan.isPotionActive(Potion.poison)) { clayMan.removePotionEffect(Potion.poison.getId()); } for (ASoldierEffect effect : this.blockableEffects) { if (clayMan.hasEffect(effect)) { clayMan.removeEffect(effect); } } } return false; }
From source file:de.sanandrew.mods.claysoldiers.util.soldier.upgrade.lefthand.UpgradeBowl.java
@Override public boolean onSoldierHurt(EntityClayMan clayMan, SoldierUpgradeInst upgradeInst, DamageSource source, MutableFloat damage) { if (!source.isUnblockable()) { damage.setValue(Math.max(0.5F, damage.getValue() / 2.0F)); upgradeInst.getNbtTag().setShort(NBT_USES, (short) (upgradeInst.getNbtTag().getShort(NBT_USES) - 1)); }/*from w ww.ja v a 2 s . c om*/ return false; }
From source file:de.sanandrew.mods.claysoldiers.util.soldier.upgrade.misc.UpgradeFood.java
@Override public boolean onSoldierHurt(EntityClayMan clayMan, SoldierUpgradeInst upgradeInst, DamageSource source, MutableFloat damage) { if (clayMan.getHealth() + upgradeInst.getNbtTag().getFloat("healAmount") - damage.getValue() <= 0.0F) { upgradeInst.getNbtTag().setBoolean("killed", true); }/* w w w . j ava 2 s.com*/ return false; }
From source file:de.sanandrew.mods.claysoldiers.util.soldier.upgrade.misc.UpgradeEnderpearl.java
@Override public void onSoldierAttack(EntityClayMan clayMan, SoldierUpgradeInst upgradeInst, EntityClayMan target, MutableFloat damage) { if (target.getEntityToAttack() == null) { target.setTarget(clayMan);//from www .ja v a 2 s .c om } if (damage.getValue() >= target.getHealth()) { target.addUpgrade(SoldierUpgrades.getUpgrade(SoldierUpgrades.UPG_ENDERPEARL)); clayMan.heal(clayMan.getMaxHealth()); damage.setValue(0.0F); } upgradeInst.getNbtTag().setShort("ticksActive", (short) 0); }
From source file:de.sanandrew.mods.claysoldiers.util.soldier.upgrade.misc.UpgradeFeather.java
@Override public void getAiMoveSpeed(EntityClayMan clayMan, SoldierUpgradeInst upgradeInst, MutableFloat speed) { if (clayMan.ridingEntity == null && !clayMan.hasUpgrade(SoldierUpgrades.UPG_IRON_INGOT) && clayMan.motionY < -0.3D && clayMan.fallDistance >= 1.4F) { speed.setValue(speed.getValue() * 0.25F); }/* w ww . j a v a 2s . c o m*/ }
From source file:de.sanandrew.mods.claysoldiers.util.soldier.upgrade.lefthand.UpgradeEmerald.java
@Override public void getAiMoveSpeed(EntityClayMan clayMan, SoldierUpgradeInst upgradeInst, MutableFloat speed) { Entity target = clayMan.getEntityToAttack(); if (target instanceof EntityLivingBase && !target.isDead && clayMan.canEntityBeSeen(target) && ((EntityLivingBase) target).getHealth() > 0) { float multiplier = Math.min(1.0F, Math.max(-1.0F, (float) clayMan.getDistanceSqToEntity(target) - 16.0F)); speed.setValue(speed.getValue() * multiplier); }/*from w w w .j a v a2s . c o m*/ }
From source file:de.sanandrew.mods.claysoldiers.entity.EntityClayMan.java
@Override protected void updateEntityActionState() { //BUGFIX: fixes movement in blocks w/o collision box (snow layer, torches, tall grass, possibly cobweb?, etc.) if (!this.hasPath()) { if (this.entityToAttack != null) { this.setPathToEntity(BugfixHelper.getPathEntityToEntity(this.worldObj, this, this.entityToAttack, 16.0F, true, false, false, true)); } else if (this.p_targetFollow != null) { this.setPathToEntity(BugfixHelper.getPathEntityToEntity(this.worldObj, this, this.p_targetFollow, 16.0F, true, false, false, true)); } else if ((this.rand.nextInt(180) == 0 || this.rand.nextInt(120) == 0 || this.fleeingTick > 0) && this.entityAge < 100) { this.updateWanderPath(); }/*from w w w . j av a 2 s .c o m*/ } super.updateEntityActionState(); if (!this.worldObj.isRemote) { this.p_entitiesInRange = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.getTargetArea()); if (this.entityToAttack == null) { if (rand.nextInt(4) != 0 && p_targetFollow == null) { Collection<EntityClayMan> claymen = this.getSoldiersInRange(); for (EntityClayMan uberhaxornova : claymen) { if (uberhaxornova.isDead || rand.nextInt(3) != 0) { continue; } if (!this.checkIfValidTarget(uberhaxornova)) { continue; } this.entityToAttack = uberhaxornova; break; } } else { if (this.p_targetFollow == null) { Collection<EntityItem> items = this.getItemsInRange(); items: for (EntityItem seamus : items) { if (!this.canEntityBeSeen(seamus)) { continue; } ASoldierUpgrade upgrade = SoldierUpgrades.getUpgrade(seamus.getEntityItem()); if (upgrade != null) { if (this.hasUpgrade(upgrade) || !upgrade.canBePickedUp(this, seamus.getEntityItem(), null)) { continue; } else { for (SoldierUpgradeInst upgradeInst : this.p_upgrades.values()) { if (upgrade == upgradeInst.getUpgrade() || !upgrade.canBePickedUp(this, seamus.getEntityItem(), upgradeInst.getUpgrade())) { continue items; } } } } else { continue; } this.p_targetFollow = seamus; break; } } else { if (this.p_targetFollow.isDead) { this.p_targetFollow = null; } else if (!this.canEntityBeSeen(this.p_targetFollow)) { this.p_targetFollow = null; } if (this.p_targetFollow instanceof EntityItem && this.p_targetFollow.getDistanceToEntity(this) < 0.5F) { EntityItem itemEntity = (EntityItem) this.p_targetFollow; ASoldierUpgrade upgrade = SoldierUpgrades.getUpgrade(itemEntity.getEntityItem()); if (upgrade != null) { this.addUpgrade(upgrade, itemEntity.getEntityItem()); if (itemEntity.getEntityItem().stackSize <= 0) { itemEntity.setDead(); } this.p_targetFollow = null; } } else if (this.p_targetFollow instanceof IMount) { if (this.p_targetFollow.riddenByEntity != null) { this.p_targetFollow = null; } else if (this.p_targetFollow.getDistanceToEntity(this) < 0.5D) { this.mountEntity(this.p_targetFollow); this.p_targetFollow = null; } } } if (this.p_targetFollow == null && this.ridingEntity == null) { Collection<IMount> items = this.getMountsInRange(); for (IMount mount : items) { EntityLivingBase slyfox = (EntityLivingBase) mount; if (this.rand.nextInt(4) != 0 || !this.canEntityBeSeen(slyfox) || slyfox.riddenByEntity != null) { continue; } this.p_targetFollow = slyfox; break; } } } } else { if (this.entityToAttack.isDead || !this.canEntityBeSeen(this.entityToAttack) || (this.entityToAttack instanceof EntityClayMan && !this.checkIfValidTarget((EntityClayMan) this.entityToAttack))) { this.entityToAttack = null; } else if (this.attackTime == 0) { this.attackTime = 5; MutableFloat atkRng = new MutableFloat(this.riddenByEntity != null ? 0.6F : 0.7F); for (SoldierUpgradeInst upg : this.p_upgrades.values()) { upg.getUpgrade().getAttackRange(this, upg, this.entityToAttack, atkRng); } if (this.getDistanceToEntity(this.entityToAttack) < atkRng.floatValue() && this.entityToAttack instanceof EntityLivingBase && !this.entityToAttack.isEntityInvulnerable()) { EntityLivingBase target = (EntityLivingBase) this.entityToAttack; if (target.hurtTime == 0) { MutableFloat damage = new MutableFloat(ModConfig.soldierBaseDamage); if (target instanceof EntityClayMan) { EntityClayMan soldierTarget = (EntityClayMan) target; soldierTarget.knockBack = Triplet.with(0.8D, 0.8D, 0.8D); for (SoldierUpgradeInst upg : this.p_upgrades.values()) { upg.getUpgrade().onSoldierAttack(this, upg, soldierTarget, damage); } } if (target.attackEntityFrom(DamageSource.causeMobDamage(this), damage.getValue()) && target instanceof EntityClayMan) { for (SoldierUpgradeInst upg : this.p_upgrades.values()) { upg.getUpgrade().onSoldierDamage(this, upg, (EntityClayMan) target); } } } } } } } }