コード例 #1
0
        static bool Prefix(out Vector3 spawnPoint, out Vector3 aimDir, Humanoid ___m_character)
        {
            spawnPoint = Vector3.zero;
            aimDir     = Vector3.zero;

            if (___m_character != Player.m_localPlayer || !VHVRConfig.UseVrControls())
            {
                return(true);
            }

            if (EquipScript.getLeft() == EquipType.Bow)
            {
                spawnPoint = BowLocalManager.spawnPoint;
                aimDir     = BowLocalManager.aimDir;
                return(false);
            }

            switch (EquipScript.getRight())
            {
            case EquipType.Fishing:
                spawnPoint = FishingManager.spawnPoint;
                aimDir     = FishingManager.aimDir;
                return(false);

            case EquipType.Spear:
            case EquipType.SpearChitin:
                spawnPoint = SpearManager.spawnPoint;
                aimDir     = SpearManager.aimDir;
                return(false);
            }

            return(true);
        }
コード例 #2
0
        static void Postfix(bool __result, string ___m_rightItem, ref GameObject ___m_rightItemInstance)
        {
            if (!__result || ___m_rightItemInstance == null)
            {
                return;
            }

            MeshFilter meshFilter = ___m_rightItemInstance.GetComponentInChildren <MeshFilter>();

            if (meshFilter == null)
            {
                return;
            }

            Player player = ___m_rightItemInstance.GetComponentInParent <Player>();

            if (player == null)
            {
                return;
            }

            var vrPlayerSync = player.GetComponent <VRPlayerSync>();

            if (vrPlayerSync != null)
            {
                player.GetComponent <VRPlayerSync>().currentRightWeapon      = meshFilter.gameObject;
                player.GetComponent <VRPlayerSync>().currentRightWeapon.name = ___m_rightItem;
                VrikCreator.resetVrikHandTransform(player);
            }

            if (Player.m_localPlayer != player || !VHVRConfig.UseVrControls())
            {
                return;
            }

            if (StaticObjects.quickSwitch != null)
            {
                StaticObjects.quickSwitch.GetComponent <QuickSwitch>().refreshItems();
                StaticObjects.quickActions.GetComponent <QuickActions>().refreshItems();
            }

            switch (EquipScript.getRight())
            {
            case EquipType.Fishing:
                meshFilter.gameObject.AddComponent <FishingManager>();
                return;

            case EquipType.Spear:
            case EquipType.SpearChitin:
                meshFilter.gameObject.AddComponent <SpearManager>();
                // (no return, we want collider for spear also)
                break;
            }

            StaticObjects.rightWeaponCollider().GetComponent <WeaponCollision>().setColliderParent(meshFilter.transform, ___m_rightItem, true);
            ParticleFix.maybeFix(___m_rightItemInstance);
        }
コード例 #3
0
        static bool Prefix(Humanoid __instance, ref float __result)
        {
            if (__instance != Player.m_localPlayer || !VHVRConfig.UseVrControls())
            {
                return(true);
            }

            if (EquipScript.getLeft() == EquipType.Bow)
            {
                __result = BowLocalManager.attackDrawPercentage;
                return(false);
            }

            if (EquipScript.getRight() == EquipType.Fishing)
            {
                __result = FishingManager.attackDrawPercentage;
                return(false);
            }

            return(true);
        }
コード例 #4
0
ファイル: VRPlayer.cs プロジェクト: brandonmousseau/vhvr-mod
 private bool isBuildingTool()
 {
     return(EquipScript.getRight() == EquipType.Hammer ||
            EquipScript.getRight() == EquipType.Hoe ||
            EquipScript.getRight() == EquipType.Cultivator);
 }
コード例 #5
0
ファイル: VRPlayer.cs プロジェクト: brandonmousseau/vhvr-mod
 private bool isHoldingThrowable()
 {
     return(EquipScript.getRight() == EquipType.Spear ||
            EquipScript.getRight() == EquipType.SpearChitin ||
            EquipScript.getRight() == EquipType.Fishing);
 }
コード例 #6
0
        static void Prefix(Player __instance, ref bool attack, ref bool attackHold, ref bool block, ref bool blockHold,
                           ref bool secondaryAttack)
        {
            if (!VHVRConfig.UseVrControls() || __instance != Player.m_localPlayer)
            {
                return;
            }

            if (EquipScript.getLeft() == EquipType.Bow)
            {
                if (BowLocalManager.aborting)
                {
                    block     = true;
                    blockHold = true;
                    BowLocalManager.aborting = false;
                }
                else if (BowLocalManager.startedPulling)
                {
                    attack = true;
                    BowLocalManager.startedPulling = false;
                }
                else
                {
                    attackHold = BowLocalManager.isPulling;
                }
                return;
            }

            if (EquipScript.getLeft() == EquipType.Shield)
            {
                blockHold = ShieldManager.isBlocking();
            }

            switch (EquipScript.getRight())
            {
            case EquipType.Fishing:
                if (FishingManager.isThrowing)
                {
                    attack     = true;
                    attackHold = true;
                    FishingManager.isThrowing = false;
                }

                blockHold = FishingManager.isPulling;
                break;

            case EquipType.Spear:
                if (SpearManager.isThrowing)
                {
                    secondaryAttack         = true;
                    SpearManager.isThrowing = false;
                }

                break;

            // no one knows why all spears throw with right click, only spear-chitin throws with left click:
            case EquipType.SpearChitin:
                if (SpearManager.isThrowing)
                {
                    attack = true;
                    SpearManager.isThrowing = false;
                }

                break;
            }
        }