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; }
Region CreateOnceClickRegion(RegionType regionType) { RegionMeta meta = new RegionMeta(); meta.type = regionType; var region = regionCreater.Create(meta, this); region.transform.parent = transform; return region; }
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; }
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; }
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; }
private void PostProcessForBattle(RegionSelectInfo info, RegionMeta regionMeta) { var monsterId = Randoms.Default.Range(ConstDB.Instance.GetAllMonsterIds()); regionMeta.monsterMeta = new MonsterMeta(monsterId, 1); }
public override void Reset(RegionMeta meta, StageController stageController) { clickArea.gameObject.SetActive(true); isTriggered = false; this.stageController = stageController; }
public abstract void Reset(RegionMeta meta, StageController stageController);
public override void Reset(RegionMeta meta, StageController stageController) { base.Reset(meta, stageController); text.text = "武器升级"; }
Region CreateRegion(RegionMeta meta) { var region = regionCreater.Create(meta, this); region.transform.parent = transform; return region; }