/// <summary> /// 销毁 /// </summary> public override void Destroy() { GameData.m_GameManager.m_GridManager.SetWalkable(this); GameData.m_ObjectList.Remove(this); if (m_TowerAttack != null) { m_TowerAttack.Destroy(); } m_IntervalTime = Fix64.Zero; m_Pos = FixVector3.Zero; m_TowerAttack = null; m_TargetObject = null; #region 显示层 if (m_Die != null) { m_Die.SetActive(true); } if (GameData.m_IsExecuteViewLogic) { GameObject.Destroy(m_VGo, (float)m_DestoryDelayTime); } if (m_DestoryMinMapCallback != null) { m_DestoryMinMapCallback(this); } #endregion m_Die = null; m_Quan = null; m_VGo = null; }
public bool TryPlayCard(Vector2 pos) { if (CardController.instance.currencyLeft < m_CardData.cost) { return(false); } //Only hit tower colliders RaycastHit2D hit = Physics2D.Raycast(pos, Vector3.up, 1f, LayerMask.GetMask(new[] { "BuiltTower" })); if (!hit.collider) { return(false); } TowerAttack tower = hit.collider.gameObject.GetComponent <TowerAttack>(); if (!tower) { return(false); } bool success = tower.TryUpgradeTower(m_CardData.damageMultiplier, m_CardData.speedMultiplier, m_CardData.rangeMultiplier); //if(success) // foreach(TowerAttack t in FindObjectsOfType<TowerAttack>()) // t.RemoveHighlight(); return(success); }
private void Start() { StartObject = GameObject.FindWithTag("Start").GetComponent <EnemySummon>(); MKList = GameObject.Find("Culling").GetComponent <TowerAttack>(); Count = EnemySummon.Instance.iCountingMonster; CharacteristicBuffSlow(); }
public void RpcUpdateTower(string towerName, string zhenying, string bloodTag, bool toShow, int blood) { var towers = LobbyManager.s_Singleton.towers; if (towers.ContainsKey(towerName)) { TowerAttack attack = towers [towerName].GetComponent <TowerAttack> (); attack.SyncFromServer(zhenying, bloodTag, toShow, blood); } }
private void OnTriggerEnter(Collider other) { TowerAttack bullet = other.GetComponent <TowerAttack>(); if (bullet != null) { enemy.PlayOneShot(impactSound); Destroy(other.gameObject); } }
public void CheckTurnOver() { if (PlayerAttacks.Count >= 3) { AllMovesChosen = true; var Tower = new TowerAttack(PlayerAttacks.Where(a => a is ComboAttack).Select(a => a as ComboAttack).ToArray()); Debug.Log(Tower); PlayerAttacks.Add(Tower); Debug.Log(PlayerAttacks.Count); } }
public static void SetTowerActivity(bool Activity) { GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy"); foreach (GameObject enemy in enemies) { TowerAttack towerAttack = enemy.GetComponent <TowerAttack>(); if (towerAttack != null) { towerAttack.CanAttack = Activity; } } }
public static void MonsterInTowerRange(MonsterAI monster, Tower tower) { int newID = GameEvents.GetNewID(); GameObject arrow = GameObject.Instantiate(tower.arrowTemplate) as GameObject; arrow.transform.SetParent(tower.gameObject.transform, false); mAE.Animate(arrow, tower.gameObject, monster.gameObject, "TowerAttack"); TowerAttack attack = new TowerAttack(); attack.arrow = arrow; attack.tower = tower; attack.monster = monster; attack.id = newID; mTowerAttacks[newID] = attack; }
void OnMouseEnter() { if (!place.isOccupied && PlacesForTowerManager.towerToBuy != null) { TowerAttack tower = Instantiate(PlacesForTowerManager.towerToBuy, transform.position, Quaternion.identity).GetComponentInChildren <TowerAttack>(); tower.parentObject.transform.SetParent(place.transform); tower.ShowAttackRange(true); tower.isActive = false; place.thisTower = tower; place.ChangeTowerTransparency(false); place.isOccupied = true; PlacesForTowerManager.currentlyUsedPlace = place; } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); TowerAttack tower = (TowerAttack)target; if (!Application.isPlaying) { return; } if (GUILayout.Button("Upgrade tower")) { tower.Upgrade(); } }
private void OnTriggerEnter(Collider other) { TowerAttack bullet = other.GetComponent <TowerAttack>(); if (bullet != null) { enemyHealth -= bullet.towerDamage; UpdateUI(); enemy.PlayOneShot(impactSound); if (enemyHealth <= 0) { Destroy(this.gameObject); score.AddScore(); } Destroy(other.gameObject); } }
/// <summary> /// 创建对象 /// </summary> /// <param name="charData">对象数据</param> public void Create(TowerData towerData) { m_TowerData = new TowerData(towerData.m_CampId, towerData.m_Type, towerData.m_HP); m_Data = m_TowerData; m_TowerAttack = new TowerAttack(); if (towerData.m_CampId == CampType.BLUE && towerData.m_Type == ObjectType.ARROW_TOWER) { m_VGo = GameObject.Find("Tower_Blue"); } if (towerData.m_CampId == CampType.RED && towerData.m_Type == ObjectType.ARROW_TOWER) { m_VGo = GameObject.Find("Tower_Red"); } if (towerData.m_CampId == CampType.BLUE && towerData.m_Type == ObjectType.CRYSTAL_TOWER) { m_VGo = GameObject.Find("Camp_Blue"); } if (towerData.m_CampId == CampType.RED && towerData.m_Type == ObjectType.CRYSTAL_TOWER) { m_VGo = GameObject.Find("Camp_Red"); } #region 显示层 //是否执行显示层逻辑 if (GameData.m_IsExecuteViewLogic) { m_Quan = m_VGo.transform.Find("quan_hero").gameObject; m_Attack = m_VGo.transform.Find("attack0").gameObject; m_Die = m_VGo.transform.Find("death").gameObject; m_SelectedGo = m_VGo.transform.Find("Effect_targetselected").gameObject; m_Health = m_VGo.GetComponent <PlayerHealth>(); m_Health.m_Health = towerData.m_HP; m_Pos = new FixVector3((Fix64)m_VGo.transform.position.x, (Fix64)m_VGo.transform.position.y, (Fix64)m_VGo.transform.position.z); MobaMiniMap.instance.AddMapIconByType(this); } #endregion }
public int GetTotalAttack(int attack) { attack += units.Count * 3; return(attack); }
public abstract void AddEffect(TowerAttack baseAttack);
public override void AddEffect(TowerAttack baseAttack) { baseAttack.damage += 5; }
public void DestoryTowerAttack() { m_TowerAttack = null; }
protected override void Start() { base.Start(); attack = GetComponent <TowerAttack>(); }
void Attack(TowerAttack attack) { areaHeal.GetComponent<VisibilityManager>().isVisible = false; areaRain.GetComponent<VisibilityManager>().isVisible = false; areaFire.GetComponent<VisibilityManager>().isVisible = false; areaThunder.GetComponent<VisibilityManager>().isVisible = false; GameObject tmpAttck = pool.Get(attack.gameObject); tmpAttck.transform.position = transform.position; tmpAttck.SetActive(true); //attack.ShowParticles(); //AddCircle(attack.GetRange()); //To see attack area baseHighlight.GetComponent<VisibilityManager>().isVisible = false; attackPerformed = true; for (int i = 0; i < EnemyManager.Instance.activeEnemies.Count; ++i) { EnemyStats enemy = EnemyManager.Instance.activeEnemies[i]; float distance = Vector3.Distance(transform.position, enemy.transform.position); if (distance <= attack.GetRange()) { enemy.OnAttacked(attack.GetDamage()); enemy.speedMultiplier = attack.GetSpeedMultiplier(); } } timeSpellStart = Time.time; }
void OnGUI() { if (over == 1) { Vector3 TowerPos = Camera.main.WorldToScreenPoint(transform.position); if (GUI.Button(new Rect(TowerPos.x - 25, Screen.height - TowerPos.y - 25, 50, 50), option)) { cooldown = Time.time; waitTime = 3; over = 2; } } if (over == 2) { Vector3 TowerPos = Camera.main.WorldToScreenPoint(transform.position); if (GUI.Button(new Rect(TowerPos.x - 150, Screen.height - TowerPos.y - 70, 140, 80), "WEATHER STATION\n Coste: " + MagicCost + "\n Daño: Bajo\n Alcance: Alto\n Especial: Ralentiza")) { if ((score && score.resources >= MagicCost) || (scoreTut && scoreTut.resources >= MagicCost)) { if (score) { score.resources -= MagicCost; } if (scoreTut) { scoreTut.resources -= MagicCost; } Vector3 pos = new Vector3(transform.position.x, transform.position.y + 0.1f, transform.position.z); GameObject torre = Instantiate(MagicTower, pos, transform.rotation) as GameObject; tower = torre.GetComponentInChildren <TowerAttack>(); Debug.Log("Desplegada FrostTower!"); activeRespawn = false; costeMejora = MagicCost * 2; over = 0; } } if (GUI.Button(new Rect(TowerPos.x - 50, Screen.height - TowerPos.y + 20, 130, 80), "THUMPER\n Coste: " + AreaCost + "\n Daño: Medio\n Alcance: Alto\n Especial: Area")) { if ((score && score.resources >= AreaCost) || (scoreTut && scoreTut.resources >= AreaCost)) { if (score) { score.resources -= AreaCost; } if (scoreTut) { scoreTut.resources -= AreaCost; } Vector3 pos = new Vector3(transform.position.x, transform.position.y + 0.1f, transform.position.z); GameObject torre = Instantiate(AreaTower, pos, transform.rotation) as GameObject; tower = torre.GetComponentInChildren <TowerAttack>(); Debug.Log("Desplegada CannonTower!"); activeRespawn = false; costeMejora = AreaCost * 2; over = 0; } } if (GUI.Button(new Rect(TowerPos.x + 40, Screen.height - TowerPos.y - 70, 130, 80), "AUTOCANNON\n Coste: " + ArrowCost + "\n Daño: Alto\n Alcance: Medio\n Especial: Criticos")) { if ((score && score.resources >= ArrowCost) || (scoreTut && scoreTut.resources >= ArrowCost)) { if (score) { score.resources -= ArrowCost; } if (scoreTut) { scoreTut.resources -= ArrowCost; } Vector3 pos = new Vector3(transform.position.x, transform.position.y, transform.position.z); GameObject torre = Instantiate(ArrowTower, pos, transform.rotation) as GameObject; tower = torre.GetComponentInChildren <TowerAttack>(); Debug.Log("Desplegada ArrowTower!"); activeRespawn = false; costeMejora = ArrowCost * 2; over = 0; } } } if (over == 4) { Vector3 TowerPos = Camera.main.WorldToScreenPoint(transform.position); if (GUI.Button(new Rect(TowerPos.x - 75, Screen.height - TowerPos.y - 25, 150, 50), "Torre Nivel " + tower.level + "\nCoste mejora: " + costeMejora)) { if ((score && score.resources >= costeMejora) || (scoreTut && scoreTut.resources >= costeMejora)) { if (score) { score.resources -= costeMejora; } if (scoreTut) { scoreTut.resources -= costeMejora; } costeMejora *= 2; tower.level++; cooldown = Time.time; waitTime = 3; over = 0; } } } }
void Awake() { towerAttack = gameObject.GetComponent <TowerAttack>(); upgradeBonuses = (TowerUpgradeBase)SaveLoad.Load(towerName); }