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;