Пример #1
0
 public void PerformScanHit()
 {
     if (UsedItem != null)
     {
         SceneWeapon sw = UsedItem.GetComponent <SceneWeapon>();
         if (sw != null && UsedItem.ItemData != null && sw.IsAttacking)
         {
             if (sw.WeaponData.IsMeleeWeapon && sw.WeaponData["scanHit"] != null && (bool)sw.WeaponData["scanHit"] == true)
             {
                 SceneWeaponHitter[] hitters = UsedItem.GetComponentsInChildren <SceneWeaponHitter>();
                 Vector3             hitPoint;
                 GameObject          hited = FPPUIManager.Instance.CameraLooksOnScanHit((float)sw.WeaponData["meleeRange"], GetFiringAccuracy(), out hitPoint);
                 if (hited != null && hited.GetComponent <SceneDestructible>() != null)
                 {
                     foreach (SceneWeaponHitter swh in hitters)
                     {
                         swh.GeneralHited(hited.GetComponent <SceneDestructible>(), hitPoint);
                     }
                 }
                 sw.IsAttacking = false;
             }
             else
             if (sw.WeaponData.IsShootingWeapon && sw.CurrentAttackMode == FightSystem.AttackMode.ShootScanAttack && sw.WeaponData["scanHit"] != null && (bool)sw.WeaponData["scanHit"] == true)
             {
                 SceneWeaponHitter[] hitters = UsedItem.GetComponentsInChildren <SceneWeaponHitter>();
                 Vector3             hitPoint;
                 GameObject          hited = FPPUIManager.Instance.CameraLooksOnScanHit((float)sw.WeaponData["shootRange"], GetFiringAccuracy(), out hitPoint);
                 if (hited != null)
                 {
                     SceneDestructible hitesDestr = FindDestructibleObject(hited);
                     if (hitesDestr != null)
                     {
                         foreach (SceneWeaponHitter swh in hitters)
                         {
                             swh.GeneralHited(hitesDestr, hitPoint);
                         }
                     }
                 }
                 sw.InvokeShootEffects();
             }
         }
     }
 }