示例#1
0
 //0 - Hide both hands, 1 - hide left hand, 2 - hide right hand, something else - hide none
 public void HideHands(HiddenHandValue Selection)
 {
     foreach (var doubleHand in DoubleHandControllers)
     {
         doubleHand.HideHands(Selection);
     }
 }
示例#2
0
    //0 - Hide both hands, 1 - hide left hand, 2 - hide right hand, something else - hide none
    public void HideHands(HiddenHandValue Selection)
    {
        switch (Selection)
        {
        case HiddenHandValue.bothHands:
            LeftHand.SetActive(false);
            RightHand.SetActive(false);
            break;

        case HiddenHandValue.leftHand:
            LeftHand.SetActive(false);
            break;

        case HiddenHandValue.rightHand:
            RightHand.SetActive(false);
            break;

        default:
            if (RightHandActive)
            {
                RightHand.SetActive(true);
            }
            if (LeftHandActive)
            {
                LeftHand.SetActive(true);
            }
            break;
        }
    }
示例#3
0
        public void ServerPerformInteraction(HandActivate interaction)
        {
            ItemSlot hiddenHand = DetermineHiddenHand(interaction);

            if (hiddenHand != null)
            {
                HiddenHandValue hiddenHandSelection = HiddenHandValue.bothHands;

                if (hiddenHand.NamedSlot.GetValueOrDefault(NamedSlot.none) == NamedSlot.leftHand)
                {
                    hiddenHandSelection = HiddenHandValue.leftHand;
                }
                else if (hiddenHand.NamedSlot.GetValueOrDefault(NamedSlot.none) == NamedSlot.rightHand)
                {
                    hiddenHandSelection = HiddenHandValue.rightHand;
                }

                Inventory.ServerDrop(hiddenHand);

                SyncState(isWielded, !isWielded);


                if (isWielded)
                {
                    itemAttributes.ServerHitDamage = damageWielded;
                    itemAttributes.SetSprites(Wielded);
                    Chat.AddExamineMsgFromServer(interaction.Performer, $"You wield {gameObject.ExpensiveName()} grabbing it with both of your hands.");
                    HideHand(hiddenHandSelection, interaction.PerformerPlayerScript);
                }
                else
                {
                    itemAttributes.ServerHitDamage = damageUnwielded;
                    itemAttributes.SetSprites(Unwielded);
                    Chat.AddExamineMsgFromServer(interaction.Performer, $"You unwield {gameObject.ExpensiveName()}.");
                    HideHand(HiddenHandValue.none, interaction.PerformerPlayerScript);
                }

                PlayerAppearanceMessage.SendToAll(interaction.Performer, (int)interaction.HandSlot.NamedSlot.GetValueOrDefault(NamedSlot.none), gameObject);
            }
        }
 private void SyncHiddenHands(HiddenHandValue oldState, HiddenHandValue newState)
 {
     hiddenHandSelection = newState;
     HandsController.Instance.HideHands(hiddenHandSelection);
 }
 public void ServerSetHiddenHands(HiddenHandValue newState)
 {
     hiddenHandSelection = newState;
 }
示例#6
0
 private void HideHand(HiddenHandValue hiddenHandSelection, PlayerScript playerScript)
 {
     playerScript.PlayerOnlySyncValues.ServerSetHiddenHands(hiddenHandSelection);
 }