Exemplo n.º 1
0
 public override void execute(TouhouCardEngine.CardEngine engine)
 {
     //玩家的最大能量加1但是不超过10,充满玩家的能量。
     engine.setProp("currentPlayer", player);
     engine.setMaxGem(player, player.getProp <int>("maxGem") + 1);
     engine.setGem(player, player.getProp <int>("maxGem"));
     //抽一张牌
     engine.draw(player);
     //使随从可以攻击
     foreach (Card card in player["Field"])
     {
         card.setProp("isReady", true);
         card.setProp("attackTimes", 0);
     }
     //开始烧绳倒计时
     //Task.Run(() =>
     //{
     //    Thread.Sleep(20000);
     //    //开始烧绳
     //    engine.doEvent(new CountDownEvent(player, 10));
     //});
 }
Exemplo n.º 2
0
        public override void execute(TouhouCardEngine.CardEngine engine)
        {
            //决定玩家行动顺序
            List <Player> remainedList = new List <Player>(engine.getPlayers());

            Player[] sortedPlayers = new Player[remainedList.Count];
            for (int i = 0; i < sortedPlayers.Length; i++)
            {
                int index = engine.randomInt(0, remainedList.Count - 1);
                sortedPlayers[i] = remainedList[index];
                remainedList.RemoveAt(index);
            }
            engine.setProp("sortedPlayers", sortedPlayers);
            //创建主人公和技能卡
            Card[] masterCards = sortedPlayers.Select(p => { return(p["Master"][0]); }).ToArray();
            foreach (Card card in masterCards)
            {
                card.setProp("life", 10);
                engine.registerCard(card);
            }
            Card[] skillCards = sortedPlayers.Select(p => { return(p["Skill"][0]); }).ToArray();
            foreach (Card card in skillCards)
            {
                engine.registerCard(card);
            }
            //洗牌,然后抽初始卡牌
            for (int i = 0; i < sortedPlayers.Length; i++)
            {
                if (engine.getProp <bool>("shuffle"))
                {
                    sortedPlayers[i]["Deck"].shuffle(engine);
                }
                int    count = i == 0 ? 3 : 4;
                Card[] cards = sortedPlayers[i]["Deck"][sortedPlayers[i]["Deck"].count - count, sortedPlayers[i]["Deck"].count - 1];
                sortedPlayers[i]["Deck"].moveTo(cards, sortedPlayers[i]["Init"], 0);
                engine.registerCards(cards);
            }
        }