Пример #1
0
        public override void Init(WeaponData weapon)
        {
            if (!(weapon as RangedWeaponData))
            {
                throw new TypeAccessException("Попытка присвоить к оружию дальнего боя данные оружия другого типа");
            }
            base.Init(weapon);
            var rangeWeapon = (RangedWeaponData)weapon;

            Range      = rangeWeapon.Range;
            AmmoMax    = rangeWeapon.AmmoMax;
            Accuracy   = rangeWeapon.Accuracy;
            BarrelType = (rangeWeapon.BarrelType == RangedWeaponData.RangeWeaponType.Long) ? RangeWeaponType.Long : RangeWeaponType.Short;
        }
Пример #2
0
        public void ChangeWeapon(RangeWeaponType rangeWeaponType, GameObject gameObject)
        {
            if (rangeWeaponType.Equals(currentWeapon))
            {
                return;
            }

            iRangeWeapon?.Destroy();

            switch (rangeWeaponType)
            {
            case RangeWeaponType.Pistol:
                iRangeWeapon = gameObject.AddComponent <PistolBullet>();
                aimManager.ChangeRange(1.8f);
                aimManager.ChangeAim(AimType.Line);
                break;

            case RangeWeaponType.Rifle:
                iRangeWeapon = gameObject.AddComponent <RifleBullet>();
                aimManager.ChangeRange(1.8f);
                aimManager.ChangeAim(AimType.Line);
                break;

            case RangeWeaponType.Shotgun:
                iRangeWeapon = gameObject.AddComponent <ShotgunBullet>();
                aimManager.ChangeRange(1f);
                aimManager.ChangeAim(AimType.Cone);
                break;

            case RangeWeaponType.Granade:
                aimManager.ChangeAim(AimType.CircleRange);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            currentWeapon = rangeWeaponType;
            iRangeWeapon?.Initialize(aimManager);
        }
Пример #3
0
 public BaseWeaponsController(MeleeWeapons melee, RangeWeaponType range, GameObject gameObject, AimManager playerAim)
 {
     aimManager = playerAim;
     ChangeWeapon(range, gameObject);
     ChangeMeleeWeapon(melee, gameObject);
 }