private IEnumerator BurnRoutine(bool burnShort = false) { this._isBurning = true; this.BurnSFX(); if (burnShort) { yield return(YieldPresets.WaitTenSeconds); } else { yield return(YieldPresets.WaitFourtySeconds); } Transform bonePrefab = BoltNetwork.isRunning ? ItemDatabase.ItemById(this._boneItemId)._pickupPrefabMP : ItemDatabase.ItemById(this._boneItemId)._pickupPrefab; Transform skullPrefab = BoltNetwork.isRunning ? ItemDatabase.ItemById(this._skullItemId)._pickupPrefabMP : ItemDatabase.ItemById(this._skullItemId)._pickupPrefab; Transform pickup; for (int i = 0; i < this._bonesSpawn.Length; i++) { if (this._bonesSpawn[i]) { pickup = (BoltNetwork.isRunning ? BoltNetwork.Instantiate(bonePrefab.gameObject).transform : UnityEngine.Object.Instantiate <Transform>(bonePrefab)); pickup.position = this._bonesSpawn[i].position; pickup.rotation = this._bonesSpawn[i].rotation; } } pickup = (BoltNetwork.isRunning ? BoltNetwork.Instantiate(bonePrefab.gameObject).transform : UnityEngine.Object.Instantiate <Transform>(bonePrefab)); pickup.position = base.transform.position + Vector3.left; pickup.rotation = base.transform.rotation; pickup = (BoltNetwork.isRunning ? BoltNetwork.Instantiate(bonePrefab.gameObject).transform : UnityEngine.Object.Instantiate <Transform>(bonePrefab)); pickup.position = base.transform.position + Vector3.right; pickup.rotation = base.transform.rotation; if (this._skullSpawn) { pickup = (BoltNetwork.isRunning ? BoltNetwork.Instantiate(skullPrefab.gameObject).transform : UnityEngine.Object.Instantiate <Transform>(skullPrefab)); pickup.position = this._skullSpawn.position; pickup.rotation = this._skullSpawn.rotation; } FMODCommon.PlayOneshotNetworked("event:/fire/bones_explode", base.transform, FMODCommon.NetworkRole.Any); limitSledBlur lsb = base.transform.GetComponentInParent <limitSledBlur>(); if (lsb && lsb.mh) { lsb.mh.PickUpBody(); } if (BoltNetwork.isRunning && base.entity.isAttached) { BoltNetwork.Destroy(base.transform.parent.gameObject); } else { UnityEngine.Object.Destroy(base.transform.parent.gameObject); } yield break; }
public void dropFromCarry(bool ignoreAnim) { this.ignoreFarAwayCheck = Time.time + 4f; if (this.setupMourningEncounter || this.setupFeedingEncounter) { this.Tr.position = this.parentGo.transform.position; } if (this.setupMourningEncounter) { this.parentGo.SendMessage("doAlignForEncounter", SendMessageOptions.DontRequireReceiver); } if (BoltNetwork.isRunning) { base.CancelInvoke("disableControl"); this.animator.enabled = true; this.control.enabled = true; base.Invoke("disableControl", 5f); } limitSledBlur componentInParent = base.transform.GetComponentInParent <limitSledBlur>(); if (!componentInParent) { for (int i = 0; i < this.ragDollParts.Length; i++) { this.ragDollParts[i].SetActive(true); } } if (componentInParent) { base.Invoke("disableControl", 2.5f); } if (!ignoreAnim) { this.hips.localPosition = new Vector3(0f, 0f, 0f); this.animator.CrossFade("Base Layer.deathStealth1", 0f, 0, 0.4f); } if (BoltNetwork.isClient) { this.dropTimeOffset = Time.time + 1.1f; } }