Exemplo n.º 1
0
    public void GenerateNewMap(GenerationMessage message)
    {
        Console._instance.AddLog("Generate map.");
        GameObject map = Instantiate(ResourcesManager._instance.maps_dic[message.mapId], Vector3.zero, Quaternion.identity, null);
        Dictionary <ModelConfiguration.Type, List <string> > models_received = new Dictionary <ModelConfiguration.Type, List <string> >();
        List <Spawner> spawner = new List <Spawner>();

        foreach (GenerationMessage.ModelGroup model in message.modelGroups)
        {
            models_received.Add(model.type, model.modelIds);
        }
        ReplaceAssets(models_received, map.transform, spawner, message.fearIntensity);
        if (spawner.Count != 0)
        {
            spawner.OrderBy(x => Guid.NewGuid()).FirstOrDefault();
            float limit = spawner.Count * message.fearIntensity;
            limit = Mathf.Clamp(limit, 1.0f, spawner.Count);
            for (int i = 0; i < limit; i++)
            {
                spawner[i].Activate(message.fearIntensity);
            }
        }
        RoomManager._instance.MapIsReady(map);
        SamTags.FetchFromRoom(map, out List <SamTags> tags);
        TriggerManager._instance.UpdateRoomConfig(tags, message.fear, message.fearIntensity);
    }
Exemplo n.º 2
0
    void Update()
    {
        generation_client.Update();
        if (!is_connected)
        {
            Init();
            return;
        }
        if (queue_data.Count > 0)
        {
            response = queue_data.Dequeue();
            if (response != null)
            {
                switch (response.type)
                {
                case GenerationMessage.Type.RoomConfiguration:
                    Orchestration._instance.GenerateNewMap(response);
                    SendScreenShot();
                    break;

                case GenerationMessage.Type.FearLevel:
                    TriggerManager._instance.UpdateFear(response.fearIntensity);
                    break;

                case GenerationMessage.Type.Quit:
                    Console._instance.AddLog("Endding game.");
                    LoadWaitScene();
                    break;

                case GenerationMessage.Type.Start:
                    Console._instance.AddLog("Starting game.");
                    LoadGameScene();
                    RoomManager._instance.RequestRoom();
                    break;

                case GenerationMessage.Type.Terminate:
                    Console._instance.AddLog("Exit.");
                    Application.Quit();
                    break;

                default:
                    print("Unknown data.");
                    break;
                }
            }
        }
    }
Exemplo n.º 3
0
 private void Init()
 {
     if (queue_data.Count < 1)
     {
         return;
     }
     response = queue_data.Dequeue();
     if (response.type == GenerationMessage.Type.Initialize)
     {
         Console._instance.AddLog("Connected to generation.");
         is_connected = true;
         StartEnvironnement();
     }
     if (response.type == GenerationMessage.Type.Terminate)
     {
         Console._instance.AddLog("Exit on error.");
         Application.Quit();
     }
 }
Exemplo n.º 4
0
 public abstract void ExecuteEvent(GenerationMessage message);
Exemplo n.º 5
0
 public override void ExecuteEvent(GenerationMessage data)
 {
     start_event = true;
 }