Exemplo n.º 1
0
        public static void DarkChainDestroy(Item chain, RagdollPart ragdollPart, RagdollHandle ragdollHandle, Telekinesis telekinesis, bool neck)
        {
            telekinesis.TryRelease();

            DestroySelf.Destroy(chain.gameObject);

            if (ragdollPart.ragdoll.parts.Count > 0)
            {
                foreach (RagdollPart part in ragdollPart.ragdoll.parts)
                {
                    part.rb.isKinematic = false;
                }
            }

            if (ragdollHandle.ragdollPart.ragdoll.parts.Count > 0)
            {
                foreach (RagdollPart part in ragdollHandle.ragdollPart.ragdoll.parts)
                {
                    part.rb.isKinematic = false;
                }
            }


            ragdollPart.ragdoll.SetState(BS.Ragdoll.State.Fallen);
            if (ragdollPart.ragdoll.creature.health.currentHealth <= 0)
            {
                ragdollPart.ragdoll.SetState(BS.Ragdoll.State.Dead);
            }


            if (ragdollHandle.name == "NPC(neck)(chained)")
            {
                ragdollHandle.name = "NPC(neck)";
            }
            else if (ragdollHandle.name == "NPC(chained)")
            {
                ragdollHandle.name = "NPC";
            }
            else
            {
                Debug.Log("The ragdollHandle was neither the neck nor a default part");
            }
            //ragdollPart.ragdoll.RefreshFall();
            ragdollPart.ragdoll.allowStandUp = true;
            ragdollHandle.tag = "Untagged";
        }
Exemplo n.º 2
0
        public static void DarkChainDestroy(Item chain, RagdollPart ragdollPart, RagdollHandle ragdollHandle, bool neck)
        {
            DestroySelf.Destroy(chain.gameObject);

            if (ragdollPart.ragdoll.parts.Count > 0)
            {
                foreach (RagdollPart part in ragdollPart.ragdoll.parts)
                {
                    part.rb.isKinematic = false;
                }
            }

            if (ragdollHandle.ragdollPart.ragdoll.parts.Count > 0)
            {
                foreach (RagdollPart part in ragdollHandle.ragdollPart.ragdoll.parts)
                {
                    part.rb.isKinematic = false;
                }
            }


            if (ragdollHandle.name == "NPC(neck)(chained)")
            {
                ragdollHandle.name = "NPC(neck)";
            }
            else if (ragdollHandle.name == "NPC(chained)")
            {
                ragdollHandle.name = "NPC";
            }
            else
            {
                Debug.Log("The ragdollHandle was neither the neck nor a default part");
            }

            //ragdollPart.ragdoll.RefreshFall();
            ragdollPart.ragdoll.allowStandUp = true;
            ragdollHandle.tag = "Untagged";
        }
Exemplo n.º 3
0
        public void ResetAll()
        {
            reseting = true;

            if (darkChains.Count > 0)
            {
                foreach (Item chain in darkChains)
                {
                    if (chain != null)
                    {
                        chain.GetComponent <ItemDarkChain>().isEnding = true;
                        if (chain.GetComponent <ItemDarkChain>().myRagdollPart != null)
                        {
                            chain.GetComponent <ItemDarkChain>().myRagdollPart.rb.isKinematic = false;
                        }
                    }
                }
            }

            if (chainedParts.Count > 0)
            {
                foreach (RagdollHandle ragdollHandle in chainedParts)
                {
                    if (ragdollHandle != null)
                    {
                        if (ragdollHandle.ragdollPart != null)
                        {
                            if (ragdollHandle.ragdollPart.ragdoll != null)
                            {
                                if (ragdollHandle.ragdollPart.ragdoll.parts.Count > 0)
                                {
                                    foreach (RagdollPart part in ragdollHandle.ragdollPart.ragdoll.parts)
                                    {
                                        part.rb.isKinematic = false;
                                    }

                                    ragdollHandle.ragdollPart.ragdoll.allowStandUp = true;
                                    ragdollHandle.ragdollPart.ragdoll.RefreshFall();

                                    if (ragdollHandle.name == "NPC(neck)(chained)")
                                    {
                                        ragdollHandle.name = "NPC(neck)";
                                    }
                                    else if (ragdollHandle.name == "NPC(chained)")
                                    {
                                        ragdollHandle.name = "NPC";
                                    }
                                    else
                                    {
                                        Debug.Log("The ragdollHandle was neither the neck nor a default part");
                                    }
                                    ragdollHandle.tag = "Untagged";
                                }
                            }
                        }
                    }
                }
                chainedParts.Clear();
            }

            if (darkChains.Count > 0)
            {
                foreach (Item chain in darkChains)
                {
                    if (chain != null)
                    {
                        Player.local.handLeft.bodyHand.telekinesis.TryRelease();
                        Player.local.handRight.bodyHand.telekinesis.TryRelease();
                        chain.GetComponent <ItemDarkChain>().isEnding = true;
                        DestroySelf.Destroy(chain.gameObject);
                    }
                }
                darkChains.Clear();
            }
        }