private void OnCollisionEnter(Collision varpsource) { int vargamcasemanager = this.vargamurgentsource.vargamcasemanager; switch (vargamcasemanager + 3) { case 0: if (this.vargamactuatorenabled && varpsource.gameObject.CompareTag("missile") && this.vargamparttype != clsurgutils.enumparttypes.spine) { this.vargamactuatorenabled = false; base.transform.parent = this.vargamurgentsource.transform; clsurgutils.metdrivebodypart(this.vargamurgentsource, this.vargamparttype, 0); clsragdollimbifier componentInChildren = base.transform.root.GetComponentInChildren <clsragdollimbifier>(); if (componentInChildren != null) { switch (this.vargamparttype) { case clsurgutils.enumparttypes.arm_left: componentInChildren.varla = true; break; case clsurgutils.enumparttypes.arm_right: { componentInChildren.varra = true; clsdrop componentInChildren2 = base.transform.root.GetComponentInChildren <clsdrop>(); if (componentInChildren2 != null) { componentInChildren2.metdrop(varpsource.impactForceSum, true); } break; } case clsurgutils.enumparttypes.leg_left: componentInChildren.varll = true; break; case clsurgutils.enumparttypes.leg_right: componentInChildren.varrl = true; break; } } else { Debug.LogError("No ragdollimbifier found. Part repair compromised."); } base.GetComponent <Rigidbody>().AddForceAtPosition(varpsource.impactForceSum, varpsource.contacts[0].point, ForceMode.VelocityChange); } break; case 1: { if (!this.vargamactuatorenabled || (!varpsource.gameObject.CompareTag("missile") && !varpsource.gameObject.CompareTag("terrain"))) { return; } clsdismemberator componentInChildren3 = this.vargamurgentsource.GetComponentInChildren <clsdismemberator>(); if (componentInChildren3 != null) { float num = UnityEngine.Random.Range(0f, 0.99f); if (num > 0.75f) { clsurgutils.metdismember(base.transform, componentInChildren3.vargamstumpmaterial, componentInChildren3, componentInChildren3.vargamparticleparent, componentInChildren3.vargamparticlechild, true, true); } } else { Debug.LogError("No Dismemberator Class in source D host."); } break; } case 2: { if (this.vargamactuatorenabled && varpsource.gameObject.CompareTag("missile")) { this.vargamactuatorenabled = false; clsurgutils.metdriveurgent(this.vargamurgentsource, null); base.GetComponent <Rigidbody>().AddForceAtPosition(varpsource.impactForceSum, varpsource.contacts[0].point, ForceMode.VelocityChange); } clsdrop componentInChildren2 = base.transform.root.GetComponentInChildren <clsdrop>(); if (componentInChildren2 != null) { componentInChildren2.metdrop(varpsource.impactForceSum, true); } break; } } }
private void OnGUI() { if (this.vargamurgentities != null) { GUILayout.Label("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", new GUILayoutOption[0]); if (this.varla) { if (GUILayout.Button("- Restore left arm", new GUILayoutOption[0])) { clsurgentactuator component = this.vargamurgentities.vargamnodes.vargamarmleft[0].GetComponent <clsurgentactuator>(); this.vargamurgentities.vargamnodes.vargamarmleft[0].parent = component.vargamparent; clsurgutils.metdriveanimatebodypart(this.vargamurgentities, clsurgutils.enumparttypes.arm_left, 0, true); this.varla = false; } } else if (GUILayout.Button("Break left arm", new GUILayoutOption[0])) { this.vargamurgentities.vargamnodes.vargamarmleft[0].parent = this.vargamurgentities.transform; clsurgutils.metdrivebodypart(this.vargamurgentities, clsurgutils.enumparttypes.arm_left, 0); this.varla = true; } if (this.varra) { if (GUILayout.Button("- Restore right arm", new GUILayoutOption[0])) { clsurgentactuator component2 = this.vargamurgentities.vargamnodes.vargamarmright[0].GetComponent <clsurgentactuator>(); if (component2 != null) { clsurgutils.metdriveanimatebodypart(this.vargamurgentities, clsurgutils.enumparttypes.arm_right, 0, true); } this.vargamurgentities.vargamnodes.vargamarmright[0].parent = component2.vargamparent; this.varra = false; } } else if (GUILayout.Button("Break right arm", new GUILayoutOption[0])) { this.vargamurgentities.vargamnodes.vargamarmright[0].parent = this.vargamurgentities.transform; clsurgutils.metdrivebodypart(this.vargamurgentities, clsurgutils.enumparttypes.arm_right, 0); clsdrop componentInChildren = base.GetComponentInChildren <clsdrop>(); if (componentInChildren != null) { componentInChildren.metdrop(false); } this.varra = true; } if (this.varll) { if (GUILayout.Button("- Restore left leg", new GUILayoutOption[0])) { clsurgentactuator component3 = this.vargamurgentities.vargamnodes.vargamlegleft[0].GetComponent <clsurgentactuator>(); if (component3 != null) { clsurgutils.metdriveanimatebodypart(this.vargamurgentities, clsurgutils.enumparttypes.leg_left, 0, true); } this.vargamurgentities.vargamnodes.vargamlegleft[0].parent = component3.vargamparent; this.varll = false; } } else if (GUILayout.Button("Break left leg", new GUILayoutOption[0])) { this.vargamurgentities.vargamnodes.vargamlegleft[0].parent = this.vargamurgentities.transform; clsurgutils.metdrivebodypart(this.vargamurgentities, clsurgutils.enumparttypes.leg_left, 0); this.varll = true; } if (this.varrl) { if (GUILayout.Button("- Restore right leg", new GUILayoutOption[0])) { clsurgentactuator component4 = this.vargamurgentities.vargamnodes.vargamlegright[0].GetComponent <clsurgentactuator>(); if (component4 != null) { clsurgutils.metdriveanimatebodypart(this.vargamurgentities, clsurgutils.enumparttypes.leg_right, 0, true); } this.vargamurgentities.vargamnodes.vargamlegright[0].parent = component4.vargamparent; this.varrl = false; } } else if (GUILayout.Button("Break right leg", new GUILayoutOption[0])) { this.vargamurgentities.vargamnodes.vargamlegright[0].parent = this.vargamurgentities.transform; clsurgutils.metdrivebodypart(this.vargamurgentities, clsurgutils.enumparttypes.leg_right, 0); this.varrl = true; } if (GUILayout.Button("URG!", new GUILayoutOption[0])) { clsurgutils.metdriveurgent(this.vargamurgentities, null); this.vargamurgentities.transform.GetComponent <Animation>().Stop(); this.vargamurgentities.transform.GetComponent <Animation>().animatePhysics = false; CharacterController component5 = this.vargamurgentities.transform.root.GetComponent <CharacterController>(); Vector3 a = default(Vector3); if (component5 != null) { a = component5.velocity; a.y = 0.1f; UnityEngine.Object.Destroy(component5); this.vargamurgentities.vargamnodes.vargamspine[0].GetComponent <Rigidbody>().AddForce(a * 600f); } clsdrop componentInChildren2 = base.GetComponentInChildren <clsdrop>(); if (componentInChildren2 != null) { componentInChildren2.metdrop(a * 60f, true); } base.enabled = false; } } }