Exemplo n.º 1
0
 private void Handler()
 {
     _newValue = UnityEngine.Random.Range(1, 11);
     _property = (CardProperty)UnityEngine.Random.Range(0, 3);
     StartCoroutine(SetValueToCard(cardCreator.cards, _property, _newValue));
     randomProperty.text = "Random property is " + _property.ToString();
     randomValue.text    = "Random value = " + _newValue.ToString();
 }
Exemplo n.º 2
0
    private IEnumerator SetValueToCard(List <CardView> cards, CardProperty property, int value)
    {
        foreach (var cardView in cardCreator.cards)
        {
            Debug.Log($"{property}: {value}", cardView);

            cardView.ChangeValue(property, _newValue);
            yield return(new WaitForSeconds(4f));
        }
    }
Exemplo n.º 3
0
    private static void CreateCardData()
    {
        CardProperty role = new CardProperty();
        string       path = EditorUtility.SaveFilePanel("", Application.dataPath + "/", "", "asset");

        if (path.Length != 0)
        {
            path = "Assets" + path.Replace(Application.dataPath, "");
            AssetDatabase.CreateAsset(role, path);
        }
    }
Exemplo n.º 4
0
 public override void Visit(PropertyVisitor visitor, CharacterEnum character, CardProperty property = null)
 {
     if (property != null)
     {
         base.Visit(visitor, character, property);
     }
     else
     {
         base.Visit(visitor, character, Effect);
     }
 }
Exemplo n.º 5
0
    public object Clone()
    {
        CardProperty outdata = new CardProperty()
        {
            id        = id,
            tid       = tid,
            Des       = Des,
            CardName  = CardName,
            functions = (FunctionData[])functions.Clone()
        };

        return(outdata);
    }
    private void ChangeImage()
    {
        CardProperty cardProperty  = GetComponentInParent <GamePanelBehavior>().ReturnCardProperty(this.gameObject);
        Sprite       currentSprite = gameObject.GetComponent <Image>().sprite;

        if (currentSprite == cardProperty.BackImage)
        {
            gameObject.GetComponent <Image>().sprite = cardProperty.FrontImage;
        }
        else
        {
            gameObject.GetComponent <Image>().sprite = cardProperty.BackImage;
        }
    }
Exemplo n.º 7
0
    private static void ReadExcelCards()
    {
        DataRowCollection collect = ExcelAccess.ReadExcel("Res/Excel/GameData.xlsx", "cards");

        for (int i = 2; i < collect.Count; i++)
        {
            CardProperty role = new CardProperty
            {
                id       = int.Parse(collect[i][0].ToString()),
                tid      = int.Parse(collect[i][1].ToString()),
                CardName = collect[i][2].ToString(),
                Des      = collect[i][3].ToString(),
            };
            List <FunctionData> funcList = new List <FunctionData>();

            int N = (collect[i].ItemArray.Length - 4) / 4;
            for (int j = 0; j < N; j++)
            {
                if (collect[i].IsNull(4 + j * 4))
                {
                    j = N;
                    break;
                }
                FunctionData temp = new FunctionData();

                temp.type   = (CardType)int.Parse(collect[i][4 + j * 4].ToString());
                temp.func   = (CardFunc)int.Parse(collect[i][5 + j * 4].ToString());
                temp.target = (TargetType)int.Parse(collect[i][6 + j * 4].ToString());
                string   value = collect[i][7 + j * 4].ToString();
                string[] array = value.Split(',');
                if (array == null || array.Length == 0)
                {
                    temp.Values = new int[] { int.Parse(value) }
                }
                ;
                else
                {
                    temp.Values = new int[array.Length];
                    for (int k = 0; k < array.Length; k++)
                    {
                        temp.Values[k] = int.Parse(array[k]);
                    }
                }
                funcList.Add(temp);
            }
            role.functions = funcList.ToArray();
            AssetDatabase.CreateAsset(role, "Assets/Res/DataAsset/card/card" + role.id + ".asset");
        }
    }
Exemplo n.º 8
0
        public void UpdateXML(Transform card)
        {
            string     group = TagController.GetInstance().group.ToString();
            string     list  = TagController.GetInstance().list.ToString();
            XmlElement root  = xml.DocumentElement;
            XmlNode    node  = root.SelectSingleNode(string.Format("/root/{0}/{1}", group, list));

            if (node.SelectSingleNode(card.name) == null)
            {
                if (card.Find("Control - Simple Checkbox").GetComponent <UIToggle>().value)
                {
                    XmlElement cardElement = xml.CreateElement(card.name);
                    if (list == "leader")
                    {
                        cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                        cardElement.SetAttribute("behavior", card.GetComponent <PlayerLeaderBehavior>().GetType().ToString());
                        cardElement.SetAttribute("message", card.GetComponent <PlayerLeaderBehavior>().message);
                    }
                    else
                    {
                        cardElement.SetAttribute("total", card.GetComponent <CardPlus>().total.ToString());
                        cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                        CardProperty cardProperty = card.GetComponent <CardProperty>();
                        cardElement.SetAttribute("line", cardProperty.line.ToString());
                        cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                        cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                        cardElement.SetAttribute("power", cardProperty.power.ToString());
                    }
                    node.AppendChild(cardElement);
                }
            }
            else
            {
                XmlNode cardNode = node.SelectSingleNode(card.name);
                if (card.Find("Control - Simple Checkbox").GetComponent <UIToggle>().value)
                {
                    if (list != "leader")
                    {
                        cardNode.Attributes["total"].Value = card.GetComponent <CardPlus>().total.ToString();
                    }
                }
                else
                {
                    node.RemoveChild(cardNode);
                }
            }

            NumberController.GetInstance().Number();
        }
Exemplo n.º 9
0
    private IEnumerator CountValue(CardProperty property, int value)
    {
        Text text       = FindTextField(property);
        int  startValue = Int32.Parse(text.text);
        int  sign       = Math.Sign(value - startValue);
        int  delta      = Mathf.Abs(value - startValue);

        for (int i = startValue; i != value; i += sign)
        {
            text.text = i.ToString();
            yield return(new WaitForSeconds(4f / delta));
        }

        text.text = value.ToString();
    }
 // Start is called before the first frame update
 void Start()
 {
     Debug.Log("Game started!");
     LoadImages();
     for (int i = 0; i < 6; i++)
     {
         var instance = Instantiate(CardPrefab, CardPanel.transform);
         instance.GetComponent <Image>().sprite = _BackImages[0];
         var          frontimage   = GetFrontImage();
         CardProperty cardProperty = new CardProperty(instance, _BackImages[0], frontimage);
         _CardProperties.Add(instance.GetInstanceID(), cardProperty);
         Debug.Log(cardProperty.ToString());
     }
     context = Context.GetInstance();
 }
Exemplo n.º 11
0
        public bool CreateCardProperty(CardPropCreate model)
        {
            using (var ctx = new ApplicationDbContext())
            {
                TemplateProperty tempProp = ctx.TemplateProperties.Find(model.TemplatePropId);
                var entity = new CardProperty(tempProp)
                {
                    CardId = model.CardId,
                    Value  = model.Value
                };

                ctx.CardProperties.Add(entity);
                return(ctx.SaveChanges() == 1);
            }
        }
Exemplo n.º 12
0
    private Text FindTextField(CardProperty property)
    {
        switch (property)
        {
        case CardProperty.Attack:
            return(attack);

        case CardProperty.HP:
            return(hp);

        case CardProperty.Mana:
            return(mana);

        default:
            return(null);
        }
    }
Exemplo n.º 13
0
    private void PropertyChangedHandler(CardProperty property, int value)
    {
        switch (property)
        {
        case CardProperty.Attack:
            _card.attack = value;
            break;

        case CardProperty.HP:
            _card.hp = value;
            break;

        case CardProperty.Mana:
            _card.mana = value;
            break;

        default:
            break;
        }
    }
Exemplo n.º 14
0
        public void Initialize()
        {
            obj.SetActive(true);
            int     random     = Random.Range(0, 4);
            UIAtlas totalAtlas = new UIAtlas();

            switch (random)
            {
            case 0:
                group = Global.Group.northern;
                avatar_group.spriteName = "player_faction_northern_realms";
                group_label.text        = "北方领域";
                deck_realms.spriteName  = "board_deck_northern_realms";
                totalAtlas = GameController.GetInstance().atlas[0];
                break;

            case 1:
                group = Global.Group.nilfgaardian;
                avatar_group.spriteName = "player_faction_northern_nilfgaard";
                group_label.text        = "尼弗迦德";
                deck_realms.spriteName  = "board_deck_nilfgaard";
                totalAtlas = GameController.GetInstance().atlas[1];
                break;

            case 2:
                group = Global.Group.monster;
                avatar_group.spriteName = "player_faction_northern_no_mans_land";
                group_label.text        = "怪兽";
                deck_realms.spriteName  = "board_deck_no_mans_land";
                totalAtlas = GameController.GetInstance().atlas[2];
                break;

            case 3:
                group = Global.Group.scoiatael;
                avatar_group.spriteName = "player_faction_scoiatael";
                group_label.text        = "松鼠党";
                deck_realms.spriteName  = "board_deck_scoiatael";
                totalAtlas = GameController.GetInstance().atlas[3];
                break;
            }

            XmlDocument xml = new XmlDocument();

            xml.Load(Global.enemyPath);
            XmlElement root    = xml.DocumentElement;
            XmlNode    xmlNode = root.SelectSingleNode(string.Format("/root/{0}", group));

            int name = 0;

            XmlNodeList leaderList   = xmlNode.SelectSingleNode("leader").ChildNodes;
            XmlNode     leaderNode   = leaderList[Random.Range(0, leaderList.Count)];
            GameObject  leaderObject = LeaderController.GetInstance().obj[1];
            UISprite    leaderSprite = leaderObject.GetComponent <UISprite>();

            leaderSprite.atlas      = totalAtlas;
            leaderSprite.spriteName = leaderNode.Attributes["sprite"].Value;
            leaderObject.AddComponent(System.Type.GetType(leaderNode.Attributes["behavior"].Value));

            XmlNodeList special = xmlNode.SelectSingleNode("special").ChildNodes;

            foreach (XmlNode cardNode in special)
            {
                for (int i = 0; i < int.Parse(cardNode.Attributes["max"].Value); i++)
                {
                    GameObject cardObject = Instantiate(GameController.GetInstance().cardPerfab, grids[0]);
                    cardObject.name = name.ToString();
                    name++;
                    UISprite cardSprite = cardObject.GetComponent <UISprite>();
                    cardSprite.atlas      = GameController.GetInstance().atlas[4];
                    cardSprite.spriteName = cardNode.Attributes["sprite"].Value;
                    CardProperty cardProperty = cardObject.GetComponent <CardProperty>();
                    cardProperty.line   = (Global.Line)System.Enum.Parse(typeof(Global.Line), cardNode.Attributes["line"].Value);
                    cardProperty.effect = (Global.Effect)System.Enum.Parse(typeof(Global.Effect), cardNode.Attributes["effect"].Value);
                    cardProperty.gold   = bool.Parse(cardNode.Attributes["gold"].Value);
                    cardProperty.power  = int.Parse(cardNode.Attributes["power"].Value);
                }
            }

            XmlNodeList monster = xmlNode.SelectSingleNode("monster").ChildNodes;

            foreach (XmlNode cardNode in monster)
            {
                for (int i = 0; i < int.Parse(cardNode.Attributes["max"].Value); i++)
                {
                    GameObject cardObject = Instantiate(GameController.GetInstance().cardPerfab, grids[0]);
                    cardObject.name = name.ToString();
                    name++;
                    UISprite cardSprite = cardObject.GetComponent <UISprite>();
                    cardSprite.atlas      = totalAtlas;
                    cardSprite.spriteName = cardNode.Attributes["sprite"].Value;
                    CardProperty cardProperty = cardObject.GetComponent <CardProperty>();
                    cardProperty.line   = (Global.Line)System.Enum.Parse(typeof(Global.Line), cardNode.Attributes["line"].Value);
                    cardProperty.effect = (Global.Effect)System.Enum.Parse(typeof(Global.Effect), cardNode.Attributes["effect"].Value);
                    cardProperty.gold   = bool.Parse(cardNode.Attributes["gold"].Value);
                    cardProperty.power  = int.Parse(cardNode.Attributes["power"].Value);
                }
            }

            XmlNodeList neutral = xmlNode.SelectSingleNode("neutral").ChildNodes;

            foreach (XmlNode cardNode in neutral)
            {
                for (int i = 0; i < int.Parse(cardNode.Attributes["max"].Value); i++)
                {
                    GameObject cardObject = Instantiate(GameController.GetInstance().cardPerfab, grids[0]);
                    cardObject.name = name.ToString();
                    name++;
                    UISprite cardSprite = cardObject.GetComponent <UISprite>();
                    cardSprite.atlas      = GameController.GetInstance().atlas[4];
                    cardSprite.spriteName = cardNode.Attributes["sprite"].Value;
                    CardProperty cardProperty = cardObject.GetComponent <CardProperty>();
                    cardProperty.line   = (Global.Line)System.Enum.Parse(typeof(Global.Line), cardNode.Attributes["line"].Value);
                    cardProperty.effect = (Global.Effect)System.Enum.Parse(typeof(Global.Effect), cardNode.Attributes["effect"].Value);
                    cardProperty.gold   = bool.Parse(cardNode.Attributes["gold"].Value);
                    cardProperty.power  = int.Parse(cardNode.Attributes["power"].Value);
                }
            }

            DrawCards(10);
            Number();
        }
Exemplo n.º 15
0
        public IEnumerator Play(Transform grid)
        {
            bool isTurn = AIController.GetInstance().AITurn();
            int  index  = AIController.GetInstance().AICard(grid);

            if (LeaderController.GetInstance().obj[1].GetComponent <EnemyLeaderBehavior>().IsEnabled)
            {
                LeaderController.GetInstance().obj[1].GetComponent <EnemyLeaderBehavior>().Play();
                yield return(PlayOver(LeaderController.GetInstance().obj[1].transform));

                CoroutineManager.GetInstance().Finish();
                yield break;
            }

            if (isTurn || index == -1)
            {
                yield return(TurnController.GetInstance().EnemyTurn());

                CoroutineManager.GetInstance().Finish();
                yield break;
            }

            Transform card;

            try
            {
                card = grid.GetChild(index);
            }
            catch
            {
                card = grid.GetChild(Random.Range(0, grid.childCount));
            }
            CardProperty cardProperty = card.GetComponent <CardProperty>();

            switch (cardProperty.effect)
            {
            case Global.Effect.spy:
                card.SetTarget(PlayerController.GetInstance().grids[(int)cardProperty.line + 2]);
                DrawCards(2);
                break;

            case Global.Effect.clear_sky:
                WeatherController.GetInstance().ClearSky();
                card.SetTarget(grids[5]);
                break;

            case Global.Effect.frost:
                if (!WeatherController.GetInstance().weather[0])
                {
                    WeatherController.GetInstance().Frost();
                    card.SetTarget(WeatherController.GetInstance().grid);
                    break;
                }
                else
                {
                    goto default;
                }

            case Global.Effect.fog:
                if (!WeatherController.GetInstance().weather[1])
                {
                    WeatherController.GetInstance().Fog();
                    card.SetTarget(WeatherController.GetInstance().grid);
                    break;
                }
                else
                {
                    goto default;
                }

            case Global.Effect.rain:
                if (!WeatherController.GetInstance().weather[2])
                {
                    WeatherController.GetInstance().Rain();
                    card.SetTarget(WeatherController.GetInstance().grid);
                    break;
                }
                else
                {
                    goto default;
                }

            case Global.Effect.nurse:
                if (grids[5].childCount != 0)
                {
                    card.SetTarget(grids[(int)cardProperty.line + 2]);
                    yield return(TweenCard.GetInstance().Play(card));

                    yield return(Play(grids[5]));

                    PlayerController.GetInstance().obj.SetActive(false);
                    obj.SetActive(false);
                    PlayerController.GetInstance().obj.SetActive(true);
                    obj.SetActive(true);
                    yield break;
                }
                else
                {
                    goto default;
                }

            case Global.Effect.scorch:
                int maxPower = 0;
                for (int i = 2; i < 5; i++)
                {
                    for (int ii = 0; ii < PlayerController.GetInstance().grids[i].childCount; ii++)
                    {
                        int power = PlayerController.GetInstance().grids[i].GetChild(ii).GetComponent <CardBehavior>().totalPower;
                        if (power > maxPower)
                        {
                            maxPower = power;
                        }
                    }
                }
                for (int i = 2; i < 5; i++)
                {
                    for (int ii = 0; ii < grids[i].childCount; ii++)
                    {
                        int power = grids[i].GetChild(ii).GetComponent <CardBehavior>().totalPower;
                        if (power > maxPower)
                        {
                            maxPower = power;
                        }
                    }
                }

                for (int i = 2; i < 5; i++)
                {
                    for (int ii = PlayerController.GetInstance().grids[i].childCount - 1; ii >= 0; ii--)
                    {
                        Transform scorchCard = PlayerController.GetInstance().grids[i].GetChild(ii);
                        if (scorchCard.GetComponent <CardBehavior>().totalPower == maxPower && !scorchCard.GetComponent <CardProperty>().gold)
                        {
                            scorchCard.SetTarget(PlayerController.GetInstance().grids[5]);
                        }
                    }
                }
                for (int i = 2; i < 5; i++)
                {
                    for (int ii = grids[i].childCount - 1; ii >= 0; ii--)
                    {
                        Transform scorchCard = grids[i].GetChild(ii);
                        if (scorchCard.GetComponent <CardBehavior>().totalPower == maxPower && !scorchCard.GetComponent <CardProperty>().gold)
                        {
                            scorchCard.SetTarget(grids[5]);
                        }
                    }
                }
                goto default;

            case Global.Effect.dummy:
                if (grids[2].childCount == 0 &&
                    grids[3].childCount == 0 &&
                    grids[4].childCount == 0)
                {
                    card.SetTarget(grids[5]);
                    break;
                }

                int dummyGrid  = 0;
                int dummyIndex = 0;
                for (int i = 2; i < 5; i++)
                {
                    for (int ii = 0; ii < grids[i].childCount; ii++)
                    {
                        if (grids[i].GetChild(ii).GetComponent <CardProperty>().effect == Global.Effect.spy ||
                            grids[i].GetChild(ii).GetComponent <CardProperty>().effect == Global.Effect.nurse ||
                            grids[i].GetChild(ii).GetComponent <CardProperty>().effect == Global.Effect.scorch ||
                            grids[i].GetChild(ii).GetComponent <CardProperty>().effect == Global.Effect.warhorn)
                        {
                            dummyGrid  = i;
                            dummyIndex = ii;
                        }
                    }
                }
                card.SetTarget(grids[dummyGrid]);
                grids[dummyGrid].GetChild(dummyIndex).SetTarget(grid);
                break;

            case Global.Effect.warhorn:
                if (cardProperty.line == Global.Line.empty)
                {
                    if (grids[2].childCount == 0 &&
                        grids[3].childCount == 0 &&
                        grids[4].childCount == 0)
                    {
                        card.SetTarget(grids[5]);
                        break;
                    }

                    int line     = 0;
                    int maxCount = 0;
                    for (int i = 2; i < 5; i++)
                    {
                        if (grids[i].childCount >= maxCount &&
                            !WarhornController.GetInstance().enemyWarhorn[i - 2])
                        {
                            line     = i - 2;
                            maxCount = grids[i].childCount;
                        }
                    }

                    WarhornController.GetInstance().enemyWarhorn[line] = true;
                    card.SetTarget(WarhornController.GetInstance().enemyGrids[line]);
                    break;
                }
                else
                {
                    WarhornController.GetInstance().enemyWarhorn[(int)cardProperty.line] = true;
                    goto default;
                }

            case Global.Effect.muster:
                int musterIndex = 0;
                for (int i = 0; i < MusterController.GetInstance().musterCards.Length; i++)
                {
                    for (int ii = 0; ii < MusterController.GetInstance().musterCards[i].Length; ii++)
                    {
                        if (grid.GetChild(index).GetComponent <UISprite>().spriteName == MusterController.GetInstance().musterCards[i][ii])
                        {
                            musterIndex = i;
                        }
                    }
                }

                for (int i = 0; i < MusterController.GetInstance().musterCards[musterIndex].Length; i++)
                {
                    for (int ii = grids[0].childCount - 1; ii >= 0; ii--)
                    {
                        Transform musterCard = grids[0].GetChild(ii);
                        if (musterCard.GetComponent <UISprite>().spriteName == MusterController.GetInstance().musterCards[musterIndex][i])
                        {
                            musterCard.SetTarget(grids[(int)musterCard.GetComponent <CardProperty>().line + 2]);
                        }
                    }
                }

                goto default;

            case Global.Effect.agile:
                int agileIndex = 0;
                for (int i = 0; i < 2; i++)
                {
                    if (!WeatherController.GetInstance().weather[i])
                    {
                        agileIndex = i;
                    }
                }
                card.SetTarget(grids[agileIndex + 2]);
                break;

            default:
                card.SetTarget(grids[(int)cardProperty.line + 2]);
                break;
            }

            yield return(PlayOver(card));

            CoroutineManager.GetInstance().Finish();
        }
Exemplo n.º 16
0
    internal Sprite GetCurrentSprite()
    {
        CardProperty cardProperty = GetComponentInParent <GamePanelBehavior>().ReturnCardProperty(this.gameObject);

        return(gameObject.GetComponent <Image>().sprite);
    }
Exemplo n.º 17
0
    CardProperty CloneCard(CardProperty old)
    {
        CardProperty newcard = (CardProperty)old.Clone();

        return(newcard);
    }
Exemplo n.º 18
0
 public void ChangeValue(CardProperty property, int value)
 {
     OnPropertyChanged?.Invoke(property, value);
     StartCoroutine(CountValue(property, value));
 }
Exemplo n.º 19
0
 public Dragon(CardType cardType, ElementType element, int cardDamage, string cardName, CardProperty cardProperty, int cardId)
     : base(cardType, element, cardDamage, cardName, cardProperty, cardId)
 {
 }
Exemplo n.º 20
0
        // Use this for initialization
        void Start()
        {
            if (!File.Exists(Global.enemyPath))
            {
                XmlDocument xml  = new XmlDocument();
                XmlElement  root = xml.CreateElement("root");

                XmlElement northern       = xml.CreateElement("northern");
                Transform  groupTransform = TagController.GetInstance().groups[0].transform;

                XmlElement leader1          = xml.CreateElement("leader");
                Transform  leader1Transform = groupTransform.Find("leader");
                for (int i = 0; i < leader1Transform.childCount; i++)
                {
                    Transform  card        = leader1Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    cardElement.SetAttribute("behavior", card.GetComponent <EnemyLeaderBehavior>().GetType().ToString());
                    leader1.AppendChild(cardElement);
                }

                XmlElement special1          = xml.CreateElement("special");
                Transform  special1Transform = groupTransform.Find("special");
                for (int i = 0; i < special1Transform.childCount; i++)
                {
                    Transform  card        = special1Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    special1.AppendChild(cardElement);
                }

                XmlElement monster1          = xml.CreateElement("monster");
                Transform  monster1Transform = groupTransform.Find("monster");
                for (int i = 0; i < monster1Transform.childCount; i++)
                {
                    Transform  card        = monster1Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    monster1.AppendChild(cardElement);
                }

                XmlElement neutral1          = xml.CreateElement("neutral");
                Transform  neutral1Transform = groupTransform.Find("neutral");
                for (int i = 0; i < neutral1Transform.childCount; i++)
                {
                    Transform  card        = neutral1Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    neutral1.AppendChild(cardElement);
                }

                northern.AppendChild(leader1);
                northern.AppendChild(special1);
                northern.AppendChild(monster1);
                northern.AppendChild(neutral1);

                XmlElement nilfgaardian = xml.CreateElement("nilfgaardian");
                groupTransform = TagController.GetInstance().groups[1].transform;

                XmlElement leader2          = xml.CreateElement("leader");
                Transform  leader2Transform = groupTransform.Find("leader");
                for (int i = 0; i < leader2Transform.childCount; i++)
                {
                    Transform  card        = leader2Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    cardElement.SetAttribute("behavior", card.GetComponent <EnemyLeaderBehavior>().GetType().ToString());
                    leader2.AppendChild(cardElement);
                }

                XmlElement special2          = xml.CreateElement("special");
                Transform  special2Transform = groupTransform.Find("special");
                for (int i = 0; i < special2Transform.childCount; i++)
                {
                    Transform  card        = special2Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    special2.AppendChild(cardElement);
                }

                XmlElement monster2          = xml.CreateElement("monster");
                Transform  monster2Transform = groupTransform.Find("monster");
                for (int i = 0; i < monster2Transform.childCount; i++)
                {
                    Transform  card        = monster2Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    monster2.AppendChild(cardElement);
                }

                XmlElement neutral2          = xml.CreateElement("neutral");
                Transform  neutral2Transform = groupTransform.Find("neutral");
                for (int i = 0; i < neutral2Transform.childCount; i++)
                {
                    Transform  card        = neutral2Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    neutral2.AppendChild(cardElement);
                }

                nilfgaardian.AppendChild(leader2);
                nilfgaardian.AppendChild(special2);
                nilfgaardian.AppendChild(monster2);
                nilfgaardian.AppendChild(neutral2);

                XmlElement monster = xml.CreateElement("monster");
                groupTransform = TagController.GetInstance().groups[2].transform;

                XmlElement leader3          = xml.CreateElement("leader");
                Transform  leader3Transform = groupTransform.Find("leader");
                for (int i = 0; i < leader3Transform.childCount; i++)
                {
                    Transform  card        = leader3Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    cardElement.SetAttribute("behavior", card.GetComponent <EnemyLeaderBehavior>().GetType().ToString());
                    leader3.AppendChild(cardElement);
                }

                XmlElement special3          = xml.CreateElement("special");
                Transform  special3Transform = groupTransform.Find("special");
                for (int i = 0; i < special3Transform.childCount; i++)
                {
                    Transform  card        = special3Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    special3.AppendChild(cardElement);
                }

                XmlElement monster3          = xml.CreateElement("monster");
                Transform  monster3Transform = groupTransform.Find("monster");
                for (int i = 0; i < monster3Transform.childCount; i++)
                {
                    Transform  card        = monster3Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    monster3.AppendChild(cardElement);
                }

                XmlElement neutral3          = xml.CreateElement("neutral");
                Transform  neutral3Transform = groupTransform.Find("neutral");
                for (int i = 0; i < neutral3Transform.childCount; i++)
                {
                    Transform  card        = neutral3Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    neutral3.AppendChild(cardElement);
                }

                monster.AppendChild(leader3);
                monster.AppendChild(special3);
                monster.AppendChild(monster3);
                monster.AppendChild(neutral3);

                XmlElement scoiatael = xml.CreateElement("scoiatael");
                groupTransform = TagController.GetInstance().groups[3].transform;

                XmlElement leader4          = xml.CreateElement("leader");
                Transform  leader4Transform = groupTransform.Find("leader");
                for (int i = 0; i < leader4Transform.childCount; i++)
                {
                    Transform  card        = leader4Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    cardElement.SetAttribute("behavior", card.GetComponent <EnemyLeaderBehavior>().GetType().ToString());
                    leader4.AppendChild(cardElement);
                }

                XmlElement special4          = xml.CreateElement("special");
                Transform  special4Transform = groupTransform.Find("special");
                for (int i = 0; i < special4Transform.childCount; i++)
                {
                    Transform  card        = special4Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    special4.AppendChild(cardElement);
                }

                XmlElement monster4          = xml.CreateElement("monster");
                Transform  monster4Transform = groupTransform.Find("monster");
                for (int i = 0; i < monster4Transform.childCount; i++)
                {
                    Transform  card        = monster4Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    monster4.AppendChild(cardElement);
                }

                XmlElement neutral4          = xml.CreateElement("neutral");
                Transform  neutral4Transform = groupTransform.Find("neutral");
                for (int i = 0; i < neutral4Transform.childCount; i++)
                {
                    Transform  card        = neutral4Transform.GetChild(i);
                    XmlElement cardElement = xml.CreateElement(card.name);
                    cardElement.SetAttribute("max", card.GetComponent <CardPlus>().max.ToString());
                    cardElement.SetAttribute("sprite", card.GetComponent <UISprite>().spriteName);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    cardElement.SetAttribute("line", cardProperty.line.ToString());
                    cardElement.SetAttribute("effect", cardProperty.effect.ToString());
                    cardElement.SetAttribute("gold", cardProperty.gold.ToString());
                    cardElement.SetAttribute("power", cardProperty.power.ToString());
                    neutral4.AppendChild(cardElement);
                }

                scoiatael.AppendChild(leader4);
                scoiatael.AppendChild(special4);
                scoiatael.AppendChild(monster4);
                scoiatael.AppendChild(neutral4);

                root.AppendChild(northern);
                root.AppendChild(nilfgaardian);
                root.AppendChild(monster);
                root.AppendChild(scoiatael);

                xml.AppendChild(root);
                xml.Save(Global.enemyPath);
            }
        }
Exemplo n.º 21
0
 protected BaseCards(CardType cardType, ElementType element, int cardDamage, string cardName, CardProperty cardProperty, int cardId)
 {
     this.CardType     = cardType;
     this.Element      = element;
     this.CardProperty = cardProperty;
     this.CardDamage   = cardDamage;
     this.CardName     = cardName;
     this.CardId       = cardId;
 }
Exemplo n.º 22
0
        public void CreateCardsForTable()
        {
            string       cn = "";
            CardProperty cp = CardProperty.Dragon;
            CardType     ct = CardType.Monster;
            ElementType  et = ElementType.Fire;
            int          cd = 100;

            for (int i = 0; i < 7; i++)
            {
                if (cp == CardProperty.Dragon)
                {
                    cn = "Drache oder so";
                }
                else if (cp == CardProperty.Knight)
                {
                    cn = "Knight in the Night, just Right";
                }
                else if (cp == CardProperty.Ork)
                {
                    cn = "Ich bin Orrg und du?";
                }
                else if (cp == CardProperty.Wizard)
                {
                    cn = "Ich bin ein Witz art";
                }
                else if (cp == CardProperty.Goblin)
                {
                    cn = "Gobster the Robster";
                }
                else if (cp == CardProperty.Kraken)
                {
                    cn = "Krakie dakie do whatcha gonna do";
                }
                else if (cp == CardProperty.FireElve)
                {
                    cn = "I am Fry the FireFly";
                }

                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 10; k++)
                    {
                        var cmd = new NpgsqlCommand("INSERT INTO cards (cardtype, elementtype, carddamage, cardname, cardproperty) VALUES (@ct, @et, @cd, @cn, @cp)", _conn);
                        cmd.Parameters.AddWithValue("ct", Convert.ToInt32(ct));
                        cmd.Parameters.AddWithValue("et", Convert.ToInt32(et));
                        cmd.Parameters.AddWithValue("cd", cd);
                        cmd.Parameters.AddWithValue("cn", cn);
                        cmd.Parameters.AddWithValue("cp", Convert.ToInt32(cp));
                        cmd.Prepare();
                        cmd.ExecuteNonQuery();

                        cd += 10;
                    }

                    cd = 100;
                    et++;
                }

                cp++;
            }

            et = ElementType.Fire;
            ct = CardType.Spell;
            for (int i = 0; i < 3; i++)
            {
                if (et == ElementType.Fire)
                {
                    cn = "Fire Spell";
                }
                else if (et == ElementType.Normal)
                {
                    cn = "Normal Spell";
                }
                else if (et == ElementType.Water)
                {
                    cn = "Water Spell";
                }

                for (int j = 0; j < 10; j++)
                {
                    var cmd = new NpgsqlCommand("INSERT INTO cards (cardtype, elementtype, carddamage, cardname) VALUES (@ct, @et, @cd, @cn)", _conn);
                    cmd.Parameters.AddWithValue("ct", Convert.ToInt32(ct));
                    cmd.Parameters.AddWithValue("et", Convert.ToInt32(et));
                    cmd.Parameters.AddWithValue("cd", cd);
                    cmd.Parameters.AddWithValue("cn", cn);
                    cmd.Prepare();
                    cmd.ExecuteNonQuery();
                    cd += 10;
                }

                cd = 100;
                et++;
            }
        }
Exemplo n.º 23
0
        public void Number()
        {
            player = new int[3] {
                0, 0, 0
            };
            enemy = new int[3] {
                0, 0, 0
            };
            int[] player_improve_neighbours = { 0, 0, 0 };
            int[] enemy_improve_neighbours  = { 0, 0, 0 };
            Dictionary <string, int> player_same_type_morale = new Dictionary <string, int>();
            Dictionary <string, int> enemy_same_type_morale  = new Dictionary <string, int>();

            for (int i = 2; i < 5; i++)
            {
                for (int ii = 0; ii < PlayerController.GetInstance().grids[i].childCount; ii++)
                {
                    CardProperty cardProperty = PlayerController.GetInstance().grids[i].GetChild(ii).GetComponent <CardProperty>();
                    switch (cardProperty.effect)
                    {
                    case Global.Effect.improve_neighbours:
                        player_improve_neighbours[i - 2]++;
                        break;

                    case Global.Effect.same_type_morale:
                        string spriteName = cardProperty.GetComponent <UISprite>().spriteName;
                        if (!player_same_type_morale.ContainsKey(spriteName))
                        {
                            player_same_type_morale.Add(spriteName, 1);
                        }
                        else
                        {
                            int value = player_same_type_morale[spriteName];
                            value++;
                            player_same_type_morale[spriteName] = value;
                        }
                        break;
                    }
                }
            }
            for (int i = 2; i < 5; i++)
            {
                for (int ii = 0; ii < EnemyController.GetInstance().grids[i].childCount; ii++)
                {
                    CardProperty cardProperty = EnemyController.GetInstance().grids[i].GetChild(ii).GetComponent <CardProperty>();
                    switch (cardProperty.effect)
                    {
                    case Global.Effect.improve_neighbours:
                        enemy_improve_neighbours[i - 2]++;
                        break;

                    case Global.Effect.same_type_morale:
                        string spriteName = cardProperty.GetComponent <UISprite>().spriteName;
                        if (!enemy_same_type_morale.ContainsKey(spriteName))
                        {
                            enemy_same_type_morale.Add(spriteName, 1);
                        }
                        else
                        {
                            int value = enemy_same_type_morale[spriteName];
                            value++;
                            enemy_same_type_morale[spriteName] = value;
                        }
                        break;
                    }
                }
            }

            for (int i = 2; i < 5; i++)
            {
                for (int ii = 0; ii < PlayerController.GetInstance().grids[i].childCount; ii++)
                {
                    Transform    card         = PlayerController.GetInstance().grids[i].GetChild(ii);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    int          power        = cardProperty.power;
                    if (!cardProperty.gold)
                    {
                        if (WeatherController.GetInstance().weather[i - 2])
                        {
                            power = 1;
                        }
                        string spriteName = card.GetComponent <UISprite>().spriteName;
                        if (player_same_type_morale.ContainsKey(spriteName))
                        {
                            power *= player_same_type_morale[spriteName];
                        }
                        if (cardProperty.effect != Global.Effect.improve_neighbours)
                        {
                            power += player_improve_neighbours[i - 2];
                        }
                        if (WarhornController.GetInstance().playerWarhorn[i - 2])
                        {
                            power *= 2;
                        }
                    }
                    card.GetComponent <CardBehavior>().totalPower = power;
                    player[i - 2] += power;
                }
            }
            for (int i = 2; i < 5; i++)
            {
                for (int ii = 0; ii < EnemyController.GetInstance().grids[i].childCount; ii++)
                {
                    Transform    card         = EnemyController.GetInstance().grids[i].GetChild(ii);
                    CardProperty cardProperty = card.GetComponent <CardProperty>();
                    int          power        = cardProperty.power;
                    if (!cardProperty.gold)
                    {
                        if (WeatherController.GetInstance().weather[i - 2])
                        {
                            power = 1;
                        }
                        string spriteName = card.GetComponent <UISprite>().spriteName;
                        if (enemy_same_type_morale.ContainsKey(spriteName))
                        {
                            power *= enemy_same_type_morale[spriteName];
                        }
                        if (cardProperty.effect != Global.Effect.improve_neighbours)
                        {
                            power += enemy_improve_neighbours[i - 2];
                        }
                        if (WarhornController.GetInstance().enemyWarhorn[i - 2])
                        {
                            power *= 2;
                        }
                    }
                    card.GetComponent <CardBehavior>().totalPower = power;
                    enemy[i - 2] += power;
                }
            }

            for (int i = 0; i < 3; i++)
            {
                player_power_label[i].text = player[i].ToString();
                enemy_power_label[i].text  = enemy[i].ToString();
            }
            player_total = player[0] + player[1] + player[2];
            enemy_total  = enemy[0] + enemy[1] + enemy[2];
            player_power_label[3].text = player_total.ToString();
            enemy_power_label[3].text  = enemy_total.ToString();
            if (player_total > enemy_total)
            {
                player_winner_indicator.gameObject.SetActive(true);
                enemy_winner_indicator.gameObject.SetActive(false);
            }
            else if (player_total < enemy_total)
            {
                player_winner_indicator.gameObject.SetActive(false);
                enemy_winner_indicator.gameObject.SetActive(true);
            }
            else if (player_total == enemy_total)
            {
                player_winner_indicator.gameObject.SetActive(true);
                enemy_winner_indicator.gameObject.SetActive(true);
            }
        }
Exemplo n.º 24
0
 private void Awake()
 {
     cardProperty = GetComponent <CardProperty>();
 }
Exemplo n.º 25
0
 set => SetValue(CardProperty, value);