/// <summary> /// A Flag was grabbed or dropped /// </summary> /// <param name="flag"></param> public override void FlagStatusChangedCallback(IGrabable flag) { if (flag.GetTeam() != soldier.GetTeam()) { // Enemy flag if (flag.Grabbed()) { foreach (TeamRoleBase b in sneakerTeam1) { b.CreateRouteToHomeBase(); } foreach (TeamRoleBase b in sneakerTeam2) { b.CreateRouteToHomeBase(); } } else { // Lost sneakerTeam1.EnemyFlagPosition = flag.GetLocation().ToCell(); sneakerTeam2.EnemyFlagPosition = flag.GetLocation().ToCell(); MyRole.CreateRouteToEnemyFlag(); // Everyone } } else { // Own flag foreach (TeamRoleBase b in sniperTeam1) { b.CreateRouteToHomeBase(); } foreach (TeamRoleBase b in sniperTeam2) { b.CreateRouteToHomeBase(); } } }
public void OnTriggerExit(Collider other) { if (collidingGrabable != null && other.GetComponent <IGrabable>() == collidingGrabable) { collidingGrabable = null; } }
private void OnTriggerStay(Collider other) { if (!_isFire1Pressed) { return; } IGrabable grabable = other.GetComponentInParent <IGrabable>(); if (grabable != null) { anim.SetBool("Grabbing", true); grabable.GetTransform().SetParent(grabedTransform); Rigidbody rb = grabable.GetTransform().GetComponent <Rigidbody>(); rb.useGravity = false; rb.isKinematic = true; rb.velocity = Vector3.zero; rb.angularVelocity = Vector3.zero; rb.transform.localPosition = Vector3.zero; rb.transform.localRotation = Quaternion.Euler(Vector3.zero); grabable.IsGrabbed = true; _grabbing = true; _itemsGrabbed.Add(grabable); _isFire1Pressed = false; } }
private void SetCollidingGrabable(Collider col) { if (collidingGrabable == null && col.GetComponent <IGrabable>() != null) { collidingGrabable = col.GetComponent <IGrabable>(); } }
//Grab an Object (IGrabable) w/ a specific or w/ last hand used (hand=null). public void grab(GameObject obj, string hand = null) { //Default hand if (hand is null) { hand = currentHand; } //Test if (!hand_container.ContainsKey(hand)) { Debug.LogError("Invalid key for hands :" + hand); } IGrabable grabable_obj = obj.GetComponent <IGrabable>(); if (grabable_obj != null && hand_container[hand] is null && grabable_obj.size == 1) //Empty hand { // hit_object.transform.SetParent(transform); // hit_object.transform.localPosition = new Vector2(-0.2f,0.2f); Transform mugSlot = gameObject.transform.Find(hand + "MugSlot"); grabable_obj.take(mugSlot); hand_container[hand] = obj; }
public void GrabEvent(IGrabable handler, BaseEventData baseEvent) { animator.SetTrigger("DogPickup"); item = handler.getItemOnPickup(); handler.destroyItem(); dog.GrabbedItem = item; }
public void GrabFlag(IGrabable flag) { if (flag.GetTeam() == teamType) { return; } if ((flag.GetTransform().position - transform.position).magnitude > minFlagRange) { return; } if (flag.Grabbed()) { return; } flag.GetTransform().SetParent(flagHolder); flag.GetTransform().localPosition = Vector3.zero; flag.GetTransform().localRotation = Quaternion.identity; flag.SetGrabbed(true); flag.GetTransform().GetComponent <BoxCollider>().enabled = false; flagTransform = flag.GetTransform(); }
private void UpdateFlagsInSight() { if (InSight(TeamManager.Instance.GetRedTeam().spawnPoint.flag.transform)) { allFlagsInSight.Add(TeamManager.Instance.GetRedTeam().spawnPoint.flag); if (teamType == Team.Type.RED) { friendlyFlagInSight = TeamManager.Instance.GetRedTeam().spawnPoint.flag; } else { enemyFlagInSight = TeamManager.Instance.GetRedTeam().spawnPoint.flag; } } if (InSight(TeamManager.Instance.GetBlueTeam().spawnPoint.flag.transform)) { allFlagsInSight.Add(TeamManager.Instance.GetBlueTeam().spawnPoint.flag); if (teamType == Team.Type.BLUE) { friendlyFlagInSight = TeamManager.Instance.GetBlueTeam().spawnPoint.flag; } else { enemyFlagInSight = TeamManager.Instance.GetBlueTeam().spawnPoint.flag; } } }
private void GrabObject() { var go = (collidingGrabable as MonoBehaviour).gameObject; var copy = Instantiate(go, gameObject.transform.position, go.transform.rotation) as GameObject; var networkTransform = copy.GetComponent <NetworkTransform>(); var networkID = copy.GetComponent <NetworkIdentity>(); Destroy(networkTransform); Destroy(networkID); var grabable = copy.GetComponent <IGrabable>(); if (grabable != null && grabable.TryGrab(this)) { GrabbedObject = grabable; copiedGrabable = collidingGrabable; collidingGrabable = null; copy.transform.SetParent(transform); } else { Destroy(copy); } }
private void OnTriggerStay(Collider other) { if (CooldownCounter > 0) { return; } IGrabable grabable = other.GetComponentInParent <IGrabable>(); if (grabable != null) { Debri debri = other.GetComponentInParent <Debri>(); if (debri.IsGrabbed) { return; } GameObject particleGO = Instantiate(IncineratorDestruction, debri.transform.position, Quaternion.identity) as GameObject; Destroy(particleGO, 1f); CooldownCounter = debri.IncineratorCooldown; cooldown.Show(debri.IncineratorCooldown); // Show cooldown UI GameManager.Instance.AddScore(debri.Score); GameManager.Instance.DecrementMessValue(grabable.GetMassValue()); // TODO play with random pitch - and maybe with a particle animation SoundEffects.Instance.Play(SfxDestroy, true); Destroy(debri.gameObject); } }
private void OnTriggerEnter(Collider col) { IGrabable grab = col.GetComponent <IGrabable>(); if (grab != null && !_grabables.Contains(col.transform)) { _grabables.Add(col.transform); } }
private void OnTriggerExit(Collider other) { IGrabable grabable = other.GetComponentInParent <IGrabable>(); if (grabable != null) { grabable.SetHighlighted(false); } }
private void ClearLists() { enemyFlagInSight = null; friendlyFlagInSight = null; allFlagsInSight.Clear(); allAgentsInSight.Clear(); friendlyAgentsInSight.Clear(); enemyAgentsInSight.Clear(); }
private void OnTriggerExit(Collider col) { IGrabable grab = col.GetComponent <IGrabable>(); if (grab != null && _grabables.Contains(col.transform)) { _grabables.Remove(col.transform); } }
private void SetCollidingGrabable(Collider col) { var grabable = col.GetComponent <IGrabable>(); if (collidingGrabable == null && grabable != null && grabable != GrabbedObject && col.tag == "Stick") { collidingGrabable = col.GetComponent <IGrabable>(); enteredTime = Time.time; } }
public override void FlagStatusChangedCallback(IGrabable flag) { // A flag was grabbed or ungrabbed. // the other team's flag was grabbed or dropped? Lets go back to our spawn and clear it up if (flag.GetTeam() != soldier.GetTeam()) { navAgent.targetCell = GridManager.instance.FindClosestCell(spawnLocation); } }
void RpcReleaseLocalObject() { if (_grabbedObject == null) { return; } _grabbedObject.OnRelease(_handSync.GetLastVelocity()); _grabbedObject = null; }
protected void FlagStatusChangedCallback(IGrabable flag) { if (flag.GetTeam() != agent.GetTeam()) { enemyFlagTaken = !enemyFlagTaken; } else { friendlyFlagTaken = !friendlyFlagTaken; } }
private void ReleaseObject() { GrabbedObject.TryRelease(this); var tr = (GrabbedObject as MonoBehaviour).gameObject.transform; tr.SetParent(null); tr.position = new Vector3(0, -500, 0); Destroy((GrabbedObject as MonoBehaviour).gameObject); GrabbedObject = null; }
/** * Force a grabbable to be ungrabbed even when the user has not released it. * Normally used when a control is about to be hidden. */ public void ForceUngrab(IGrabable grabable) { if (toggleGrabbing.Contains(grabable)) { toggleGrabbing.Remove(grabable); } if (grabbing.Contains(grabable)) { grabable.Ungrabbed(this); grabbing.Remove(grabable); } }
private void OnTriggerEnter(Collider other) { IGrabable grabable = other.GetComponentInParent <IGrabable>(); if (grabable != null) { grabable.SetHighlighted(true); } //else //{ // Debug.Log("not an IGrabable"); //} }
private void ReleaseObject() { GrabbedObject.TryRelease(this); GrabbedObject = null; Joint joint = null; if (GetComponent <FixedJoint>()) { joint = GetComponent <FixedJoint>(); } if (joint && createdRigidbody) { Destroy(joint.connectedBody); } Destroy(joint); }
void RpcGrabLocalObject(NetworkInstanceId netId) { //GameObject localObj = NetworkServer.FindLocalObject(netId); GameObject localObj = ClientScene.FindLocalObject(netId); if (localObj == null) { return; } IGrabable grab = localObj.GetComponent <IGrabable>(); if (grab == null) { return; } _grabbedObject = grab; _grabbedObject.OnGrab(this); }
private void GrabObject() { var grabable = collidingGrabable; if (grabable != null && grabable.TryGrab(this)) { GrabbedObject = grabable; Joint joint; joint = AddFixedJoint(); collidingGrabable = null; createdRigidbody = !((GrabbedObject as MonoBehaviour).GetComponent <Rigidbody>()); if (createdRigidbody) { (GrabbedObject as MonoBehaviour).gameObject.AddComponent <Rigidbody>(); } joint.connectedBody = (GrabbedObject as MonoBehaviour).GetComponent <Rigidbody>(); } }
void CmdAttemptGrab() { // TODO: Check and grab Transform grabTransform = _grabArea.GetClosestGrabable(); if (grabTransform == null) { return; } IGrabable grab = grabTransform.GetComponent <IGrabable>(); if (grab == null) { return; } _grabbedObject = grab; _grabbedObject.OnGrab(this); RpcGrabLocalObject(grab.GetNetId()); }
private void pickup(IGrabable handler, BaseEventData eventData) { bool temp; Inventory inventory; inventory = Inventory.instance; Item item; item = handler.getItemOnPickup(); if (inventory != null) { temp = inventory.addItem(item); if (temp) { handler.destroyItem(); } } else { handler.destroyItem(); } }
public void GiveInstruction(string grappingToolName) { Apprentice apprentice = new Apprentice(); IGrabable grappingTool = null; switch (grappingToolName) { case "Shovel": grappingTool = new Shovel(); break; case "Spade": grappingTool = new Spade(); break; default: break; } if (grappingTool != null) { apprentice.GrabHole(grappingTool); } }
protected void GrabFlag(IGrabable flag) { agent.GrabFlag(flag); }
/// <summary> /// Grabs the provided flag if the flag is on the other team and we are within distance /// </summary> /// <param name="flag"></param> public void GrabFlag(IGrabable flag) { _soldier.GrabFlag(flag); }
public virtual void FlagStatusChangedCallback(IGrabable flag) { }