private void SteppedOnCommunityChestSpace(Player[] players, IList <Space> listOfSpaces, CommunityChestSpace CommunityChestSpaceObject, ChanceSpace ChanceSpaceObject, int currentPlayerCounter, Player player, Space currentSpace) { ChanceCard drawCommunityChestCard = CommunityChestSpaceObject.DrawCard(); if (drawCommunityChestCard is SpaceCard) { SpaceCard drawChanceCardAsSpaceCard = drawCommunityChestCard as SpaceCard; player.Position = drawChanceCardAsSpaceCard.PositionToGo; currentSpace = listOfSpaces[player.Position]; CheckSpaces(players, listOfSpaces, CommunityChestSpaceObject, ChanceSpaceObject, currentPlayerCounter, player, currentSpace); } if (drawCommunityChestCard is MoveCard) { MoveCard drawChanceCardAsMoveCard = drawCommunityChestCard as MoveCard; player.Position = drawChanceCardAsMoveCard.SquaresToMove + player.Position; currentSpace = listOfSpaces[player.Position]; CheckSpaces(players, listOfSpaces, CommunityChestSpaceObject, ChanceSpaceObject, currentPlayerCounter, player, currentSpace); } if (drawCommunityChestCard is GoodLuckCard) { GoodLuckCard drawChanceCardAsMoveCard = drawCommunityChestCard as GoodLuckCard; player.AddCash((int)drawChanceCardAsMoveCard.Cash); } }
public ChanceCard DrawCard(Queue <ChanceCard> listOfCards) { ChanceCard cardDrawn = listOfCards.Dequeue(); listOfCards.Enqueue(cardDrawn); return(cardDrawn); }
public ChancePopup(ChanceCard card, Player caller) { this.card = card; onClose += delegate { card.CallActions(caller); }; }
private GameObject CreateCard(Chance q, Vector3 position) { GameObject cardDummy = Instantiate(cardPrefab, position, Quaternion.identity, null); ChanceCard card = cardDummy.GetComponent <ChanceCard>(); if (card != null) { card.SetUpCard(q); } return(cardDummy); }
public static void CreateChanceCard() { ChanceCard asset = ScriptableObject.CreateInstance <ChanceCard>(); AssetDatabase.CreateAsset(asset, "Assets/Scriptable Objects/Cards/NewScripableObject.asset"); AssetDatabase.SaveAssets(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; }
public void AddAndRemoveActionCardTest() { IActionCard chance = new ChanceCard("Advance to Start", "Start", null); // add chance card mplayer.AddActionCard(chance); Assert.AreEqual(mplayer.ActionCards.Contains(chance), true); // remove chance card mplayer.RemoveActionCard(chance); Assert.AreEqual(mplayer.ActionCards.Contains(chance), false); }
/// <summary> /// Odtwarza listę przechowującą informację o otwarciu karty z informacjami o akcji /// </summary> private void RecreateActions(ChanceCard card) { if (card.actionStrings == null) { card.actionStrings = new List <ActionString>(); } if (actionIsOpen.Count == 0) { foreach (ActionString actionString in card.actionStrings) { actionIsOpen.Add(false); } } }
/// <summary> /// Otwiera menu do dodawania poszczególnych akcji /// </summary> /// <param name="card">Obiekt, na którym działa edytor</param> private void AddMenu(ChanceCard card) { EditorGUILayout.BeginHorizontal(); currentType = (ActionCard.ActionType)EditorGUILayout.EnumPopup("New Action Card", currentType); if (GUILayout.Button("Add")) { ActionString actionString = ActionString.GenerateDefault(currentType); actionIsOpen.Add(true); card.actionStrings.Add(actionString); EditorUtility.SetDirty(target); } EditorGUILayout.EndHorizontal(); }
private void ShowRandomCard(Player player) { if (cards == null || cards.Count == 0) { cards = new List <ChanceCard>(chanceCards); } while (cards.Count > 0) { int index = Random.Range(0, cards.Count - 1); ChanceCard card = cards[index]; cards.RemoveAt(index); if (card.IsActive()) { card.OpenCard(player); break; } } }
/// <summary> /// Wyświetla informacje o akcji w danej karcie na podstawie actionStringa /// </summary> /// <param name="card">Karta, której akcje chcemy wyświetlić</param> /// <param name="actionString">Informacje o karcie w postaci listy stringów</param> /// <param name="index">Numer akcji na liście wszystkich akcji</param> private void ShowActionCard(ChanceCard card, ActionString actionString, int index) { EditorGUILayout.BeginHorizontal(); actionIsOpen[index] = EditorGUILayout.Foldout(actionIsOpen[index], actionString.actionType.ToString()); if (GUILayout.Button("X", GUILayout.Width(20))) { card.actionStrings.RemoveAt(index); actionIsOpen.RemoveAt(index); } EditorGUILayout.EndHorizontal(); if (actionIsOpen.Count > index && actionIsOpen[index]) { switch (actionString.actionType) { case ActionCard.ActionType.Money: ShowMoneyAction(actionString); break; case ActionCard.ActionType.Wait: ShowWaitAction(actionString); break; case ActionCard.ActionType.Move: ShowMoveAction(actionString); break; case ActionCard.ActionType.WithUser: ShowWithUserAction(actionString); break; case ActionCard.ActionType.Imprison: //Wiezienie nie ma żadnych parametrów break; } } EditorUtility.SetDirty(target); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); ChanceCard card = (ChanceCard)target; RecreateActions(card); AddMenu(card); showActions = EditorGUILayout.BeginFoldoutHeaderGroup(showActions, "Actions (" + card.actionStrings.Count + ")"); if (showActions) { for (int i = 0; i < card.actionStrings.Count; i++) { ActionString actionString = card.actionStrings[i]; ShowActionCard(card, actionString, i); } } EditorGUILayout.EndFoldoutHeaderGroup(); }
public void PlayerTurn(Player player, Board boar, int firstRoll, int secondRoll) { Tile currentTile; this.MovePlayer(player, firstDice, secondDice, board); currentTile = board.GetTileAtPosition(player.Position); Console.WriteLine("Current tile {0}", currentTile); IChoosableAction actionTile = currentTile as IChoosableAction; if (actionTile != null) { this.ExecuteActionFromTile(actionTile, player); } if (currentTile is CommunityTile) { CommunityCard card = CardHelpers.DrawCard(this.communityCards); Console.WriteLine("Community Card"); Console.WriteLine("Card Desciption: {0}", card.Description); Console.ReadLine(); this.ExecuteActionFromCard(card, player); } else if (currentTile is ChanceTile) { ChanceCard card = CardHelpers.DrawCard(this.chanceCards); Console.WriteLine("Chance Card"); Console.WriteLine("Card Desciption: {0}", card.Description); Console.ReadLine(); this.ExecuteActionFromCard(card, player); } }
public async void OnDrawChanceCard(object sender, EventArgs e) { ChanceCard c = this.state.GetNextChanceCard(); await Navigation.PushAsync(new WatchPage(c)); }
// Pulls a chance card and does that chance cards action. private IEnumerator ChanceCardHandler(Player player) { int random = Random.Range(0, 7); ChanceCard card = chanceCards[random]; chanceCardUI.chanceString = card.chanceAction; chanceCardUI.gameObject.SetActive(true); yield return(new WaitForSeconds(4)); IsDoneInteraction = false; chanceCardUI.gameObject.SetActive(false); switch (card.chanceId) { case 1: GameObject goTileObj = GameObject.FindGameObjectWithTag("Go"); Tile goTile = goTileObj.GetComponent <Tile>(); player.currentTile = goTile; player.transform.position = goTile.transform.position; player.money += 200; break; case 2: // TODO: pass go mallarcy if (card.tag != "NoGo") { player.money += 200; } GameObject nunsIslandObj = GameObject.FindGameObjectWithTag("Nun"); Tile nunTile = nunsIslandObj.GetComponent <Tile>(); player.currentTile = nunTile; player.transform.position = nunTile.transform.position; break; case 3: player.money += 50; break; case 4: GoToJailChance(player); break; case 5: player.money -= 25 * player.houseCount; break; case 6: player.money -= 15; break; case 7: player.money += 150; break; } if (doubleRoll == true) { StartCoroutine(RollAgain()); } else { IsDoneInteraction = true; } }