예제 #1
0
 public void RemoveTargetInteraction(TargetTranslator.Translator target)
 {
     if (OtherInteraction.Contains(target))
     {
         OtherInteraction.Remove(target);
     }
 }
예제 #2
0
 public void RemoveTargetCooldown(TargetTranslator.Translator target)
 {
     if (ExtraTargetDamageCooldown.ContainsKey(target))
     {
         ExtraTargetDamageCooldown.Remove(target);
     }
 }
예제 #3
0
 public void ApplyTargetInteraction(TargetTranslator.Translator target)
 {
     if (!OtherInteraction.Contains(target))
     {
         OtherInteraction.Add(target);
     }
 }
예제 #4
0
 public bool ContainsTargetInteraction(TargetTranslator.Translator target)
 {
     foreach (TargetTranslator.Translator Targets in OtherInteraction)
     {
         if (Targets == target)
         {
             return(true);
         }
     }
     return(false);
 }
예제 #5
0
 public void ApplyCooldownToTarget(TargetTranslator.Translator target, int CooldownTime)
 {
     foreach (TargetTranslator.Translator key in ExtraTargetDamageCooldown.Keys)
     {
         if (key == target)
         {
             ExtraTargetDamageCooldown[key] = CooldownTime;
             return;
         }
     }
     ExtraTargetDamageCooldown.Add(target, CooldownTime);
 }
예제 #6
0
        public int HurtTarget(TargetTranslator.Translator target, int Damage, int DamageDirection, float Knockback, int Cooldown = 8, bool Critical = false)
        {
            foreach (TargetTranslator.Translator Keys in ExtraTargetDamageCooldown.Keys)
            {
                if (Keys == target)
                {
                    return(0);
                }
            }
            if (target.Immunity)
            {
                return(0);
            }
            int NewDamage = Damage - target.Defense / 2;

            if (NewDamage < 1)
            {
                NewDamage = 1;
            }
            if (Critical)
            {
                NewDamage *= 2;
            }
            target.Health -= NewDamage;
            if (target.Health <= 0)
            {
                target.Kill(NewDamage, DamageDirection, true, " was slain...");
            }
            else
            {
                target.PlayHurtSound();
                target.ApplyKnockback(Knockback, DamageDirection);
                target.HitEffect(NewDamage, DamageDirection);
            }
            CombatText.NewText(target.GetRectangle, Microsoft.Xna.Framework.Color.MediumPurple, NewDamage);
            ApplyCooldownToTarget(target, Cooldown);
            return(NewDamage);
        }
예제 #7
0
 public bool ContainsTargetCooldown(TargetTranslator.Translator target)
 {
     return(ExtraTargetDamageCooldown.ContainsKey(target));
 }