コード例 #1
0
    public override void Fire4(bool value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP)
        {
            FPP.Fire4(value);
        }
    }
コード例 #2
0
    public override void Horizontal(float value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP)
        {
            FPP.MoveHorizontal(value);
        }
    }
コード例 #3
0
    public override void Vertical(float value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP)
        {
            FPP.MoveVertical(value);
        }
    }
コード例 #4
0
    public virtual void Cancel(bool value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP && value)
        {
            FPP.SetCursorLock(false);
        }
    }
コード例 #5
0
    public virtual void LookVertical(float value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP)
        {
            FPP.LookVertical(value);
        }
    }
コード例 #6
0
    public virtual void LookHorizontal(float value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP && allowControl)
        {
            FPP.LookHorizontal(value);
        }
    }
コード例 #7
0
    public virtual void Fire5(bool value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP && allowControl)
        {
            FPP.Fire5(value);
        }
    }
コード例 #8
0
    public override void Fire3(bool value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP && allowControl)
        {
            FPP.Fire3(value);
        }
    }
コード例 #9
0
    /// <summary>
    /// The basic interaction of an item while it's in the world is to have the FPS_Pawn equip it.
    /// </summary>
    /// <param name="source"></param>
    /// <param name="instigator"></param>
    /// <returns>Return true if the item is equipped</returns>
    protected override bool ProcessInteraction(Actor source, Controller instigator)
    {
        FPS_Pawn fpp = source.GetComponent <FPS_Pawn>();

        if (fpp)
        {
            return(fpp.Equip(this));
        }
        return(false);
    }
コード例 #10
0
    public virtual bool Ignite(Actor user)
    {
        if (!isOpen)
        {
            return(false);
        }

        //Light torch animation

        FPS_Pawn FPP = (FPS_Pawn)user;

        if (!FPP)
        {
            return(false);
        }

        bool  lookForTorch = true;
        Torch t            = null;

        if (FPP.handDominant.EquippedItem)
        {
            t = FPP.handDominant.EquippedItem.GetComponent <Torch>();
            if (t)
            {
                if (!t.LightActive)
                {
                    lookForTorch = false;
                }
            }
        }

        if (lookForTorch)
        {
            GameObject target = FPP.GetInteractableObject();
            if (!target)
            {
                return(false);
            }
            t = target.GetComponent <Torch>();

            if (!t)
            {
                return(false);
            }
            if (t.LightActive)
            {
                return(false);
            }
        }

        t.LightOn();
        t.getLit = true;
        return(true);
    }
コード例 #11
0
 public virtual void Cancel(bool value)
 {
     if (value)
     {
         FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;
         if (FPP && ms && allowPausing)
         {
             ms.TogglePause();
             FPP.SetCursorLock(!ms.IsPaused);
             //LOG("Escape");
         }
     }
 }
コード例 #12
0
    public void checkDamageDistance()
    {
        FPS_Pawn pp = playerPawn.GetComponent <FPS_Pawn>();
        float    distanceToPlayer = Vector3.Distance(playerPawn.transform.position, gameObject.transform.position);

        if (pp)
        {
            if (distanceToPlayer < armsReach)
            {
                print("Distance to player: " + distanceToPlayer);
                pp.TakeDamage(gameObject.GetComponent <Actor>(), damageFactor);
            }
        }
    }
コード例 #13
0
    protected override bool ProcessInteraction(Actor source, Controller instigator)
    {
        FPS_Pawn FPP = (FPS_Pawn)source;

        if (!FPP)
        {
            return(false);
        }

        FindObjectOfType <MenuScript>().SetGameSmallText(true, popupHint, hintPopupTime);

        FPP.hasKey = true;
        Destroy(gameObject);
        return(true);
    }
コード例 #14
0
    public override void Fire1(bool value)
    {
        FPS_Pawn FPP = (FPS_Pawn)PossesedPawn;

        if (FPP && allowControl)
        {
            FPP.Fire1(value);
            if (!ms)
            {
                FPP.SetCursorLock(true);
            }
            else
            {
                if (!ms.IsPaused)
                {
                    FPP.SetCursorLock(true);
                }
            }
        }
    }
コード例 #15
0
    protected override bool ProcessInteraction(Actor source, Controller instigator)
    {
        if (isLocked)
        {
            FPS_Pawn FPP = (FPS_Pawn)source;
            if (FPP)
            {
                if (FPP.hasKey)
                {
                    isLocked = false;
                    DoorOpen.Play();
                    return(false);
                }
            }

            if (_ms)
            {
                _ms.SetGameSmallText(true, popupHint, hintPopupTime);
            }
            return(false);
        }

        HorrorGame hg = FindObjectOfType <HorrorGame>();

        if (!hg)
        {
            LOG_ERROR("No object in scene with HorrorGame attached. Can not ask to end game.");
            return(true);
        }
        hg.EndGame(true);

        FPS_Controller FPC = (FPS_Controller)instigator;

        if (FPC)
        {
            FPC.UnPossesPawn(FPC.GetPossesedPawn());
            FPC.allowPausing = false;
        }

        return(true);
    }