コード例 #1
0
 public void WeaponToBack(Weapon backItem)
 {
     if (this.backItem != null)
     {
         return;
     }
     for (int i = 0; i < 2; i++)
     {
         if (owner.grasps[i] != null && owner.grasps[i].grabbed == backItem)
         {
             owner.ReleaseGrasp(i);
             break;
         }
     }
     this.backItem = backItem;
     this.backItem.ChangeMode(Weapon.Mode.OnBack);
     interactionLocked       = true;
     owner.noPickUpOnRelease = 20;
     owner.room.PlaySound(SoundID.Slugcat_Stash_Spear_On_Back, owner.mainBodyChunk);
     if (abstractStick != null)
     {
         abstractStick.Deactivate();
     }
     abstractStick = new AbstractWeaponOnBackStick(owner.abstractPhysicalObject, this.backItem.abstractPhysicalObject);
 }
コード例 #2
0
 public void DropItem()
 {
     if (backItem != null)
     {
         backItem.firstChunk.vel = owner.mainBodyChunk.vel + Custom.RNV() * 3f * UnityEngine.Random.value;
         backItem.ChangeMode(Weapon.Mode.Free);
         backItem = null;
         if (abstractStick != null)
         {
             abstractStick.Deactivate();
             abstractStick = null;
         }
     }
 }
コード例 #3
0
            public void WeaponToHand(bool eu)
            {
                if (backItem == null)
                {
                    return;
                }
                for (int i = 0; i < 2; i++)
                {
                    if (owner.grasps[i] != null && owner.Grabability(owner.grasps[i].grabbed) >= Player.ObjectGrabability.BigOneHand)
                    {
                        return;
                    }
                }
                int targetHand = -1;

                for (int i = 0; i < 2; i++)
                {
                    if (targetHand != -1)
                    {
                        break;
                    }
                    if (owner.grasps[i] == null)
                    {
                        targetHand = i;
                    }
                }
                if (targetHand != -1)
                {
                    if (owner.graphicsModule != null)
                    {
                        backItem.firstChunk.MoveFromOutsideMyUpdate(eu, (owner.graphicsModule as PlayerGraphics).hands[targetHand].pos);
                    }
                    owner.SlugcatGrab(backItem, targetHand);
                    backItem                = null;
                    interactionLocked       = true;
                    owner.noPickUpOnRelease = 20;
                    owner.room.PlaySound(SoundID.Slugcat_Pick_Up_Spear, owner.mainBodyChunk);
                    if (abstractStick != null)
                    {
                        abstractStick.Deactivate();
                        abstractStick = null;
                    }
                }
            }