Exemplo n.º 1
0
 void tryChangeStaticRecources()
 {
     GlobalRecources.RecourcesChanged -= tryChangeStaticRecources;
     if (PBParams.recourcesRequired)
     {
         if (GlobalRecources.CanChangeAmount(PBParams.StaticRecourcesRequired, true))
         {
             GlobalRecources.SubstractRecources(PBParams.StaticRecourcesRequired);
             GlobalRecources.AddRecources(PBParams.StaticRecourcesProvided);
             if (UtilityDebug.PassivebuildingLog)
             {
                 Debug.Log($"[PB_ProductionCycle] {Building.BuildingName} вычел input, дал output [{Time.deltaTime}]", Building.gameObject);
             }
             StaticRecourcesChanged.Invoke();
         }
         else
         {
             GlobalRecources.RecourcesChanged += tryChangeStaticRecources;
         }
     }
     else
     {
         GlobalRecources.AddRecources(PBParams.StaticRecourcesProvided);
         if (UtilityDebug.PassivebuildingLog)
         {
             Debug.Log($"[PB_ProductionCycle] {Building.BuildingName} input не нужен, отдаю output. [{Time.deltaTime}]", Building.gameObject);
         }
         StaticRecourcesChanged.Invoke();
     }
 }
Exemplo n.º 2
0
    void updateInfo()
    {
        KeyValuePair <GlobalRecourceType, int>[] inputKVPS;
        KeyValuePair <GlobalRecourceType, int>[] outputKVPS = currentState.PBParams.StaticRecourcesProvided.ToArray();;
        int i = 0;

        if (currentState.PBParams.recourcesRequired)
        {
            inputKVPS = currentState.PBParams.StaticRecourcesRequired.ToArray();
            for (i = 0; i < inputKVPS.Length; i++)
            {
                inputImages[i].SetActive(true);
                inputImages[i].GetComponent <Image>().sprite        = staticRecourceIcons.Sprites[(int)inputKVPS[i].Key];
                inputImages[i].GetComponentInChildren <Text>().text = $"{GlobalRecources.GetAmount(inputKVPS[i].Key)} / " +
                                                                      $"{inputKVPS[i].Value}";
            }
        }
        for (; i < 4; i++)
        {
            inputImages[i].SetActive(false);
        }
        for (i = 0; i < outputKVPS.Length; i++)
        {
            outputImages[i].SetActive(true);
            outputImages[i].GetComponent <Image>().sprite        = staticRecourceIcons.Sprites[(int)outputKVPS[i].Key];
            outputImages[i].GetComponentInChildren <Text>().text = $"{outputKVPS[i].Value}";
        }
        for (; i < 4; i++)
        {
            outputImages[i].SetActive(false);
        }
    }
 private void Start()
 {
     utilityDebug.Initialization(settings);
     Tile[,] tileMap = mapGen.GenerateMap(settings);
     Map.Initialize(settings, tileMap);
     GlobalRecources.Initializtion(settings.StaringStaticRes);
     constructOnGameStart();
     CameraMovement.Initialize();
     if (Map.StorageBuildings.Count != 0)
     {
         foreach (var res in settings.Startingrecource)
         {
             Map.StorageBuildings[0].Storage.AddMaximumAmount(res.Type, res.Amount, out int c);
         }
     }
     UIManager.Initialize();
 }
    private void Awake()
    {
        foreach (var item in Enum.GetValues(typeof(GlobalRecourceType)))
        {
            GlobalRecourceType type  = (GlobalRecourceType)item;
            GameObject         image = Instantiate(StaticRecourceImagePrefab, Layout.transform);
            Text text = image.GetComponentInChildren <Text>();
            image.GetComponent <Image>().sprite = recourceSprites.Sprites[(int)type];
            texts.Add(type, text);
        }
        foreach (var kvp in texts)
        {
            kvp.Value.text = GlobalRecources.GetAmount(kvp.Key).ToString();
        }

        GlobalRecources.RecourceChanged += changeAmount;
    }
 void checkStaticRecources()
 {
     GlobalRecources.RecourcesChanged -= checkStaticRecources;
     if (GlobalRecources.CanChangeAmount(abParams.StaticRecourceCost, true))
     {
         GlobalRecources.SubstractRecources(abParams.StaticRecourceCost);
         if (UtilityDebug.ActivebuildingLog)
         {
             Debug.Log($"[AB_State_productionCycle] {Building.BuildingName} проверка статичных ресурсов пройдена" +
                       $" [{Time.deltaTime}]", Building.gameObject);
         }
         staticRecourceProvided();
     }
     else
     {
         GlobalRecources.RecourcesChanged += checkStaticRecources;
     }
 }
 void changeAmount(GlobalRecourceType type)
 {
     // Debug.Log(StaticRecources.GetAmount(type).ToString());
     texts[type].text = GlobalRecources.GetAmount(type).ToString();
 }