//:://///////////////////////////////////////////// //:: Default On Damaged //:: NW_C2_DEFAULT6 //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* If already fighting then ignore, else determine combat round */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Oct 16, 2001 //::////////////////////////////////////////////// #include "NW_I0_GENERIC" void main() { object oPC = GetLastHostileActor(); location lPC = GetLocation(oPC); object oCloud = GetNearestObject(OBJECT_TYPE_AREA_OF_EFFECT,OBJECT_SELF, 3); if (GetIsObjectValid(oCloud) ) { DestroyObject(oCloud); } if (GetIsPC(oPC)) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(d8(3), DAMAGE_TYPE_FIRE, DAMAGE_POWER_PLUS_FIVE), oPC); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE),lPC, 3.0); } if(!GetFleeToExit()) { if(!GetSpawnInCondition(NW_FLAG_SET_WARNINGS)) { if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget())) { if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) { DetermineSpecialBehavior(GetLastDamager()); } else if(GetIsObjectValid(GetLastDamager())) { DetermineCombatRound(); if(!GetIsFighting(OBJECT_SELF)) { object oTarget = GetLastDamager(); if(!GetObjectSeen(oTarget) && GetArea(OBJECT_SELF) == GetArea(oTarget)) { ActionMoveToLocation(GetLocation(oTarget), TRUE); ActionDoCommand(DetermineCombatRound()); } } } } else if (!GetIsObjectValid(GetAttemptedSpellTarget())) { object oTarget = GetAttackTarget(); if(!GetIsObjectValid(oTarget)) { oTarget = GetAttemptedAttackTarget(); } object oAttacker = GetLastHostileActor(); if (GetIsObjectValid(oAttacker) && oTarget != oAttacker && GetIsEnemy(oAttacker) && (GetTotalDamageDealt() > (GetMaxHitPoints(OBJECT_SELF) / 4) || (GetHitDice(oAttacker) - 2) > GetHitDice(oTarget) ) ) { DetermineCombatRound(oAttacker); } } } } if(GetSpawnInCondition(NW_FLAG_DAMAGED_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(1006)); } }