void Awake() { instance = this; turnID = -1; turnIDLoop = 1; AbilityManagerTB.LoadUnitAbility(); roundCounter = 0; battleEnded = false; if (playerFactionID.Count == 0) { playerFactionID.Add(0); } }
void Hit() { if (type == _ShootObjectType.Effect) { if (hitEffect != null) { if (!attMissed) { Instantiate(hitEffect, thisT.position, hitEffect.transform.rotation); } else if (showHitEffectWhenMissed) { Instantiate(hitEffect, thisT.position, hitEffect.transform.rotation); } } } else { if (hitEffect != null) { if (!attMissed) { Instantiate(hitEffect, thisT.position, hitEffect.transform.rotation); } else if (showHitEffectWhenMissed) { Instantiate(hitEffect, thisT.position, hitEffect.transform.rotation); } } } if (attInstance != null) { if (attInstance.unitAbility != null) { UnitAbility uAB = attInstance.unitAbility; if (attInstance.unitAbility.shootMode == _AbilityShootMode.ShootToAll) { if (uAB.targetType == _AbilityTargetType.AllUnits) { if (targetTile.unit != null) { StartCoroutine(targetTile.unit.ApplyAbilityDelay(uAB.Clone())); } } if (uAB.targetType == _AbilityTargetType.Friendly) { if (targetTile.unit != null && targetTile.unit.factionID == uAB.factionID) { StartCoroutine(targetTile.unit.ApplyAbilityDelay(uAB.Clone())); } } else if (uAB.targetType == _AbilityTargetType.Hostile) { if (targetTile.unit != null && targetTile.unit.factionID != uAB.factionID) { StartCoroutine(targetTile.unit.ApplyAbilityDelay(uAB.Clone())); } } else if (uAB.targetType == _AbilityTargetType.AllTile) { targetTile.ApplyAbility(uAB.Clone()); } } else if (uAB.shootMode == _AbilityShootMode.ShootToCenter) { foreach (Tile tile in targetTileList) { if (uAB.targetType == _AbilityTargetType.AllUnits) { if (tile.unit != null) { StartCoroutine(tile.unit.ApplyAbilityDelay(uAB.Clone())); } } if (uAB.targetType == _AbilityTargetType.Friendly) { if (tile.unit != null && tile.unit.factionID == uAB.factionID) { StartCoroutine(tile.unit.ApplyAbilityDelay(uAB.Clone())); } } else if (uAB.targetType == _AbilityTargetType.Hostile) { if (tile.unit != null && tile.unit.factionID != uAB.factionID) { StartCoroutine(tile.unit.ApplyAbilityDelay(uAB.Clone())); } } else if (uAB.targetType == _AbilityTargetType.AllTile) { tile.ApplyAbility(uAB.Clone()); } } } for (int i = 0; i < uAB.chainedAbilityIDList.Count; i++) { UnitAbility unitAB = AbilityManagerTB.GetUnitAbility(uAB.chainedAbilityIDList[i]); if (unitAB.requireTargetSelection) { unitAB.shootMode = _AbilityShootMode.None; attInstance.srcUnit.SetActiveAbilityPendingTarget(unitAB); GridManager.SetTargetTileSelectMode(abilityTargetTile, unitAB); GridManager.OnHoverEnter(abilityTargetTile); GridManager.Select(abilityTargetTile); } else { attInstance.srcUnit._ActivateAbility(unitAB); } } attInstance.srcUnit.HitTarget(null, null); } else { attInstance.srcUnit.HitTarget(targetUnit, attInstance); } } Destroy(gameObject); }