Ptarth Ptarth

UberFix v1.02

UberFix v1.02

UberFix


The UberFix is a compilation of bugfixes for Demigods version 1.2. The patches incorporated into the mod
are listed below along with the creator of the patch.


Download:

v1.02

Installer format: www.box.net (Recommended Download)

filesize: 334,609 bytes

MD5 Checksum: 5322667e9be4dbd0fc9cb44823a6dc81

Source Code: www.box.net


Old Versions


 

v1.01

Installer format: www.box.net

filesize: 322,544 bytes (Downloaded 223 times)

Source Code: www.box.net

 

v1.00

Downloaded 178 times 

zip format:  16.5 KB  v1.00 Mediafire  v1.00 Box.net  

exe format: 301.2KB v1.00 Box.net  

 


Currently Included Patches

Uberfix 1.02 

  1. Lord Erebus Poisoned Blood Potion Fix by Ptarth
    • Poisoned Blood Potions can no longer be used by Lord Erebus to farm himself. He and his teammates treat his Poisoned Blood Potions as regular potions now.
  2. Oculus Electrocution Fix by Ptarth
    • Health and Mana regeneration are now correctly stopped.
  3. Torch Bearer Projectile slowdown Fix by Ptarth
    • Toch Bearer's fireballs and fireblasts now correctly accelerate to maximum speed when their target moves a great distance. This includes his Fireball Ability.
  4. Unclean Beast Ooze Suicide Fix by Ptarth
    • Ooze now correctly ends when the Unclean Beast is low on Health.
  5. Oculus Sacrifice Fix by Ptarth
    • Sacrifice now will heal allied units.
  6. Unclean Beast Post Mortem Plague Conflict Fix by Exxcentric
    • Plague I and II no longer remove the Post Mortem death effect.
  7. Rook Move Attack Fix by Ptarth
    • Rook now attacks while moving correctly.

UberFix 1.01

  1. Lord Erebus Mist Form Fix by Ptarth
    • updated to end when mana drops below 125.
  2. ZikFix (Zikurat Tower Fix) by mrappard
    • The Dark side towers on Zikurat while playing Conquest now spawn correctly, instead of at warscore 6.
  3. Orb of Veiled Storms Fix by Ptarth (bug reported by awuffleablehedgie)
    • The Orb of Veiled Storms now deals ArmorImmune damage like every other demigod ability and weapon ability (except for the Doomspite Grips and Girdle of Giants, which have a cleave attack).

UberFix 1.00

  1. Minion +hp Fix by Ptarth
    • Minions summoned by Demigods Generals [Sedna, Lord Erebus, Oak, Queen of Thorns, Oculus] with +minion hp items now have the correct health
  2. Oculus Brain Storm Fix by Ptarth
    • Brain Storm now has a visual effect at all levels, instead of only when Oculus has Mental Agility
    • Brain Storm now removes debuffs on targeted unit as specified by the rollover tooltip text
  3. Queen of Thorns Attack Animation Glitch Fix by Ptarth
    • Reduced the lifetime of the QoT's root attack animation to make the animation look better.
    • This is only a cosmetic change.
  4. Oculus Lightning Ball Summons Fix by Ptarth
    • Lightning Balls will no longer summon in map void space.
  5. Oculus Lightning Blast Fix by Ptarth
    • Lightning Blast now occurs at the origin of the target instead of the origin of the unit that procs the effect.
  6. Missing Oculus Shield Effect Fix by Ptarth
    • Oculus now has a visible Shield effect.
  7. Heart of Life and Wings of the Seraphim Healing ends effect Fix by Ptarth (awuffleablehedgie provided starter code)
    • The Heart of Life and Wings of Seraphim no longer stop their regeneration effects when the user is healed.
  8. Parasite Egg and Sludge Slinger Partial Fix by Ptarth
    • Changed the Parasite Egg and Sludge Slinger so they can be used, although it isn't perfect.

 

Current Buglist (Todo list: Verified and replicatable)

  1. Rook Shoulder weapons having target locking issues
    • I thought I had something to fix it. However, I'm having problems replicating the effect to test it.
  2. Fix the skill queue.
    •  Eg, if you tell a UB to grasp he tries to get into melee range and execute the grasp. If you tell him to spit, then it gets thrown to the back of the skill queue and he doesn't spit, he continues to follow like an r'tard. To fix it you have to issue a move command, then spit.
    • AbilityTask.lua has the functions related to this. There are many interesting things in it.
    • After finishing a command the demigod reverts to an attack/move order if previously moving towards a target
  3. AA targeting issues
    • Like how Oak frequently swings with his Axe and does no damage or how Sedna will stand by a target without attacking
    • This may be linked to the Rook Shoulder weapon problem or the command queue
    • (http://forums.demigodthegame.com/356419)
    • Demon Assassin stops auto-attack after warp strike. It should continue to attack the locked target... this would be natural.
  4. Rollover Data Error on flag tooltip while being captured behind fog of war.
  5. Demigods do not resume auto-attack immediately or change targets after using an ability.
  6. UB Post Mortem damage does not count as UB damage for the purpose of awarding gold.
  7. Move order is canceled when using effects (http://forums.demigodthegame.com/356694). The move order is turned into an auto-attack order.
  8. Inaccurate health bar on zoom in (http://forums.demigodthegame.com/356347)
  9. Language for engine messages (xxx has left, xxx has joined...) in game lobby uses the hosts language setting (this should be the users language setting): my russian is a bit rusty!
  10. Torchbearer respawns in Ice mode by default. This should be the last used mode (Fire/Ice)! Same for QoT.
  11. Queuing to grab a potion and then being Foul Grasped while picking up the potion and then UB getting Shadow Swaps allows you to pick up the potion instantly as long as you have contiguous line of sight. I've been able to do this roughly 25 in-game yards away.
  12. When a demigod switches primary weapon the window information doesn't update properly (mainly a QoT issue)
    1. This is a visual glitch, the weapon does change, but the window does not update correctly.
  13. Oculus cannot autoattack directly beneath him

Bugs Requiring Research List (requires verification and a reliable replication method)

  1. Light/Dark capping all flags creates "Invalid Game State" error (http://forums.demigodthegame.com/362132)
    1. This happens enough to know that there is an issue, but without a way to replicate it reliably it is beyond me to fix
  2. Torch Bearer's stat progression for PermaFrost Movement Debuff is 3%/10%/15%. It should probably be 5%/10%/15%
  3. "War Score" display at each teams' citadel is incorrect.
    • It shows the average of the two teams' warscore, it really should show just yours.
    • The citadels look to upgrade correctly.
  4. Minions still get stuck in citadels
    • Need a map person to look into hedgie's proposed fix idea
  5. Oculus's Ball Lightnings attack animation sometimes sticks with permanent bolt from minion to target.
  6. Oculus's Chain Lightning effect sticks until his or target's death if target teleports during cast.
  7. Oculus sometimes becomes unresponsive after using Blast Off.
  8. Sedna's Silence debuff never expires under certain circumstances.
  9. Oculus moves very slowly when selected with Ball Lightnings.
  10. Pathing issues on Prison
  11. Selling Monk idols sometimes destroy summoning button
    • To replicate: Summon Monks, Sell Monks (while idol is recharging), Buy a different type of idol (siege archer or warrior, possibly any other item too), Buy new Monk Idol. I can't replicate this any more for some reason.

Current Unfixable Errors (Can't do list)

  1. Sedna's low quality Silence effect causes speakers to silence
    1. Unfixable since we can't access and change the sound files
    2. Setting sound quality to medium fixes this for most people.
  2. Ping times periodically spike in-game (despite sufficient upload bandwidth).
    1. This is not handleable within lua
  3. Multi-game achievements fail to record progress properly.
    1. This is controlled by Impulse
  4. Overlay friend chat buttons constantly reappear.
    1. Controlled by Impulse
  5. Game result stats include players who joined and left lobby before match start.
    1. Controlled by Impulse?
  6. demigods.exe is looking for version 1.20.211 but is version 1.20.214 with the last patch
    1. GPG compiles the exe
  7. warning: 00:03:04: Granny: FileReading (c:\Work\forge\main\code\src\libs\granny\granny_file_info.cpp(152): File has run-time type tag of 0x8000002d, which doesn't match this version of Granny (0x80000026).  Automatic conversion will be attempted.)
    info: 00:03:04: Total Material Count: 24 Total Mesh Count: 24
    info: 00:03:05: Can't find texture "/env/common/layers/none_normal.dds" -- trying fallback.
    1. Internal and Granny related, all GPG accessible only
  8. Oculus Stun Animation does not loop fluidly
    1. The animations are scripted in Granny which we don't have access to.
  9. Demon Assassin's movie on the character select screen was filmed using the wrong skin.
    1. The movie was made using Granny and Bink, we don't have access to Granny
  10. Assorted replay playback issues
  11. Game result stats include players who joined and left lobby before match start.

Current Nonbugs (Feature List)

  1. Mana/Health loss on item drop (http://forums.demigodthegame.com/360939)
    • Working as intended I believe
  2. Oak's Shield can be interrupted
    • This is most likely a lag effect
  3. Scroll of Restoration doesn't cure stuns
    • The scroll only affects debuffs, not stuns

 Bugs Fixed by Previous Official Patches (SD & GPG fixed it list)(not complete, just ones that come up)

  1. Match ending while dead results in "wind" effect persisting until game is closed.
  2. Sound looping issue (http://forums.demigodthegame.com/356935).

Current Potential Additions to the BugFix (Addition list)
    1. SkillInfoMod
    2. AIMod by Peppe


Current Semi-Active Project Members

Ptarth - guy who does stuff

awuffleablehedgie - guy who finds bugs

UhelligGudn - new guy with lots of energy


Plea to Community

If we want Stardock and Gas Powered Games to increase their support of Demigods, we need to demonstrate our commitment and our willingness to support it. If we want to accomplish anything worthwhile to demonstrate our commitment, we need to work together. If you have time, please consider helping out. Every little bit helps.

1,096,257 views 519 replies +12 Loading…
Reply #301 Top

re: Demigods versus Demigod

Bad habit really. I can never remember which one it is. Plus the game is about a group of Demigods who are trying to become a new god. It's just like Occulus or Oculus, which is it? (For amusement value, GPG used both.)

 

 

Edit:

The correct answer is Oculus. Which means Morpheas is wrong.

Reply #302 Top

Quoting Ptarth, reply 301
re: Demigods versus Demigod

Bad habit really. I can never remember which one it is. Plus the game is about a group of Demigods who are trying to become a new god. It's just like Occulus or Oculus, which is it? (For amusement value, GPG used both.)
End of Ptarth's quote

He he ok.

TBH, Demigods sounds more "catchy", if you know what I mean. Maybe thats why you're confusing it ;)

p.s. Its Occulus :P

Reply #303 Top

Let's try to keep the thread fairly clean of random nonsense that isn't UberFix related.
End of quote

Thanks, morpheus.

Reply #304 Top

Quoting awuffleablehedgie, reply 303

Let's try to keep the thread fairly clean of random nonsense that isn't UberFix related.
Thanks, morpheus.
End of awuffleablehedgie's quote

Ha ha ha ha, no problem :grin:

:P

Reply #305 Top

Ha ha ha ha, no problem 
End of quote

You're still doing it. 

 

---

WARNING - Subjective bugfix follows

---

Armor and Damage types

ArmorTypes.lua

Code: c++
  1. Structure = {    
  2.    Normal = 1.0,        
  3.    Hero = 1.0,        
  4.    SpellFire = 1.0,        
  5.    Spell = 1.0,        
  6.    Light = 1.0,        
  7.    Arrow = 1.0,        
  8.    Artillery = 2.0,    
  9. },

Structure is the only ArmorType that takes non-standard damage from all weapon types, and the only one for that is for Artillery (which deal 2x damage).

Artillery weapons are as follows:

- Rook's Trebuchet (level 8 upgrade - does a whopping 500 damage per shot to towers!)

- Trebuchet's on Fortresses (with upgrade)

- Catapults

- Giants

This has the rather noticeable lack of the Siege Archer idols, and the surprising existence for Giants. 

SiegeArcher01:

            DamageType = 'Normal',

What I suggest is:

1) Giants lose their Artillery DamageType. They aren't really artillery units :-/

2) Siege Idols gain the Artillery DamageType. This borders on overpowered, however, so to balance it, halve their damage. Now they do less damage to demigods, normal (artillery) damage to structures. 

---

DA does not respond after using WarpStrike:

FollowThroughTime = 0.3,

All four levels of WarpStrike have a .3 FollowThroughTime.  

Follow Through for abilities below. Note that changing forms { UB: Ooze, Reg: Angelic Fury, Queen: Open/Close, TB: Fire/Ice } (with the exception of Reg's Angelic Fury) do not have Follow Through times and instead are defined manually with special logic. 

Ooze: No pause or followThrough penalty. Period. 

TB:

 - Frozen Heart: looks like .3 seconds for no abilities but you can move normally

 - Relive the Immolation: 1.8 seconds

Code: c++
  1.     FireState = State{        
  2.         Main = function(self)            
  3.         #LOG("*DEBUG: Fire State")            
  4.         # Setup delay time between ice and fire mode.            
  5.        if Buff.HasBuff(self, 'HEMA01IceWeaponEnable') then                
  6.           Buff.RemoveBuff(self, 'HEMA01IceWeaponEnable')            
  7. end
  8.             Buff.ApplyBuff(self, 'HEMA01IceWeaponDisable', self)          
  9.  self:SetAbilities(true, false)
  10.             self:DestroyAmbientEffects()
  11.             # stop this dude in his tracks            self:GetNavigator():AbortMove()
  12.             Buff.ApplyBuff(self, 'Immobile')
  13.             self.Sync.AvatarState = 2
  14.             # Create character based fire ambient effects            
  15.             self:ForkThread(self.PlayFxFireAmbients, 0.1)
  16.             self.Character:SetCharacter('MageFire', true)            
  17.             self.Character:PlayAction('CastEndFireMode')            
  18.             WaitSeconds(1.5)
  19.             #LOG("*DEBUG: Immobile: FALSE")            
  20.              if Buff.HasBuff(self, 'HEMA01FireWeaponDisable') then                
  21.                     Buff.RemoveBuff(self, 'HEMA01FireWeaponDisable')                
  22.                     Buff.ApplyBuff(self, 'HEMA01FireWeaponEnable', self)            
  23.             end            
  24.             self.Character:PlayIdle()            
  25.             WaitSeconds(0.2)
  26.                                     Buff.RemoveBuff(self, 'Immobile')            
  27. WaitSeconds(0.1)...
           


Queen:

- PackedState (Closing)


Code: c++
  1.  PackedState = State{
  2.         Main = function(self)            
  3.        #Buff.ApplyBuff(self, 'Immobile')                        
  4. if Buff.HasBuff( self, 'HQueenPrimaryWeaponEnable') then                
  5. Buff.RemoveBuff( self, 'HQueenPrimaryWeaponEnable' )            
  6. end                      
  7.  Buff.ApplyBuff(self, 'HQueenPrimaryWeaponDisable', self)                      
  8.  self.TransitionImmobilityActive = true          
  9.  self.Character:SetCharacter('Queen', true)        
  10.    AbilFile.ShowAbilities(self, 'HQUEENPACKED') AbilFile.HideAbilities(self, 'HQUEENUNPACKED')          
  11.  self.Character:PlayAction('Close')          
  12.  self.AbilityData.Queen.IsPacked = true          
  13.  #self:GetNavigator():AbortMove()          
  14.  #self.Character.IsMoving = false          
  15.  self.Sync.AvatarState = 1          
  16.  WaitSeconds(1.5)
  17.  self.Character:PlayIdle()          
  18.              if Buff.HasBuff( self, 'HQueenPackedWeaponDisable' ) then    
  19.            Buff.RemoveBuff( self, 'HQueenPackedWeaponDisable' )      
  20.          Buff.ApplyBuff( self, 'HQueenPackedWeaponEnable' )      
  21.      end                    
  22.    #Buff.RemoveBuff(self, 'Immobile')          
  23.  self.TransitionImmobilityActive = false            
  24. Buff.ApplyBuff(self, 'HQueenPackedBuffs', self)
  25. if Buff.HasBuff(self, 'HQueenAbilityDisable') then                
  26. Buff.RemoveBuff(self, 'HQueenAbilityDisable')            
  27. end            
  28. self:DestroyAmbientEffects()        
  29. end,


- UnpackedState (Opening)


Code: c++
  1.     UnpackedState = State{
  2.         Main = function(self)            
  3. #Buff.ApplyBuff(self, 'Immobile')                      
  4.  if Buff.HasBuff( self, 'HQueenPackedWeaponEnable') then                
  5. Buff.RemoveBuff( self, 'HQueenPackedWeaponEnable' )          
  6.  end            
  7. Buff.ApplyBuff( self, 'HQueenPackedWeaponDisable', self )                      
  8.  self.TransitionImmobilityActive = true            
  9. self.AbilityData.Queen.IsPacked = true          
  10.  self.Character:SetCharacter('Queen_Unpacked', true)          
  11.  AbilFile.ShowAbilities(self, 'HQUEENUNPACKED') AbilFile.HideAbilities(self, 'HQUEENPACKED')            
  12. self.Character:PlayMove()            
  13. self.Character:PlayAction('Open')            
  14. self.Sync.AvatarState = 2            
  15. WaitSeconds(1.5)            
  16. #self.Character:PlayIdle()            
  17. if Buff.HasBuff(self, 'HQueenPackedBuffs') then              
  18.  Buff.RemoveBuff(self, 'HQueenPackedBuffs')            
  19. end
  20.  self.AbilityData.Queen.IsPacked = false          
  21.  self:CreateAmbientEffects()                      
  22.  if Buff.HasBuff( self, 'HQueenPrimaryWeaponDisable' ) then                
  23. Buff.RemoveBuff( self, 'HQueenPrimaryWeaponDisable' )                
  24. Buff.ApplyBuff( self, 'HQueenPrimaryWeaponEnable' )          
  25.  end                        
  26. #Buff.RemoveBuff(self, 'Immobile')          
  27.  self.TransitionImmobilityActive = false          
  28.  if Buff.HasBuff(self, 'HQueenAbilityDisable') then                
  29. Buff.RemoveBuff(self, 'HQueenAbilityDisable')            
  30. end        
  31. end,


---------- DA ----------


WarpStrike - 0.3 <- should be .1

 Spine Attack - 0.1

Warp Area - 0.1

Shadow Swap - 0.1


---------- TB ----------
Fireball - 0.3            <- Probably for Animation? Followthru on STaff

Fire Nova - 0.5        <- Probably for Animation? Explosion radius or maybe flying back up to full height

Circle of Fire - 0.5      <- Probably for Animation? Putting staff back into normal position

Deep Freeze - 1.0    <- BIG DEAL! Why? Typo? They want it to be a 1 second "instant" cast? No animation for it!

Frost Nova - 0.6        <- Why you can't use Frost Nova I for escape. .8 second cast + .6 second follow > 1 second stun and 4 second 10% snare. Probably the time it takes for him to stand up again (animation).

Rain of Ice - 0.9         <- For Animation, put hand back down. Not a big deal since it is a .1 second cast and the rain takes .9 seconds to fall so that's probably why


--------- UB ---------
Venom Spit - 0.5

Bestial Wrath - 0.5     <- Why the ability is usless. It's only a .5 cast, but for 10% of the duration you stand there like an idiot

Foul Grasp - NONE!!!! This is probably why you can break Grasp (a feature I've never assumed was intentional because you can't issue movement commands since you have an Immobile buff). Should be 2.0 seconds or at least 0.1. I will also bitch and moan here that Foul Grasp should be channeled and if it gets interrupted or broken the stunned character should be able to move again. In fact, this is what it looks like should happen:


Code: c++
  1. function EndGraspCancel(def, unit)    
  2. #LOG("*DEBUG: Ending foul grasp")    
  3. unit.Callbacks.OnWeaponFire:Remove(EndGrasp)    
  4. unit.Callbacks.OnKilled:Remove(EndGrasp)    
  5. unit.Callbacks.OnStunned:Remove(EndGrasp)    
  6. unit.Callbacks.OnFrozen:Remove(EndGrasp)    
  7. unit.Callbacks.OnMotionHorzEventChange:Remove(Moved)  
  8. unit.Callbacks.OnAbilityBeginCast:Remove(EndGraspCancel)
  9.   local target = unit.AbilityData.FoulGraspTarget    
  10.   if target and not target:IsDead() then  # Why does this not occur!        
  11.   Buff.RemoveBuff(target, 'Immobile')      
  12.  Buff.RemoveBuff(target, 'HEPA01FoulGraspStun01')        
  13. if Buff.HasBuff(target, 'WeaponDisable') then            
  14. Buff.RemoveBuff(target, 'WeaponDisable')      
  15.  end      
  16.  target.Callbacks.OnKilled:Remove(EndGrasp)  
  17.  end

--------- Reg ---------

Snipe - .5  <- to stand back up

Mark of the Betrayer - .9 <- Possibly similar to Rain of Ice. It's a .1 second cast time but they want it to "act" like a 1 second ability cast

Angelic Fury - 1.5    <- Animation Enable

Angelic Fury Off - 1.0 <- Animation Disable

Explosive Mine - NONE <- probably should be .1


--------- Oak ---------

Shield - .7

Penitence - .7

Surge of Faith - .5

Raise Dead Ward - .5


--------- Occ ---------

ChainLighting - .2 <- Probably animation (putting hand back down)

Blast Off! - .25

Ball Lightning - .86 <- Maybe animation? But why should Occ care about Ball animation?

BrainStorm - .28  <- Probably animation (waving wand)


--------- QoT ---------

Summon Shamblers - .1

Mulch - .5     <- Probably animation (black curls)

Uproot - 1.0   <- no wonder this ability sucks

Ground Spikes - 1.5 <- Animation isn't that long

Spikes Wave - 1.0 <- Probalby animation

Bramble Shield - 1.5 <- Possibly "balance" since it is an instant-cast. But shouldn't be that long


-------- Rook --------

Hammer Slam - .5 <- Animation

Boulder Roll - .5 <- Animation

Struct Trans - NONE! - Which is good, we want to be able to cancel it with a movement command (unlike grasp... and note that when you cancel Struct you don't continue to deal damage)

Power of the Tower - NONE - could make .1 for consistency but the animation of the tower is seperate

--------- Sed ---------

Pounce - 1.2  <- why you stand there like an idiot after pouncing

Horn of the Yeti - .5

Heal - .5

Silence - .5


--------- Ereb ---------

Bite - 1.0

Mass Charm - 1.0

Mist - NONE <- Not an issue. Entering mist he is stuck anyway, exiting he should be free to move. Maybe make it .1 for consistency

Batswarm - NONE <- how much I would love to make this 4.0 seconds :P it should probably be left as-is or .1 for consistency

------------


Discuss. In general, I'm in favor of a wide-spread decrease in FollowThroughTime. It's extremely frustrating and I feel that it is quite stupid. It also is really quite asymetrical (UB has virtually no FollowThrough, DA can't use WarpStrike properly on a running target unless he is much faster, but Erebus suffers really bad FollowThrough on Bite and Charm).


For proper animation, I understand why there is slight follow-through on certain abilities, but I again, think that lowering follow-through for the majority of abilities would result in a much more fluid player experience. 

Reply #306 Top

OMFG. I HATE YOU STARDOCK WHY WOULD YOU REMOVE ALL MY NEWLINES!

:shakes fist:

Alright, I will be editing this to make it pretty now...

Reply #307 Top

I think these qualify as balance changes. I think someone should collect all the balance changes that have been brought up in this thread and combine them into a new thread about proposed balance. I know, I know, I'm a stick in the mud.

re: Artillery

So, it might make more sense to consider that Artillery refers to Siege damage. The Moho engine didn't include melee weapons, so when they converted it over some liberties about function names were made. Giants have artillery weapons because they are the equivalent of heavy siege bots. Your suggestion for siege archers suggests that you just want to halve their damage against everything but buildings. I'm not sure I like that balance idea.

re: FollowthroughTime

As I understand your thesis, you believe that followthroughtime should be reduced to increase fluidity game play. (I'd suggest putting a version of your final paragraph before you begin the listing of the abilities. It was really hard to understand what you were trying to say until I got to the end. Also as a stylistic guide for this forum, I've grown fond of vertical lines, indents, and bullets.). Again, this seems to be a game balance issue, and not a bugfix. Hence I cannot endorse it at this time.

 

Reply #308 Top

re: FollowthroughTime

As I understand your thesis, you believe that followthroughtime should be reduced to increase fluidity game play. (I'd suggest putting a version of your final paragraph before you begin the listing of the abilities. It was really hard to understand what you were trying to say until I got to the end. Also as a stylistic guide for this forum, I've grown fond of vertical lines, indents, and bullets.). Again, this seems to be a game balance issue, and not a bugfix. Hence I cannot endorse it at this time.

End of quote

see: 

 

Demigods do not resume auto-attack immediately or change targets after using an ability
End of quote

<- high follow-thrus are what causes this.

It's less of a balance issue because FollowThroughTime does not count "against" your cooldown (eg, reducing FollowThrough does not allow you to use your attacks more frequently, you just resume autoattacking or moving faster). The only few balances issues I see is when lowering the handful of insanely high FollowThrough: for example, Sedna's 1.2 seconds for Pounce. That's why if you pounce while chasing if you don't get the kill -> they will always escape. Same issues with Warp Strike, use that on a running away enemy and... he gets away. Less seen in Bite because of the snare and because Erebus is a fast son of a bitch anyway. 

Reply #309 Top

FUCK! This is why I hate writing long forum posts in these thingies. Ptarth harasses me about not having pretty posts so I write one and what do I get? I lose it all >:O

Grumble grumble.

---

Anyway, so I found a pretty big issue with the Tower Damage citadel upgrade. Should go in 1.03. This is the Weapon code for a normal ole' Tower of Light:

Code: c++
  1. Weapon = {
  2.         {
  3.             Audio = {
  4.                &lt;snip&gt;
  5.             },
  6.             CanDamageReturn = false,
  7.             CanOverKill = false,
  8.             CollideFriendly = false,
  9.             Damage = 300,
  10.             DamageFriendly = false,
  11.             DamageRadius = 2,
  12.             DamageType = 'Light',
  13.             DisplayName = 'Light Beam',
  14.             FireTargetLayerCapsTable = { q
  15.                 Land = 'Air|Land',
  16.             },
  17.             FiringTolerance = 360,
  18.             Label = 'LightBeam',
  19.             LeadTarget = false,
  20.             MaxRadius = 15,
  21.             RateOfFire = 0.5,
  22.             TargetCheckInterval = 0.7,
  23.             TargetPriorities = {
  24.                 'ALLUNITS',
  25.             },
  26.             TargetRestrictDisallow = 'UNTARGETABLE',
  27.             Turreted = false,
  28.         },

Nothing wrong there, right? All it well~

Now let's take a look at Regulus' Angelic Fury buff:

Code: c++
  1. #################################################################################################################
  2. # Buff: Angelic Fury I
  3. #################################################################################################################
  4. BuffBlueprint {
  5.     Name = 'HGSA01AngelicFuryBuff01',
  6.     DisplayName = '&lt;LOC ABILITY_HGSA01_0078&gt;Angelic Fury I',
  7.     Description = '&lt;LOC ABILITY_HGSA01_0042&gt;Damage increased. Each shot drains Mana.',
  8.     BuffType = 'HGSA01ANGELICFURYBUFF',
  9.     Debuff = false,
  10.     Stacks = 'REPLACE',
  11.     Duration = -1,
  12.     Affects = {
  13.         DamageRadius = {Add = 2},
  14.         DamageSplash = {Mult = -0.30},
  15.         DamageRating = {Add = 25},
  16.     },
  17.     Icon = '/DGRegulus/NewRegulusAngelicFury01',
  18. }

So it Adds a Damage Radius of 2 to all his normal attack, and it have a -.30 multiplier to his dealt damage that as given as splash. a -.30 modifier = 70% damage dealt. So if he had 100 Weapon Damage after the DamageRating modifier, he would deal 100 damage to his primary target and 70 to everything around it in a range of 2. Sounds good.

Well, what if you don't define DamageSplash? It defaults to 1. So you deal 100% of your WeaponDamage to everything in your DamageRadius. That sounds natural enough, and it's what we see in the game when your creeps are spiked by the tower and you take full damage.

Now, bring up CitadelUpgrades.lua

Code: c++
  1. #################################################################################################################
  2. # Building Strength
  3. #################################################################################################################
  4. ArmyBonusBlueprint {
  5.     Name = 'CBuildingStrength01',
  6.     DisplayName = '&lt;LOC CITADEL_0030&gt;Building Firepower I',
  7.     Description = '&lt;LOC CITADEL_0004&gt;Buildings gain +[GetDamageBonus]% damage and splash damage.',
  8.     GetDamageBonus = function(self) return math.floor( Buffs['CBuildingStrength01'].Affects.DamageBonus.Mult * 100 ) end,
  9.     Buffs = {
  10.         BuffBlueprint {
  11.             Name = 'CBuildingStrength01',
  12.             Debuff = false,
  13.             BuffType = 'BUILDINGSTRENGTH',
  14.             Duration = -1,
  15.             Stacks = 'ALWAYS',
  16.             Affects = {
  17.                 DamageBonus = { Mult = .1 },
  18.                 DamageRadius = { Add = 1 },
  19.                 DamageSplash = { Mult = -.9 },
  20.             },
  21.         },
  22.     },
  23.     ApplyArmies = 'Single',
  24.     UnitCategory = 'STRUCTURE * DEFENSE -NOBUFFS',
  25. }

So it multiplies Weapon Damage by 110% (300 -> 330). That's good. It Adds 1 to the DamageRadius (2->3). That's good. Means you can shoot those f'king Demolishers with splash as a creepwave walks by. Awesome.

It also multiplies the DamageSplash to be 10%... wait. That's 100% -> 10%. That's terrible!

I didn't want to spend 500 gold to reduce my splash from full damage to 10%! Why would I ever want to do that!

Proposed Fixes:

1) Remove natural splash damage from towers. Leave upgrade as it is.

  • Pros:
    • From the tooltips, that appears to be the most natural and straightforward solution
    • Makes the upgrade a little more attractive, since splash is somewhat important (though 10% is nothing)
  • Cons:
    • Towers get nerfed. That is far from necessary
    • Probably not used in a lot of high-level games anyway because it's not effective enough, even against the things it is supposed to counter.
  • Balance:
    • Towers "steal" less gold since it takes longer for them to kill a creepwave. Gold difference between someone hiding behind a tower and another farming all the creeps on the flag is less
    • Rushing in with a Creepwave becomes extremely strong. It takes 5 shots for a tower to kill 5 minotaurs which gives you a free 10 seconds of damage with no splash
    • Minions become extremely powerful early game (think about monks. It takes 5 shots for monks to die and no splash). Now throw 4 spirits or a bunch of Nightcrawlers at a tower. It takes forever for them to die

2) Instead of making it a -.9 Mult make it a .1 Mult (it goes from 100 -> 110% splash)

  • Pros:
    • Upgraded Towers scale a little better
    • Towers are stronger
  • Cons:
    • Doesn't make much sense. Why should splash deal more damage than the direct target?
  • Balance:
    • This upgrade becomes a wtfpwn to minions. More damage, huge splash. All for 500 gold. That's gonna hurt minion builds unless they put all their money into demolishers.
    • However, minions are no weaker or stronger without the upgrade

3) Combine 1 and 2. Halve normal splash damage, and make the upgrades Additive (50% -> 60%,75%,85%,100%)

  • Pros:
    • This is probably what the developer's actually intended in the final product. I bet originally, normal towers had no splash but there were balance issues, so they added it. But they forgot to update the upgrades. The Citadel upgrades seem to make the most sense that way as well (final damage upgrade is 50% -> 100%)
    • Upgrade has utility (increase anti-demigod damage by 10%, increase splash radius by 50% and improve splash damage by 20%) while not being super powerful against minions builds
  • Cons:
    • Towers are still nerfed
  • Balance:
    • Minions become more powerful Level 1 but their effectiveness slightly tapers off if you get the upgrade (as it should be)
    • Towers still steal gold, but if you auto-attack very carefully you can probably mark them all.
    • Towers are still nerfed

 

Reply #310 Top

re:Tower Upgrades

/activate stick in mud mode

Balance change

re: Tower Upgrade Analysis

It isn't quite as bad as it sounds. The base radius of 2 is pretty small. What would be nice is if someone would create a to scale range visual. That way we could have an idea of how large the various effected areas are.

First to provide a few more references to hedgie's explanation.

Target damage and Area Damage is calculated depending upon the type of weapon.

  • Melee Weapons effected areas are calculated in MeleeWeapon.lua.
  • Ranged Weapons effected areas are calculated in Projectile.lua.

The Target of the attack takes full damage (DealDamage from Globals.lua). If an attack is an area attack, all units within Radius are dealt damage except the target.  (DamageArea from Globals.lua). The damage dealt to all units in the area (except the target) is equal to the full damage multiplied by the SplashMult.

The tower buffs (CitadelUpgrades.lua) are not culmulative, they replace each other. The buffs are:

  1. Tower 0: 100% Damage, 2 Radius,100% Splash
  2. Tower 1: 110% Damage, 3 Radius, 10% Splash
  3. Tower 2: 115% Damage, 3.5 Radius, 30% Splash
  4. Tower 3: 120% Damage, 4 Radius, 40% Splash
  5. Tower 4: 125% Damage, 4.5 Radius, 50% Splash

Full damage is always done to the target of the AOE. Full damage without upgrades is done to all targets within the 2 radius. However, as hedgie says, as the upgrades are purchased, the effect is reduced. However, the question is: How many targets does it affect.

Edit: Fixed the table as hedgie pointed out.

 

Reply #311 Top

You're still doing it.
End of quote

I know thats the fun part :P

 

Reply #312 Top

I understand they are not comulative

but it works like this:

  1. Tower 0: 100% Damage, 2 Radius, 100% Splash
  2. Tower 1: 110% Damage, 3 Radius, 10% Splash
  3. Tower 2: 115% Damage, 3.5 Radius, 30% Splash
  4. Tower 3: 120% Damage, 4 Radius, 40% Splash
  5. Tower 4: 125% Damage, 4.5 Radius, 50% Splash

That's an issue.

 

Edit: Morpheus, I've reported you.

Reply #313 Top

As I recall, LE wasn't always paralyzed after the bite animation. This was something that was added because I specifically recall being miffed about the new pause after an update.

Also, I wonder how much of a good idea it is to have ANY pauses except for animation. Not from a balance perspective, but from an engine perspective. Putting things to sleep is always bad as it has the chance to create blocking events. (I notice that the ones with really high pauses outside of animation are also the ones that get you stuck the most or drop focus from your DG for no reason) 

How many times have you used 1 of the listed skills and then popped a sigil, only to die, but lose the sigil from inventory?

Reply #314 Top

I only have dgdata.zip for versions 1.19, 1.20, and 1.21. I cannot confirm or deny previous versions.

Given that FollowThroughTime was added (at some point) to abilities, and allegedly increased at some point, I'd want to know why it was added before I feel comfortable about changing it. To my knowledge the only purposes would be for balance and for animations to finish. I don't believe that it was really used for balance and I'm not sure that that is has anything to do with the animations (it looks like animations finish before FollowUpTime starts).

I corrected my table as hedgie indicated. It was an oversight (I added the without upgrade line last). It does not effect any of the arguments. Also, most of the time I list information that seems obvious, not because the current posters don't know, but because if someone uses this thread as a reference later on it will contain correct and more complete information. I really hate it when I reference old threads and I can't understand what they are talking about.

I created a radius comparison figure. The following shows the size of circles with radius 1,2,3,4,6. The circle selection for the TB (inner blue) is radius 1. The second rotating blue circle selection for TB is radius 2, and so fourth.

 

I translated Hedgie's proposal into a more straightforward table. His discourse in his previous post is still relevant, but not reproduced here.

Current State of Affairs
       1. Tower 0: 100% Damage, 2 Radius,  100% Splash,  100% base damage
       2. Tower 1: 110% Damage, 3 Radius,   10% Splash,   11% base damage
       3. Tower 2: 115% Damage, 3.5 Radius, 30% Splash, 34.5% base damage
       4. Tower 3: 120% Damage, 4 Radius,   40% Splash,   48% base damage
       5. Tower 4: 125% Damage, 4.5 Radius, 50% Splash, 62.5% base damage

1) Remove natural splash damage from towers. Leave upgrade as it is.
       1. Tower 0: 100% Damage, 2 Radius,    0% Splash,    0% base damage
       2. Tower 1: 110% Damage, 3 Radius,   10% Splash,   11% base damage
       3. Tower 2: 115% Damage, 3.5 Radius, 30% Splash, 34.5% base damage
       4. Tower 3: 120% Damage, 4 Radius,   40% Splash,   48% base damage
       5. Tower 4: 125% Damage, 4.5 Radius, 50% Splash, 62.5% base damage

2) Instead of making it a -.9 Mult make it a .1 Mult (it goes from 100 -> 110% splash)
       1. Tower 0: 100% Damage, 2 Radius,   100% Splash,  100% base damage
       2. Tower 1: 110% Damage, 3 Radius,   110% Splash,  121% base damage
       3. Tower 2: 115% Damage, 3.5 Radius, 120% Splash,  138% base damage
       4. Tower 3: 120% Damage, 4 Radius,   130% Splash,  156% base damage
       5. Tower 4: 125% Damage, 4.5 Radius, 140% Splash,  175% base damage

3) Combine 1 and 2. Halve normal splash damage, and make the upgrades Additive (50% -> 60%,75%,85%,100%)
       1. Tower 0: 100% Damage, 2 Radius,    50% Splash,    50% base damage
       2. Tower 1: 110% Damage, 3 Radius,    60% Splash,    66% base damage
       3. Tower 2: 115% Damage, 3.5 Radius,  75% Splash, 86.25% base damage
       4. Tower 3: 120% Damage, 4 Radius,    85% Splash,   102% base damage
       5. Tower 4: 125% Damage, 4.5 Radius, 100% Splash,   125% base damage

(I disagree with his use of additive here, I believe it is misleading. However, I believe the chart is consistent with his plan.)

Reply #315 Top

Quoting Exxcentric, reply 297
Ok i have done some more testing,

...
 

End of Exxcentric's quote

Given the information from Exxcentric's testing, I decided to try out something obvious. I increased the effective area and knock back abilities of the metadamage part of post mortem. In essence, whenever something died while post mortem'ed it would cause everything to fly into orbit. The end result of this, besides being hilarious, was that experience was only granted by the unit that died to trigger the post mortem. All other units that were launched into space did not have a normal death, no experience or gold was awarded. More importantly, they also did not run the ondeath functions, they just ceased to exist.

My next test was to drop the knockback to 0, and increase the damage to 10,000. This caused everything close to the post mortem unit to be knocked back, by a tiny amount, and take lethal damage. The end result was that I got full experience for all units being killed.

In conclusion, I'm pretty sure that this is a bug with all of the metadamage abilities. When units are destroyed, probably when they do not fall onto the map's surface, they don't die, they are just destroyed.

This first problem is fixed by changing MetaImpact in Conquest.lua from:

Code: c++
  1. function MetaImpact(data, metaEntities)
  2. ....
  3.          # Apply the impulse force
  4.         local result = entity:AddImpulseEx(impactVec,true)
  5.         if result and EntityCategoryContains(categories.ALLUNITS, entity) then
  6.             entity.KillData = {
  7.                 InstigatorArmy = instArmy,
  8.                 Instigator = data.Instigator,
  9.                 InstigatorBp = data.InstigatorBp,
  10.                 DamageAction = 'MetaImpact',
  11.                 KillLocation = table.copy(entity:GetPosition()),
  12.             }
  13.         end
  14.     end
  15. end

to:

Code: c++
  1. function MetaImpact(data, metaEntities)
  2. ...
  3.         # Apply the impulse force
  4.         local result = entity:AddImpulseEx(impactVec,true)
  5.         if result and EntityCategoryContains(categories.ALLUNITS, entity) then
  6.             entity.KillData = {
  7.                 InstigatorArmy = instArmy,
  8.                 Instigator = data.Instigator,
  9.                 InstigatorBp = data.InstigatorBp,
  10.                 DamageAction = 'MetaImpact',
  11.                 Amount = entity:GetMaxHealth(),
  12.                 KillLocation = table.copy(entity:GetPosition()),
  13.             }
  14.         entity:Kill() #############Changed Line
  15.         end
  16.     end
  17. end

This doesn't seem to change any of the visual effects and does properly award experience, regardless of how far they are thrown back. It does not however fix the gold award. I need to add damage to Unit.damagers. My syntax to do that wasn't quite right, so I'm still working on it.

Looking around I've noticed several other functions also use knockback (they use the function AddImpulseEx).These will also need to be fixed to correctly kill units.

Before I do this, I'd like to confirm with everyone that anytime a unit is knocked back it dies?

Reply #316 Top

Before I do this, I'd like to confirm with everyone that anytime a unit is knocked back it dies?

 

This is correct, i was testing all the functions for the different demigods the night of the post mortem testing, and any demigod which applies knockback immediately kills the metainfantry.

BTW good work on finding the metaimpact function!

 

Exx

Reply #317 Top

Quoting Exxcentric, reply 316

This is correct...
End of Exxcentric's quote

Sounds good. I'll go ahead with this then.

 

So, after looking at it, it is time to make some people mad.

Should Knockback (overkill) effects instakill? Currently it does, however I'm not sure it was intended.

Consider Heaven's Wrath.

AffectRadius = 7,
DamageAmount = 250,

MetaImpactRadius = 10,
MetaImpactAmount = 8,

It deals 250 damage to all units within 7 of its point of origin. Then it instakills all infantry units within 8 units. Does it make sense to deal minor damage to units close to origin, and then kill everything (that is infantry) within a larger radius? Additional evidence is that the death effect of the knockback is incorrectly code. It makes more sense that the knockback wasn't meant to kill everything, just to knock them back without damage. However, then something was added to kill everything that was moved.

Reply #318 Top

you have to remember that meta damage (knockback) only effects

1. Demigod minions

2. Minotaurs

3. Archers

4. Priests

Therefore, doing knockback to a larger radius would make plenty of sense for an item like heavens wrath, as it would be primarily used for farming these units and not actually doing damage to demigods/catipults/giants and structures (which is why the damage is done to a smaller radius).

Note that post mortem has the opposite, small kb radius and a large damage radius (3 for kb and 6 for damage) to allow for farming but prevent it being OP.

 

Reply #319 Top

re:METAINFANTRY

Looking at the lua, I only found the following units classified as METAINFANTRY (aka can be knocked back).

  • Reinforcements
    • Priests
    • Archers
    • Warriors

Which Demigod minions were you referring to?

 

re:Heaven's Wrath

I'm not sure that Heaven's Wrath was balanced for the purpose of farming. Like many things I think it evolved from a previous state without a lot of top-down direction. That isn't to say it isn't balanced or useful, but I don't think it was a directed effort.

re: Other MetaImpact Abilties

There are several that exist, Regulus Mines, Demon Assassin AOE, Rook Hammer Slam, Rook Boulder Throw, QoT regular attack, etc. If someone wants to look into them and make up a table with the metadamage effect, metadamage range, affectradius, damage, and if they reward gold and xp, that would be wonderful. I have a sneaking suspicion that some of these do not perform as intended, but haven't been discovered yet due to the difficulty in identifying correct experience and gold gains in heated battles.

Reply #320 Top

Idol Monks can be blown back by FireNova, I think... 

I do know that the Demon Assassin AoE level 15 ability doesn't work properly, as I noted earlier (it hits flying units twice since it doesn't register it as dead yet). 

Reply #321 Top

re:idol monks & metainfantry

I see nothing in the lua to support this. I didn't do an ingame test.

re:Warp Area

I spent about 10 minutes testing this, but was unable to replicate the behavior. I maxed Warp Area (Warp Area 2 + Furious Blows). I did notice that get units to "fly" well the DA has to be in the middle of a large group of units, typically fighting other things. If it is just him and the enemy, they typically dogpile in front and do not go flying. I also noticed a number of odd cases where the DA would have more than enough available warps, but would miss killing one of the targets. I can potentially see how the DA would produce the behavior described by hedgie, however I have not found a way to replicate it yet.

Reply #322 Top

By minions i meant - nitecrawlers and spirits. On more than one occassion these have been killed by a tb with fire nova or ub with post mortem.

Also i am pretty sure that tb fire nova will take out all idols as well (i am unsure of seige archers/gunners etc) but i think that i remember priests and minotaurs being knocked back.

re:Heaven's Wrath

I'm not sure that Heaven's Wrath was balanced for the purpose of farming. Like many things I think it evolved from a previous state without a lot of top-down direction. That isn't to say it isn't balanced or useful, but I don't think it was a directed effort.

I agree with you, but what i meant by this was it was balanced to prevent overfarming. While farming may not have been the original concept of the item, i am sure it was balanced to ensure that ppl were not able to outfarm others with this item.

Reply #323 Top

re:minions and MetaInfantry

In-game testing reveals that monks, night walkers (vampires), and siege gunners are not affected by knock back. I'm going to assume that means spirits, shamblers, and the other various levels of idols are also not affect by it, since that also concurs with the code.

Reply #324 Top

Quoting Exxcentric, reply 322
By minions i meant - nitecrawlers and spirits. On more than one occassion these have been killed by a tb with fire nova or ub with post mortem.

Also i am pretty sure that tb fire nova will take out all idols as well (i am unsure of seige archers/gunners etc) but i think that i remember priests and minotaurs being knocked back.

re:Heaven's Wrath

I'm not sure that Heaven's Wrath was balanced for the purpose of farming. Like many things I think it evolved from a previous state without a lot of top-down direction. That isn't to say it isn't balanced or useful, but I don't think it was a directed effort.

I agree with you, but what i meant by this was it was balanced to prevent overfarming. While farming may not have been the original concept of the item, i am sure it was balanced to ensure that ppl were not able to outfarm others with this item.
End of Exxcentric's quote
I can tell you, after a lot of Fire Novas on a lot of minions, it 100% for certain does not knock em back.

Reply #325 Top

I'd just like to mention that there used to be some serious issues with DG's becoming unresponsive after an attack (Lord Erebus' Bite, Sedna's Pounce) They may have added in the long FollowThrough times to combat this bug? If LORD-ORION is correct in that the delay was introduced in a patch, it may well be intentional to avoid a worse bug.