public void forget() { command=""; from=null; to=null; card=null; }
public void Compose(Data.Card x, Data.Card y) { x.Compose(y); cards.Remove(x); cards.Remove(y); cards.Add(x); }
void Init() { chosen = null; cards = new Data.Card[3]; for (int i = 0; i < 3; i++) { cards[i] = cardFactory.Create(); } }
UI.Card FindCardUI(Data.Card card) { foreach (UI.Card cardUI in GetComponentsInChildren <UI.Card>(true)) { if (cardUI.card == card) { return(cardUI); } } return(null); }
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); }
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); } }
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; } }
public Compose(Data.Card left, Data.Card right) { this.left = left; this.right = right; }
public void ComposeCard(Data.Card left, Data.Card right) { poolCardList.Compose(left, right); ConsumeGold(100); }
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)); }
public void Show(Data.Card card) { FindCardUI(card).gameObject.SetActive(true); }
public void Hide(Data.Card card) { FindCardUI(card).gameObject.SetActive(false); }
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; } }
public void OnClickChooseButton(int index) { chosen = cards[index]; }
public UpdateCardCommand(string Id, Data.Card value) : base(TYPE) { this.Id = Id; this.Value = value; }
public void Add(Data.Card card) { cards.Add(card); }
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); }
public void Remove(Data.Card card) { cards.Remove(card); }
public int IndexOf(Data.Card card) { return(cards.IndexOf(card)); }
public GetCard(Data.Card card) { this.card = card; }
public Combination(HandType type, List <Data.Card> cards, Data.Card kicker) { Cards = cards; Type = type; Kicker = kicker; }
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"; } }
UI.Card AddCardUI(Data.Card card) { UI.Card cardUi = Instantiate(cardPrefab, transform, false); cardUi.SetUp(card, () => { selectSubject.OnNext(card); }); return(cardUi); }