@ -92,47 +92,6 @@ bool Crawler::OnUserCreate(){
player . SetClass ( WARRIOR ) ;
player . SetPos ( { 4 * 24 , 4 * 24 } ) ;
SPAWNER_LIST . push_back ( MonsterSpawner ( { 360 * 1 , 96 } , 4 * 24 , { {
{ MonsterName : : SLIME_GREEN , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_GREEN , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
} } ) ) ;
SPAWNER_LIST . push_back ( MonsterSpawner ( { 360 * 2 , 96 } , 4 * 24 , { {
{ MonsterName : : SLIME_GREEN , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_GREEN , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_RED , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
} } ) ) ;
SPAWNER_LIST . push_back ( MonsterSpawner ( { 360 * 3 , 96 } , 4 * 24 , { {
{ MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
} } ) ) ;
SPAWNER_LIST . push_back ( MonsterSpawner ( { 360 * 4 , 96 } , 4 * 24 , { {
{ MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_GREEN , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_GREEN , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_GREEN , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
} } ) ) ;
SPAWNER_LIST . push_back ( MonsterSpawner ( { 360 * 5 , 96 } , 4 * 24 , { {
{ MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_RED , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_RED , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
} } ) ) ;
SPAWNER_LIST . push_back ( MonsterSpawner ( { 360 * 6 , 96 } , 4 * 24 , { {
{ MonsterName : : SLIME_RED , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_RED , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_RED , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_RED , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_RED , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
} } ) ) ;
SPAWNER_LIST . push_back ( MonsterSpawner ( { 360 * 7 , 96 } , 4 * 24 , { {
{ MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
, { MonsterName : : SLIME_BLUE , { ( rand ( ) % 20 / 2.f - 5 ) * 24 , ( rand ( ) % 20 / 2.f - 5 ) * 24 } }
} } ) ) ;
LoadLevel ( LEVEL2 ) ;
return true ;
@ -829,8 +788,20 @@ void Crawler::InitializeLevel(std::string mapFile,MapName map){
}
void Crawler : : LoadLevel ( MapName map ) {
SPAWNER_LIST . clear ( ) ;
currentLevel = map ;
WORLD_SIZE = { MAP_DATA [ map ] . MapData . width , MAP_DATA [ map ] . MapData . height } ;
for ( SpawnerTag & spawner : MAP_DATA [ map ] . SpawnerData ) {
std : : vector < std : : pair < MonsterName , vf2d > > monster_list ;
vf2d spawnerRadius = vf2d { spawner . ObjectData . GetFloat ( " width " ) , spawner . ObjectData . GetFloat ( " height " ) } / 2 ;
for ( XMLTag & property : spawner . properties ) {
int monsterTypeID = property . GetInteger ( " value " ) - 1 ;
if ( monsterTypeID > = 0 & & monsterTypeID < MonsterName : : END ) {
monster_list . push_back ( { MonsterName ( monsterTypeID ) , { rand ( ) % int ( spawnerRadius . x ) - spawnerRadius . x / 2 , rand ( ) % int ( spawnerRadius . y ) - spawnerRadius . y / 2 } } ) ;
}
}
SPAWNER_LIST . push_back ( MonsterSpawner { { spawner . ObjectData . GetFloat ( " x " ) + spawnerRadius . x , spawner . ObjectData . GetFloat ( " y " ) + spawnerRadius . y } , spawnerRadius , monster_list } ) ;
}
}
vi2d Crawler : : GetWorldSize ( ) {