public MonsterMoveController[] CreateMonsters(World world, MapLevelDetails map) { MonsterPosition monster1 = new MonsterPosition(map, world); MonsterStats statsMonster1 = new MonsterStats("rabbit"); monster1.MoveTo(151, statsMonster1); MonsterPosition monster2 = new MonsterPosition(map, world); MonsterStats statsMonster2 = new MonsterStats("rabbit"); monster2.MoveTo(152, statsMonster2); MonsterPosition monster3 = new MonsterPosition(map, world); MonsterStats statsMonster3 = new MonsterStats("rabbit"); monster3.MoveTo(177, statsMonster3); MonsterPosition monster4 = new MonsterPosition(map, world); MonsterStats statsMonster4 = new MonsterStats("cat"); monster4.MoveTo(60, statsMonster4); MonsterPosition monster5 = new MonsterPosition(map, world); MonsterStats statsMonster5 = new MonsterStats("cat"); monster5.MoveTo(36, statsMonster5); MonsterPosition monster6 = new MonsterPosition(map, world); MonsterStats statsMonster6 = new MonsterStats("cat"); monster6.MoveTo(37, statsMonster6); MonsterMoveController[] monsters = new MonsterMoveController[6]; monsters[0] = new MonsterMoveController(monster1, statsMonster1); monsters[1] = new MonsterMoveController(monster2, statsMonster2); monsters[2] = new MonsterMoveController(monster3, statsMonster3); monsters[3] = new MonsterMoveController(monster4, statsMonster4); monsters[4] = new MonsterMoveController(monster5, statsMonster5); monsters[5] = new MonsterMoveController(monster6, statsMonster6); return(monsters); }
public void Render(GameTime gameTime) { //Get PlayerPosition from World; if (_world.Has <PlayerPosition>()) { var playerPosition = _world.Get <PlayerPosition>(); //if changed if (playerPosition.Changed) { MapLevelDetails map; if (_world.Has <MapLevelDetails>()) { map = _world.Get <MapLevelDetails>(); } else { map = new MapLevelDetails(10, 10); _world.Set(map); } if (playerPosition.OldNumberOfArrayPlayerIsIn != 0) { int index = map.Map[playerPosition.OldNumberOfArrayPlayerIsIn].AreaMapSymbol.IndexOf('X'); map.Map[playerPosition.OldNumberOfArrayPlayerIsIn].AreaMapSymbol = map.Map[playerPosition.OldNumberOfArrayPlayerIsIn].AreaMapSymbol.Remove(index, 1); map.Map[playerPosition.OldNumberOfArrayPlayerIsIn].Changed = true; } map.Map[playerPosition.NumberOfArrayPlayerIsIn].AreaMapSymbol += "X"; map.Map[playerPosition.NumberOfArrayPlayerIsIn].Changed = true; } } }
public void Render(GameTime gameTime) { if (_world.Has <MonsterMoveController[]>()) { var monsters = _world.Get <MonsterMoveController[]>(); foreach (var monster in monsters) { if (monster.MonsterPosition.Changed) { MapLevelDetails map; if (_world.Has <MapLevelDetails>()) { map = _world.Get <MapLevelDetails>(); } else { map = new MapLevelDetails(10, 10); _world.Set(map); } if (monster.MonsterPosition.OldNumberOfArrayMonsterIsIn != 0) { int index = map.Map[monster.MonsterPosition.OldNumberOfArrayMonsterIsIn].AreaMapSymbol.IndexOf('M'); map.Map[monster.MonsterPosition.OldNumberOfArrayMonsterIsIn].AreaMapSymbol = map.Map[monster.MonsterPosition.OldNumberOfArrayMonsterIsIn].AreaMapSymbol.Remove(index, 1); map.Map[monster.MonsterPosition.OldNumberOfArrayMonsterIsIn].Changed = true; } map.Map[monster.MonsterPosition.NumberOfArrayMonsterIsIn].AreaMapSymbol += "M"; map.Map[monster.MonsterPosition.NumberOfArrayMonsterIsIn].Changed = true; } } } }
static void Main(string[] args) { StartSetupScreen(); var world = new World(); LevelOne levelOne = new LevelOne(); var fpsCounter = new FramesPerSecondCounter(world); var fpsWriter = new FpsRenderer(world); MapLevelDetails map = new MapLevelDetails(25, 11); // initialize map world.Set(map); MapRenderer mapRenderer = new MapRenderer(world); Queue <string> playerMessageQueue = new Queue <string>(2); world.Set(playerMessageQueue); MessageBoxRenderer messageBoxRenderer = new MessageBoxRenderer(world); HealthComponent health = new HealthComponent() { Health = new RegenerateAttribute() { Current = 27, Max = 40, Name = "Health", RegenRatePerSecond = 0.5 } }; ManaComponent mana = new ManaComponent() { Mana = new RegenerateAttribute() { Current = 25, Max = 30, Name = "Mana", RegenRatePerSecond = 0.2 } }; ExperienceBar xpBar = new ExperienceBar(); PlayerStats playerStats = new PlayerStats("Dave", health, mana, xpBar); world.Set(playerStats); ConsoleInputSystem playerInput = new ConsoleInputSystem(world); PlayerMovementSystem playerMovementSystem = new PlayerMovementSystem(world); PlayerRenderSystem player = new PlayerRenderSystem(world); PlayerPosition playerStartPosition = new PlayerPosition(map, world); //initialize player playerStartPosition.MoveTo(27); world.Set(playerStartPosition); MonsterMoveController[] monsters = levelOne.CreateMonsters(world, map); //initialize monsters world.Set(monsters); MonsterMovementSystem monsterMovement = new MonsterMovementSystem(world); MonsterRenderSystem monstersRenderer = new MonsterRenderSystem(world); List <string> combatMessagesQueue = new List <string>(3); world.Set(combatMessagesQueue); CombatHandler combatHandler = new CombatHandler(world); world.Set(combatHandler); CombatMessages combatMessages = new CombatMessages(world); var updateSystems = new IUpdate[] { playerInput, playerMovementSystem, combatHandler, monsterMovement, fpsCounter, health, mana }; //Order is important! var renderSystems = new IRender[] { player, monstersRenderer, mapRenderer, messageBoxRenderer, combatMessages, fpsCounter, fpsWriter, health, mana, xpBar }; GameEngine gameEngine = new GameEngine(updateSystems, renderSystems, player, monstersRenderer); mapRenderer.PrintMap(map.Map); gameEngine.Start(); }
public PlayerPosition(MapLevelDetails map, World world) { _world = world; Map = map; }