private void ShowWithUserAction(ActionString withUserString)
    {
        ActionCard.ActionType insideType = (ActionCard.ActionType)Enum.Parse(typeof(ActionCard.ActionType), withUserString.variables[0]);
        withUserString.variables[0] = EditorGUILayout.EnumPopup("InsideType", insideType).ToString();

        ActionString moneyString = ActionString.FromString(withUserString.variables[1]);
        ActionString waitString  = ActionString.FromString(withUserString.variables[2]);
        ActionString moveString  = ActionString.FromString(withUserString.variables[3]);

        //Pomijamy indeks 4, bo jest to ActionType.WithUser

        switch (insideType)
        {
        case ActionCard.ActionType.Money:
            ShowMoneyAction(moneyString);
            break;

        case ActionCard.ActionType.Wait:
            ShowWaitAction(waitString);
            break;

        case ActionCard.ActionType.Move:
            ShowMoveAction(moveString);
            break;
        }

        withUserString.variables[1] = moneyString.ToString();
        withUserString.variables[2] = waitString.ToString();
        withUserString.variables[3] = moveString.ToString();
    }
Exemple #2
0
    public static ActionString GenerateDefault(ActionCard.ActionType actionType)
    {
        switch (actionType)
        {
        case ActionCard.ActionType.Money:
            return(new ActionString(ActionCard.ActionType.Money, new List <string>()
            {
                "Bank", "Player", "0"
            }));

        case ActionCard.ActionType.Wait:
            return(new ActionString(ActionCard.ActionType.Wait, new List <string>()
            {
                "Player", "0"
            }));

        case ActionCard.ActionType.Move:
            return(new ActionString(ActionCard.ActionType.Move, new List <string>()
            {
                "By", "0", "PlaceId", "0", "Prison", "Regular"
            }));

        case ActionCard.ActionType.WithUser:
        {
            List <string> variables = new List <string>();
            variables.Add(ActionCard.ActionType.Money.ToString());

            //Ustawianie domyślnych wartości dla wszystkich możliwych ActionType
            foreach (ActionCard.ActionType type in Enum.GetValues(typeof(ActionCard.ActionType)))
            {
                if (type == ActionCard.ActionType.WithUser)
                {
                    variables.Add(new ActionString(ActionCard.ActionType.WithUser, new List <string>()).ToString());
                }
                else
                {
                    variables.Add(GenerateDefault(type).ToString());
                }
            }

            return(new ActionString(ActionCard.ActionType.WithUser, variables));
        }

        case ActionCard.ActionType.Imprison:
            return(new ActionString(ActionCard.ActionType.Imprison, new List <string>()
            {
            }));
        }

        return(null);
    }
    /// <summary>
    /// Otwiera menu do dodawania poszczególnych akcji
    /// </summary>
    /// <param name="card">Obiekt, na którym działa edytor</param>
    private void AddMenu(ChanceCard card)
    {
        EditorGUILayout.BeginHorizontal();

        currentType = (ActionCard.ActionType)EditorGUILayout.EnumPopup("New Action Card", currentType);
        if (GUILayout.Button("Add"))
        {
            ActionString actionString = ActionString.GenerateDefault(currentType);

            actionIsOpen.Add(true);
            card.actionStrings.Add(actionString);
            EditorUtility.SetDirty(target);
        }

        EditorGUILayout.EndHorizontal();
    }
Exemple #4
0
    public static ActionString FromString(string values)
    {
        ActionCard.ActionType actionType     = ActionCard.ActionType.Money;
        List <string>         unpackedValues = new List <string>();
        List <string>         list           = SplitString(values, '{', '}');

        for (int i = 0; i < list.Count; i++)
        {
            string unpacked = list[i].Substring(1, list[i].Length - 2);

            if (i == 0)
            {
                actionType = (ActionCard.ActionType)Enum.Parse(typeof(ActionCard.ActionType), unpacked);
            }
            else
            {
                unpackedValues.Add(unpacked);
            }
        }

        return(new ActionString(actionType, unpackedValues));
    }
Exemple #5
0
 public ActionString(ActionCard.ActionType actionType, List <string> variables)
 {
     this.actionType = actionType;
     this.variables  = variables;
 }
Exemple #6
0
 public ActionString()
 {
     actionType = ActionCard.ActionType.Money;
     variables  = new List <string>();
 }