diff --git a/AndorsTrail/res/values/strings.xml b/AndorsTrail/res/values/strings.xml index 49c9adf9a..556f592a2 100644 --- a/AndorsTrail/res/values/strings.xml +++ b/AndorsTrail/res/values/strings.xml @@ -612,6 +612,7 @@ Fighting style: Dual wield Fighting style: Two-handed weapon Fighting style: Weapon and shield + Fighting style: Way of the monk Specialization: Dual wield Specialization: Two-handed weapon Specialization: Weapon and shield @@ -630,6 +631,7 @@ Wield two weapons at the same time Make better use of weapons that require both hands Better at fighting with weapon and shield + Better at fighting unarmed/unarmored Expert at dual wielding Expert at two-handed weapons Expert at fighting with weapon and shield @@ -658,6 +660,9 @@ Every skill level increases damage potential of two-handed weapons with %1$d %% "Gives benefits when fighting with a weapon in the main hand and having a shield equipped in the off-hand. Every skill level increases the attack chance of weapons with %1$d %% of their original attack chances, and the block chance of shields by %2$d %% of their original block chances." + "While fighting without having any piece of armor equipped, gain %1$d block chance and %2$d damage resistance per skill level. Items made of cloth are not considered as being armor. + +Every skill level increases for each free hand the attack chance by %3$d, the maximum damage by %4$d and gives a critical multiplier of %5$d %% when both hands are free." Increases the attack chance of both wielded weapons by an additional %1$d %% of their original attack chances, in addition to the benefits given by the weapon style skill. The block chances of both wielded weapons are also increased by %2$d %% of their original block chances. Increases damage potential of two-handed weapons by an additional %1$d %% of the original damage potential, in addition to the benefits given by the weapon style skill. The attack chances of two-handed weapons are also increased by %2$d %% of their original attack chances. Increases both attack chances and damage potential of weapons. The attack chance is increased by %1$d %% of the original attack chance, and the damage potential is increased by %2$d %% of the original damage potential. diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/SkillInfoActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/SkillInfoActivity.java index c438cda66..b0c0598b8 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/SkillInfoActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/SkillInfoActivity.java @@ -148,6 +148,7 @@ public final class SkillInfoActivity extends AndorsTrailBaseActivity { case fightstyleDualWield: return R.string.skill_title_fightstyle_dualwield; case fightstyle2hand: return R.string.skill_title_fightstyle_2hand; case fightstyleWeaponShield: return R.string.skill_title_fightstyle_weapon_shield; + case fightstyleUnarmedUnarmored: return R.string.skill_title_fightstyle_unarmed_unarmored; case specializationDualWield: return R.string.skill_title_specialization_dualwield; case specialization2hand: return R.string.skill_title_specialization_2hand; case specializationWeaponShield: return R.string.skill_title_specialization_weapon_shield; @@ -198,6 +199,12 @@ public final class SkillInfoActivity extends AndorsTrailBaseActivity { case fightstyleDualWield: return res.getString(R.string.skill_longdescription_fightstyle_dualwield, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL0, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL1, SkillCollection.DUALWIELD_LEVEL1_OFFHAND_AP_COST_PERCENT, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL2); case fightstyle2hand: return res.getString(R.string.skill_longdescription_fightstyle_2hand, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_2HAND_DMG_PERCENT); case fightstyleWeaponShield: return res.getString(R.string.skill_longdescription_fightstyle_weapon_shield, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_WEAPON_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_SHIELD_BC_PERCENT); + case fightstyleUnarmedUnarmored: return res.getString(R.string.skill_longdescription_fightstyle_unarmed_unarmored, + SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_BC, + SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DR, + SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_AC, + SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DMG_MAX, + SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_CM_PERCENT); case specializationDualWield: return res.getString(R.string.skill_longdescription_specialization_dualwield, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_DUALWIELD_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_DUALWIELD_BC_PERCENT); case specialization2hand: return res.getString(R.string.skill_longdescription_specialization_2hand, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_DMG_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_AC_PERCENT); case specializationWeaponShield: return res.getString(R.string.skill_longdescription_specialization_weapon_shield, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_WEAPON_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_WEAPON_DMG_PERCENT); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/SkillController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/SkillController.java index 49348a4fb..7f7d2925f 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/SkillController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/SkillController.java @@ -307,6 +307,30 @@ public final class SkillController { ItemType mainHandItem = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon); ItemType offHandItem = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.shield); + final int skillLevelFightStyleUnarmedUnarmored = player.getSkillLevel(SkillID.fightstyleUnarmedUnarmored); + if (skillLevelFightStyleUnarmedUnarmored > 0) { + if (isUnarmored(player)) { + player.blockChance += SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_BC * skillLevelFightStyleUnarmedUnarmored; + player.damageResistance += SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DR * skillLevelFightStyleUnarmedUnarmored; + } + + int multiplier = 0; + if (mainHandItem == null) { + multiplier++; + } + if (offHandItem == null) { + multiplier++; + } + if (multiplier > 0) { + player.attackChance += SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_AC * skillLevelFightStyleUnarmedUnarmored * multiplier; + player.damagePotential.addToMax(SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DMG_MAX * skillLevelFightStyleUnarmedUnarmored * multiplier); + + if (multiplier == 2) { + player.criticalMultiplier = 1 + ((float)SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_CM_PERCENT / 100) * skillLevelFightStyleUnarmedUnarmored; + } + } + } + if (isWielding2HandItem(mainHandItem, offHandItem)) { int skillLevelFightStyle = player.getSkillLevel(SkillID.fightstyle2hand); int skillLevelSpecialization = player.getSkillLevel(SkillID.specialization2hand); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillCollection.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillCollection.java index faa23dbdc..54bc7df3a 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillCollection.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillCollection.java @@ -55,6 +55,7 @@ public final class SkillCollection { ,specialization2hand ,specializationWeaponShield ,weaponProficiencyPole + ,fightstyleUnarmedUnarmored } // should be in the same number &U order as in arrays.xml @@ -117,6 +118,11 @@ public final class SkillCollection { public static final int PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_AC_PERCENT = 20; public static final int PER_SKILLPOINT_INCREASE_FIGHTSTYLE_WEAPON_AC_PERCENT = 25; public static final int PER_SKILLPOINT_INCREASE_FIGHTSTYLE_SHIELD_BC_PERCENT = 25; + public static final int PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_BC = 5; + public static final int PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DR = 1; + public static final int PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_AC = 6; + public static final int PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DMG_MAX = 2; + public static final int PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_CM_PERCENT = 25; public static final int PER_SKILLPOINT_INCREASE_SPECIALIZATION_WEAPON_AC_PERCENT = 50; public static final int PER_SKILLPOINT_INCREASE_SPECIALIZATION_WEAPON_DMG_PERCENT = 20; public static final int DUALWIELD_EFFICIENCY_LEVEL2 = 100; @@ -223,6 +229,9 @@ public final class SkillCollection { initializeSkill(new SkillInfo(SkillID.fightstyleWeaponShield, 2, SkillInfo.LevelUpType.alwaysShown, SkillCategory.specialty, new SkillLevelRequirement[] { SkillLevelRequirement.requireExperienceLevels(15, 0) }, position++)); + initializeSkill(new SkillInfo(SkillID.fightstyleUnarmedUnarmored, 3, SkillInfo.LevelUpType.alwaysShown, SkillCategory.specialty, new SkillLevelRequirement[] { + SkillLevelRequirement.requireExperienceLevels(15, 0) + }, position++)); initializeSkill(new SkillInfo(SkillID.specializationDualWield, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.specialty, new SkillLevelRequirement[] { SkillLevelRequirement.requireExperienceLevels(45, 0) ,SkillLevelRequirement.requireOtherSkill(SkillID.fightstyleDualWield, 2) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/SkillListAdapter.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/SkillListAdapter.java index ec4c2972c..4138a4d2c 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/SkillListAdapter.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/SkillListAdapter.java @@ -155,6 +155,7 @@ public final class SkillListAdapter extends ArrayAdapter { case fightstyleDualWield: return R.string.skill_shortdescription_fightstyle_dualwield; case fightstyle2hand: return R.string.skill_shortdescription_fightstyle_2hand; case fightstyleWeaponShield: return R.string.skill_shortdescription_fightstyle_weapon_shield; + case fightstyleUnarmedUnarmored: return R.string.skill_shortdescription_fightstyle_unarmed_unarmored; case specializationDualWield: return R.string.skill_shortdescription_specialization_dualwield; case specialization2hand: return R.string.skill_shortdescription_specialization_2hand; case specializationWeaponShield: return R.string.skill_shortdescription_specialization_weapon_shield;