// Clangeddin's Strike Feat // Created 10/30/04 // By Vaeliorin #include "prc_inc_combat" void main() { object oPC = OBJECT_SELF; object oTarget = PRCGetSpellTargetObject(); if(oPC == oTarget) { SendMessageToPC(oPC,"You cannot attack yourself..."); return; } object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND); if (GetBaseItemType(oItem) != BASE_ITEM_BATTLEAXE) { SendMessageToPC(oPC, "You must have a battleaxe equipped to use this feat"); IncrementRemainingFeatUses(oPC, FEAT_CLANGEDDINS_STRIKE); return; } AssignCommand(oPC, ActionMoveToLocation(GetLocation(oTarget), TRUE) ); effect eDamage1; effect eDamage2; effect eDamage3; effect eLink1; effect eLink2; int iAttackResult; struct BonusDamage sWeaponBonus; struct BonusDamage sSpellBonus; int iStrMod = GetAbilityModifier(ABILITY_STRENGTH, oPC); sWeaponBonus = GetWeaponBonusDamage(oItem, oTarget); sSpellBonus = GetMagicalBonusDamage(oPC, oTarget); iAttackResult = GetAttackRoll(oTarget, oPC, oItem, 0, 0, (iStrMod + 1)); if (iAttackResult == 2) { SendMessageToPC(oPC, "Clangeddin's Strike **Critical Hit!**"); eDamage1 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, TRUE, 0, 0, 0); //DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget)); eDamage2 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, TRUE, 0, 0, 0); //DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget)); eDamage3 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, TRUE, 0, 0, 0); //DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget)); eLink1 = EffectLinkEffects(eDamage1, eDamage2); eLink2 = EffectLinkEffects(eLink1, eDamage3); DelayCommand(6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLink2, oTarget)); } else if (iAttackResult == 1) { SendMessageToPC(oPC, "Clangeddin's Strike Hit!"); eDamage1 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, FALSE, 0, 0, 0); //DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget)); eDamage2 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, FALSE, 0, 0, 0); //DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget)); eDamage3 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, FALSE, 0, 0, 0); //DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget)); eLink1 = EffectLinkEffects(eDamage1, eDamage2); eLink2 = EffectLinkEffects(eLink1, eDamage3); DelayCommand(6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLink2, oTarget)); } else { SendMessageToPC(oPC, "Clangeddin's Strike Miss!"); } AssignCommand(oPC, ActionAttack(oTarget)); }