コード例 #1
0
        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);
        }
コード例 #2
0
                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> ());
コード例 #3
0
                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));
                }
コード例 #4
0
        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))));
            }
        }
コード例 #5
0
            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);
                }
            }
コード例 #6
0
 public void ResetInfo(DEM_Item dem, ItemInfoDdoCollections collct, long realId, E_Item resItem)
 {
     resItem.ResetRealId(realId);
 }
コード例 #7
0
 public void Initialize(DEM_Item dem, E_Item resItem, DE_Item de, short num)
 {
     ((E_EnchantmentItem)resItem).Reset(de);
 }
コード例 #8
0
                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);
                }
コード例 #9
0
                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);
                }
コード例 #10
0
                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);
                }
コード例 #11
0
 public void Initialize(DEM_Item dem, E_Item resItem, DE_Item de, short num)
 {
     ((E_MaterialItem)resItem).Reset(de, num);
 }