public void OnPurpleReset() { if (IsGrabbingObject()) { if (m_GrabbedObject.GetComponent <ResetBase>() != null) { m_GrabbedObject.GetComponent <ResetBase>().OnSectionReset(); } StopGrabbingObject(m_GrabbedObject); // m_GrabbedObject.SetIsGrabbing(false); // m_GrabbedObject = null; } if (IsCarryingObject()) { // PutDownCarryingObject(); // ResetBase rb; if (m_PickedUpObject.GetComponent <ResetBase>() != null) { m_PickedUpObject.GetComponent <ResetBase>().OnSectionReset(); } m_PickedUpObject.SetToStartParent(); Collider2D pickupObjectCollider = m_PickedUpObject.GetComponent <Collider2D>(); if (pickupObjectCollider != null) { // Physics2D.IgnoreCollision( m_Collider, pickupObjectCollider ); pickupObjectCollider.enabled = true; } m_PickedUpObject = null; // m_PickedUpObject = null; } }
public void ThrowCarryingObject() { m_PickedUpObject.Throw(m_Character); m_PickedUpObject = null; m_MovementModel.SetFrozen(false, false, false); m_MovementModel.SetIsAbleToAttack(true); }
public List <int> GetPickupSpawnLocation(InteractablePickup type) { List <int> pickableNodeList = new List <int>(); for (int i = 0; i < graph.Count; i++) { if (graph[i].node.spawnPickups == type) { pickableNodeList.Add(graph[i].node.uniqueID); } } return(pickableNodeList); }
public void PutDownCarryingObject() { if (m_PickedUpObject != null && !Helper.IsTooCloseToWall(m_Character, 0.33f)) { m_PickedUpObject.PutDown(m_Character); Collider2D pickupObjectCollider = m_PickedUpObject.GetComponent <Collider2D>(); if (pickupObjectCollider != null) { // Physics2D.IgnoreCollision( m_Collider, pickupObjectCollider ); pickupObjectCollider.enabled = true; } m_PickedUpObject = null; } }
public void PickUpObject(InteractablePickup pickUpObject) { pickedUpObject = pickUpObject; pickedUpObject.transform.parent = movementModel.PickupItemParent; pickedUpObject.transform.localPosition = Vector3.zero; movementModel.SetAbleToAttack(false); Helper.SetSortingLayerToSprites(pickUpObject.transform, "Characters"); // Physics2D.IgnoreCollision(m_collider, pickUpObject.GetComponent<Collider2D>()); Collider2D pickupObjectCollider = pickedUpObject.GetComponent <Collider2D>(); if (pickupObjectCollider != null) { pickupObjectCollider.enabled = false; } }
public void PickupObject(InteractablePickup pickupObject) { Debug.Log("Item is being picked up"); m_PickedUpObject = pickupObject; m_PickedUpObject.transform.parent = m_MovementModel.PreviewItemParent; m_PickedUpObject.transform.localPosition = Vector3.zero; //Hmm so localPosition is supposed to make sure the object is at the parent objects position //Altho its the parent im picking up, but it seems to work anyway //hmmm... m_MovementModel.SetFrozen(true, false, false); m_MovementModel.SetIsAbleToAttack(false); Helper.SetSortingLayerForAllRenderers(pickupObject.transform, "Characters"); //Oh now it comes Physics2D.IgnoreCollision(m_Collider, pickupObject.GetComponent <Collider2D>()); }
public void PickupObject(InteractablePickup pickupObject) { m_PickedUpObject = pickupObject; m_PickedUpObject.transform.parent = m_MovementModel.pickupItemParent; m_PickedUpObject.transform.localPosition = Vector3.zero; Collider2D pickupObjectCollider = pickupObject.GetComponent <Collider2D>(); pickupObject.GetComponent <Rigidbody2D>().bodyType = RigidbodyType2D.Kinematic; if (pickupObjectCollider != null) { pickupObjectCollider.enabled = false; } }
public void ThrowCarryingObject() { Collider2D pickupObjectCollider = m_PickedUpObject.GetComponent <Collider2D>(); if (pickupObjectCollider != null) { pickupObjectCollider.enabled = true; Physics2D.IgnoreCollision(m_Collider, pickupObjectCollider); } m_PickedUpObject.Throw(m_Character); m_PickedUpObject = null; //m_MovementModel.SetFrozen( false, false, false ); m_MovementModel.SetIsAbleToAttack(true); }
public void ThrowObject() { source.clip = throwSound; source.Play(); Collider2D pickupObjectCollider = pickedUpObject.GetComponent <Collider2D>(); if (pickupObjectCollider != null) { pickupObjectCollider.enabled = true; Physics2D.IgnoreCollision(m_collider, pickupObjectCollider); } pickedUpObject.Throw(character); pickedUpObject = null; movementModel.SetAbleToAttack(true); }
IEnumerator _ThrowCarryingObject() { Collider2D pickupObjectCollider = m_PickedUpObject.GetComponent <Collider2D>(); if (pickupObjectCollider != null) { Physics2D.IgnoreCollision(m_Collider, pickupObjectCollider); pickupObjectCollider.enabled = false; } m_PickedUpObject.Throw(m_Character); yield return(new WaitForSeconds(0.2f)); pickupObjectCollider.enabled = true; Physics2D.IgnoreCollision(m_Collider, pickupObjectCollider, false); m_PickedUpObject = null; }
//Throws the currently being carried object public void ThrowCarryingObject() { Collider2D pickupObjectCollider = m_PickedUpObject.GetComponent <Collider2D>(); //Re-enable the collider and ignore collisions as your throw it if (pickupObjectCollider != null) { pickupObjectCollider.enabled = true; Physics2D.IgnoreCollision(m_Collider, pickupObjectCollider); } //Throoow it m_PickedUpObject.Throw(m_Character); m_PickedUpObject = null; //No longer carrying, can attack m_MovementModel.SetIsAbleToAttack(true); }
public void PickupObject( InteractablePickup pickupObject ) { m_PickedUpObject = pickupObject; m_PickedUpObject.transform.parent = m_MovementModel.PickupItemParent; m_PickedUpObject.transform.localPosition = Vector3.zero; //m_MovementModel.SetFrozen( true, false, false ); m_MovementModel.SetIsAbleToAttack( false ); Helper.SetSortingLayerForAllRenderers( pickupObject.transform, "Characters" ); Collider2D pickupObjectCollider = pickupObject.GetComponent<Collider2D>(); if( pickupObjectCollider != null ) { pickupObjectCollider.enabled = false; } }
public void PickupObject(InteractablePickup pickupObject) { m_PickedUpObject = pickupObject; m_PickedUpObject.transform.parent = m_MovementModel.PickupItemParent; m_PickedUpObject.transform.localPosition = Vector3.zero; //m_MovementModel.SetFrozen( true, false, false ); m_MovementModel.SetIsAbleToAttack(false); Helper.SetSortingLayerForAllRenderers(pickupObject.transform, "Characters"); Collider2D pickupObjectCollider = pickupObject.GetComponent <Collider2D>(); if (pickupObjectCollider != null) { pickupObjectCollider.enabled = false; } }
//Pick up an object that can later be thrown public void PickupObject(InteractablePickup pickupObject) { m_PickedUpObject = pickupObject; //Positon the object over us m_PickedUpObject.transform.parent = m_MovementModel.PickupItemParent; m_PickedUpObject.transform.localPosition = Vector3.zero; //We cant attack because we are carrying something m_MovementModel.SetIsAbleToAttack(false); //Make it on our sorting layer relative to us Helper.SetSortingLayerForAllRenderers(pickupObject.transform, "Characters"); //Turn off the collider for this object Collider2D pickupObjectCollider = pickupObject.GetComponent <Collider2D>(); if (pickupObjectCollider != null) { pickupObjectCollider.enabled = false; } }
//Pickup and carry an InteractablePickup item public void CarryObject(InteractablePickup objectToCarry) { if (IsCarrying()) { return; } carriedObject = objectToCarry; anim.SetTrigger("DoPickupObject"); //pickup animation anim.SetBool("IsPickingUp", true); //special Idle and Walk animation when carrying carriedObject.transform.parent = previewItemParent; //object becomes child of previewItemParent carriedObject.transform.localPosition = Vector3.zero; layerOfCarriedObject = carriedObject.GetComponentInChildren <SpriteRenderer>().sortingLayerName; carriedObject.GetComponentInChildren <SpriteRenderer>().sortingLayerName = "HighObjects"; //rendered above the character SetColliders(carriedObject.gameObject, false); //disable all coliders of the carried object EnemyBehavior objectBehavior = carriedObject.GetComponent <EnemyBehavior>(); if (objectBehavior != null) { objectBehavior.DisableShadow(); } TipsHandler.Recycle(); }
public void DropObject() { if (!IsCarrying()) { return; } // Vérification qu'il n'y a pas d'obstacle devant Collider2D[] closeColliders = Physics2D.OverlapCircleAll(transform.position + (vectMovement * 0.7f), 0.55f); foreach (Collider2D closeCollider in closeColliders) { if (closeCollider.CompareTag("Obstacle")) { // L'objet est déposé derrière vectMovement = -vectMovement; break; } } anim.SetTrigger("DoDrop"); //drop animation Vector3 newPosition = vectMovement; newPosition.y -= previewItemParent.transform.localPosition.y + 0.2f; carriedObject.transform.localPosition = newPosition; //move it in front of character carriedObject.transform.parent = null; //no parent carriedObject.GetComponentInChildren <SpriteRenderer>().sortingLayerName = layerOfCarriedObject; if (carriedObject.GetComponentInChildren <SpriteRenderer>().sortingOrder < 200) { carriedObject.GetComponentInChildren <SpriteRenderer>().sortingOrder += 100; } SetColliders(carriedObject.gameObject, true); EnemyBehavior objectBehavior = carriedObject.GetComponent <EnemyBehavior>(); if (objectBehavior != null) { objectBehavior.EnableShadow(); } carriedObject = null; anim.SetBool("IsPickingUp", false); //go back to normal animations }
void SpawnInteractables(InteractablePickup interactablePickup, InteractableScriptableObj interactableScriptableObj) { List <int> nodeID = new List <int>(); nodeID.Clear(); int k = (int)interactablePickup; nodeID = interactableManager.GetNodeIDOfController(interactablePickup); switch (interactablePickup) { case InteractablePickup.NONE: break; case InteractablePickup.BREIFCASE: for (int i = 0; i < nodeID.Count; i++) { InteractableView briefCaseView = interactableScriptableObj.interactableItems[k] .interactableView; Vector3 position = interactableManager.ReturnPathService() .GetNodeLocation(nodeID[i]); InteractableController briefCaseController = new BriefCaseController(position , interactableManager , briefCaseView); interactableManager.AddInteractable(nodeID[i], briefCaseController); } break; case InteractablePickup.STONE: for (int i = 0; i < nodeID.Count; i++) { InteractableView stoneView = interactableScriptableObj.interactableItems[k] .interactableView; Vector3 position = interactableManager.ReturnPathService() .GetNodeLocation(nodeID[i]); InteractableController rockController = new RockInteractableController(position , interactableManager , stoneView); interactableManager.AddInteractable(nodeID[i], rockController); } break; case InteractablePickup.BONE: for (int i = 0; i < nodeID.Count; i++) { InteractableView boneView = interactableScriptableObj.interactableItems[k] .interactableView; Vector3 position = interactableManager.ReturnPathService() .GetNodeLocation(nodeID[i]); InteractableController boneController = new BoneController(position , interactableManager , boneView); interactableManager.AddInteractable(nodeID[i], boneController); } break; case InteractablePickup.SNIPER_GUN: for (int i = 0; i < nodeID.Count; i++) { InteractableView sniperView = interactableScriptableObj.interactableItems[k] .interactableView; Vector3 position = interactableManager.ReturnPathService() .GetNodeLocation(nodeID[i]); InteractableController sniperController = new SniperController(position , interactableManager , sniperView); interactableManager.AddInteractable(nodeID[i], sniperController); } break; case InteractablePickup.DUAL_GUN: for (int i = 0; i < nodeID.Count; i++) { InteractableView dualGunView = interactableScriptableObj.interactableItems[k] .interactableView; Vector3 position = interactableManager.ReturnPathService() .GetNodeLocation(nodeID[i]); InteractableController dualGunController = new DualGunInteractableController(position , interactableManager , dualGunView); interactableManager.AddInteractable(nodeID[i], dualGunController); } break; case InteractablePickup.COLOR_KEY: for (int i = 0; i < nodeID.Count; i++) { InteractableView keyView = interactableScriptableObj.interactableItems[k] .interactableView; Vector3 position = interactableManager.ReturnPathService() .GetNodeLocation(nodeID[i]); InteractableController keyController = new KeyController(position , interactableManager , keyView, interactableManager.ReturnPathService().GetKeyType(nodeID[i])); interactableManager.AddInteractable(nodeID[i], keyController); } break; case InteractablePickup.AMBUSH_PLANT: for (int i = 0; i < nodeID.Count; i++) { InteractableView ambushPlantView = interactableScriptableObj.interactableItems[k] .interactableView; Vector3 position = interactableManager.ReturnPathService() .GetNodeLocation(nodeID[i]); InteractableController ambushPlantController = new AmbushPlantController(position , interactableManager , ambushPlantView); interactableManager.AddInteractable(nodeID[i], ambushPlantController); } break; case InteractablePickup.GUARD_DISGUISE: for (int i = 0; i < nodeID.Count; i++) { InteractableView guardView = interactableScriptableObj.interactableItems[k] .interactableView; Vector3 position = interactableManager.ReturnPathService() .GetNodeLocation(nodeID[i]); EnemyType enemyType = interactableManager.ReturnPathService() .GetDisguise(nodeID[i]); InteractableController guardController = new GuardUniformController(position , interactableManager , guardView , enemyType); interactableManager.AddInteractable(nodeID[i], guardController); } break; default: break; } }
public void ThrowCarryingObject() { Collider2D pickupObjectCollider = m_PickedUpObject.GetComponent<Collider2D>(); if( pickupObjectCollider != null ) { pickupObjectCollider.enabled = true; Physics2D.IgnoreCollision( m_Collider, pickupObjectCollider ); } m_PickedUpObject.Throw( m_Character ); m_PickedUpObject = null; //m_MovementModel.SetFrozen( false, false, false ); m_MovementModel.SetIsAbleToAttack( true ); }
private void SetUncarry() { m_PickedUpObject = null; m_MovementModel.SetIsAbleToAttack(true); m_MovementModel.setCarrying(false); }
public List <int> GetNodeIDOfController(InteractablePickup interactablePickup) { return(pathService.GetPickupSpawnLocation(interactablePickup)); }
public List <int> GetPickupSpawnLocation(InteractablePickup type) { return(controller.GetPickupSpawnLocation(type)); }
protected virtual void OnInitialized() { interactablePickup = InteractablePickup.NONE; }