示例#1
0
 public bool swing(List <CombatTarget> targets, CombatTarget WeaponUser)
 {
     if (currTimeSinceLastAttack > 0)
     {
         return(false);
     }
     currTimeSinceLastAttack = stats.timeBetweenAttacks;
     EquipCurrrentWeapon();
     currentlyEquippedWeapon.ApplyAttack(transform, targets, WeaponUser);
     return(true);
 }
示例#2
0
 public override void ApplyAttack(Transform transform, List <CombatTarget> targets, CombatTarget WeaponUser)
 {
     if (targets == null || targets.Count <= 0)
     {
         return;
     }
     pointsScore = 0;
     foreach (CombatTarget target in targets)
     {
         if (target == WeaponUser)
         {
             continue;
         }
         Statistics targetStats = target.GetComponent <Statistics>();
         pointsScore += targetStats.computePointsToAttack();
     }
     isAttack = slotMachinePointAggegator.total >= pointsScore;
     if (isAttack)
     {
         damage = (weaponDamage * WeaponUser.GetComponent <Statistics>().Strength + slotMachinePointAggegator.total) / 100f;
         float randomDam = Random.Range(0, 100 / (WeaponUser.GetComponent <Health>().currentHealth) * (100 / betSize) * 100) / 4;
         // Debug.Log("Attacked "+damage+" random"+randomDam+" all together"+(damage+randomDam)+" max "+(100/(WeaponUser.GetComponent<Health>().currentHealth)*(100/betSize)*100));
         damage += randomDam;
         foreach (CombatTarget target in targets)
         {
             if (target == WeaponUser)
             {
                 continue;
             }
             target.GetComponent <Health>().doDamage(damage);
             target.AfterAttackCallback();
         }
     }
     else
     {
         Debug.Log("Not Attacked");
         Health health = WeaponUser.GetComponent <Health>();
         damage = health.currentHealth * betSize / 100;
         health.doDamage(damage);
     }
 }
示例#3
0
        public override void ApplyAttack(Transform transform, List <CombatTarget> targets, CombatTarget WeaponUser)
        {
            // Debug.Log("Attacked");
            foreach (CombatTarget target in targets)
            {
                if (target == WeaponUser)
                {
                    continue;
                }


                Statistics statistics = WeaponUser.GetComponent <Statistics>();
                float      damage     = Mathf.Min((float)statistics.Strength * 2, (float)int.MaxValue - 1);


                target.GetComponent <Health>().doDamage(damage);
                target.AfterAttackCallback();
            }
        }
示例#4
0
 public override void ApplyAttack(Transform transform, List <CombatTarget> targets, CombatTarget WeaponUser)
 {
     foreach (CombatTarget target in targets)
     {
         if (target == WeaponUser)
         {
             continue;
         }
         float damage = 100;
         target.GetComponent <Health>().doDamage(damage);
         target.AfterAttackCallback();
     }
 }
示例#5
0
 public abstract void ApplyAttack(Transform transform, List <CombatTarget> targets, CombatTarget WeaponUser);