public override List <DulibaWaitor.Command> CanPlaceItem(Carryable item) { List <DulibaWaitor.Command> actions = new List <DulibaWaitor.Command>(); if (CanAdd(item)) { actions.Add(new DulibaWaitor.Command() { workTime = 0.5f, actionType = DulibaWaitor.ActionType.Place, name = "place " + item.data.name, image = item.data.image, callback = () => { pipeline.Add(item); pipeline.recipe = GetRecipeForItem(item); }, lateCallback = () => { OnWorkAreaUpdate?.Invoke(this); } }); } return(actions); }
void Drag(RaycastHit p_hit) { Transform objHit = p_hit.transform; if (objHit.GetComponent <Pickable>() != null) { if (objHit.GetComponent <Usuable>()) { if (objHit.GetComponent <Usuable>().Effect()) { Destroy(objHit.gameObject); } } else if (objHit.GetComponent <Carryable>()) { if (m_ActualCarryable != null) { Drop(p_hit); } m_ActualCarryable = objHit.GetComponent <Carryable>(); m_ActualCarryable.EnableFeedback(); m_ActualCarryable.m_activated = false; } } }
public void PickUp() { if (state.CurrentRoomIndex == 0) { GameObject targetedObject = carryableDetector.GetNearestCarryable(); if (targetedObject != null) { Carryable carryable = targetedObject.GetComponent <Carryable>(); if (carryable != null) { GameObject carryableObject = carryable.GetCarryableObject(); if (carryableObject != null) { StartCarrying(carryableObject); } } LaundromatBasket laundromatBasket = targetedObject.GetComponent <LaundromatBasket>(); if (laundromatBasket != null) { if (CustomerManager.CustomerServed != null) { CustomerManager.CustomerServed(laundromatBasket); } } } } }
public override List <DulibaWaitor.Command> CanPlaceItem(Carryable carryable) { List <DulibaWaitor.Command> actions = new List <DulibaWaitor.Command>(); if (pipeline.craftingCoroutine == null && carryable is Item item && pipeline.CanAdd()) { actions.Add(new DulibaWaitor.Command() { workTime = 0.5f, actionType = DulibaWaitor.ActionType.Place, name = "place " + carryable.data.name, image = carryable.data.image, callback = () => { carryable.Unreturn(); pipeline.Add(carryable); }, lateCallback = () => { OnWorkAreaUpdate?.Invoke(this); } }); } return(actions); }
public void PickUpItem(Carryable item) { isCarryingItem = true; carriedItem = item; carriedItem.OnPickUp(playerHand); onPickUp.Invoke(); }
void Serve(Carryable food) { foreach (var kvp in allOrderedItems) { var item = kvp.Key; var customer = kvp.Value; if (food.data.id == item.id) { foodLeft--; customer.SatisfyOrder(); if (foodLeft < 1) { orderStatus = OrderStatus.Eating; timeStarted = Time.time; timeRemaining = Time.time + Random.Range(timeToEatPerCustomerMinMax.x, timeToEatPerCustomerMinMax.y) * GetCustomerCount(); } OnWorkAreaUpdate?.Invoke(this); break; } } OnWorkAreaUpdate?.Invoke(this); }
public void tryPickup() { if (carryingFood || !lastTouchedFood) { return; } carryingFood = lastTouchedFood; lastTouchedFood = null; if (animator) { Carryable carryable = carryingFood.GetComponent <Carryable>(); if (!carryable) { Debug.LogError("Tried to pickup something not Carryable"); } else { animator.SetInteger("Carrying", carryable.getType()); if (carryable.getIsKitty()) { AudioSource.PlayClipAtPoint(audioGrabKitty, Vector3.zero); body.mass += carryingFood.GetComponent <Rigidbody2D>().mass; } } } AudioSource.PlayClipAtPoint(audioGrab, Vector3.zero); carryingFood.SetActive(false); // Destroy (lastTouchedFood); }
public bool Add(Carryable carryable) { if (CanAdd(carryable)) { if (recipe != null && carryable.data.id == input.data.id) { float c = inputAmount * 100 + 100; float d = inputAmount * 100 / c; float e = 100 / c; spoilageTimer = ((Item)input).spoilageTime * d + ((Item)carryable).spoilageTime * e; inputAmount += 1; } else if (recipe == null) { input = carryable; spoilageTimer = ((Item)carryable).spoilageTime; inputAmount = 1; } return(true); } return(false); }
void CarryPlayer() { float spriteOffset = 0.2f; float pickupDist = 0.5f; Vector2 start = playerBody.position + transform.localScale.x * Vector2.right * spriteOffset; Vector2 dir = transform.localScale.x * Vector2.right * pickupDist; Debug.DrawRay(start, dir, Color.blue, 1f); RaycastHit2D hit = Physics2D.Raycast(start, dir, pickupDist); if (hit.collider != null && hit.collider.tag == "Player") { carrying = true; carryingPlayer = hit.collider.gameObject.GetComponent <NetSetup> ().playerNum; CmdInitiatePickup(networkInfo.playerNum, carryingPlayer); } else if (hit.collider != null && hit.collider.gameObject.GetComponent <Carryable>() != null) { carryingObject = hit.collider.gameObject.GetComponent <Carryable> (); if (carryingObject.carried) { carryingObject = null; return; } carrying = true; CmdCarryItem(hit.collider.gameObject); } }
public override List <DulibaWaitor.Command> CanPlaceItem(Carryable carryable) { List <DulibaWaitor.Command> actions = new List <DulibaWaitor.Command>(); if (carryable.data.garbageValue <= maxFullness - currentFullness || infinite) { actions.Add(new DulibaWaitor.Command() { workTime = 0.5f, actionType = DulibaWaitor.ActionType.Place, name = "throw " + carryable.data.name, image = carryable.data.image, callback = () => { if (!infinite && carryable.data.garbageValue > 0) { if (carryable is Package package) { currentFullness += carryable.data.garbageValue * package.itemsCount; thrownItems.Add(carryable.data.name + " package (" + package.itemsCount + ")"); } else { currentFullness += carryable.data.garbageValue; thrownItems.Add(carryable.data.name); } } }, lateCallback = () => { OnWorkAreaUpdate?.Invoke(this); } });
public bool Give(Carryable obj) { print("Give"); if (!carrySomething || (carrySomething && _carriedObject.IsSeed)) { if (obj.IsSeed) { print("Carrying new seed"); DiscardItem(); _carriedObject = Instantiate(obj, CarryTarget.position, Quaternion.Euler(Vector3.right * -90)); _carriedObject.transform.SetParent(CarryTarget); carrySomething = true; } else { print("Carrying new plant"); Plant plant = obj as Plant; _carriedObject = plant; plant.Harvest(); plant.transform.SetParent(CarryTarget); plant.transform.localPosition = Vector3.zero; plant.transform.localScale *= 3f; carrySomething = true; } return(true); } return(false); }
public void PlaceDown(DulibaWaitor waitor, DulibaInput.Hand hand) { Carryable item = waitor.GetItemsInHand()[0]; DulibaHand h = null; switch (hand) { case DulibaInput.Hand.Left: h = waitor.leftHand; break; case DulibaInput.Hand.Right: h = waitor.rightHand; break; default: return; } for (int i = 0; i < itemSlots; i++) { if (items[i] == null) { items[i] = h.ClearItem(); RefreshVisuals(); return; } } }
public override List<DulibaWaitor.Command> CanPlaceItem(Carryable carryable) { List<DulibaWaitor.Command> actions = new List<DulibaWaitor.Command>(); for (int i = 0; i < pipeline.Length; i++) { var pipe = pipeline[i]; var temp = i; if (pipe.input == null && carryable is Item item) { actions.Add(new DulibaWaitor.Command() { workTime = 0.25f, actionType = DulibaWaitor.ActionType.Place, name = "place on " + (i + 1) + " " + item.data.name, image = item.data.image, callback = () => { item.Unreturn(); StartCraft(item, temp); }, lateCallback = () => { OnWorkAreaUpdate?.Invoke(this); } }); } } return actions; }
public bool Throw() { if (curCarrying == null) { return(false); } curCarrying.GetComponent <Rigidbody>().isKinematic = false; if (curCarrying.oldParent) { curCarrying.transform.SetParent(curCarrying.oldParent); curCarrying.oldParent = null; } //Get VectorToTarget RaycastHit hit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 1000)) { Vector3 ThrowVector = (hit.point - transform.position) * throwPower; curCarrying.GetComponent <Rigidbody>().AddForce(ThrowVector); curCarrying.ActivateThrownMode(); } curCarrying = null; ControlArms(); ChangeColor(); return(true); }
// eat food void OnTriggerEnter2D(Collider2D other) { if (foodCount < 3 && other.gameObject.CompareTag("Pickup")) { Carryable carryable = other.gameObject.GetComponent <Carryable>(); if (!carryable) { Debug.LogError("Tried to pickup something not Carryable"); } else { if (carryable.getType() == 1) // kittens shall not eat each other { AudioSource.PlayClipAtPoint(audioEat, Vector3.zero); Destroy(other.gameObject); foodCount++; foodMeter.setCount(foodCount); // More massive kitty! GetComponent <Rigidbody2D>().mass = foodCount * 2f; gameManager.addScore(playerNum); } } } }
public void OnCarryInput() { if (!_controller.collisions.below) { return; } if (_touching && !_holding) { _originalSize = _collider.size; _originalOffset = _collider.offset; _playerAnimator.Pickup(_touching); _holding = _touching; _holding.Pickup(); var bounds = _collider.bounds; bounds.Encapsulate(_holding.Collider.bounds); ResizeCollider(bounds); } else if (_holding) { _playerAnimator.Putdown(_holding); _holding.PutDown(); _holding = null; _collider.offset = _originalOffset; _collider.size = _originalSize; _controller.CalculateRaySpacing(); } }
private void Carry(Carryable c) { if (curCarrying == c) { return; } curCarrying = c; if (curCarrying) { curCarrying.DeactivateThrownMode(); curCarrying.GetComponent <Rigidbody>().isKinematic = true; curCarrying.oldParent = curCarrying.transform.parent; curCarrying.transform.SetParent(carryConnectioPoint.transform); curCarrying.transform.position = carryConnectioPoint.transform.position; if (curCarrying is Tool) { curCarrying.transform.forward = -gameObject.transform.forward; //TODO: Fix Tool-Models curCarrying.transform.position += ((Tool)curCarrying).carryOffset * curCarrying.transform.forward; } } ControlArms(); ChangeColor(); }
void Throw(Carryable carryable) { if (IsCarrying) { carryable.OnThrown(_camera.transform.forward * ThrowStrength); _carryingObject = null; } }
void Drop(Carryable carryable) { if (IsCarrying) { carryable.OnDropped(); _carryingObject = null; } }
private void OnTriggerEnter2D(Collider2D other) { _touching = other.GetComponent <Carryable>(); if (_touching != null) { Debug.Log("touching carryable"); } }
public void FinishProduct() { if (craftingCoroutine != null) { input = new Carryable(recipe.recipe.output[0].item); recipe = null; craftingCoroutine = null; } }
public void Drop(bool _destroy = false) { m_rb.velocity = transform.positionToWorldCenter(transform.position).normalized * 5f; m_rb.isKinematic = false; CurrentlyCarried = null; if (_destroy) Destroy(gameObject); }
public void AttachObject(Carryable o) { CarriedObject = o; var t = o.transform; t.SetParent(CarryPoint, true); t.DOLocalMove(Vector3.zero, 0.5f).SetEase(Ease.InOutCubic); t.DOLocalRotate(Vector3.zero, 0.5f); }
private void OnTriggerExit(Collider other) { var carryable = other.GetComponent <Carryable>(); if (carryable == _touching) { _touching = null; } }
/// <summary> /// Returns true if can add or false if can't. /// </summary> /// <param name="carryable"></param> /// <returns></returns> public bool Add(Carryable carryable) { if (CanAdd()) { input.Add(carryable); return(true); } return(false); }
private void Awake() { startPos = transform.position; rb2D = GetComponent <Rigidbody2D>(); health = GetComponent <Health>(); boxTrigger = GetComponent <BoxCollider2D>(); carryable = GetComponent <Carryable>(); interactable = GetComponent <Interactable>(); rb2D.isKinematic = false; }
override public void Handle(Carryable _item) { m_currentItemType = ItemType.Prayer; if (_item != null) { MessageKit.post(GameEventTypes.Audio_AltarPlacement); m_currentItemType = _item.Type; } ItemPlaced(); }
public bool PickUp(Carryable c) { if (c == null || curCarrying != null) { return(false); } Carry(c); return(true); }
public void OnProduce(GameObject interactor, GameObject product, Interaction interaction) { Carrier carrier = interactor.GetComponent <Carrier>(); if (carrier != null) { Carryable carryable = product.GetComponent <Carryable>(); carrier.PickUp(carryable); } }
public void dropObj() { if(isCarrying()){ carryable.drop(owner.getCollider()); } if(isUsingWeapons()){ weaponSlots.enableWeapons(); } carryable = null; }
public void throwObj() { if(isCarrying()){ carryable.throwme(owner.getCollider(), throwForceModifier); } if(isUsingWeapons()){ weaponSlots.enableWeapons(); } carryable = null; }
public override List <DulibaWaitor.Command> GetCommands(DulibaWaitor waitor) { List <DulibaWaitor.Command> actions = new List <DulibaWaitor.Command>(); var recipeToDispense = GetRecipeToDispense(); if (recipeToDispense != null) { actions.Add(new DulibaWaitor.Command() { workTime = recipeToDispense.recipe.time, reflected = true, actionType = DulibaWaitor.ActionType.Pickup, name = "pickup " + recipeToDispense.name, image = recipeToDispense.recipe.output.image, pickupIndex = 0, shelf = new ItemDataWithCount(recipeToDispense.recipe.output, 0, 1, false, true), callback = () => { pipeline.Dispense(); }, lateCallback = () => { OnCanvasUpdate?.Invoke(); OnWorkAreaUpdate?.Invoke(this); } }); } if (pipeline.input != null && pipeline.inputAmount > 0) { actions.Add(new DulibaWaitor.Command() { workTime = 3f, actionType = DulibaWaitor.ActionType.Action, prerequisite = PreRequisite.BothHandsEmpty, name = "clean " + name, callback = () => { var garbageBag = new Carryable((ItemScriptableObject)DatabaseManager.GetItem("garbage_bag")); garbageBag.data.garbageValue += (int)(pipeline.input.data.garbageValue * pipeline.inputAmount); pipeline.Clean(); waitor.rightHand.SetItem(garbageBag); }, image = ((ItemScriptableObject)DatabaseManager.GetItem("garbage_bag")).image, lateCallback = () => { OnWorkAreaUpdate?.Invoke(this); } }); } return(actions); }
public PickupUnit(Actor self, Actor cargo) { this.cargo = cargo; carryable = cargo.Trait <Carryable>(); cargoFacing = cargo.Trait <IFacing>(); movement = self.Trait <IMove>(); carryall = self.Trait <Carryall>(); aircraft = self.Trait <Aircraft>(); selfFacing = self.Trait <IFacing>(); state = State.Intercept; }
public void SetObjectOnCarry(Carryable c) { gameState.objectOnCarry = c; if (c != null && c.name == "Wrench") { gameState.wrenchFound = true; } StateChanged(); }
public DeliverUnit(Actor self, CPos destination) { this.self = self; this.destination = destination; carryallFacing = self.Trait<IFacing>(); carryall = self.Trait<Carryall>(); body = self.Trait<BodyOrientation>(); carryable = carryall.Carryable.Trait<Carryable>(); positionable = carryall.Carryable.Trait<IPositionable>(); carryableFacing = carryall.Carryable.Trait<IFacing>(); state = State.Transport; }
public void pickUpObj(Carryable carryable) { if(isCarrying()){ dropObj(); } carryable.pickUp(owner); carryable.transform.SetParent(transform); carryable.transform.position = this.transform.position; carryable.transform.localScale = Vector3.one; this.carryable = carryable; if(isUsingWeapons()){ weaponSlots.disableWeapons(); } }
public PickupUnit(Actor self, Actor cargo, int delay) { this.cargo = cargo; this.delay = delay; carryable = cargo.Trait<Carryable>(); carryableFacing = cargo.Trait<IFacing>(); carryableBody = cargo.Trait<BodyOrientation>(); movement = self.Trait<IMove>(); carryall = self.Trait<Carryall>(); carryallFacing = self.Trait<IFacing>(); state = State.Intercept; }
override public void Handle(Carryable _item) { if ( _item == null && !m_HasDroppedToday ) { Carryable itemToDrop = (Carryable)Instantiate(m_ItemToDrop, transform.position + transform.positionToWorldCenter(transform.position).normalized * 2, Quaternion.identity); itemToDrop.name = m_ItemToDrop.name; itemToDrop.GetComponent<Rigidbody2D>().velocity = transform.positionToWorldCenter(transform.position).normalized * 5f; Interactable.NearbyInteractable = null; m_HasDroppedToday = true; enabled = false; m_fNotify.FObject = null; triggerDropSound(); } }
public virtual void Carry() { if(Nearby == this) { if(CurrentlyCarried != null) { CurrentlyCarried.Drop(); } MessageKit.post(GameEventTypes.Audio_Pickup); m_fNotify.FObject = transform; CurrentlyCarried = this; Nearby = null; m_rb.isKinematic = true; MessageQueue.PostMessage("Picked up 1 " + name + " (F to drop)"); } }
void ThrowPlayer() { if (carryingPlayer >= 0) { CmdThrowPlayer (carryingPlayer, transform.localScale.x); carrying = false; carryingPlayer = -1; } else { // we are throwing an object CmdThrowCarryable(carryingObject.gameObject); carrying = false; carryingObject = null; } }
void CarryPlayer() { float spriteOffset = 0.2f; float pickupDist = 0.5f; Vector2 start = playerBody.position + transform.localScale.x * Vector2.right * spriteOffset; Vector2 dir = transform.localScale.x * Vector2.right * pickupDist; Debug.DrawRay (start, dir, Color.blue, 1f); RaycastHit2D hit = Physics2D.Raycast (start, dir, pickupDist); if (hit.collider != null && hit.collider.tag == "Player") { carrying = true; carryingPlayer = hit.collider.gameObject.GetComponent<NetSetup> ().playerNum; CmdInitiatePickup (networkInfo.playerNum, carryingPlayer); } else if (hit.collider != null && hit.collider.gameObject.GetComponent<Carryable>() != null) { carryingObject = hit.collider.gameObject.GetComponent<Carryable> (); if (carryingObject.carried) { carryingObject = null; return; } carrying = true; CmdCarryItem (hit.collider.gameObject); } }
void CmdCarryItem(GameObject objToCarry) { carryingObject = objToCarry.GetComponent<Carryable> (); carryingObject.SetCarrying (GetComponent<NetSetup>().playerNum); }
abstract public void Handle(Carryable _item);
void pickUpCarryable(Carryable carryable) { carrySlot.pickUpObj(carryable); }
void Start() { m_carryable = transform.parent.GetComponent<Carryable>(); m_fnotify = GameObject.FindObjectOfType<FNotification>(); }