private void Awake()
    {
        projectController         = ProjectController.Instance;
        characterStatusController = CharacterStatusController.Instance;
        ideasController           = IdeasController.Instance;
        gameManager = GameManager.Instance;
        gameManager.OnGameStateChanged.AddListener(OnGameStateChangedHandler);

        notificationController = GameObject.FindGameObjectWithTag("NotificationController").GetComponentInChildren <NotificationController>();
        platformNameIdeas      = new List <string>();
        playerNameIdeas        = new List <string>();


        #region Select temp
        goalSlot      = new BaseWorkingProjectIdeaSlot();
        mechanicSlots = new BaseWorkingProjectIdeaSlot[2];
        for (int i = 0; i < mechanicSlots.Length; i++)
        {
            mechanicSlots[i] = new BaseWorkingProjectIdeaSlot();
        }
        themeSlots         = new BaseWorkingProjectIdeaSlot();
        countMechanicSlots = 0;
        #endregion

        Initializing();
    }
 private void CheckGoalSelect(BaseWorkingProjectIdeaSlot baseIdeaSlot)
 {
     //empty
     if (goalSlot.IDEASLOT == null)
     {
         goalSlot = baseIdeaSlot;
         LoopSetSelectGoalNormal(baseIdeaSlot.IDEASLOT.Id, true);
         workProjectQuestionDisplay.DisplayGoal(goalSlot.IDEASLOT.IdeaName, true);
     }
     else
     {
         string goalSlotId = goalSlot.IDEASLOT.Id;
         string baseSlotId = baseIdeaSlot.IDEASLOT.Id;
         //same idea
         if (goalSlotId.Equals(baseSlotId))
         {
             goalSlot = new BaseWorkingProjectIdeaSlot();
             LoopSetSelectGoalNormal(baseSlotId, false);
             workProjectQuestionDisplay.DisplayGoal(string.Empty, false);
         }
         else
         {
             goalSlot = baseIdeaSlot;
             LoopSetSelectGoalSwap(baseSlotId, goalSlotId);
             workProjectQuestionDisplay.DisplayGoal(goalSlot.IDEASLOT.IdeaName, true);
         }
     }
 }
 private void CheckThemeSelect(BaseWorkingProjectIdeaSlot baseIdeaSlot)
 {
     //empty
     if (themeSlots.IDEASLOT == null)
     {
         themeSlots = baseIdeaSlot;
         LoopSetSelectThemeNormal(baseIdeaSlot.IDEASLOT.Id, true);
         workProjectQuestionDisplay.DisplayTheme(themeSlots.IDEASLOT.IdeaName, true);
     }
     else
     {
         string themeSlotId = themeSlots.IDEASLOT.Id;
         string baseSlotId  = baseIdeaSlot.IDEASLOT.Id;
         //same idea
         if (themeSlotId.Equals(baseSlotId))
         {
             themeSlots = new BaseWorkingProjectIdeaSlot();
             LoopSetSelectThemeNormal(baseSlotId, false);
             workProjectQuestionDisplay.DisplayTheme(string.Empty, false);
         }
         else
         {
             themeSlots = baseIdeaSlot;
             LoopSetSelectThemeSwap(baseSlotId, themeSlotId);
             workProjectQuestionDisplay.DisplayTheme(themeSlots.IDEASLOT.IdeaName, true);
         }
     }
 }
 private void SetDescriptinoCollected(BaseWorkingProjectIdeaSlot baseIdeaSlot)
 {
     nameIdea.text        = baseIdeaSlot.IDEASLOT.IdeaName;
     typeIdea.text        = ConvertType.ConvertIdeaTypeToString(baseIdeaSlot.IDEASLOT.IdeaType);
     descriptionIdea.text = baseIdeaSlot.IDEASLOT.Description;
     imageIdea.enabled    = true;
     imageIdea.sprite     = baseIdeaSlot.IDEASLOT.IdeaImage;
 }
 private void OnPointEnterIdeaSlotHandler(BaseWorkingProjectIdeaSlot baseIdeaSlot)
 {
     descriptionGameObject.SetActive(true);
     if (baseIdeaSlot.IDEASLOT.Collected)
     {
         SetDescriptinoCollected(baseIdeaSlot);
     }
 }
    private void OnClickWorkProjectHandler(BaseWorkingProjectIdeaSlot baseIdeaSlot)
    {
        switch (baseIdeaSlot.IDEASLOT.IdeaType)
        {
        case IdeaType.Goal:
            CheckGoalSelect(baseIdeaSlot);
            break;

        case IdeaType.Mechanic:
            CheckMachanicSelect(baseIdeaSlot);
            break;

        case IdeaType.Theme:
            CheckThemeSelect(baseIdeaSlot);
            break;
        }
    }
 private void OnPointExitIdeaSlotHandler(BaseWorkingProjectIdeaSlot baseIdeaSlot)
 {
     descriptionGameObject.SetActive(false);
 }
    private void CheckMachanicSelect(BaseWorkingProjectIdeaSlot baseIdeaSlot)
    {
        //slot 0 and slot 1 is empty add to slot 0
        if (mechanicSlots[0].IDEASLOT == null && mechanicSlots[1].IDEASLOT == null)
        {
            mechanicSlots[0] = baseIdeaSlot;
            LoopSetSelectMechanicNormal(baseIdeaSlot.IDEASLOT.Id, true);
        }
        //add new idea to slot 1 if slot 1 is empty and slot 0 is not null
        else if (mechanicSlots[0].IDEASLOT != null && mechanicSlots[1].IDEASLOT == null)
        {
            //and new idea to slot 1 if not same idea in slot 0
            if (!mechanicSlots[0].IDEASLOT.Id.Equals(baseIdeaSlot.IDEASLOT.Id))
            {
                mechanicSlots[1] = baseIdeaSlot;
                LoopSetSelectMechanicNormal(baseIdeaSlot.IDEASLOT.Id, true);
            }
            else //unselect as same idea
            {
                mechanicSlots[0] = new BaseWorkingProjectIdeaSlot();
                LoopSetSelectMechanicNormal(baseIdeaSlot.IDEASLOT.Id, false);
            }
        }
        //add new idea to slot 0 if slot 0 is empty and slot 1 is not null
        else if (mechanicSlots[0].IDEASLOT == null && mechanicSlots[1].IDEASLOT != null)
        {
            //and new idea to slot 0 if not same idea in slot 1
            if (!mechanicSlots[1].IDEASLOT.Id.Equals(baseIdeaSlot.IDEASLOT.Id))
            {
                mechanicSlots[0] = baseIdeaSlot;
                LoopSetSelectMechanicNormal(baseIdeaSlot.IDEASLOT.Id, true);
            }
            else //unselect as same idea
            {
                mechanicSlots[1] = new BaseWorkingProjectIdeaSlot();
                LoopSetSelectMechanicNormal(baseIdeaSlot.IDEASLOT.Id, false);
            }
        }
        else //slot 0 and slot 1 is not null
        {
            string mechanicFirstSlotId  = mechanicSlots[0].IDEASLOT.Id;
            string mechanicSecondSlotId = mechanicSlots[1].IDEASLOT.Id;
            string baseSlotId           = baseIdeaSlot.IDEASLOT.Id;

            //same idea first unselect
            if (mechanicFirstSlotId.Equals(baseSlotId))
            {
                mechanicSlots[0] = new BaseWorkingProjectIdeaSlot();
                LoopSetSelectMechanicNormal(baseSlotId, false);
            }
            else if (mechanicSecondSlotId.Equals(baseSlotId)) //same idea first unselect
            {
                mechanicSlots[1] = new BaseWorkingProjectIdeaSlot();
                LoopSetSelectMechanicNormal(baseSlotId, false);
            }
            else //select new idea and unselect past idea
            {
                if (countMechanicSlots == 0)
                {
                    mechanicSlots[0] = baseIdeaSlot;
                    LoopSetSelectMechanicSwap(baseSlotId, mechanicFirstSlotId);
                    countMechanicSlots = 1;
                }
                else
                {
                    mechanicSlots[1] = baseIdeaSlot;
                    LoopSetSelectMechanicSwap(baseSlotId, mechanicSecondSlotId);
                    countMechanicSlots = 0;
                }
            }
        }
        DisplayMechanicSelect();
    }
Ejemplo n.º 9
0
 protected void OnClickWorkProjectIdeaSlotEventHandler(BaseWorkingProjectIdeaSlot baseIdeaSlot)
 {
     OnClickWorkProjectIdeaSlot?.Invoke(baseIdeaSlot);
 }
Ejemplo n.º 10
0
 protected void OnPointEnterIdeaSlotEventHandler(BaseWorkingProjectIdeaSlot baseIdeaSlot)
 {
     OnPointEnterWorkProjectIdeaSlot?.Invoke(baseIdeaSlot);
 }