Example usage for org.apache.commons.lang3.mutable MutableFloat getValue

List of usage examples for org.apache.commons.lang3.mutable MutableFloat getValue

Introduction

In this page you can find the example usage for org.apache.commons.lang3.mutable MutableFloat getValue.

Prototype

@Override
public Float getValue() 

Source Link

Document

Gets the value as a Float instance.

Usage

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);
                            }
                        }
                    }
                }
            }
        }
    }
}