public override void OnEvent(stuckArrowsSync evnt) { if (!this.ValidateSender(evnt, SenderTypes.Any)) { return; } if (evnt.target) { arrowStickToTarget arrowStickToTarget = evnt.target.GetComponent <arrowStickToTarget>(); if (!arrowStickToTarget) { arrowStickToTarget = evnt.target.GetComponentInChildren <arrowStickToTarget>(); } if (arrowStickToTarget) { if (evnt.removeArrow) { int num = 0; foreach (KeyValuePair <Transform, int> keyValuePair in arrowStickToTarget.stuckArrows) { if (num == evnt.index && keyValuePair.Key) { UnityEngine.Object.Destroy(keyValuePair.Key.gameObject); } num++; } return; } return; } } }
public void sendArrowMP(GameObject fakeArrow, int closestJointIndex, WeaponStatUpgrade.Types arrowBonus = (WeaponStatUpgrade.Types)(-1), bool crossbow = false) { stuckArrowsSync stuckArrowsSync = stuckArrowsSync.Create(GlobalTargets.Others); BoltEntity component = base.transform.root.GetComponent <BoltEntity>(); if (component) { } stuckArrowsSync.target = component; stuckArrowsSync.pos = fakeArrow.transform.localPosition; stuckArrowsSync.rot = fakeArrow.transform.localRotation; if (arrowBonus == WeaponStatUpgrade.Types.BoneAmmo) { stuckArrowsSync.type = 1; } if (crossbow) { stuckArrowsSync.type = 2; } stuckArrowsSync.index = closestJointIndex; if (stuckArrowsSync.target) { stuckArrowsSync.Send(); } }
public override void OnEvent(stuckArrowsSync evnt) { if (!this.ValidateSender(evnt, SenderTypes.Any)) { return; } if (evnt.target) { arrowStickToTarget arrowStickToTarget = evnt.target.GetComponent <arrowStickToTarget>(); if (!arrowStickToTarget) { arrowStickToTarget = evnt.target.GetComponentInChildren <arrowStickToTarget>(); } if (arrowStickToTarget) { if (evnt.removeArrow) { int num = 0; foreach (KeyValuePair <Transform, int> keyValuePair in arrowStickToTarget.stuckArrows) { if (num == evnt.index && keyValuePair.Key) { UnityEngine.Object.Destroy(keyValuePair.Key.gameObject); } num++; } return; } int type = evnt.type; GameObject gameObject; if (type != 1) { gameObject = UnityEngine.Object.Instantiate <GameObject>(arrowStickToTarget.fakeArrowPickup, evnt.target.transform.position, evnt.target.transform.rotation); } else { gameObject = UnityEngine.Object.Instantiate <GameObject>(arrowStickToTarget.fakeArrowBonePickup, evnt.target.transform.position, evnt.target.transform.rotation); } gameObject.transform.parent = arrowStickToTarget.stickToJoints[evnt.index]; gameObject.transform.localPosition = evnt.pos; gameObject.transform.localRotation = evnt.rot; arrowStickToTarget.stuckArrows.Add(gameObject.transform, evnt.index); fakeArrowSetup component = gameObject.GetComponent <fakeArrowSetup>(); if (component && BoltNetwork.isRunning) { component.storedIndex = arrowStickToTarget.stuckArrows.Count - 1; component.entityTarget = evnt.target; } } } }
private void sendRemoveArrow() { if (BoltNetwork.isRunning) { if (this.entityTarget == null) { this.entityTarget = base.transform.root.GetComponent <BoltEntity>(); } if (this.entityTarget) { stuckArrowsSync stuckArrowsSync = stuckArrowsSync.Create(GlobalTargets.Others); stuckArrowsSync.target = this.entityTarget; stuckArrowsSync.removeArrow = true; stuckArrowsSync.index = this.storedIndex; stuckArrowsSync.Send(); } } }