Adding Special Attributes to Characters (Knockback Resistance, Attack Speed etc)

Started by nickjustint, June 01, 2019, 04:03PM

Previous topic - Next topic
Have you ever felt that certain characters need a little something extra to make them feel right?

In this tutorial I will explain an easy way to add Passive Abilities to characters which you can customize with various attributes to improve and flesh out the character.

We will take Hulk as an example, Hulk in MUA can easily be knocked back by minor enemies, picked up and grabbed by them and popped up like he weighs nothing! But there is a simple way to change that and make him really Incredible:hulk_icon:

All you'll need is XMLBCUI and a Text Editing Program as usual.




Step 1
Decompile the talent file of the character you want to edit, in this case for Hulk we will go into data\talents and decompile hulk.engb

Open up the .xml file in a text editor and you'll want to create a new talent entry, you can put this right under 'XMLB talents {'


   talent {
   descname = The Incredible Hulk ;
   description = Immunity to Knockback, Grabs, Stuns and Finishers. ;
   name = hulkdef ;
   type = ability ;
      level {
      count = 1 ;
         powerup {
         life = -1 ;
            affecter {
            affect_type = scale ;
            attribute = def_stunfreeze ;
            level = 0 ;
            }
         
            affecter {
            affect_type = scale ;
            attribute = def_knockback ;
            level = 0 ;
            }
         
            affecter {
            attribute = def_grab ;
            }         

            affecter {
            affect_type = scale ;
            attribute = def_finisher ;
            level = 0 ;
            }

         }

      }

   }


With this ability, I've added complete knockback resistance, resistance to grabbing, resistance to Stuns, and Finishers which is resistance to Popup and Trips.

You can edit the 'descname', 'description' and 'name' to anything you like, but what you'll want to make a note of is what you put under 'name=', In this case I used 'hulkdef'

After you've edited this ability to your liking, you'll want to recompile it to the file.





Step 2

This step is pretty simple, open your game's herostat and you'll want to find the character you've edited.
We'll look for Hulk in this case.

PLEASE KEEP IN MIND THE GAME'S HEROSTAT FILE CAN ONLY HOLD 70 UNIQUE TALENTS TOTAL.

In their herostat you'll want to add

      talent {
      level = 1 ;
      name = hulkdef ;
      }


The name in this entry must match the name you used in the Talent file for the ability. You'll see in this case that I've made sure to use 'hulkdef'

After this compile your herostat!




Now you'll want to start a new game for this to work properly. You can check the 'Stats' page in game in Hero Management and scroll to the bottom to see your new Passive Ability listed. If you have followed the steps, it should function as intended in game.




List of Possible Attributes
You may want to be careful when adjusting some of the numbers if you want to keep your game balanced.


Resistance to Stuns (Customise the level to scale the duration of stuns you take. For Example 0 = you will be Stun Immune, 0.25 = You'll be stunned only for 25% of a Stuns Duration, 1 = You'll take normal Stun durations.

            affecter {
            affect_type = scale ;
            attribute = def_stunfreeze ;
            level = 0 ;
            }



Resistance to Knockback (Customise the level to scale the Knockback you take. For Example 0 = you will be Knockback Immune, 0.25 = You'll take only 25% amount, 1 = You'll take normal Stun durations.

            affecter {
            affect_type = scale ;
            attribute = def_knockback ;
            level = 0 ;
            }



Resistance to Grab

            affecter {
            attribute = def_grab ;
            }         



Resistance to Pop Up, Trips

            affecter {
            affect_type = scale ;
            attribute = def_finisher ;
            level = 0 ;
            }



Increases Movement Speed AND Attack Speed (Customise the level to scale. For Example 1.2 = you will have 20% more Speed, 2.0 = You will have 100% more Speed

            affecter {
            affect_type = scale ;
            attribute = move ;
            level = 1.20 ;
            }



Increases ONLY Attack Speed (Customise the level to scale. For Example 1.2 = you will have 20% more Attack Speed, 2.0 = You will have 100% more Attack Speed. (Note that this stacks with the 'move' attribute, so if you add both you will increase your Attack Speed twice, so adjust the amount accordingly.

            affecter {
            affect_type = scale ;
            attribute = move_attack ;
            level = 1.20 ;
            }



Increases Critical Chance (Customise the level to scale. For example, 0.05 = 5% Critical Chance, 0.20 = Being 20% Critical Chance, 1.00 = being 100% Critical Chance

            affecter {
            attribute = atk_critical ;
            level = 0.20 ;
            }


(increase Crit Chance only for Projectile Attacks)

            affecter {
            attribute = atk_critical ;
            level = 0.35 ;
            scope_attack = projectile ;
            }



Increases Critical Damage (Customise the level to scale. Critical attacks do 100% More Damage so this will add more for Criticals. For example: 1.5 = 50% More Critical Damage or 150% Critical Damage in total

            affecter {
            affect_type = scale ;
            attribute = damage ;
            level = 1.5 ;
            scope_criticals = true ;
            }




Increases All Damage (Customise the level to scale. For Example: 1.1 = 10% Overall Damage Increase, 1.5 = 50% Damage Increase

            affecter {
            affect_type = scale ;
            attribute = damage ;
            level = 1.5 ;
            }




Slow Immunity

            affecter {
            attribute = slow_immune ;
            level = 1 ;



Increase Stats by a Percentage This will increase a stat level of a percentage of your current stats, so as you gain more each level or with item pick ups, this will increase all of it by a percentage. Customise the level for the amount. Ex: 1.35 = 35% Increase to the stat.


Strike
            affecter {
            affect_type = scale ;
            attribute = strength ;
            level = 1.35 ;
            }


Focus
            affecter {
            affect_type = scale ;
            attribute = mind ;
            level = 1.35 ;
            }


Body
            affecter {
            affect_type = scale ;
            attribute = body ;
            level = 1.35 ;
            }


Strike, Focus AND Body
            affecter {
            affect_type = scale ;
            attribute = traits ;
            level = 1.35  ;
            }



Increase Dodge Chance Customise the level for the amount. Ex: 0.35 = 35% Chance to Dodge

            affecter {
            attribute = def_dodge ;
            level = 0.35 ;
            }



Increase Chance to Deflect Projectiles Customise the level for the amount. Ex: 0.35 = 35% Chance to Deflect all Projectiles

            affecter {
            attribute = deflect_projectiles ;
            level = 0.35 ;
            }



Damage Reduction Reduces all Damage Taken, Customise the Level for the amount. 0.8 = 20% Damage Reduction, 0 = Immunity to All Damage (lol)

            affecter {
            affect_type = scale ;
            attribute = def_damage ;
            level = 0.80 ;
            }



Damage Type Damage Reduction Reduces Damage Taken of a certain Damage type, Customize the Level for the amount. 0.8 = 20% Damage Reduction, 0 = Immunity to All Damage

Electricity Damage

            affecter {
            affect_type = scale ;
            attribute = def_damage_scope ;
            damagetype = dmg_electricity ;
            level = 0 ;
            }


Fire Damage
            affecter {
            affect_type = scale ;
            attribute = def_damage_scope ;
            damagetype = dmg_fire ;
            level = 0 ;
            }

Cold Damage
            affecter {
            affect_type = scale ;
            attribute = def_damage_scope ;
            damagetype = dmg_cold ;
            level = 0 ;
            }


Energy Damage
            affecter {
            affect_type = scale ;
            attribute = def_damage_scope ;
            damagetype = dmg_energy ;
            level = 0 ;
            }


Radiation Damage
            affecter {
            affect_type = scale ;
            attribute = def_damage_scope ;
            damagetype = dmg_radiation ;
            level = 0 ;
            }


Mental Damage
            affecter {
            affect_type = scale ;
            attribute = def_damage_scope ;
            damagetype = dmg_mental ;
            level = 0 ;
            }


Physical Damage
            affecter {
            affect_type = scale ;
            attribute = def_damage_scope ;
            damagetype = dmg_physical ;
            level = 0 ;
            }



Health Regen Whilst some characters have the built in Health Regen, you can use this to add a custom amount of Health Regen. Customize the level to increase the percentage. Example: 0.03 = 3% Max HP Regen per second, 0.10 = 10% Max HP per Second

            affecter {
            attribute = health_regen_pct ;
            level = 0.03 ;
            }



Percentage of Damage Dealt as Health = Customise level to increase the percentage of Damage you deal that you get back as healing. For example = 0.025 = 2.5% of Damage Dealt returns as Healing. 0.5 = 50% of Damage Dealt returns as Healing.

            affecter {
            affect_type = scale ;
            attribute = atk_vampire ;
            level = 0.025 ;
            }


Percentage of Damage Dealt as Energy = Customise level to increase the percentage of Damage you deal that you get back as energy For example = 0.01 = 1% of Damage Dealt returns as Energy. 0.5 = 50% of Damage Dealt returns as Energy

            affecter {
            affect_type = scale ;
            attribute = atk_vampire_energy ;
            level = 0.01 ;
            }



Increase XP Gain. Customize to increase the amount of XP received. For example 1.15 = 15% More XP Gain

            affecter {
            affect_type = scale ;
            attribute = xp ;
            level = 1.15 ;
            }



Reflect Melee Damage Customize the amount to increase the amount of damage reflected. For example 1.0= 100% of Melee damage reflected back to the attacker, 2.0 = 200% of Damage Reflected

            affecter {
            affect_type = scale ;
            attribute = reflect_damage ;
            level = 1.0 ;
            scope_non_powers = true ;
               scope {
               scope_attack = punch ;
               }

               scope {
               scope_attack = kick ;
               }

            }



Reflect All Damage Customize the amount to increase the amount of damage reflected. For example 1.0= 100% of damage reflected back to the attacker, 2.0 = 200% of Damage Reflected

            affecter {
            affect_type = scale ;
            attribute = reflect_damage ;
            level = 1.0 ;
            }



Reduce Power Energy Cost Customise the level to increase the amount of reduction. 0.9 = 10% Power Cost Reduction
            affecter {
            affect_type = scale ;
            attribute = power_cost ;
            level = 0.9 ;
            }