#include "nwnx_creature" #include "inc_item_props" #include "prc_class_const" /* Desert Wind: Scimitar, Light Mace, Spear, Light Pick, Falchion. Diamond Mind: Katana, Rapier, Bastard Sword, Spear Setting Sun: Short Sword, Staff, Unarmed Strike, Nunchaku Shadow Hand: Short Sword, Dagger, Unarmed Strike, Sai Stone Dragon: Unarmed Strike, Great Sword, Great Axe, Heavy Mace Tiger Claw: Unarmed Strike, Great Axe, Kama, Kukri, Hand Axe FEAT_SS_DF_WF_DW FEAT_SS_DF_WF_DM FEAT_SS_DF_WF_SS FEAT_SS_DF_WF_SH FEAT_SS_DF_WF_SD FEAT_SS_DF_WF_TC */ void main() { object oCreature = OBJECT_SELF; object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oCreature); int bWarDomain = GetHasFeat(DOMAIN_WAR, oCreature) || GetHasFeat(FEAT_WAR_DOMAIN_POWER, oCreature); int bSwordsage = GetLevelByClass(CLASS_TYPE_SWORDSAGE, oCreature); if (!GetIsObjectValid(oSkin)) return; int nLevel = GetHitDice(oCreature); if(bSwordsage) { if (GetHasFeat(FEAT_SS_DF_WF_DW, oCreature)) //:: Desert Wind { NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SCIMITAR, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_LIGHT_MACE, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SPEAR, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_LIGHT_PICK, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_FALCHION, nLevel); } if (GetHasFeat(FEAT_SS_DF_WF_DM, oCreature)) //:: Diamond Mind { NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_KATANA, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_RAPIER, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SPEAR, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_BASTARD_SWORD, nLevel); } if (GetHasFeat(FEAT_SS_DF_WF_SS, oCreature)) //:: Setting Sun { NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SHORT_SWORD, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_STAFF, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_NUNCHAKU, nLevel); } if (GetHasFeat(FEAT_SS_DF_WF_SH, oCreature)) //:: Shadow Hand { NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SHORT_SWORD, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_DAGGER, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_SAI, nLevel); } if (GetHasFeat(FEAT_SS_DF_WF_SD, oCreature)) //:: Stone Dragon { NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_GREAT_SWORD, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_GREAT_AXE, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_HEAVY_MACE, nLevel); } if (GetHasFeat(FEAT_SS_DF_WF_TC, oCreature)) //:: Tiger Claw { NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_GREAT_AXE, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_KAMA, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_UNARMED_STRIKE, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_KUKRI, nLevel); NWNX_Creature_AddFeatByLevel(oCreature, FEAT_WEAPON_FOCUS_HAND_AXE, nLevel); } } itemproperty ipCheck = GetFirstItemProperty(oSkin); while (GetIsItemPropertyValid(ipCheck)) { if (GetItemPropertyType(ipCheck) == ITEM_PROPERTY_BONUS_FEAT) { int nIPFeat = GetItemPropertySubType(ipCheck); int nMappedFeat = WF_IpropToFeat(nIPFeat); if (nMappedFeat != -1) { NWNX_Creature_AddFeatByLevel(oCreature, nMappedFeat, nLevel); SendMessageToPC(GetFirstPC(), "Weapon Focus feat applied via item property."); } } ipCheck = GetNextItemProperty(oSkin); } }