Example #1
0
        private void Update()
        {
            if (IsAnimateFight)
            {
                FightTime -= Time.deltaTime;

                if (FightTime <= 0)
                {
                    IsAnimateFight = false;

                    Attacker.gameObject.GetComponent <Animator>().enabled = false;
                    Defender.gameObject.GetComponent <Animator>().enabled = false;

                    Attacker.gameObject.GetComponent <SpriteRenderer>().sprite = DefaultSpriteAttacker;
                    Defender.gameObject.GetComponent <SpriteRenderer>().sprite = DefaultSpriteDefender;

                    Attacker.UpdateHealthText();
                    Defender.UpdateHealthText();
                    FightTime = 1f;

                    // Create the animation fight event. But set the needsanimating to false. Meaning that the method Attack.BattleSimulation() is called.
                    var fight = new OnAnimFight
                    {
                        attacker       = Attacker,
                        defender       = Defender,
                        needsAnimating = false
                    };

                    EventHandler.dispatch(fight);
                }
            }
        }
Example #2
0
 private void UpdateSwipeActions(int fingerCount)
 {
     for (int i = 0; i < fingerCount; i++)
     {
         Touch touch = Input.GetTouch(i);
         if (touch.phase == TouchPhase.Began && !IsSwipeHappening)
         {
             SwipingVector    = touch.position;
             IsSwipeHappening = true;
         }
         else if (touch.phase == TouchPhase.Moved && IsSwipeHappening)
         {
             Vector2 delta = touch.position - SwipingVector;
             Debug.Log("----------");
             Debug.Log("Swipe Delta: " + delta);
             Debug.Log("Swipe Deltamag: " + delta.magnitude);
             Debug.Log("----------");
             if (delta.magnitude > minSwipeDistance && Mathf.Abs(delta.x) < swipeVariance)
             {
                 if (delta.y < 0)
                 {
                     // down swipe
                     IsSwipeHappening = false;
                     OnSwipeAction swipeDown = new OnSwipeAction(fingerCount, false, false, false, true);
                     EventHandler.dispatch(swipeDown);
                 }
                 else if (delta.y > 0)
                 {
                     // Up swipe
                     IsSwipeHappening = false;
                     OnSwipeAction swipeUp = new OnSwipeAction(fingerCount, false, false, true, false);
                     EventHandler.dispatch(swipeUp);
                 }
             }
             // Left and right swipe not working yet.
             else if (delta.magnitude > minSwipeDistance && Mathf.Abs(delta.y) < swipeVariance)
             {
                 if (delta.x < 0)
                 {
                     // Swipe left
                     //IsSwipeHappening = false;
                     //OnSwipeAction swipe = new OnSwipeAction(fingerCount, true, false, false, false);
                     //EventHandler.dispatch<OnSwipeAction>(swipe);
                 }
                 else if (delta.x > 0)
                 {
                     // Swipe right
                     //IsSwipeHappening = false;
                     //OnSwipeAction swipe = new OnSwipeAction(fingerCount, false, true, false, false);
                     //EventHandler.dispatch<OnSwipeAction>(swipe);
                 }
             }
         }
         else if (touch.phase == TouchPhase.Ended && IsSwipeHappening)
         {
             SwipingVector    = Vector2.zero;
             IsSwipeHappening = false;
         }
     }
 }
Example #3
0
 private void Awake()
 {
     movement  = GameObjectReferences.GetScriptsGameObject().GetComponent <Movement>();
     highlight = GameObjectReferences.GetScriptsGameObject().GetComponent <Highlight>();
     EventHandler.register <OnHighlightClick>(BattlePreparation);
     EventHandler.register <OnAnimFight>(BattleSimulation);
 }
Example #4
0
        private void Start()
        {
            Vector3 centerWorldSpace = Camera.main.ViewportToWorldPoint(new Vector3(0.5f, 0, 5));

            transform.position = new Vector3(centerWorldSpace.x, centerWorldSpace.y + 1, centerWorldSpace.z);
            EventHandler.register <OnSwipeAction>(SwipeDoneButton);
            Color col = renderer.material.color;

            col.a = 0f;
            renderer.material.color = col;

            gameLoop = GameObject.Find("_Scripts").GetComponent <GameLoop>();
        }
Example #5
0
        private void Awake()
        {
            levelManager = GameObjectReferences.GetGlobalScriptsGameObject().GetComponent <LevelManager>();

            movement = GameObjectReferences.GetScriptsGameObject().GetComponent <Movement>();
            movement = GameObjectReferences.GetScriptsGameObject().GetComponent <Movement>();
            attack   = GameObjectReferences.GetScriptsGameObject().GetComponent <Attack>();
            animInfo = GameObjectReferences.GetScriptsGameObject().GetComponent <AnimationInfo>();

            IsHighlightOn    = false;
            HighlightObjects = new List <HighlightObject>();
            EventHandler.register <OnUnitClick>(ShowHighlight);
            EventHandler.register <OnHighlightClick>(ClickedOnHightLight);
        }
Example #6
0
        /// <summary>
        /// Check if there has been a click. Ifso then raycast and check if there has been clicked on a specific game object. Ifso fire an event with the click object as a parameter.
        /// </summary>
        private void CheckObjectsClick()
        {
            // Gives errors
            // if (Input.GetMouseButtonDown(0) && !_manager.SwipeController.IsSwipeHappening)
            if (Input.GetMouseButtonDown(0))
            {
                var unitClick      = new OnUnitClick();
                var buildingClick  = new OnBuildingClick();
                var highlightClick = new OnHighlightClick();

                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit))
                {
                    foreach (Unit unit in lm.CurrentLevel.CurrentPlayer.OwnedUnits)
                    {
                        if (unit.UnitGameObject.collider == hit.collider)
                        {
                            unitClick.unit = unit.UnitGameObject;
                            break;
                        }
                    }
                    foreach (Building building in lm.CurrentLevel.CurrentPlayer.OwnedBuildings)
                    {
                        if (building.BuildingGameObject.collider == hit.collider)
                        {
                            buildingClick.building = building.BuildingGameObject;
                            break;
                        }
                    }
                    foreach (HighlightObject highlightObj in highlight.HighlightObjects)
                    {
                        if (highlightObj.collider == hit.collider)
                        {
                            highlightClick.highlight = highlightObj;
                            break;
                        }
                    }
                }

                if (unitClick.unit == null && highlightClick.highlight == null && !movement.NeedsMoving ||
                    (highlight.IsHighlightOn && unitClick.unit != null))
                {
                    highlight.ClearHighlights();
                }
                EventHandler.dispatch(unitClick);
                EventHandler.dispatch(buildingClick);
                EventHandler.dispatch(highlightClick);
            }
        }
Example #7
0
        /// <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);
                            }
                        }
                    }
                }
            }
        }
Example #8
0
 private void OnDestroy()
 {
     EventHandler.unregister <OnAnimFight>(OnFightAnim);
 }
Example #9
0
 private void Awake()
 {
     FightTime = 1f;
     EventHandler.register <OnAnimFight>(OnFightAnim);
 }
Example #10
0
 private void OnDestroy()
 {
     EventHandler.unregister <OnSwipeAction>(SwipeDoneButton);
 }
Example #11
0
 private void OnDestroy()
 {
     EventHandler.unregister <OnHighlightClick>(BattlePreparation);
     EventHandler.unregister <OnAnimFight>(BattleSimulation);
 }
Example #12
0
 private void OnDestroy()
 {
     EventHandler.unregister <OnBuildingClick>(OnBuildingClick);
 }
Example #13
0
 public ProductionOverlayMain()
 {
     NeedsMoving = false;
     EventHandler.register <OnBuildingClick>(OnBuildingClick);
 }
Example #14
0
 private void OnDestroy()
 {
     EventHandler.unregister <OnUnitClick>(ShowHighlight);
     EventHandler.unregister <OnHighlightClick>(ClickedOnHightLight);
 }