コード例 #1
0
        public Mob FindOrCreateMob(int objectId, int mobType)
        {
            if (objectToMobMap.ContainsKey(objectId))
            {
                return(objectToMobMap[objectId]);
            }

            if (mobDictionary.ContainsKey(mobType))
            {
                MobDef resType = mobDictionary[mobType];
                Mob    newMob  = new Mob()
                {
                    MobId = objectId, Name = resType.Name, HarvestableTier = resType.HarvestableTier, HarvestableType = resType.HarvestableType == null ? null : resType.HarvestableType.Type
                };
                objectToMobMap.Add(objectId, newMob);

                if (MobRemoved != null)
                {
                    MobEventArgs m = new MobEventArgs(newMob);
                    foreach (System.EventHandler <MobEventArgs> e in MobAdded?.GetInvocationList())
                    {
                        e.BeginInvoke(this, m, e.EndInvoke, null);
                    }
                }
                return(newMob);
            }

            return(null);
        }
コード例 #2
0
        public Mob FindOrCreateMob(int objectId, int mobType)
        {
            if (objectToMobMap.ContainsKey(objectId))
            {
                return(objectToMobMap[objectId]);
            }

            if (mobDictionary.ContainsKey(mobType))
            {
                MobDef resType = mobDictionary[mobType];
                Mob    newMob  = new Mob()
                {
                    MobId = objectId, Name = resType.Name, HarvestableTier = resType.HarvestableTier, HarvestableType = resType.HarvestableType == null ? null : resType.HarvestableType.Type
                };
                objectToMobMap.Add(objectId, newMob);
                MobAdded?.Invoke(this, new MobEventArgs(newMob));
                return(newMob);
            }

            return(null);
        }