Пример #1
0
 /// <summary>
 /// Добавить в очередь
 /// </summary>
 /// <param name="objectForPlacement"></param>
 public void AddQueue(ObjectForPlacementData objectForPlacement)
 {
     if (content.childCount > 0)
     {
         ClearContent <FigurineData>();
         ClearContent <SubjectData>();
     }
     Create(objectForPlacement);
 }
Пример #2
0
    private void Update()
    {
        if (objectsRepeat.Count > 0 && content.childCount == 0)
        {
            Create(objectsRepeat[0]);
            objectsRepeat.RemoveAt(0);
        }
        if (content.childCount == 0 && player.Currencies[step].Amount > 0)
        {
            while (true)
            {
                for (int index = 0; index < objectsForPlacementData.Length; index++)
                {
                    int indexRandomNumber       = Random.Range(0, objectsForPlacementData.Length);
                    ObjectForPlacementData temp = objectsForPlacementData[index];
                    objectsForPlacementData[index]             = objectsForPlacementData[indexRandomNumber];
                    objectsForPlacementData[indexRandomNumber] = temp;
                }

                ObjectForPlacementData objectForPlacementData = objectsForPlacementData[Random.Range(0, objectsForPlacementData.Length)];
                int randomNumber = Random.Range(0, 100);
                if (randomNumber <= objectForPlacementData.Chance)
                {
                    if (objectForPlacementData is SubjectData && gameManager.Cells.Where(x => x.Value.Selected != null).Count() > 0)
                    {
                        Create(objectForPlacementData);
                        player.Currencies[step].Amount--;
                        break;
                    }
                    else if (objectForPlacementData is FigurineData)
                    {
                        Create(objectForPlacementData);
                        player.Currencies[step].Amount--;
                        break;
                    }
                    else if (objectForPlacementData is  Accessories)
                    {
                        Accessories accessories = objectForPlacementData as Accessories;
                        if (gameManager.Cells.Where(x => x.Value.Selected != null).Select(x => x.Value.Selected.Data).Contains(accessories.Figurine))
                        {
                            Create(accessories.Subject);
                            player.Currencies[step].Amount--;
                            break;
                        }
                        else
                        {
                            Create(accessories.Figurine);
                            player.Currencies[step].Amount--;
                            break;
                        }
                    }
                }
            }
        }
    }
Пример #3
0
    private void ClearContent <TData>() where TData : ObjectForPlacementData
    {
        ObjectForPlacement <TData> obj = content.GetComponentInChildren <ObjectForPlacement <TData> >();

        if (obj != null)
        {
            ObjectForPlacementData dataRepeat = obj.Data;
            this.objectsRepeat.Add(dataRepeat);
            Destroy(obj.gameObject);
        }
    }
Пример #4
0
 private void Create(ObjectForPlacementData data)
 {
     if (data is FigurineData)
     {
         Figurine figurine = Figurine.Create(prefabFigurine, content, data as FigurineData) as Figurine;
         CreateFigurine?.Invoke(figurine);
     }
     else if (data is SubjectData)
     {
         Subject subject = Subject.Create(prefabSubject, content, data as SubjectData) as Subject;
         CreateSubject?.Invoke(subject);
     }
 }
Пример #5
0
    /// <param name="parent">Default use own parent</param>
    public void Create(ObjectForPlacementData data, RectTransform parent = null)
    {
        if (parent == null)
        {
            parent = content;
        }

        if (data is FigurineData)
        {
            Figurine figurine = Figurine.Create(prefabFigurine, parent, data as FigurineData) as Figurine;
            figurine.name = indefecator;
            CreateFigurine?.Invoke(figurine);
        }
        else if (data is SubjectData)
        {
            Subject subject = Subject.Create(prefabSubject, parent, data as SubjectData) as Subject;
            subject.name = indefecator;
            CreateSubject?.Invoke(subject);
        }
    }
Пример #6
0
 /// <summary>
 /// Добавить в очередь
 /// </summary>
 /// <param name="objectForPlacement"></param>
 public void AddQueue(ObjectForPlacementData objectForPlacement)
 {
     Clear();
     Create(objectForPlacement);
 }