void showIconItemBuff(string id, EItemState state, int numberWave) { GameObject itemBuff = MonoBehaviour.Instantiate(Resources.Load <GameObject> ("Prefab/Effect/Item Buff")) as GameObject; itemBuff.transform.parent = PlayManager.Instance.itemBuffTemp.transform; itemBuff.transform.localScale = Vector3.one; //set dimension UISprite sprite = itemBuff.GetComponent <UISprite> (); sprite.keepAspectRatio = UIWidget.AspectRatioSource.Free; sprite.SetDimensions(sprite.mainTexture.width, sprite.mainTexture.height); sprite.keepAspectRatio = UIWidget.AspectRatioSource.BasedOnHeight; itemBuff.GetComponent <UIStretch> ().container = waveTemp; //set anchor sprite UIAnchor anchor = itemBuff.GetComponent <UIAnchor> (); anchor.container = waveTemp; anchor.relativeOffset = new Vector2(PlayConfig.AnchorItemBuffStart.x, PlayConfig.AnchorItemBuffStart.y - listItemBuff.Count * PlayConfig.AnchorItemBuffDistanceY); //set anchor label itemBuff.transform.GetChild(0).GetComponent <UIAnchor> ().enabled = true; //set icon and wave ItemBuffController itemBuffController = itemBuff.GetComponent <ItemBuffController> (); itemBuffController.ID = id; itemBuffController.State = state; itemBuffController.Waves = numberWave; listItemBuff.Add(id, itemBuff); }
void checkItemBuffAvailable() { if (ItemManager.Instance.listItemBuff.Count == 0) { return; } if (WaveCurrent >= 2) { ArrayList listToDestroy = new ArrayList(); foreach (System.Collections.Generic.KeyValuePair <string, GameObject> iterator in ItemManager.Instance.listItemBuff) { ItemBuffController itemBuffController = iterator.Value.GetComponent <ItemBuffController>(); itemBuffController.Waves--; if (itemBuffController.Waves == 0) { listToDestroy.Add(iterator.Key); } } bool hasUpdate = false; foreach (var i in listToDestroy) { GameObject obj = ItemManager.Instance.listItemBuff[i.ToString()]; ItemManager.Instance.listItemBuff.Remove(i.ToString()); //remove from list ItemManager.Instance.listItemState.Remove(obj.GetComponent <ItemBuffController>().State); Destroy(obj); //delete game object hasUpdate = true; } if (hasUpdate) { PlayManager.Instance.resetTowerBonus(); PlayManager.Instance.towerInfoController.checkTowerBonus(); ItemManager.Instance.resetItemBuff(); } } }