コード例 #1
0
    public void FireWeapon(Action _action)
    {
        new Effect(_muzzleFlash, GunTrans.position, GunTrans.rotation);
        CombatState _target = _action.Combat;

        if (_target != null)
        {
            float _coverAmount;
            if (_target.CoverAmount(GunTrans.position, out _coverAmount))
            {
                float _weaponAccuracy = _inventory.SelectedWeapon.Accuracy - _inventory.SelectedWeapon.AccuracyLoss(Vector3.Distance(transform.position, _target.transform.position));
                float _dc             = Math.Max(5f, _accuracy + _weaponAccuracy - _coverAmount - _target.Dodge);
                if (SRand.Roll(ref _rollI) <= _dc)
                {
                    _target.SetAction(new WeaponAction(ActionType.ShotBy, _inventory.SelectedWeapon, true), true);
                }
                else
                {
                }
            }
            else
            {
            }
        }
    }