예제 #1
0
 public static void SRemoveEmployee(ISettler settler)
 {
     if (s_instance != null)
     {
         s_instance.RemoveEmployee(settler);
     }
 }
예제 #2
0
 public static void SShowSettler(ISettler settler)
 {
     if (s_instance != null)
     {
         s_instance.ShowSettler(settler);
     }
 }
예제 #3
0
    public void ShowEmployScreen()
    {
        m_employee = null;
        employButton.gameObject.SetActive(false);
        m_settlersAvailable = 0;
        int i;

        for (i = 0; i < container.transform.childCount; i++)
        {
            GameObject.Destroy(container.transform.GetChild(i).gameObject);
        }
        List <ISettler> settlers = M_SettlersManager.SGetSettlers();

        i = 0;
        foreach (Settler s in settlers)
        {
            if (s.GetWorkplace() == Guid.Empty)
            {
                m_settlersAvailable++;
                GameObject temp = Instantiate(settlerUIprefab);
                temp.transform.SetParent(container.transform);
                temp.GetComponent <UI_ElemSettlerEmploy>().Setup(s, settlerScreen);
                RectTransform rectTransform = temp.GetComponent <RectTransform>();
                float         yOffset       = container.GetComponent <RectTransform>().rect.height / 2 - rectTransform.rect.height / 2;
                rectTransform.localPosition = new Vector3(0, yOffset - rectTransform.rect.height * i, 0);
                i++;
            }
        }
        settlersCount.text = m_settlersAvailable.ToString();

        M_ScreenManager.SChangeScreenPersistentBack(this.gameObject);
    }
예제 #4
0
    public void Setup(ISettler settler, GameObject settlerScreen)
    {
        if (settler == null)
        {
            Debug.LogWarning("Settler cannot be null!");
            return;
        }
        else if (settlerScreen == null)
        {
            Debug.LogWarning("SettlerScreen cannot be null!");
            return;
        }

        if (s_count % 2 == 0)
        {
            gameObject.GetComponent <Image>().color = backgroundAColor;
            m_baseColor = backgroundAColor;
        }
        else
        {
            gameObject.GetComponent <Image>().color = backgroundBColor;
            m_baseColor = backgroundBColor;
        }


        m_settler = settler;
        name.text = settler.GetName();

        settlerPortrait.sprite = M_SettlersManager.SGetPortrait(settler.GetPortraitId());
        m_settlerScreen        = settlerScreen;

        s_count++;
    }
예제 #5
0
 public void AddEmployee(Settler settler)
 {
     if (settler == m_employee)
     {
         m_employee = null;
         return;
     }
     m_employee = settler;
     RefreshUI();
 }
예제 #6
0
    /// <summary>
    /// Assings House into given Settler. Note that it won't handle any
    /// on-Building operaions like updates.
    /// </summary>
    /// <returns> Previous Settler's house </returns>
    public Guid AssignHouse(Guid settlerId, Guid buildingId)
    {
        ISettler settler = GetSettler(settlerId);

        if (settler == null)
        {
            Debug.LogWarning("Given settler's GUID is invalid.");
            return(Guid.Empty);
        }
        return(settler.SetHouse(buildingId));
    }
예제 #7
0
    /// <summary>
    /// Appropriate way to Remove workplace from Settler.
    /// Note that it won't handle any Building Update.
    /// </summary>
    /// <returns>Id of removed workplace</returns>
    public Guid RemoveWorkplace(Guid settlerId)
    {
        ISettler settler = GetSettler(settlerId);

        if (settler == null)
        {
            Debug.LogWarning("Given settler's GUID is invalid.");
            return(Guid.Empty);
        }
        return(settler.RemoveWorkplace());
    }
예제 #8
0
 public void RemoveEmployee(ISettler settler)
 {
     if (s_workersToRemove.Contains(settler))
     {
         s_workersToRemove.Remove(settler);
     }
     else
     {
         s_workersToRemove.Add(settler);
     }
     RefreshUI();
 }
예제 #9
0
 public void ShowSettler(ISettler settler)
 {
     /*
      * if (settler == null)
      * {
      *  Debug.LogWarning(typeof(Settler).Name + " cannot be null!");
      *  M_ScreenManager.SPreviousScreen();
      *  return;
      * }
      *
      * m_settler = settler;
      * settlerName.text = settler.m_name;
      * settlerUpkeep.text = settler.m_upkeep.ToString();
      * settlerMoodSlider.value = settler.m_mood;
      * settlerMoodValue.text = settler.mood.ToString();
      *
      * settlerPortrait.sprite = M_SettlersManager.SGetPortrait(settler.GetPortraitId()); */
 }
예제 #10
0
    public void Setup(ISettler settler, GameObject settlerScreen)
    {
        if (s_counter % 2 == 0)
        {
            gameObject.GetComponent <Image>().color = colorRowA;
        }
        else
        {
            gameObject.GetComponent <Image>().color = colorRowB;
        }

        m_settler        = settler;
        m_settlerScreen  = settlerScreen;
        name.text        = settler.GetName();
        moodSlider.value = settler.GetMood();

        settlerPortrait.sprite = M_SettlersManager.SGetPortrait(settler.GetPortraitId());
        infoButton.onClick.AddListener(OnClickInfo);

        s_counter++;
    }
예제 #11
0
    public void ShowSettler(ISettler settler)
    {
        if (settler == null)
        {
            Debug.LogWarning(typeof(ISettler).Name + " cannot be null!");
            M_ScreenManager.SPreviousScreen();
            return;
        }


        m_settler          = settler;
        settlerName.text   = settler.GetName();
        settlerUpkeep.text = settler.GetUpkeep().ToString();
        settlerMood.value  = settler.GetMood();
        moodValue.text     = string.Format("{0}%", settler.GetMood());

        // Preferences

        List <GameObject> favBuildings = new List <GameObject>();

        foreach (FavoriteBuilding favoriteBuilding in settler.GetFavoriteBuildings())
        {
            GameObject obj = Instantiate(favoriteThingRowElementPrefab);
            if (favoriteBuilding.active)
            {
                obj.GetComponent <Image>().color = elemBgHighlightColor;
            }
            obj.GetComponentInChildren <TMP_Text>().text = M_BuildingManager.SGetDatBuilding(favoriteBuilding.buildingTemplId).name;
            obj.GetComponentInChildren <Slider>().value  = favoriteBuilding.maxMood;
            favBuildings.Add(obj);
        }

        List <GameObject> favWares = new List <GameObject>();

        foreach (FavoriteWare favoriteWare in settler.GetFavoriteWares())
        {
            GameObject obj = Instantiate(favoriteThingRowElementPrefab);
            if (favoriteWare.active)
            {
                obj.GetComponent <Image>().color = elemBgHighlightColor;
            }
            obj.GetComponentInChildren <TMP_Text>().text = favoriteWare.ware.ToString();
            obj.GetComponentInChildren <Slider>().value  = favoriteWare.mood;
            favWares.Add(obj);
        }
        GUIUtils.AddElementsToCleanYScrollContainer(favoriteBuildingsContainer, favBuildings);
        GUIUtils.AddElementsToCleanYScrollContainer(favoriteWaresContainer, favWares);
        preferencesSubPage.SetActive(false);


        settlerPortrait.sprite = M_SettlersManager.SGetPortrait(settler.GetPortraitId());

        if (settler.GetWorkplace() != System.Guid.Empty)
        {
            workplaceButton.image.sprite = M_BuildingManager.SGetBuilding(settler.GetWorkplace()).GetIcon();
        }
        else
        {
            workplaceButton.image.sprite = spriteWhenNoWorkplace;
        }

        if (settler.GetHouse() != System.Guid.Empty)
        {
            homeButton.image.sprite = M_BuildingManager.SGetBuilding(settler.GetHouse()).GetIcon();
        }
        else
        {
            homeButton.image.sprite = spriteWhenNoWorkplace;
        }


        M_ScreenManager.SChangeScreenPersistentBack(this.gameObject);
    }