void initSkill() { //Stretch skill selected float ratio = GameSupportor.getRatioAspect(PlayDragonInfoController.Instance.tempSkill, PlayDragonInfoController.Instance.renderUlti) * 100; PlayDragonInfoController.Instance.renderUlti.transform.localScale = new Vector3(ratio, ratio, ratio); bool hasUlti = false; string branch = PlayerInfo.Instance.dragonInfo.id; int length = PlayDragonInfoController.Instance.Skills.Length; int count = ReadDatabase.Instance.DragonInfo.Player[branch].Skills.Count - 1; if (ReadDatabase.Instance.DragonInfo.Player[branch].Skills.Count > 0) { for (int i = 0; i < length; i++) { PlayDragonInfoController.Instance.Skills[i].gameObject.SetActive(true); } foreach (DragonPlayerSkillData skillData in ReadDatabase.Instance.DragonInfo.Player[branch].Skills) { PlayDragonInfoSkillController skill = PlayDragonInfoController.Instance.Skills[count].GetComponent <PlayDragonInfoSkillController>(); SkillData data = ReadDatabase.Instance.SkillInfo[skillData.ID.ToUpper()]; skill.ID = skillData.ID; skill.CooldownTime = data.Cooldown; skill.Type = data.Type; skill.Ability = data.Ability; skill.ManaValue = data.Mana; skill.initalize(); string path = "Image/Dragon/Player/" + ConvertSupportor.convertUpperFirstChar(branch) + "/Skill/" + skillData.ID; skill.sprite.mainTexture = Resources.Load <Texture>(path); count--; if (skillData.Ulti) { PlayDragonInfoController.Instance.renderUlti.gameObject.SetActive(true); UIAnchor anchor = PlayDragonInfoController.Instance.renderUlti.GetComponent <UIAnchor>(); anchor.container = skill.gameObject; anchor.enabled = true; hasUlti = true; } } } if (hasUlti == false && PlayDragonInfoController.Instance.renderUlti.gameObject.activeSelf) { PlayDragonInfoController.Instance.renderUlti.gameObject.SetActive(false); } count = ReadDatabase.Instance.DragonInfo.Player[branch].Skills.Count; if (count < length) { for (int i = count; i < length; i++) { PlayDragonInfoController.Instance.Skills[i].gameObject.SetActive(false); } } }
void initalize() { int i = 0; int index = -1; foreach (System.Collections.Generic.KeyValuePair <string, DragonPlayerData> iterator in ReadDatabase.Instance.DragonInfo.Player) { SSelectDragonContainer container = dragons[i]; container.IDBranch = iterator.Key; container.Branch.spriteName = "icon-branch-" + iterator.Key.ToLower(); container.Icon.mainTexture = Resources.Load <Texture>("Image/Dragon/Icon/dragon-" + iterator.Key.ToLower()); if (PlayerInfo.Instance.dragonInfo.id.Equals(iterator.Key)) { index = i; } i++; } //Stretch skill selected float ratio = GameSupportor.getRatioAspect(tempSkill.gameObject, renderUlti) * 100; renderUlti.transform.localScale = new Vector3(ratio, ratio, ratio); selected.transform.position = dragons[index].transform.position; updateAttribute(PlayerInfo.Instance.dragonInfo.id); updateSkill(PlayerInfo.Instance.dragonInfo.id); }
public void loadEnemy() { AutoDestroy.destroyChildren(selectedRegionPanel); infoTower.gameObject.SetActive(false); infoEnemy.gameObject.SetActive(true); guideType = UIGuideButton.ENEMY; target = null; //set grid UIGrid grid = selectedRegionPanel.GetComponent <UIGrid>(); grid.maxPerLine = PlayConfig.GridGuideEnemy.MaxPerLine; grid.cellWidth = PlayConfig.GridGuideEnemy.CellWidth; grid.cellHeight = PlayConfig.GridGuideEnemy.CellHeight; grid.enabled = true; grid.repositionNow = true; EnemyController enemyController = Resources.Load <GameObject>("Prefab/Enemy/Enemy").GetComponent <EnemyController>(); int length = enemies.Length; foreach (System.Collections.Generic.KeyValuePair <string, EnemyData> iterator in ReadDatabase.Instance.EnemyInfo) { GameSupportor.transferEnemyData(enemyController, iterator.Value); GameObject enemyGuide = Instantiate(PlayManager.Instance.modelPlay.EnemyGuide) as GameObject; enemyGuide.transform.parent = selectedRegionPanel.transform; enemyGuide.name = enemyController.name; enemyGuide.GetComponent <UIStretch>().container = selectedRegionPanel; EnemyGuideController controller = enemyGuide.GetComponent <EnemyGuideController>(); controller.ID = enemyController.ID; controller.visible = PlayerInfo.Instance.listEnemy[enemyController.ID]; //set icon if (controller.visible) { controller.Icon.mainTexture = Resources.Load <Texture>("Image/Enemy/00 Guide Icon/" + enemyController.ID.ToLower()); } if (target == null && controller.visible) { target = enemyGuide; } } if (target != null) { target.GetComponent <EnemyGuideController>().setColor(true); } loadEnemyInfo(); }
void setEnemyArray() { int length = ReadDatabase.Instance.EnemyInfo.Count; enemies = new string[length]; int t = 0; foreach (System.Collections.Generic.KeyValuePair <string, EnemyData> iterator in ReadDatabase.Instance.EnemyInfo) { enemies[t] = iterator.Key; t++; } int min; GameObject model = Resources.Load <GameObject>("Prefab/Enemy/Enemy"); EnemyController modelController = model.GetComponent <EnemyController>(); EnemyController enemy1, enemy2; for (int i = 0; i < length - 1; i++) { min = i; for (int j = i + 1; j < length; j++) { GameSupportor.transferEnemyData(modelController, ReadDatabase.Instance.EnemyInfo[enemies[i]]); enemy1 = modelController; GameSupportor.transferEnemyData(modelController, ReadDatabase.Instance.EnemyInfo[enemies[j]]); enemy2 = modelController; if (enemy1.level > enemy2.level) { min = j; string swap = enemies[i]; enemies[i] = enemies[min]; enemies[min] = swap; } else if (enemy1.level == enemy2.level) { if (enemy1.attribute.HP.Max > enemy2.attribute.HP.Max) { min = j; string swap = enemies[i]; enemies[i] = enemies[min]; enemies[min] = swap; } } } } }
IEnumerator initEnemy(string id_enemy, int number_enemy, float time_enemy) { GameObject model = Resources.Load <GameObject>("Prefab/Enemy/Enemy"); EnemyController enemyController = model.GetComponent <EnemyController>(); GameSupportor.transferEnemyData(enemyController, ReadDatabase.Instance.EnemyInfo[id_enemy]); int routine = Random.Range(0, WaveController.Instance.enemyRoutine.Length); int countEnemy = 0; for (int i = 0; i < number_enemy; i++) { GameObject enemy = Instantiate(model, WaveController.Instance.enemyStartPos[routine].transform.position, Quaternion.identity) as GameObject; enemy.transform.parent = WaveController.Instance.enemyStartPos[routine].transform; enemy.transform.localScale = Vector3.one; enemy.transform.localPosition = Vector3.zero; enemy.GetComponentInChildren <SpriteRenderer>().material.renderQueue = GameConfig.RenderQueueEnemy - WaveController.Instance.countEnemy; EnemyController ec = enemy.GetComponent <EnemyController>(); ec.stateMove.PathGroup = WaveController.Instance.enemyRoutine[routine].transform; ec.waveID = 0; //Set depth cho thanh hp, xu ly thanh mau xuat hien sau phai? ve~ sau foreach (Transform health in enemy.transform) { if (health.name == PlayNameHashIDs.Health) { foreach (Transform child in health) { if (child.name == PlayNameHashIDs.Foreground) { child.GetComponent <UISprite>().depth -= countEnemy; } else if (child.name == PlayNameHashIDs.Background) { child.GetComponent <UISprite>().depth -= (countEnemy + 1); } } break; } } countEnemy++; if (countEnemy >= 100) { countEnemy = 0; } yield return(new WaitForSeconds(time_enemy)); } }
void initToGame() { GameObject model = Resources.Load <GameObject>("Prefab/Enemy/Enemy"); EnemyController enemyController = model.GetComponent <EnemyController>(); //except money GameSupportor.transferEnemyData(enemyController, ReadDatabase.Instance.EnemyInfo[this.enemyBluetoothController.ID]); if (PlayInfo.Instance.Money < enemyController.money) { return; } PlayInfo.Instance.Money -= enemyController.money; int routine = Random.Range(0, WaveController.Instance.enemyRoutine.Length); GameObject enemy = Instantiate(model, WaveController.Instance.enemyStartPos [routine].transform.position, Quaternion.identity) as GameObject; checkVisibleEnemy(enemyController); enemy.transform.parent = WaveController.Instance.enemyStartPos [routine].transform; enemy.transform.localScale = Vector3.one; enemy.transform.localPosition = Vector3.zero; //enemy.GetComponentInChildren<SpriteRenderer> ().material.renderQueue = GameConfig.RenderQueueEnemy - ; EnemyController ec = enemy.GetComponent <EnemyController> (); ec.stateMove.PathGroup = WaveController.Instance.enemyRoutine [routine].transform; //Debug.Log (WaveController.Instance.enemyRoutine [routine]); //Set depth cho thanh hp, xu ly thanh mau xuat hien sau phai? ve~ sau foreach (Transform health in enemy.transform) { if (health.name == PlayNameHashIDs.Health) { foreach (Transform child in health) { if (child.name == PlayNameHashIDs.Foreground) { child.GetComponent <UISprite> ().depth -= 1; } else if (child.name == PlayNameHashIDs.Background) { child.GetComponent <UISprite> ().depth -= (1 + 1); } } break; } } }
public void initCollider(int frameLength, float timeFrame) { if (!hasCollider) { return; } Vector2 spritePivot = GameSupportor.getPivotSpriteRenderer(controller.gameObject); switch (colliderType) { #region BOX case ESkillCollider.BOX: BoxCollider boxCollider = controller.skillAnimation.gameObject.AddComponent <BoxCollider>(); boxCollider.isTrigger = true; if (!colliderValue.ToString().Trim().Equals("full")) { string[] ss = colliderValue.ToString().Split('/'); boxCollider.isTrigger = true; boxCollider.center = new Vector2(0.5f - spritePivot.x + float.Parse(ss[0]), 0.5f - spritePivot.y + float.Parse(ss[1])); boxCollider.size = new Vector2(float.Parse(ss[2]), float.Parse(ss[3])); } else { boxCollider.size = new Vector2(15.0f, 15.0f); //if (controller.StateAction == ESkillAction.ARMAGGEDDON) //{ // UIWidget widget = controller.skillAnimation.gameObject.AddComponent<UIWidget>(); // foreach(Transform child in PlayManager.Instance.tempInit.cameraRender.transform) // { // if(child.name.Equals("Background")) // { // UITexture texture = child.transform.GetChild(0).GetComponent<UITexture>(); // widget.SetDimensions(texture.width, texture.height); // break; // } // } // widget.autoResizeBoxCollider = true; //} } if (colliderMoveTo != null) { string[] ss = colliderMoveTo.ToString().Split('/'); Vector2 centerTo = new Vector2(float.Parse(ss[0].ToString()), float.Parse(ss[1].ToString())); Vector2 sizeTo = new Vector2(float.Parse(ss[2].ToString()), float.Parse(ss[3].ToString())); controller.skillAnimation.StartCoroutine(runBoxCollider(boxCollider, centerTo, sizeTo, frameLength, timeFrame)); } break; #endregion #region CAPSULE case ESkillCollider.CAPSULE: break; #endregion #region SPHERE case ESkillCollider.SPHERE: string[] values = colliderValue.ToString().Split('/'); SphereCollider sphereCollider = controller.skillAnimation.gameObject.AddComponent <SphereCollider>(); sphereCollider.isTrigger = true; sphereCollider.center = Vector3.zero; sphereCollider.radius = float.Parse(values[0]); sphereCollider.center = new Vector2(0.5f - spritePivot.x, 0.5f - spritePivot.y); controller.skillAnimation.StartCoroutine(runSphereCollider(sphereCollider, float.Parse(values[1]), frameLength, timeFrame)); break; #endregion } controller.skillAnimation.gameObject.AddComponent <SkillDamage>(); }
void getDragonHouseDatabase() { GameSupportor.transferHouseDragonData(DragonHouse.GetComponent <HouseController>(), 1); }
public void loadEnemyInfo() { if (target != null) { //AutoDestroy.destroyChildren(InfoPanel, "Name"); //active tower name if (!infoName.gameObject.activeSelf) { infoName.gameObject.SetActive(true); } EnemyGuideController targetController = target.GetComponent <EnemyGuideController>(); int length = ReadDatabase.Instance.EnemyInfo.Count; GameObject model = Resources.Load <GameObject>("Prefab/Enemy/Enemy"); EnemyController enemyController = model.GetComponent <EnemyController>(); GameSupportor.transferEnemyData(enemyController, ReadDatabase.Instance.EnemyInfo[targetController.ID]); EnemyGuideInfoController info = infoEnemy.GetComponent <EnemyGuideInfoController>(); info.Image.mainTexture = targetController.Icon.mainTexture; info.labelLevel.text = enemyController.level.ToString(); info.labelHP.text = enemyController.attribute.HP.Max.ToString(); info.labelDEF.text = enemyController.attribute.DEF.ToString(); info.labelCoin.text = enemyController.money.ToString(); info.labelRegion.text = enemyController.region.ToString(); info.labelSpeed.text = PlayConfig.getSpeedString(enemyController.speed); //set visible boss icon if (enemyController.level >= 6) { info.boss.gameObject.SetActive(true); } else { info.boss.gameObject.SetActive(false); } //set level sprite info.spriteLevel.spriteName = "play-level-" + enemyController.level; //set name infoName.text = enemyController.attribute.Name; //set name color Color[] colors = PlayConfig.getColorEnemyName(enemyController.level); infoName.color = colors[0]; infoName.effectColor = colors[1]; } else { EnemyGuideInfoController info = infoEnemy.GetComponent <EnemyGuideInfoController>(); info.Image.mainTexture = Resources.Load <Texture>("Image/Enemy/00 Guide Icon/0x0"); info.labelLevel.text = "?"; info.labelHP.text = "???"; info.labelDEF.text = "???"; info.labelCoin.text = "???"; info.labelRegion.text = "???"; info.labelSpeed.text = "???"; info.boss.gameObject.SetActive(false); info.spriteLevel.spriteName = "play-level-123"; //set name infoName.text = GameConfig.GameName.ToUpper(); //set name color infoName.color = Color.white; infoName.effectColor = Color.black; } }
IEnumerator initEnemy() { int wave_lenght = infoMap.Waves.Count; for (int k = 0; k < wave_lenght; k++) { WaveCurrent++; SWave wave = (SWave)infoMap.Waves[k]; enemy_of_wave.Add(wave.WaveID, wave.TotalEnemy); // time show of wave if (wave.TimeWave > 0) { yield return(new WaitForSeconds(wave.TimeWave)); } PlayInfo.Instance.Wave++; checkItemBuffAvailable(); countEnemy = 0; if (k + 1 < infoMap.Waves.Count) { StartCoroutine(nextWaveCooldown(countTimeWave(wave), ((SWave)infoMap.Waves[k + 1]).hasBoss)); } GameObject model = Resources.Load <GameObject>("Prefab/Enemy/Enemy"); EnemyController enemyController = model.GetComponent <EnemyController>(); // show enemy foreach (SEnemyWave infoEnemy in wave.Enemies) { //Set attribute EnemyData tempData = ReadDatabase.Instance.EnemyInfo.ContainsKey(infoEnemy.ID)? ReadDatabase.Instance.EnemyInfo[infoEnemy.ID] : null; if (tempData == null) { break; } GameSupportor.transferEnemyData(enemyController, tempData); int routine = Random.Range(0, enemyRoutine.Length); if (SceneState.Instance.State != ESceneState.BLUETOOTH) { checkVisibleEnemy(enemyController); } for (int i = 0; i < infoEnemy.Quantity; i++) { GameObject enemy = Instantiate(model, enemyStartPos[routine].transform.position, Quaternion.identity) as GameObject; enemy.transform.parent = enemyStartPos[routine].transform; enemy.transform.localScale = Vector3.one; enemy.transform.localPosition = Vector3.zero; enemy.GetComponentInChildren <SpriteRenderer>().material.renderQueue = GameConfig.RenderQueueEnemy - countEnemy; EnemyController ec = enemy.GetComponent <EnemyController>(); ec.stateMove.PathGroup = enemyRoutine[routine].transform; ec.waveID = wave.WaveID; //Set depth cho thanh hp, xu ly thanh mau xuat hien sau phai? ve~ sau foreach (Transform health in enemy.transform) { if (health.name == PlayNameHashIDs.Health) { foreach (Transform child in health) { if (child.name == PlayNameHashIDs.Foreground) { child.GetComponent <UISprite>().depth -= countEnemy; } else if (child.name == PlayNameHashIDs.Background) { child.GetComponent <UISprite>().depth -= (countEnemy + 1); } } break; } } countEnemy++; if (countEnemy >= 100) { countEnemy = 0; } yield return(new WaitForSeconds(infoEnemy.TimeSpawn)); } yield return(new WaitForSeconds(wave.TimeEnemy)); } } }
public IEnumerator initEnemy() { int countEnemy = 0; System.Collections.Generic.List <EnemyData>[] listDictEnemy = new System.Collections.Generic.List <EnemyData> [GameConfig.MaxCurrentEnemyLevel]; for (int i = 0; i < GameConfig.MaxCurrentEnemyLevel; i++) { listDictEnemy[i] = new System.Collections.Generic.List <EnemyData>(); } foreach (System.Collections.Generic.KeyValuePair <string, EnemyData> iterator in ReadDatabase.Instance.EnemyInfo) { int level = iterator.Value.Level; listDictEnemy[level - 1].Add(iterator.Value); } GameObject model = Resources.Load <GameObject>("Prefab/Enemy/Enemy"); EnemyController enemyController = model.GetComponent <EnemyController>(); while (true) { int amount = Random.Range(DailyQuestConfig.ThreeMinAmountEnemyMin, DailyQuestConfig.ThreeMinAmountEnemyMax); int enemyLevel = Random.Range(minEnemyLevel, maxEnemyLevel); float timeDistance = 1.0f; if (enemyLevel < 3) { timeDistance = Random.Range(DailyQuestConfig.ThreeMinTimeDistanceEnemyMin, DailyQuestConfig.ThreeMinTimeDistanceEnemyMax) * (1 + (float)enemyLevel / 6); } else if (enemyLevel < 5) { timeDistance = Random.Range(DailyQuestConfig.ThreeMinTimeDistanceEnemyMin, DailyQuestConfig.ThreeMinTimeDistanceEnemyMax) * (1 + (float)enemyLevel / 4); } else { timeDistance = Random.Range(DailyQuestConfig.ThreeMinTimeDistanceEnemyMin, DailyQuestConfig.ThreeMinTimeDistanceEnemyMax) * (1 + (float)enemyLevel / 3); } int levelLength = listDictEnemy[enemyLevel - 1].Count; int iRandom = Random.Range(1, levelLength); int routine = Random.Range(0, WaveController.Instance.enemyRoutine.Length); EnemyData data = listDictEnemy[enemyLevel - 1][iRandom]; GameSupportor.transferEnemyData(enemyController, data); // show enemy for (int i = 0; i < amount; i++) { WaveController.Instance.checkVisibleEnemy(enemyController); GameObject enemy = Instantiate(model, WaveController.Instance.enemyStartPos[routine].transform.position, Quaternion.identity) as GameObject; enemy.transform.parent = WaveController.Instance.enemyStartPos[routine].transform; enemy.transform.localScale = Vector3.one; enemy.transform.localPosition = Vector3.zero; enemy.GetComponentInChildren <SpriteRenderer>().material.renderQueue = GameConfig.RenderQueueEnemy - countEnemy; enemy.GetComponent <EnemyController>().stateMove.PathGroup = WaveController.Instance.enemyRoutine[routine].transform; //Set depth cho thanh hp, xu ly thanh mau xuat hien sau phai? ve~ sau foreach (Transform health in enemy.transform) { if (health.name == PlayNameHashIDs.Health) { foreach (Transform child in health) { if (child.name == PlayNameHashIDs.Foreground) { child.GetComponent <UISprite>().depth -= countEnemy; } else if (child.name == PlayNameHashIDs.Background) { child.GetComponent <UISprite>().depth -= (countEnemy + 1); } } break; } } countEnemy++; if (countEnemy >= 100) { countEnemy = 0; } yield return(new WaitForSeconds(timeDistance)); } yield return(new WaitForSeconds(0.1f)); } }