示例#1
0
 public void Copy(MonsterFlags flags)
 {
     if (null != flags)
     {
         this.InjureEvent = flags.InjureEvent;
     }
 }
示例#2
0
        public Monster AddDynamicMonsters(int mapCode, int monsterID, int copyMapID = -1, int addNum = 1, int gridX = 0, int gridY = 0, int radius = 3, int pursuitRadius = 0, SceneUIClasses managerType = SceneUIClasses.Normal, object tag = null, MonsterFlags flags = null)
        {
            this.TraceAllDynamicMonsters();
            MonsterZone monsterZone = null;
            Monster     result;

            if (!this.MonsterDynamicZoneDict.TryGetValue(mapCode, out monsterZone))
            {
                result = null;
            }
            else
            {
                Monster seedMonster = this.GetDynamicMonsterSeed(monsterID);
                if (null == seedMonster)
                {
                    result = null;
                }
                else
                {
                    int index;
                    if (copyMapID >= 0)
                    {
                        index = Global.Clamp(copyMapID % 10, 0, 9);
                    }
                    else
                    {
                        index = Global.Clamp(mapCode % 10, 0, 9);
                    }
                    lock (this.WaitingAddDynamicMonsterQueue)
                    {
                        this.WaitingAddDynamicMonsterQueue[index].Enqueue(new MonsterZoneQueueItem
                        {
                            CopyMapID     = copyMapID,
                            BirthCount    = addNum,
                            MyMonsterZone = monsterZone,
                            seedMonster   = seedMonster,
                            ToX           = gridX,
                            ToY           = gridY,
                            Radius        = radius,
                            PursuitRadius = pursuitRadius,
                            Tag           = tag,
                            ManagerType   = managerType,
                            Flags         = flags
                        });
                    }
                    result = seedMonster;
                }
            }
            return(result);
        }