private void button1_Click(object sender, EventArgs e) { var dc = new DeckController(); var deck = new Deck(); dc.Subscribe(deck); var myDeck = new MyNewDeck(); dc.Subscribe(myDeck); dc.Shuffle(); deck.Shuffle(); ListCards(deck.Draw(4)); ListCards(deck.DrawSorted(10)); ListCards(deck.Draw(10)); //deck.Shuffle(); ListCards(deck.Draw(10)); ListCards(deck.DrawSorted(10)); ListCards(deck.DrawSorted(10)); ListCards(deck.DrawSorted(10)); }
// Use this for initialization void Start() { //GameDeck = GameObjectUtils.AddAndPosition (DeckPrefab, this.gameObject, Vector3.zero).GetComponent<DeckController>(); GameDeck = transform.Find ("Deck").gameObject.GetComponent<DeckController> (); CombatZone = transform.Find("CombatZone").gameObject.GetComponent<CombatZoneController>(); Players = new List<HandController>(); StartCoroutine (Deal ()); }
public static void LoadHand(Player player) { // Draw until hand is full var freeSlotIndex = player.Hand.GetFirstFreeSlotIndex(); while (freeSlotIndex >= 0 && Deck.HasPieces()) { char? newPiece = DeckController.DrawPiece(); player.Hand.Pieces[freeSlotIndex] = newPiece; freeSlotIndex = player.Hand.GetFirstFreeSlotIndex(); } SidebarController.RenderPiecesInDeckLabel(); // Set player's hand in hand slots for (int i = 0; i < player.Hand.Pieces.Length; i++) { HandSlots[i].SetPiece(player.Hand.Pieces[i]); } }
/// <summary> /// 处理各种Witness /// </summary> /// <param name="witness"></param> /// <param name="deck"></param> /// <param name="callback"></param> public virtual void HandleWitness(EventWitness witness, DeckController deck, GenericAction callback = null) { var error = witness.getVar <ErrorCode>("code", false); if (error != ErrorCode.none) { if (!witnessFailHandler(witness, error, deck, callback)) { callback?.Invoke(this, null); } } else { if (!witnessSuccessHandler(witness, deck, callback)) { callback?.Invoke(this, null); } } }
protected override bool witnessSuccessHandler(EventWitness witness, DeckController deck, GenericAction callback) { int player = witness.getVar <int>("playerIndex"); int[] originalRID = witness.getVar <int[]>("originCardsRID"); int[] cardsRID = witness.getVar <int[]>("replacedCardsRID"); int[] cardsDID = witness.getVar <int[]>("replacedCardsDID", false); DebugUtils.NullCheck(cardsRID, "replacedCardsRID"); DebugUtils.NullCheck(originalRID, "originCardsRID"); if (cardsDID == null) { cardsDID = new int[cardsRID.Length]; } deck.GetUserBoard(player).ThrowCardsWithReplace(CardID.ToCardIDs(originalRID), CardID.ToCardIDs(cardsDID, cardsRID), callback); return(true); }
public static void NewGame(Panel contentContainer = null) { Game.Current = new Game() { Id = DateTime.Now.ToString("yyyyMMddHHmmss") }; foreach (var player in UserSettings.Players) { Game.Current.Players.Add(new Player.Player(player.Name, player.Avatar, player.AI)); } Game.Current.CurrentPlayerIndex = 0; SidebarController.RenderTurnPlayerLabel(); DeckController.LoadDeck(); HandController.ReturnAllToHand(changeVisualPosition: true); HandController.LoadHand(Game.Current.CurrentPlayer); HandController.SaveHand(Game.Current.CurrentPlayer); BoardController.LoadBoard(contentContainer ?? Program.MainView.Controls.Find("content", true).First()); }
// Use this for initialization private void Start() { mDeck = GameObject.Find("Deck").GetComponent <DeckController>(); mHand = GameObject.Find("Action Hand").GetComponent <HandController>(); mDiscardPile = GameObject.Find("Discard Pile").GetComponent <DiscardPileController>(); mPlayer = GameObject.Find("Player").GetComponent <PlayerController>(); mCamera = GameObject.Find("Main Camera"); mPlayZone = GameObject.Find("Play Zone"); Debug.Assert(mDeck != null); Debug.Assert(mPlayZone != null); Debug.Assert(mHand != null); Debug.Assert(mDiscardPile != null); Debug.Assert(mPlayer != null); Debug.Assert(mCamera != null); Debug.Assert(PREFAB_CARD != null, "You must assign the Card Prefab in the inspector"); mStartTime = Time.time; mPlayTime = 0; }
//Creates currentDeck and makes it a copy of the default deck private void Awake() { if (DeckController.deckController == null) { DeckController.deckController = this; } else { Destroy(this.gameObject); } DontDestroyOnLoad(this.gameObject); drawPile = new List <Card>(); foreach (ListWrapper cards in deck) { drawPile.AddRange(cards.deck); } discardPile = new List <Card>(); ShuffleDrawPile(); }
protected override bool witnessSuccessHandler(EventWitness witness, DeckController deck, GenericAction callback = null) { int playerIndex = witness.getVar <int>("playerIndex"); int cardRID = witness.getVar <int>("cardRID"); int cardDID = witness.getVar <int>("cardDID"); // 随从位置 int position = witness.getVar <int>("position"); var arg = new RetinueSummonEventArgs() { CardDID = cardDID, CardRID = cardRID, PlayerID = playerIndex, Position = position }; deck.RecvEvent(arg, callback); return(true); }
protected override bool witnessSuccessHandler(EventWitness witness, DeckController deck, GenericAction callback = null) { int playerIndex = witness.getVar <int>("playerIndex"); int cardRID = witness.getVar <int>("cardRID"); int cardDID = witness.getVar <int>("cardDID"); int targetPosition = witness.getVar <int>("targetPosition"); int[] targetCardRID = witness.getVar <int[]>("targetCardsRID"); UseCardEventArgs args; if (targetPosition == -1) { if (targetCardRID.Length == 0) { args = new UseCardEventArgs(); } else { args = new UseCardWithTargetArgs(targetCardRID); } } else { if (targetCardRID.Length == 0) { args = new UseCardWithPositionArgs(targetPosition); } else { args = new UseCardWithTargetPositionArgs(targetPosition, targetCardRID); } } args.CardRID = cardRID; args.CardDID = cardDID; args.PlayerID = playerIndex; deck.RecvEvent(args, callback); return(true); }
private GameObject getTrackedObject(string name) { GameObject obj = null; if (trackedObjects.ContainsKey(name)) { obj = trackedObjects[name]; } else { obj = GameObject.Find(name); if ((obj == null) && name.StartsWith("Card")) { obj = DeckController.instantiateCard(byte.Parse(name.Substring(4))); } if (obj) { trackedObjects[name] = obj; } } return(obj); }
public void updateCardHand(byte[] cardIndices) { cards.Clear(); foreach (var index in cardIndices) { GameObject card = null; if (cardCache.ContainsKey(index)) { card = cardCache[index]; } if (card == null) { card = GameObject.Find("Card" + index.ToString()); } if (card == null) { card = DeckController.instantiateCard(index); } if (card != null) { card.GetComponent <Rigidbody>().isKinematic = true; card.transform.position = transform.position; card.transform.rotation = transform.rotation; card.transform.parent = transform; cards.AddLast(card); cardCache[index] = card; } } updateCardRotations(0); }
// Use this for initialization public void Initialize(DeckController controller, HandType handType) { deckController = controller; handOwner = handType; deckView = deckController.gameObject.GetComponent<DeckView>(); gameCards = new List<GameCard> (); }
void BuildAbilityDeck(AbilityCardDeckConfig abilityDeckData) { // each player should draw starting cards DeckController.CreateStartingDeck(_abilityDeckData); }
private void OnDisable() { DeckController.UnsubscribeFromEvents(); }
/// <summary> /// /// </summary> /// <param name="witness"></param> /// <param name="deck"></param> /// <param name="callback"></param> /// <returns>如果返回false,则表明没有处理callback</returns> protected abstract bool witnessSuccessHandler(EventWitness witness, DeckController deck, GenericAction callback = null);
public void Initialize() { deckPile = gameObject.transform.Find("deckPile").gameObject; deckController = GetComponent <DeckController> (); StartCoroutine(Deal()); }
public void InitializeDeckController(DeckController controller) { deckController = controller; }
// Start is called before the first frame update void Awake() { deckController = GetComponent <DeckController>(); }
/// <summary> /// Witness错误处理器 /// </summary> /// <param name="witness"></param> /// <param name="error"></param> /// <param name="deck"></param> /// <param name="callback"></param> /// <returns></returns> protected virtual bool witnessFailHandler(EventWitness witness, ErrorCode error, DeckController deck, GenericAction callback = null) { UberDebug.LogWarningChannel("View", "Witness遇到了错误:\n {0} {1}", witness, error); return(false); }
// Start is called before the first frame update void Start() { deck = GetComponent <DeckController>(); }
protected override bool witnessSuccessHandler(EventWitness witness, DeckController deck, GenericAction callback = null) { return(false); }
public void setDeckController(DeckController dc) { deckController = dc; }
// Start is called before the first frame update void Start() { UserReportingClientConfiguration config = new UserReportingClientConfiguration(500, 300, 60, 10); UnityUserReporting.Configure(config); rightHandAnchor = GameObject.Find("RightHandAnchor"); leftHandAnchor = GameObject.Find("LeftHandAnchor"); rightHandGrabber = rightHandAnchor.GetComponent <SimpleGrabber>(); var mainDeck = GameObject.Find("MainDeck"); deckController = mainDeck.GetComponent <DeckController>(); deckCollider = mainDeck.GetComponent <Collider>(); cardHandController = leftHandAnchor.GetComponent <CardHandController>(); Core.AsyncInitialize(appID.ToString()).OnComplete((Message <Oculus.Platform.Models.PlatformInitialize> init_message) => { if (init_message.IsError) { Debug.LogError("Failed to initialize - " + init_message); } else { Entitlements.IsUserEntitledToApplication().OnComplete((entitlemnets_message) => { if (entitlemnets_message.IsError) { Debug.LogError("Entitlements failed - " + entitlemnets_message); } else { Users.GetLoggedInUser().OnComplete((Message <Oculus.Platform.Models.User> logged_in_user_message) => { if (logged_in_user_message.IsError) { Debug.LogError("Could not retrieve logged in user - " + logged_in_user_message); } else { localUser = logged_in_user_message.GetUser(); UnityUserReporting.CurrentClient.LogEvent(UserReportEventLevel.Info, "User logged in"); UnityUserReporting.CurrentClient.AddDeviceMetadata("userID", localUser.ID.ToString()); UnityUserReporting.CurrentClient.AddDeviceMetadata("username", localUser.OculusID); localAvatar = Instantiate(localAvatarPrefab); localAvatar.CanOwnMicrophone = false; localAvatar.UseSDKPackets = true; localAvatar.RecordPackets = true; localAvatar.PacketRecorded += OnLocalAvatarPacketRecorded; localAvatar.oculusUserID = localUser.ID.ToString(); var trackingSpace = GameObject.Find("TrackingSpace"); localAvatar.transform.position = trackingSpace.transform.position; localAvatar.transform.rotation = trackingSpace.transform.rotation; localAvatar.transform.parent = trackingSpace.transform; Rooms.SetUpdateNotificationCallback(OnRoomUpdateCallback); Net.SetConnectionStateChangedCallback(OnConnectionStateChangedCallback); Net.SetPeerConnectRequestCallback(OnConnectRequestCallback); Net.SetPingResultNotificationCallback(OnPingResultCallback); Voip.SetVoipConnectRequestCallback(OnVoipConnectRequestCallback); Voip.SetVoipStateChangeCallback(OnVoipStateChangedCallback); // NOTE - Setting this before the platform is initialized does NOT WORK!! Voip.SetMicrophoneFilterCallback(MicrophoneFilterCallback); Rooms.Join(roomID, true).OnComplete(OnRoomUpdateCallback); #if PLATFORM_ANDROID if (!Permission.HasUserAuthorizedPermission(Permission.Microphone)) { Permission.RequestUserPermission(Permission.Microphone); } UnityUserReporting.CurrentClient.AddDeviceMetadata("Microphone Enabled", Permission.HasUserAuthorizedPermission(Permission.Microphone).ToString()); #endif } }); } }); } }); }
public CorpDeckView(Corporation corp) { controller = new DeckController(); this.corp = corp; }
protected override async UniTask MasterPlayerFlow() { // マスター以外処理不要 if (!PhotonNetwork.IsMasterClient) { return; } // 全員分の PlayerPrefab を作り、部屋に共有。 { var player_1_Obj = PhotonManager.Instance.Instantiate(playerPrefabName, Vector3.zero, (Quaternion) default); var player_1_Rect = player_1_Obj.GetComponent <RectTransform>(); player1 = player_1_Obj.GetComponent <PlayerController>(); player1.ChangeName("Photon_Player1"); player1.SetParent(playerParent); player_1_Rect.anchoredPosition = anchoredPos_Player1; var player_2_Obj = PhotonManager.Instance.Instantiate(playerPrefabName, Vector3.zero, (Quaternion) default); var player_2_Rect = player_2_Obj.GetComponent <RectTransform>(); player2 = player_2_Obj.GetComponent <PlayerController>(); player2.ChangeName("Photon_Player2"); player2.SetParent(playerParent); player_2_Rect.anchoredPosition = anchoredPos_Player2; } // 山札生成 var deckObj = PhotonManager.Instance.Instantiate(deckPrefabName, deckAnchoredPos); deckController = deckObj.GetComponent <DeckController>(); deckController.SetParent(deckParent); deckController.ResetDeck(useJokerCount); // 山札なくなるまで対戦繰り返し Debug.Log("deckController.GetDeckCardCount:" + deckController.GetDeckCardCount); while (deckController.GetDeckCardCount > 0) { Debug.Log("残り山札枚数;" + deckController.GetDeckCardCount); // プレイヤーにカードを配る await( DistributeCard(player1), DistributeCard(player2) ); // 両方のプレイヤーが選択するの待ち player1.ReleaseChoiceCard(); player2.ReleaseChoiceCard(); var choiceCards = await( player1.PlayerChoiceCard(isRemovePlayerCard: true), player2.PlayerChoiceCard(isRemovePlayerCard: true) ); // 両方のカードを表向きにする var player1Card = choiceCards.Item1; var player2Card = choiceCards.Item2; player1Card.SetChoice(false); // 選択中表示終了 player2Card.SetChoice(false); await( player1Card.ReturnCard(isShowFront: true), player2Card.ReturnCard(isShowFront: true) ); // 1回の対戦; if (player1Card.cardNo == player2Card.cardNo) { Debug.Log("引き分け"); // 引き分け var hikwakeCardPos = HikiwakeCardParent.localPosition; player1Card.SetParent(ObjTag.HikiwakeCardParent); player2Card.SetParent(ObjTag.HikiwakeCardParent); await( player1Card.MoveCard(hikwakeCardPos, isLittleShit: true), player2Card.MoveCard(hikwakeCardPos, isLittleShit: true) ); } else { // どっちか勝ち_カード移動 var winner = (player1Card.cardNo > player2Card.cardNo) ? player1 : player2; Debug.Log("勝者:" + winner); await( winner.SetWinCard(player1Card), winner.SetWinCard(player2Card) ); } } }
private void Awake() { instance = this; }
//reference public void init(DeckController con) { controller = con; }
IEnumerator Challenge() { while (ChallengeState == ChallengeState.Prepare) { currentTime = startTime + prepareTime - Time.realtimeSinceStartup; TimeText.text = (prepareTime - currentTime).ToString("n2"); if (!started) { startTime = Time.realtimeSinceStartup; StateText.text = ChallengeState.ToString(); started = true; } else if (Time.realtimeSinceStartup >= startTime + prepareTime) { ChallengeState = ChallengeState.Challenge; started = false; } yield return(null); } while (ChallengeState == ChallengeState.Challenge) { currentTime = challengeTime - (startTime + challengeTime - Time.realtimeSinceStartup); TimeText.text = currentTime.ToString("n2"); if (!started) { startTime = Time.realtimeSinceStartup; StateText.text = ChallengeState.ToString(); started = true; } else if (Time.realtimeSinceStartup >= startTime + challengeTime) { ChallengeState = ChallengeState.Reward; started = false; } foreach (var unit in ReactionUnits) { var controller = unit.GetComponent <ReactionUnitController>(); if (currentTime >= controller.StartTime && currentTime < (controller.StartTime + controller.Duration)) { unit.gameObject.SetActive(true); } else { if (unit.gameObject.activeSelf) { unit.gameObject.SetActive(false); } } } yield return(null); } while (ChallengeState == ChallengeState.Reward) { if (!started) { var prizeCards = new List <GameObject>(); foreach (var reaction in Reactions) { if (reaction != null) { var card = DeckController.GetRandomCard(); prizeCards.Add(card); PlayerController.ReceiveCard(card); } } if (prizeCards.Count > 0) { GameController.OpenBoosterController.Initialize(prizeCards); GameController.OpenBoosterController.InnerGameObject.SetActive(true); CloseChallenge(); } else { GameController.StoryController.SetStoryText("Bad luck this time. Maybe, you will win in the next challenge!"); CloseChallenge(); } started = true; } yield return(new WaitForSeconds(2)); } yield return(null); }
public void Shuffle(DeckController deckController) { deckController.Shuffle(); UIController.Instance.InitializeCardsUI(deckController, deckController.GetDeck()); }
void Start() { deckController = deckHandler.GetComponent <DeckController>(); enemy.GetComponent <Enemy>().EnemyOnClicked += enemyClicked; }
private void Awake() { cards = GetComponent <DeckController>(); }