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"; }
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"; }
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(); } }