static void InitEntityManager() { // DataService IDS_MonsterMap mapDs = new DS_MonsterMapImpl(); IDS_Character charDs = new DS_CharacterImpl(); IDS_Monster monsterDs = new DS_MonsterImpl(); IDS_Status statusDs = new DS_StatusImpl(); IDS_Skill skillDs = new DS_SkillImpl(); IDS_Mall mallDs = new DS_MallImpl(); IDS_Item itemDs = new DS_ItemImpl(); IDS_GroundItemMap gndItemDs = new DS_GroundItemMapImpl(); IDS_Mission misDs = new DS_MissionImpl(); // DataEntity DEM_Character charDem = new DEM_Character(charDs); DEM_Status statusDem = new DEM_Status(statusDs); DEM_Skill skillDem = new DEM_Skill(skillDs); DEM_MallItem mallItemDem = new DEM_MallItem(mallDs); DEM_Mission misDem = new DEM_Mission(misDs); DEM_Monster monDem = new DEM_Monster(monsterDs, mapDs); DEM_Item itemDem = new DEM_Item(itemDs, gndItemDs); // DynamicDataService var ddsImpl = new DynamicDataServiceImpl(); IDDS_User userDds = ddsImpl; IDDS_Character charDds = ddsImpl; IDDS_CharacterAttribute charAttrDds = ddsImpl; IDDS_CharacterWallet charWalletDds = ddsImpl; IDDS_CharacterVipCard charVipCardDds = ddsImpl; IDDS_Item itemDds = ddsImpl; IDDS_Skill skillDds = ddsImpl; IDDS_Mission misDds = ddsImpl; IDDS_MissionLog misLogDds = ddsImpl; IDDS_CombatEfct combatEfctDds = ddsImpl; IDDS_Mail mailDds = ddsImpl; IDDS_Notice noticeDds = ddsImpl; IDDS_Title titleDds = ddsImpl; IDDS_Shortcut shortcutDds = ddsImpl; // EntityManager EM_BossDamage.s_instance = new EM_BossDamage(); EM_Camp.s_instance = new EM_Camp(); EM_Character.s_instance = new EM_Character(charDem, charDds, charAttrDds); EM_Item.s_instance = new EM_Item(itemDem, itemDds); EM_Mail.s_instance = new EM_Mail(mailDds); EM_MallItem.s_instance = new EM_MallItem(mallItemDem); EM_Mission.s_instance = new EM_Mission(misDem, misDds, titleDds); EM_MissionLog.s_instance = new EM_MissionLog(misLogDds); EM_Monster.s_instance = new EM_Monster(monDem); EM_MonsterSkill.s_instance = new EM_MonsterSkill(); EM_Notice.s_instance = new EM_Notice(noticeDds); EM_Rank.s_instance = new EM_Rank(combatEfctDds); EM_Shortcut.s_instance = new EM_Shortcut(shortcutDds); EM_Sight.s_instance = new EM_Sight(); EM_Skill.s_instance = new EM_Skill(skillDem, skillDds); EM_Status.s_instance = new EM_Status(statusDem); EM_User.s_instance = new EM_User(userDds); EM_Wallet.s_instance = new EM_Wallet(charWalletDds, charVipCardDds); // EM init EntityManagerInitializer.Init(skillDem, monDem); }
public static void Init(DEM_Skill skillDem, DEM_Monster monDem) { // 初始化所有的怪物 var monIdAndPosList = monDem.GetAllMonsterIdAndRespawnPosition(); var netIdArr = NetworkIdManager.s_instance.AssignNetworkId(monIdAndPosList.Count); var idAndPosList = monDem.GetAllMonsterIdAndRespawnPosition(); for (int i = 0; i < idAndPosList.Count; i++) { // 实例化 monster (DE_Unit, DE_MonsterData)deTuple; monDem.GetMonsterById(idAndPosList[i].Item1, out deTuple); E_Monster monster = new E_Monster(); monster.Reset(netIdArr[i], idAndPosList[i].Item2, deTuple.Item1, deTuple.Item2); // monster EM_Monster.s_instance.AddMonster(monster); // 视野 EM_Sight.s_instance.InitMonster(monster); // boss if (monster.m_MonsterType == MonsterType.BOSS || monster.m_MonsterType == MonsterType.FINAL_BOSS) { EM_BossDamage.s_instance.AddBoss(monster.m_networkId); } } // 所有怪物技能 var monEn = monDem.GetAllMonsterEn(); while (monEn.MoveNext()) { short monId = monEn.Current.Key; var skillIdAndLvList = monEn.Current.Value.Item2.m_skillIdAndLevelList; E_MonsterSkill[] monSkillArr = new E_MonsterSkill[skillIdAndLvList.Count]; for (int i = 0; i < skillIdAndLvList.Count; i++) { DE_Skill skillDe; DE_SkillData skillDataDe; if (!skillDem.GetSkillByIdAndLevel(skillIdAndLvList[i].Item1, skillIdAndLvList[i].Item2, out skillDe, out skillDataDe)) { continue; } monSkillArr[i] = new E_MonsterSkill(skillIdAndLvList[i].Item2, skillDe, skillDataDe); } EM_MonsterSkill.s_instance.SetMonsterSkill(monId, monSkillArr); } }
public EM_Skill(DEM_Skill dem, IDDS_Skill dds) { m_dem = dem; m_dds = dds; }