remove ItemBase form absChar and Mob

This commit is contained in:
2024-03-27 17:31:04 -05:00
parent aff2a8fa0e
commit def5ceee46
2 changed files with 27 additions and 404 deletions
+25 -25
View File
@@ -668,15 +668,15 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
/**
* @ Calculates Atr, and Damage for each weapon
*/
private static void calculateAtrDamageForWeapon(AbstractCharacter playerCharacter, Item weapon, boolean mainHand, Item otherHand) {
public static void calculateAtrDamageForWeapon(AbstractCharacter playerCharacter, Item weapon, boolean mainHand, Item otherHand) {
// make sure weapon exists
boolean noWeapon = false;
ItemBase wb = null;
ItemTemplate wb = null;
if (weapon == null)
noWeapon = true;
else {
ItemBase ib = weapon.getItemBase();
ItemTemplate ib = weapon.template;
if (ib == null)
noWeapon = true;
else if (!weapon.template.item_type.equals(ItemType.WEAPON)) {
@@ -691,14 +691,14 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
float speed = 20f;
boolean strBased = false;
ItemBase wbMain = (weapon != null) ? weapon.getItemBase() : null;
ItemBase wbOff = (otherHand != null) ? otherHand.getItemBase() : null;
ItemTemplate wbMain = (weapon != null) ? weapon.template : null;
ItemTemplate wbOff = (otherHand != null) ? otherHand.template : null;
// get skill percentages and min and max damage for weapons
if (noWeapon) {
if (mainHand) {
Item off = playerCharacter.charItemManager.getEquipped().get(EquipSlotType.LHELD);
if (off != null && off.getItemBase() != null && off.template.item_type.equals(ItemType.WEAPON))
if (off != null && off.template != null && off.template.item_type.equals(ItemType.WEAPON))
playerCharacter.rangeHandOne = 10 * (1 + (playerCharacter.statStrBase / 600)); // Set
// to
// no
@@ -720,9 +720,9 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
max = 3;
} else {
if (mainHand)
playerCharacter.rangeHandOne = weapon.getItemBase().getRange() * (1 + (playerCharacter.statStrBase / 600));
playerCharacter.rangeHandOne = weapon.template.item_weapon_max_range * (1 + (playerCharacter.statStrBase / 600));
else
playerCharacter.rangeHandTwo = weapon.getItemBase().getRange() * (1 + (playerCharacter.statStrBase / 600));
playerCharacter.rangeHandTwo = weapon.template.item_weapon_max_range * (1 + (playerCharacter.statStrBase / 600));
if (playerCharacter.bonuses != null) {
float range_bonus = 1 + playerCharacter.bonuses.getFloatPercentAll(ModType.WeaponRange, SourceType.NONE);
@@ -734,15 +734,15 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
}
skillPercentage = getModifiedAmount(playerCharacter.skills.get(weapon.template.item_skill_used));
masteryPercentage = getModifiedAmount(playerCharacter.skills.get(wb.getMastery()));
masteryPercentage = getModifiedAmount(playerCharacter.skills.get(wb.item_skill_mastery_used));
if (masteryPercentage == 0f)
mastDam = 0f;
// mastDam = CharacterSkill.getQuickMastery(this, wb.getMastery());
else
mastDam = masteryPercentage;
min = (float) wb.getMinDamage();
max = (float) wb.getMaxDamage();
strBased = wb.isStrBased();
min = (float) wb.item_weapon_damage.values().toArray()[0];
max = (float) wb.item_weapon_damage.values().toArray()[1];
strBased = wb.item_primary_attr.equals(AttributeType.Strength);
//
// Add parry bonus for weapon and allow parry if needed
@@ -803,7 +803,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
//calculate speed
if (wb != null)
speed = wb.getSpeed();
speed = wb.item_weapon_wepspeed;
else
speed = 20f; //unarmed attack speed
if (weapon != null)
@@ -839,7 +839,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
//if duel wielding, cut damage by 30%
if (otherHand != null) {
ItemBase ibo = otherHand.getItemBase();
ItemTemplate ibo = otherHand.template;
if (ibo != null && otherHand.template.equals(ItemType.WEAPON)) {
min *= 0.7f;
max *= 0.7f;
@@ -909,7 +909,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
if (ItemTemplate.isShield(shield) == false)
return 0;
ItemBase ab = shield.getItemBase();
ItemTemplate ab = shield.template;
if (ab == null)
return 0;
@@ -923,7 +923,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
} else
skillMod = blockSkill.getModifiedAmount();
float def = ab.getDefense();
float def = ab.item_defense_rating;
//apply item defense bonuses
if (shield != null) {
@@ -944,7 +944,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
if (armor == null)
return 0;
ItemBase ib = armor.getItemBase();
ItemTemplate ib = armor.template;
if (ib == null)
return 0;
@@ -953,16 +953,16 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
return 0;
if (armor.template.item_skill_used.isEmpty())
return ib.getDefense();
return ib.item_defense_rating;
CharacterSkill armorSkill = playerCharacter.skills.get(armor.template.item_skill_used);
if (armorSkill == null) {
Logger.error("Player " + playerCharacter.getObjectUUID()
+ " has armor equipped without the nescessary skill to equip it");
return ib.getDefense();
return ib.item_defense_rating;
}
float def = ib.getDefense();
float def = ib.item_defense_rating;
//apply item defense bonuses
if (armor != null) {
def += armor.getBonus(ModType.DR, SourceType.NONE);
@@ -978,7 +978,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
*/
private static float getWeaponDefense(AbstractCharacter playerCharacter, ConcurrentHashMap<EquipSlotType, Item> equipped) {
Item weapon = equipped.get(EquipSlotType.RHELD);
ItemBase wb = null;
ItemTemplate wb = null;
CharacterSkill skill, mastery;
float val = 0;
boolean unarmed = false;
@@ -987,9 +987,9 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
if (weapon == null || ItemTemplate.isShield(weapon))
unarmed = true;
else
wb = weapon.getItemBase();
wb = weapon.template;
} else
wb = weapon.getItemBase();
wb = weapon.template;
if (wb == null)
unarmed = true;
if (unarmed) {
@@ -997,7 +997,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
mastery = playerCharacter.skills.get("Unarmed Combat Mastery");
} else {
skill = playerCharacter.skills.get(weapon.template.item_skill_used);
mastery = playerCharacter.skills.get(wb.getMastery());
mastery = playerCharacter.skills.get(wb.item_skill_mastery_used);
}
if (skill != null)
val += (int) skill.getModifiedAmount() / 2f;
@@ -1029,7 +1029,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
return;
ConcurrentHashMap<EquipSlotType, Item> equipped = playerCharacter.charItemManager.getEquipped();
for (Item item : equipped.values()) {
ItemBase ib = item.getItemBase();
ItemTemplate ib = item.template;
if (ib == null)
continue;
//TODO add effect bonuses in here for equipped items