/// <summary> /// Get called whenever an OnHighlightClick is fired. If it is possible it will attack an enemy unit. /// </summary> /// <param Name="evt"></param> public void BattlePreparation(OnHighlightClick evt) { if (evt.highlight != null) { HighlightObject highlightObj = evt.highlight; if (highlight.IsHighlightOn && !movement.NeedsMoving && highlightObj.highlightTypeActive == HighlightTypes.highlight_attack) { UnitGameObject attackingUnit = highlight.UnitSelected; UnitGameObject defendingUnit = highlightObj.Tile.unitGameObject; if (!attackingUnit.UnitGame.HasAttacked) { if (!attackingUnit.UnitGame.HasMoved || (attackingUnit.UnitGame.HasMoved && attackingUnit.UnitGame.CanAttackAfterMove)) { if (TileHelper.IsTileWithinRange(attackingUnit.transform.position, defendingUnit.transform.position, attackingUnit.UnitGame.AttackRange)) { attackingUnit.UnitGame.HasAttacked = true; attackingUnit.UnitGame.HasMoved = true; attackingUnit.UnitGame.PlaySound(UnitSoundType.Attack); highlight.ClearHighlights(); // Check if units are faces the wrong way FacingDirectionUnits(attackingUnit, defendingUnit); // Dispatch the animation fight event. But set the needsanimating to true. OnAnimFight fight = new OnAnimFight(); fight.attacker = attackingUnit; fight.defender = defendingUnit; fight.needsAnimating = true; EventHandler.dispatch(fight); } else { Notificator.Notify("Move to this unit to attack!", 1f); } } } } } }
/// <summary> /// Gets called whenever an OnHighlightClick event is fired. /// </summary> /// <param Name="evt"></param> public void ClickedOnHightLight(OnHighlightClick evt) { if (evt.highlight != null && IsHighlightOn) { HighlightObject highlight = evt.highlight; if (highlight.highlightTypeActive == HighlightTypes.highlight_move) { UnitSelected.UnitGame.HasMoved = true; movement.nodeList = movement.CalculateShortestPath(UnitSelected.Tile, highlight.Tile, false); movement.StartTimeMoving = Time.time; movement.NeedsMoving = true; movement.FacingDirectionMovement(UnitSelected, movement.nodeList[0].Tile); UnitSelected.UnitGame.PlaySound(UnitSoundType.Move); ClearHighlights(); } } }