public void ReturnToPool(ItemBehaviour inObject) { ItemBehaviour item = inObject.GetComponent <ItemBehaviour>(); if (item == null) { throw new UnityException(string.Format("GameObject {0} is not recognised as an Item and cannot be returned to a pool!", inObject.name)); } ItemDefinition definition = item.ItemDefinition; if (definition == null) { throw new UnityException(string.Format("Item component on GameObject {0} does not have a valid ItemDefinition!", inObject.name)); } assertKeyExists(definition.itemName); // Debug.Log("returned to pool", inObject.gameObject); inObject.SetSpriteLayerOrder(0); inObject.transform.SetParent(poolRoot); inObject.transform.localPosition = Vector3.zero; inObject.transform.localRotation = Quaternion.identity; inObject.gameObject.SetActive(false); objectPools[definition.itemName].Enqueue(inObject); }
public void SpawnItem(ItemDefinition item, Vector2Int spawnPosition) { ItemBehaviour instantiatedItem = _itemBehaviourFactory.Create(); instantiatedItem.GetComponent <SpriteRenderer>().sprite = item.Sprite; instantiatedItem.ItemData.ItemType = item.ItemType; instantiatedItem.ItemData.ItemDefinition = item; Vector2Int positionToPlaceItem = GetPositionToPlaceItem(spawnPosition); instantiatedItem.ItemData.LogicalPosition = positionToPlaceItem; instantiatedItem.RefreshWorldPosition(); }
public void SpawnWeapon(WeaponDefinition weaponToSpawn, Vector2Int spawnPosition, ItemDefinition previousWeapon = null) { ItemBehaviour instantiatedItem = _itemBehaviourFactory.Create(); instantiatedItem.GetComponent <SpriteRenderer>().sprite = weaponToSpawn.Sprite; instantiatedItem.ItemData.ItemType = ItemType.Weapon; instantiatedItem.ItemData.WeaponDefinition = weaponToSpawn; instantiatedItem.ItemData.ItemDefinition = previousWeapon; Vector2Int positionToPlaceItem = GetPositionToPlaceItem(spawnPosition); instantiatedItem.ItemData.LogicalPosition = positionToPlaceItem; instantiatedItem.RefreshWorldPosition(); }
/// <summary> /// Pick up the given item, dropping any existing item in the slot, and update the slot sprite. /// </summary> /// <param name="itemBehaviour">The item to be added to the slot.</param> public void PickupItem(ItemBehaviour itemBehaviour) { if (itemBehaviour == null) { return; } if (ItemBehaviour != null) { DropItem(); } ItemBehaviour = itemBehaviour; SetSprite(ItemBehaviour.GetComponent <SpriteRenderer>().sprite, ItemBehaviour.transform.localScale); ItemBehaviour.OnPickupItem(this); }
// real time public void updateItemRealTime(){ for (int i = 0; i < itemBehaviourGameObject.transform.childCount; i++) { itemBehaviour = itemBehaviourGameObject.transform.GetChild (i).GetComponent<ItemBehaviour> (); if (m_x == itemBehaviour.m_x && m_y == itemBehaviour.m_y) { if (String.Compare (itemBehaviour.name, "TRAP", false) == 0) { finishPosition = new Vector3(itemBehaviour.m_x, itemBehaviour.m_y+1,1); AudioSource.PlayClipAtPoint(attackSoundC, transform.position); itemBehaviour.trap (); itemBehaviour.remove (); inTrap=true; anim.SetBool ("move", false); up = down = right = left = false; } } if (m_x == itemBehaviour.m_x && m_y == itemBehaviour.m_y) { if(String.Compare (itemBehaviour.name, "GEM", false) == 0){ //not get if is caught if(!itemBehaviour.isCaught){ AudioSource.PlayClipAtPoint(gemCollectedSound, transform.position); gem++; itemBehaviour.isCaught=true; itemBehaviour.transform.Search ("CFXM2_ShinyItem Cyan").GetComponent<Renderer> ().enabled = false; itemBehaviour.transform.Search ("CFXM2_ShinyItem Cyan").GetComponent<ParticleSystem>().enableEmission = false; itemBehaviour.transform.Search ("CFXM2_ShinyItem Cyan").GetComponent<ParticleSystem>().Stop (); itemBehaviour.GetComponent<Renderer> ().enabled = false; }else{ itemBehaviour.transform.Search ("CFXM2_ShinyItem").GetComponent<ParticleSystem>().loop = true; if(itemBehaviour.isFinish){ finishMap(); } } } if(String.Compare (itemBehaviour.name, "KEY", false) == 0){ //not get if is caught if(!itemBehaviour.isCaught){ AudioSource.PlayClipAtPoint(keyCollectedSound, transform.position); haveKey = true; itemBehaviour.isCaught=true; objKey.GetComponent<key>().setVisible(true); itemBehaviour.transform.Search ("CFXM2_ShinyItem").GetComponent<Renderer> ().enabled = false; itemBehaviour.transform.Search ("CFXM2_ShinyItem").GetComponent<ParticleSystem>().enableEmission = false; itemBehaviour.transform.Search ("CFXM2_ShinyItem").GetComponent<ParticleSystem>().Stop (); itemBehaviour.GetComponent<Renderer> ().enabled = false; }else{ itemBehaviour.transform.Search ("CFXM2_ShinyItem").GetComponent<ParticleSystem>().loop = true; if(itemBehaviour.isFinish){ finishMap(); } } } } } }