Пример #1
0
    public override void Initialize(AiClient client)
    {
        base.Initialize(client);
        mySeeker = (Seeker)MyClient;
        EventManager.Instance.AddListener <Events.UtilityAi.OnActionChanged>(
            e =>
        {
            if (!MyClient.Equals(Events.UtilityAi.OnActionChanged.Origin))
            {
                return;
            }

            if (Events.UtilityAi.OnActionChanged.Action.GetType() != typeof(Investigate))
            {
                investigatingSquare = default(Square);
                currentTarget       = Vector3.zero;
            }
            else
            {
                investigatingSquare = new Square
                {
                    HigherX = mySeeker.transform.position.x + radius,
                    LowerX  = mySeeker.transform.position.x - radius,
                    HigherZ = mySeeker.transform.position.z + radius,
                    LowerZ  = mySeeker.transform.position.z - radius
                }
            };

            MyClient.StartCoroutine(Timer());
        });
    }
Пример #2
0
 public override void Initialize(AiClient client)
 {
     score = 0;
     base.Initialize(client);
     info = MyClient.GetType().GetField(affectingBoolean, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
     EventManager.Instance.AddListener <Events.UtilityAi.OnValueChanged>(UpdateBool);
 }
Пример #3
0
    public static void Register(AiClient client)
    {
        if (clients.Contains(client))
        {
            Debug.Log($"{client} already a Client");
            return;
        }

        clients.Add(client);
        Debug.Log(clients.Count);
    }
Пример #4
0
 public override void Initialize(AiClient client)
 {
     score = 0;
     EventManager.Instance.AddListener <Events.UtilityAi.OnActionChanged>(e =>
     {
         if (MyClient.Equals(Events.UtilityAi.OnActionChanged.Origin) && Events.UtilityAi.OnActionChanged.Action.Name == resetAction)
         {
             ResetScore();
         }
     });
     base.Initialize(client);
 }
Пример #5
0
    private void CreateAiClients()
    {
        aiClients = new AiClient[numberOfAiClients];
        GameObject parent = new GameObject("Car pool");

        for (int i = 0; i < numberOfAiClients; i++)
        {
            GameObject car = Instantiate(carPrefab, parent.transform);
            car.name = "Car " + i;
            AiClient aiClient = car.GetComponent <AiClient>();
            aiClient.id = i;
            aiClient.drivingTestCompleted.AddListener(OnAiCompletedTraining);
            aiClients[i] = aiClient;
        }
    }
Пример #6
0
    private void SpawnCars()
    {
        foreach (GameObject car in carPool)
        {
            Destroy(car);
        }
        carPool = new List <GameObject>();

        for (int i = 0; i < school.TeamCarsten.Drivers.Count; i++)
        {
            GameObject car = Instantiate(carPrefab, startLine.transform.position, startLine.transform.rotation);// Quaternion.Euler(0, -100, 0));
            car.name = "Car " + i;
            AiClient aiClient = car.GetComponent <AiClient>();
            aiClient.network = school.TeamCarsten.Drivers[i].Brain;
            carPool.Add(car);
        }
    }
Пример #7
0
 protected override void Awake()
 {
     base.Awake();
     Agent = GetComponent <NavMeshAgent>();
     EventManager.Instance.AddListener <Events.Senses.SpottingChanged>(e =>
     {
         if (Events.Senses.SpottingChanged.Target != null && Events.Senses.SpottingChanged.Target.Equals(gameObject))
         {
             hasBeenSpotted = true;
             Follower       = Events.Senses.SpottingChanged.Client;
         }
         else
         {
             hasBeenSpotted = false;
             // Follower = null;
         }
         EventManager.Instance.TriggerEvent(new Events.UtilityAi.OnValueChanged());
     });
 }
Пример #8
0
    public override void Initialize(AiClient client)
    {
        obstacles = Physics.OverlapSphere(client.transform.position, int.MaxValue, 1 << 13);
        myHider   = (Hider)client;

        EventManager.Instance.AddListener <Events.UtilityAi.OnActionChanged>(e =>
        {
            if (Events.UtilityAi.OnActionChanged.Origin.Equals(myHider) && Events.UtilityAi.OnActionChanged.Action.GetType() == GetType())
            {
                HideBehindObstacle(FindClosest(myHider.transform.position));
            }
            else if (Events.UtilityAi.OnActionChanged.Origin.Equals(myHider) &&
                     Events.UtilityAi.OnActionChanged.Action.GetType() != GetType())
            {
                myHider.hidingTarget = default(Vector3);
            }
        });
        base.Initialize(client);
    }
        private async void button_Click(object sender, RoutedEventArgs e)
        {
            var host = BindAddress.Text;
            var port = BindPort.Text;

            try
            {
                var aiClient = new AiClient
                {
                    Name          = "StoneGhost" + _clients.Count,
                    NetworkClient = new NetworkClient(host, port)
                };
                var result = await aiClient.LoginAsync();

                _rootPage.DisplayMessage(result);
                _clients.Add(aiClient);

                while (_clients.Count >= 2)
                {
                    foreach (var client in _clients)
                    {
                        await client.Tick();

                        /*var writer = new DataWriter(client.NetworkClient.Socket.OutputStream);
                         * writer.WriteString("Foobar");
                         *
                         * await writer.StoreAsync();
                         */
                    }
                }
            }
            catch (Exception exception)
            {
                _rootPage.DisplayMessage(exception.Message);
            }
        }
Пример #10
0
 public override void Initialize(AiClient client)
 {
     myHider = (Hider)client;
     base.Initialize(client);
 }
Пример #11
0
 // Constructor
 public virtual void Initialize(AiClient client)
 {
     MyClient = client;
 }
Пример #12
0
 public override void Initialize(AiClient client)
 {
     myHider = (Hider)client;
     target  = myHider.Target.transform.position;
     base.Initialize(client);
 }
Пример #13
0
 public float CalculateScore(AiClient client)
 {
     return(client.carController.carData.distanceDriven * 10 + 5);
 }
Пример #14
0
 public OnActionChanged(AiClient origin, Action action)
 {
     Origin = origin;
     Action = action;
 }
Пример #15
0
 public SpottingChanged(AiClient client, GameObject target)
 {
     Client = client;
     Target = target;
 }
Пример #16
0
 public override void Initialize(AiClient client)
 {
     base.Initialize(client);
     mySeeker = (Seeker)MyClient;
 }