Results 1 to 3 of 3

Thread: [Confirmed] Primal Roar's push is making the units face towards wrong direction

  1. #1
    Basic Member ThoAppelsin's Avatar
    Join Date
    Jan 2012

    [Confirmed] Primal Roar's push is making the units face towards wrong direction

    It makes the pushed units face outwards...
    what kind of a dynamic is that?
    When I imagine a bomb creating a sonic wave and pushing people away, I always see people being pushed towards their back, their face facing towards the explosion. Else it would seem exceedingly weird to me, else it would seem unnatural to me...

    Anyway, the pushed units should be made to face inwards,
    not only because it looks unnatural and ugly and ridiculous, but it also changes the effectiveness of the skill, making it slightly more powerful

    Detailed explanation of the DotA behaviour can be found in post #2

  2. #2
    Basic Member ThoAppelsin's Avatar
    Join Date
    Jan 2012
    01  function Func1563 takes nothing returns nothing
    02    local real loc_real01=GetUnitX(GetEnumUnit())
    03    local real loc_real02=GetUnitY(GetEnumUnit())
    04    local real loc_real03=bj_RADTODEG*Atan2(loc_real02-real010,loc_real01-real009)
    05    local real loc_real04
    06    local real loc_real05
    07    if Sin((loc_real03-real011)*bj_DEGTORAD)<0 then
    08      set loc_real04=GetUnitX(GetEnumUnit())+15*Cos((real011-90)*bj_DEGTORAD)
    09      set loc_real05=GetUnitY(GetEnumUnit())+15*Sin((real011-90)*bj_DEGTORAD)
    10      call SetUnitPosition(GetEnumUnit(),loc_real04,loc_real05)
    11      call SetUnitFacingTimed(GetEnumUnit(),real011+90,0.3)
    12    else
    13      set loc_real04=GetUnitX(GetEnumUnit())+15*Cos((real011+90)*bj_DEGTORAD)
    14      set loc_real05=GetUnitY(GetEnumUnit())+15*Sin((real011+90)*bj_DEGTORAD)
    15      call SetUnitPosition(GetEnumUnit(),loc_real04,loc_real05)
    16      call SetUnitFacingTimed(GetEnumUnit(),real011-90,0.3)
    17    endif
    18    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\AncientProtectorMissile\\AncientProtectorMissile.mdl",GetEnumUnit(),"origin"))
    19  endfunction

    This is the function used for pushing the units. Simple, eh?
    Try to understand it yourself, take your time...

    Okay, now that if you have looked enough much:

    real011 is the angle between the Beastmaster and his targeted unit with the Primal Roar
    this function is called every 0.025 seconds and 16 times, not more

    15 * 16 = 240 units of push distance
    0.025 * 16 = 0.4 seconds of push duration
    >> it pushes the affected units 240 units in 0.4 seconds (correct in Dota 2)

    Now, without overcomplicating things, as you can see, it pushes some towards (real011-90) direction and some others towards (real011+90) direction; and...
    whichever direction it pushes them, the opposite direction it makes them face at, like at line 08 and 09 it pushes a unit towards (...-90) and makes that unit face (...+90)

    The guy who made this skill knows some physics

  3. #3
    Basic Member
    Join Date
    Dec 2011
    added to sticky.
    Make sure to read the Forum Rules as well as the stickied Threads of the Forum Section you are posting in.

    Contributions i'd like to highlight:
    My Suggestion: Coaching System
    My Sticky: Intended Changes List
    My Challenge: Completely Fixed Hero Challenge: Skywrath Mage

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts