Ejemplo n.º 1
0
 public void _Enqueue(BasePopUp basePopUp)
 {
     WaitingPopUps.Enqueue(basePopUp);
     if (ActivePopUps.Count == 0)
     {
         ShowNextInQueue();
     }
 }
Ejemplo n.º 2
0
 public int GetIndexOf(BasePopUp popUp)
 {
     if (HasPopUp(popUp))
     {
         return(allActivePopUps.IndexOf(popUp));
     }
     return(-1);
 }
Ejemplo n.º 3
0
 private void OnPopUpBeingDestroyedEvent(BasePopUp popUpEffected)
 {
     if (allActivePopUps.Contains(popUpEffected))
     {
         popUpEffected.PopUpBeingDestroyedEvent -= OnPopUpBeingDestroyedEvent;
         allActivePopUps.Remove(popUpEffected);
         UpdateList();
     }
 }
Ejemplo n.º 4
0
    private void _Show(BasePopUp basePopUp)
    {
        ActivePopUps.Push(basePopUp);

        basePopUp.RegisterOnCloseDone(OnPopUpClose);
        basePopUp.RegisterOnCloseDone(() => Destroy(basePopUp.gameObject));

        basePopUp.Open();
    }
Ejemplo n.º 5
0
 public void InitializeDictionary()
 {
     popUps = new Dictionary <string, GameObject>();
     for (int i = 0; i < defaultPopUps.Count; i++)
     {
         BasePopUp popUp = defaultPopUps[i].GetComponent <BasePopUp>();
         popUps.Add(popUp.GetConfigType().FullName ?? string.Empty, popUp.gameObject);
         Debug.Log($"Added: {popUp.GetConfigType().FullName} => {popUp.gameObject}");
     }
 }
Ejemplo n.º 6
0
 private int LayerSort(BasePopUp x, BasePopUp y)
 {
     if (x.SortingLayer < y.SortingLayer)
     {
         return(-1);
     }
     if (x.GetInstanceID() < y.GetInstanceID())
     {
         return(1);
     }
     return(-1);
 }
Ejemplo n.º 7
0
    public bool AddPopUp(BasePopUp popUp)
    {
        if (!HasPopUp(popUp))
        {
            popUp.PopUpBeingDestroyedEvent += OnPopUpBeingDestroyedEvent;
            allActivePopUps.Add(popUp);
            UpdateList();
            return(true);
        }

        return(false);
    }
Ejemplo n.º 8
0
    private void OnThiefEffectEnd(BasePopUp popUpEffected)
    {
        popUpEffected.PopUpBeingDestroyedEvent -= OnThiefEffectEnd;
        int amountTaken = _game.GetGamePlayerBy(_effectedFactionType).TakeCoins();

        if (_effectedFactionType != _currentEffectGamePlayer.FactionType)
        {
            _currentEffectGamePlayer.GiveCoins(amountTaken);
        }

        DoneEffect(_currentEffectGamePlayer, _currentEffectOfSkill);
    }
Ejemplo n.º 9
0
 public void ClosePopUp(BasePopUp _PopUp)
 {
     if (listCurrentPopUp.Contains(_PopUp))
     {
         GameObject.Destroy(_PopUp.transform.parent.gameObject);
         //GameObject.Destroy (_PopUp.gameObject);
         listCurrentPopUp.Remove(_PopUp);
     }
     if (listCurrentPopUp.Count == 0)
     {
         canvas.gameObject.SetActive(false);
     }
 }
Ejemplo n.º 10
0
    private void _Show <T>(BasePopUp basePopUp, T config) where T : PopUp.BasePopUpConfig
    {
        if (!(basePopUp is IInitializeWith <T> popUp))
        {
            Debug.LogError($"El popUp {basePopUp} no se configura con un {typeof(T).FullName} necesita un {basePopUp.GetConfigType().FullName}");
        }
        else
        {
            popUp.Initialize(config);
        }

        _Show(basePopUp);
    }
Ejemplo n.º 11
0
    private void _Enqueue <T>(BasePopUp basePopUp, T config) where T : PopUp.BasePopUpConfig
    {
        IInitializeWith <T> popUp = basePopUp as IInitializeWith <T>;

        if (popUp == null)
        {
            Debug.LogError($"El popUp {basePopUp} no se configura con un {typeof(T).FullName} necesita un {basePopUp.GetConfigType().FullName}");
        }
        else
        {
            popUp.Initialize(config);
        }
        _Enqueue(basePopUp);
    }
Ejemplo n.º 12
0
    private void OnDestructionEffectEnd(BasePopUp popUpEffected)
    {
        popUpEffected.PopUpBeingDestroyedEvent -= OnDestructionEffectEnd;
        GamePlayer gamePlayerEffected = _game.GetGamePlayerBy(_effectedFactionType);

        if (gamePlayerEffected.SkillPouch.Skill == Skill.Miracle)
        {
            return;
        }                                                                     // If Miracle then you can't be effected by destroy skill.

        BuildField[] buildFieldsOfTargetFaction = _game.Playfield.GetCornerByFaction(_effectedFactionType).GetAllBuildFieldsInUse();
        if (buildFieldsOfTargetFaction.Length > 0)
        {
            buildFieldsOfTargetFaction[UnityEngine.Random.Range(0, buildFieldsOfTargetFaction.Length)].DestroyCurrentBuilding();
        }

        DoneEffect(_currentEffectGamePlayer, _currentEffectOfSkill);
    }
Ejemplo n.º 13
0
 public bool HasPopUp(BasePopUp popUp)
 {
     return(allActivePopUps.Contains(popUp));
 }