示例#1
0
    public override EWeaponUseResult Use()
    {
        EWeaponUseResult useResult = base.Use();

        if (useResult != EWeaponUseResult.CantUse)
        {
            Owner.WeaponController.ShootProjectile(ProjectileInfo);
        }
        return(useResult);
    }
示例#2
0
    private void HandleUseResult(EWeaponUseResult pUseResult)
    {
        switch (pUseResult)
        {
        case EWeaponUseResult.Reload:
            StopUseWeapon();
            StartReloadWeapon(ActiveWeapon);
            break;

        case EWeaponUseResult.Remove:
            StopUseWeapon();
            RemoveWeapon(ActiveWeapon);
            break;
        }
    }
示例#3
0
    public override EWeaponUseResult Use()
    {
        EWeaponUseResult useResult = base.Use();

        if (useResult != EWeaponUseResult.CantUse)
        {
            if (prefab.InstanceOnEveryUse)
            {
                InstantiatePrefab();
            }

            prefabInstance.Use();
            //OnUse();
            //specialController.Use();
        }

        return(useResult);
    }
示例#4
0
    public void UseWeapon()
    {
        if (IsLogEnabled())
        {
            Debug.Log("UseWeapon");
        }

        EWeaponUseResult useResult = ActiveWeapon.Use();

        if (useResult == EWeaponUseResult.CantUse)
        {
            //Debug.Log($"{activeWeapon} cant be used");
            //TODO: play CANT_USE sound
            StopUseWeapon();
            return;
        }
        //Debug.Log($"{activeWeapon} USE");

        InvokeWeaponChange(ActiveWeapon);

        HandleUseResult(useResult);
    }