public void EvaluateLastDirection(TargetingEvaluateEvent e, EvaluatorNode weapon)
        {
            int?lastDirectionIndex = weapon.isisTargetEvaluator.LastDirectionIndex;

            if (lastDirectionIndex != null)
            {
                base.Log.Debug("EvaluateLastDirection");
                DirectionData local1 = e.TargetingData.Directions[lastDirectionIndex.Value];
                local1.Priority += 10f;
            }
        }
 public void EvaluateTargets(TargetingEvaluateEvent evt, EvaluatorNode evaluator, [JoinByUser] TankNode tankNode)
 {
     foreach (DirectionData data in evt.TargetingData.Directions)
     {
         foreach (TargetData data2 in data.Targets)
         {
             base.NewEvent(GetFlagTargetBonusEvent.INSTANCE).Attach(data2.TargetEntity).Attach(evaluator).Schedule();
             data2.Priority += GetFlagTargetBonusEvent.INSTANCE.Value;
         }
     }
 }
        public void ResendEvaluateTeamTank(TargetingEvaluateEvent e, WeaponNode weapon, [JoinByTank] TeamTankNode shooterTank)
        {
            long key = shooterTank.teamGroup.Key;

            List <DirectionData> .Enumerator enumerator = e.TargetingData.Directions.GetEnumerator();
            while (enumerator.MoveNext())
            {
                DirectionData current = enumerator.Current;
                List <TargetData> .Enumerator enumerator2 = current.Targets.GetEnumerator();
                while (enumerator2.MoveNext())
                {
                    TargetData targetData = enumerator2.Current;
                    base.NewEvent(new IsisEvaluateTeamTankEvent(targetData, key)).Attach(weapon).Attach(targetData.TargetEntity).Schedule();
                }
            }
        }
 public void EvaluateLastTank(TargetingEvaluateEvent e, HitNode weapon)
 {
     List <DirectionData> .Enumerator enumerator = e.TargetingData.Directions.GetEnumerator();
     while (enumerator.MoveNext())
     {
         List <TargetData> .Enumerator enumerator2 = enumerator.Current.Targets.GetEnumerator();
         while (enumerator2.MoveNext())
         {
             TargetData current = enumerator2.Current;
             if (ReferenceEquals(current.TargetEntity, weapon.streamHit.TankHit.Entity))
             {
                 base.Log.Debug("EvaluateLastTank");
                 current.Priority += 100f;
             }
         }
     }
 }
Ejemplo n.º 5
0
        public void EvaluateTargets(TargetingEvaluateEvent evt, EvaluatorNode evaluator)
        {
            TargetingData targetingData = evt.TargetingData;

            List <DirectionData> .Enumerator enumerator = targetingData.Directions.GetEnumerator();
            while (enumerator.MoveNext())
            {
                DirectionData current = enumerator.Current;
                List <TargetData> .Enumerator enumerator2 = current.Targets.GetEnumerator();
                while (enumerator2.MoveNext())
                {
                    TargetData data3 = enumerator2.Current;
                    float      num   = (evaluator.distanceAndAngleTargetEvaluator.DistanceWeight * data3.HitDistance) / targetingData.FullDistance;
                    float      num2  = (evaluator.distanceAndAngleTargetEvaluator.AngleWeight * current.Angle) / targetingData.MaxAngle;
                    data3.Priority += 1000f - (num + num2);
                }
            }
        }
        public void EvaluateTargets(TargetingEvaluateEvent evt, EvaluatorNode evaluator, [JoinByUser] TankNode tankNode, [JoinByTeam] TeamNode team)
        {
            long key = team.teamGroup.Key;

            List <DirectionData> .Enumerator enumerator = evt.TargetingData.Directions.GetEnumerator();
            while (enumerator.MoveNext())
            {
                DirectionData current = enumerator.Current;
                List <TargetData> .Enumerator enumerator2 = current.Targets.GetEnumerator();
                while (enumerator2.MoveNext())
                {
                    TargetData data3 = enumerator2.Current;
                    if (data3.TargetEntity.GetComponent <TeamGroupComponent>().Key == key)
                    {
                        data3.ValidTarget = false;
                    }
                }
            }
        }
Ejemplo n.º 7
0
        public void EvaluateDirections(TargetingEvaluateEvent evt, EvaluatorNode evaluator)
        {
            List <DirectionData> directions = evt.TargetingData.Directions;
            float         minValue          = float.MinValue;
            TargetingData targetingData     = evt.TargetingData;
            float         num2 = !evaluator.Entity.HasComponent <DamageWeakeningByTargetComponent>() ? 1f : (((EntityInternal)evaluator.Entity).GetComponent <DamageWeakeningByTargetComponent>().DamagePercent / 100f);

            if ((directions != null) && (directions.Count != 0))
            {
                DirectionData data2 = directions.First <DirectionData>();
                int           num3  = 0;
                int           num4  = 0;
                while (num4 < targetingData.Directions.Count)
                {
                    DirectionData data3 = targetingData.Directions[num4];
                    bool          flag  = false;
                    List <TargetData> .Enumerator enumerator = data3.Targets.GetEnumerator();
                    while (true)
                    {
                        if (!enumerator.MoveNext())
                        {
                            if (flag && (data3.Priority > minValue))
                            {
                                data2    = data3;
                                num3     = num4;
                                minValue = data2.Priority;
                            }
                            num4++;
                            break;
                        }
                        TargetData current = enumerator.Current;
                        if (current.ValidTarget)
                        {
                            flag            = true;
                            data3.Priority += current.Priority * ((float)Math.Pow((double)num2, (double)current.PriorityWeakeningCount));
                        }
                    }
                }
                evt.TargetingData.BestDirection      = data2;
                evt.TargetingData.BestDirectionIndex = num3;
            }
        }