override public void OnSceneLoaded() { SceneCsvData csvData = GameMgr.Instance.m_csvMgr.mSceneCsv.Lookup(SceneID); if (csvData == null) { Debug.LogError("EctypeScene::OnSceneLoaded sceneCsvData load error id = " + SceneID); return; } GameObject scene = GameMgr.Instance.m_resMgr.LoadResource(csvData.sceneID); scene.name = csvData.sceneName; EctypeCsvData ectypeCsvData = GameMgr.Instance.m_csvMgr.mEctypeCsv.Lookup((int)EctypeId); if (ectypeCsvData == null) { Debug.LogError(string.Format("EctypeScene::OnSceneLoaded, m_ectypeId={0}", EctypeId)); return; } int monsterID = ectypeCsvData.monsterID; //副本Monster表 EctypeMonsterCsv csv = GameMgr.Instance.m_csvMgr.MonsterCsvs.Lookup(monsterID); if (csv == null) { Debug.LogError(string.Format("EctypeScene::OnSceneLoaded, monsterID={0}", monsterID)); return; } EctypeCreatContext ctx = new EctypeCreatContext(); ctx.dwEctypeID = EctypeId; ctx.sceneID = SceneID; foreach (EctypeMonsterCsvData data in csv.EctypeMonsterDic.Values) { EntityCreateCtx defenders = new EntityCreateCtx(); int enemyID = data.monsterID; defenders.type = (EntityType)GameMgr.Instance.m_csvMgr.mMonsterCsv.LookUpType(enemyID); defenders.id = enemyID; defenders.pos = new Vector3(2f, 0f, 0f); defenders.dir = Vector3.zero; defenders.scene = this; defenders.camp = EntityCamp.Defender; ctx.defenderTeam.entityList.Add(defenders); } EntityCreateCtx attackers = CreateAttacker(); ctx.attackerTeam.entityList.Add(attackers); GameMgr.Instance.m_ectypeMgr.CreateEctype(ctx); }
public bool Create(EctypeCreatContext createContext) { mCreateContext = createContext; m_attackerTeam = new EctypeTeamAttacker(this); m_defenderTeam = new EctypeTeamDefender(this); for (int i = 0; i < mCreateContext.attackerTeam.entityList.Count; i++) { EntityCreateCtx ctx = mCreateContext.attackerTeam.entityList[i]; EctypeEntity attacker = new EctypeEntity(); attacker.entity = GameMgr.Instance.m_entityMgr.Build(ctx); if (attacker.entity == null) { Debug.Log("Ectype::Create Attacker failed !"); continue; } attacker.Status = EntityEctypeStatus.Idle; attacker.Camp = EntityCamp.Attacker; m_attackerTeam.m_entityList.Add(attacker); GameMgr.Instance.m_uiMgr.UIFight.CreateAttacker(attacker.entity); } for (int i = 0; i < mCreateContext.defenderTeam.entityList.Count; i++) { EntityCreateCtx ctx = mCreateContext.defenderTeam.entityList[i]; EctypeEntity defender = new EctypeEntity(); defender.entity = GameMgr.Instance.m_entityMgr.Build(ctx); if (defender.entity == null) { Debug.Log("Ectype::Create Defender failed !"); continue; } defender.Status = EntityEctypeStatus.Idle; defender.Camp = EntityCamp.Defender; m_defenderTeam.m_entityList.Add(defender); GameMgr.Instance.m_uiMgr.UIFight.CreateDeffender(defender.entity); } return(true); }
public bool CreateEctype(EctypeCreatContext data) { m_Ectype = new Ectype(); if (m_Ectype == null) { return(false); } if (!m_Ectype.Create(data)) { return(false); } // 启动副本 m_Ectype.Start(); return(true); }
public EnterEctypeContext() { m_EctypeCreateData = new EctypeCreatContext(); }