@ -24,7 +24,7 @@ namespace fs = std::filesystem;
* system .
*/
void configure_world ( DinkyECS : : World & world , Map & game_map ) {
const auto & config = world . get_the < Map Config> ( ) ;
auto & config = world . get_the < Game Config> ( ) ;
// configure a player as a fact of the world
Player player { world . entity ( ) } ;
world . set_the < Player > ( player ) ;
@ -32,7 +32,7 @@ void configure_world(DinkyECS::World &world, Map &game_map) {
world . set < Position > ( player . entity , { game_map . place_entity ( 0 ) } ) ;
world . set < Motion > ( player . entity , { 0 , 0 } ) ;
world . set < Combat > ( player . entity , { 100 , 10 } ) ;
world . set < Tile > ( player . entity , { config . PLAYER_TILE } ) ;
world . set < Tile > ( player . entity , { config . enemies [ " PLAYER_TILE " ] [ " display " ] } ) ;
world . set < Inventory > ( player . entity , { 5 } ) ;
world . set < LightSource > ( player . entity , { 70 , 1.0 } ) ;
@ -40,24 +40,38 @@ void configure_world(DinkyECS::World &world, Map &game_map) {
world . set < Position > ( enemy , { game_map . place_entity ( 1 ) } ) ;
world . set < Motion > ( enemy , { 0 , 0 } ) ;
world . set < Combat > ( enemy , { 20 , 10 } ) ;
world . set < Tile > ( enemy , { config . ENEMY_TILE } ) ;
world . set < Tile > ( enemy , { config . enemies [ " UNICORN " ] [ " display " ] } ) ;
auto enemy2 = world . entity ( ) ;
world . set < Position > ( enemy2 , { game_map . place_entity ( 2 ) } ) ;
world . set < Motion > ( enemy2 , { 0 , 0 } ) ;
world . set < Combat > ( enemy2 , { 20 , 10 } ) ;
world . set < Tile > ( enemy2 , { " * " } ) ;
world . set < Tile > ( enemy2 , { config . enemies [ " SNAKE " ] [ " display " ] } ) ;
world . set < LightSource > ( enemy2 , { 60 , 0.2f } ) ;
auto gold = world . entity ( ) ;
world . set < Position > ( gold , { game_map . place_entity ( 3 ) } ) ;
world . set < Loot > ( gold , { 100 } ) ;
world . set < Tile > ( gold , { " $ " } ) ;
world . set < Tile > ( gold , { config . items [ " CHEST " ] [ " display " ] } ) ;
auto wall_torch = world . entity ( ) ;
world . set < Position > ( wall_torch , { game_map . place_entity ( 4 ) } ) ;
world . set < LightSource > ( wall_torch , { 90 , 3.0f } ) ;
world . set < Tile > ( wall_torch , { " ☀ " } ) ;
world . set < Tile > ( wall_torch , { config . items [ " WALL_TORCH " ] [ " display " ] } ) ;
auto torch = world . entity ( ) ;
Point at = game_map . place_entity ( 2 ) ;
world . set < Position > ( torch , { { at . x + 1 , at . y + 1 } } ) ;
world . set < Loot > ( torch , { { 0 } } ) ;
world . set < LightSource > ( torch , { 70 , 1.5f } ) ;
world . set < Tile > ( torch , { config . items [ " TORCH " ] [ " display " ] } ) ;
auto sword = world . entity ( ) ;
at = game_map . place_entity ( 1 ) ;
world . set < Position > ( sword , { at . x + 1 , at . y + 1 } ) ;
world . set < Weapon > ( sword , { . damage = 20 } ) ;
world . set < Loot > ( sword , { { 0 } } ) ;
world . set < Tile > ( sword , { config . items [ " SWORD " ] [ " display " ] } ) ;
}
int main ( int argc , char * argv [ ] ) {