コード例 #1
0
ファイル: RegionCreater.cs プロジェクト: Boxxxx/clicker
		public Region Create(RegionMeta meta, StageController stageController) {
			Region ret = null;
			this.meta = meta;
			this.stageController = stageController;
			switch (meta.type) {
				case RegionType.Battle:
					ret = CreateBattle();
					break;
				case RegionType.BlackSmith:
					ret = CreateBlackSmith();
					break;
				case RegionType.ArmorSmith:
					ret = CreateArmorSmith();
					break;
				case RegionType.Tarven:
					ret = CreateTarvenRegion();
                    break;
				case RegionType.PotionShop:
					ret = CreatePotionShopRegion();
					break;
				case RegionType.StockMarket:
					ret = CreateStockMarketRegion();
					break;
				case RegionType.DivineRelic:
					ret = CreateDivineRelicRegion();
					break;
			}
			return ret;
		}
コード例 #2
0
ファイル: StageController.cs プロジェクト: Boxxxx/clicker
		Region CreateOnceClickRegion(RegionType regionType) {
			RegionMeta meta = new RegionMeta();
			meta.type = regionType;

			var region = regionCreater.Create(meta, this);
			region.transform.parent = transform;

			return region;
		}
コード例 #3
0
ファイル: StageController.cs プロジェクト: Boxxxx/clicker
		Region CreateBattleRegion() {
			RegionMeta meta = new RegionMeta();
			meta.type = RegionType.Battle;
			meta.monsterMeta = new MonsterMeta("1", 1);

			var region = regionCreater.Create(meta, this);
			region.transform.parent = transform;

			return region;
		}
コード例 #4
0
        public override RegionMeta Select(
            int index,
            int date,
            List<RegionMeta> regionHistory,
            Dictionary<RegionType, int> regionCountMap,
            Dictionary<RegionType, int> regionLastIndex,
            Dictionary<RegionType, int> regionLastDate) {

            CurrentDate = date;
            RegionHistory = regionHistory;
            RegionCountMap = regionCountMap;
            RegionLastIndex = regionLastIndex;
            RegionLastDate = regionLastDate;

            var mustSelect = new List<RegionType>();
            var weightList = new List<Pair<RegionType, float>>();
            foreach (var pair in m_calculators) {
                var regionType = pair.Key;
                var calculator = pair.Value;

                int passIndexSinceLast = regionLastIndex.ContainsKey(regionType) ? index - regionLastIndex[regionType] : index + 1;
                int passTimeSinceLast = regionLastDate.ContainsKey(regionType) ? date - regionLastDate[regionType] : date + 1;
                var regionSelectInfo = regionArgs.ContainsKey(regionType) ? regionArgs[regionType] : _defaultRegionSelectInfo;

                float weight = calculator(regionSelectInfo, passIndexSinceLast, passTimeSinceLast);
                if (weight == float.MaxValue) {
                    mustSelect.Add(regionType);
                }
                else {
                    weightList.Add(Pair.Of(regionType, weight));
                }
            }

            RegionType selectedType;
            if (mustSelect.Count > 0) {
                selectedType = Randoms.Default.Range(mustSelect);
            }
            else {
                selectedType = Randoms.Default.RangeWithWeight(weightList, weightList.Map(pair => pair.Second)).First;
            }
            var regionMeta = new RegionMeta() {
                date = date,
                type = selectedType
            };
            if (m_postProcesses.ContainsKey(selectedType)) {
                m_postProcesses[selectedType](
                    regionArgs.ContainsKey(selectedType) ? regionArgs[selectedType] : null,
                    regionMeta);
            }
            return regionMeta;
        }
コード例 #5
0
ファイル: BattleRegion.cs プロジェクト: Boxxxx/clicker
		public override void Reset(RegionMeta meta, StageController stageController) {
			monsterInfo = new MonsterDataInst(meta.monsterMeta);

			monsterAnime = (GameObject.Instantiate(Resources.Load("Monster/monster_" + monsterInfo.raw.id)) as GameObject).GetComponent<MonsterAnimation>();
			monsterAnime.gameObject.transform.parent = this.transform;
			monsterAnime.gameObject.transform.localPosition = new Vector3(1.2f, GameConsts.Inst.monsterYOffset, 0);
			monsterAnime.anime.CrossFade("Idle");

			monsterLifeBar = stageController.stageUi.worldUi.CreateLifeBar(monsterAnime.lifeBarPos);
			monsterLifeBar.SetHp(monsterInfo.hp, monsterInfo.MaxHp);

			clickArea.gameObject.SetActive(true);
			text.text = "怪兽区域";
			this.stageController = stageController;
			charAnime = stageController.charAnime;
			isBattleEntered = false;
        }
コード例 #6
0
 private void PostProcessForBattle(RegionSelectInfo info, RegionMeta regionMeta) {
     var monsterId = Randoms.Default.Range(ConstDB.Instance.GetAllMonsterIds());
     regionMeta.monsterMeta = new MonsterMeta(monsterId, 1);
 }
コード例 #7
0
ファイル: OnceClickRegion.cs プロジェクト: Boxxxx/clicker
		public override void Reset(RegionMeta meta, StageController stageController) {
			clickArea.gameObject.SetActive(true);
			isTriggered = false;

			this.stageController = stageController;
		}
コード例 #8
0
ファイル: Region.cs プロジェクト: Boxxxx/clicker
		public abstract void Reset(RegionMeta meta, StageController stageController);
コード例 #9
0
ファイル: BlackSmithRegion.cs プロジェクト: Boxxxx/clicker
		public override void Reset(RegionMeta meta, StageController stageController) {
			base.Reset(meta, stageController);
			text.text = "武器升级";
		}
コード例 #10
0
ファイル: StageController.cs プロジェクト: Boxxxx/clicker
        Region CreateRegion(RegionMeta meta) {
            var region = regionCreater.Create(meta, this);
            region.transform.parent = transform;

            return region;
        }