diff --git a/conversion/AlteracPass/replay.details b/conversion/AlteracPass/replay.details index 564b795..1e4d6d9 100644 Binary files a/conversion/AlteracPass/replay.details and b/conversion/AlteracPass/replay.details differ diff --git a/conversion/BattlefieldofEternity/replay.details b/conversion/BattlefieldofEternity/replay.details index 034838b..23546e8 100644 Binary files a/conversion/BattlefieldofEternity/replay.details and b/conversion/BattlefieldofEternity/replay.details differ diff --git a/conversion/BlackheartsBay/replay.details b/conversion/BlackheartsBay/replay.details index a3d7c4c..c07276f 100644 Binary files a/conversion/BlackheartsBay/replay.details and b/conversion/BlackheartsBay/replay.details differ diff --git a/conversion/BraxisHoldout/replay.details b/conversion/BraxisHoldout/replay.details index 7bed714..23acafa 100644 Binary files a/conversion/BraxisHoldout/replay.details and b/conversion/BraxisHoldout/replay.details differ diff --git a/conversion/BraxisOutpost/replay.details b/conversion/BraxisOutpost/replay.details index 3bf2283..88c7474 100644 Binary files a/conversion/BraxisOutpost/replay.details and b/conversion/BraxisOutpost/replay.details differ diff --git a/conversion/CursedHollow/replay.details b/conversion/CursedHollow/replay.details index 25bd847..e68a746 100644 Binary files a/conversion/CursedHollow/replay.details and b/conversion/CursedHollow/replay.details differ diff --git a/conversion/DragonShire/replay.details b/conversion/DragonShire/replay.details index 4f2aa99..875f035 100644 Binary files a/conversion/DragonShire/replay.details and b/conversion/DragonShire/replay.details differ diff --git a/conversion/GardenofTerror/replay.details b/conversion/GardenofTerror/replay.details index 838b617..88560ce 100644 Binary files a/conversion/GardenofTerror/replay.details and b/conversion/GardenofTerror/replay.details differ diff --git a/conversion/HanamuraTemple/replay.details b/conversion/HanamuraTemple/replay.details index e4c1b75..134fc38 100644 Binary files a/conversion/HanamuraTemple/replay.details and b/conversion/HanamuraTemple/replay.details differ diff --git a/conversion/HauntedMines/replay.details b/conversion/HauntedMines/replay.details index 7f3c73f..dc59663 100644 Binary files a/conversion/HauntedMines/replay.details and b/conversion/HauntedMines/replay.details differ diff --git a/conversion/IndustrialDistrict/replay.details b/conversion/IndustrialDistrict/replay.details index 722897b..02a02fb 100644 Binary files a/conversion/IndustrialDistrict/replay.details and b/conversion/IndustrialDistrict/replay.details differ diff --git a/conversion/InfernalShrines/replay.details b/conversion/InfernalShrines/replay.details index d8d097c..fbde208 100644 Binary files a/conversion/InfernalShrines/replay.details and b/conversion/InfernalShrines/replay.details differ diff --git a/conversion/LostCavern/replay.details b/conversion/LostCavern/replay.details index 1a22849..a484b61 100644 Binary files a/conversion/LostCavern/replay.details and b/conversion/LostCavern/replay.details differ diff --git a/conversion/SilverCity/replay.details b/conversion/SilverCity/replay.details index 51ce9fc..9d1789d 100644 Binary files a/conversion/SilverCity/replay.details and b/conversion/SilverCity/replay.details differ diff --git a/conversion/SkyTemple/replay.details b/conversion/SkyTemple/replay.details index eb56431..651df5f 100644 Binary files a/conversion/SkyTemple/replay.details and b/conversion/SkyTemple/replay.details differ diff --git a/conversion/TomboftheSpiderQueen/replay.details b/conversion/TomboftheSpiderQueen/replay.details index 14e8c58..7a11931 100644 Binary files a/conversion/TomboftheSpiderQueen/replay.details and b/conversion/TomboftheSpiderQueen/replay.details differ diff --git a/conversion/TowersofDoom/replay.details b/conversion/TowersofDoom/replay.details index df64518..06de493 100644 Binary files a/conversion/TowersofDoom/replay.details and b/conversion/TowersofDoom/replay.details differ diff --git a/conversion/VolskayaFoundry/replay.details b/conversion/VolskayaFoundry/replay.details index 9412dcc..9380070 100644 Binary files a/conversion/VolskayaFoundry/replay.details and b/conversion/VolskayaFoundry/replay.details differ diff --git a/conversion/WarheadJunction/replay.details b/conversion/WarheadJunction/replay.details index 3d46620..1cf0c4a 100644 Binary files a/conversion/WarheadJunction/replay.details and b/conversion/WarheadJunction/replay.details differ diff --git a/interface/CustomScoreboard.StormInterface/enus.StormData/LocalizedData/GameStrings.txt b/interface/CustomScoreboard.StormInterface/enus.StormData/LocalizedData/GameStrings.txt index 53b4706..36747e2 100644 --- a/interface/CustomScoreboard.StormInterface/enus.StormData/LocalizedData/GameStrings.txt +++ b/interface/CustomScoreboard.StormInterface/enus.StormData/LocalizedData/GameStrings.txt @@ -1,4 +1,4 @@ -UI/Spazzo/UIVersion=v0.37 +UI/Spazzo/UIVersion=v0.38 UI/Spazzo/UIWARNING=WARNING UI/Spazzo/UIWARNINGTOOLTIP=Game is detected as having ended, statistics may be incorrect, please rewind to after the core is destroyed, but before these images become visible! @@ -1944,12 +1944,12 @@ UI/SpazzoDamage/Medivh/ScoreTwelve=Unused UI/SpazzoAccuracy/Medivh/ScoreOne=Arcane Rift Casts UI/SpazzoAccuracy/Medivh/ScoreTwo=Force of Will Casts UI/SpazzoAccuracy/Medivh/ScoreThree=Portal Casts -UI/SpazzoAccuracy/Medivh/ScoreFour=Dust of Appearance Casts, Raven Familiar Attacks +UI/SpazzoAccuracy/Medivh/ScoreFour=Dust of Appearance Casts, Raven Familiar Attacks(From Medivh) UI/SpazzoAccuracy/Medivh/ScoreFive=Force of Magic Activation Count UI/SpazzoAccuracy/Medivh/ScoreSix=Ley Line Seal, Poly Bomb Casts UI/SpazzoAccuracy/Medivh/ScoreSeven=Enduring Will Activation Count UI/SpazzoAccuracy/Medivh/ScoreEight=Force of Will Casts after selecting Enduring Will -UI/SpazzoAccuracy/Medivh/ScoreNine=Medivh Cheats, Arcane Brilliance, Dust of Disappearance Casts, Minions Killed with Guardain of Tirisfal +UI/SpazzoAccuracy/Medivh/ScoreNine=Medivh Cheats, Arcane Brilliance, Dust of Disappearance Casts, Minions Killed with Guardian of Tirisfal UI/SpazzoAccuracy/Medivh/ScoreTen=Unused UI/SpazzoAccuracy/Medivh/ScoreEleven=Unused UI/SpazzoAccuracy/Medivh/ScoreTwelve=Unused diff --git a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHAUR.galaxy b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHAUR.galaxy index a70cb5a..609fda2 100644 --- a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHAUR.galaxy +++ b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHAUR.galaxy @@ -1545,7 +1545,7 @@ bool libHAUR_gt_HeroAurielResurrectRevivePlayer_Func (bool testConds, bool runAc } } UnitBehaviorRemove(libGame_gv_players[lv_targetPlayer].lv_heroUnit, "AurielResurrectPendingResurrect", 1); - if ((PlayerHasTalent(lv_aurielPlayer, "AurielLightSpeedResurrectTalent") == true)) { + if (((PlayerHasTalent(lv_aurielPlayer, "AurielLightSpeedResurrectTalent") == true) && (UnitHasBehavior2(lv_targetHero, "LeoricUndying") == false))) { UnitCreateEffectUnit(lv_auriel, "AurielResurrectLightSpeedApplyControllerBehavior", lv_targetHero); UnitCreateEffectUnit(lv_auriel, "AurielResurrectLightSpeedApplySpeedBehavior", lv_targetHero); } @@ -1570,6 +1570,10 @@ bool libHAUR_gt_HeroAurielResurrectRevivePlayer_Func (bool testConds, bool runAc UnitBehaviorRemove(lv_targetHero, "LeoricUndying", 1); UnitSetPropertyFixed(lv_targetHero, c_unitPropLifePercent, libHAUR_gv_heroAurielResurrectVitalScale); UnitSetPropertyFixed(lv_targetHero, c_unitPropEnergyPercent, libHAUR_gv_heroAurielResurrectEnergyPercentage); + if ((PlayerHasTalent(lv_aurielPlayer, "AurielLightSpeedResurrectTalent") == true)) { + UnitCreateEffectUnit(lv_auriel, "AurielResurrectLightSpeedApplyControllerBehavior", lv_targetHero); + UnitCreateEffectUnit(lv_auriel, "AurielResurrectLightSpeedApplySpeedBehavior", lv_targetHero); + } } libHAUR_gv_heroAurielResurrectTotalActiveResurrectActions -= 1; diff --git a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHMDV.galaxy b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHMDV.galaxy index 1ba6527..314d2e6 100644 --- a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHMDV.galaxy +++ b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHMDV.galaxy @@ -1,6 +1,7 @@ include "TriggerLibs/NativeLib" include "TriggerLibs/HeroesLib" include "TriggerLibs/GameLib" +include "TriggerLibs/MapMechanicsLib" include "TriggerLibs/AILib" include "TriggerLibs/UILib" @@ -14,6 +15,7 @@ void libHMDV_InitLibraries () { libNtve_InitVariables(); libCore_InitVariables(); libGame_InitVariables(); + libMapM_InitVariables(); libAIAI_InitVariables(); libUIUI_InitVariables(); } @@ -61,7 +63,6 @@ void libHMDV_gf_HeroMedivhIncrementHeroCountFunction () { TriggerEnable(libHMDV_gt_HeroMedivhRavenFamiliarSpawn, true); TriggerEnable(libHMDV_gt_HeroMedivhRavenFamiliarPostSpawnCloak, true); TriggerEnable(libHMDV_gt_HeroMedivhLeyLineSealOverlayOff, true); - TriggerEnable(libHMDV_gt_HeroMedivhPortalTeleport, true); TriggerEnable(libHMDV_gt_HeroMedivhPortalCameraPan, false); TriggerEnable(libHMDV_gt_HeroMedivhPortalPortalMasterySelectionClamping, true); TriggerEnable(libHMDV_gt_HeroMedivhPortalPortalMasteryMorphBackToMedivh, true); @@ -74,7 +75,6 @@ void libHMDV_gf_HeroMedivhIncrementHeroCountFunction () { TriggerEnable(libHMDV_gt_HeroAIMedivhHasCastRavenForm, true); TriggerEnable(libHMDV_gt_HeroAIMedivhHasLanded, true); TriggerEnable(libHMDV_gt_HeroAIAIMedivhUnregisterPortal, true); - TriggerEnable(libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow, true); TriggerEnable(libHMDV_gt_HeroMedivhPortalMasteryCDR, true); } @@ -93,7 +93,6 @@ void libHMDV_gf_HeroMedivhDecrementHeroCountFunction () { TriggerEnable(libHMDV_gt_HeroMedivhRavenFamiliarSpawn, false); TriggerEnable(libHMDV_gt_HeroMedivhRavenFamiliarPostSpawnCloak, false); TriggerEnable(libHMDV_gt_HeroMedivhLeyLineSealOverlayOff, false); - TriggerEnable(libHMDV_gt_HeroMedivhPortalTeleport, false); TriggerEnable(libHMDV_gt_HeroMedivhPortalCameraPan, false); TriggerEnable(libHMDV_gt_HeroMedivhPortalPortalMasterySelectionClamping, false); TriggerEnable(libHMDV_gt_HeroMedivhPortalPortalMasteryMorphBackToMedivh, false); @@ -106,7 +105,6 @@ void libHMDV_gf_HeroMedivhDecrementHeroCountFunction () { TriggerEnable(libHMDV_gt_HeroAIMedivhHasCastRavenForm, false); TriggerEnable(libHMDV_gt_HeroAIMedivhHasLanded, false); TriggerEnable(libHMDV_gt_HeroAIAIMedivhUnregisterPortal, false); - TriggerEnable(libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow, false); TriggerEnable(libHMDV_gt_HeroMedivhPortalMasteryCDR, false); } @@ -182,7 +180,7 @@ bool libHMDV_gt_HeroMedivhRavenFamiliarSpawn_Func (bool testConds, bool runActio void libHMDV_gt_HeroMedivhRavenFamiliarSpawn_Init () { libHMDV_gt_HeroMedivhRavenFamiliarSpawn = TriggerCreate("libHMDV_gt_HeroMedivhRavenFamiliarSpawn_Func"); TriggerEnable(libHMDV_gt_HeroMedivhRavenFamiliarSpawn, false); - TriggerAddEventPlayerEffectUsed(libHMDV_gt_HeroMedivhRavenFamiliarSpawn, c_playerAny, "MedivhPortalRavenFamiliarCreateUnit"); + TriggerAddEventPlayerEffectUsed(libHMDV_gt_HeroMedivhRavenFamiliarSpawn, c_playerAny, "MedivhPortalRavenFamiliarCreateUnitPortalAsTarget"); } //-------------------------------------------------------------------------------------------------- @@ -334,6 +332,11 @@ bool libHMDV_gt_HeroAIAIMedivhRegisterPortalCast_Func (bool testConds, bool runA TriggerDebugOutput(1, StringToText(""), true); AIAddPortal(libGame_gf_ComputerPlayerInFaction(libGame_gv_players[lv_player].lv_faction), lv_portalUnit, UnitGroupUnit(lv_portals, 1), 0.5, lv_duration, "SmartCommandUnitInteraction", null); } + + if (((libNtve_gf_UnitInRegion(lv_portalUnit, libMapM_gv_mMSafeRegions[libGame_gv_players[lv_player].lv_faction]) == true) && (libMapM_gv_mMSafeRegions[libGame_gv_players[lv_player].lv_faction] != null))) { + UnitBehaviorAdd(lv_portalUnit, "MedivhPortalNotInHallOfStorms", lv_portalUnit, 1); + } + return true; } @@ -440,87 +443,6 @@ void libHMDV_gt_HeroMedivhLeyLineSealOverlayOff_Init () { TriggerAddEventUnitBehaviorChange(libHMDV_gt_HeroMedivhLeyLineSealOverlayOff, null, "MedivhLeyLineSealStasis", c_unitBehaviorChangeDestroy); } -//-------------------------------------------------------------------------------------------------- -// Trigger: Hero - Medivh - Portal Teleport -//-------------------------------------------------------------------------------------------------- -bool libHMDV_gt_HeroMedivhPortalTeleport_Func (bool testConds, bool runActions) { - // Variable Declarations - unit lv_itUnit; - int lv_portalOwner; - unit lv_portalClicked; - unit lv_casterUnit; - unit lv_medivhUnit; - - // Automatic Variable Declarations - unitgroup auto43A3FC99_g; - int auto43A3FC99_u; - - // Variable Initialization - lv_casterUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster); - - // Conditions - if (testConds) { - if (!((UnitHasBehaviorWithCategoryFlag(lv_casterUnit, c_behaviorCategoryStun) == false))) { - return false; - } - - if (!((UnitHasBehaviorWithCategoryFlag(lv_casterUnit, c_behaviorCategorySleeping) == false))) { - return false; - } - - if (!((UnitHasBehaviorWithCategoryFlag(lv_casterUnit, c_behaviorCategoryDebuffRoot) == false))) { - return false; - } - - if (!((UnitHasBehaviorWithCategoryFlag(lv_casterUnit, c_behaviorCategoryDebuffStasis) == false))) { - return false; - } - - if (!((UnitHasBehaviorWithCategoryFlag(lv_casterUnit, c_behaviorCategoryTimeStop) == false))) { - return false; - } - - if (!((UnitHasBehaviorWithCategoryFlag(lv_casterUnit, c_behaviorCategoryPushOrPull) == false))) { - return false; - } - } - - // Actions - if (!runActions) { - return true; - } - - lv_portalOwner = UnitGetOwner(EventPlayerEffectUsedUnit(c_effectUnitTarget)); - lv_portalClicked = EventPlayerEffectUsedUnit(c_effectUnitTarget); - if ((UnitGetType(libGame_gv_players[lv_portalOwner].lv_heroUnit) == "HeroAbathur")) { - lv_medivhUnit = libGame_gv_players[lv_portalOwner].lv_activeVehicle; - } - else { - lv_medivhUnit = libGame_gv_players[lv_portalOwner].lv_heroUnit; - } - auto43A3FC99_g = libNtve_gf_UnitsInRegionWithAllianceToPlayerMatchingCondition("MedivhPortal", "", "", lv_portalOwner, c_unitAllianceAlly, RegionEntireMap(), UnitFilter(0, 0, (1 << c_targetFilterSelf) | (1 << c_targetFilterNeutral) | (1 << c_targetFilterEnemy) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0); - auto43A3FC99_u = UnitGroupCount(auto43A3FC99_g, c_unitCountAll); - for (;; auto43A3FC99_u -= 1) { - lv_itUnit = UnitGroupUnitFromEnd(auto43A3FC99_g, auto43A3FC99_u); - if (lv_itUnit == null) { break; } - if ((lv_itUnit != lv_portalClicked) && (UnitGetOwner(lv_itUnit) == lv_portalOwner)) { - UnitCreateEffectUnit(lv_itUnit, "MedivhPortalTeleport", lv_casterUnit); - UnitCreateEffectUnit(lv_medivhUnit, "MedivhPortalTeleportSet", lv_casterUnit); - UnitCreateEffectUnit(lv_itUnit, "MedivhPortalTeleportSetFromPortal", lv_casterUnit); - break; - } - - } - return true; -} - -//-------------------------------------------------------------------------------------------------- -void libHMDV_gt_HeroMedivhPortalTeleport_Init () { - libHMDV_gt_HeroMedivhPortalTeleport = TriggerCreate("libHMDV_gt_HeroMedivhPortalTeleport_Func"); - TriggerEnable(libHMDV_gt_HeroMedivhPortalTeleport, false); - TriggerAddEventPlayerEffectUsed(libHMDV_gt_HeroMedivhPortalTeleport, c_playerAny, "MedivhPortalSmartCommandDummy"); -} - //-------------------------------------------------------------------------------------------------- // Trigger: Hero - Medivh - Portal Camera Pan //-------------------------------------------------------------------------------------------------- @@ -530,7 +452,7 @@ bool libHMDV_gt_HeroMedivhPortalCameraPan_Func (bool testConds, bool runActions) // Automatic Variable Declarations // Variable Initialization - lv_teleportTarget = EventPlayerEffectUsedUnit(c_effectUnitTarget); + lv_teleportTarget = EventPlayerEffectUsedUnit(c_effectUnitCaster); // Actions if (!runActions) { @@ -545,7 +467,7 @@ bool libHMDV_gt_HeroMedivhPortalCameraPan_Func (bool testConds, bool runActions) void libHMDV_gt_HeroMedivhPortalCameraPan_Init () { libHMDV_gt_HeroMedivhPortalCameraPan = TriggerCreate("libHMDV_gt_HeroMedivhPortalCameraPan_Func"); TriggerEnable(libHMDV_gt_HeroMedivhPortalCameraPan, false); - TriggerAddEventPlayerEffectUsed(libHMDV_gt_HeroMedivhPortalCameraPan, c_playerAny, "MedivhPortalTeleport"); + TriggerAddEventPlayerEffectUsed(libHMDV_gt_HeroMedivhPortalCameraPan, c_playerAny, "MedivhPortalTeleportToPortal"); } //-------------------------------------------------------------------------------------------------- @@ -621,35 +543,6 @@ void libHMDV_gt_HeroMedivhPortalPortalMasteryMorphBackToMedivh_Init () { TriggerAddEventUnitAbility(libHMDV_gt_HeroMedivhPortalPortalMasteryMorphBackToMedivh, null, AbilityCommand("MedivhPortal2", 0), c_abilEffectStageCast, false); } -//-------------------------------------------------------------------------------------------------- -// Trigger: Hero - Medivh - Portal Raven Familiar Talent Apply Slow -//-------------------------------------------------------------------------------------------------- -bool libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow_Func (bool testConds, bool runActions) { - // Variable Declarations - unit lv_unit; - int lv_ravenOwner; - - // Automatic Variable Declarations - // Variable Initialization - lv_unit = EventUnit(); - lv_ravenOwner = UnitGetOwner(EventUnitDamageSourceUnit()); - - // Actions - if (!runActions) { - return true; - } - - UnitCreateEffectUnit(libGame_gv_players[lv_ravenOwner].lv_heroUnit, "MedivhPortalApplyRavenFamiliarTalentSlow", lv_unit); - return true; -} - -//-------------------------------------------------------------------------------------------------- -void libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow_Init () { - libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow = TriggerCreate("libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow_Func"); - TriggerEnable(libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow, false); - TriggerAddEventUnitDamaged(libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow, null, c_unitDamageTypeAbility, c_unitDamageNonFatal, "MedivhPortalRavenFamiliarImpactDamage"); -} - //-------------------------------------------------------------------------------------------------- // Trigger: Hero - Medivh - Force of Will Behavior Responses //-------------------------------------------------------------------------------------------------- @@ -966,11 +859,9 @@ void libHMDV_InitTriggers () { libHMDV_gt_HeroAIAIMedivhUnregisterPortal_Init(); libHMDV_gt_HeroMedivhLeyLineSealOverlayOn_Init(); libHMDV_gt_HeroMedivhLeyLineSealOverlayOff_Init(); - libHMDV_gt_HeroMedivhPortalTeleport_Init(); libHMDV_gt_HeroMedivhPortalCameraPan_Init(); libHMDV_gt_HeroMedivhPortalPortalMasterySelectionClamping_Init(); libHMDV_gt_HeroMedivhPortalPortalMasteryMorphBackToMedivh_Init(); - libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow_Init(); libHMDV_gt_HeroMedivhForceofWillBehaviorResponses_Init(); libHMDV_gt_HeroMedivhForceofWillRemoveEarly_Init(); libHMDV_gt_HeroMedivhTransformRavenAfterPortToTown_Init(); diff --git a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHMDV_h.galaxy b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHMDV_h.galaxy index 2147ad8..9e21176 100644 --- a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHMDV_h.galaxy +++ b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibHMDV_h.galaxy @@ -26,11 +26,9 @@ trigger libHMDV_gt_HeroAIAIMedivhRegisterPortalCast; trigger libHMDV_gt_HeroAIAIMedivhUnregisterPortal; trigger libHMDV_gt_HeroMedivhLeyLineSealOverlayOn; trigger libHMDV_gt_HeroMedivhLeyLineSealOverlayOff; -trigger libHMDV_gt_HeroMedivhPortalTeleport; trigger libHMDV_gt_HeroMedivhPortalCameraPan; trigger libHMDV_gt_HeroMedivhPortalPortalMasterySelectionClamping; trigger libHMDV_gt_HeroMedivhPortalPortalMasteryMorphBackToMedivh; -trigger libHMDV_gt_HeroMedivhPortalRavenFamiliarTalentApplySlow; trigger libHMDV_gt_HeroMedivhForceofWillBehaviorResponses; trigger libHMDV_gt_HeroMedivhForceofWillRemoveEarly; trigger libHMDV_gt_HeroMedivhTransformRavenAfterPortToTown; diff --git a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibTrac.galaxy b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibTrac.galaxy index 8044c1a..cb62ac2 100644 --- a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibTrac.galaxy +++ b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/LibTrac.galaxy @@ -628,10 +628,10 @@ bool libTrac_gt_HeroTracerFocusFireSetTarget_Func (bool testConds, bool runActio } if ((libTrac_gv_heroTracerFocusFireTargetInteger[lv_ownerOfCaster] == 10)) { if ((UnitFilterMatch(lv_target, lv_ownerOfCaster, UnitFilter((1 << c_targetFilterHeroic), 0, (1 << c_targetFilterPlayer) | (1 << c_targetFilterAlly), 0)) == true)) { - UnitCreateEffectUnitWithSource(lv_caster, "TracerHeroWeaponFocusFireMasteryDamageHero", lv_target, c_gameCatalogBehavior, "TracerFocusFireFinalShot"); + UnitCreateEffectUnitWithSource(lv_caster, "TracerFocusFireHeroImpactSet", lv_target, c_gameCatalogBehavior, "TracerFocusFireFinalShot"); } else { - UnitCreateEffectUnitWithSource(lv_caster, "TracerHeroWeaponFocusFireMasteryDamage", lv_target, c_gameCatalogBehavior, "TracerFocusFireFinalShot"); + UnitCreateEffectUnitWithSource(lv_caster, "TracerFocusFireNonHeroImpactSet", lv_target, c_gameCatalogBehavior, "TracerFocusFireFinalShot"); } libTrac_gv_heroTracerFocusFireTargetInteger[lv_ownerOfCaster] = 0; } diff --git a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameDataHelperLib.galaxy b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameDataHelperLib.galaxy index 5ba3fb4..d76cfbb 100644 --- a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameDataHelperLib.galaxy +++ b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameDataHelperLib.galaxy @@ -3008,6 +3008,8 @@ void libGDHL_gf_HeroRehgarIncrementHeroCountFunction () { TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse, true); TriggerEnable(libGDHL_gt_HeroRehgarTidalWavesModifyCooldown, true); TriggerEnable(libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply, true); + TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeAddLeech, true); + TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeLeechProc, true); } } @@ -3028,6 +3030,8 @@ void libGDHL_gf_HeroRehgarDecrementHeroCountFunction () { TriggerEnable(libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse, false); TriggerEnable(libGDHL_gt_HeroRehgarTidalWavesModifyCooldown, false); TriggerEnable(libGDHL_gt_HeroRehgarEarthlivingEnchantHotApply, false); + TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeAddLeech, false); + TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeLeechProc, false); } } @@ -5146,6 +5150,7 @@ void libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes_Init () { TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, c_playerAny, "CarapaceEvolutionApplyShield"); TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, c_playerAny, "CarapaceEvolutionApplyShieldHivemind"); TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, c_playerAny, "AbathurSymbioteApplyCarapaceNetworkedCarapaceTalentShield"); + TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroAbathurCarapaceRegenerativeMicrobes, c_playerAny, "AbathurSymbioteApplyCarapaceNetworkedCarapaceHivemindTalentShield"); } //-------------------------------------------------------------------------------------------------- @@ -18745,7 +18750,10 @@ bool libGDHL_gt_HeroRaynorBansheeTeleport_Func (bool testConds, bool runActions) if (autoD0FD4CB9_var == null) { break; } if ((UnitGetType(autoD0FD4CB9_var) == "RaynorRaynorsBanshee")) { UnitSetPosition(autoD0FD4CB9_var, UnitGetPosition(libGame_gv_players[lv_player].lv_heroUnit), false); - UnitCreateEffectUnit(autoD0FD4CB9_var, "HearthstoneHealthCreateHealer", autoD0FD4CB9_var); + if ((EventPlayerEffectUsed() == "HearthstoneTeleport")) { + UnitCreateEffectUnit(autoD0FD4CB9_var, "HearthstoneHealthCreateHealer", autoD0FD4CB9_var); + } + UnitCreateEffectUnit(lv_unit, "RaynorRaynorsRaidersLeashTrackedUnits", lv_unit); } @@ -19166,6 +19174,107 @@ void libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase_Init () { libGame_gf_HeroSpecialCaseMounting(libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase); } +//-------------------------------------------------------------------------------------------------- +// Trigger: Hero - Rehgar - Electric Charge - Add Leech +//-------------------------------------------------------------------------------------------------- +bool libGDHL_gt_HeroRehgarElectricChargeAddLeech_Func (bool testConds, bool runActions) { + // Variable Declarations + fixed lv_damageAmount; + unit lv_rehgarUnit; + int lv_rehgarPlayer; + + // Automatic Variable Declarations + // Variable Initialization + lv_rehgarUnit = EventUnitDamageSourceUnit(); + lv_rehgarPlayer = UnitGetOwner(EventUnitDamageSourceUnit()); + + // Conditions + if (testConds) { + if (!((UnitTypeTestAttribute(UnitGetType(EventUnit()), c_unitAttributeHeroic) == true))) { + return false; + } + + if (!((PlayerHasTalent(lv_rehgarPlayer, "RehgarLightningShieldElectricCharge") == true))) { + return false; + } + + if (!((lv_rehgarPlayer >= 1))) { + return false; + } + + if (!((lv_rehgarPlayer <= libCore_gv_bALMaxPlayers))) { + return false; + } + } + + // Actions + if (!runActions) { + return true; + } + + lv_damageAmount = ((EventUnitDamageAmount() + EventUnitDamageBehaviorShield()) * CatalogFieldValueGetAsFixed(c_gameCatalogEffect, EventUnitDamageEffect(), "LeechFraction[" + IntToString(c_unitVitalLife) + "]", lv_rehgarPlayer)); + libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer] = (libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer] + lv_damageAmount); + return true; +} + +//-------------------------------------------------------------------------------------------------- +void libGDHL_gt_HeroRehgarElectricChargeAddLeech_Init () { + libGDHL_gt_HeroRehgarElectricChargeAddLeech = TriggerCreate("libGDHL_gt_HeroRehgarElectricChargeAddLeech_Func"); + TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeAddLeech, false); + TriggerAddDamageEvent(libGDHL_gt_HeroRehgarElectricChargeAddLeech, "HeroRehgar", null, c_unitDamageTypeAbility, c_unitDamageEither, "RehgarLightningShieldDamage"); + TriggerAddDamageEvent(libGDHL_gt_HeroRehgarElectricChargeAddLeech, "HeroRehgar", null, c_unitDamageTypeAbility, c_unitDamageEither, "RehgarLightningShieldElectricChargeTalentDamage"); +} + +//-------------------------------------------------------------------------------------------------- +// Trigger: Hero - Rehgar - Electric Charge - Leech Proc +//-------------------------------------------------------------------------------------------------- +bool libGDHL_gt_HeroRehgarElectricChargeLeechProc_Func (bool testConds, bool runActions) { + // Variable Declarations + unit lv_rehgarUnit; + unit lv_sourceUnit; + int lv_rehgarPlayer; + + // Automatic Variable Declarations + // Variable Initialization + lv_rehgarUnit = EventPlayerEffectUsedUnit(c_effectUnitCaster); + lv_sourceUnit = EventPlayerEffectUsedUnit(c_effectUnitSource); + lv_rehgarPlayer = UnitGetOwner(lv_rehgarUnit); + + // Conditions + if (testConds) { + if (!((libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer] > 0.0))) { + return false; + } + + if (!((lv_rehgarPlayer >= 1))) { + return false; + } + + if (!((lv_rehgarPlayer <= libCore_gv_bALMaxPlayers))) { + return false; + } + } + + // Actions + if (!runActions) { + return true; + } + + CatalogFieldValueSetFixed(c_gameCatalogEffect, "RehgarElectricChargeCreateHealer", "RechargeVitalRate", lv_rehgarPlayer, libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer]); + UnitCreateEffectUnit(lv_rehgarUnit, "RehgarElectricChargeCreateHealerSet", lv_sourceUnit); + libGDHL_gv_heroRehgarElecrtricChargeLeechCombined[lv_rehgarPlayer] = 0.0; + return true; +} + +//-------------------------------------------------------------------------------------------------- +void libGDHL_gt_HeroRehgarElectricChargeLeechProc_Init () { + libGDHL_gt_HeroRehgarElectricChargeLeechProc = TriggerCreate("libGDHL_gt_HeroRehgarElectricChargeLeechProc_Func"); + TriggerEnable(libGDHL_gt_HeroRehgarElectricChargeLeechProc, false); + TriggerAddEventPlayerEffectUsed(libGDHL_gt_HeroRehgarElectricChargeLeechProc, c_playerAny, "RehgarLightningShieldLeechProcDummy"); +} + + + //-------------------------------------------------------------------------------------------------- // Trigger: Rexxar UI Initialize //-------------------------------------------------------------------------------------------------- @@ -20367,7 +20476,10 @@ bool libGDHL_gt_HeroRexxarMishaTeleport_Func (bool testConds, bool runActions) { if ((UnitGetType(autoFF82D22F_var) == "RexxarMisha")) { UnitCreateEffectUnit(autoFF82D22F_var, "RexxarMishaHoldIssueStopOrder", autoFF82D22F_var); UnitSetPosition(autoFF82D22F_var, UnitGetPosition(libGame_gv_players[lv_player].lv_heroUnit), false); - UnitCreateEffectUnit(autoFF82D22F_var, "HearthstoneHealthCreateHealer", autoFF82D22F_var); + if ((EventPlayerEffectUsed() == "HearthstoneTeleport")) { + UnitCreateEffectUnit(autoFF82D22F_var, "HearthstoneHealthCreateHealer", autoFF82D22F_var); + } + Wait(0.0625, c_timeGame); libGDHL_gf_HeroRexxarMishaStopMishaandResetThink(autoFF82D22F_var); } @@ -26812,6 +26924,8 @@ void libGDHL_InitTriggers () { libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse_Init(); libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown_Init(); libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase_Init(); + libGDHL_gt_HeroRehgarElectricChargeAddLeech_Init(); + libGDHL_gt_HeroRehgarElectricChargeLeechProc_Init(); libGDHL_gt_RexxarUIInitialize_Init(); libGDHL_gt_RexxarUICleanupForHeroSwap_Init(); libGDHL_gt_HeroRexxarCleanUpForAbathurUltimateEvolutionClone_Init(); diff --git a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameDataHelperLib_h.galaxy b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameDataHelperLib_h.galaxy index bcc6c37..bbe2898 100644 --- a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameDataHelperLib_h.galaxy +++ b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameDataHelperLib_h.galaxy @@ -349,6 +349,7 @@ bool[libCore_gv_bALMaxPlayers + 1] libGDHL_gv_heroRaynorRaynorsBansheeIsAttackin unit[libCore_gv_bALMaxPlayers + 1] libGDHL_gv_heroRaynorBansheeTarget; int libGDHL_gv_heroRehgarTriggerRegistrationVariable; unit[libCore_gv_bALMaxPlayers + 1] libGDHL_gv_heroRehgarTotemicProjectionTalentActiveTotem; +fixed[libCore_gv_bALMaxPlayers + 1] libGDHL_gv_heroRehgarElecrtricChargeLeechCombined; int libGDHL_gv_heroRexxarTriggerRegistrationVariable; libGDHL_gs_RexxarUI libGDHL_gv_rexxarUI; unit[libCore_gv_bALMaxPlayers + 1] libGDHL_gv_hunterGathererGlobe; @@ -882,6 +883,8 @@ trigger libGDHL_gt_HeroRehgarTotemicProjectionTalentMoveTotem; trigger libGDHL_gt_HeroRehgarTotemicProjectionResetOnRewindUse; trigger libGDHL_gt_HeroRehgarGhostWolfAfterPortToTown; trigger libGDHL_gt_HeroRehgarGhostWolfMountingSpecialCase; +trigger libGDHL_gt_HeroRehgarElectricChargeAddLeech; +trigger libGDHL_gt_HeroRehgarElectricChargeLeechProc; trigger libGDHL_gt_RexxarUIInitialize; trigger libGDHL_gt_RexxarUICleanupForHeroSwap; trigger libGDHL_gt_HeroRexxarCleanUpForAbathurUltimateEvolutionClone; diff --git a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameLib.galaxy b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameLib.galaxy index 65a31af..07bcf79 100644 --- a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameLib.galaxy +++ b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameLib.galaxy @@ -12688,9 +12688,9 @@ void libGame_gf_CalculateLeechDamage (string lp_damageEffect, fixed lp_damageVal if (!(UnitHasBehavior2(lp_targetUnit, "ButchersBrand") == true)) { // UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, StringToText("Leech Validator TargetHasButchersBrandTargetBehavior Failed!")); lv_leechFraction = 0.0; - } - if (UnitTypeTestAttribute(UnitGetType(lp_targetUnit), c_unitAttributeHeroic) == true) { - lv_leechFraction += CatalogFieldValueGetAsFixed(c_gameCatalogEffect, lp_damageEffect, "LeechFlatModifierArray[" + "BrandedHero" + "].Modifier", lp_casterPlayer); + if (UnitTypeTestAttribute(UnitGetType(lp_targetUnit), c_unitAttributeHeroic) == true) { + lv_leechFraction += CatalogFieldValueGetAsFixed(c_gameCatalogEffect, lp_damageEffect, "LeechFlatModifierArray[" + "BrandedHero" + "].Modifier", lp_casterPlayer); + } } } else if ((CatalogFieldValueGet(c_gameCatalogEffect, lp_damageEffect, "LeechValidator[" + IntToString(c_unitVitalLife) + "]", lp_casterPlayer) == "HasIllidanCombatStyleHuntersOnslaught")) { @@ -12698,6 +12698,9 @@ void libGame_gf_CalculateLeechDamage (string lp_damageEffect, fixed lp_damageVal lv_leechFraction = 0.0; } } + else if ((CatalogFieldValueGet(c_gameCatalogEffect, lp_damageEffect, "LeechValidator[" + IntToString(c_unitVitalLife) + "]", lp_casterPlayer) == "AlwaysReturnsFalse")) { + lv_leechFraction = 0.0; + } } if (((lp_damageEffect == "FireStompSoulsToTheFlameDamage") || (lp_damageEffect == "FireStompReturnSoulsToTheFlameDamage"))) { // libGame_gv_HeroSpecificStoredValue1[lp_casterPlayer] += 1; @@ -13173,12 +13176,12 @@ void libGame_gf_HeroSpecificScoreTrackerLeeched (string lp_damageEffect, fixed l if ((UnitGetType(libGame_gv_players[lp_casterPlayer].lv_heroUnit) == "HeroRehgar")) { - if ((lp_damageEffect == "RehgarLightningShieldDamage")) { - lv_primaryScoreString = "TalentFour"; - } - if ((lp_damageEffect == "RehgarLightningShieldElectricChargeTalentDamage")) { - lv_primaryScoreString = "TalentSeven"; - } + // if ((lp_damageEffect == "RehgarLightningShieldDamage")) { + // lv_primaryScoreString = "TalentFour"; + // } + // if ((lp_damageEffect == "RehgarLightningShieldElectricChargeTalentDamage")) { + // lv_primaryScoreString = "TalentSeven"; + // } } if ((UnitGetType(libGame_gv_players[lp_casterPlayer].lv_heroUnit) == "HeroButcher")) { if ((lp_damageEffect == "ButcherHeroWeaponDamage")) { @@ -14801,9 +14804,15 @@ void libGame_gf_HeroSpecificStatTrackerAbsorbed (fixed lp_preventedValue, string if ((lp_behavior == "AbathurSymbioteCarapaceNetworkedCarapaceTalent")) { lv_primaryScoreString = "TalentSeven"; } + if ((lp_behavior == "AbathurSymbioteCarapaceNetworkedCarapaceHivemindTalent")) { + lv_primaryScoreString = "TalentSeven"; + } else if ((lp_behavior == "CarapaceEvolutionShield")) { lv_primaryScoreString = "BaselineOne"; } + else if ((lp_behavior == "CarapaceEvolutionShieldHivemind")) { + lv_primaryScoreString = "BaselineOne"; + } else if ((lp_behavior == "AbathurUltimateEvolutionEvolutionaryLinkShield")) { if ((lv_externalPlayer >= 1) && (lv_externalPlayer <= libCore_gv_bALMaxPlayers)) { lv_primaryScoreString = "ScoreTwelve"; @@ -15494,6 +15503,9 @@ void libGame_gf_HeroSpecificStatTrackerAbsorbed (fixed lp_preventedValue, string if ((lp_behavior == "AbathurSymbioteCarapaceNetworkedCarapaceTalent")) { lv_primaryScoreString = "BaselineThree"; } + if ((lp_behavior == "AbathurSymbioteCarapaceNetworkedCarapaceHivemindTalent")) { + lv_primaryScoreString = "BaselineThree"; + } else if ((lp_behavior == "CarapaceEvolutionShield")) { lv_primaryScoreString = "BaselineThree"; } @@ -16716,6 +16728,14 @@ void libGame_gf_HeroSpecificStatTrackerHealed (fixed lp_healedValue, string lp_h if ((lp_healEffect == "RehgarLightningShieldManaRestore")) { lv_primaryScoreString = "TalentOne"; } + if ((lp_healEffect == "RehgarElectricChargeCreateHealer")) { + if ((UnitGetOwner(lp_targetUnit) != lp_casterPlayer)) { + lv_primaryScoreString = "TalentFour"; + } + else { + lv_primaryScoreString = "TalentSeven"; + } + } if ((lp_healEffect == "RehgarChainHealEarthlivingEnchantHealer")) { if ((UnitGetOwner(lp_targetUnit) != lp_casterPlayer)) { lv_primaryScoreString = "TalentFour"; @@ -18235,11 +18255,11 @@ void libGame_gf_HeroSpecificStatTrackerOther (fixed lp_scoreValue, int lp_caster else if ((libGame_gv_players[lp_targetPlayer].lv_rosterSlot == 10)) { lv_scoreString = "DamageToTen"; } - if ((UnitGetType(libGame_gv_players[lp_casterPlayer].lv_heroUnit) == "HeroAbathur")) { + if ((UnitGetType(libGame_gv_players[lp_casterPlayer].lv_heroUnit) != "HeroMedivh")) { lv_scoreString = "Discard"; } if ((libGame_gv_heroSpecificDebug == true) && ((libGame_gv_heroSpecificDebugString == "PortalUse"))) { - UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, (StringToText("Portal Use Detected, Source: ") + StringToText(lp_extraDataString))); + UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, (StringToText("Portal Use Detected, Teleported: ") + StringToText(lp_extraDataString))); } } @@ -20948,6 +20968,11 @@ void libGame_gf_HeroSpecificStatTrackerDamage (string lp_damageEffect, fixed lp_ UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, (StringToText("Determined Deckard Player doesn't have Ancient Blessings: ") + IntToText(lv_primaryPlayerOverride))); } } + if ((lp_damageEffect == "MedivhPortalRavenFamiliarImpactDamage") && (UnitGetType(libGame_gv_players[lv_casterPlayer].lv_heroUnit) != "HeroMedivh")) { + lv_primaryPlayerOverride = UnitGetOwner(UnitGroupUnit(libNtve_gf_UnitsInRegionWithAllianceToPlayerMatchingCondition("HeroMedivh", "HeroMedivhRaven", "", lv_casterPlayer, c_unitAllianceAlly, RegionEntireMap(), libCore_gv_filtersHeroicAllyandnotHallucination, 1), 1)); + // lv_primaryPlayerOverride = UnitBehaviorEffectPlayer(lp_casterUnit, "DeckardAncientBlessingsAllyBuff", c_effectPlayerCaster, 0); + lv_primaryScoreString = "ScoreFive"; + } // if ((CatalogFieldValueGet(c_gameCatalogEffect, lp_damageEffect, "Kind", lv_casterPlayer) == "Basic") && (UnitHasBehavior2(lp_casterUnit, "ProbiusWarpInPylonAggressiveMatrixAttackDamageBuff") == true)) { // lv_denaryScoreString = "TalentThirteen"; @@ -26700,7 +26725,7 @@ void libGame_gf_HeroSpecificStatTrackerDamage (string lp_damageEffect, fixed lp_ } } if ((lp_damageEffect == "ApocalypseDamage")) { - if (((GameGetMissionTime() - libGame_gv_HeroSpecificStoredValue1[lv_casterPlayer]) == 1.75) || ((PlayerHasTalent(lv_casterPlayer, "DiabloHellgate") == false) && (PlayerHasTalent(lv_casterPlayer, "DiabloMasteryDyingBreathApocalypse") == false))) { + if ((((GameGetMissionTime() - libGame_gv_HeroSpecificStoredValue1[lv_casterPlayer]) == 2.0) || ((GameGetMissionTime() - libGame_gv_HeroSpecificStoredValue1[lv_casterPlayer]) == 2.0625)) || ((PlayerHasTalent(lv_casterPlayer, "DiabloHellgate") == false) && (PlayerHasTalent(lv_casterPlayer, "DiabloMasteryDyingBreathApocalypse") == false))) { if ((UnitTypeTestAttribute(UnitGetType(lp_targetUnit), c_unitAttributeHeroic) == true)) { lv_primaryScoreString = "ScoreEight"; lv_secondaryScoreString = "AccuracyTwelve"; @@ -35395,27 +35420,48 @@ fixed libGame_gf_FetchAbilityCooldownTime (unit lp_unit, string lp_ability, int lv_method = "Pain Is Temporary override"; } if ((lp_ability == "MedivhPortalDetector")) { + libGame_gv_HeroOtherUserTracker[lp_player] = UnitGroupEmpty(); if ((UnitGetType(lp_unit) == "HeroLostVikingsController")) { - lv_cooldownTime += UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lp_player].lv_olaf, "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleog, "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lp_player].lv_erik, "MedivhPortalTeleportSickness"); + if (UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lp_player].lv_olaf, "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], libGDHL_gv_lostVikingsPlayer[lp_player].lv_olaf); + lv_cooldownTime += 1; + } + if (UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleog, "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], libGDHL_gv_lostVikingsPlayer[lp_player].lv_baleog); + lv_cooldownTime += 1; + } + if (UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lp_player].lv_erik, "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], libGDHL_gv_lostVikingsPlayer[lp_player].lv_erik); + lv_cooldownTime += 1; + } } else if ((UnitGetType(lp_unit) == "HeroSamuro")) { - lv_cooldownTime += UnitBehaviorCount(lp_unit, "MedivhPortalTeleportSickness"); - // lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 0), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 1), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 2), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 3), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 4), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 5), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 6), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 7), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 8), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 9), "MedivhPortalTeleportSickness"); - lv_cooldownTime += UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 10), "MedivhPortalTeleportSickness"); + if (UnitBehaviorCount(lp_unit, "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], lp_unit); + lv_cooldownTime += 1; + } + if (UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 1), "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 1)); + lv_cooldownTime += 1; + } + if (UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 2), "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 2)); + lv_cooldownTime += 1; + } + if (UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 3), "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 3)); + lv_cooldownTime += 1; + } + if (UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 4), "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], UnitGroupUnit(UnitGetTrackedUnitGroup(lp_unit, "SamuroMirrorImageUnitTracker"), 4)); + lv_cooldownTime += 1; + } } else { - lv_cooldownTime = UnitBehaviorCount(lp_unit, "MedivhPortalTeleportSickness"); + if (UnitBehaviorCount(lp_unit, "MedivhPortalTeleportSickness") != 0) { + UnitGroupAdd(libGame_gv_HeroOtherUserTracker[lp_player], lp_unit); + lv_cooldownTime += 1; + } } lv_method = "Portal Detector override"; } @@ -35619,9 +35665,13 @@ void libGame_gv_trackHeroCooldowns (unit lp_casterUnit, string lp_abilityName, f fixed lv_quaternaryScoreValueOverride; int lv_iterator; unit lv_tempUnit; + unit lv_tempUnit2; + int lv_tempInt; + int lv_tempInt2; string lv_tempString; bool lv_tempBool; fixed lv_tempFixed; + const int lv_one = 1; lv_casterPlayerOverride = UnitGetOwner(lp_casterUnit); lv_heroUnitType = UnitGetType(lp_casterUnit); @@ -35634,6 +35684,7 @@ void libGame_gv_trackHeroCooldowns (unit lp_casterUnit, string lp_abilityName, f lv_quaternaryScoreValueOverride = 1.0; lv_iterator = 0; lv_tempUnit = null; + lv_tempUnit2 = null; lv_tempString = ""; lv_tempBool = false; lv_tempFixed = 0.0; @@ -39579,88 +39630,22 @@ void libGame_gv_trackHeroCooldowns (unit lp_casterUnit, string lp_abilityName, f } if ((lp_abilityName == "MedivhPortalDetector")) { lv_scoreString = "Discard"; - lv_tempUnit = lp_casterUnit; - lv_iterator = (FixedToInt(lp_cooldownNewValue) - FixedToInt(lp_cooldownOldValue)); - while (lv_iterator > 0) { - if ((lv_heroUnitType == "HeroLostVikingsController") || (lv_heroUnitType == "HeroSamuro")) { - if ((lv_heroUnitType == "HeroLostVikingsController")) { - if ((UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lv_casterPlayerOverride].lv_olaf, "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = libGDHL_gv_lostVikingsPlayer[lv_casterPlayerOverride].lv_olaf; - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lv_casterPlayerOverride].lv_baleog, "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = libGDHL_gv_lostVikingsPlayer[lv_casterPlayerOverride].lv_baleog; - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(libGDHL_gv_lostVikingsPlayer[lv_casterPlayerOverride].lv_erik, "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = libGDHL_gv_lostVikingsPlayer[lv_casterPlayerOverride].lv_erik; - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - } - else { - if ((UnitBehaviorCount(lp_casterUnit, "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = lp_casterUnit; - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 1), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 1); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 2), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 2); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 3), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 3); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 4), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 4); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 5), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 5); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 6), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 6); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 7), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 7); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 8), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 8); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 9), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 9); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - if ((UnitBehaviorCount(UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 10), "MedivhPortalTeleportSickness") == 1) && (lv_iterator > 0)) { - lv_tempUnit = UnitGroupUnit(UnitGetTrackedUnitGroup(lp_casterUnit, "SamuroMirrorImageUnitTracker"), 10); - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; - } - } - } - else { - libGame_gf_HeroSpecificStatTrackerOther(1.0, UnitBehaviorEffectPlayer(lv_tempUnit, "MedivhPortalTeleportSickness", c_effectPlayerCaster, 0), lv_casterPlayerOverride, "MedivhPortalUse", null, "CDR"); - lv_iterator -= 1; + lv_tempInt = UnitGroupCount(libGame_gv_HeroOtherUserTracker[lv_casterPlayerOverride], c_unitCountAll); + if (lv_tempInt != 0) { + lv_iterator = 1; + for ( ; ( (lv_one >= 0 && lv_iterator <= lv_tempInt) || (lv_one < 0 && lv_iterator >= lv_tempInt) ) ; lv_iterator += lv_one ) { + lv_tempUnit = UnitGroupUnit(libGame_gv_HeroOtherUserTracker[lv_casterPlayerOverride], lv_iterator); + lv_tempUnit2 = UnitGroupUnit(libNtve_gf_UnitsInRegionWithAllianceToPlayerMatchingCondition("MedivhPortal", "", "", UnitGetOwner(lv_tempUnit), c_unitAllianceAlly, RegionCircle(UnitGetPosition(lv_tempUnit), 7.0), UnitFilter(0, 0, 0, 0), 1), 1); + lv_tempInt2 = UnitGetOwner(lv_tempUnit2); + if ((lv_tempInt2 > 0) && (lv_tempInt2 <= 10) && (lv_tempUnit2 != null) && ((UnitGetType(libGame_gv_players[lv_tempInt2].lv_heroUnit) == "HeroMedivh") || (UnitGetType(libGame_gv_players[lv_tempInt2].lv_heroUnit) == "HeroMedivhRaven"))) { + libGame_gf_HeroSpecificStatTrackerOther(1.0, lv_tempInt2, UnitGetOwner(lv_tempUnit), "MedivhPortalUse", null, UnitGetType(lv_tempUnit)); + } + // if (lv_tempUnit2 != null) { + // UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, (StringToText("Portal Iteration ") + IntToText(lv_iterator) + StringToText(" Medivh Roster: ") + IntToText(libGame_gv_players[lv_tempInt2].lv_rosterSlot) + StringToText(" Team: ") + IntToText((libGame_gf_TeamNumberOfPlayer(lv_tempInt2))) + StringToText(" Portal Unit: ") + StringToText(UnitGetType(lv_tempUnit2)))); + // } + // else { + // UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, (StringToText("Couldn't determine Portal unit"))); + // } } } } @@ -39895,7 +39880,7 @@ void libGame_gv_initializeOBSUI () { if ((libGame_gv_heroSpecificDebugString != "Ignore")) { UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, StringToText("Initialising Mercenary Tracker")); - UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, StringToText("Stats Version: v0.37 ") + StringToText("Interface Version: ") + StringExternal("UI/Spazzo/UIVersion")); + UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, StringToText("Stats Version: v0.38 ") + StringToText("Interface Version: ") + StringExternal("UI/Spazzo/UIVersion")); // Well, I tried to add team coloured globes. // CatalogFieldValueSet(c_gameCatalogActor, "ExperienceGlobeAlly", "ModelAspectSets[" + IntToString(0) + "].Aspects[" + IntToString(0) + "].ModelOwnerHasPlayerId", libCore_gv_cOMPUTER_TeamOrder, "11"); // CatalogFieldValueSet(c_gameCatalogActor, "ExperienceGlobeAlly", "ModelAspectSets[" + IntToString(0) + "].Aspects[" + IntToString(0) + "].Person", libCore_gv_cOMPUTER_TeamOrder, "Observer"); @@ -49820,9 +49805,9 @@ bool libGame_gt_HeroDamageTracking_Func (bool testConds, bool runActions) { // PlayerScoreValueSetFromInt(lv_eventUnitDamageSourcePlayer, "TeamWinsFemale", (PlayerScoreValueGetAsInt(lv_eventUnitDamageSourcePlayer, "TeamWinsFemale") + (FixedToInt(EventUnitDamageVitalsLeeched(c_unitVitalLife))))); // UIDisplayMessage(PlayerGroupAll(), c_messageAreaDebug, FixedToText(EventUnitDamageVitalsLeeched(c_unitVitalLife), 2)); libGame_gf_CalculateLeechDamage(EventUnitDamageEffect(), (EventUnitDamageAmount() + EventUnitDamageBehaviorShield()), (EventUnitDamageAttemptedVitals() + EventUnitDamageBehaviorShield()), EventUnitDamageVitalsLeeched(c_unitVitalLife), EventUnit(), EventUnitDamageSourceUnit(), lv_eventUnitDamageSourcePlayer); - if ((EventUnitDamageEffect() != "RehgarLightningShieldDamage") || (PlayerHasTalent(lv_eventUnitDamageSourcePlayer, "RehgarLightningShieldElectricCharge") == false)) { + // if ((EventUnitDamageEffect() != "RehgarLightningShieldDamage") || (PlayerHasTalent(lv_eventUnitDamageSourcePlayer, "RehgarLightningShieldElectricCharge") == false)) { libGame_gf_HeroSpecificStatTrackerOther(EventUnitDamageVitalsLeeched(c_unitVitalLife), lv_eventUnitDamageSourcePlayer, lv_eventUnitDamageSourcePlayer, "LeechTaken", EventUnitDamageSourceUnit(), ""); - } + // } } // Bookmark Auriel's Own Leech Track if ((EventUnitDamageVitalsLeeched(c_unitVitalEnergy) > 0.0) && (UnitGetType(libGame_gv_players[UnitGetOwner(EventUnitDamageSourceUnit())].lv_heroUnit) == "HeroAuriel")) { diff --git a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameLib_h.galaxy b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameLib_h.galaxy index 185db7b..96fdfea 100644 --- a/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameLib_h.galaxy +++ b/maps/Heroes/CustomReplayMaps/CustomLogicFolder/Base.StormData/TriggerLibs/GameLib_h.galaxy @@ -1237,6 +1237,7 @@ fixed[libCore_gv_bALMaxPlayers + 1] libGame_gv_HeroWButtonTimestamp; fixed[libCore_gv_bALMaxPlayers + 1] libGame_gv_HeroEButtonTimestamp; fixed[libCore_gv_bALMaxPlayers + 1] libGame_gv_HeroRButtonTimestamp; fixed[libCore_gv_bALMaxPlayers + 1] libGame_gv_HeroDButtonTimestamp; +unitgroup[libCore_gv_bALMaxPlayers + 1] libGame_gv_HeroOtherUserTracker; fixed[libCore_gv_bALMaxPlayers + 1] libGame_gv_HeroSpecificStoredDamageMitigated; fixed[libCore_gv_bALMaxPlayers + 1] libGame_gv_HeroSpecificStoredDamageMitigatedTimestamp; fixed[libCore_gv_bALMaxPlayers + 1] libGame_gv_TimeSpentInVision;