public void SaveLastDirection(TargetingEvent e, EvaluatorNode weapon) { if (e.TargetingData.HasTargetHit()) { base.Log.Debug("SaveLastDirection"); weapon.isisTargetEvaluator.LastDirectionIndex = new int?(e.TargetingData.BestDirectionIndex); } }
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 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) { 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; } } } }
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; } }
public void GetFlagTargetBonus(GetFlagTargetBonusEvent e, EvaluatorNode evaluator, TankNode tank, [Combine, JoinByTank] FlagNode flag) { e.Value = evaluator.ctfTargetEvaluator.FlagCarrierPriorityBonus; }