void Awake() { // フレームレート設定 Application.targetFrameRate = frameRate; // タイムスケール設定 Time.timeScale = timeScale; // サウンド初期化 oulAudio.Initialize(); // 共通データ初期化 SelectData.Initialize(); // ウィンドウサイズサイズ Screen.SetResolution(windowWidth, windowHeight, false, 60); // カメラコンポーネントを取得します //cam = Camera.main; UpdateAspect(); // プレイヤーデータ読み込み PlayerDataManager.Load(); // カードデータ読み込み CardDataBase.Start(); // カードの淵のデータ取得 CardFrames.Init(); }
static void Rate(CardDataBase CDB) { foreach (CardData card in CDB.AllCards) { card.Rating = 0; if (card.Type == 0 || card.Type == 1) { card.Rating += (card.Attack + card.Defense) * 1; } else { card.Rating -= (card.Attack + card.Defense) * 1; } card.Rating -= 2 * card.Cost; card.Rating += 1 * card.CardDraw; card.Rating += (card.MyHealthChange - card.OppHealthChange) * 1; if (card.Abilities.HasBreakthrough) { card.Rating += 1; } if (card.Abilities.HasCharge) { card.Rating += 1; } if (card.Abilities.HasDrain) { card.Rating += 1; } if (card.Abilities.HasGuard) { card.Rating += 1; } if (card.Abilities.HasLethal) { card.Rating += 1; } if (card.Abilities.HasWard) { card.Rating += 1; } } var SORT = from card in CDB.AllCards orderby card.Rating descending select card; foreach (CardData card in SORT) { Console.Error.WriteLine(card.CardNumber + " " + card.Type); Console.Error.WriteLine(card.Cost + " " + card.Attack + "/" + card.Defense); Console.Error.WriteLine(card.Abilities.toString()); Console.Error.WriteLine(card.MyHealthChange + "/" + card.OppHealthChange + " " + "DRAW " + card.CardDraw); Console.Error.WriteLine("Rating: " + card.Rating); Console.Error.WriteLine("**********"); } }
// 無しのカードを入れる public void MissingCard() { CardData data = CardDataBase.GetCardData((int)IDType.NONE);// 欠番 // (11/14) -1を入れるとなしカードが欲しい この関数いらん SetCardData(data); // □えうれしあを消す gameObject.SetActive(false); }
public AdvancedSearch(float x, float y, DeckEditorManager deck, DeckSearcher searcher) { GlobalVarAdvSearch.dropDownListOpen = false; _DeckSearcher = searcher; _DeckEditor = deck; /* _w *= _DeckEditor._xWindowScale; _h *= _DeckEditor._yWindowScale; */ xScale = _DeckEditor._xWindowScale; yScale = _DeckEditor._yWindowScale; _x = x; _y = y; _Background = Resources.Load ("DeckEditor/AdvancedSearch") as Texture2D; _Data = new CardDataBase(); AllCards = _Data.GetAllCards(); _DropDownList = new PopupList((int)(_x + 80.0f), (int)(_y + 30.0f + 25.0f), 130, 20, 5); _DropDownList.Add("All"); _DropDownList.Add("0"); _DropDownList.Add("1"); _DropDownList.Add("2"); _DropDownList.Add("3"); _DropDownList.Add("4"); _ClanPopupList = new PopupList((int)(_x + 80), (int)(_y + 115), 130, 20, 5); _ClanPopupList.SetSliderYFactor(16.7f); _ClanPopupList.Add("All"); _ClanPopupList.Add("Angel Feather"); _ClanPopupList.Add("Aqua Force"); _ClanPopupList.Add("Bermuda Triangle"); _ClanPopupList.Add("Dark Irregulars"); _ClanPopupList.Add("Dimension Police"); _ClanPopupList.Add("Genesis"); _ClanPopupList.Add("Gold Paladin"); _ClanPopupList.Add("Granblue"); _ClanPopupList.Add("Great Nature"); _ClanPopupList.Add("Kagero"); _ClanPopupList.Add("Link Joker"); _ClanPopupList.Add("Megacolony"); _ClanPopupList.Add("Murakumo"); _ClanPopupList.Add("Narukami"); _ClanPopupList.Add("Neo Nectar"); _ClanPopupList.Add("Nova Grappler"); _ClanPopupList.Add("Nubatama"); _ClanPopupList.Add("Oracle Think Tank"); _ClanPopupList.Add("Pale Moon"); _ClanPopupList.Add("Royal Paladin"); _ClanPopupList.Add("Shadow Paladin"); _ClanPopupList.Add("Spike Brothers"); _ClanPopupList.Add("Tachikaze"); }
private void Start() { cardData = CardDataBase.GetCardData(iDtype, number); var text = GetComponentInChildren <TMPro.TextMeshPro>(); text.text = IDName[iDtype] + "." + number; if (OnCardClick == null) { OnCardClick = new UEventCard(); } }
public void Marigan(SyncDeckInfo syncData) { Clear(); foreach (int yamahudaID in syncData.yamahuda) { if (yamahudaID == -1) { break; } yamahuda.Add(CardDataBase.GetCardData(yamahudaID)); } cardObjectManager.Marigan(yamahuda.ToArray()); }
public void Sync(SyncDeckInfo syncData) { Clear(); //foreach (int handID in syncData.hand) //{ // if (handID == -1) break; // hand.Add(CardDataBase.GetCardData(handID)); //} foreach (int yamahudaID in syncData.yamahuda) { if (yamahudaID == -1) { break; } // ★★★嫌な予感がする…(参照) //var cardData = new CardData(); //cardData = CardDataBase.GetCardData(yamahudaID); //var abilityData = cardData.GetAbilityData(); //if(abilityData != null) //{ // abilityData.SetMyPlayerFlag(player.isMyPlayer); //} var cardData = CardDataBase.GetCardData(yamahudaID); yamahuda.Add(cardData); } //foreach (int bochiID in syncData.bochi) //{ // if (bochiID == -1) break; // bochi.Add(CardDataBase.GetCardData(bochiID)); //} //foreach (int tuihouID in syncData.tuihou) //{ // if (tuihouID == -1) break; // tsuihou.Enqueue(CardDataBase.GetCardData(tuihouID)); //} // 向こうから来るやつにつかう cardObjectManager.SetDeckData(yamahuda.ToArray(), player.isMyPlayer); // その情報をもとにカードオブジェクト更新 //cardObjectManager.UpdateHand(hand, player); //cardObjectManager.UpdateYamahuda(yamahuda, player); }
public void SetDeckData(PlayerDeckData deckData, bool updateCardObject = true) { Clear(); int[] cardID = deckData.GetArray(); // デッキデータを山札に入れていく foreach (int id in cardID) { if (id != (int)IDType.NONE) { //// ★★★嫌な予感がする…(参照) //var cardData = new CardData(); //cardData = CardDataBase.GetCardData(id); //var abilityData = cardData.GetAbilityData(); //if (abilityData != null) //{ // abilityData.SetMyPlayerFlag(player.isMyPlayer); //} var cardData = CardDataBase.GetCardData(id); yamahuda.Add(cardData); //// 所持効果持ちファイターを保存 //if (cardData.cardType == CardType.AbilityFighter ) //{ // haveAbilityCards.Add(cardData); //} } } //foreach (CardData card in deckData.eventCards) //{ // if (card == null) continue; // yamahuda.Enqueue(card); //} //yamahuda.Enqueue(deckData.jorkerCard); // 山札シャッフル Shuffle(ref yamahuda); if (updateCardObject) { cardObjectManager.SetDeckData(yamahuda.ToArray(), player.isMyPlayer); } }
public void SarchAbilityCards(PlayerDeckData deckData) { haveAbilityCards.Clear(); int[] cardID = deckData.GetArray(); // デッキデータを山札に入れていく foreach (int id in cardID) { if (id != (int)IDType.NONE) { var cardData = CardDataBase.GetCardData(id); // 所持効果持ちファイターを保存 if (cardData.cardType == CardType.AbilityFighter) { haveAbilityCards.Add(cardData); } } } }
// Use this for initialization void Start() { SelectData.iDeckCollectLineNo = 0; //TouchCardObj.GetComponent<uGUICard>().SetCardData(CardDataBase.GetCardData(4)); //Arrow.SetActive(false); m_vTapPos = new Vector3(0, 0, 0); m_vCurrentPos = new Vector3(0, 0, 0); m_bCardTap = false; // (TODO)(A列車)システム初期化 を全て共通に oulSystem.Initialize(); // BGM oulAudio.PlayBGM("CollectionBGM", true); // カードのデータベースを初期化 //CardDataBase.Start(); CardData data = CardDataBase.GetCardData(3); // ID0番目のカードデータを取ってくる。 CardData[] all = CardDataBase.GetDeckSortedCardData(); // カード情報を全て取得する。1/12 デッキ選択用のソートした配列を取得 int size = all.Length; // カードの最大数 // ★Findは非アクティブ状態ではとれないから取ってから消すやで //m_uGraspCard=gameObject //m_uGraspCard = GameObject.Find("Canvas/uGUICard"); //.GetComponent<uGUICard>(); m_uGraspCard.GetComponent <uGUICard>().SetCardData(data); //m_uGraspCard.GetComponent<Ripple>().SetAlpha(1.0f); // 透明に m_uGraspCard.SetActive(false); // 取得したから消すやで for (int i = 0; i < PlayerDeckData.deckMax; i++) { // 変更前 // m_pCardPlateArray[i] = (GameObject)Instantiate(CardPlatePrefab); // m_pCardPlateArray[i].transform.SetParent(, false); /* * 差異としては、as句の方が高速であることと、失敗時にキャスト演算は例外を発生させas句はnullを返します。 * 例外は処理するのにもコストがかかるので、特別な事が無い限りはこの場合as句を利用するのが良いです。 */ // 変更後 //m_aCardPlate[i] = Instantiate(CardPlatePrefab, DeckCardGroup.transform) as GameObject; m_aMyDeckCard[i] = Instantiate(CardPrefab, DeckCardGroup.transform) as GameObject; m_aMyDeckCard[i].GetComponent <uGUICard>().SetMyDeck(true);// ★★★このカードは自分のデッキかどうか int StartX = 100; int StartY = 130; //m_aCardPlate[i].transform.localPosition = new Vector2(StartX + (150 * (i % 5)), StartY + (i / 5) * -185); m_aMyDeckCard[i].transform.localPosition = new Vector2(StartX + (150 * (i % 5)), StartY + (i / 5) * -185); // マイデッキ m_aMyDeckCard[i].GetComponent <ScreenOutAppeared>().SetNextPos(new Vector3(StartX + (150 * (i % 5)), StartY + (i / 5) * -185, 0.0f)); } // (TODO)自分のデッキやで 仮0スロット目のデッキのカードのID取得 int[] myDeckID = PlayerDataManager.GetPlayerData().GetDeckData(0).GetArray(); // ★デッキデータ for (int i = 0; i < PlayerDeckData.deckMax; i++) { // (11/13)(TODO)取得したデータが何も書かれていなかったら // SetActiveで消す int id = myDeckID[i]; //CardType type = CardType.Fighter; m_aMyDeckCard[i].GetComponent <uGUICard>().SetCardData(CardDataBase.GetCardData(id)); //;= strikerCards[i]; } // コレクション for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++) { m_aCollectCard[i] = Instantiate(CardPrefab, CollectCardGroup.transform) as GameObject; int StartX = -620; int StartY = 128; m_aCollectCard[i].transform.localPosition = new Vector2(StartX + (150 * (i % 4)), StartY + (i / 4) * -185); m_aCollectCard[i].GetComponent <uGUICard>().SetCardData(all[i]); // (11/13)うんこソート // 先にデッキに入っていないカード状態に m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_Off(); for (int i2 = 0; i2 < PlayerDeckData.deckMax; i2++) { // ★コレクションにあるカードがすでに被ってたら暗くするソート if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.id == m_aMyDeckCard[i2].GetComponent <uGUICard>().cardData.id) { // デッキに入っている状態 m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_On(); break; } } // ソート } // forコレクション EventMANTAN(); AbilityMANTAN(); //// カードタイプ //if (CardDataBase.GetCardData(11).cardType == CardType.Fighter) //{ // int a = 0; // a++; //} //if (CardDataBase.GetCardData(11).cardType == CardType.Intercept) //{ // int b = 0; // b++; //} //m_aMyDeckCard[PlayerDeckData.numStriker].GetComponent<uGUICard>().SetCardData;//PlayerDeckData.jorkerCard; //for (int i = 0; i < PlayerDeckData.numEvent; i++) //{ // cards[numStriker + numJoker + i] = eventCards[i]; //} // ステートマシンの初期化や切り替えは最後に行う m_pStateMachine = new BaseEntityStateMachine <SceneDeck>(this); m_pStateMachine.globalState = SceneDeckState.Global.GetInstance(); m_pStateMachine.ChangeState(SceneDeckState.Intro.GetInstance()); return; }
// ライン変更 public void ChangeLine(int iNextLine) { // (11/13)(TODO)この処理だと全部取ってきて重いので何とかする。 // 解決案 最大サイズ取得したいだけなので最初にInt型にサイズを保存しておく。 CardData[] all = CardDataBase.GetDeckSortedCardData(); // カード情報を全て取得する。1/12 デッキ選択用のソートした配列を取得 int iMaxSize = all.Length; // カードの最大数 // セレクトタイプによってステート変更 switch ((CHANGE_LINE_TYPE)iNextLine) { case CHANGE_LINE_TYPE.BACK: SelectData.iDeckCollectLineNo -= 1; Debug.Log("SceneCollectState: LINE移動↑(マイナス)"); //+-------------------------------------------- // ラインが0より低ければ0にして何もせずReturun if (SelectData.iDeckCollectLineNo <= -1) { Debug.Log("ChangeLine:0よりマイナス行こうとしたため0に戻しReturun "); SelectData.iDeckCollectLineNo = 0; return; } ; // アニメーション開始 CollectCardGroup.GetComponent <ScreenOutAppeared>().SetPos(new Vector3(0, 600, 0)); //CollectCardGroup.GetComponent<ScreenOutAppeared>().SetNextPos(new Vector3(0, 0, 0)); CollectCardGroup.GetComponent <ScreenOutAppeared>().Action(); break; case CHANGE_LINE_TYPE.NEXT: SelectData.iDeckCollectLineNo += 1; Debug.Log("SceneCollectState: LINE移動↓(プラス)"); //+-------------------------------------------- // ラインが0より低ければ0にして何もせずReturun if ((SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX) >= iMaxSize) { Debug.Log("ChangeLine:カード最大数を超えた空間に移動しようとしていたためReturn"); SelectData.iDeckCollectLineNo -= 1; return; } ; // アニメーション開始 CollectCardGroup.GetComponent <ScreenOutAppeared>().SetPos(new Vector3(0, -600, 0)); //CollectCardGroup.GetComponent<ScreenOutAppeared>().SetNextPos(new Vector3(0, 0, 0)); CollectCardGroup.GetComponent <ScreenOutAppeared>().Action(); break; case CHANGE_LINE_TYPE.END: Debug.LogWarning("SceneCollectState: それ以上のタイプはない。"); break; default: break; } int iNextNo = SelectData.iDeckCollectLineNo * SelectData.DECK_COLLECTCARD_MAX; for (int i = 0; i < SelectData.DECK_COLLECTCARD_MAX; i++) { m_aCollectCard[i].SetActive(true);//絵が表示されていない可能性があるため毎回True // 最大カード数を超えたら if ((iNextNo + i) >= iMaxSize) { m_aCollectCard[i].SetActive(false); //絵を表示しない continue; } // 01/12変更 ソートしたやつを左の表示をソートしたやつに変更 m_aCollectCard[i].GetComponent <uGUICard>().SetCardData(CardDataBase.GetSortedCardData(iNextNo + i)); // (11/13)最後にいつものうんこソート // 先にデッキに入っていないカード状態に m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_Off(); for (int i2 = 0; i2 < PlayerDeckData.deckMax; i2++) { // ★コレクションにあるカードがすでに被ってたら暗くするソート if (m_aCollectCard[i].GetComponent <uGUICard>().cardData.id == m_aMyDeckCard[i2].GetComponent <uGUICard>().cardData.id) { // デッキに入っている状態 m_aCollectCard[i].GetComponent <uGUICard>().NotGrasp_On(); break; } }// ソート } EventMANTAN(); AbilityMANTAN(); }
static void Main(string[] args) { CardDataBase DataBase = new CardDataBase(); GameDataBase GameBase = new GameDataBase(); GameState State; Best BestPlays = new Best(); Rate(DataBase); // GameLoop while (true) { State = new GameState(new PlayerStats(Console.ReadLine().Split(' ')), new PlayerStats(Console.ReadLine().Split(' '))); State.opponent.setHand(int.Parse(Console.ReadLine())); Globals.startTime = new Stopwatch(); Globals.startTime.Start(); int CardCount = int.Parse(Console.ReadLine()); // Draft if (State.player.Mana == 0) { GameBase.DraftPicks.Add(new Pick(GameBase, new Card(Console.ReadLine().Split(' ')), new Card(Console.ReadLine().Split(' ')), new Card(Console.ReadLine().Split(' ')))); } // Battle else { for (int i = 0; i < CardCount; i++) { Card card = new Card(Console.ReadLine().Split(' ')); switch (card.Location) { case -1: State.EnemyBoard.Add(new Unit(card, true)); break; case 0: State.MyHand.Add(card); break; case 1: State.MyBoard.Add(new Unit(card, true)); break; default: Console.Error.WriteLine("Data loading error ##########1"); break; } } BestPlays.Clear(); State.EvalState(); SearchAll(State, BestPlays); BestPlays.GetBestState(); } } }
// Use this for initialization void Start() { gameplay = this; _MainCamera = (Camera)gameObject.GetComponent("Camera"); _SelectionListWindow = new SelectionListWindow(Screen.width / 2, Screen.height / 2 + 100); _AbilityManagerList = new SelectionListGenericWindow(Screen.width / 2, Screen.height / 2 + 100); _SelectionCardNameWindow = new SelectionCardNameWindow(Screen.width / 2 - 50, Screen.height / 2); _SelectionCardNameWindow.CreateCardList(); _SelectionCardNameWindow.SetGame(this); _DecisionWindow = new DecisionWindow(Screen.width / 2, Screen.height / 2 + 100); _DecisionWindow.SetGame(this); _NotificationWindow = new NotificacionWindow(Screen.width / 2, Screen.height / 2 + 100); _NotificationWindow.SetGame(this); FromHandToBindList = new List<Card>(); AttackedList = new List<Card>(); UnitsCalled = new List<Card>(); EnemySoulBlastQueue = new List<Card>(); _PopupNumber = new PopupNumber(); _MouseHelper = new MouseHelper(this); GameChat = new Chat(); opponent = PlayerVariables.opponent; playerHand = new PlayerHand(); enemyHand = new EnemyHand(); field = new Field(this); enemyField = new EnemyField(this); guardZone = new GuardZone(); guardZone.SetField(field); guardZone.SetEnemyField(enemyField); guardZone.SetGame(this); fieldInfo = new FieldInformation(); EnemyFieldInfo = new EnemyFieldInformation(); Data = new CardDataBase(); List<CardInformation> tmpList = Data.GetAllCards(); for(int i = 0; i < tmpList.Count; i++) { _SelectionCardNameWindow.AddNewNameToTheList(tmpList[i]); } //camera = (CameraPosition)GameObject.FindGameObjectWithTag("MainCamera").GetComponent("CameraPosition"); //camera.SetLocation(CameraLocation.Hand); LoadPlayerDeck(); LoadEnemyDeck(); gamePhase = GamePhase.CHOOSE_VANGUARD; bDrawing = true; bIsCardSelectedFromHand = false; bPlayerTurn = false; bDriveAnimation = false; bChooseTriggerEffects = false; DriveCard = null; //Texture showed above a card when this is selected for an action (An attack, for instance) CardSelector = GameObject.FindGameObjectWithTag("CardSelector"); _CardMenuHelper = (CardHelpMenu)GameObject.FindGameObjectWithTag("CardMenuHelper").GetComponent("CardHelpMenu"); _GameHelper = (GameHelper)GameObject.FindGameObjectWithTag("GameHelper").GetComponent("GameHelper"); bPlayerTurn = PlayerVariables.bFirstTurn; //ActivePopUpQuestion(playerDeck.DrawCard()); _CardMenu = new CardMenu(this); _AbilityManager = new AbilityManager(this); _AbilityManagerExt = new AbilityManagerExt(); _GameHelper.SetChat(GameChat); _GameHelper.SetGame(this); EnemyTurnStackedCards = new List<Card>(); dummyUnitObject = new UnitObject(); dummyUnitObject.SetGame(this); stateDynamicText = new DynamicText(); }