@@ -69,7 +69,7 @@ public override void OnResponse(WorldClient client, ushort responseID, string ar
6969 }
7070 }
7171
72- private void PopulateMapWithAppropriateMonsters ( WorldClient client , Area area )
72+ private static void PopulateMapWithAppropriateMonsters ( WorldClient client , Area area )
7373 {
7474 var sprites = new List < int >
7575 {
@@ -99,66 +99,70 @@ private void PopulateMapWithAppropriateMonsters(WorldClient client, Area area)
9999
100100 var monsterTemplates = new List < MonsterTemplate > ( ) ;
101101
102- for ( var i = 0 ; i < 10 ; i ++ )
102+ try
103103 {
104- var temp = new MonsterTemplate
104+ for ( var i = 0 ; i < 10 ; i ++ )
105105 {
106- ScriptName = "RiftMob" ,
107- BaseName = "Rift Mob" ,
108- Name = $ "{ Random . Shared . NextInt64 ( ) } RiftMob",
109- AreaID = area . ID ,
110- Image = ( ushort ) sprites . RandomIEnum ( ) ,
111- ElementType = ElementQualifer . Random ,
112- PathQualifer = PathQualifer . Wander ,
113- SpawnType = SpawnQualifer . Random ,
114- SpawnSize = Random . Shared . Next ( 10 , 20 ) ,
115- MoodType = MoodQualifer . Aggressive ,
116- MonsterType = MonsterType . Rift ,
117- MonsterArmorType = MonsterArmorType . Caster ,
118- MonsterRace = Enum . GetValues < MonsterRace > ( ) . RandomIEnum ( ) ,
119- IgnoreCollision = false ,
120- Waypoints = [ ] ,
121- MovementSpeed = 1000 ,
122- EngagedWalkingSpeed = Random . Shared . Next ( 800 , 1400 ) ,
123- AttackSpeed = Random . Shared . Next ( 800 , 1200 ) ,
124- CastSpeed = Random . Shared . Next ( 5000 , 8000 ) ,
125- LootType = LootQualifer . RandomGold ,
126- Level = ( ushort ) ( client . Aisling . ExpLevel + client . Aisling . AbpLevel + Random . Shared . Next ( 1 , 10 ) ) ,
127- SkillScripts = [ ] ,
128- AbilityScripts = [ ] ,
129- SpellScripts = [ ]
130- } ;
131-
132- var randArmor = Random . Shared . Next ( 0 , 1 ) ;
133- temp . MonsterArmorType = randArmor == 0 ? MonsterArmorType . Caster : MonsterArmorType . Tank ;
134-
135- if ( temp . OffenseElement == ElementManager . Element . Terror )
136- temp . OffenseElement = Enum . GetValues < ElementManager . Element > ( ) . RandomIEnum ( ) ;
137-
138- if ( temp . MonsterRace == MonsterRace . Bahamut )
139- temp . MonsterRace = MonsterRace . Dragon ;
140-
141- if ( temp . MonsterRace == MonsterRace . HigherBeing )
142- temp . MonsterRace = MonsterRace . Aberration ;
143-
144- if ( temp . MonsterRace == MonsterRace . LowerBeing )
145- temp . MonsterRace = MonsterRace . Rodent ;
146-
147- if ( temp . MonsterRace . MonsterRaceIsSet ( MonsterRace . Aberration ) )
148- temp . IgnoreCollision = true ;
149-
150- monsterTemplates . Add ( temp ) ;
151- }
106+ var temp = new MonsterTemplate
107+ {
108+ ScriptName = "RiftMob" ,
109+ BaseName = "Rift Mob" ,
110+ Name = $ "{ Random . Shared . NextInt64 ( ) } RiftMob",
111+ AreaID = area . ID ,
112+ Image = ( ushort ) sprites . RandomIEnum ( ) ,
113+ ElementType = ElementQualifer . Random ,
114+ PathQualifer = PathQualifer . Wander ,
115+ SpawnType = SpawnQualifer . Random ,
116+ SpawnSize = Random . Shared . Next ( 10 , 20 ) ,
117+ MoodType = MoodQualifer . Aggressive ,
118+ MonsterType = MonsterType . Rift ,
119+ MonsterArmorType = MonsterArmorType . Caster ,
120+ MonsterRace = Enum . GetValues < MonsterRace > ( ) . RandomIEnum ( ) ,
121+ IgnoreCollision = false ,
122+ Waypoints = [ ] ,
123+ MovementSpeed = 1000 ,
124+ EngagedWalkingSpeed = Random . Shared . Next ( 800 , 1400 ) ,
125+ AttackSpeed = Random . Shared . Next ( 800 , 1200 ) ,
126+ CastSpeed = Random . Shared . Next ( 5000 , 8000 ) ,
127+ LootType = LootQualifer . RandomGold ,
128+ Level = ( ushort ) ( client . Aisling . ExpLevel + client . Aisling . AbpLevel + Random . Shared . Next ( 1 , 10 ) ) ,
129+ SkillScripts = [ ] ,
130+ AbilityScripts = [ ] ,
131+ SpellScripts = [ ]
132+ } ;
133+
134+ var randArmor = Random . Shared . Next ( 0 , 1 ) ;
135+ temp . MonsterArmorType = randArmor == 0 ? MonsterArmorType . Caster : MonsterArmorType . Tank ;
136+
137+ if ( temp . OffenseElement == ElementManager . Element . Terror )
138+ temp . OffenseElement = Enum . GetValues < ElementManager . Element > ( ) . RandomIEnum ( ) ;
139+
140+ if ( temp . MonsterRace == MonsterRace . Bahamut )
141+ temp . MonsterRace = MonsterRace . Dragon ;
142+
143+ if ( temp . MonsterRace == MonsterRace . HigherBeing )
144+ temp . MonsterRace = MonsterRace . Aberration ;
145+
146+ if ( temp . MonsterRace == MonsterRace . LowerBeing )
147+ temp . MonsterRace = MonsterRace . Rodent ;
148+
149+ if ( temp . MonsterRace . MonsterRaceIsSet ( MonsterRace . Aberration ) )
150+ temp . IgnoreCollision = true ;
151+
152+ monsterTemplates . Add ( temp ) ;
153+ }
152154
153- foreach ( var template in monsterTemplates )
154- {
155- for ( var i = 0 ; i < template . SpawnSize ; i ++ )
155+ foreach ( var template in monsterTemplates )
156156 {
157- var monster = Monster . Create ( template , area ) ;
158- if ( monster == null ) continue ;
159- AddObject ( monster ) ;
157+ for ( var i = 0 ; i < template . SpawnSize ; i ++ )
158+ {
159+ var monster = Monster . Create ( template , area ) ;
160+ if ( monster == null ) continue ;
161+ AddObject ( monster ) ;
162+ }
160163 }
161164 }
165+ catch { }
162166 }
163167
164168 private static void PortGroup ( WorldClient client , Area map , int rand )
0 commit comments