Exemple #1
0
        private void ZergCheck()
        {
            if (!_zergEnabled)
            {
                return;
            }
            var corruptGrowthDetectionRadius = ZetaDia.Me.ActorClass == ActorClass.Barbarian ? 30 : 20;
            var combatState = false;

            if (!combatState && ZetaDia.Me.HitpointsCurrentPct <= 0.8f)
            {
                combatState = true;
            }

            if (!combatState &&

                ZetaDia.Actors.GetActorsOfType <DiaUnit>(true).Any(u => u.IsFullyValid() && u.IsAlive && (
//                u.CommonData.IsElite || u.CommonData.IsRare || u.CommonData.IsUnique ||
                                                                       KeywardenDataFactory.GoblinSNOs.Contains(u.ActorSnoId) || (KeywardenDataFactory.A4CorruptionSNOs.Contains(u.ActorSnoId) && u.IsAlive & u.Position.Distance(AdvDia.MyPosition) <= corruptGrowthDetectionRadius))
                                                                   ))

            {
                combatState = true;
            }

            var keywarden = KeywardenDataFactory.Items.FirstOrDefault(kw => kw.Value.WorldId == AdvDia.CurrentWorldId);

            if (!combatState && keywarden.Value != null && keywarden.Value.IsAlive)
            {
                var kwActor = ActorFinder.FindUnit(keywarden.Value.KeywardenSNO);
                if (kwActor != null && kwActor.Distance < 80f)
                {
                    Logger.Verbose("Turning off zerg because {0} is nearby. Distance={1}", kwActor.Name, kwActor.Distance);
                    combatState = true;
                }
            }

            var closeUnitsCount = ZetaDia.Actors.GetActorsOfType <DiaUnit>(true).Count(u => u.IsFullyValid() && u.IsHostile && u.IsAlive && u.Position.Distance(AdvDia.MyPosition) <= 15f);

            if (!combatState && (closeUnitsCount >= 8 || closeUnitsCount >= 3 && ZetaDia.Me.HitpointsCurrentPct <= 0.6))
            {
                combatState = true;
            }

            if (combatState)
            {
                TargetingHelper.TurnCombatOn();
            }
            else
            {
                TargetingHelper.TurnCombatOff();
            }
        }
Exemple #2
0
        private void ZergCheck()
        {
            if (!_zergEnabled)
            {
                return;
            }
            var corruptGrowthDetectionRadius = ZetaDia.Me.ActorClass == ActorClass.Barbarian ? 30 : 20;
            var combatState = false;

            if (!combatState && ZetaDia.Me.HitpointsCurrentPct <= 0.8f)
            {
                combatState = true;
            }

            if (!combatState &&

                ZetaDia.Actors.GetActorsOfType <DiaUnit>(true).Any(u => u.IsFullyValid() && u.IsAlive && (
//                u.CommonData.IsElite || u.CommonData.IsRare || u.CommonData.IsUnique ||
                                                                       KeywardenDataFactory.GoblinSNOs.Contains(u.ActorSNO) || (KeywardenDataFactory.A4CorruptionSNOs.Contains(u.ActorSNO) && u.IsAlive & u.Position.Distance(AdvDia.MyPosition) <= corruptGrowthDetectionRadius))
                                                                   ))

            {
                combatState = true;
            }

            if (!combatState && ZetaDia.Actors.GetActorsOfType <DiaUnit>(true).Count(u => u.IsFullyValid() && u.IsHostile && u.IsAlive && u.Position.Distance(AdvDia.MyPosition) <= 15f) >= 8)
            {
                combatState = true;
            }

            if (combatState)
            {
                TargetingHelper.TurnCombatOn();
            }
            else
            {
                TargetingHelper.TurnCombatOff();
            }
        }
Exemple #3
0
 public void DisableZerg()
 {
     DisablePulse();
     _zergEnabled = false;
     TargetingHelper.TurnCombatOn();
 }