//Kártya húzás: Modellből adatok lekérése és továbbítása a megfelelő játékos oldalnak. private void DrawTheCard(int key, DrawTarget target, DrawType drawType, SkillState newState) { Card cardData = null; if (target == DrawTarget.Hand && !controller.GetBlindMatchState()) { cardData = modules.GetDataModule().GetPlayerWithKey(key).DrawCardFromDeck(); } else if (controller.GetBlindMatchState() || target == DrawTarget.Field) { cardData = modules.GetDataModule().GetPlayerWithKey(key).BlindDraw(); } //Ha a felhúzás sikeres if (cardData != null) { modules.GetClientModule().DrawNewCard(cardData, key, modules.GetDataModule().GetPlayerWithKey(key).GetPlayerStatus(), drawType, target, newState); //Ha a játékosról van szó továbbítjuk megjelenítésre a deck új méretét if (modules.GetDataModule().GetPlayerWithKey(key).GetPlayerStatus()) { int remainingDeckSize = modules.GetDataModule().GetPlayerWithKey(key).GetDeckSize(); modules.GetClientModule().RefreshDeckSize(key, remainingDeckSize); } } }
//Képesség passzolása public void Pass() { StartCoroutine(modules.GetClientModule().DisplayNotification(modules.GetDataModule().GetPlayerWithKey(currentKey).GetUsername() + " passzolta a képességet!")); StartCoroutine(WaitForText()); SkillFinished(); //modules.GetDataModule().GetPlayerWithKey(currentKey).SetStatus(PlayerTurnStatus.Finished); }
//Dönt az új statról public void DecideNewStat(int key) { GetCurrentContext(key); //AI agy segítségét hívjuk a döntésben CardStatType newStat = Bot_Behaviour.ChangeFightType(cardsOnField, opponentCards, currentStat); modules.GetGameModule().SetActiveStat(newStat); //Jelenítsük meg a változást modules.GetClientModule().RefreshStatDisplay(); }
//Az input alapján módosítjuk az aktív értéktípust az újra public void ReportStatChange(CardStatType newStat) { //Választott érték beállítása modules.GetGameModule().SetActiveStat(newStat); //Jelenítsük meg a változást modules.GetClientModule().RefreshStatDisplay(); //Ha stat választás fázisban vagyunk: Következő fázis jön if (modules.GetGameModule().GetGameState() == MainGameStates.SetStat) { //Kitörés a wait fázisból modules.GetGameModule().TurnFinished(); } //Ellenkező esetben skill okozta a változtatást, jelezzük hogy a skillnek vége else { modules.GetGameModule().ActionFinished(); } }
//Használhatod egy másik játékos vesztes krokjának képességét private void SoulStealing() { //Vannak-e ellenséges vesztes kártyák, amik közül választhatunk if (modules.GetGameModule().IsThereOtherLostCards()) { modules.GetGameModule().SetSelectionAction(SkillEffectAction.SkillUse); modules.GetGameModule().SetSwitchType(CardListTarget.Hand); //Ha bot, akkor kell egy kis rásegítés neki if (!modules.GetGameModule().IsTheActivePlayerHuman()) { MakePlayerChooseCard(); } //Ha játékos, akkor jelezzünk neki, hogy válasszon játékost else { modules.GetGameModule().StartCoroutine(modules.GetClientModule().DisplayNotification("Válassz egy játékos vesztesei közül!")); } } //Ha nincs még vesztes kártya, akkor passzolunk else { if (modules.GetGameModule().IsTheActivePlayerHuman()) { modules.GetGameModule().StartCoroutine(modules.GetClientModule().DisplayNotification("Nincsenek vesztes lapok!")); } modules.GetGameModule().Pass(); } }