private void PostProcessForBattle(RegionSelectInfo info, RegionMeta regionMeta) {
     var monsterId = Randoms.Default.Range(ConstDB.Instance.GetAllMonsterIds());
     regionMeta.monsterMeta = new MonsterMeta(monsterId, 1);
 }
 private float CalculateWeightForBattle(RegionSelectInfo info, int passIndexSinceLast, int passTimeSinceLast) {
     int cntOfSame = GetCountOfSameRegionAtTail(RegionType.Battle);
     // no continuous 4 battle
     if (cntOfSame >= 3) {
         return 0;
     }
     return info.weight;
 }
 private float CalculateWeightForDivineRelic(RegionSelectInfo info, int passIndexSinceLast, int passTimeSinceLast) {
     return info.weight;
 }
 private float CalculateWeightForStockMarket(RegionSelectInfo info, int passIndexSinceLast, int passTimeSinceLast) {
     return info.weight;
 }
 private float CalculateWeightForPotionShop(RegionSelectInfo info, int passIndexSinceLast, int passTimeSinceLast) {
     return info.weight;
 }
 private float CalculateWeightForTarven(RegionSelectInfo info, int passIndexSinceLast, int passTimeSinceLast) {
     if (passIndexSinceLast >= info.args[0]) {
         return float.MaxValue;
     }
     return info.weight;
 }
        private float CalculateWeightForArmorSmith(RegionSelectInfo info, int passIndexSinceLast, int passTimeSinceLast) {
            float weight = info.weight;

            if (passIndexSinceLast > info.args[0]) {
                weight *= passIndexSinceLast - info.args[0] + 1;
            }

            int cntOfSmith = GetCountOfSmithAtTail();
            // no continuous 3 armor smith
            if (cntOfSmith >= 2) {
                return 0;
            }
            else if (cntOfSmith == 1) {
                weight *= 0.25f;
            }

            return weight;
        }