//Képesség tartalékolása public IEnumerator Store(int cardPosition) { //Először megnézzük, hogy tud-e áldozni if (modules.GetDataModule().GetPlayerWithKey(currentKey).GetWinAmount() > 0) { storeCount++; currentAction = SkillEffectAction.Store; //Ha ember döntött úgy, hogy store-olja a képességet if (modules.GetDataModule().GetPlayerWithKey(currentKey).GetPlayerStatus()) { string msg = "Válaszd ki, hogy melyik győztest áldozod fel!"; modules.GetClientModule().CardChoice(modules.GetDataModule().GetCardsFromPlayer(currentKey, CardListTarget.Winners), currentAction, currentKey, msg); //Várunk a visszajelzésére yield return(WaitForEndOfAction()); } currentAction = SkillEffectAction.None; } //Ha nem, akkor figyelmeztetjük és reseteljük a kártyát else { StartCoroutine(modules.GetClientModule().DisplayNotification(modules.GetDataModule().GetPlayerWithKey(currentKey).GetUsername() + ", ehhez nincs elég győztes lapod!")); yield return(WaitForEndOfText()); modules.GetClientModule().ResetCardSkill(currentKey, cardPosition); } }
public SkillProperty( SkillActivationTime time = SkillActivationTime.Normal, SkillTriggerRequirement req = SkillTriggerRequirement.None, SkillEffectTarget target = SkillEffectTarget.Self, SkillEffectAction action = SkillEffectAction.None) { this.activationTime = time; this.skillRequirement = req; this.skillTarget = target; this.effectAction = action; }
private void Awake() { //Modulok beállítása this.modules = Module_Controller.CreateModuleController(this, factory, client); //Interakciók beállítása this.interactions = new Interactions(this, modules); //Játékfázisok beállítása this.orderChangeState = new OrderChangeState(modules, this, interactions); this.preparationState = new PreparationState(modules, this, interactions); this.starterDrawState = new StarterDrawState(modules, this, interactions); this.settingRoleState = new SettingRoleState(modules, this, interactions); this.selectFightTypeState = new SelectFightTypeState(modules, this, interactions); this.summonState = new SummonState(modules, this, interactions); this.revealCardsState = new RevealCardsState(modules, this, interactions); this.quickSkillState = new QuickSkillState(modules, this, interactions); this.mainSkillState = new MainSkillState(modules, this, interactions); this.compareState = new CompareState(modules, this, interactions); this.lateSkillState = new LateSkillState(modules, this, interactions); this.cardPutAwayState = new CardPutAwayState(modules, this, interactions); this.blindMatchState = new BlindMatchState(modules, this, interactions); this.resultState = new ResultState(modules, this, interactions); //Játékfázisok és státuszok alapértékezése this.currentPhase = MainGameStates.SetupGame; this.currentStat = CardStatType.NotDecided; this.currentAction = SkillEffectAction.None; this.currentSelectionType = CardListTarget.None; this.currentKey = -1; this.currentActiveCard = -1; this.lastWinnerKey = -1; this.phaseChange = true; this.firstRound = true; this.displayedMessageStatus = false; this.blindMatch = false; this.actionFinished = true; this.turnFinished = true; this.skillFinished = true; this.changedOrder = false; this.lateSkillKeys = new List <int>(); this.instantWin = false; this.negatedSkills = false; rng = new System.Random(); }
public IEnumerator CardAmountCheck() { //Ha több mint 7 lap van a kezünkben, le kell dobni egy szabadon választottat. if (modules.GetDataModule().GetCardsFromPlayer(currentKey, CardListTarget.Hand).Count > 7) { currentAction = SkillEffectAction.TossCard; currentSelectionType = CardListTarget.Hand; modules.GetSkillModule().MakePlayerChooseCard(); yield return(new WaitForSeconds((GameSettings_Controller.drawTempo) / 2)); ActionFinished(); } else { yield return(new WaitForSeconds((GameSettings_Controller.drawTempo) / 2)); ActionFinished(); } }
public void SetupList(Client client_in, List <Card> cardList, SkillEffectAction action, string msg) { this.client = client_in; this.instructionText.text = msg; foreach (Card card in cardList) { Button temp = Instantiate(cardPrefab, displayField.transform.position, Quaternion.identity, displayField.transform); temp.GetComponent <Image>().sprite = card.GetArt(); //Listán belüli indexet ad vissza cseréhez, áldozáshoz. if (action == SkillEffectAction.Store || action == SkillEffectAction.Switch || action == SkillEffectAction.Revive || action == SkillEffectAction.TossCard || action == SkillEffectAction.SkillUse || action == SkillEffectAction.SwitchOpponentCard || action == SkillEffectAction.SacrificeFromHand || action == SkillEffectAction.SacrificeDoppelganger) { temp.onClick.AddListener(delegate { client.ReportCardSelection(cardList.IndexOf(card)); }); } } //Visszalépés akciók if (action == SkillEffectAction.Store || action == SkillEffectAction.Switch || action == SkillEffectAction.SkillUse || action == SkillEffectAction.Revive) { backButton.onClick.AddListener(delegate { client.ReportSelectionCancel(); }); } else if (action == SkillEffectAction.None) { backButton.onClick.AddListener(delegate { client.CloseCardList(); }); } }
public void DisplayListOfCards(List <Card> cards, SkillEffectAction action, int key, string msg) { keyOfTarget = key; //Ha sorrend változtatásról van szó if (action == SkillEffectAction.Reorganize) { cardList = Instantiate(cardOrganizePrefab, ingamePanelCanvas.transform.position, Quaternion.identity, ingamePanelCanvas.transform); cardList.GetComponent <CardOrganizeDisplay>().SetupScreen(this, msg); foreach (Card card in cards) { cardList.GetComponent <CardOrganizeDisplay>().AddCard(card); } } //Ha egy lap kiválasztásáról van szó else { cardList = Instantiate(cardListPrefab, ingamePanelCanvas.transform.position, Quaternion.identity, ingamePanelCanvas.transform); cardList.GetComponent <CardListDisplay>().SetupList(this, cards, action, msg); } isCardListActive = true; }
//Bizonyos kártya listát jelenít meg az aktív játékos számára, amiből választhat ezután public IEnumerator DisplayCardList(int currentKey, CardListFilter filter = CardListFilter.None, int limit = 0) { List <Card> cardList = new List <Card>(); switch (modules.GetGameModule().GetCurrentListType()) { case CardListTarget.Hand: cardList = modules.GetDataModule().GetCardsFromPlayer(currentKey, CardListTarget.Hand, filter, limit); break; case CardListTarget.Winners: cardList = modules.GetDataModule().GetCardsFromPlayer(currentKey, CardListTarget.Winners, filter, limit); break; case CardListTarget.Losers: cardList = modules.GetDataModule().GetCardsFromPlayer(currentKey, CardListTarget.Losers, filter, limit); break; case CardListTarget.Deck: cardList = modules.GetDataModule().GetCardsFromPlayer(currentKey, CardListTarget.Deck, filter, limit); break; case CardListTarget.Field: cardList = modules.GetDataModule().GetCardsFromPlayer(currentKey, CardListTarget.Field, filter, limit); break; default: break; } SkillEffectAction currentAction = modules.GetGameModule().GetCurrentAction(); string msg = ""; switch (currentAction) { case SkillEffectAction.Switch: msg = "Válaszd ki, hogy melyik lappal cserélsz!"; break; case SkillEffectAction.Revive: msg = "Válaszd ki, hogy melyik lapot éleszted fel!"; break; case SkillEffectAction.SwitchOpponentCard: msg = "Válaszd ki, hogy melyik ellenséges lapot cseréled ki!"; break; case SkillEffectAction.SacrificeFromHand: msg = "Válaszd ki, hogy melyik lapot áldozod fel az Erőért!"; break; case SkillEffectAction.Reorganize: msg = "Változtasd meg a sorrendjét a kártyáidnak!"; break; case SkillEffectAction.TossCard: msg = "Válaszd ki, hogy melyik lapot dobod el!"; break; default: break; } //Ha van miből választani, akkor megjelenítjük a listát if (cardList.Count > 0) { CardChoice(cardList, currentAction, currentKey, msg); //Várunk a visszajelzésére yield return(modules.GetGameModule().WaitForEndOfAction()); } else { if (currentAction == SkillEffectAction.SacrificeDoppelganger) { modules.GetGameModule().StartCoroutine(DisplayNotification("Nincs megfelelő lap a kezedben!")); } modules.GetGameModule().SetSelectionAction(SkillEffectAction.None); modules.GetGameModule().SetSwitchType(CardListTarget.None); modules.GetGameModule().SkillFinished(); } }
//Megjeleníttet az UI felülettel egy listányi kártyát, amiből választani kell public void CardChoice(List <Card> cardData, SkillEffectAction action, int key, string msg) { client.DisplayListOfCards(cardData, action, key, msg); }
public void SetSelectionAction(SkillEffectAction action) { currentAction = action; }
public void SetCurrentAction(SkillEffectAction newAction) { this.currentAction = newAction; }