Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
                    }
                }
            }
        }
Exemplo n.º 4
0
        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;
 }