@Override public void Draw(SpriteBatch renderer) { super.Draw(renderer); if (!m_inMenu) { m_detectionRange = m_detectionRangeReset; SetShieldColor(); m_pooledShieldEffect.setPosition(m_objectXPosition, m_objectYPosition); m_pooledShieldEffect.getEmitters().get(0).getRotation().setHigh((float) m_angleDegrees); m_pooledShieldEffect.getEmitters().get(0).getRotation().setLow((float) m_angleDegrees); m_pooledShieldEffect.draw(renderer, 1f / 60f); DrawHackedIndicator(renderer); for (int i = 0; i < m_overTimeEffects.size(); i++) { OverTimeEffect e = m_overTimeEffects.get(i); if (!e.Action()) { m_overTimeEffects.remove(e); } } if (!m_freezeShip) { if (m_weaponsFree > 0) { ProcessCounterMeasures(renderer); } else { StopCounterMeasureSound(); } ce.Draw(renderer); me.Draw(renderer); HandleShieldRecharging(); HandleBoostRecharge(); } } super.Draw(renderer); }
@Override public void damageCalc(ViewedCollidable object2, float crashVelocity) { if (crashVelocity > 3) { object2.damageIntegrity(this, crashVelocity * m_body.getMass() / 30, DamageType.Collision); me.RegisterCollision(); } }
@Override public void damageIntegrity( ViewedCollidable damageOrigin, float damage, DamageType type, boolean bypassShieldResistances, boolean bypassShields, boolean bypassResistances) { float damageToIntegrity = damage; if (m_shieldIntegrity > 0 && !bypassShields) { if (!bypassShieldResistances) { damage = damage * m_shieldDamageResistances[type.value]; damage = damage > m_shieldDamageReductions[type.value] ? damage - m_damageReductions[type.value] : 0; } damageToIntegrity = 0; m_shieldIntegrity = damage > m_shieldIntegrity ? 0 : m_shieldIntegrity - damage; } if (damage > 0) { m_shieldRechargeCounter = m_shieldRechargeDelay; } super.damageIntegrity( damageOrigin, damageToIntegrity, type, bypassShieldResistances, bypassShields, bypassResistances); }
@Override public void damageCalc(ViewedCollidable object2, float crashVelocity) { object2.damageIntegrity(this, (crashVelocity * 1), DamageType.Collision); me.RegisterCollision(); }