Beispiel #1
0
    void addone(card i)
    {
        GetComponent <Animation>()["shownum"].speed = 1;
        GetComponent <Animation>().Play("shownum");

        info = i;
    }
Beispiel #2
0
    public void throwCard(int playerPosition, short cardIndex)
    {
        int  random = Random.Range(0, otherDecks[playerPosition].Count - 1);
        card card   = otherDecks[playerPosition][random];

        card.cardIndex = cardIndex;
        card.transform.GetComponent <SpriteRenderer>().sortingOrder = 0;
        card.showFace();
        card.transform.localRotation = Quaternion.Euler(new Vector3(0f, 0f, 0f));
        otherDecks[playerPosition].RemoveAt(random);
        StartCoroutine(throwCard(card.gameObject));


        if (groundCards.Count != 0)
        {
            groundCards[groundCards.Count - 1].transform.position = new Vector3(1f, -2.3f, 1f / groundCards.Count);
        }
        groundCards.Add(card);

        deckArranger(playerPosition);

        positionToText(playerPosition).color = Color.white;
        if (playerPosition != 4 && playerPosition % 4 + 1 != Client.playerPosition)
        {
            positionToText(playerPosition + 1).color = Color.green;
        }
        else if (playerPosition == 4 && Client.playerPosition != 1)
        {
            positionToText(1).color = Color.green;
        }
    }
Beispiel #3
0
        private async void CreateCard(card_7isab card_7)
        {
            await Task.Run(() => {
                OpenSample4Dialog();
                AcceptSample4Dialog();
                Ico.getValue <db>().GetUnivdb().processes.ToList().Where(p => p.Id == process.Id).First().NewCost = newcost;

                var d    = DateTime.Now;
                var name = "بطاقة  أخذ بحساب رقم " + 1 + " سنة " + d.Year;

                var car = new card()
                {
                    date       = DateTime.Now,
                    id_prosess = process.Id,
                    num        = 1,
                    year       = Ico.getValue <db>().GetUnivdb().years.ToList().LastOrDefault().Id,
                    location   = process.location + "\\" + name,
                };
                card_7 = new card_7isab()
                {
                    card = car,
                    visa = null
                };
                Ico.getValue <db>().GetUnivdb().cards.Add(car);
                Ico.getValue <db>().GetUnivdb().card_7isab.Add(card_7);
                Ico.getValue <db>().savedb();
                card_7             = Ico.getValue <db>().GetUnivdb().card_7isab.ToList().Where(c => c.card.id_prosess == process.Id).FirstOrDefault();
                Card_7isabExecl c7 = new Card_7isabExecl(card_7);
                c7.CreateCard();
                CancelSample4Dialog();
            });
        }
Beispiel #4
0
 private IEnumerator holdDetector(card card)
 {
     while (true)
     {
         if (card.mouseDownTime < 0f)
         {
             if (selectedCards.Count == 1 && yourTurn && cardDistrubuter.cardTaken)
             {
                 //throw card
                 throwCard(card);
             }
             else
             {
                 card.transform.Translate(new Vector3(0f, -0.5f, 0f));
                 selectedCards.Remove(card);
             }
             break;
         }
         if (Time.time - card.mouseDownTime > 1f)
         {
             sortCardList(selectedCards);
             foreach (card c in selectedCards)
             {
                 c.followPointer = true;
             }
             followingPointer = true;
             break;
         }
         yield return(new WaitForSeconds(0f));
     }
 }
Beispiel #5
0
 public void changedNumCard(card card)
 {
     foreach (var c in dbu.cards.ToList().Where(c => c.id_prosess == card.id_prosess && c.num > card.num))
     {
         c.num -= 1;
     }
 }
Beispiel #6
0
    void edit()
    {
        if (info.cards == null)
        {
            return;
        }

        //拆箱
        string[] cs = info.cards.Split('/');
        foreach (string s in cs)
        {
            Debug.Log("将要拆箱的:" + s);
            if (s != "")
            {
                string[] idandnum = s.Split('*');
                card     tc       = wdscpage.getcardwithid(idandnum[0]);
                Debug.Log("拆箱后得到的结果:" + tc.cardid + "*" + tc.insetcount + "*" + tc.count);

                for (int x = 0; x < int.Parse(idandnum[1]); x++)
                {
                    addcard(tc);
                    tc.insetcount++;
                    tc.count--;
                }
            }
        }
    }
Beispiel #7
0
    /// <summary>
    /// 得到用户的卡
    /// </summary>
    /// <returns></returns>
    public static List <card> getPlayCards()
    {
        string[]    cardidtext = player.cards.Split('/');
        List <card> ret        = new List <card>();

        foreach (string id in cardidtext)
        {
            if (id != "")
            {
                bool isin = false;
                for (int x = 0; x < ret.Count; x++)//是不是已经存在,如果存在就加1张
                {
                    if (ret[x].cardid == id)
                    {
                        card t = ret[x];
                        t.count++;
                        ret[x] = t;
                        isin   = true;
                    }
                }
                if (!isin)
                {
                    ret.Add(getCardWithID(id));
                }
            }
        }

        return(ret);
    }
Beispiel #8
0
 void addone(card i)
 {
     animation["shownum"].speed = 1;
     animation.Play("shownum");
     
     info = i;
 }
Beispiel #9
0
        public static Int64 AddCardToState(Int64 state, card card, int NumOfDecks)
        {
            int    Position = card.CardLiteralKeyPosition();
            string NewState = "";
            string literal  = Convert.ToString(state, (NumOfDecks + 1));

            for (int i = 0; i < literal.Length; i++)
            {
                if (Position == i)
                {
                    if (literal[i] == '0')
                    {
                        NewState += '1'; continue;
                    }
                    if (literal[i] == '1')
                    {
                        NewState += '2'; continue;
                    }
                    if (literal[i] == '2')
                    {
                        NewState += '3'; continue;
                    }
                    if (literal[i] == '3')
                    {
                        NewState += '4'; continue;
                    }
                }
                NewState += literal[i];
            }
            return(Convert.ToInt64(NewState, (NumOfDecks + 1)));
        }
Beispiel #10
0
        public card ObterTokenCartao(ObterTokenCartaoInputModel obterTokenCartaoInput)
        {
            try
            {
                card card    = new card();
                var  URLBase = GlobalConfiguration.OBTERTOKENCARTAO;
                var  client  = new HttpClient();


                var content = new FormUrlEncodedContent(new[]
                {
                    new KeyValuePair <string, string>("sessionId", obterTokenCartaoInput.sessionId),
                    new KeyValuePair <string, string>("amount", Convert.ToString(obterTokenCartaoInput.amount).Replace(",", ".")),
                    new KeyValuePair <string, string>("cardNumber", obterTokenCartaoInput.cardNumber),
                    new KeyValuePair <string, string>("cardBrand", obterTokenCartaoInput.cardBrand),
                    new KeyValuePair <string, string>("cardCvv", obterTokenCartaoInput.cardCvv),
                    new KeyValuePair <string, string>("cardExpirationMonth", obterTokenCartaoInput.cardExpirationMonth.ToString()),
                    new KeyValuePair <string, string>("cardExpirationYear", obterTokenCartaoInput.cardExpirationYear.ToString())
                });

                HttpResponseMessage response = client.PostAsync(URLBase, content).Result;

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    string result = response.Content.ReadAsStringAsync().Result;
                    card = this.Deserializer <card>(result);
                }
                return(card);
            }
            catch (System.Exception)
            {
                throw;
            }
        }
Beispiel #11
0
        public void addPossibleCard(string c, bool bSteal, string user)
        {
            card currCard = new card();
            currCard.T = c;
            currCard.B = bSteal;

            int index = getPlayerUsernames().IndexOf(user);

            if(index == 0 && !pOnePossibleCards.Contains(currCard))
            {
                addCard(currCard, pOnePossibleCards);
            }
            else if(index == 1 && !pTwoPossibleCards.Contains(currCard))
            {
                addCard(currCard, pTwoPossibleCards);
            }
            else if (index == 2 && !pThreePossibleCards.Contains(currCard))
            {
                addCard(currCard, pThreePossibleCards);
            }
            else if (index == 3 && !pFourPossibleCards.Contains(currCard))
            {
                addCard(currCard, pFourPossibleCards);
            }
            else if (index == 4 && !pFivePossibleCards.Contains(currCard))
            {
                addCard(currCard, pFivePossibleCards);
            }
        }
Beispiel #12
0
    //把卡清掉
    void cls()
    {
        string cardstext = "";

        foreach (Transform t in setcards)
        {
            card c = t.GetComponent <SetCard>().info;
            //装箱
            cardstext += c.cardid + "*" + c.insetcount + "/";   //进行记录
        }



        if (cardstext != info.cards)
        {
            info.cards = cardstext;
            int retid = web.updatSet(info);

            if (info.id == -1)//如果卡组的id=-1,那就是新建立的.把返回过来的id给它
            {
                info.id = retid;
            }
        }
        //广播方法 setcardcls
        gameObject.BroadcastMessage("setcardcls", SendMessageOptions.DontRequireReceiver);
        setcards.Clear();
        updatacardcount("");
    }
Beispiel #13
0
    void updatacardcount()
    {
        int count = 0;

        costcount = new int[7] {
            0, 0, 0, 0, 0, 0, 0
        };

        foreach (Transform t in setcards)
        {
            card c = t.GetComponent <SetCard>().info;
            count = count + c.insetcount;
            //更新统计信息
            int cost = int.Parse(c.cost);
            if (cost <= 7)
            {
                costcount[cost] += c.insetcount;
            }
            else
            {
                costcount[7] += c.insetcount;
            }
        }

        updatacardcount(count + "/30");
        //更新统计信息
        updateCostCount();
    }
Beispiel #14
0
        private void selectHandler(object sender, EventArgs e)
        {
            if (firstCard != null && secondCard != null)
            {
                return;
            }
            card clickedCard = ((card)sender);

            if (!clickedCard.Reveled)
            {
                clickedCard.flipCard();
                if (!clickedCard.EmptyCard)
                {
                    if (this.firstCard == null)
                    {
                        firstCard = clickedCard;
                    }
                    else if (clickedCard.compereTo(firstCard))
                    {
                        reveledPears++;
                        firstCard  = null;
                        secondCard = null;
                        this.chekForWin();
                    }
                    else
                    {
                        this.secondCard = clickedCard;
                        lagTimer.Start();
                    }
                }
            }
        }
Beispiel #15
0
        /// <summary>
        /// It generates add member using REST service by providing invalid multiple attribute sets
        /// </summary>
        /// <returns></returns>
        public Memberm GenerateAddMemberMultipleAttributeSetForREST()
        {
            Memberm member = new Memberm();

            member.firstName = "REST_" + RandomString(6) + "_" + NameGenerator.GenerateFirstName(Gender.Male);
            member.lastName  = "REST_" + RandomString(6) + "_" + NameGenerator.GenerateFirstName(Gender.Male);
            member.Username  = member.firstName;
            member.Password  = "******";
            member.email     = member.firstName + "@test.com";
            member.cards     = new List <card>();
            Logger.Info(member.firstName);
            card vc = new card();

            member.attributeSets = new List <AttributeSets>();
            vc.cardNumber        = new System.Random().Next(1, 9999999).ToString();
            AttributeSets details = new AttributeSets();

            details.memberDetails = new REST_Services.REST_Models.AttributeSet_Model();
            details.memberDetails = REST_DataGenerator.GenerateMemberAttributeSet(this);
            vc.cardNumber         = new System.Random().Next(1, 9999999).ToString();
            //AttributeSets details1 = new AttributeSets();
            //details1.memberDetails = new REST_Services.REST_Models.AttributeSet_Model();
            //details1.memberDetails = REST_DataGenerator.GenerateMemberAttributeSet(this);
            member.cards.Add(vc);
            member.attributeSets.Add(details);

            //member.attributeSets.Add(details1);
            return(member);
        }
Beispiel #16
0
        public void addPossibleCard(string c, bool bSteal, string user)
        {
            card currCard = new card();

            currCard.T = c;
            currCard.B = bSteal;

            int index = getPlayerUsernames().IndexOf(user);

            if (index == 0 && !pOnePossibleCards.Contains(currCard))
            {
                addCard(currCard, pOnePossibleCards);
            }
            else if (index == 1 && !pTwoPossibleCards.Contains(currCard))
            {
                addCard(currCard, pTwoPossibleCards);
            }
            else if (index == 2 && !pThreePossibleCards.Contains(currCard))
            {
                addCard(currCard, pThreePossibleCards);
            }
            else if (index == 3 && !pFourPossibleCards.Contains(currCard))
            {
                addCard(currCard, pFourPossibleCards);
            }
            else if (index == 4 && !pFivePossibleCards.Contains(currCard))
            {
                addCard(currCard, pFivePossibleCards);
            }
        }
Beispiel #17
0
        static void Main(string[] args)
        {
            //Declaration done here:
            string title = "temp";

            string[] suitArr = { "Clubs", "Spades", "Diamonds", "Hearts", };

            string[] cardArr = { "Ace", "King", "Queen", "Jack", "10", "9", "8", "7", "6", "5", "4", "3", "2", };

            int  z = 0;
            card c = new card(); // array of objects

// Property of each card created here

            for (int x = 0; x < 13; x++)
            {
                title = cardArr[x] + " of temp";
                {}
                for (int y = 0; y < 4; y++)
                {
                    title = title.Replace("temp", suitArr[y]);
                    c[z]  = title;
                    z++;
                    title = title.Replace(suitArr[y], "temp");
                }
            }

            for (int p = 0; p < 52; p++) // print each object
            {
                Console.WriteLine(c[p]);
            }
            Console.ReadLine();
        }
Beispiel #18
0
    public void throwCard(card card)
    {
        card.transform.localRotation = Quaternion.Euler(new Vector3(0f, 0f, 0f));
        StartCoroutine(throwCard(card.gameObject));

        if (groundCards.Count != 0)
        {
            groundCards[groundCards.Count - 1].transform.position = new Vector3(1f, -2.3f, 1f / groundCards.Count);
        }
        groundCards.Add(card);


        selectedCards.Remove(card);
        myDeckObjects.Remove(card);
        myDeck.Remove(card.cardIndex);
        client.Send("CTHRW|" + card.cardIndex.ToString());
        yourTurn = false;

        deckArranger(Client.playerPosition);
        if (Client.playerPosition != 4)
        {
            positionToText(Client.playerPosition + 1).color = Color.green;
        }
        else
        {
            positionToText(1).color = Color.green;
        }
    }
Beispiel #19
0
    //////////////////////////////////////////////////////////////////////////



    //在更新卡的信息
    void updatecard(card c)
    {
        //对显示的卡进行数量
        //在page中找到这张卡
        Transform inpagecard = transform.FindChild(c.cardid);

        if (inpagecard != null)
        {
            inpagecard.SendMessage("upinfo", c);
        }

        //对总卡进行更新
        for (int x = 0; x < playerscard.Count; x++)
        {
            if (playerscard[x].cardid == c.cardid)
            {
                playerscard[x] = c;
            }
        }

        //对过滤后的卡进行更新

        for (int x = 0; x < costcard.Count; x++)
        {
            if (costcard[x].cardid == c.cardid)
            {
                costcard[x] = c;
            }
        }
    }
Beispiel #20
0
    void addone(card i)
    {
        animation["shownum"].speed = 1;
        animation.Play("shownum");

        info = i;
    }
Beispiel #21
0
        public async Task <IActionResult> Edit(int id, [Bind("id,front,back,webReference,catagory")] card card)
        {
            if (id != card.id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(card);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!cardExists(card.id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(card));
        }
Beispiel #22
0
 void drawcard(int i,card c,string mode)
 {
     if (i > 2) {c.drawCard(0.28,0.05+ 0.25*(i-3), 0.16, 0.25,mode);
     } else {c.drawCard (0.1 , 0.05+0.25*i, 0.16, 0.25,mode);
     }
     return;
 }
Beispiel #23
0
        private void neuerPatient_Click(object sender, EventArgs e)
        {
            String readerID = d.getReader().id;

            this.eCard    = d.getBaseService().getCardData(readerID);
            Nachname.Text = eCard.nachname;
        }
Beispiel #24
0
        public async Task CreateCard(card_7isab card_7)
        {
            await Task.Run(() => {
                Ico.getValue <db>().GetUnivdb().processes.ToList().Where(p => p.Id == process.Id).First().NewCost = newcost;
                Ico.getValue <db>().GetUnivdb().processes.ToList().Where(p => p.Id == process.Id).First().edit    = false;
                var d    = DateTime.Now;
                var name = "بطاقة  أخذ بحساب رقم " + 1 + " سنة " + d.Year;

                var car = new card()
                {
                    date       = DateTime.Now,
                    id_prosess = process.Id,
                    num        = 1,
                    year       = Ico.getValue <Date>().GetNowDate().Id,
                    location   = process.location + "\\" + name,
                };
                card_7 = new card_7isab()
                {
                    card = car,
                    visa = null
                };
                Ico.getValue <db>().GetUnivdb().cards.Add(car);
                Ico.getValue <db>().GetUnivdb().card_7isab.Add(card_7);
                Ico.getValue <db>().savedb();
                card_7             = Ico.getValue <db>().GetUnivdb().card_7isab.ToList().Where(c => c.card.id_prosess == process.Id).FirstOrDefault();
                Card_7isabExecl c7 = new Card_7isabExecl(card_7);
                c7.CreateCard();
                card = card_7.card;
                this.inTilData();

                Ico.getValue <ContentApp>().CancelSample4Dialog();
            });
        }
Beispiel #25
0
        /// <summary>
        /// 删除食物资料卡
        /// </summary>
        /// <param name="cid">资料卡id</param>
        /// <returns></returns>
        public ActionResult FoodIfoDeleteRequest(int cid)
        {
            card c = db.card.SingleOrDefault <card>(ca => ca.id == cid);

            db.DeleteObject(c);
            db.SaveChanges();
            return(Redirect("/food/FoodIfoList"));
        }
Beispiel #26
0
 void updatecard(card c)
 {
     if (page == null)
     {
         page = transform.root.FindChild("page");
     }
     page.SendMessage("updatecard", c);
 }
Beispiel #27
0
 public void Upick_All()
 {
     for (int i = 0; i < 10; i++)
     {
         card comp = ally_cards[i].GetComponent <card>();
         comp.unpick();
     }
 }
Beispiel #28
0
 private void lagTimer_Tick(object sender, EventArgs e)
 {
     lagTimer.Stop();
     firstCard.flipCard();
     secondCard.flipCard();
     firstCard  = null;
     secondCard = null;
 }
Beispiel #29
0
        // Get the position of a card in CardsToLiteralKey
        public static int CardLiteralKeyPosition(this card card)
        {
            int position = 0;

            //Position is arbitary and is 1D , 1C , 1H, 1S, 2D, 2C, 2H, 2S ...
            position = ((card.value - 1) * 4) + (card.suit - 1);
            return(position);
        }
Beispiel #30
0
        private void DrawCard()
        {
            int  cardsLeft = playdeck.Count;
            card newCard   = null;

            btnEndTurn.Enabled   = false;
            btnDrawCard.Enabled  = false;
            btnEndTurn2.Enabled  = false;
            btnDrawCard2.Enabled = false;
            btnDrawLoot.Visible  = false;

            if (cardsLeft >= 1)
            {
                newCard                 = playdeck[cardsLeft - 1];
                txtCardTitle.Text       = newCard.Title;
                txtCardDescription.Text = newCard.Description;
                txtCardClass.Text       = "";

                GameManager.CurrentCard = newCard;
                GameManager.CurrentPlayer.hand.Add(newCard);
                playdeck.RemoveAt(cardsLeft - 1);

                CheckCard(GameManager.CurrentCard);
            }
            else
            {
                //player p = GameManager.Players.ToList<player>().OrderByDescending(x => x.Points).First();

                // int numberOfWinners = GameManager.Players.ToList<player>(x => x.Points == p.ToString).Count();
//
                //  List<player> listOfWinners = (from p2 in GameManager.Players.ToList<player>() select p2.Points == GameManager.WinningPlayer.Points);
                List <player> listOfWinners;
                listOfWinners = GameManager.Players.ToList <player>().FindAll(x => x.Points == GameManager.WinningPlayer.Points);
                string winners = "";

                if (listOfWinners.Count == 1)
                {
                    winners = listOfWinners[0].classType.ToString();
                }

                if (listOfWinners.Count > 1)
                {
                    foreach (player p in listOfWinners)
                    {
                        winners = winners + ", " + p.classType.ToString();
                    }
                }
                StringBuilder winningMessage = new StringBuilder(String.Format("Game Over! The {0} wins with {1} points!", winners, GameManager.MaxPointsEarned));

                MessageBox.Show(winningMessage.ToString());

                btnSetUpGame.Text = "Play Again?";
                ResetBoard();
            }


            refreshDeckList();
        }
Beispiel #31
0
        public async Task Creat_card(part part)
        {
            await Task.Run(() =>
            {
                var num = 1;

                var kanon = Ico.getValue <db>().GetUnivdb().parts.ToList().Where(p => p.Id == part.Id).ToList().FirstOrDefault().card_kanoni.ToList().FirstOrDefault();
                if (kanon != null)
                {
                    Ico.getValue <db>().GetUnivdb().card_kanoni.Remove(kanon);
                    var ca = Ico.getValue <db>().GetUnivdb().cards.ToList().Where(c => c.Id == kanon.id_card).ToList().FirstOrDefault();
                    if (ca != null)
                    {
                        num = ca.num;
                        Ico.getValue <db>().GetUnivdb().cards.Remove(ca);
                        Ico.getValue <db>().savedb();
                    }
                }
                var cardn = Ico.getValue <db>().GetUnivdb().cards.ToList().Where(c => c.id_prosess == part.Id_Pro && c.year == Ico.getValue <Date>().GetNowDate().Id).OrderByDescending(c => c.num).ToList().FirstOrDefault();
                if (num == 1)
                {
                    if (cardn != null)
                    {
                        num = cardn.num + 1;
                    }
                }



                var d    = DateTime.Now;
                var name = "بطاقة إلتزام قانوني رقم " + num + " سنة " + d.Year;

                var card = new card()
                {
                    id_prosess = part.process.Id,
                    year       = Ico.getValue <Date>().GetNowDate().Id,
                    num        = num,
                    location   = Ico.getValue <IO>().CREATE_F_kanoni(part.process.location) + "\\" + name,
                    date       = DateTime.Now,
                };
                var kanoni = new card_kanoni()
                {
                    card      = card,
                    id_client = client.Id,
                    id_part   = part.Id,
                    cost      = part.Cost,
                    visa      = null
                };

                Ico.getValue <db>().GetUnivdb().cards.Add(card);
                Ico.getValue <db>().GetUnivdb().card_kanoni.Add(kanoni);
                Ico.getValue <db>().savedb();
                Card_kanoniExecl card_Kanoni = new Card_kanoniExecl(Ico.getValue <db>().GetUnivdb().card_kanoni.ToList().Where(c => c.id_part == part.Id).ToList().FirstOrDefault());
                card_Kanoni.CreateCard();

                Ico.getValue <ContentApp>().CancelSample4Dialog();
            });
        }
Beispiel #32
0
    public static void AddHandCard(card card_to_add)
    {
        Zone handzone = Enemy.HandZone;
        handzone.AddCard(card_to_add);

        CardsInHand += 1;

        GameObject.FindWithTag ("Enemy").SendMessage("TakesCardSFX");
    }
Beispiel #33
0
        public void ProcessRequest(HttpContext context)
        {
            string str = "";

            if (context.Request["cardid"] != null)
            {
                string    sql = "select * from Card where id=@id";
                DataTable dt  = SqlHelper.ExecuteDataTable(SqlHelper.connstrpark, CommandType.Text, sql, new SqlParameter("@id", context.Request["cardid"].ToString()));
                if (dt != null)
                {
                    if (dt.Rows.Count > 0)
                    {
                        card entity = new card();
                        entity.id           = Int32.Parse(dt.Rows[0]["id"].ToString());
                        entity.CardTypeId   = Int32.Parse(dt.Rows[0]["CardTypeId"].ToString());
                        entity.Balance      = Convert.ToDecimal(dt.Rows[0]["Balance"].ToString());
                        entity.CardNumber   = dt.Rows[0]["CardNumber"].ToString();
                        entity.CardTypeName = dt.Rows[0]["CardTypeName"].ToString();
                        entity.MemberId     = Int32.Parse(dt.Rows[0]["MemberId"].ToString());
                        object oo = SqlHelper.ExecuteScalar(SqlHelper.connstrpark, CommandType.Text, "select count(*) from Recharge where CardId=@CardId and AddPrice<0", new SqlParameter("@CardId", Int32.Parse(context.Request["cardid"].ToString())));
                        if (oo != null)
                        {
                            if (oo.ToString() != "")
                            {
                                entity.AllInTimes = Int32.Parse(oo.ToString());
                            }
                        }
                        if (entity.MemberId != 0)
                        {
                            object oonum = SqlHelper.ExecuteScalar(SqlHelper.connstrpark, CommandType.Text, "select count(*) from Card where MemberId=@MemberId ", new SqlParameter("@MemberId", Int32.Parse(dt.Rows[0]["MemberId"].ToString())));
                            if (oonum != null)
                            {
                                if (oo.ToString() != "")
                                {
                                    entity.CardNum = Int32.Parse(oonum.ToString());
                                }
                                else
                                {
                                    entity.CardNum = 1;
                                }
                            }
                            else
                            {
                                entity.CardNum = 1;
                            }
                        }
                        else
                        {
                            entity.CardNum = 1;
                        }
                        str = JsonConvert.SerializeObject(entity);
                    }
                }
            }
            context.Response.ContentType = "text/plain";
            context.Response.Write(str);
        }
Beispiel #34
0
    public static void AddEnchantment(card card_to_add)
    {
        cards_in_game.Add(card_to_add);
        enchantments.Add (card_to_add);

        Zone creaturezone = Enemy.CreaturesZone;

        creaturezone.AddCard (card_to_add);
        card_to_add.GetComponent<AudioSource>().PlayOneShot(card_to_add.sfxEntry);
    }
Beispiel #35
0
    private card init_card(int id, string name, int type, int element)
    {
        var card = new card();

        card.id      = id;
        card.name    = name;
        card.type    = type;
        card.element = element;
        return(card);
    }
Beispiel #36
0
Datei: AI.cs Projekt: hoki444/AOH
 public void Align(card[] pdeck,int deckcnumber)
 {
     string mode = "dead";
     int deadnumber = 0;
     int decknumber = 0;
     for(int i=0;i<deckcnumber;i++){
         if(mode=="dead"){
             if(pdeck[i].islive){
                 mode="deck";
                 deadnumber--;
                 decknumber--;
             }
             deadnumber++;
             decknumber++;
         }
         if(mode=="deck"){
             if(!pdeck[i].islive){
                 swapcard(pdeck[i].position0,deadnumber,pdeck);
                 deadnumber++;
             }
             if(pdeck[i].onfield){
                 mode="field";
                 decknumber--;
             }
             decknumber++;
         }
         if(mode=="field"){
             if(!pdeck[i].islive){
                 swapcard(pdeck[i].position0,deadnumber,pdeck);
                 if(decknumber==deadnumber){
                     deadnumber++;
                     decknumber++;
                 }
                 else{
                     swapcard(pdeck[i].position0,decknumber,pdeck);
                     deadnumber++;
                     decknumber++;
                 }
             }
             else if(!pdeck[i].onfield){
                 swapcard(pdeck[i].position0,decknumber,pdeck);
                 decknumber++;
             }
         }
     }
     for (int i=deckcnumber-1; i>=decknumber; i--) {
         for(int j=i;j<deckcnumber-1;j++)
         {
             if(pdeck[j].position1>pdeck[j+1].position1){
                 swapcard(j,j+1,pdeck);
             }
         }
     }
 }
Beispiel #37
0
    public static void DoBuff(bool positive, int param, int BuffType, bool EOT=false, card effectcard=null)
    {
        card card_to_buff;
        foreach (GameObject target in ourtargets)
        {
            card_to_buff = target.GetComponent<card>();	//only cards can be buffed for now (not players)

            card_to_buff.AddBuff(positive, param, BuffType, EOT, effectcard);

        }
    }
Beispiel #38
0
    public static void AddToStack(bool AI, card effectcard, int effect_number)
    {
        EffectToDo effect_to_add = new EffectToDo();

        effect_to_add.AI = AI;
        effect_to_add.effectcard = effectcard;
        effect_to_add.effect_number = effect_number;
        if (AI)  foreach (GameObject target in  Enemy.targets) effect_to_add.targets.Add(target);
        else foreach (GameObject target in  Player.targets) effect_to_add.targets.Add(target);

        Stack.Add (effect_to_add);
        Debug.Log ("added to stack effect from card:" + effectcard.Name + ", for enemy: "+AI);
    }
Beispiel #39
0
    //加一张卡
    void addcard(card c)
    {
        //如果已经满了
        if (getcardcount()=="30/30")
        {
            //不加,
            return;
        }
        c.insetcount++;
        c.count--;
        if (isinset(c.cardid)) //有
        {
            transform.FindChild(c.cardid).SendMessage("addone",c);
        }
        else
        {
            //根据消费来定插入位置

            int p = indexofset(int.Parse(c.cost));
            //实例化一个
            Transform go;

            if (setcards.Count == 0)
            {
                go = (Transform)Instantiate(setcardmodel, startpostion, transform.rotation);
                go.parent = transform;
                go.localPosition = startpostion;
            }
            else if (p == setcards.Count)
            {
                go = (Transform)Instantiate(setcardmodel, setcards[p - 1].position, setcards[p - 1].rotation);
                go.Translate(Vector3.back * 0.15f * 1.290421f);
            }
            else
            {
                go = (Transform)Instantiate(setcardmodel, setcards[p].position, setcards[p].rotation);
            }

            go.parent = transform;

            go.SendMessage("setinfo", c);
            setcarddown(p);
            setcards.Insert(p, go);
        }
        updatacardcount();
        //向page更新这张卡的信息
        updatecard(c);
        //更新统计信息
    }
Beispiel #40
0
    public static void AddCreature(card card_to_add)
    {
        cards_in_game.Add(card_to_add);
        enemy_creatures.Add (card_to_add);

        Zone creaturezone = Enemy.CreaturesZone;

        creaturezone.AddCard (card_to_add);

        // this is the same for player and enemy creatures

        card_to_add.FirstTurnInGame = true;

        card_to_add.GetComponent<AudioSource>().PlayOneShot(card_to_add.sfxEntry);

        Player.CreatureStatsNeedUpdating = true;
    }
Beispiel #41
0
    //只有1次
    void setinfo( card i)
    {
        info = i;

        transform.FindChild("pic").transform.FindChild("pic").renderer.material = info.image;
        transform.FindChild("cost").GetComponent<UILabel>().text = info.cost;

        if (info.cnname=="")
        {
            transform.FindChild("name").GetComponent<UILabel>().text = info.name;
        }
        else
        {
            transform.FindChild("name").GetComponent<UILabel>().text = info.cnname;
        }
        name = i.cardid;
    }
Beispiel #42
0
    public static void MoveCard(card card_to_move)
    {
        if (card_to_move.IsZoomed) { Debug.Log ("starting unzoom after moving"); Player.CanUnzoom = true; card_to_move.UnZoom(); }
        //move the card from collection to deck or from deck to collection
        if (card_to_move.InCollection)
        {
            Debug.Log("mouse down collection");

            card foundcard = EditDeckScripts.cards_in_deck.Find(x => x.Index == card_to_move.Index);

            if (foundcard) { Debug.Log("found, adding amount"); foundcard.Amount++;}
            else
            { 	//Debug.Log("cloning");
                GameObject clone;
                clone = (GameObject)Instantiate(card_to_move);
                EditDeckScripts.cards_in_deck.Add(clone.GetComponent<card>()); //make a copy of this card to display in deck
                //foundcard = EditDeckScripts.cards_in_deck.Find(x => x.Index == Index);
                clone.GetComponent<card>().Amount=1;
            }
            card_to_move.Amount--;

        }
        else
        {
            Debug.Log("moving card index: "+ card_to_move.Index.ToString());
            EditDeckScripts.cards_in_collection.Find(x => x.Index == card_to_move.Index).Amount++;
            Debug.Log("amount in coll: "+ 	EditDeckScripts.cards_in_collection.Find(x => x.Index == card_to_move.Index).Amount);
            card_to_move.Amount--;

            if (EditDeckScripts.FilterOn)
            {
                if (card_to_move.Name.ToString().ToLower().Contains(EditDeckScripts.searchname.ToLower())) { EditDeckScripts.cards_in_collection.Add(card_to_move); }
                else {
                    EditDeckScripts.cards_filtered_out.Add(card_to_move);
                    card_to_move.GetComponent<SpriteRenderer>().enabled = false;
                }
            }

        }

        EditDeckScripts.ArrangeCards();
    }
Beispiel #43
0
    Transform CreateCard(card a)
    {
        Transform ret = null;
        switch (a.type)
        {
            case CardType.kability:
                {
                    ret = (Transform)Instantiate(abilitypre.transform);
                }
                break;

            case CardType.kminion:
                {
                    ret = (Transform)Instantiate(minionpre.transform);
                }
                break;

            case CardType.kweapon:
                {
                    ret = (Transform)Instantiate(weaponpre.transform);
                }
                break;

            case CardType.khero:
                {
                    ret = (Transform)Instantiate(minionpre.transform);
                }
                break;

            case CardType.kheroPower:
                {
                    Debug.LogError("出现了英雄技能卡");
                }
                break;
        }
        ret.name = a.cardid;

       
        ret.SendMessage("setinfo", a);
        return ret;
    }
Beispiel #44
0
    public static void AddCreature(card card_to_add)
    {
        //		Debug.Log ("starting AddCreature");
        cards_in_game.Add(card_to_add);
        player_creatures.Add (card_to_add);

        Zone creaturezone = Player.CreaturesZone;

        card_to_add.ControlledByPlayer = true;

        creaturezone.AddCard (card_to_add);

        // this is the same for player and enemy creatures

        card_to_add.FirstTurnInGame = true; //important, because of the "return to deck" spells

        //AudioSource cardSFX = card_to_add.GetComponent<AudioSource>();
        //cardSFX.Play();
        card_to_add.GetComponent<AudioSource>().PlayOneShot(card_to_add.sfxEntry);

        Player.CreatureStatsNeedUpdating = true;
    }
Beispiel #45
0
    void setinfo(card i)
    {
        front = transform.FindChild("front").renderer;
        frontkuan = transform.FindChild("frontkuan").renderer;
        quality = transform.FindChild("quality").renderer;


        skininfo = i;
        name = skininfo.cardid;
        transform.FindChild("pic").renderer.material = skininfo.image;
        if (skininfo.cnname=="")
        {
            transform.FindChild("name").GetComponent<UILabel>().text = skininfo.name;
        } 
        else
        {
            transform.FindChild("name").GetComponent<UILabel>().text = skininfo.cnname;
        }
        transform.FindChild("cost").GetComponent<UILabel>().text = skininfo.cost;
        

        if (skininfo.cndescription=="")
        {
            transform.FindChild("description").FindChild("description").GetComponent<UILabel>().text = skininfo.description;
        } 
        else
        {
            transform.FindChild("description").FindChild("description").GetComponent<UILabel>().text = skininfo.cndescription;
        }
        if (skininfo.type != CardType.kability)//如果不是技能卡
        {
            transform.FindChild("attack").GetComponent<UILabel>().text = skininfo.attack;
            transform.FindChild("health").GetComponent<UILabel>().text = skininfo.health;
        }
        classskin();
        qualityskin();
        raceskin();
    }
Beispiel #46
0
    /// <summary>
    /// 载入xml
    /// </summary>
    static void loadxml()
    {
        AllCards = new List<card>();
        XmlDocument xml = new XmlDocument();
        //xml.Load(Application.dataPath + "\\card.xml");
        TextAsset cardsXml=(TextAsset)Resources.Load("card");
        xml.LoadXml (cardsXml.text);
        #region 读取卡数据

        foreach(XmlElement tcard in xml.DocumentElement.ChildNodes)
        {

            card a = new card();
            string imagename = tcard.SelectSingleNode("image").InnerText;
            Texture image = (Texture)Resources.Load("card/" + imagename);
            //建立卡图片的材质
            a.image = new Material(Shader.Find("Diffuse"));
            a.image.mainTexture = image;
            a.image.SetTextureScale("_MainTex", new Vector2(0.6f, 0.4f));
            a.image.SetTextureOffset("_MainTex", new Vector2(0.2f, 0.43f));

            a.cardid = tcard.Name;
            a.cnname = tcard.SelectSingleNode("cnname").InnerText;
            a.name = tcard.SelectSingleNode("name").InnerText;
            a.cndescription = tcard.SelectSingleNode("cndescription").InnerText;
            a.description = tcard.SelectSingleNode("description").InnerText;
            a.quality = (CardQuality)int.Parse(tcard.SelectSingleNode("quality").InnerText);
            a.set = (CardSet)int.Parse(tcard.SelectSingleNode("set").InnerText);
            a.type = (CardType)int.Parse(tcard.SelectSingleNode("type").InnerText);
            a.attack = tcard.SelectSingleNode("attack").InnerText;
            a.health = tcard.SelectSingleNode("health").InnerText;
            if (a.type == CardType.kweapon)//如果是武器卡,
            {
                a.health = tcard.SelectSingleNode("durability").InnerText;
            }
            a.cost = tcard.SelectSingleNode("cost").InnerText;
            a.count =1;
            string temp = tcard.SelectSingleNode("race").InnerText;

            if(temp == "")
            {
                temp = "0";
            }

            a.race = (CardRace)int.Parse(temp);
            temp = tcard.SelectSingleNode("classs").InnerText;

            if(temp == "")
            {
                temp = "0";
            }

            a.classs = (CardClass)int.Parse(temp);

            //跳过英雄与英雄技能卡
            if(a.type == CardType.kheroPower||a.type==CardType.khero)
            {
                continue;
            }

            AllCards.Add(a);
        }

        #endregion
    }
Beispiel #47
0
 // Use this for initialization
 void Start()
 {
     ai = new AI ();
     for (int i=0; i<6; i++) {
         pdeck[i]=new card();
             }
     tmanager=GameObject.Find("Tmanager").GetComponent<Texturemanager>();
     _camera = Camera.main;
     screenWidth = _camera.pixelWidth;
     screenHeight = _camera.pixelHeight;
     StreamReader sw= new StreamReader("battleinfo\\playerinfo.txt");
     money = int.Parse(sw.ReadLine ());
     nowdeck = int.Parse(sw.ReadLine ());
     sw.Close ();
     sw= new StreamReader("battleinfo\\battle.txt");
     while (ind<14) {
         try{tstr=sw.ReadLine();
             if (tstr=="e"){
                 ecard=true;
                 ind++;
                 tstr=sw.ReadLine();
             }
             if(ecard){
                 tobj=Instantiate (mcard,
                                   mcard.transform.position,
                                   this.gameObject.transform.localRotation);
                 tobj.name="tcard"+ind.ToString();
                 tcard = GameObject.Find("tcard"+ind.ToString()).GetComponent<card>();
                 tcard.assigncard(tstr);
                 tcard.isfrontcard=false;
                 tcard.ismycard=false;
                 tcard.position0=13-ind;
                 tcard.updateTexture(tmanager);
                 edeck[13-ind]=tcard;
             }
             ind++;
         }
         catch{break;}
         }
     edeckcnumber = 6;//TODO : 적의 덱 수를 알 수 있으면 지울것
     sw.Close ();
     StreamReader sw2 = new StreamReader ("battleinfo\\deck" + nowdeck.ToString () + ".txt");
     ind=0;
     pdeckcnumber=int.Parse(sw2.ReadLine());
     while (ind<pdeckcnumber) {
         try {
             tstr = sw2.ReadLine ();
             tobj = Instantiate (mcard,
                                 mcard.transform.position,
                                 this.gameObject.transform.localRotation);
             tobj.name = "tcard" + (ind).ToString ();
             tcard = GameObject.Find ("tcard" + (ind).ToString ()).GetComponent<card> ();
             tcard.assigncard (tstr);
             tcard.position0=ind;
             tcard.updateTexture (tmanager);
             pdeck [ind] = tcard;
             ind++;
         } catch {
             break;
         }
     }
     sw2.Close ();
 }
Beispiel #48
0
Datei: AI.cs Projekt: hoki444/AOH
 public bool summontest(int index,card[] pdeck,card[] edeck,int deckcnumber,int edeckcnumber)
 {
     for (int ind = 0; ind < deckcnumber; ind++) {
         card c = pdeck [ind];
         if(c.onfield&&c.position1==index){
             return false;
         }
     }
     for (int ind = 0; ind < edeckcnumber; ind++) {
         card c = edeck [ind];
         if(c.onfield&&c.position1==11-index){
             return false;
         }
     }
     return true;
 }
Beispiel #49
0
    public static void DoEffect(bool AI, card effectcard, int effect_number, List<GameObject> effecttargets)
    {
        if (Stack.Count == 0)

        {
            Player.CanDoStack = false;

            Debug.Log("gonna play audio: ");
            GameObject.FindWithTag("Player").GetComponent<AudioSource>().PlayOneShot(effectcard.sfxAbility0);
            if (effectcard.Type == 2 ) effectcard.StartCoroutine("SpellAfterEffects", AI); //if it's a spell
            else if ( effectcard.Type == 4 ) effectcard.StartCoroutine("SecretAfterEffects", AI); // or a secret
            else Player.SpellInProcess = false; //some ability

        }

        Debug.Log("DoEffect start, effect_number: "+effect_number+", effects on card: "+effectcard.Effects.Count);

        int Param0=0;
        int param0type = effectcard.Effects[effect_number].param0type;

        int effect = effectcard.Effects[effect_number].type;

        if (effectcard.Type == 1 && effectcard.Effects[effect_number].trigger == 1) //if it's a creature's activated ability
            effectcard.Turn ();

        Debug.Log ("gonna do effect type: " + effect);

        if (param0type == 1)	//number of allies
            if (effectcard.ControlledByPlayer) Param0 = Player.player_creatures.Count();
                else Param0 = Enemy.enemy_creatures.Count();

        else if (param0type == 2) //number of allies destroyed this turn
            if (effectcard.ControlledByPlayer) Param0 = Player.AlliesDestroyedThisTurn;
                else Param0 = Enemy.AlliesDestroyedThisTurn;

        else Param0 = effectcard.Effects [effect_number].param0;

        bool EOT = false;
        int BuffDebuffType = 0;
        //int card_index = effectcard.Index;

        Debug.Log ("param0:" + Param0);

        ourtargets = effecttargets;

        switch (effect) { // check the index of the 1st effect and call the appropriate function
        case 0: 	//heal
            Debug.Log ("heal");
            Heal (Param0);
            break;
        case 1:		// damage
            Debug.Log ("damage");
            if (Player.player_creatures.Contains(effectcard) || Enemy.enemy_creatures.Contains(effectcard)) Damage (Param0, effectcard.id_ingame);
            else Damage (Param0, effectcard.id_ingame);
            Debug.Log(" effectcard:"+effectcard.Name + "idingame:" +effectcard.id_ingame);
            break;
        case 2:		//draw card(s)
            Debug.Log ("draw card(s)");
            DrawCard (AI, Param0);
            break;
        case 4: //place a card in your land zone (from deck, graveyard, etc)

            Debug.Log ("place card in land zone");

            PutTargetCardInLandZone(AI);

            break;
        case 5: //place a card in your hand (from deck, graveyard, etc)

            Debug.Log ("place card in hand");

            PutTargetCardInHand(AI);

            break;
        case 6: //fight between two creatures
            Debug.Log ("brawl");
            Brawl();
            break;

        case 8: //untap
            Debug.Log ("untapattackingtarget");
            UntapTarget();
            break;
        case 9: //kill
            Debug.Log ("destroy");
             DestroyCreature();
            break;
        case 10: //debuff.  If the EOT boolean is true, this effect only lasts until end of turn.

            EOT = effectcard.Effects[effect_number].eot;

            Debug.Log ("debuff");
            BuffDebuffType = effectcard.Effects[effect_number].bufftype;
            DoBuff(false, Param0, BuffDebuffType, EOT, effectcard);
            break;

        case 11: //buff

            EOT = effectcard.Effects[effect_number].eot;

            Debug.Log ("buff");
            BuffDebuffType = effectcard.Effects[effect_number].bufftype;
            DoBuff(true, Param0, BuffDebuffType, EOT, effectcard); //we pass effect to let Buff know what type of buff we want
            break;
        case 12: //place creature, param is card index

            Debug.Log ("place creature");
            PlaceCreature(AI, Param0, effectcard);
            break;
        case 13: //place target creature in game under your control

            Debug.Log ("place creature");
            PlaceCreature(AI);
            break;
        case 15: //gain mana

            Debug.Log ("gain mana");
            GainMana(AI, Param0);
            break;
        default:
            Debug.Log ("effect:"+effect);
            Debug.Log ("there's no such effect in DB!");
            break;
        }

        Player.EffectInProcess = false;
    }
Beispiel #50
0
Datei: AI.cs Projekt: hoki444/AOH
 public void doAI(card[] pdeck,card[] edeck,int deckcnumber,int edeckcnumber)
 {
     for(int i=0;i<3;i++){
         if(summontest(i,edeck,pdeck,edeckcnumber,deckcnumber)){
             for (int ind = 0; ind < edeckcnumber; ind++) {
                 card c = edeck [ind];
                 if(c.onfield==false&&c.islive){
                     c.isfrontcard=true;
                     c.onfield=true;
                     c.position1=i;
                     c.state="field";
                     break;
                 }
             }
         }
     }
 }
Beispiel #51
0
Datei: AI.cs Projekt: hoki444/AOH
 public void swapcard(int p1,int p2,card[] pdeck)
 {
     card t1=new card();
     card t2=new card();
     foreach(card c in pdeck){
         if(c.position0==p1){
             t1=c;
             c.position0=p2;
         }
         else if(c.position0==p2){
             t2=c;
             c.position0=p1;
         }
     }
     pdeck [p1] = t2;
     pdeck [p2] = t1;
 }
Beispiel #52
0
    public void Grow(card upgrade, bool AI=false)
    {
        //Debug.Log ("growing, iszoomed:"+IsZoomed);
        Index = upgrade.Index;

        //if (IsZoomed) UnZoom();
        GetComponent<Collider2D>().enabled = false;

        foreach (Transform child in transform) Destroy(child.gameObject); //destroying additional gameobjects for art, card name, description text, etc
        playerDeck.pD.LoadCardStats(this);

        if (IsTurned)	//temporary unturn
            if (!MainMenu.TCGMaker.core.UseGrid) {
                if (transform.parent)
                    transform.parent.Rotate (0, 0, -MainMenu.TCGMaker.core.OptionTurnDegrees);
                else
                    transform.Rotate (0, 0, -MainMenu.TCGMaker.core.OptionTurnDegrees);
            }

        playerDeck.pD.AddArtAndText (this);

        if (AI)
                        Enemy.RemoveHandCard (upgrade);
                else
                        Player.RemoveHandCard (upgrade);

        Destroy (upgrade.gameObject);
        GetComponent<Collider2D>().enabled = true;

        if (IsTurned)	//return the turned rotation
            if (!MainMenu.TCGMaker.core.UseGrid) {
                if (transform.parent)
                    transform.parent.Rotate (0, 0, MainMenu.TCGMaker.core.OptionTurnDegrees);
                else
                    transform.Rotate (0, 0, MainMenu.TCGMaker.core.OptionTurnDegrees);
            }
    }
Beispiel #53
0
    //invokes when this card (probably a creature) is attacked
    public void IsAttacked(card Attacker)
    {
        if (Player.player_creatures.Contains(this)) Player.TriggerCardAbilities(abilities.ON_FRIENDLY_ISATTACKED);
            else Enemy.TriggerCardAbilities(abilities.ON_FRIENDLY_ISATTACKED);

        Debug.Log ("a creature "+Name+" is attacked, processing damage..");
        if (Attacker.Ranged) {
                                PlayFX(playerDeck.pD.firefx);
                                GetComponent<AudioSource>().PlayOneShot(HitBySpell);
                            }
            else 	GetComponent<AudioSource>().PlayOneShot (Hit);

        GetComponent<Renderer>().material.color = Color.red;
        Invoke ("RestoreColor", 0.3f); //we make the avatar red for 0.3 seconda

        int DamageToCreature;

        if (noDamage(Attacker, this)) DamageToCreature = 0;
            else
        {
            DamageToCreature = Attacker.CreatureOffense;

            if (Attacker.IsCriticalStrike ()) {
                            Player.Warning = "Critical strike!"; //you could change it to some fx
                            DamageToCreature = (int)(Attacker.CreatureOffense * Attacker.CritDamageMultiplier);
                                            }

            if (Attacker.DoubleDamage) DamageToCreature = DamageToCreature * 2;

            if (TakesHalfDamage) 	DamageToCreature = (int)(DamageToCreature / 2);

            if (Attacker.Ranged && less_dmg_from_ranged) DamageToCreature--;

            bool DoNoDamage = false;

            if (MainMenu.TCGMaker.core.OptionKillOrDoNothing)
                    {
                        if (Defense >= DamageToCreature) DoNoDamage = true;
                    }

            if (DoNoDamage)	DamageToCreature = 0;
                else Defense -= DamageToCreature;

            Debug.Log("dealt "+DamageToCreature+" damage, attacker offense:"+Attacker.CreatureOffense);
        }

        if (MainMenu.TCGMaker.core.OptionRetaliate && !noDamage(this, Attacker)) {
                        // the attacked creature deals damage back to the attacker:
            if (!MainMenu.TCGMaker.core.UseGrid || Ranged || slot.IsAdjacent(Attacker.slot) )
                            {
                                int DamageToAttacker = CreatureOffense;	//default damage

                                if (IsCriticalStrike ())
                                                DamageToAttacker = (int)(CreatureOffense * CritDamageMultiplier);

                                if (DoubleDamage)
                                                DamageToAttacker = DamageToAttacker * 2;

                                if (Attacker.TakesHalfDamage)
                                                DamageToAttacker = (int)(DamageToAttacker / 2);

                                if (Ranged && Attacker.less_dmg_from_ranged) DamageToAttacker--;

                                Attacker.Defense -= DamageToAttacker;
                            }

                }

        Player.CreatureStatsNeedUpdating = true;

        if (Defense <=0 ) {	//the attack target died

            if (Player.player_creatures.Contains(Attacker) || Player.cards_in_graveyard.Contains(Attacker))		Attacker.abilities.TriggerAbility (abilities.ON_KILL);

            else Attacker.abilities.TriggerAbility (abilities.ON_KILL, true);
                }

        if (Attacker.Defense <=0 ) {
            if (Player.player_creatures.Contains(this) || Player.cards_in_graveyard.Contains(this))		abilities.TriggerAbility (abilities.ON_KILL);
            else abilities.TriggerAbility (abilities.ON_KILL, true);
                }
    }
Beispiel #54
0
    public void AddBuff(bool positive, int param, int BuffType, bool EOT=false, card effectcard=null)
    {
        Debug.Log ("creature is being buffed for:" + param +", buff is positive: "+positive);
            Debug.Log ("BuffType" + BuffType);
            Buff newbuff = new Buff();

            switch (BuffType) {
            //OFFENSE BUFFS:
                case Buff.SET_ATTACK_TO:
                        CreatureOffense = param;
                        break;
                case Buff.RAISE_ATTACK_BY:
                        if (!positive) param = -param;
                        CreatureOffense += param;
                        break;
                case Buff.MULTIPLY_ATTACK_BY:
                        if (!positive) param = 1/param;
                        CreatureOffense *= param;
                        break;
            //DEFENSE BUFFS:
                case Buff.SET_DEFENSE_TO:
                        CreatureDefense = param;
                        break;
                case Buff.RAISE_DEFENSE_BY:
                        if (!positive) param = -param;
                        CreatureDefense += param;
                        break;
                case Buff.MULTIPLY_DEFENSE_BY:
                        if (!positive) param = 1/param;
                        CreatureDefense *= param;
                        break;
            //MISC BUFFS:
                case Buff.SET_CRIT_CHANCE_TO:
                        CritChance = param;
                        break;
                case Buff.ASSIGN_ABILITY:
                        if (!positive) RemoveAllAbilities();
                            else AssignSpecialAbility(param);
                        break;
                }
            UpdateCreatureAtkDefLabels();

            newbuff.type = BuffType;
            newbuff.positive = positive;
            newbuff.param = param;
            newbuff.EOT = EOT;

            if (effectcard.Type == 3 )newbuff.enchantmentcard = effectcard; // if it's an enchantment
            buffs.Add(newbuff);
    }
Beispiel #55
0
    bool noDamage(card attacker, card target)
    {
        if (attacker.deals_no_combat_dmg || target.takes_no_combat_dmg || (attacker.Ranged && target.no_dmg_from_ranged)) return true;

        return false;
    }
            public DeckOfCards()
            {
                string[] faces = { "A", "2", "3", "4", "5", "6",
                 "7", "8", "9", "10", "J", "Q", "K" };
                string[] suits = { "h", "d", "c", "s" };

                deck = new card[NUMBER_OF_CARDS];
                currentCard = 0;
                randomNumbers = new Random();

                for (int count = 0; count < deck.Length; count++)
                    deck[count] =
                       new card(faces[count % 13], suits[count / 13]);
            }
Beispiel #57
0
 // Update is called once per frame
 void setinfo(card i)
 {
     info = i;
     //更新数量
     updateNumtext();
 }
Beispiel #58
0
 void upinfo(card c)
 {
     info=c;
     updateNumtext();
 }
Beispiel #59
0
 private void addCard(card currCard, List<card> possibleCards)
 {
     if(possibleCards.Count == 0 || possibleCards.Count == 1)
     {
         possibleCards.Add(currCard);
     }
     else if(possibleCards.Count == 2)
     {
         if((possibleCards[0].B && possibleCards[1].B) || (possibleCards[1].B && currCard.B))
         {
             possibleCards.Add(currCard);
         }
         else
         {
             //must be lying about something!!! don't really know what we want to do here.
             //say that there is a zero percent chance that every one is telling the truth because at the point we know that at least one person is lying
         }
     }
 }
Beispiel #60
0
    //////////////////////////////////////////////////////////////////////////
   
    
    

    //在更新卡的信息
    void updatecard(card c)
    {
		 //对显示的卡进行数量
        //在page中找到这张卡
		        Transform inpagecard = transform.FindChild(c.cardid);

        if (inpagecard != null)
        {
            inpagecard.SendMessage("upinfo", c);
        }
		
        //对总卡进行更新
        for (int x = 0; x < playerscard.Count; x++)
        {
            if (playerscard[x].cardid == c.cardid)
            {
                playerscard[x] = c;
            }
        }

        //对过滤后的卡进行更新

        for (int x = 0; x < costcard.Count; x++)
        {
            if (costcard[x].cardid == c.cardid)
            {
                costcard[x] = c;
            }
        }
       

    }