public void Fade(Missile self)
 {
     if (self.Skill.Data.IsAOE)
     {
         self.Blast(null);
     }
 }
 public void HitTerrain(Missile self)
 {
     if (self.Skill.Data.IsAOE)
     {
         self.Blast(null);
     }
     self.TakeDamage(1e7f);
 }
 public void HitMissile(Missile self, Missile other)
 {
     self.TakeDamage(other.Damage);
     if (!self.IsAlive)
     {
         if (self.Skill.Data.IsAOE)
         {
             self.Blast(other);
         }
     }
 }
 public void HitUnit(Missile self, Unit unit)
 {
     if (self.Skill.Data.IsAOE)
     {
         self.Blast(null);
     }
     else
     {
         Gamef.Damage(self.Damage, DamageType.unset, self.Caster, unit);
     }
     self.TakeDamage(1e7f);
 }
 public static void MissileCollisionHandler(Missile m1, Missile m2)
 {
     m1.TakeDamage(m2.Damage);
     m2.TakeDamage(m1.Damage);
     if (!m1.IsAlive && m1.Skill.Data.IsAOE)
     {
         m1.Blast(m2);
     }
     if (!m2.IsAlive && m2.Skill.Data.IsAOE)
     {
         m2.Blast(m1);
     }
 }