Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***********************************************************************/
- /** © 2015 CD PROJEKT S.A. All rights reserved.
- /** THE WITCHER® is a trademark of CD PROJEKT S. A.
- /** The Witcher game is based on the prose of Andrzej Sapkowski.
- /***********************************************************************/
- enum EFloatingValueType
- {
- EFVT_None,
- EFVT_Critical,
- EFVT_Block,
- EFVT_InstantDeath,
- EFVT_DoT,
- EFVT_Heal,
- EFVT_Buff
- }
- class CR4HudModuleEnemyFocus extends CR4HudModuleBase
- {
- private var m_fxSetEnemyName : CScriptedFlashFunction;
- private var m_fxSetEnemyLevel : CScriptedFlashFunction;
- private var m_fxSetAttitude : CScriptedFlashFunction;
- private var m_fxSetEnemyHealth : CScriptedFlashFunction;
- private var m_fxSetEnemyStamina : CScriptedFlashFunction;
- private var m_fxSetEssenceBarVisibility : CScriptedFlashFunction;
- private var m_fxSetStaminaVisibility : CScriptedFlashFunction;
- private var m_fxSetNPCQuestIcon : CScriptedFlashFunction;
- private var m_fxSetDodgeFeedback : CScriptedFlashFunction;
- private var m_fxSetBossOrDead : CScriptedFlashFunction;
- private var m_fxSetShowHardLock : CScriptedFlashFunction;
- private var m_fxSetDamageText : CScriptedFlashFunction;
- private var m_fxHideDamageText : CScriptedFlashFunction;
- private var m_fxSetGeneralVisibility : CScriptedFlashFunction;
- private var m_fxSetMutationEightVisibility : CScriptedFlashFunction;
- private var m_mcNPCFocus : CScriptedFlashSprite;
- private var m_lastTarget : CGameplayEntity;
- private var m_lastTargetAttitude : EAIAttitude;
- private var m_lastHealthPercentage : int;
- private var m_wasAxiied : bool;
- private var m_lastStaminaPercentage : int;
- private var m_nameInterval : float;
- private var m_lastEnemyDifferenceLevel : string;
- private var m_lastEnemyLevelString : string;
- private var m_lastDodgeFeedbackTarget : CActor;
- private var m_lastEnemyName : string;
- private var m_lastUseMutation8Icon : bool;
- private var m_showName : bool;
- private var m_showDescriptiveLevel : bool;
- event OnConfigUI()
- {
- var flashModule : CScriptedFlashSprite;
- var hud : CR4ScriptedHud;
- m_anchorName = "ScaleOnly";
- flashModule = GetModuleFlash();
- m_fxSetEnemyName = flashModule.GetMemberFlashFunction( "setEnemyName" );
- m_fxSetEnemyLevel = flashModule.GetMemberFlashFunction( "setEnemyLevel" );
- m_fxSetAttitude = flashModule.GetMemberFlashFunction( "setAttitude" );
- m_fxSetEnemyHealth = flashModule.GetMemberFlashFunction( "setEnemyHealth" );
- m_fxSetEnemyStamina = flashModule.GetMemberFlashFunction( "setEnemyStamina" );
- m_fxSetEssenceBarVisibility = flashModule.GetMemberFlashFunction( "setEssenceBarVisibility" );
- m_fxSetStaminaVisibility = flashModule.GetMemberFlashFunction( "setStaminaVisibility" );
- m_fxSetNPCQuestIcon = flashModule.GetMemberFlashFunction( "setNPCQuestIcon" );
- m_fxSetDodgeFeedback = flashModule.GetMemberFlashFunction( "setDodgeFeedback" );
- m_fxSetDamageText = flashModule.GetMemberFlashFunction( "setDamageText" );
- m_fxHideDamageText = flashModule.GetMemberFlashFunction( "hideDamageText" );
- m_fxSetBossOrDead = flashModule.GetMemberFlashFunction( "SetBossOrDead" );
- m_fxSetShowHardLock = flashModule.GetMemberFlashFunction( "setShowHardLock" );
- m_fxSetGeneralVisibility = flashModule.GetMemberFlashFunction( "SetGeneralVisibility" );
- m_fxSetMutationEightVisibility = flashModule.GetMemberFlashFunction( "displayMutationEight" );
- m_mcNPCFocus = flashModule.GetChildFlashSprite( "mcNPCFocus" );
- super.OnConfigUI();
- m_fxSetEnemyName.InvokeSelfOneArg( FlashArgString( "" ) );
- m_fxSetEnemyStamina.InvokeSelfOneArg(FlashArgInt(0));
- hud = (CR4ScriptedHud)theGame.GetHud();
- if (hud)
- {
- hud.UpdateHudConfig('EnemyFocusModule', true);
- }
- }
- private function GetAttitudeOfTargetActor( target : CGameplayEntity ) : EAIAttitude
- {
- var targetActor : CActor;
- targetActor = ( CActor )target;
- if ( targetActor )
- {
- return targetActor.GetAttitude( thePlayer );
- }
- return AIA_Neutral;
- }
- public function SetDodgeFeedback( target : CActor ) :void
- {
- m_fxSetDodgeFeedback.InvokeSelfOneArg( FlashArgBool( !( !target ) ) );
- m_lastDodgeFeedbackTarget = target;
- }
- public function DisplayMutationEight( value : bool ) :void
- {
- m_fxSetMutationEightVisibility.InvokeSelfOneArg( FlashArgBool ( value ) );
- }
- public function SetGeneralVisibility( showEnemyFocus : bool, showName : bool, showDescriptiveLevel : bool )
- {
- m_fxSetGeneralVisibility.InvokeSelfTwoArgs( FlashArgBool( showEnemyFocus ), FlashArgBool( showDescriptiveLevel ) );
- m_showName = showName;
- }
- public function ShowDamageType(valueType : EFloatingValueType, value : float, optional stringParam : string)
- {
- var label:string;
- var color:float;
- var hud:CR4ScriptedHud;
- //---=== modFriendlyHUD ===---
- if ( GetFHUDConfig().doNotShowDamage )
- return;
- //---=== modFriendlyHUD ===---
- if(valueType != EFVT_InstantDeath && valueType != EFVT_Buff && value == 0.f)
- return;
- hud = (CR4ScriptedHud)theGame.GetHud();
- if ( !hud.AreEnabledEnemyHitEffects() )
- {
- return;
- }
- switch (valueType)
- {
- case EFVT_Critical:
- label = GetLocStringByKeyExt("attribute_name_critical_hit_damage");
- color = 0xFDFFC2;
- break;
- case EFVT_InstantDeath:
- label = GetLocStringByKeyExt("effect_instant_death");
- color = 0xFFC2C2;
- break;
- case EFVT_Block:
- label = GetLocStringByKeyExt("");
- color = 0xFC5B5B;
- break;
- case EFVT_DoT:
- label = GetLocStringByKeyExt("");
- color = 0xFF0000;
- break;
- case EFVT_Heal:
- label = GetLocStringByKeyExt("");
- color = 0x00FF00;
- break;
- case EFVT_Buff:
- label = GetLocStringByKeyExt(stringParam);
- color = 0xFFF0F0;
- break;
- default:
- label = GetLocStringByKeyExt("");
- color = 0xFFF0F0;
- break;
- }
- SetDamageText(label, CeilF(value), color);
- }
- private function SetDamageText(label:string, value:int, color:float) : void
- {
- m_fxSetDamageText.InvokeSelfThreeArgs( FlashArgString(label), FlashArgNumber(value), FlashArgNumber(color) );
- }
- public function HideDamageText()
- {
- m_fxHideDamageText.InvokeSelf();
- }
- event OnTick( timeDelta : float )
- {
- var l_target : CNewNPC;
- var l_targetNonActor : CGameplayEntity;
- var l_isHuman : bool;
- var l_isDifferentTarget : bool;
- var l_wasAxiied : bool;
- var l_currentHealthPercentage : int;
- var l_currentStaminaPercentage : int;
- var l_currentTargetAttitude : EAIAttitude;
- var l_currentEnemyDifferenceLevel : string;
- var l_currentEnemyLevelString : string;
- var l_targetScreenPos : Vector;
- var l_dodgeFeedbackTarget : CActor;
- var l_isBoss : bool;
- var screenMargin : float = 0.025;
- var marginLeftTop : Vector;
- var marginRightBottom : Vector;
- var hud : CR4ScriptedHud;
- var extraOffset : int;
- var herbTag : name;
- var herbEntity : W3Herb;
- var definitionManager : CDefinitionsManagerAccessor;
- var useMutation8Icon : bool;
- var displayName, entityName, levelName : string;
- var language, audioLanguage : string;
- l_targetNonActor = thePlayer.GetDisplayTarget();
- l_target = (CNewNPC)l_targetNonActor;
- l_dodgeFeedbackTarget = thePlayer.GetDodgeFeedbackTarget();
- hud = (CR4ScriptedHud)theGame.GetHud();
- definitionManager = theGame.GetDefinitionsManager();
- if ( l_target )
- {
- if ( !l_target.IsUsingTooltip())
- {
- l_target = NULL;
- }
- }
- if ( l_target )
- {
- if ( l_target.HasTag( 'HideHealthBarModule' ) )
- {
- if ( l_target.HasTag( 'NotBoss' ) )
- {
- l_target = NULL;
- }
- else
- l_isBoss = (!GetFHUDConfig().showBossHP); //modFriendlyHUD
- }
- else
- {
- if ( (CHeartMiniboss)l_target )
- {
- l_target = NULL;
- }
- }
- }
- if ( l_target )
- {
- l_isHuman = l_target.IsHuman();
- l_isDifferentTarget = ( l_target != m_lastTarget );
- l_wasAxiied = ( l_target.GetAttitudeGroup() == 'npc_charmed' );
- if(l_isDifferentTarget && l_target && !l_target.IsInCombat() && IsRequiredAttitudeBetween(thePlayer, l_target, true))
- {
- l_target.RecalcLevel();
- }
- if ( l_isDifferentTarget )
- {
- m_fxSetBossOrDead.InvokeSelfOneArg( FlashArgBool( l_isBoss || !l_target.IsAlive() ) );
- HideDamageText();
- m_fxSetStaminaVisibility.InvokeSelfOneArg( FlashArgBool( l_isHuman ) );
- m_fxSetEssenceBarVisibility.InvokeSelfOneArg( FlashArgBool( l_target.UsesEssence()) );
- UpdateQuestIcon( l_target );
- SetDodgeFeedback( NULL );
- ShowElement( true );
- m_lastTarget = l_target;
- }
- l_currentTargetAttitude = l_target.GetAttitude( thePlayer );
- if ( l_currentTargetAttitude != AIA_Hostile )
- {
- if ( l_target.IsVIP() )
- {
- l_currentTargetAttitude = 4;
- }
- }
- if ( l_isDifferentTarget || m_lastTargetAttitude != l_currentTargetAttitude || m_wasAxiied != l_wasAxiied )
- {
- m_lastTargetAttitude = l_currentTargetAttitude;
- m_wasAxiied = l_wasAxiied;
- if( m_wasAxiied )
- {
- m_fxSetAttitude.InvokeSelfOneArg( FlashArgInt( 3 ) );
- }
- else
- {
- m_fxSetAttitude.InvokeSelfOneArg( FlashArgInt( l_currentTargetAttitude ) );
- }
- }
- if ( m_lastDodgeFeedbackTarget != l_dodgeFeedbackTarget )
- {
- if ( l_currentTargetAttitude == AIA_Hostile )
- {
- SetDodgeFeedback( l_dodgeFeedbackTarget );
- }
- else
- {
- SetDodgeFeedback( NULL );
- }
- m_lastDodgeFeedbackTarget = l_dodgeFeedbackTarget;
- }
- m_nameInterval -= timeDelta;
- if ( l_isDifferentTarget || m_nameInterval < 0 )
- {
- m_nameInterval = 0.25;
- //---=== modFriendlyHUD ===---
- if( GetFHUDConfig().ShowNPCName(l_target) )
- {
- if (l_currentTargetAttitude == AIA_Hostile && !l_isBoss && !DisallowDescriptive(l_target))
- {
- levelName = definitionManager.GetDescriptiveLevel(l_target);
- }
- entityName = l_target.GetDisplayName();
- theGame.GetGameLanguageName(audioLanguage, language);
- if (levelName != "" && KeyCharacterName(entityName, language))
- {
- levelName = "";
- }
- if (m_showName)
- {
- if (levelName != "")
- {
- if (language == "RU")
- {
- entityName = StrLowerUTF(entityName);
- }
- if (language == "FR")
- {
- displayName = entityName + " " + levelName;
- }
- else
- {
- displayName = levelName + " " + entityName;
- }
- }
- else
- {
- displayName = entityName;
- }
- }
- else
- {
- displayName = levelName;
- }
- }
- UpdateName( displayName );
- }
- else
- {
- UpdateName( "" );
- }
- //---=== modFriendlyHUD ===---
- }
- l_currentHealthPercentage = CeilF( 100 * l_target.GetHealthPercents() );
- if ( m_lastHealthPercentage != l_currentHealthPercentage )
- {
- m_lastHealthPercentage = l_currentHealthPercentage;
- m_fxSetEnemyHealth.InvokeSelfOneArg( FlashArgInt( l_currentHealthPercentage ) );
- }
- l_currentStaminaPercentage = CeilF( 100 * l_target.GetStaminaPercents() );
- if ( m_lastStaminaPercentage != l_currentStaminaPercentage )
- {
- m_lastStaminaPercentage = l_currentStaminaPercentage;
- m_fxSetEnemyStamina.InvokeSelfOneArg( FlashArgInt( l_currentStaminaPercentage ) );
- }
- l_currentEnemyDifferenceLevel = l_target.GetExperienceDifferenceLevelName( l_currentEnemyLevelString );
- if ( l_isDifferentTarget ||
- m_lastEnemyDifferenceLevel != l_currentEnemyDifferenceLevel ||
- m_lastEnemyLevelString != l_currentEnemyLevelString )
- {
- m_lastEnemyDifferenceLevel = l_currentEnemyDifferenceLevel;
- m_lastEnemyLevelString = l_currentEnemyLevelString;
- //---=== modFriendlyHUD ===---
- switch ( GetFHUDConfig().doNotShowLevels )
- {
- case 1:
- m_fxSetEnemyLevel.InvokeSelfTwoArgs( FlashArgString( "none" ), FlashArgString( "" ) );
- break;
- case 2:
- m_fxSetEnemyLevel.InvokeSelfTwoArgs( FlashArgString( l_currentEnemyDifferenceLevel ), FlashArgString( "*" ) );
- break;
- default:
- m_fxSetEnemyLevel.InvokeSelfTwoArgs( FlashArgString( l_currentEnemyDifferenceLevel ), FlashArgString( l_currentEnemyLevelString ) );
- break;
- }
- //---=== modFriendlyHUD ===---
- }
- useMutation8Icon = GetWitcherPlayer().IsMutationActive( EPMT_Mutation8 ) && !l_target.IsImmuneToMutation8Finisher();
- if ( m_lastUseMutation8Icon != useMutation8Icon )
- {
- m_lastUseMutation8Icon = useMutation8Icon;
- DisplayMutationEight( useMutation8Icon );
- }
- if ( GetBaseScreenPosition( l_targetScreenPos, l_target ) )
- {
- l_targetScreenPos.Y -= 45;
- marginLeftTop = hud.GetScaleformPoint( screenMargin, screenMargin );
- marginRightBottom = hud.GetScaleformPoint( 1 - screenMargin, 1 - screenMargin );
- if ( l_targetScreenPos.X < marginLeftTop.X )
- {
- l_targetScreenPos.X = marginLeftTop.X;
- }
- else if ( l_targetScreenPos.X > marginRightBottom.X )
- {
- l_targetScreenPos.X = marginRightBottom.X;
- }
- if ( l_targetScreenPos.Y < marginLeftTop.Y )
- {
- l_targetScreenPos.Y = marginLeftTop.Y;
- }
- else if ( l_targetScreenPos.Y > marginRightBottom.Y )
- {
- l_targetScreenPos.Y = marginRightBottom.Y;
- }
- m_mcNPCFocus.SetVisible( true );
- m_mcNPCFocus.SetPosition( l_targetScreenPos.X, l_targetScreenPos.Y );
- }
- else
- {
- m_mcNPCFocus.SetVisible( false );
- }
- }
- else if ( l_targetNonActor )
- {
- l_isDifferentTarget = ( l_targetNonActor != m_lastTarget );
- if ( l_isDifferentTarget )
- {
- m_fxSetStaminaVisibility.InvokeSelfOneArg( FlashArgBool( false ) );
- m_fxSetEssenceBarVisibility.InvokeSelfOneArg( FlashArgBool( false ) );
- UpdateQuestIcon( (CNewNPC)l_targetNonActor );
- SetDodgeFeedback( NULL );
- ShowElement( true );
- m_fxSetAttitude.InvokeSelfOneArg( FlashArgInt( 0 ) );
- m_fxSetEnemyLevel.InvokeSelfTwoArgs( FlashArgString( "none" ), FlashArgString( "" ) );
- m_lastTarget = l_targetNonActor;
- m_lastTargetAttitude = GetAttitudeOfTargetActor( m_lastTarget );
- m_lastHealthPercentage = -1;
- m_lastStaminaPercentage = -1;
- m_lastEnemyDifferenceLevel = "none";
- m_lastEnemyLevelString = "";
- }
- herbEntity = (W3Herb)l_targetNonActor;
- if ( herbEntity && m_showName )
- {
- extraOffset = 140;
- m_nameInterval -= timeDelta;
- if ( l_isDifferentTarget || m_nameInterval < 0 )
- {
- m_nameInterval = 0.25;
- herbEntity.GetStaticMapPinTag( herbTag );
- //---=== modFriendlyHUD ===---
- if ( (bool)herbTag && !GetFHUDConfig().hideHerbNames )
- //---=== modFriendlyHUD ===---
- {
- //definitionManager = theGame.GetDefinitionsManager();
- if ( definitionManager )
- {
- UpdateName( GetLocStringByKeyExt( definitionManager.GetItemLocalisationKeyName( herbTag ) ) );
- }
- }
- else
- {
- UpdateName( "" );
- }
- }
- }
- else
- {
- if ( l_isDifferentTarget )
- {
- UpdateName( "" );
- }
- }
- useMutation8Icon = false;
- if ( m_lastUseMutation8Icon != useMutation8Icon )
- {
- DisplayMutationEight( useMutation8Icon );
- m_lastUseMutation8Icon = useMutation8Icon;
- }
- if ( GetBaseScreenPosition( l_targetScreenPos, l_targetNonActor ) )
- {
- l_targetScreenPos.Y -= 10;
- l_targetScreenPos.Y -= extraOffset;
- marginLeftTop = hud.GetScaleformPoint( screenMargin, screenMargin );
- marginRightBottom = hud.GetScaleformPoint( 1 - screenMargin, 1 - screenMargin );
- if ( l_targetScreenPos.X < marginLeftTop.X )
- {
- l_targetScreenPos.X = marginLeftTop.X;
- }
- else if ( l_targetScreenPos.X > marginRightBottom.X )
- {
- l_targetScreenPos.X = marginRightBottom.X;
- }
- if ( l_targetScreenPos.Y < marginLeftTop.Y )
- {
- l_targetScreenPos.Y = marginLeftTop.Y;
- }
- else if ( l_targetScreenPos.Y > marginRightBottom.Y )
- {
- l_targetScreenPos.Y = marginRightBottom.Y;
- }
- m_mcNPCFocus.SetVisible( true );
- m_mcNPCFocus.SetPosition( l_targetScreenPos.X, l_targetScreenPos.Y );
- }
- else
- {
- m_mcNPCFocus.SetVisible( false );
- }
- }
- else if ( m_lastTarget )
- {
- m_lastTarget = NULL;
- m_mcNPCFocus.SetVisible( false );
- SetDodgeFeedback( NULL );
- ShowElement( false );
- }
- else
- {
- if ( m_mcNPCFocus.GetVisible() )
- {
- m_mcNPCFocus.SetVisible( false );
- ShowElement( false );
- }
- }
- }
- private function DisallowDescriptive(l_target : CNewNPC) : bool
- {
- return (
- l_target.HasAbility('mon_troll_fistfight') ||
- l_target.HasAbility('mon_wild_hunt_default') ||
- l_target.HasAbility('mon_heart_miniboss') ||
- l_target.HasAbility('mon_wild_hunt_minion_weak') ||
- l_target.HasAbility('mon_wild_hunt_minion_lesser') ||
- l_target.HasAbility('mon_wild_hunt_minion') ||
- l_target.HasAbility('mon_witch1') ||
- l_target.HasAbility('mon_witch2') ||
- l_target.HasAbility('mon_witch3') ||
- l_target.HasAbility('mon_q704_ft_pixies') ||
- l_target.HasAbility('SkillFistsHard') ||
- l_target.HasAbility('SkillFistsMedium') ||
- l_target.HasAbility('SkillFistsEasy') ||
- l_target.HasAbility('mon_dettlaff_construct_base') ||
- l_target.HasAbility('mon_dettlaff_column_weak') ||
- l_target.HasAbility('mon_dettlaff_column_strong') ||
- l_target.HasAbility('mq1019_priestFakeLevel') ||
- l_target.HasAbility('olgierd_default_stats') ||
- l_target.HasAbility('mon_broom_base') ||
- l_target.HasAbility('banshee_summons') ||
- l_target.HasAbility('mon_baronswife') ||
- l_target.HasAbility('VesemirDamage') ||
- l_target.HasAbility('HealthFistFightTutorial') ||
- l_target.HasAbility('HealthFistFightEasy') ||
- l_target.HasAbility('HealthFistFightMedium') ||
- l_target.HasAbility('HealthFistFightHard') ||
- l_target.HasAbility('qth1003_kiyan') ||
- l_target.HasAbility('qRosaVarAttre') ||
- l_target.HasAbility('qSergeantFistFIght') ||
- l_target.HasAbility('MiniBoss') ||
- l_target.HasAbility('Boss') ||
- l_target.HasAbility('q302_whorenson') ||
- l_target.HasAbility('q302_bear') ||
- l_target.HasAbility('q302_mh104') ||
- l_target.HasAbility('q302_ReplacerThugs') ||
- l_target.HasAbility('mq0003_noonwraith')
- );
- }
- private function KeyCharacterName(entityName : string, language : string) : bool
- {
- return (
- entityName == GetLocStringById(509796) || //Nathaniel Pastodi
- entityName == GetLocStringById(492157) || //Ernst van Hoorn
- entityName == GetLocStringById(1049412) || //Gustav Roene
- entityName == GetLocStringById(174091) || //Dandelion
- (entityName == GetLocStringById(1051217) && language == "RU") || //Whoreson's Henchman
- entityName == GetLocStringById(467824) || //Vernossiel
- entityName == GetLocStringById(1159914) || //Pale Widow
- entityName == GetLocStringById(341434) || //Steingrim
- entityName == GetLocStringById(1086642) || //Clan An Craite Guard
- entityName == GetLocStringById(1086643) || //Clan Brokvar Guard
- entityName == GetLocStringById(1086644) || //Clan Dimun Guard
- entityName == GetLocStringById(1086645) || //Clan Drummond Guard
- entityName == GetLocStringById(1086646) || //Clan Heymaey Guard
- entityName == GetLocStringById(180880) || //Clan Tuirseach Guard
- entityName == GetLocStringById(1086456) || //Brokvar Shieldmaiden
- entityName == GetLocStringById(1086457) || //An Craite Shieldmaiden
- entityName == GetLocStringById(1086458) || //Dimun Shieldmaiden
- entityName == GetLocStringById(1086459) || //Drummond Shieldmaiden
- entityName == GetLocStringById(1086460) || //Heymaey Shieldmaiden
- entityName == GetLocStringById(1086461) || //Tuirseach Shieldmaiden
- entityName == GetLocStringById(1047248) || //Troll Joe
- entityName == GetLocStringById(1047249) || //Troll Jesse
- entityName == GetLocStringById(1047252) || //Troll Dodger
- entityName == GetLocStringById(503840) || //Ronvid of the Small Marsh
- entityName == GetLocStringById(1055566) || //Ronvid's Friend
- entityName == GetLocStringById(1199817) || //Madman Lugos 1/2
- entityName == GetLocStringById(166474) || //Madman Lugos 2/2
- entityName == GetLocStringById(1018188) || //Jutta
- entityName == GetLocStringById(581137) || //Hammond
- entityName == GetLocStringById(501932) || //Morkvarg
- entityName == GetLocStringById(1055580) || //Manfred Grossbart
- entityName == GetLocStringById(1055581) || //Hegel Grossbart
- entityName == GetLocStringById(1055582) || //Jesse Grossbart
- entityName == GetLocStringById(1056273) || //Ulle the Unlucky
- entityName == GetLocStringById(474721) || //Kori
- entityName == GetLocStringById(474724) || //Kraki
- entityName == GetLocStringById(1051564) || //Simun Brambling
- entityName == GetLocStringById(1059579) || //Guard Dog
- entityName == GetLocStringById(166457) || //Arnvald
- entityName == GetLocStringById(171505) || //Fugas
- entityName == GetLocStringById(180322) || //Halgrim
- entityName == GetLocStringById(1048435) || //Earl
- (entityName == GetLocStringById(480174) && language == "RU") || //Dijkstra's Henchman 1/3
- (entityName == GetLocStringById(488917) && language == "RU") || //Dijkstra's Henchman 2/3
- (entityName == GetLocStringById(1052062) && language == "RU") || //Dijkstra's Henchman 3/3
- entityName == GetLocStringById(1059068) || //Bart
- entityName == GetLocStringById(595891) || //Peasant 1/8
- entityName == GetLocStringById(1055097) || //Peasant 2/8
- entityName == GetLocStringById(166469) || //Peasant 3/8
- entityName == GetLocStringById(172329) || //Peasant 4/8
- entityName == GetLocStringById(444265) || //Peasant 5/8
- entityName == GetLocStringById(532375) || //Peasant 6/8
- entityName == GetLocStringById(595913) || //Peasant 7/8
- entityName == GetLocStringById(1055084) || //Peasant 8/8
- entityName == GetLocStringById(1137608) || //Eulalia von Everec
- entityName == GetLocStringById(1137609) || //Honoratina von Everec
- entityName == GetLocStringById(1137610) || //Kestatis von Everec
- entityName == GetLocStringById(1137611) || //Alexy von Everec
- entityName == GetLocStringById(1137612) || //Ernest von Everec
- entityName == GetLocStringById(1104540) || //Quinto
- entityName == GetLocStringById(1104837) || //Casimir
- entityName == GetLocStringById(1079736) || //Young One
- entityName == GetLocStringById(525756) || //Young Arachas
- entityName == GetLocStringById(1197251) || //Living Statue
- entityName == GetLocStringById(1125951) || //Delwyn of Creigiau
- entityName == GetLocStringById(1125948) || //Rainfarn of Attre
- entityName == GetLocStringById(1125920) || //Donimir of Troy
- entityName == GetLocStringById(1125950) || //Guy de Bois-Fresnes
- entityName == GetLocStringById(1125949) || //Prince Horm Akerspaark of Maecht
- entityName == GetLocStringById(1125952) || //Llinos of Metinna
- entityName == GetLocStringById(1124660) || //Baron Palmerin de Launfal
- entityName == GetLocStringById(172316) || //Witch Hunter
- (entityName == GetLocStringById(458127) && language == "RU") || //Guard 1/2
- (entityName == GetLocStringById(458130) && language == "RU") || //Guard 2/2
- entityName == GetLocStringById(300169) || //Philippa Eilhart 1/2
- entityName == GetLocStringById(1065213) || //Philippa Eilhart 2/2
- (entityName == GetLocStringById(1194573) && language == "RU") || //Hansa Dog
- (entityName == GetLocStringById(1119408) && language == "RU") || //Dracolizard
- entityName == GetLocStringById(1209398) || //Dracolizard Matriarch
- entityName == GetLocStringById(1168278) || //Great Beggar's Ghost
- entityName == GetLocStringById(1145517) || //Beau Duvall
- entityName == GetLocStringById(1188336) || //Gromm
- entityName == GetLocStringById(1188337) || //Argoin
- entityName == GetLocStringById(1188338) || //Yaki Rafiberg
- entityName == GetLocStringById(1209925) || //Hornitz
- entityName == GetLocStringById(1199456) || //Tad
- entityName == GetLocStringById(1199454) || //Madden
- entityName == GetLocStringById(1199455) || //Nevin
- entityName == GetLocStringById(1199453) || //Keir
- entityName == GetLocStringById(1184463) || //Roderick of Dun Tynne
- entityName == GetLocStringById(1207111) || //Iron Borg
- entityName == GetLocStringById(1205323) || //Peeps
- entityName == GetLocStringById(1205362) || //Ox
- entityName == GetLocStringById(1205382) || //Gueule
- entityName == GetLocStringById(1205389) || //Catfish
- entityName == GetLocStringById(1187538) || //Dun Tynne Guard
- (entityName == GetLocStringById(1199796) && language == "RU") || //Nazairi Bandit 1/2
- (entityName == GetLocStringById(1200141) && language == "RU") || //Nazairi Bandit 2/2
- entityName == GetLocStringById(1199660) || //Cael
- entityName == GetLocStringById(1165552) || //Redbeard 1/3
- entityName == GetLocStringById(1186383) || //Redbeard 2/3
- entityName == GetLocStringById(1190140) //Redbeard 3/3
- );
- }
- private function DisallowDescriptive(l_target : CNewNPC) : bool
- {
- return (
- l_target.HasAbility('mon_troll_fistfight') ||
- l_target.HasAbility('mon_wild_hunt_default') ||
- l_target.HasAbility('mon_heart_miniboss') ||
- l_target.HasAbility('mon_wild_hunt_minion_weak') ||
- l_target.HasAbility('mon_wild_hunt_minion_lesser') ||
- l_target.HasAbility('mon_wild_hunt_minion') ||
- l_target.HasAbility('mon_witch1') ||
- l_target.HasAbility('mon_witch2') ||
- l_target.HasAbility('mon_witch3') ||
- l_target.HasAbility('mon_q704_ft_pixies') ||
- l_target.HasAbility('SkillFistsHard') ||
- l_target.HasAbility('SkillFistsMedium') ||
- l_target.HasAbility('SkillFistsEasy') ||
- l_target.HasAbility('mon_dettlaff_construct_base') ||
- l_target.HasAbility('mon_dettlaff_column_weak') ||
- l_target.HasAbility('mon_dettlaff_column_strong') ||
- l_target.HasAbility('mq1019_priestFakeLevel') ||
- l_target.HasAbility('olgierd_default_stats') ||
- l_target.HasAbility('mon_broom_base') ||
- l_target.HasAbility('banshee_summons') ||
- l_target.HasAbility('mon_baronswife') ||
- l_target.HasAbility('VesemirDamage') ||
- l_target.HasAbility('HealthFistFightTutorial') ||
- l_target.HasAbility('HealthFistFightEasy') ||
- l_target.HasAbility('HealthFistFightMedium') ||
- l_target.HasAbility('HealthFistFightHard') ||
- l_target.HasAbility('qth1003_kiyan') ||
- l_target.HasAbility('qRosaVarAttre') ||
- l_target.HasAbility('qSergeantFistFIght') ||
- l_target.HasAbility('MiniBoss') ||
- l_target.HasAbility('Boss') ||
- l_target.HasAbility('q302_whorenson') ||
- l_target.HasAbility('q302_bear') ||
- l_target.HasAbility('q302_mh104') ||
- l_target.HasAbility('q302_ReplacerThugs') ||
- l_target.HasAbility('mq0003_noonwraith')
- );
- }
- private function KeyCharacterName(entityName : string, language : string) : bool
- {
- return (
- entityName == GetLocStringById(509796) || //Nathaniel Pastodi
- entityName == GetLocStringById(492157) || //Ernst van Hoorn
- entityName == GetLocStringById(1049412) || //Gustav Roene
- entityName == GetLocStringById(174091) || //Dandelion
- (entityName == GetLocStringById(1051217) && language == "RU") || //Whoreson's Henchman
- entityName == GetLocStringById(467824) || //Vernossiel
- entityName == GetLocStringById(1159914) || //Pale Widow
- entityName == GetLocStringById(341434) || //Steingrim
- entityName == GetLocStringById(1086642) || //Clan An Craite Guard
- entityName == GetLocStringById(1086643) || //Clan Brokvar Guard
- entityName == GetLocStringById(1086644) || //Clan Dimun Guard
- entityName == GetLocStringById(1086645) || //Clan Drummond Guard
- entityName == GetLocStringById(1086646) || //Clan Heymaey Guard
- entityName == GetLocStringById(180880) || //Clan Tuirseach Guard
- entityName == GetLocStringById(1086456) || //Brokvar Shieldmaiden
- entityName == GetLocStringById(1086457) || //An Craite Shieldmaiden
- entityName == GetLocStringById(1086458) || //Dimun Shieldmaiden
- entityName == GetLocStringById(1086459) || //Drummond Shieldmaiden
- entityName == GetLocStringById(1086460) || //Heymaey Shieldmaiden
- entityName == GetLocStringById(1086461) || //Tuirseach Shieldmaiden
- entityName == GetLocStringById(1047248) || //Troll Joe
- entityName == GetLocStringById(1047249) || //Troll Jesse
- entityName == GetLocStringById(1047252) || //Troll Dodger
- entityName == GetLocStringById(503840) || //Ronvid of the Small Marsh
- entityName == GetLocStringById(1055566) || //Ronvid's Friend
- entityName == GetLocStringById(1199817) || //Madman Lugos 1/2
- entityName == GetLocStringById(166474) || //Madman Lugos 2/2
- entityName == GetLocStringById(1018188) || //Jutta
- entityName == GetLocStringById(581137) || //Hammond
- entityName == GetLocStringById(501932) || //Morkvarg
- entityName == GetLocStringById(1055580) || //Manfred Grossbart
- entityName == GetLocStringById(1055581) || //Hegel Grossbart
- entityName == GetLocStringById(1055582) || //Jesse Grossbart
- entityName == GetLocStringById(1056273) || //Ulle the Unlucky
- entityName == GetLocStringById(474721) || //Kori
- entityName == GetLocStringById(474724) || //Kraki
- entityName == GetLocStringById(1051564) || //Simun Brambling
- entityName == GetLocStringById(1059579) || //Guard Dog
- entityName == GetLocStringById(166457) || //Arnvald
- entityName == GetLocStringById(171505) || //Fugas
- entityName == GetLocStringById(180322) || //Halgrim
- entityName == GetLocStringById(1048435) || //Earl
- (entityName == GetLocStringById(480174) && language == "RU") || //Dijkstra's Henchman 1/3
- (entityName == GetLocStringById(488917) && language == "RU") || //Dijkstra's Henchman 2/3
- (entityName == GetLocStringById(1052062) && language == "RU") || //Dijkstra's Henchman 3/3
- entityName == GetLocStringById(1059068) || //Bart
- entityName == GetLocStringById(595891) || //Peasant 1/8
- entityName == GetLocStringById(1055097) || //Peasant 2/8
- entityName == GetLocStringById(166469) || //Peasant 3/8
- entityName == GetLocStringById(172329) || //Peasant 4/8
- entityName == GetLocStringById(444265) || //Peasant 5/8
- entityName == GetLocStringById(532375) || //Peasant 6/8
- entityName == GetLocStringById(595913) || //Peasant 7/8
- entityName == GetLocStringById(1055084) || //Peasant 8/8
- entityName == GetLocStringById(1137608) || //Eulalia von Everec
- entityName == GetLocStringById(1137609) || //Honoratina von Everec
- entityName == GetLocStringById(1137610) || //Kestatis von Everec
- entityName == GetLocStringById(1137611) || //Alexy von Everec
- entityName == GetLocStringById(1137612) || //Ernest von Everec
- entityName == GetLocStringById(1104540) || //Quinto
- entityName == GetLocStringById(1104837) || //Casimir
- entityName == GetLocStringById(1079736) || //Young One
- entityName == GetLocStringById(525756) || //Young Arachas
- entityName == GetLocStringById(1197251) || //Living Statue
- entityName == GetLocStringById(1125951) || //Delwyn of Creigiau
- entityName == GetLocStringById(1125948) || //Rainfarn of Attre
- entityName == GetLocStringById(1125920) || //Donimir of Troy
- entityName == GetLocStringById(1125950) || //Guy de Bois-Fresnes
- entityName == GetLocStringById(1125949) || //Prince Horm Akerspaark of Maecht
- entityName == GetLocStringById(1125952) || //Llinos of Metinna
- entityName == GetLocStringById(1124660) || //Baron Palmerin de Launfal
- entityName == GetLocStringById(172316) || //Witch Hunter
- (entityName == GetLocStringById(458127) && language == "RU") || //Guard 1/2
- (entityName == GetLocStringById(458130) && language == "RU") || //Guard 2/2
- entityName == GetLocStringById(300169) || //Philippa Eilhart 1/2
- entityName == GetLocStringById(1065213) || //Philippa Eilhart 2/2
- (entityName == GetLocStringById(1194573) && language == "RU") || //Hansa Dog
- (entityName == GetLocStringById(1119408) && language == "RU") || //Dracolizard
- entityName == GetLocStringById(1209398) || //Dracolizard Matriarch
- entityName == GetLocStringById(1168278) || //Great Beggar's Ghost
- entityName == GetLocStringById(1145517) || //Beau Duvall
- entityName == GetLocStringById(1188336) || //Gromm
- entityName == GetLocStringById(1188337) || //Argoin
- entityName == GetLocStringById(1188338) || //Yaki Rafiberg
- entityName == GetLocStringById(1209925) || //Hornitz
- entityName == GetLocStringById(1199456) || //Tad
- entityName == GetLocStringById(1199454) || //Madden
- entityName == GetLocStringById(1199455) || //Nevin
- entityName == GetLocStringById(1199453) || //Keir
- entityName == GetLocStringById(1184463) || //Roderick of Dun Tynne
- entityName == GetLocStringById(1207111) || //Iron Borg
- entityName == GetLocStringById(1205323) || //Peeps
- entityName == GetLocStringById(1205362) || //Ox
- entityName == GetLocStringById(1205382) || //Gueule
- entityName == GetLocStringById(1205389) || //Catfish
- entityName == GetLocStringById(1187538) || //Dun Tynne Guard
- (entityName == GetLocStringById(1199796) && language == "RU") || //Nazairi Bandit 1/2
- (entityName == GetLocStringById(1200141) && language == "RU") || //Nazairi Bandit 2/2
- entityName == GetLocStringById(1199660) || //Cael
- entityName == GetLocStringById(1165552) || //Redbeard 1/3
- entityName == GetLocStringById(1186383) || //Redbeard 2/3
- entityName == GetLocStringById(1190140) //Redbeard 3/3
- );
- }
- public function UpdateName( enemyName : string )
- {
- if ( m_lastEnemyName != enemyName )
- {
- m_lastEnemyName = enemyName;
- m_fxSetEnemyName.InvokeSelfOneArg( FlashArgString( m_lastEnemyName ) );
- }
- }
- public function SetShowHardLock( set : bool )
- {
- m_fxSetShowHardLock.InvokeSelfOneArg( FlashArgBool( set ) );
- }
- protected function UpdateScale( scale : float, flashModule : CScriptedFlashSprite ) : bool
- {
- return false;
- }
- //---=== modFriendlyHUD ===---
- private function UpdateQuestIcon( target : CNewNPC )
- {
- var questIcon : string;
- if( GetFHUDConfig().hideNPCQuestMarkers )
- {
- questIcon = "none";
- }
- else
- {
- questIcon = GetQuestIconFromMarker( target );
- if( questIcon == "none" )
- {
- questIcon = GetQuestIconFromJournal( target );
- }
- }
- m_fxSetNPCQuestIcon.InvokeSelfOneArg( FlashArgString( questIcon ) );
- }
- private function GetQuestIconFromMarker( target : CNewNPC ) : string
- {
- var mapPinInstances : array< SCommonMapPinInstance >;
- var commonMapManager : CCommonMapManager;
- var currentPin : SCommonMapPinInstance;
- var targetTags : array< name >;
- var i : int;
- var questIcon : string;
- var mapPinType : name;
- questIcon = "none";
- if ( target )
- {
- targetTags = target.GetTags();
- if (targetTags.Size() > 0)
- {
- commonMapManager = theGame.GetCommonMapManager();
- mapPinType = commonMapManager.GetMapPinTypeByTag( targetTags[0] );
- switch ( mapPinType )
- {
- case 'QuestReturn':
- questIcon = "QuestReturn";
- break;
- case 'QuestGiverStory':
- questIcon = "QuestGiverStory";
- break;
- case 'QuestGiverChapter':
- questIcon = "QuestGiverChapter";
- break;
- case 'QuestGiverSide':
- case 'QuestAvailable':
- case 'QuestAvailableHoS':
- case 'QuestAvailableBaW':
- questIcon = "QuestGiverSide";
- break;
- case 'MonsterQuest':
- questIcon = "MonsterQuest";
- break;
- case 'TreasureQuest':
- questIcon = "TreasureQuest";
- break;
- }
- }
- }
- return questIcon;
- }
- private function GetQuestIconFromJournal( target : CNewNPC ) : string
- {
- var journalManager : CWitcherJournalManager;
- var currentQuest : CJournalQuest;
- var currentPhase : CJournalQuestPhase;
- var currentObjective : CJournalQuestObjective;
- var questsList : array< CJournalBase >;
- var questsCount, qIdx : int;
- var phaseCount, pIdx : int;
- var objCount, oIdx : int;
- var pinsCount, pinIdx : int;
- var currentMappin : CJournalQuestMapPin;
- var questIcon : string;
- var targetTags : array< name >;
- var tagsCount, tIdx : int;
- questIcon = "none";
- if ( target )
- {
- targetTags = target.GetTags();
- tagsCount = targetTags.Size();
- if ( tagsCount > 0 )
- {
- journalManager = theGame.GetJournalManager();
- journalManager.GetActivatedOfType( 'CJournalQuest', questsList );
- questsCount = questsList.Size();
- for( qIdx = 0; qIdx < questsCount; qIdx += 1 )
- {
- currentQuest = (CJournalQuest)questsList[qIdx];
- if( currentQuest && journalManager.GetEntryStatus( currentQuest ) == JS_Active )
- {
- phaseCount = currentQuest.GetNumChildren();
- for( pIdx = 0; pIdx < phaseCount; pIdx += 1 )
- {
- currentPhase = (CJournalQuestPhase)currentQuest.GetChild(pIdx);
- if( currentPhase )
- {
- objCount = currentPhase.GetNumChildren();
- for( oIdx = 0; oIdx < objCount; oIdx += 1 )
- {
- currentObjective = (CJournalQuestObjective)currentPhase.GetChild(oIdx);
- if ( currentObjective && journalManager.GetEntryStatus( currentObjective ) == JS_Active )
- {
- pinsCount = currentObjective.GetNumChildren();
- for( pinIdx = 0; pinIdx < pinsCount; pinIdx += 1 )
- {
- currentMappin = (CJournalQuestMapPin)currentObjective.GetChild(pinIdx);
- if( currentMappin )
- {
- for( tIdx = 0; tIdx < tagsCount; tIdx += 1 )
- {
- if( currentMappin.GetMapPinID() == targetTags[tIdx] )
- {
- switch (currentQuest.GetType())
- {
- case Story:
- questIcon = "QuestGiverStory"; // yellow !
- return questIcon;
- case Chapter:
- questIcon = "QuestGiverChapter"; // white !
- return questIcon;
- case Side:
- questIcon = "QuestGiverSide"; // white !
- return questIcon;
- case MonsterHunt:
- questIcon = "MonsterQuest";
- return questIcon;
- case TreasureHunt:
- questIcon = "TreasureQuest";
- return questIcon;
- default:
- //return "QuestReturn"; //?
- break;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- return questIcon;
- }
- //---=== modFriendlyHUD ===---
- }
- exec function dodgeFeedback()
- {
- var npc : CNewNPC;
- npc = (CNewNPC)thePlayer.GetDisplayTarget();
- if ( npc )
- {
- thePlayer.SetDodgeFeedbackTarget( npc );
- }
- }
- exec function hardlock( set : bool )
- {
- var hud : CR4ScriptedHud;
- var module : CR4HudModuleEnemyFocus;
- hud = (CR4ScriptedHud)theGame.GetHud();
- module = (CR4HudModuleEnemyFocus)hud.GetHudModule("EnemyFocusModule");
- module.SetShowHardLock( set );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement