private static void Postfix(SpellTelekinesis spellTelekinesis, HandleRagdoll __instance) { try { var ragdollPart = __instance.ragdollPart; if (spellTelekinesis.spellCaster.spellInstance.id == "DarkChains") { try { if (ragdollPart.ragdoll.creature.gameObject.GetComponent <FrozenCreature>() != null) { ragdollPart.characterJoint.breakForce = 20000; } } catch (Exception exception) { Debug.Log(exception.Message); } } try { Object.Destroy(ragdollPart.gameObject.GetComponent <FrozenRagdollPart>()); } catch (Exception exception) { Debug.Log(exception.Message); } } catch (Exception exception) { __instance.GetComponentInParent <Rigidbody>().isKinematic = false; Debug.Log(exception.Message); } }
private static void Postfix(HandleRagdoll __instance, RagdollHand ragdollHand, bool throwing) { if (__instance.ragdollPart.ragdoll.creature.FreezeData().IsCreatureFrozen&& !__instance.ragdollPart.ragdoll.isGrabbed && !__instance.ragdollPart.ragdoll.isTkGrabbed) { Instance.FreezeCreature(__instance.ragdollPart.ragdoll.creature); } }
private static void Postfix(HandleRagdoll __instance, RagdollHand ragdollHand, float axisPosition, HandleOrientation orientation, bool teleportToHand = false) { if (__instance.ragdollPart.ragdoll.creature.FreezeData().IsCreatureFrozen) { Instance.UnFreezeCreature(__instance.ragdollPart.ragdoll.creature); } }
public void Init(HandleRagdoll handleRagdoll) { _ragdollGripEffectData = Catalog.GetData <EffectData>("SpellGravityGrab"); //remove audio _ragdollGripEffect = _ragdollGripEffectData.Spawn(handleRagdoll.transform); foreach (var effect in _ragdollGripEffect.effects) { if (effect is EffectAudio) { //mute (effect as EffectAudio).audioSource.volume = 0; } } _ragdollGripEffect.Play(); }
private static void Postfix(HandleRagdoll __instance) { var ragdollPart = __instance.ragdollPart; try { Object.Destroy(ragdollPart.gameObject.GetComponent <FrozenRagdollPart>()); } catch (Exception exception) { Debug.Log(exception.Message); } RagdollPart otherPart = null; if (ragdollPart.type == RagdollPart.Type.LeftArm) { otherPart = ragdollPart.ragdoll.GetPart(RagdollPart.Type.LeftHand); } if (ragdollPart.type == RagdollPart.Type.RightArm) { otherPart = ragdollPart.ragdoll.GetPart(RagdollPart.Type.RightHand); } if (ragdollPart.type == RagdollPart.Type.LeftLeg) { otherPart = ragdollPart.ragdoll.GetPart(RagdollPart.Type.LeftFoot); } if (ragdollPart.type == RagdollPart.Type.RightLeg) { otherPart = ragdollPart.ragdoll.GetPart(RagdollPart.Type.RightFoot); } if (otherPart != null) { try { Object.Destroy(otherPart.gameObject.GetComponent <FrozenRagdollPart>()); } catch (Exception exception) { Debug.Log(exception.Message); } } }
private static void Postfix(SpellTelekinesis spellTelekinesis, ref bool throwing, HandleRagdoll __instance) { try { if (!throwing && spellTelekinesis.spellCaster.spellInstance.id == "DarkChains") { var ragdollPart = __instance.ragdollPart; ragdollPart.ResetCharJointBreakForce(); if (ragdollPart.gameObject.GetComponent <FrozenRagdollPart>() == null) { var frozenRagdollPart = ragdollPart.gameObject.AddComponent <FrozenRagdollPart>(); frozenRagdollPart.Init(__instance); } try { var creature = ragdollPart.ragdoll.creature; if (creature.gameObject.GetComponent <FrozenCreature>() == null) { creature.gameObject.AddComponent <FrozenCreature>(); } } catch (Exception exception) { Debug.Log(exception.Message); } } } catch (Exception exception) { if (!throwing && spellTelekinesis.spellCaster.spellInstance.id == "DarkChains") { __instance.GetComponentInParent <Rigidbody>().isKinematic = true; } Debug.Log(exception.Message); } }
void Start() { //We store the reference to the HandleRagdoll script ragdollHandler = GetComponent <HandleRagdoll>(); }
void Start() { ragdollHandler = GetComponent <HandleRagdoll>(); }