public void Copy(MonsterFlags flags) { if (null != flags) { this.InjureEvent = flags.InjureEvent; } }
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); }