Example #1
0
 public void forget()
 {
     command="";
     from=null;
     to=null;
     card=null;
 }
Example #2
0
 public void Compose(Data.Card x, Data.Card y)
 {
     x.Compose(y);
     cards.Remove(x);
     cards.Remove(y);
     cards.Add(x);
 }
Example #3
0
 void Init()
 {
     chosen = null;
     cards  = new Data.Card[3];
     for (int i = 0; i < 3; i++)
     {
         cards[i] = cardFactory.Create();
     }
 }
Example #4
0
 UI.Card FindCardUI(Data.Card card)
 {
     foreach (UI.Card cardUI in GetComponentsInChildren <UI.Card>(true))
     {
         if (cardUI.card == card)
         {
             return(cardUI);
         }
     }
     return(null);
 }
Example #5
0
        public Data.Card Create()
        {
            List <Data.Card.Attribute> attributes = new List <Data.Card.Attribute>();
            int n = UnityEngine.Random.Range(0, 4);

            for (int i = 0; i < n; i++)
            {
                var a = new Data.Card.Attribute();
                a.klass = Misc.RandomEnum <Data.Card.Attribute.Klass>();
                a.level = 1;
                attributes.Add(a);
            }

            var card = new Data.Card();

            card.SetUp(Misc.RandomEnum <PawnKlass>(), attributes);
            return(card);
        }
Example #6
0
        public void SetUp(Data.Card card, Action onSelect)
        {
            this.card     = card;
            this.onSelect = onSelect;

            var filename = $"CardImages/{card.Klass}";
            var sprite   = Resources.Load <Sprite>(filename);

            if (sprite == null)
            {
                Debug.Log($"cant't find such file: {filename}");
            }
            image.sprite = sprite;

            foreach (var attr in card.Attributes)
            {
                UI.CardAttribute attrUI =
                    Instantiate(attributePrefab, attributes, false);
                attrUI.SetUp(attr);
            }
        }
Example #7
0
 public void think(BattleMaster bm)
 {
     forget();
     this.bm=bm;
     cells=bm.getCells;
     // filterCells("replace","*","");
     // filterCells("markChess","*","chess");
     // return;
     switch(type){
     case"ai":
     from=null;
     to=null;
     card=null;
     cells=bm.getCells;
     command="";
     //統計我方可行動人員資料
     var arr=chessFilter(bm.getChesses,"myParty");
     var list=new List<Move>();
     foreach(var e in arr){
         // Debug.Log("daab");
         for(var i=0;i<e.numMove;i++)list.Add(new Move(e,"move"));
         for(var i=0;i<e.numAttack;i++)list.Add(new Move(e,"attack"));
         for(var i=0;i<e.numSummon;i++)list.Add(new Move(e,"summon"));
         for(var i=0;i<e.numSkill;i++)list.Add(new Move(e,"skill"));
         for(var i=0;i<e.numUltimate;i++)list.Add(new Move(e,"ultimate"));
     }
     //若無可行動人員則結束回合
     if(list.Count<1||tryErrror>100){
         command="endTurn";
         // Debug.Log("endTurn");
         return;
     }
     //隨機選擇一個行動
     Move move=U.choose(list.ToArray()) as Move;
     var chessSel=move.chess;
     if(chessSel==null)return;
     //選擇打誰
     var chessTarget=chooseChess("nearestEnemy",chessSel.cell);
     if(chessTarget==null)return;
     //清空Cells tag
     filterCells("replace","*","");
     //根據不同指令作分歧
     msg=move.command;
     switch(move.command){
     case"attack":
         //判斷可否攻擊此名最近敵人
         if(Cell.Distance(chessSel.cell,chessTarget.cell)<2){
             // sDebug.Log(Cell.Distance(chessSel.cell,chessTarget.cell));
             from=chessSel.cell;
             to=chessTarget.cell;
             command="attack";
             tryErrror=0;
         }else tryErrror++;
         // chessSel.cell
         break;
     case"summon":
         // Debug.Log("ddd");
         card=new Card();
         from=chessSel.cell;
         to=find("nearest",cellFilterMove(chessSel.cell,1),chessTarget.cell);
         command="magic";
         tryErrror=0;
         break;
     case"move":
         //尋找離目標最近的cell
         from=chessSel.cell;
         to=find("nearest",cellFilterMove(chessSel.cell,1),chessTarget.cell);
         command="move";
         tryErrror=0;
         // Debug.Log(cellFilterMove(chessSel.cell,1).Length);
         break;
     }
     break;
     case"player":
     to=bm.to;
     from=bm.from;
     card=bm.card;
     command=bm.command;
     break;
     }
 }
Example #8
0
 public Compose(Data.Card left, Data.Card right)
 {
     this.left  = left;
     this.right = right;
 }
Example #9
0
 public void ComposeCard(Data.Card left, Data.Card right)
 {
     poolCardList.Compose(left, right);
     ConsumeGold(100);
 }
Example #10
0
        public static Models.Card ToWebCard(this Data.Card card)
        {
            CardConverter converter = new CardConverter();

            return(converter.Convert(card));
        }
 /// <summary>
 /// Serializes a <see cref="Data.Card"/> object to string
 /// </summary>
 /// <param name="card">Object to be serialized</param>
 /// <returns>String containing the serialized JSON</returns>
 public string SerializeCard(Data.Card card)
 {
     return(JsonSerializer.Serialize(card, serializerOptions));
 }
Example #12
0
 public void Show(Data.Card card)
 {
     FindCardUI(card).gameObject.SetActive(true);
 }
Example #13
0
 public void Hide(Data.Card card)
 {
     FindCardUI(card).gameObject.SetActive(false);
 }
Example #14
0
 void button(GameObject gobj)
 {
     Cell cell;
     var card=Data.Card.find(gobj.name);
     switch(gobj.name){
     case"commandEndTurn":
     command="endTurn";
     break;
     case"nguiButtonCell":
     cell=gobj.GetComponent<NguiButton>().cell;
     switch(sur){
     case"pickTo":
         to=cell;
         break;
     default:
         from=cell;
         break;
     }
     break;
     case"nguiButtonChess":
     cell=gobj.GetComponent<NguiButton>().chess.cell;
     switch(sur){
     case"pickTo":
         to=cell;
         break;
     default:
         from=cell;
         break;
     }
     break;
     case"commandAttack":
     command="attack";
     break;
     case"commandMove":
     command="move";
     break;
     case"commandOff":
     case"buttonFullCancel":
     command="cancel";
     break;
     case"commandSummon":
     default:
     if(card==null)break;
     // ch=gobj.GetComponent<CardHand>();
     command="magic";
     this.card=card;
     break;
     }
 }
Example #15
0
 public void OnClickChooseButton(int index)
 {
     chosen = cards[index];
 }
 public UpdateCardCommand(string Id, Data.Card value) : base(TYPE)
 {
     this.Id    = Id;
     this.Value = value;
 }
Example #17
0
 public void Add(Data.Card card)
 {
     cards.Add(card);
 }
Example #18
0
        private static string ConvertCard(Data.Card card)
        {
            var name = "";

            var value = "";

            switch (card.Value)
            {
            case Value.Zwei:
                value = "2";
                break;

            case Value.Drei:
                value = "3";
                break;

            case Value.Vier:
                value = "4";
                break;

            case Value.Fünf:
                value = "5";
                break;

            case Value.Sechs:
                value = "6";
                break;

            case Value.Sieben:
                value = "7";
                break;

            case Value.Acht:
                value = "8";
                break;

            case Value.Neun:
                value = "9";
                break;

            case Value.Zehn:
                value = "T";
                break;

            case Value.Bube:
                value = "J";
                break;

            case Value.Dame:
                value = "Q";
                break;

            case Value.König:
                value = "K";
                break;

            case Value.Ass:
                value = "A";
                break;

            case Value.Error:
                break;

            default:
                throw new Exception("Error Karte");
            }

            var suit = "";

            switch (card.Suit)
            {
            case Suit.Karo:
                suit = "d";
                break;

            case Suit.Herz:
                suit = "h";
                break;

            case Suit.Pik:
                suit = "s";
                break;

            case Suit.Kreuz:
                suit = "c";
                break;

            case Suit.Error:
                break;

            default:
                throw new Exception("Error Karte");
            }

            name = value + suit;

            return(name);
        }
Example #19
0
 public void Remove(Data.Card card)
 {
     cards.Remove(card);
 }
Example #20
0
 public int IndexOf(Data.Card card)
 {
     return(cards.IndexOf(card));
 }
Example #21
0
 public GetCard(Data.Card card)
 {
     this.card = card;
 }
Example #22
0
 public Combination(HandType type, List <Data.Card> cards, Data.Card kicker)
 {
     Cards  = cards;
     Type   = type;
     Kicker = kicker;
 }
Example #23
0
 void Update()
 {
     nguiHpHost[0].value=host.hpHero.rate;
     nguiHpHost[1].value=host.hpTroop.rate;
     nguiHpChallenger[0].value=challenger.hpHero.rate;
     nguiHpChallenger[1].value=challenger.hpTroop.rate;
     nguiTimeThink.value=aThink.rate;
     if(!performance.isFinished||sur=="set")return;
     //surface 切換
     switch(sur){
     case"pickTo":
     if(command=="cancel"){
         sur="pickCommand";
         command="";
         nguiCommand=(true);
         card=null;
         to=null;
         toggleCell();
     }
     break;
     case"pickFromCard":
     break;
     case"pickCommand":
     switch(command){
     case"summon":
     case"magic":
         sur="pickTo";
         toggleCellMove(from,1);
         break;
     case"attack":
         toggleCellAttack(from,1);
         sur="pickTo";
         break;
     case"move":
         toggleCellMove(from,1);
         sur="pickTo";
         break;
     case"cancel":
         sur="pickFrom";
         from=null;
         to=null;
         card=null;
         toggleCellAll();
         toggleChessSelf();
         break;
     }
     if(command!=""){
         nguiCommand=false;
         // command="";
     }
     break;
     default:
     if(!from)break;
     var chess=findChess(from);
     if(!chess)break;
     command="";
     to=null;
     card=null;
     sur="pickCommand";
     refreshCommandMenu();
     nguiCommand=true;
     parentCommandMenu.localPosition=chess.coor;
     toggleCell();
     break;
     }
     //ghost 執行
     var ghost=troop.ghost;
     ghost.think(this);
     thought=ghost.msg;
     if(aThink.a)ghost.command="endTurn";
     if(ghost.isFigureOut){
     excute(ghost);
     performance.play();
     toggleCell();
     from=null;
     to=null;
     card=null;
     command="";
     nguiCommand=false;
     sur="performing";
     }
 }
Example #24
0
 UI.Card AddCardUI(Data.Card card)
 {
     UI.Card cardUi = Instantiate(cardPrefab, transform, false);
     cardUi.SetUp(card, () => { selectSubject.OnNext(card); });
     return(cardUi);
 }