示例#1
0
        public static RuleManager GenerateRules(int seed)
        {
            var ruleManager = RuleManager.Instance;
            var bombRules   = (BombRules)CurrentRulesProperty.GetValue(ruleManager, null);

            //If the official manual metadata has changed mid-game, grab the most current one.
            if (OriginalBombRules == null ||
                bombRules.ManualMetaData.LanguageCode != OriginalBombRules.ManualMetaData.LanguageCode ||
                bombRules.ManualMetaData.LockCode != OriginalBombRules.ManualMetaData.LockCode ||
                bombRules.ManualMetaData.ManualVersion != OriginalBombRules.ManualMetaData.ManualVersion ||
                bombRules.ManualMetaData.IsValid != OriginalBombRules.ManualMetaData.IsValid)
            {
                OriginalBombRules = bombRules;
            }

            else if (bombRules.ManualMetaData.ManualVersion.StartsWith("Rule Seed Modifier ") && bombRules.ManualMetaData.Seed == seed)
            {
                return(ruleManager);
            }

            if (seed == Seed)
            {
                DebugLog("Rule Manager already initialized with seed {0}. Skipping initialization.", seed);
                return(ruleManager);
            }
            Seed = seed;

            CurrentRulesProperty.SetValue(ruleManager, Initialize(seed == int.MinValue ? 0 : seed), null);
            return(ruleManager);
        }
示例#2
0
        public static void UnloadRuleManager()
        {
            if (OriginalBombRules == null)
            {
                return;
            }
            var ruleManager = RuleManager.Instance;

            CurrentRulesProperty.SetValue(ruleManager, OriginalBombRules, null);
            OriginalBombRules = null;
        }
示例#3
0
        public static RuleManager GenerateRules(int seed)
        {
            var ruleManager = RuleManager.Instance;

            if (seed == Seed && !_forceRegnerate)
            {
                DebugLog("Rule Manager already initialized with seed {0}. Skipping initialization.", seed);
                return(ruleManager);
            }
            _forceRegnerate = false;
            Seed            = seed;

            CurrentRulesProperty.SetValue(ruleManager, Initialize(seed == int.MinValue ? 0 : seed), null);
            SeedProperty.SetValue(ruleManager, RuleManager.DEFAULT_SEED, null);
            return(ruleManager);
        }