public DroppedItem CreateItem(Vector2 pos, int lifeStoneAmount, int goldRate) { float droppedLifeStoneOffset = 0.33f; DroppedItem temp = Instantiate(droppedItem, pos, Quaternion.identity); LifeStoneInfo lifeStoneInfo = LifeStoneManager.Instance.CreateLifeStoneShape(lifeStoneAmount, goldRate); temp.lifeStoneInfo = lifeStoneInfo; for (int y = 0; y < lifeStoneInfo.size.y; y++) { for (int x = 0; x < lifeStoneInfo.size.x; x++) { if ((LifeStoneType)int.Parse(lifeStoneInfo.lifeStonePos[y * lifeStoneInfo.size.x + x].ToString()) != LifeStoneType.NULL) { Instantiate(droppedLifeStone, new Vector2(x, y) * droppedLifeStoneOffset, Quaternion.identity, temp.transform); } } } temp.GetComponent <BoxCollider2D>().size = (Vector2)lifeStoneInfo.size * droppedLifeStoneOffset; temp.GetComponent <BoxCollider2D>().offset = (lifeStoneInfo.size - new Vector2(1, 1)) / 2 * droppedLifeStoneOffset; temp.transform.Find("GroundCollider").GetComponent <BoxCollider2D>().size = (Vector2)lifeStoneInfo.size * droppedLifeStoneOffset; temp.transform.Find("GroundCollider").GetComponent <BoxCollider2D>().offset = (lifeStoneInfo.size - new Vector2(1, 1)) / 2 * droppedLifeStoneOffset; temp.isWeapon = false; return(temp); }
void OnTriggerStay2D(Collider2D col) { DroppedItem di = col.GetComponent <DroppedItem>(); Entity e = col.GetComponent <Entity>(); Block b = col.GetComponent <Block>(); if (di != null) { di.GetComponent <Rigidbody2D>().velocity = (Vector2)transform.right * transportSpeed; s.color = effect; } else if (e != null) { e.GetComponent <Rigidbody2D>().position += (Vector2)transform.right * transportSpeed * Time.deltaTime; e.GetComponent <Rigidbody2D>().velocity *= 0.9f; //e.GetComponent<Rigidbody2D>().position = Vector3.Lerp(e.GetComponent<Rigidbody2D>().position, transform.position, pullToCenterSpeed * Time.deltaTime); } else if ((b != null && b.fluid && moveLiquids) || (b != null && b.blockGravity && moveGravityBlocks)) { if (liquidTransportCooldown <= 0) { liquidTransportCooldown = 1 / liquidTransportRate; b.transform.position += transform.right; } } }
public void ActivateItem(DroppedItem item) { var rigidbody = item.GetComponent <Rigidbody>(); rigidbody.isKinematic = false; rigidbody.detectCollisions = true; inactiveItems.Remove(item); activeItems.Add(item); }
void OnTriggerStay2D(Collider2D col) { DroppedItem di = col.GetComponent <DroppedItem>(); Entity e = col.GetComponent <Entity>(); if (di != null) { di.GetComponent <Rigidbody2D>().position = (Vector2)transform.position; di.GetComponent <Rigidbody2D>().velocity = Vector2.zero; Vector2 a = Vector2.zero; Collider2D b = Physics2D.OverlapBox((Vector2)transform.position + (Vector2)transform.up, Vector2.one * .9f, 0, 1021); Collider2D c = Physics2D.OverlapBox((Vector2)transform.position + (Vector2)transform.right, Vector2.one * .9f, 0, 1021); Collider2D d = Physics2D.OverlapBox((Vector2)transform.position - (Vector2)transform.up, Vector2.one * .9f, 0, 1021); Collider2D[] sides = new Collider2D[] { b, c, d }; List <Itemduct> possibleOnes = new List <Itemduct>(); int i = 0; foreach (Collider2D side in sides) { if (side != null) { if (side.GetComponent <Itemduct>() != null) { possibleOnes.Add(side.GetComponent <Itemduct>()); } } i++; } if (possibleOnes.Count < 1) { return; } a = possibleOnes[(int)Mathf.Floor(Random.Range(0, possibleOnes.Count))].transform.position; di.GetComponent <Rigidbody2D>().position = a; } }
public DroppedItem CreateItem(Vector2 pos, Weapon wp) { if (wp != null) { DroppedItem temp = Instantiate(droppedItem, pos, Quaternion.identity); temp.weapon = wp; temp.GetComponent <SpriteRenderer>().sprite = wp.info.sprite; temp.isWeapon = true; return(temp); } else { return(null); } }
public override void DropItem() //Only Boss! { DropItemObject.GetComponent <DroppedItem>().dropItemCode = myMonsterInfo.monsterDropItemCode; //-----------------------------------아이템 드랍----------------------------------- DroppedItem item = Instantiate(DropItemObject).GetComponent <DroppedItem>(); SpawnCode mDropItemCode = myMonsterInfo.monsterDropItemCode; item.name = myMonsterInfo.monsterName + " 드롭 아이템:" + mDropItemCode.ToString(); int ranX = Random.Range(-100, 101); //min ~ max-1 int ranY = Random.Range(100, 201); //min ~ max-1 item.transform.position = GetComponent <Transform>().position; item.GetComponent <Rigidbody2D>().AddForce(new Vector3(ranX, ranY, 0)); //위 방향으로 랜덤 발사 }
public void AddFood(bool allChicken) { if (wait) { return; } wait = true; for (int i = 0; i < ItemList.Count; i++) { if (ItemList[i] != null) { Item removeitem = ItemList[i]; ItemList.Remove(removeitem); removeitem.DoRemove(); } } for (int u = 0; u < (oven.inventory.itemList.Count); u++) { if (oven.inventory.itemList[u] == null) { continue; } if (oven.inventory.itemList[u].info == null) { continue; } var itemid = oven.inventory.itemList[u].info.itemid; if (itemid == null) { continue; } if (itemid == 3655341 || itemid == 1436001773) { continue; } var pos = entity.transform.position + new Vector3(0, 0.8f, 0); var ang = entity.transform.eulerAngles; //itemAmount.itemDef.itemid var appear = oven.inventory.itemList[u].info.itemid; if (allChicken) { //burned if (itemid == -225234813 || itemid == -2066726403 || itemid == 1711323399 || itemid == -1014825244 || itemid == 968732481 || itemid == -1714986849) { appear = 1711323399; } //cooked if (itemid == -2043730634 || itemid == 1734319168 || itemid == -202239044 || itemid == -2078972355 || itemid == -991829475 || itemid == 991728250 || itemid == -1691991080) { appear = 1734319168; } //uncooked if (itemid == 1325935999 || itemid == -1658459025 || itemid == -322501005 || itemid == -533484654 || itemid == -642008142 || itemid == -253819519 || itemid == 179448791) { appear = -1658459025; } //spoiled if (itemid == 431617507 || itemid == 661790782 || itemid == -726947205) { appear = -726947205; } } Item item = ItemManager.CreateByItemID(appear, 1, (ulong)0); ItemList.Add(item); DroppedItem food = item.Drop(pos, Vector3.zero).GetComponent <DroppedItem>(); food.SetParent(entity); var offset = 0f; var offset2 = 0f; if (u >= 6) { offset = 0.2f; offset2 = 6; } food.transform.localPosition = new Vector3(-0.1f + offset, 0.8f, -0.38f + (u - offset2) * 0.15f); food.transform.eulerAngles = ang; food.transform.hasChanged = true; food.SendNetworkUpdateImmediate(); food.GetComponent <Rigidbody>().isKinematic = true; food.GetComponent <Rigidbody>().useGravity = false; food.allowPickup = false; food.GetComponent <Rigidbody>().detectCollisions = true; food.CancelInvoke((Action)Delegate.CreateDelegate(typeof(Action), food, "IdleDestroy")); } coroutine = Wait(5); StartCoroutine(coroutine); }
void DestroyAnyTracker() { SetMapMarker(Vector3.zero); Tracker tracker = containerAK?.GetComponent <Tracker>() ?? holdingPlayer?.GetComponent <Tracker>() ?? droppedAK?.GetComponent <Tracker>(); if (tracker != null) { UnityEngine.Object.Destroy(tracker); } }