コード例 #1
0
        private bool refilledHealth = true;         // Only refill the player's health on the first pickup!

        public override void OnPickUp(LNBPlayerCharacter owner)
        {
            base.OnPickUp(owner);

            playerOwner.GetComponent <Health>().AddHealth(heartsToGive * 100, refilledHealth);
            refilledHealth = false;
        }
コード例 #2
0
 // Use this for initialization
 void Start()
 {
     playerCharacter = GetComponentInChildren <LNBPlayerCharacter>();
     if (!playerCharacter)
     {
         Debug.Log("No LNBPlayerCharacter found for this LNBPlayerController!");
     }
 }
コード例 #3
0
ファイル: RangedWeapon.cs プロジェクト: calebsmth54/Dun-Djinn
        protected override void OnFire(EWeaponState prevState)
        {
            base.OnFire(prevState);

            Transform shootTransform = MuzzleTransform;

            // Fire a ray cast from the player camera
            if (weaponOwner.CompareTag("Player"))
            {
                LNBPlayerCharacter playerOwner = weaponOwner.GetComponent <LNBPlayerCharacter>();
                Transform          eyeTran     = playerOwner.GetEyeTransform();

                // Fire ray
                int        layerMask = 1 << LayerMask.GetMask("AimRay");
                RaycastHit rayHit;
                Vector3    aimDir;
                Ray        aimRay = new Ray();
                aimRay.direction = eyeTran.forward;
                aimRay.origin    = eyeTran.position;

                // If hit something
                if (Physics.Raycast(aimRay, out rayHit, MaxDistance, layerMask))
                {
                    aimDir = rayHit.point - shootTransform.position;
                }
                else
                {
                    aimDir          = aimRay.direction * MaxDistance;
                    rayHit.distance = MaxDistance;
                }

                shootTransform.rotation = Quaternion.LookRotation(aimDir);

                                #if DD_DEBUG
                // Aim trace
                DebugExtension.DebugArrow(aimRay.origin, aimRay.direction * rayHit.distance, Color.red, 1.0f);
                //Aim Direction
                DebugExtension.DebugArrow(shootTransform.position, aimDir, Color.green, 1.0f);
                                #endif
            }

            // Spawn our projectile
            GameObject newProjObj = projectilePool.GetNextFree();
            if (newProjObj)
            {
                newProjObj.SetActive(true);
                Projectile newProjectile = newProjObj.GetComponent <Projectile>();

                if (!newProjectile)
                {
                    Debug.Log("Instantiated something that's not a projectile! Add it in your prefab!");
                    return;
                }

                newProjectile.Launch(this, weaponOwner, MuzzleTransform);
            }
        }
コード例 #4
0
        public void InteractWith(Interactor interactor)
        {
            LNBPlayerCharacter interactorOwner = interactor.GetComponentInParent <LNBPlayerCharacter>();
            GameObject         item            = GetGameObject();

            if (!interactorOwner)
            {
                return;
            }

            switch (ItemType)
            {
            case EItemType.Weapon:

                BaseWeapon weapon = item.GetComponent <BaseWeapon>();

                if (!weapon)
                {
                    Debug.LogWarning(gameObject.name + " has an invalid item type!");

                    return;
                }

                interactorOwner.PickupWeapon(weapon);

                break;

            case EItemType.Gear:
                BaseGear gear = item.GetComponent <BaseGear>();

                if (!gear)
                {
                    Debug.LogWarning(gameObject.name + " has an invalid item type!");

                    return;
                }

                interactorOwner.PickUpGear(gear);
                break;

            case EItemType.Key:
                interactorOwner.PickUpKey(item);
                break;

            default:
                Debug.LogWarning(gameObject.name + " has an invalid item type!");
                break;
            }

            interactor.PickedUpObject(gameObject);

            Destroy(gameObject);
        }
コード例 #5
0
ファイル: BossDoor.cs プロジェクト: calebsmth54/Dun-Djinn
        //void InitAsInteractable(); // Initialize ourself as an interactable. Great for items that need to turn off their own collision
        //void LeaveInteractable(); // Leave an interactable state. IE allow weapons to function again

        public void InteractWith(Interactor interactor)
        {
            LNBPlayerCharacter player = interactor.GetOwner().GetComponent <LNBPlayerCharacter>();

            if (!player)
            {
                return;
            }

            GameObject key = player.UseKey();

            if (!key)
            {
                return;
            }

            StartCoroutine(HandleDoorOpenSequence(key));
        }
コード例 #6
0
ファイル: BaseGear.cs プロジェクト: calebsmth54/Dun-Djinn
 public virtual void OnPickUp(LNBPlayerCharacter owner)
 {
     playerOwner = owner;
 }