public void RepositionForCell(LayoutCellInfo info) { directionVector = endTransform.position - beginTransform.position; scrollLength = directionVector.magnitude - barSprite.GetBounds().size.x *barSprite.transform.lossyScale.x; directionVector.Normalize(); barHalfSize = barSprite.GetBounds().size.x * 0.5f * barSprite.transform.lossyScale.x; ScrollView_OnContentPositionChanged(); }
public float GetDistanceToPoint(Vector2 point) { Bounds bounds = ChestSprite.GetBounds(); bounds.SetMinMax(bounds.min + ChestSprite.transform.position, bounds.max + ChestSprite.transform.position); float num = Mathf.Max(Mathf.Min(point.x, bounds.max.x), bounds.min.x); float num2 = Mathf.Max(Mathf.Min(point.y, bounds.max.y), bounds.min.y); return(Mathf.Sqrt((point.x - num) * (point.x - num) + (point.y - num2) * (point.y - num2))); }
private void Recycle(tk2dBaseSprite o) { var trans = o.transform; var size = o.GetBounds().size; var position = nextPosition; _batch.Enqueue(o); trans.localPosition = position; nextPosition.x += size.x; }
private void GrabbingUpdate(bool isMotion, bool isRetract) { mGrabCurDelay += Time.deltaTime; Vector3 neckPos = transform.position; Vector2 dir = (isRetract || mGrabTarget == null ? mGrabDest : mGrabTarget.position) - neckPos; float len = dir.magnitude; dir /= len; len -= grabLenOfs; bool done = mGrabCurDelay >= grabDelay || !isMotion; float curLen; if (isRetract) { curLen = done ? 0.0f : Ease.Out(mGrabCurDelay, grabDelay, len, -len); } else { curLen = done ? len : Ease.In(mGrabCurDelay, grabDelay, 0.0f, len); } transform.up = dir; //move attacher Vector3 headPos = headAttach.position; Vector2 newHeadPos = neckPos; newHeadPos += dir * curLen; headAttach.position = new Vector3(newHeadPos.x, newHeadPos.y, headPos.z); //properly scale neck sprite.scale = Vector3.one; Bounds neckBounds = sprite.GetBounds(); Vector3 newNeckScale = Vector3.one; newNeckScale.y = curLen / neckBounds.size.y; sprite.scale = newNeckScale; if (isMotion && done) { SwitchState(isRetract ? State.Retracted : State.Grabbed); } }
private IEnumerator HandleSoldItem(PickupObject targetItem) { if (!targetItem) { m_currentlySellingAnItem = false; yield break; } while (m_currentlySellingAnItem) { yield return(null); } m_currentlySellingAnItem = true; targetItem.IsBeingSold = true; float magnitude = (targetItem.sprite.WorldCenter - specRigidbody.UnitCenter).magnitude; if (!targetItem.sprite || magnitude > 1.8f) { targetItem.IsBeingSold = false; m_currentlySellingAnItem = false; yield break; } IPlayerInteractable ixable = null; if (targetItem is PassiveItem) { PassiveItem passiveItem = targetItem as PassiveItem; passiveItem.GetRidOfMinimapIcon(); ixable = (targetItem as PassiveItem); } else if (targetItem is Gun) { Gun gun = targetItem as Gun; gun.GetRidOfMinimapIcon(); ixable = (targetItem as Gun); } else if (targetItem is PlayerItem) { PlayerItem playerItem = targetItem as PlayerItem; playerItem.GetRidOfMinimapIcon(); ixable = (targetItem as PlayerItem); } if (ixable != null) { RoomHandler.unassignedInteractableObjects.Remove(ixable); GameManager.Instance.PrimaryPlayer.RemoveBrokenInteractable(ixable); } float elapsed = 0f; float duration = 0.5f; Vector3 startPos = targetItem.transform.position; Vector3 finalOffset = Vector3.zero; tk2dBaseSprite targetSprite = targetItem.GetComponentInChildren <tk2dBaseSprite>(); if (targetSprite) { finalOffset = targetSprite.GetBounds().extents; } while (elapsed < duration) { elapsed += BraveTime.DeltaTime; if (!targetItem || !targetItem.transform) { m_currentlySellingAnItem = false; yield break; } targetItem.transform.localScale = Vector3.Lerp(Vector3.one, new Vector3(0.01f, 0.01f, 1f), elapsed / duration); targetItem.transform.position = Vector3.Lerp(startPos, startPos + new Vector3(finalOffset.x, 0f, 0f), elapsed / duration); yield return(null); } if (!targetItem || !targetItem.transform) { m_currentlySellingAnItem = false; yield break; } SellPitDweller.SendPlaymakerEvent("playerSoldSomething"); int sellPrice = Mathf.Clamp(Mathf.CeilToInt(targetItem.PurchasePrice * SellValueModifier), 0, 200); if (targetItem.quality == PickupObject.ItemQuality.SPECIAL || targetItem.quality == PickupObject.ItemQuality.EXCLUDED) { sellPrice = 3; } LootEngine.SpawnCurrency(targetItem.sprite.WorldCenter, sellPrice, false); m_thingsSold++; if (targetItem.PickupObjectId == GlobalItemIds.MasteryToken_Castle || targetItem.PickupObjectId == GlobalItemIds.MasteryToken_Catacombs || targetItem.PickupObjectId == GlobalItemIds.MasteryToken_Gungeon || targetItem.PickupObjectId == GlobalItemIds.MasteryToken_Forge || targetItem.PickupObjectId == GlobalItemIds.MasteryToken_Mines) { m_masteryRoundsSold++; } if (targetItem is Gun && targetItem.GetComponentInParent <DebrisObject>()) { Destroy(targetItem.transform.parent.gameObject); } else { Destroy(targetItem.gameObject); } if (m_thingsSold >= 3 && m_masteryRoundsSold > 0) { StartCoroutine(HandleSellPitOpening()); } m_currentlySellingAnItem = false; yield break; }