public void SetCardConfigID(int id) { CardConfig config = ConfigInfo.instance.CARDS[id]; SetStars(config.Rank); SetName(config.CardName); SetQuality(config.Quality); SetCategory(config.Category); SetLv(config.LEVEL); transform.GetComponent<UITextureAtlas>().SetTexture(config.ICON); this.config = config; }
static void Main(string[] args) { CardInfos ci = new CardInfos(); try { StreamReader sr = new StreamReader("card.config"); string line; while ((line = sr.ReadLine()) != null) { string[] attr = line.Split(','); String[] ccPair = attr[0].Split('='); String[] icard = attr[1].Split('='); CardConfig cc = new CardConfig() { Name = ccPair[1].Trim() }; ICard card = (ICard)Assembly.GetExecutingAssembly().CreateInstance(icard[1].Trim()); cc.Card = card; ci.Add(cc); } sr.Close(); } catch(Exception e) { String config = JsonConvert.SerializeObject(new Ret() { Err="卡配置文件错误。"}); Console.Write(config); Log.Debug(config); return; } int BaudRate = int.Parse(Config.GetConfig("Baud")); short Port = short.Parse(Config.GetConfig("Port")); Log.Debug(String.Join(" ", args)); GenericService service = new GenericService(ci, Port, BaudRate); Object obj = null; switch(args[0]) { case "ReadCard": obj = service.ReadCard(); break; case "WriteGasCard": obj = service.WriteGasCard(args[1], args[2], args[3], args[4], int.Parse(args[5]), int.Parse(args[6]), int.Parse(args[7]), short.Parse(args[8]), int.Parse(args[9]), int.Parse(args[10]), int.Parse(args[11]), int.Parse(args[12]), args[13], args[14], int.Parse(args[15]), int.Parse(args[16]), args[17], args[18] ); break; case "WriteNewCard": obj = service.WriteNewCard(args[1], args[2], short.Parse(args[3]), args[4], args[5], args[6],args[7], int.Parse(args[8]), int.Parse(args[9]), int.Parse(args[10]), short.Parse(args[11]), int.Parse(args[12]), short.Parse(args[13]), int.Parse(args[14]), int.Parse(args[15]), int.Parse(args[16]), int.Parse(args[17]), args[18], args[19], int.Parse(args[20]), int.Parse(args[21]), args[22], args[23] ); break; case "FormatGasCard": obj = service.FormatGasCard(args[1], args[2], args[3], args[4]); break; case "OpenCard": obj = service.OpenCard(args[1], args[2], args[3], args[4]); break; default: return; } String result = JsonConvert.SerializeObject(obj); Console.Write(result); Log.Debug(result); return; }
[UnityTest]//测试 简单召唤行为 并且给怪兽加500点攻击 然后移除 public IEnumerator Test_NormalCall_NormalBuff() { var cards = new int[] { 1, 2, 3, 4, 5 }; var cardNum = cards.Length; var playerID = 0; var model = BattleManager.Instance.GetPlayerModel(playerID); model.InitDeck(cards); var attackValue = 500; var lifeValue = 100; var config = new CardConfig() { Attack = attackValue, Lifte = lifeValue }; var deckList = model.GetCardList(SiteType.Deck); var groundList = model.GetCardList(SiteType.Ground); var handleList = model.GetCardList(SiteType.Hand); for (int i = 0; i < deckList.Count; i++) { var card = HandleManager <Card> .Instance.Get(deckList[i]); TestHelper.SetInstanceField(card, "m_config", config); } var codes1 = new int[] { 103, 116, 103, 115, 114, 127 }; //召唤怪兽 LBehavior behavior1 = new LBehavior(playerID, codes1); var codes2 = new int[] { 1, 1, 103, 113, 127 }; //抽卡 LBehavior behavior2 = new LBehavior(playerID, codes2); yield return(behavior2.AsynceExecute().ToCoroutine()); yield return(behavior2.AsynceExecute().ToCoroutine()); Assert.AreEqual(deckList.Count, 3); Assert.AreEqual(handleList.Count, 2, "手牌"); var callCard = handleList[0]; BattleManager.Instance.EStation.AddListener(LEventType.ChoseMonsterCard, async x => { var data = HandleManager <EventData_ChoseMonsterCard> .Instance.Get(x); data.CardHanle = callCard; await UniTask.Yield(); }); BattleManager.Instance.EStation.AddListener(LEventType.SelectLocation, async x => { var data = HandleManager <EventData_SelectLocation> .Instance.Get(x); data.Location = Vector2Int.one; await UniTask.Yield(); }); BattleManager.Instance.EStation.AddListener(LEventType.NomalCallSuccess, async x => { var data = HandleManager <EventData_NomalCallSuccess> .Instance.Get(x); data.Location = Vector2Int.one; var card = HandleManager <Card> .Instance.Get(data.CardHandle); var monsterHandle = (Handle <Monster>)TestHelper.GetInstanceField(card, "m_monsterHandle"); var monster = HandleManager <Monster> .Instance.Get(monsterHandle); var location = (Vector2Int)TestHelper.GetInstanceField(card, "m_location"); Assert.AreEqual(monster.GetPropVlaue(PropType.Attack), attackValue, "攻击力"); // Assert.AreEqual(monster.GetMaxLife(), lifeValue, "最大生命"); Assert.AreEqual(callCard, data.CardHandle); Assert.AreEqual(location, Vector2Int.one); await UniTask.Yield(); }); yield return(behavior1.AsynceExecute().ToCoroutine()); Assert.AreEqual(deckList.Count, 3); Assert.AreEqual(handleList.Count, 1, "最后手牌数"); Assert.AreEqual(groundList.Count, 1); //测试增加攻击力 和 最大生命buff behavior1.SetCodes(new int[] { 1, 1000, 1, 1, 1, 1, 125, 124, 118, 1, 500, 1, 0, 1, 1, 125, 124, 118, 127 }); behavior1.SetData(LBehavior.DataType.BuffHandle, 100); behavior1.SetData(LBehavior.DataType.CardHandle, callCard); yield return(behavior1.AsynceExecute().ToCoroutine()); var callMonster = callCard.Get <Card>().GetMonsterHandle().Get <Monster>(); Assert.AreEqual(callMonster.GetPropVlaue(PropType.Attack), attackValue + 500, "多了500点"); Assert.AreEqual(callMonster.GetPropVlaue(PropType.MaxLife), lifeValue + 1000, "多了1000点"); //测试移除攻击力buff behavior1.SetCodes(new int[] { 2, 2, 0, 1, 1, 1, 125, 124, 120, 127 }); behavior1.SetData(LBehavior.DataType.BuffHandle, 100); behavior1.SetData(LBehavior.DataType.CardHandle, callCard); yield return(behavior1.AsynceExecute().ToCoroutine()); Assert.AreEqual(callMonster.GetPropVlaue(PropType.Attack), attackValue, "攻击恢复正常"); Assert.AreEqual(callMonster.GetPropVlaue(PropType.MaxLife), lifeValue, "生命恢复正常"); }