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 void ResetInfo(DEM_Item dem, ItemInfoDdoCollections collct, long realId, E_Item resItem) { resItem.ResetRealId(realId); DDO_EquipmentInfo eqDdo; if (!collct.TryGetEquipment(realId, out eqDdo)) { (resItem as E_EquipmentItem).ResetEquipmentData(0, new (ActorUnitConcreteAttributeType, int) [0], new List <short> (), new List <DE_GemData> ());
public void ResetInfo(DEM_Item dem, ItemInfoDdoCollections collct, long realId, E_Item resItem) { resItem.ResetRealId(realId); DDO_EnchantmentInfo info; if (!collct.TryGetEnchantment(realId, out info)) { (resItem as E_EnchantmentItem).ResetEnchantmentData(new List <(ActorUnitConcreteAttributeType, int)> ()); return; } (resItem as E_EnchantmentItem).ResetEnchantmentData(new List <(ActorUnitConcreteAttributeType, int)> (info.m_attrArr)); }
public EM_Item(DEM_Item dem, IDDS_Item dds) { m_dem = dem; m_itemFactory = new ItemFactory(dem); m_ddh = new ItemDynamicDataHelper(dem, dds, m_itemFactory); // 可再生道具 var itemIdAndPosList = dem.GetAllRenewableItemList(); m_renewableItemList = new List <(short, Vector2, MyTimer.Time)> (itemIdAndPosList.Count); for (int i = 0; i < itemIdAndPosList.Count; i++) { m_renewableItemList.Add((itemIdAndPosList[i].Item1, itemIdAndPosList[i].Item2, MyTimer.s_CurTime.Ticked(MyRandom.NextFloat(c_renewableItemRefreshTimeMin, c_renewableItemRefreshTimeMax)))); } }
public ItemFactory(DEM_Item dem) { m_dem = dem; m_poolDict.Add(ItemType.EMPTY, new ObjectPool <E_EmptyItem> (c_poolSize)); m_poolDict.Add(ItemType.MATERIAL, new ObjectPool <E_MaterialItem> (c_poolSize)); m_poolDict.Add(ItemType.CONSUMABLE, new ObjectPool <E_ConsumableItem> (c_poolSize)); m_poolDict.Add(ItemType.EQUIPMENT, new ObjectPool <E_EquipmentItem> (c_poolSize)); m_poolDict.Add(ItemType.GEM, new ObjectPool <E_GemItem> (c_poolSize)); m_poolDict.Add(ItemType.ENCHANTMENT, new ObjectPool <E_EnchantmentItem> (c_poolSize)); // 实例化所有 IItemInitializer 的子类 var baseType = typeof(IItemInitializer); var implTypes = AppDomain.CurrentDomain.GetAssemblies().SelectMany(s => s.GetTypes()).Where(p => !p.IsAbstract && baseType.IsAssignableFrom(p)); foreach (var type in implTypes) { IItemInitializer impl = type.GetConstructor(Type.EmptyTypes).Invoke(null) as IItemInitializer; m_itemInitializerDict.Add(impl.m_ItemType, impl); } }
public void ResetInfo(DEM_Item dem, ItemInfoDdoCollections collct, long realId, E_Item resItem) { resItem.ResetRealId(realId); }
public void Initialize(DEM_Item dem, E_Item resItem, DE_Item de, short num) { ((E_EnchantmentItem)resItem).Reset(de); }
public void Initialize(DEM_Item dem, E_Item resItem, DE_Item de, short num) { var gemDe = dem.GetGemById(de.m_id); ((E_GemItem)resItem).Reset(de, gemDe); }
public void Initialize(DEM_Item dem, E_Item resItem, DE_Item de, short num) { var eqDe = dem.GetEquipmentById(de.m_id); ((E_EquipmentItem)resItem).Reset(de, eqDe); }
public void Initialize(DEM_Item dem, E_Item resItem, DE_Item de, short num) { var conDe = dem.GetConsumableById(de.m_id); ((E_ConsumableItem)resItem).Reset(de, conDe, num); }
public void Initialize(DEM_Item dem, E_Item resItem, DE_Item de, short num) { ((E_MaterialItem)resItem).Reset(de, num); }