Example #1
0
		public GameRules ReadNewGameRules()
		{
			GameRules gameRules = new GameRules();

			uint count = ReadUnsignedVarInt();
			//Log.Info($"Gamerule count: {count}");
			for (int i = 0; i < count; i++)
			{
				string name = ReadString();
				uint   type = ReadUnsignedVarInt();
				switch (type)
				{
					case 1:
					{
						GameRule<bool> rule = new GameRule<bool>(name, ReadBool());
						gameRules.Add(rule);
						break;
					}
					case 2:
					{
						GameRule<uint> rule = new GameRule<uint>(name, ReadUnsignedVarInt());
						gameRules.Add(rule);
						break;
					}
					case 3:
					{
						GameRule<float> rule = new GameRule<float>(name, ReadFloat());
						gameRules.Add(rule);
						break;
					}
				}
			}

			return gameRules;
		}
Example #2
0
 public void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Example #3
0
    public void Init(GameRule _activeGameRules)
    {
        ruleBarItemByRule = new Dictionary <GameRule, RuleBarItem>();

        foreach (RuleBarItemWithGameRule ruleBarItemWithGameRuleItem in ruleBarItemWithGameRuleArray)
        {
            ruleBarItemByRule[ruleBarItemWithGameRuleItem.Rule] = ruleBarItemWithGameRuleItem.RuleBarItemPrefab;
        }

        if (_activeGameRules != GameRule.None)
        {
            gameObject.SetActive(true);

            // foreach (Transform childItem in transform) {
            //     Destroy(childItem.gameObject);
            // }

            Type  gameRuleType   = typeof(GameRule);
            Array gameRulesArray = Enum.GetValues(gameRuleType);
            foreach (Enum gameRuleItem in gameRulesArray)
            {
                if (_activeGameRules.HasFlag(gameRuleItem))
                {
                    GameRule    currentRule = (GameRule)Enum.ToObject(gameRuleType, gameRuleItem);
                    RuleBarItem currentRuleBarItemPrefab;

                    if (ruleBarItemByRule.TryGetValue(currentRule, out currentRuleBarItemPrefab))
                    {
                        RuleBarItem ruleBarItemInstance = Instantiate(currentRuleBarItemPrefab, transform, false);
                        ruleBarItemInstance.RuleDescriptionPanel = ruleDescriptionPanel;
                    }
                }
            }
        }
    }
Example #4
0
        public void TestGameRule_PlayCardSuccessDrawCard()
        {
            var           player   = new Mock <IHanabiPlayer>();
            CardIdType    id       = new CardIdType(0);
            CardIndexType index    = new CardIndexType(0);
            Card          card     = new Card(id, index, CardColorType.Blue, CardValueType.Value1);
            HandCard      handCard = new HandCard(card);

            player.Setup(x => x.GetHandCard(index)).Returns(handCard);
            player.Setup(x => x.PlayCard(index));

            var           board    = new Mock <IGameBoard>();
            CardIdType    newId    = new CardIdType(1);
            CardIndexType newIndex = new CardIndexType(1);
            Card          newCard  = new Card(newId, newIndex, CardColorType.Blue, CardValueType.Value1);

            board.Setup(x => x.Draw()).Returns(newCard);
            board.Setup(x => x.Play(card)).Returns(true);

            GameRule rule = new GameRule();

            Debug.Assert(rule.PlayCard(index, player.Object, board.Object) == PlayCardResult.Success);

            player.VerifyAll();
            board.VerifyAll();
        }
Example #5
0
        public void TestGameRule_PlayCardFailedNoSlot()
        {
            var           player   = new Mock <IHanabiPlayer>();
            CardIdType    id       = new CardIdType(0);
            CardIndexType index    = new CardIndexType(0);
            Card          card     = new Card(id, index, CardColorType.Blue, CardValueType.Value1);
            HandCard      handCard = new HandCard(card);

            player.Setup(x => x.GetHandCard(index)).Returns(handCard);
            player.Setup(x => x.PlayCard(index));

            var board = new Mock <IGameBoard>();

            board.Setup(x => x.Draw()).Returns <Card>(null);
            board.Setup(x => x.Play(card)).Returns(false);
            board.Setup(x => x.Discard(card));
            board.Setup(x => x.Punish());

            GameRule rule = new GameRule();

            Debug.Assert(rule.PlayCard(index, player.Object, board.Object) == PlayCardResult.FailNoSlot);

            player.VerifyAll();
            board.VerifyAll();
        }
Example #6
0
        public void BeginGame()
        {
            this.Status = RoomStatus.Play;
            Board       = new GameBoard(Players);
            Rule        = new GameRule();
            foreach (var player in Players)
            {
                ResponseGameData initialData = new ResponseGameData();
                initialData.Token.Note    = Setting.InitialHint;
                initialData.DrawPileCount = Board.Size;

                foreach (var otherPlayer in Players)
                {
                    List <CardInfo> cards = new List <CardInfo>();
                    foreach (var card in otherPlayer.Cards)
                    {
                        CardInfo info = card.Info;
                        if (otherPlayer.Nickname == player.Nickname)
                        {
                            info.Color = ( int )CardColorType.Unknown;
                            info.Value = ( int )CardValueType.Unknown;
                        }
                        cards.Add(info);
                    }
                    initialData.Cards.Add(otherPlayer.Nickname.Value, cards);
                }

                SendCommandToPlayer(player, ActionType.NotifyBoard, initialData);
            }

            CurrentPlayer = 0;
            LastRound     = false;
            NotifyTurn();
        }
Example #7
0
 public ResolveActualWinners(GameRule gameRule, GameEntity game)
 {
     this.ExecuteTime = gameRule.ExcecuteTime;
     this.gameEntity  = game;
     this.GameRuleId  = gameRule.GameRuleID;
     this.ruleType    = RuleType.RESOLVE_ACTUAL_WINNERS;
 }
Example #8
0
        public void GameRoundTest(
            int userNumber,
            int gameRuleNumber,
            int maxAttemps,
            int expectedMoney)
        {
            var consoleHelperMock = new Mock <IConsoleHelper>();

            consoleHelperMock
            .Setup(x => x.ReadNumberFromConsole())
            .Returns(userNumber);

            var game = new Game(consoleHelperMock.Object);

            var gameRule = new GameRule
            {
                Number      = gameRuleNumber,
                MaxAttempts = maxAttemps
            };

            var user = new User();

            game.StartGame(gameRule, user);

            Assert.AreEqual(expectedMoney, user.Money);
        }
Example #9
0
 public GameRule(GameRule rule)
 {
     type          = rule.type;
     conditionType = rule.conditionType;
     value         = 0;
     completeType  = RuleCompleteType.None;
 }
Example #10
0
    private void UpdateUIOnTrigger(GameRule rule, GameRule def)
    {
        int goalCount = -1;
        int turnCount = -1;
        int timer     = -1;

        switch (rule.type)
        {
        case RuleType.TurnCount:
            turnCount = def.value - rule.value;
            break;

        case RuleType.GoalCount:
            goalCount = def.value - rule.value;
            break;

        case RuleType.TimeCount:
            timer = def.value - rule.value;
            break;
        }
        EventBus.Instance.Raise(new GameEvents.UpdateUI
        {
            goalCount = goalCount,
            turnCount = turnCount,
            timer     = timer
        });
    }
Example #11
0
    // Start is called before the first frame update
    void Start()
    {
        jump                = gameObject.GetComponent <AudioSource>();
        shutter             = gameObject.GetComponent <AudioSource>();
        bubble              = gameObject.GetComponent <AudioSource>();
        Bunri               = gameObject.GetComponent <AudioSource>();
        rigidPlayer         = GetComponent <Rigidbody2D>();
        sprite              = gameObject.GetComponent <SpriteRenderer>();
        jumpFlag            = false;
        awaCreate           = false;
        goalAwaDelete       = true;
        warpflag            = false; //ワープフラグ
        playerHeadCollider  = _playerHead.GetComponent <CircleCollider2D>();
        playerHead          = _playerHead.GetComponent <PlayerHeadMove>();
        playerHeadRigidbody = _playerHead.GetComponent <Rigidbody2D>();

        playerAnime = gameObject.GetComponent <Animator>();
        headAnime   = _playerHead.GetComponent <Animator>();

        gameRule = GameObject.Find("StageManager").GetComponent <GameRule>();

        headPosition = _playerHead.transform.localPosition;
        headvec      = _playerHead.transform.localScale;

        cameraCheck = false;
        isYcheck    = false;

        SetCurrentState(PlayerState.Stop);
    }
 public void Add(GameRule gameRule, Func <Room, GameRuleBase> gameRuleFactory)
 {
     if (!_gameRules.TryAdd(gameRule, gameRuleFactory))
     {
         throw new Exception($"GameRule {gameRule} already registered");
     }
 }
Example #13
0
        /// <summary> The plugin start callback. Do any initialization here. </summary>
        public void Start()
        {
            Log.DebugFormat("[Quest] Start");

            GameEventManager.StartingNewGame += GameEventManagerOnStartingNewGame;
            GameEventManager.QuestUpdate     += GameEventManagerOnQuestUpdate;
            GameEventManager.NewGame         += GameEventManagerOnNewGame;
            GameEventManager.GameOver        += GameEventManagerOnGameOver;

            if (!(BotManager.CurrentBot is DefaultBot))
            {
                Log.ErrorFormat(
                    "[Quest] This plugin is not compatible with this bot. Please disable the plugin before starting again or change the bot being used.");
                BotManager.Stop();
                return;
            }

            // This plugin is for construted mode only, as routines must implement quest logic for arena drafts, and most non-basic quests
            // require Play mode or Arena to be completed.
            if (DefaultBotSettings.Instance.GameMode != GameMode.Constructed)
            {
                Log.ErrorFormat(
                    "[Quest] This plugin only works when the \"GameMode\" in DefaultBot is set to \"Constructed\". Please disable the plugin or change the DefaultBot settings.");
                BotManager.Stop();
                return;
            }

            _lastDeck = DefaultBotSettings.Instance.ConstructedCustomDeck;
            _lastRule = DefaultBotSettings.Instance.ConstructedGameRule;

            DefaultBotSettings.Instance.ConstructedGameRule = GameRule.Auto;
        }
Example #14
0
 private void ChangeGameRule(bool isOn, GameRule rule)
 {
     if (isOn)
     {
         this.hallProxy.HallInfo.gameRule = rule;
     }
 }
Example #15
0
 public NotifyGameParticipantsRule(GameRule gameRule, GameEntity game)
 {
     this.ExecuteTime = gameRule.ExcecuteTime;
     this.gameEntity  = game;
     this.GameRuleId  = gameRule.GameRuleID;
     this.ruleType    = RuleType.NOTIFY_PARTICIPANTS;
 }
Example #16
0
        public Game(CardLevelData[] _cardDefinitionArrayByLevel, int _cardNumber, GameRule _activeGameRules)
        {
            Dictionary <PlayerNumber, List <Card> > customDeckByPlayer = CustomGameHolder.NextCardDeckByPlayer;

            if (customDeckByPlayer != null)
            {
                playerByNumber[PlayerNumber.One] = new Player(PlayerNumber.One, _cardDefinitionArrayByLevel, customDeckByPlayer[PlayerNumber.One]);
                playerByNumber[PlayerNumber.Two] = new Player(PlayerNumber.Two, _cardDefinitionArrayByLevel, customDeckByPlayer[PlayerNumber.Two]);
            }
            else
            {
                int[] randomCardLevelArray = new int[_cardNumber];
                for (int i = 0; i < randomCardLevelArray.Length; i++)
                {
                    randomCardLevelArray[i] = Random.Range(0, _cardDefinitionArrayByLevel.Length);
                }

                playerByNumber[PlayerNumber.One] = new Player(PlayerNumber.One, _cardDefinitionArrayByLevel, randomCardLevelArray);
                playerByNumber[PlayerNumber.Two] = new Player(PlayerNumber.Two, _cardDefinitionArrayByLevel, randomCardLevelArray);
            }

            board = new Board();

            activeRules = _activeGameRules;
        }
Example #17
0
    // Use this for initialization
    void Start()
    {
        // SE
        SEControllerObject = GameObject.Find("SEController");
        SE = SEControllerObject.GetComponent("SEController") as SEController;
        // アイテム管理者の取得
        Item           = GameObject.Find("ItemRoot");
        ItemController = Item.GetComponent("ItemController") as ItemController;
        // ゲーム管理者取得
        var GameRule = GameObject.Find("GameRule");

        rule = GameRule.GetComponent("GameRule") as GameRule;

        // エフェクトの初期化
        InvinsibleEffect = transform.Find("energyBlast").GetComponent <ParticleSystem> ();
        InvinsibleEffect.Stop();
        // プレイヤーの向きベクトルの初期化
        oldVector = 1;

        transform.localRotation = Quaternion.LookRotation(new Vector3(1f, 0f, 0f));
        // キャラクターコントローラーの取得
        Col = gameObject.GetComponent("CharacterController") as CharacterController;

        // 声の管理者取得
        PlayerSE = GetComponent <PlayerSEManager> ();

        SetState(State);
    }
Example #18
0
 void leftMenu_RuleChanged(GameRule obj)
 {
     removeFocusToChatComponent = true;
     client.Write(MessagePackSerializer.Serialize(new ChangeGameRuleNetworkData {
         GameRule = obj
     }));
 }
Example #19
0
    void InPipeChangeScene()
    {
        GameObject GameRuleObject = GameObject.Find("GameRule");
        GameRule   Rule           = GameRuleObject.GetComponent("GameRule") as GameRule;

        Rule.PipeInChangeScene(outPosition, NextScene);
    }
Example #20
0
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
            AddNewUnit("Orc/Orc_worker", 10);
            AddNewUnit("Orc/Orc_light_infantry", 30);
            AddNewUnit("Orc/Orc_light_cavalry", 50);
            AddNewUnit("Orc/Orc_spearman", 50);
            AddNewUnit("Orc/Orc_archer", 70);
            AddNewUnit("Orc/Orc_shaman", 100);
            AddNewUnit("Orc/Orc_heavy_infantry", 100);
            AddNewUnit("Orc/Orc_heavy_cavalry", 150);
            AddNewUnit("Orc/Orc_mounted_shaman", 200);

            AddNewUnit("Undead/UD_worker", 10);
            AddNewUnit("Undead/UD_light_infantry", 30);
            AddNewUnit("Undead/UD_light_cavalry", 50);
            AddNewUnit("Undead/UD_spearman", 50);
            AddNewUnit("Undead/UD_archer", 70);
            AddNewUnit("Undead/UD_mage", 100);
            AddNewUnit("Undead/UD_heavy_infantry", 100);
            AddNewUnit("Undead/UD_heavy_cavalry", 150);
            AddNewUnit("Undead/UD_mage_mounted", 200);
        }
        else
        {
            Destroy(this);
        }
    }
Example #21
0
 public PrepareGameRule(GameRule gameRule, GameEntity game)
 {
     this.ExecuteTime = gameRule.ExcecuteTime;
     this.gameEntity  = game;
     this.GameRuleId  = gameRule.GameRuleID;
     this.ruleType    = RuleType.PREPARE_GAME;
 }
Example #22
0
    //  private
    private static bool CheckHuipaiByHaveLaizi(List <Int64> arr, Int64 laizi, GameRule rule)
    {
        List <Int64> temp = new List <Int64>(arr);

        temp.Remove(laizi);
        int count;

        if (TableController.Instance.creatRoomInfo.playerNum == 4)
        {
            count = (int)mjCards.tiao_Num;
        }
        else
        {
            count = (int)mjCards.tong_Num;
        }
        for (int i = 1; i < count; i++)
        {
            if (i % 10 != 0 && i != laizi)
            {
                temp.Add(i);
                if (CheckIsYingHu(temp))
                {
                    return(true);
                }
                temp.Remove(i);
            }
        }
        return(false);
    }
Example #23
0
 public StartGameRule(GameRule gameRule, GameEntity game)
 {
     this.ExecuteTime = gameRule.ExcecuteTime;
     this.gameEntity  = game;
     this.GameRuleId  = gameRule.GameRuleID;
     this.ruleType    = RuleType.START_GAME;
 }
Example #24
0
    /// <summary>
    /// 检测打什么牌后可以听牌
    /// </summary>
    /// <param name="arr"></param>
    /// <param name="laiz"></param>
    /// <returns></returns>
    public static List <Int64> CheckPutOutCanTingpai(List <Int64> arr, Int64 laiz, GameRule gameRule)
    {
        List <Int64> canTingCardList = new List <Int64>();
        List <Int64> canNotCardList  = new List <Int64>();
        List <Int64> shengyu;
        List <Int64> tempList = new List <Int64>(arr);

        for (int i = tempList.Count - 1; i >= 0; i--)
        {
            shengyu           = new List <Int64>(tempList);
            supposePutoutCard = tempList[i];
            shengyu.RemoveAt(i);

            if (!canNotCardList.Contains(supposePutoutCard))
            {
                if (canTingCardList.Contains(supposePutoutCard))
                {
                    canTingCardList.Add(tempList[i]);
                }
                else
                {
                    if (CheckIsTing(shengyu, laiz, gameRule).Count > 0)
                    {
                        canTingCardList.Add(tempList[i]);
                    }
                    else
                    {
                        canNotCardList.Add(tempList[i]);
                    }
                }
            }
        }
        supposePutoutCard = 0;
        return(canTingCardList);
    }
Example #25
0
    void Start()
    {
        if (debugMode)
        {
            stageInfo.mapNumber = 0001;
            stageInfo.mapName   = "산 남부 중턱";
            stageInfo.areaName  = "디스메어 산";
            stageInfo.gridColor = new Color(0f, 179f / 255f, 63f / 255f);
            stageInfo.gameRule  = GameRules.DefaultRule;
        }
        else
        {
            stageInfo = GlobalData.stageInfo;
        }

        units      = new List <Unit>();
        skills     = new List <Skill>();
        gameRule   = GameRule.GetGameRule(stageInfo.gameRule);
        fieldState = new FieldState[12, 4];
        for (int x = 0; x < 12; ++x)
        {
            for (int y = 0; y < 4; ++y)
            {
                fieldState[x, y] = new FieldState();
            }
        }

        UIManager.Instance.Initialize();
        TouchManager.Instance.Initialize();
        CameraManager.Instance.Initialize();
        gameRule.Initialize();
        grid.Initialize();
        background.Initialize();
    }
Example #26
0
    /// <summary>
    /// 检测是否听牌
    /// </summary>
    /// <returns></returns>
    public static List <Int64> CheckIsTing(List <Int64> list, Int64 laizi, GameRule gameRule, Int64 choseCard = 0)
    {
        int          count;
        List <Int64> canHuCardList = new List <Int64>();

        if (TableController.Instance.creatRoomInfo.playerNum == 4)
        {
            count = (int)mjCards.tiao_Num;
        }
        else
        {
            count = (int)mjCards.tong_Num;
        }
        for (int i = 1; i < count; i++)
        {
            if (i % 10 != 0)
            {
                if (choseCard != 0)
                {
                    supposePutoutCard = choseCard;
                }
                if (IsHupai(list, laizi, i, gameRule))
                {
                    canHuCardList.Add(i);
                }
            }
        }
        return(canHuCardList);
    }
Example #27
0
        /// <summary> The plugin start callback. Do any initialization here. </summary>
        public void Start()
        {
            Log.DebugFormat("[日常任务插件] 开始运行");

            GameEventManager.StartingNewGame += GameEventManagerOnStartingNewGame;
            GameEventManager.QuestUpdate     += GameEventManagerOnQuestUpdate;
            GameEventManager.NewGame         += GameEventManagerOnNewGame;
            GameEventManager.GameOver        += GameEventManagerOnGameOver;

            if (!(BotManager.CurrentBot is DefaultBot))
            {
                Log.ErrorFormat(
                    "[日常任务插件] 本插件和兄弟存在兼容问题,请停止插件后再开始挂机.");
                BotManager.Stop();
                return;
            }

            // This plugin is for construted mode only, as routines must implement quest logic for arena drafts, and most non-basic quests
            // require Play mode or Arena to be completed.
            if (DefaultBotSettings.Instance.GameMode != GameMode.玩家对战模式)
            {
                Log.ErrorFormat(
                    "[日常任务插件] 本插件只适用于玩家对战模式. 请停止本插件或改变其他设置.");
                BotManager.Stop();
                return;
            }

            _lastDeck = DefaultBotSettings.Instance.ConstructedCustomDeck;
            _lastRule = DefaultBotSettings.Instance.ConstructedGameRule;

            DefaultBotSettings.Instance.ConstructedGameRule = GameRule.随机模式;
        }
Example #28
0
        private static IEnumerable <Player> GetPlayers(GameRule rule, List <Attendee> shuffledAttendees)
        {
            var roles = rule.Role2Count.SelectMany(role2count =>
                                                   Enumerable.Repeat(role2count.Key, role2count.Value));

            return(shuffledAttendees.Zip(roles, (attendee, role) => new Player(attendee, role)));
        }
        public void WriteGameRules(GameRules rules)
        {
            if (rules == null)
            {
                this.WriteVarInt(0);
                return;
            }

            this.WriteVarInt(rules.Count);
            for (int i = 0; i < rules.Count; ++i)
            {
                this.WriteString(rules[i].Name.ToLower());
                if (rules[i] is GameRule <bool> )
                {
                    GameRule <bool> boolRule = (GameRule <bool>)rules[i];
                    this.WriteByte(1);
                    this.WriteBool(boolRule.Value);
                }
                else if (rules[i] is GameRule <int> )
                {
                    GameRule <int> intRule = (GameRule <int>)rules[i];
                    this.WriteByte(2);
                    this.WriteVarInt(intRule.Value);
                }
                else if (rules[i] is GameRule <float> )
                {
                    GameRule <float> floatValue = (GameRule <float>)rules[i];
                    this.WriteByte(3);
                    this.WriteLFloat(floatValue.Value);
                }
            }
        }
Example #30
0
        public void SerializationMapTest( )
        {
            Map map = new Map("Test.xml");

            Game.Current.GameRule = GameRule.GenerateEmpty( );
            Game.Current.Map      = map;
            Console.WriteLine(map.ToXElement( ));
        }
Example #31
0
    public void DeleteRule(GameRule ruleToDelete, bool shouldDeleteRequiredObjects = true)
    {
        //don't delete a rule if the rules were recently changed
        if (ruleChangeIsOnCooldown())
            return;

        //play sound
        soundSource.clip = removeRuleSound;
        soundSource.Play();

        float widthoffset = ((RectTransform)(ruleDisplayPrefab.transform)).rect.width * 0.5f;
        for (int i = 0; i < rulesList.Count;) {
            GameRule gameRule = rulesList[i];
            if (gameRule == ruleToDelete) {
                widthoffset = -widthoffset;
                rulesList.RemoveAt(i);
                rulesDict[ruleToDelete.action.GetType()].Remove(ruleToDelete);
            } else {
                gameRule.animationStartTime = Time.realtimeSinceStartup;
                gameRule.animationState = 4;
                gameRule.targetPosition = (gameRule.startPosition = gameRule.ruleDisplay.transform.localPosition);
                gameRule.targetPosition.x += widthoffset;
                i++;
            }

            //cancel any wait timers associated with this rule
            if (gameRule.action is GameRuleEffectAction) {
                GameRuleEffect innerEffect = ((GameRuleEffectAction)(gameRule.action)).innerEffect;
                if (innerEffect is GameRuleDurationEffect) {
                    GameRuleActionDuration duration = ((GameRuleDurationEffect)(innerEffect)).duration;
                    if (duration is GameRuleActionUntilConditionDuration) {
                        GameRuleEventHappenedCondition untilCondition =
                            ((GameRuleActionUntilConditionDuration)(duration)).untilCondition;
                        //loop through all the wait timers and cancel their actions if they have this rule
                        for (int j = waitTimers.Count - 1; j >= 0; j--) {
                            if (waitTimers[j].condition == untilCondition) {
                                waitTimers[j].cancelAction();
                                waitTimers.RemoveAt(j);
                            }
                        }
                    }
                }
            }
        }
        Destroy(ruleToDelete.ruleDisplay);
        if (shouldDeleteRequiredObjects)
            deleteRequiredObjects();
        lastRuleChange = Time.realtimeSinceStartup;

        //update music
        musicPlayer.setTrackCount(rulesList.Count);
    }
Example #32
0
 //converting components into an actual rule string
 public string getGameRuleString()
 {
     GameRule rule = new GameRule(subComponents[0].getCondition(), subComponents[1].getAction());
     string name = GameRuleSerializer.packRuleToString(rule);
     Debug.Log("If " + rule.condition.ToString() + " => Then " + rule.action.ToString() + " - " + name);
     return name;
 }
Example #33
0
 void Start()
 {
     GameRuleObject = GameObject.Find ("GameRule").GetComponent<GameRule>();
 }
Example #34
0
 public int CalculateScore(List<int> diceResult, GameRule gameRule)
 {
     return gameRule.Calculate(diceResult);
 }
Example #35
0
 // Use this for initialization
 void Start()
 {
     i = this;
     Players.AddRange(Transform.FindObjectsOfType<Controler>());
 }