Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
	// 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();
						}
					}
				}
			}

		
		}
	}