//ゲームの入力をする bool InputAct() { if (ms == null) { return(false); } if (ms.game_script == null) { return(false); } if (ms.game_script.areStateReroad == null) { return(false); } if (ms.game_script.areStateReroad.Count <= handle) { return(false); } if (ms.game_script.areStateReroad[handle]) { ms.game_script.areStateReroad[handle] = false; //状況を更新する yh.CardSet(ms.game_script.GetHand(handle)); oh.SetNum(ms.game_script.GetHand(opponent).Count); mf.CardSet(ms.game_script.RefrectField(handle)); of.CardSet(ms.game_script.RefrectField(opponent)); sf.CardSet(ms.game_script.RefrectStack()); mc.SetCard(ms.game_script.RefrectCharacter(handle)); oc.SetCard(ms.game_script.RefrectCharacter(opponent)); log.ReroadLog(ms.game_script.GetLog(handle)); ForbidSubmit(); switch ((GameScript.Request)ms.game_script.requests[handle][0]) { //リクエストがないとき case GameScript.Request.none: { yh.isAbleSubmit = false; for (int i = 0; i < yh.castables.Count; ++i) { yh.castables[i] = false; } isAbleToPlay = false; isAbleToActivate = false; isAbleToPass = false; } break; //メインフェイズの行動 case GameScript.Request.main: { Debug.Log("ClientSystem main"); //キャストを許可する yh.isAbleSubmit = true; yh.castables = ms.game_script.GetCastableCardAddress(handle); //プレイを許可する isAbleToPlay = true; //起動型能力の起動を許可する isAbleToActivate = true; //パスの許可 isAbleToPass = true; } break; //トランスフェイズの行動 case GameScript.Request.trance: { Debug.Log("ClientSystem trance"); //手札からの提出を許可 yh.isAbleSubmit = true; var a = new List <bool>(); var s = ms.game_script.GetHand(handle).Count; for (int i = 0; i < s; ++i) { a.Add(true); } yh.castables = a; if (mc.card.mana >= 1 && mc.card.manaCapacity >= 1) { //ブックマークの選択を許可 isChooseZone[(int)GameScript.RequestCard.your_bookmark] = true; sv.isAbleToSubmit = true; sv.CardSet(ms.game_script.RefrectYourBookmark(handle)); } else { //ブックマークの選択を禁止 isChooseZone[(int)GameScript.RequestCard.your_bookmark] = false; sv.isAbleToSubmit = false; } //トランスフェイズ用起動型能力の起動を許可 isAbleToActivateTranceDraw = true; //パスの許可 isAbleToPass = true; } break; //特定のカードを選んで欲しいとき case GameScript.Request.card: { var s = ms.game_script.requests[handle] .GetRange(1, ms.game_script.requests[handle].Count - 1); for (int i = 0; i < s.Count; ++i) { switch ((GameScript.RequestCard)s[i]) { case GameScript.RequestCard.your_bookmark: { isChooseZone[(int)GameScript.RequestCard.your_bookmark] = true; isSubViewBookmark = true; sv.isAbleToSubmit = true; sv.CardSet(ms.game_script.RefrectYourBookmark(handle)); } break; default: break; } } } break; } } //常に更新される switch ((GameScript.Request)ms.game_script.requests[handle][0]) { case GameScript.Request.none: { } break; case GameScript.Request.main: { ActMain(); } break; case GameScript.Request.trance: { ActTrance(); } break; case GameScript.Request.card: { ActCard(); } break; case GameScript.Request.yesno: { } break; } return(false); }