mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-02-13 21:18:13 +01:00
Fightstyles: Fix merge issues from master.
This commit is contained in:
@@ -144,7 +144,7 @@ public final class ItemController {
|
||||
SkillController.applySkillEffectsFromItemProficiencies(player);
|
||||
SkillController.applySkillEffectsFromFightingStyles(player);
|
||||
}
|
||||
private static ItemType getMainWeapon(Player player) {
|
||||
public static ItemType getMainWeapon(Player player) {
|
||||
ItemType itemType = player.inventory.wear[Inventory.WEARSLOT_WEAPON];
|
||||
if (itemType != null) return itemType;
|
||||
itemType = player.inventory.wear[Inventory.WEARSLOT_SHIELD];
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.traits.AbilityModifierTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
@@ -191,7 +192,7 @@ public final class SkillController {
|
||||
}
|
||||
|
||||
public static void applySkillEffectsFromItemProficiencies(Player player) {
|
||||
CombatTraits playerTraits = player.combatTraits;
|
||||
Player playerTraits = player;
|
||||
|
||||
ItemType mainWeapon = ItemController.getMainWeapon(player);
|
||||
if (mainWeapon != null) {
|
||||
@@ -232,13 +233,13 @@ public final class SkillController {
|
||||
int skill = getProficiencySkillForItemCategory(itemType.category);
|
||||
if (skill == SkillCollection.SKILL_ARMOR_PROFICIENCY_LIGHT) {
|
||||
if (skillLevelLightArmor > 0) {
|
||||
playerTraits.blockChance += getPercentage(itemType.effects_equip.combatProficiency.blockChance, SkillCollection.PER_SKILLPOINT_INCREASE_LIGHT_ARMOR_BC_PERCENT * skillLevelLightArmor);
|
||||
playerTraits.blockChance += getPercentage(itemType.effects_equip.stats.increaseBlockChance, SkillCollection.PER_SKILLPOINT_INCREASE_LIGHT_ARMOR_BC_PERCENT * skillLevelLightArmor);
|
||||
}
|
||||
} else if (skill == SkillCollection.SKILL_ARMOR_PROFICIENCY_HEAVY) {
|
||||
if (skillLevelHeavyArmor > 0) {
|
||||
playerTraits.blockChance += getPercentage(itemType.effects_equip.combatProficiency.blockChance, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT * skillLevelHeavyArmor);
|
||||
player.actorTraits.moveCost -= getPercentage(itemType.effects_equip.moveCostPenalty, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT * skillLevelHeavyArmor);
|
||||
playerTraits.attackCost -= getPercentage(itemType.effects_equip.combatProficiency.attackCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT * skillLevelHeavyArmor);
|
||||
playerTraits.blockChance += getPercentage(itemType.effects_equip.stats.increaseBlockChance, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT * skillLevelHeavyArmor);
|
||||
playerTraits.moveCost -= getPercentage(itemType.effects_equip.stats.increaseMoveCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT * skillLevelHeavyArmor);
|
||||
playerTraits.attackCost -= getPercentage(itemType.effects_equip.stats.increaseAttackCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT * skillLevelHeavyArmor);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -259,7 +260,7 @@ public final class SkillController {
|
||||
private static boolean hasItemWithWeight(Player player, int slot) {
|
||||
ItemType itemType = player.inventory.wear[slot];
|
||||
if (itemType == null) return false;
|
||||
if (itemType.category.size == ItemCategory.SIZE_NONE) return false;
|
||||
if (itemType.category.getSize() == ItemCategory.SIZE_NONE) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -286,15 +287,16 @@ public final class SkillController {
|
||||
} else if (category.isShield()) {
|
||||
return SkillCollection.SKILL_ARMOR_PROFICIENCY_SHIELD;
|
||||
} else if (category.isArmor()) {
|
||||
if (category.size == ItemCategory.SIZE_LIGHT) return SkillCollection.SKILL_ARMOR_PROFICIENCY_LIGHT;
|
||||
if (category.size == ItemCategory.SIZE_STD) return SkillCollection.SKILL_ARMOR_PROFICIENCY_LIGHT;
|
||||
if (category.size == ItemCategory.SIZE_LARGE) return SkillCollection.SKILL_ARMOR_PROFICIENCY_HEAVY;
|
||||
int size = category.getSize();
|
||||
if (size == ItemCategory.SIZE_LIGHT) return SkillCollection.SKILL_ARMOR_PROFICIENCY_LIGHT;
|
||||
if (size == ItemCategory.SIZE_STD) return SkillCollection.SKILL_ARMOR_PROFICIENCY_LIGHT;
|
||||
if (size == ItemCategory.SIZE_LARGE) return SkillCollection.SKILL_ARMOR_PROFICIENCY_HEAVY;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static void applySkillEffectsFromFightingStyles(Player player) {
|
||||
CombatTraits playerTraits = player.combatTraits;
|
||||
Player playerTraits = player;
|
||||
ItemType mainHandItem = player.inventory.wear[Inventory.WEARSLOT_WEAPON];
|
||||
ItemType offHandItem = player.inventory.wear[Inventory.WEARSLOT_SHIELD];
|
||||
|
||||
@@ -318,28 +320,28 @@ public final class SkillController {
|
||||
if (isDualWielding(mainHandItem, offHandItem)) {
|
||||
int skillLevelFightStyle = player.getSkillLevel(SkillCollection.SKILL_FIGHTSTYLE_DUAL_WIELD);
|
||||
if (offHandItem.effects_equip != null) {
|
||||
CombatTraits offHandCombatTraits = offHandItem.effects_equip.combatProficiency;
|
||||
int attackCostMainHand = mainHandItem.effects_equip.combatProficiency.attackCost;
|
||||
AbilityModifierTraits offHandCombatTraits = offHandItem.effects_equip.stats;
|
||||
int attackCostMainHand = mainHandItem.effects_equip.stats.increaseAttackCost;
|
||||
int percent;
|
||||
if (skillLevelFightStyle == 2) {
|
||||
percent = SkillCollection.DUALWIELD_EFFICIENCY_LEVEL2;
|
||||
playerTraits.attackCost = Math.max(attackCostMainHand, offHandCombatTraits.attackCost);
|
||||
playerTraits.attackCost = Math.max(attackCostMainHand, offHandCombatTraits.increaseAttackCost);
|
||||
} else if (skillLevelFightStyle == 1) {
|
||||
percent = SkillCollection.DUALWIELD_EFFICIENCY_LEVEL1;
|
||||
playerTraits.attackCost = attackCostMainHand + getPercentage(offHandCombatTraits.attackCost, SkillCollection.DUALWIELD_LEVEL1_OFFHAND_AP_COST_PERCENT);
|
||||
playerTraits.attackCost = attackCostMainHand + getPercentage(offHandCombatTraits.increaseAttackCost, SkillCollection.DUALWIELD_LEVEL1_OFFHAND_AP_COST_PERCENT);
|
||||
} else {
|
||||
percent = SkillCollection.DUALWIELD_EFFICIENCY_LEVEL0;
|
||||
playerTraits.attackCost = attackCostMainHand + offHandCombatTraits.attackCost;
|
||||
playerTraits.attackCost = attackCostMainHand + offHandCombatTraits.increaseAttackCost;
|
||||
}
|
||||
|
||||
int attackChance = offHandCombatTraits.attackChance;
|
||||
int attackChance = offHandCombatTraits.increaseAttackChance;
|
||||
attackChance += SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_PROF_AC * getSkillLevelForItemType(player, offHandItem);
|
||||
|
||||
playerTraits.attackChance += (int) FloatMath.floor(attackChance * percent / 100.0f);
|
||||
playerTraits.blockChance += (int) FloatMath.floor(offHandCombatTraits.blockChance * percent / 100.0f);
|
||||
playerTraits.damagePotential.addToMax((int) FloatMath.floor(offHandCombatTraits.damagePotential.max * percent / 100.0f));
|
||||
playerTraits.damagePotential.add((int) FloatMath.floor(offHandCombatTraits.damagePotential.current * percent / 100.0f), false);
|
||||
playerTraits.criticalSkill += (int) FloatMath.floor(offHandCombatTraits.criticalSkill * percent / 100.0f);
|
||||
playerTraits.blockChance += (int) FloatMath.floor(offHandCombatTraits.increaseBlockChance * percent / 100.0f);
|
||||
playerTraits.damagePotential.addToMax((int) FloatMath.floor(offHandCombatTraits.increaseMaxDamage * percent / 100.0f));
|
||||
playerTraits.damagePotential.add((int) FloatMath.floor(offHandCombatTraits.increaseMinDamage * percent / 100.0f), false);
|
||||
playerTraits.criticalSkill += (int) FloatMath.floor(offHandCombatTraits.increaseCriticalSkill * percent / 100.0f);
|
||||
}
|
||||
|
||||
int skillLevelSpecialization = player.getSkillLevel(SkillCollection.SKILL_SPECIALIZATION_DUAL_WIELD);
|
||||
@@ -350,23 +352,23 @@ public final class SkillController {
|
||||
}
|
||||
}
|
||||
|
||||
private static void addPercentAttackChance(CombatTraits combatTraits, ItemType itemType, int percentToAdd) {
|
||||
private static void addPercentAttackChance(Player player, ItemType itemType, int percentToAdd) {
|
||||
if (itemType.effects_equip == null) return;
|
||||
if (percentToAdd == 0) return;
|
||||
combatTraits.attackChance += getPercentage(itemType.effects_equip.combatProficiency.attackChance, percentToAdd);
|
||||
player.attackChance += getPercentage(itemType.effects_equip.stats.increaseAttackChance, percentToAdd);
|
||||
}
|
||||
|
||||
private static void addPercentBlockChance(CombatTraits combatTraits, ItemType itemType, int percentToAdd) {
|
||||
private static void addPercentBlockChance(Player player, ItemType itemType, int percentToAdd) {
|
||||
if (itemType.effects_equip == null) return;
|
||||
if (percentToAdd == 0) return;
|
||||
combatTraits.blockChance += getPercentage(itemType.effects_equip.combatProficiency.blockChance, percentToAdd);
|
||||
player.blockChance += getPercentage(itemType.effects_equip.stats.increaseBlockChance, percentToAdd);
|
||||
}
|
||||
|
||||
private static void addPercentDamage(CombatTraits combatTraits, ItemType itemType, int percentToAdd) {
|
||||
private static void addPercentDamage(Player player, ItemType itemType, int percentToAdd) {
|
||||
if (itemType.effects_equip == null) return;
|
||||
if (percentToAdd == 0) return;
|
||||
combatTraits.damagePotential.addToMax(getPercentage(itemType.effects_equip.combatProficiency.damagePotential.max, percentToAdd));
|
||||
combatTraits.damagePotential.add(getPercentage(itemType.effects_equip.combatProficiency.damagePotential.current, percentToAdd), false);
|
||||
player.damagePotential.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxDamage, percentToAdd));
|
||||
player.damagePotential.add(getPercentage(itemType.effects_equip.stats.increaseMinDamage, percentToAdd), false);
|
||||
}
|
||||
|
||||
private static int getPercentage(int originalValue, int percentToAdd) {
|
||||
|
||||
@@ -184,34 +184,34 @@ public final class SkillCollection {
|
||||
,SkillLevelRequirement.requireOtherSkill(SKILL_WEAPON_CHANCE, 3)
|
||||
,SkillLevelRequirement.requireOtherSkill(SKILL_WEAPON_DMG, 5)
|
||||
}));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_DAGGER, 3, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_1HSWORD, 3, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_2HSWORD, 3, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_AXE, 3, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_BLUNT, 3, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_UNARMED, 3, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_ARMOR_PROFICIENCY_SHIELD, 2, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_ARMOR_PROFICIENCY_UNARMORED, 3, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_ARMOR_PROFICIENCY_LIGHT, 3, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_ARMOR_PROFICIENCY_HEAVY, 4, false, null));
|
||||
initializeSkill(new SkillInfo(SKILL_FIGHTSTYLE_DUAL_WIELD, 2, false, new SkillLevelRequirement[] {
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_DAGGER, 3, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_1HSWORD, 3, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_2HSWORD, 3, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_AXE, 3, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_BLUNT, 3, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_PROFICIENCY_UNARMED, 3, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_ARMOR_PROFICIENCY_SHIELD, 2, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_ARMOR_PROFICIENCY_UNARMORED, 3, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_ARMOR_PROFICIENCY_LIGHT, 3, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_ARMOR_PROFICIENCY_HEAVY, 4, SkillInfo.LEVELUP_TYPE_FIRST_LEVEL_REQUIRES_QUEST, null));
|
||||
initializeSkill(new SkillInfo(SKILL_FIGHTSTYLE_DUAL_WIELD, 2, SkillInfo.LEVELUP_TYPE_ALWAYS_SHOWN, new SkillLevelRequirement[] {
|
||||
SkillLevelRequirement.requireExperienceLevels(15, 0)
|
||||
}));
|
||||
initializeSkill(new SkillInfo(SKILL_FIGHTSTYLE_2HAND, 2, false, new SkillLevelRequirement[] {
|
||||
initializeSkill(new SkillInfo(SKILL_FIGHTSTYLE_2HAND, 2, SkillInfo.LEVELUP_TYPE_ALWAYS_SHOWN, new SkillLevelRequirement[] {
|
||||
SkillLevelRequirement.requireExperienceLevels(15, 0)
|
||||
}));
|
||||
initializeSkill(new SkillInfo(SKILL_FIGHTSTYLE_WEAPON_SHIELD, 2, false, new SkillLevelRequirement[] {
|
||||
initializeSkill(new SkillInfo(SKILL_FIGHTSTYLE_WEAPON_SHIELD, 2, SkillInfo.LEVELUP_TYPE_ALWAYS_SHOWN, new SkillLevelRequirement[] {
|
||||
SkillLevelRequirement.requireExperienceLevels(15, 0)
|
||||
}));
|
||||
initializeSkill(new SkillInfo(SKILL_SPECIALIZATION_DUAL_WIELD, 1, false, new SkillLevelRequirement[] {
|
||||
initializeSkill(new SkillInfo(SKILL_SPECIALIZATION_DUAL_WIELD, 1, SkillInfo.LEVELUP_TYPE_ALWAYS_SHOWN, new SkillLevelRequirement[] {
|
||||
SkillLevelRequirement.requireExperienceLevels(45, 0)
|
||||
,SkillLevelRequirement.requireOtherSkill(SKILL_FIGHTSTYLE_DUAL_WIELD, 2)
|
||||
}));
|
||||
initializeSkill(new SkillInfo(SKILL_SPECIALIZATION_2HAND, 1, false, new SkillLevelRequirement[] {
|
||||
initializeSkill(new SkillInfo(SKILL_SPECIALIZATION_2HAND, 1, SkillInfo.LEVELUP_TYPE_ALWAYS_SHOWN, new SkillLevelRequirement[] {
|
||||
SkillLevelRequirement.requireExperienceLevels(45, 0)
|
||||
,SkillLevelRequirement.requireOtherSkill(SKILL_FIGHTSTYLE_2HAND, 2)
|
||||
}));
|
||||
initializeSkill(new SkillInfo(SKILL_SPECIALIZATION_WEAPON_SHIELD, 1, false, new SkillLevelRequirement[] {
|
||||
initializeSkill(new SkillInfo(SKILL_SPECIALIZATION_WEAPON_SHIELD, 1, SkillInfo.LEVELUP_TYPE_ALWAYS_SHOWN, new SkillLevelRequirement[] {
|
||||
SkillLevelRequirement.requireExperienceLevels(45, 0)
|
||||
,SkillLevelRequirement.requireOtherSkill(SKILL_FIGHTSTYLE_WEAPON_SHIELD, 2)
|
||||
}));
|
||||
|
||||
@@ -23,20 +23,21 @@ public final class ItemCategory {
|
||||
private static final int ACTIONTYPE_NONE = 0;
|
||||
private static final int ACTIONTYPE_USE = 1;
|
||||
private static final int ACTIONTYPE_EQUIP = 2;
|
||||
public int getSize() { return size; }
|
||||
public boolean isEquippable() { return actionType == ACTIONTYPE_EQUIP; }
|
||||
public boolean isUsable() { return actionType == ACTIONTYPE_USE; }
|
||||
public boolean isWeapon() { return inventorySlot == Inventory.WEARSLOT_WEAPON; }
|
||||
public boolean isShield() { return inventorySlot == Inventory.WEARSLOT_SHIELD; }
|
||||
public boolean isArmor() { return Inventory.isArmorSlot(inventorySlot); }
|
||||
public boolean isTwohandWeapon() {
|
||||
/*if (!isWeapon()) return false;
|
||||
if (!isWeapon()) return false;
|
||||
else if (size == SIZE_LARGE) return true;
|
||||
else*/ return false;
|
||||
else return false;
|
||||
}
|
||||
public boolean isOffhandCapableWeapon() {
|
||||
/*if (!isWeapon()) return false;
|
||||
if (!isWeapon()) return false;
|
||||
else if (size == SIZE_LIGHT) return true;
|
||||
else if (size == SIZE_STD) return true;
|
||||
else*/ return false;
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user