public void EvaluateTeamTank(IsisEvaluateTeamTankEvent e, WeaponNode weapon, TeamTankNode targetTank)
        {
            TargetData targetData = e.TargetData;

            if (e.ShooterTeamKey != targetTank.teamGroup.Key)
            {
                base.Log.Debug("EvaluateTeamTank: enemy team");
                targetData.Priority += 2f;
            }
            else
            {
                base.Log.Debug("EvaluateTeamTank: same team");
                targetData.Priority++;
                HealthComponent health = targetTank.health;
                if (health.CurrentHealth != health.MaxHealth)
                {
                    base.Log.Debug("EvaluateTeamTank: not full health");
                    targetData.Priority += 2f;
                }
                TemperatureComponent temperature = targetTank.temperature;
                if (temperature.Temperature > 0f)
                {
                    base.Log.Debug("EvaluateTeamTank: positive temperature");
                    targetData.Priority += 5f;
                }
                else if (temperature.Temperature < 0f)
                {
                    base.Log.Debug("EvaluateTeamTank: negative temperature");
                    targetData.Priority += 4f;
                }
            }
        }
 public void AddEnemyComponent(NodeAddedEvent e, [Combine] TeamTankNode tank, [Context, JoinByBattle] SelfBattleUserAsTank userAsTank)
 {
     if (!tank.teamGroup.Key.Equals(userAsTank.teamGroup.Key))
     {
         tank.Entity.AddComponent <EnemyComponent>();
     }
     tank.Entity.AddComponent <TankFriendlyEnemyStatusDefinedComponent>();
 }
        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();
                }
            }
        }