/// <summary> /// /// </summary> /// <param name="gch"></param> /// <param name="victim"></param> /// <returns></returns> public static int CalculateAlign(this CharacterInstance gch, CharacterInstance victim) { var align = gch.CurrentAlignment - victim.CurrentAlignment; var divalign = 20; if (gch.CurrentAlignment > -350 && gch.CurrentAlignment < 350) { divalign = 4; } int newAlign; if (align > 500) { newAlign = Macros.UMIN(gch.CurrentAlignment + (align - 500) / divalign, 1000); } else if (align < -500) { newAlign = Macros.UMAX(gch.CurrentAlignment + (align + 500) / divalign, -1000); } else { newAlign = gch.CurrentAlignment - (int)(gch.CurrentAlignment / divalign); } return(newAlign); }