Heroes of the Storm

For every week that D.Va doesn’t get a balance or rework, I’m going to post 7 QoL or Balance adjustments. Week 0

HeroesoftheStorm 1 - For every week that D.Va doesn't get a balance or rework, I'm going to post 7 QoL or Balance adjustments. Week 0

Yes, I'm doing this. I reckon we're around 2 months at a minimum from the rework. I haven't even thought of what I'm going to do in the next week, let alone in 8 weeks time.

Unlike the last post like this, I'm going to post each change, and what it takes to make said change, and also any related changes that are required for this to work without conflict.

Change 1: Increase Mech Health from 2000 to 2060

This one is really simple, and is purely a data-based change.

 <CUnit id="HeroDVaMech"> <LifeStart value="2060" /> <LifeMax value="2060" /> <LifeRegenRate value="4.291" /> </CUnit> 

This updates both the life and the life regen, since the two are linked, I see this as one change. One other thing is the tooltip for Ablative Armor needs to be updated, as the old value for it is based off of the fact it's exactly 4% of the mech maximum health. This is a string update, so for Blizzard to make a similar change they'd need to work with localisation in languages other than English.

Button/Tooltip/DVaMechAblativeArmor=Damage against D.Va's Mech that would deal <c val="#TooltipNumbers"><d ref="Behavior,DVaMechAblativeArmorDamageResponseCarry,DamageResponse.Maximum/></c> or less damage is reduced by <c val="#TooltipNumbers"><d ref="Behavior,DVaMechAblativeArmorDamageResponseCarry,DamageResponse.ModifyFraction*100"/>%</c>.<n/><n/>This does not decrease the amount of Self-Destruct Charge gained. 

Change 2: Increase Mech Basic Attack Damage by 20%, but only to the primary target

 <CActorSquib id="DVaMechAttackImpactSoundSquib"> <On Terms="Effect.DVaMechWeaponPrimaryTargetImpactSet.Start; At Target" Send="Create" /> <On Terms="Effect.DVaMechWeaponBounceTargetImpactSet.Start; At Target" Send="Create" /> </CActorSquib> <CActorModel id="DVaMechWeaponImpactPersistentFXModel"> <On Terms="Effect.DVaMechWeaponPrimaryTargetImpactSet.Start; At Target" Send="Create" /> <On Terms="Effect.DVaMechWeaponBounceTargetImpactSet.Start; At Target" Send="Create" /> </CActorModel> <CEffectSet id="DVaMechWeaponNewTargetImpactSet"> <EffectArray index="3" value="DVaMechWeaponPrimaryTargetImpactSet" /> </CEffectSet> <CEffectEnumArea id="DVaMechWeaponTargetSearch"> <AreaArray index="0" Effect="DVaMechWeaponBounceTargetImpactSet"/> </CEffectEnumArea> <CEffectSet id="DVaMechWeaponPrimaryTargetImpactSet"> <EffectArray value="DVaMechWeaponDamage" /> <EffectArray value="DVaMechDefenseMatrixAggressionMatrixCooldownReduction" /> </CEffectSet> <CEffectSet id="DVaMechWeaponBounceTargetImpactSet"> <EffectArray value="DVaMechWeaponBounceDamage" /> <EffectArray value="DVaMechDefenseMatrixAggressionMatrixCooldownReduction" /> </CEffectSet> <CEffectDamage id="DVaMechWeaponDamage"> <MultiplicativeModifierArray index="DVaBounce" Modifier="0.2" /> </CEffectDamage> <CEffectDamage id="DVaMechWeaponBounceDamage" parent="DVaMechWeaponDamage"> <MultiplicativeModifierArray index="DVaBounce" Modifier="0.0" /> </CEffectDamage> <CHero id="DVa"> <LevelScalingArray> <Modifications> <Catalog value="Effect" /> <Entry value="DVaMechWeaponBounceDamage" /> <Field value="Amount" /> <Value value="0.040000" /> <AffectedByOverdrive value="1" /> </Modifications> </LevelScalingArray> </CHero> 

Just as the first change, this requires localisation. It's also worth noting the original localisation doesn't seem to mention anywhere that her attacks cleave, so let's add that in there too.

Button/Tooltip/DVaMechanizedWalker=While in her Mech, D.Va can shoot while moving, but her base Movement Speed is reduced by <c val="#TooltipNumbers"><d ref="-Behavior,DVaMechPermanentSlow,Modification.MoveSpeedBonus/Unit,HeroDVaPilot,Speed*100"/>%</c>.<n/><n/>Basic Attack splash in an area in front of D.Va, and the damage dealt to the primary target is increased by <c val="#TooltipNumbers"><d ref="Effect,DVaMechWeaponDamage,MultiplicativeModifierArray.Modifier*100"/>%</c>. 

Change 3: Improved Defense Matrix Tracking and track as Healing if the target deals damage to a Hero

Finally, a change that isn't just data – we've got to update data, triggers, and layout. More interesting, by far.

 <CEffectSet id="DVaMechDefenseMatrixImpactSet"> <EffectArray index="0" value="DVaMechDefenseMatrixApplyDebuff" /> <EffectArray index="1" value="DVaMechDefenseMatrixApplyNonHeroesDebuff" /> <EffectArray index="2" value="DVaMechDefenseMatrixFusionGeneratorApplyDebuff" /> <EffectArray index="3" value="DVaMechDefenseMatrixDazerZoneApplySlow" /> <EffectArray index="4" value="DVaMechDefenseMatrixImpactRevealer" /> <EffectArray value="AbilityImpactRevealDummyDamage" /> </CEffectSet> <CEffectApplyBehavior id="DVaMechDefenseMatrixApplyNonHeroesDebuff"> <Behavior value="DVaMechDefenseMatrixDebuffNonHeroes" /> </CEffectApplyBehavior> <CBehaviorBuff id="DVaMechDefenseMatrixDebuff"> <DamageResponse> <ModifyScoreArray Value="Healing" /> <ModifyScoreArray Value="GenericHeroRealScoreValue1" /> <TargetFilters value="Heroic;-"/> </DamageResponse> </CBehaviorBuff> <CBehaviorBuff id="DVaMechDefenseMatrixDebuffNonHeroes" parent="StormDamageReduction"> <BuffFlags index="RefreshStack" value="1" /> <Duration value="0.3125" /> <DamageResponse> <Chance value="1" /> <Handled value="DVaMechDefenseMatrixDamageReducedNotification" /> <ValidateEffectAliasesOp value="ExcludeHasAny" /> <Location value="Attacker" /> <ModifyFraction value="0.25" /> <ValidateEffectAliases value="PercentDamage" /> <ModifyScoreArray Value="GenericHeroRealScoreValue1" /> <TargetFilters value="-;Heroic"/> </DamageResponse> <BehaviorCategories index="DebuffAbilityPower" value="1" /> <BehaviorCategories index="DebuffAutoattackDPS" value="1" /> </CBehaviorBuff> 

That's the data change, but because this splits the behavior in two, we need to update the tracker, and since we're here, let's make use of the score tracker here to improve it's accuracy.

For the trigger changes, I won't be so direct – the libHDVA_gt_DVaDefenseMatrixTracker trigger gets either removed or disabled, doesn't matter, and update the libHDVA_gt_DVaDefenseMatrixTrackerReportandReset to reset the GenericHeroRealScoreValue1 score value, which is what we used in data to track the damage mitigated.

 <Frame type="Label" name="DefenseMatrixAbsorbedValueLabel"> <Frame type="DataRefFrame" name="ScoreValueDataReference"> <Anchor relative="$parent"/> <Argument name="score" val="GenericHeroRealScoreValue1"/> </Frame> <Text val="{ScoreValueDataReference/@StringValue}" /> <StateGroup name="AnimationStyleController"> <DefaultState val="LE500"/> <State name="LE500"> <When type="Property" frame="ScoreValueDataReference" Operator="LessThanOrEqual" RealValue="500" /> <Action type="SendEvent" frame="$this" event="StyleDefualtAnim" /> </State> <State name="GE501LE1000"> <When type="Property" frame="ScoreValueDataReference" Operator="GreaterThan" RealValue="500" /> <When type="Property" frame="ScoreValueDataReference" Operator="LessThanOrEqual" RealValue="1000" /> <Action type="SendEvent" frame="$this" event="StyleIncreaseAnim" /> </State> <State name="GE1001"> <When type="Property" frame="ScoreValueDataReference" Operator="GreaterThan" RealValue="1000" /> <Action type="SendEvent" frame="$this" event="StyleGiantIncreaseAnim" /> </State> </StateGroup> </Frame> 

This reads directly from the player's score, rather than relying on triggers to update, but that doesn't super matter. I also noticed a typo in the style, and Blizzard didn't seem to, as the trigger that updates this doesn't have that same typo, so there are situations where this won't reset properly on live, but only for the font. Not a big deal, but I'll mention it anyway.

Change 4: Diverting Power no longer reduces movespeed

Another simple change, some people might disagree with it, but people don't agree with all changes Blizzard makes, so it's okay if people disagree with what I propose here.

 <CBehaviorBuff id="DVaMechDefenseMatrixDivertingPowerPeriodicSearch"> <Modification> <UnifiedMoveSpeedFactor value="0.0" /> </Modification> </CBehaviorBuff> 

As with above, this needs some new localisation, as it changes functionality.

Button/Tooltip/DVaDefenseMatrixDivertingPower=The area of Defense Matrix is <c val="#TooltipNumbers">100%</c> wider and <c val="#TooltipNumbers">25%</c> longer. 

Change 5: Reduce Bunny Hop Cooldown from 100 to 75 seconds

 <CAbilBehavior id="DVaMechBunnyHopHeroic"> <OffCost index="0"> <Cooldown Location="Player" TimeUse="75" /> </OffCost> <ExpireCost index="0"> <Cooldown Location="Player" TimeUse="75" /> </ExpireCost> </CAbilBehavior> 

Change 6: When the Mech is killed, fill out the death recap just as it does for when the Pilot gets killed

This requires a simple addition to the libHDVA_gt_HeroDVaMechDiesviaFatalDamage trigger.

libGame_gf_DeathRecapPopulateDeathRecapDataForPlayer(lv_unit, lv_targetPlayer); 

Change 7: New 20 talent to cause Defense Matrix to no longer be interrupted by Stuns or Silences

 <CHero id="DVa"> <TalentTreeArray index="23" Talent="DVaDefenseMatrixDNied" Tier="7" Column="3" /> <TalentTreeArray index="24" Talent="DVaPilotConcussivePulse" Tier="7" Column="4" /> <TalentTreeArray index="25" Talent="DVaPilotCallMechMEKAfall" Tier="7" Column="5" /> </CHero> <CBehaviorBuff id="DVaMechDefenseMatrixChannelling"> <RemoveValidatorArray index="0" value="CasterNotDeadOrStasisOrPolymorphedOrSilencedOrStunnedUnlessDVaDNied" /> </CBehaviorBuff> <CButton id="DVaDefenseMatrixDNied" parent="StormButtonParent"> <Icon value="AssetsTexturesstorm_ui_icon_dva_defensematrix.dds" /> </CButton> <CTalent id="DVaDefenseMatrixDNied"> <Face value="DVaDefenseMatrixDNied" /> <Trait value="1" /> </CTalent> <CValidatorPlayerTalent id="DVaHasDefenseMatrixDNied"> <WhichPlayer Value="Caster" /> <Find value="1" /> <Value value="DVaDefenseMatrixDNied" /> </CValidatorPlayerTalent> <CValidatorCombine id="CasterNotDeadOrStasisOrPolymorphedOrSilencedOrStunnedUnlessDVaDNied"> <Type value="And" /> <CombineArray value="CasterNotDead" /> <CombineArray value="CasterNotStasis" /> <CombineArray value="CasterNotPolymorphed" /> <CombineArray value="CasterNotSilencedUnlessDVaDNied" /> <CombineArray value="CasterNotStunnedUnlessDVaDNied" /> </CValidatorCombine> <CValidatorCombine id="CasterNotStunnedUnlessDVaDNied"> <CombineArray value="CasterNotStunned" /> <CombineArray value="DVaHasDefenseMatrixDNied" /> </CValidatorCombine> <CValidatorCombine id="CasterNotSilencedUnlessDVaDNied"> <CombineArray value="CasterNotSilenced" /> <CombineArray value="DVaHasDefenseMatrixDNied" /> </CValidatorCombine> 

Note that under this implementation, Polymorph would still interrupt it, as would stasis. If it granted Unstoppable, this would not be the case, and it'd actually be a simpler implementation. This also needs new localisation, cause it's a new talent.

Button/Name/DVaDefenseMatrixDNied=D.Nied Button/SimpleDisplayText/DVaDefenseMatrixDNied=Defense Matrix is no longer interruptible Button/Tooltip/DVaDefenseMatrixDNied=Stuns and Silences no longer interrrupt Defense Matrix 

Oh, and I named the new talent D.Nied, cause it sounds like a fun name for the talent.

I'll be posting another thing like this time next week, probably, as I assume we won't get a D.Va patch before then.


D.Va Mech Health Increased from 2000 to 2060
D.Va Mech Health Regeneration increased from 4.168 to 4.291
D.Va Mech Basic Attack Damage to Primary Target increased by 20%
Defense Matrix now tracks as Healing for damage prevented to D.Va and Allied Heroes
Defense Matrix UI Tracker Accuracy has been improved
Diverting Power no longer reduces D.Va's Mech Movespeed
Bunny Hop Cooldown reduced from 100 seconds to 75 seconds
New Level 20 Talent: D.Nied: Defense Matrix is no longer interrupted by Stuns or Silence effects
When D.Va's Mech is killed, the Death Recap now becomes available if it wasn't, and displays the damage dealt to the Mech prior to its death.

You'll notice that aside from one bug with the UI tracker, I didn't touch her bugs. Maybe that'll be next week. If it is, I won't include them in the 7 changes, cause that's cheating.

Source: Original link

© Post "For every week that D.Va doesn’t get a balance or rework, I’m going to post 7 QoL or Balance adjustments. Week 0" for game Heroes of the Storm.

Top 10 Most Anticipated Video Games of 2020

2020 will have something to satisfy classic and modern gamers alike. To be eligible for the list, the game must be confirmed for 2020, or there should be good reason to expect its release in that year. Therefore, upcoming games with a mere announcement and no discernible release date will not be included.

Top 15 NEW Games of 2020 [FIRST HALF]

2020 has a ton to look forward to...in the video gaming world. Here are fifteen games we're looking forward to in the first half of 2020.

You Might Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *