Beispiel #1
0
        private void Awake()
        {
            _groupManager   = GetComponent <GroupManager>();
            _groupAbilities = GetComponentInChildren <GroupAbilities>();

            _activeTactic = startTactic;
        }
Beispiel #2
0
        private void OnTryTacticAssign(TacticFactory newTactic, GroupManager.Group targetGroup)
        {
            if (targetGroup != _groupManager.ThisGroupName && targetGroup != GroupManager.Group.All)
            {
                return;
            }

            AssignTactic(newTactic);
        }
        private void AssignGlobalOrder(TacticFactory tacticFactory)
        {
            if (!_orderAssignLock.CanDoAction())
            {
                return;
            }

            OnAggroActionDone?.Invoke(globalTacticAggro);
            OnTryTacticAssign?.Invoke(tacticFactory, GroupManager.Group.All);
        }
Beispiel #4
0
 private void OnTacticChanged(TacticFactory obj)
 {
     if (!_groupManager.HasNoImps())
     {
         foreach (ParticleSystem p in _particles)
         {
             p.Play();
         }
         _audioSource.Play();
     }
 }
        private void StartHeldDown(TacticFactory tacticFactory)
        {
            AssignOrder(tacticFactory);

            if (_heldDownCr != null)
            {
                return;
            }

            _heldDownCr = StartCoroutine(HeldDownCoroutine(tacticFactory));
        }
        private void AssignOrder(TacticFactory tactic)
        {
            if (!_orderAssignLock.CanDoAction())
            {
                return;
            }

            if (GroupsInRangeDetector.MostRepresentedGroupInRange == GroupManager.Group.None ||
                GroupsInRangeDetector.MostRepresentedGroupInRange == GroupManager.Group.All)
            {
                return;
            }

            OnAggroActionDone?.Invoke(singleTacticAggro);
            OnTryTacticAssign?.Invoke(tactic, GroupsInRangeDetector.MostRepresentedGroupInRange);
        }
Beispiel #7
0
        private void AssignTactic(TacticFactory newTactic)
        {
            if (_activeAbility != null)
            {
                return;
            }

            if (newTactic == _activeTactic)
            {
                return;
            }

            _activeTactic = newTactic;

            OnTacticChanged?.Invoke(_activeTactic);
            OnTacticChangedGlobal?.Invoke(newTactic, _groupManager.ThisGroupName);
        }
        private IEnumerator HeldDownCoroutine(TacticFactory tacticFactory)
        {
            globalOrderCircle.SetActive(true);
            bool  alreadyPlaying = false;
            Color finalColor     = new Color(startingParticlesColor.r, startingParticlesColor.g, startingParticlesColor.b, 0f);

            float       timer       = 0f;
            ShapeModule shapeModule = globalOrderParticles.shape;
            MainModule  mainModule  = globalOrderParticles.main;

            mainModule.startColor = startingParticlesColor;

            while (timer < heldDownTime)
            {
                if (timer > heldDownTime / 3f)
                {
                    if (!alreadyPlaying)
                    {
                        globalOrderParticles.Play();
                        alreadyPlaying = true;
                    }

                    shapeModule.radius   = Mathf.Lerp(1f, globalOrderParticlesFinalRadius, (timer - (heldDownTime / 3f)) / (heldDownTime - (heldDownTime / 3f)));
                    mainModule.startSize = Mathf.Lerp(2f, globalOrderParticlesFinalRadius / 2f, (timer - (heldDownTime / 3f)) / (heldDownTime - (heldDownTime / 3f)));
                }

                if (timer > heldDownTime / 1.5f)
                {
                    mainModule.startColor = Color.Lerp(startingParticlesColor, finalColor, (timer - (heldDownTime / 1.5f)) / (heldDownTime - (heldDownTime / 1.5f)));
                }

                timer += Time.deltaTime;
                yield return(null);
            }

            AssignGlobalOrder(tacticFactory);
            ResetGlobalOrderParticles();
        }