示例#1
0
 public PlayerMovementEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, audioFilename: "player_movement")
 {
     Game = game;
     PlayerMovementComp     = game.Entities.GetSingleComponent <PlayerComp, BoundedMovementComp>();
     PlayerPositionComp     = game.Entities.GetSingleComponent <PlayerComp, CurrentPositionComp>();
     PlayerLastPositionComp = game.Entities.GetSingleComponent <PlayerComp, LastPositionComp>();
 }
示例#2
0
        public override void Init(Game game)
        {
            Game = (RogueskivGame)game;
            var playerComp = Game.Entities.GetWithComponent <PlayerComp>().Single();

            PlayerHealthComp    = playerComp.GetComponent <HealthComp>();
            CurrentPositionComp = playerComp.GetComponent <CurrentPositionComp>();
            LastPositionComp    = playerComp.GetComponent <LastPositionComp>();
            TimerComp           = Game.Entities.GetSingleComponent <TimerComp>();
        }
示例#3
0
        public RogueskivRenderer(
            UxContext uxContext,
            IGameContext gameContext,
            RogueskivGame game,
            IRogueskivUxConfig uxConfig,
            IRogueskivGameConfig gameConfig
            ) : base(uxContext, game)
        {
            RogueskivGame      = game;
            UxContext          = uxContext;
            UxConfig           = uxConfig;
            PlayerPositionComp = game.Entities.GetSingleComponent <PlayerComp, CurrentPositionComp>();

            var font = uxContext.GetFont(uxConfig.FontFile, FONT_SIZE);

            BoardTexture = uxContext.GetTexture("board.png");

            var bgrRenderer = new BgrRenderer(uxContext, new Size(1920, 1440));

            Renderers.Add(bgrRenderer);
            Renderers.Add(new BoardRenderer(uxContext, game, BoardTexture));

            CompRenderers[typeof(FoodComp)]        = new FoodRenderer(this, uxContext, game, BoardTexture);
            CompRenderers[typeof(TorchComp)]       = new TorchRenderer(this, uxContext, game, BoardTexture);
            CompRenderers[typeof(MapRevealerComp)] = new MapRevealerRenderer(this, uxContext, game, BoardTexture);
            CompRenderers[typeof(AmuletComp)]      = new AmuletRenderer(this, uxContext, game, BoardTexture);
            CompRenderers[typeof(EnemyComp)]       = new EnemyRenderer(uxContext, game);
            CompRenderers[typeof(FOVComp)]         = new FOVRenderer(uxContext);
            CompRenderers[typeof(PlayerComp)]      = new PlayerRenderer(uxContext, game, gameConfig.PlayerRadius);
            CompRenderers[typeof(HealthComp)]      = new HealthRenderer(uxContext);
            CompRenderers[typeof(TimerComp)]       = new GameInfoRenderer(
                uxContext,
                gameContext,
                font,
                game.Floor,
                inGameTimeVisible: gameConfig.InGameTimeVisible,
                realTimeVisible: gameConfig.RealTimeVisible
                );
            CompRenderers[typeof(PopUpComp)] = new PopUpRenderer(uxContext, game, font);

            PlayerMovementEffectPlayer = new PlayerMovementEffectPlayer(uxContext, game);
            EffectPlayers.Add(new BounceEffectPlayer(uxContext, game));
            EffectPlayers.Add(new TorchPickedEffectPlayer(uxContext, game));
            EffectPlayers.Add(new MapRevealerPickedEffectPlayer(uxContext, game));
            EffectPlayers.Add(new FoodPickedEffectPlayer(uxContext, game));
            EffectPlayers.Add(new WinEffectPlayer(uxContext, game));
            EffectPlayers.Add(new EnemyCollidedEffectPlayer(uxContext, game));
            EffectPlayers.Add(new StairsUpEffectPlayer(uxContext, game));
            EffectPlayers.Add(new StairsDownEffectPlayer(uxContext, game));
            EffectPlayers.Add(new DeathEffectPlayer(uxContext, game));
        }
示例#4
0
        public override void Init(Game game)
        {
            Game = (RogueskivGame)game;

            var stairsComps = game.Entities.GetComponents <StairsComp>();

            UpStairsComp   = (UpStairsComp)stairsComps.FirstOrDefault(s => s is UpStairsComp);
            DownStairsComp = (DownStairsComp)stairsComps.FirstOrDefault(s => s is DownStairsComp);

            PlayerEntity = game
                           .Entities
                           .GetWithComponent <PlayerComp>()
                           .Single();

            PlayerPositionComp = PlayerEntity.GetComponent <CurrentPositionComp>();
        }
示例#5
0
        public override void Init(Game game)
        {
            Game = (RogueskivGame)game;

            BoardComp = Game.Entities.GetSingleComponent <BoardComp>();

            var player = Game
                         .Entities
                         .GetWithComponent <PlayerComp>()
                         .Single();

            PlayerId = player.Id;

            PlayerPosComp      = player.GetComponent <CurrentPositionComp>();
            PlayerHealthComp   = player.GetComponent <HealthComp>();
            PlayerMovementComp = player.GetComponent <MovementComp>();
        }
示例#6
0
        private GameEngine <EntityList> CreateGameStage(
            IGameResult <EntityList> result = null,
            int?gameSeed = null
            )
        {
            LoadingScreenRenderer.Render();

            var isFirstStage = result == null;

            if (isFirstStage)
            {
                SaveGlobalConfig();
            }

            if (gameSeed.HasValue)
            {
                GameContext.SetSeed(gameSeed.Value);
            }

            var gameConfig = YamlParser.ParseFile <RogueskivGameConfig>(AppConfig.GameModeFilesPath, AppConfig.GameMode);

            gameConfig.GameFPS    = GameContext.GameFPS;
            gameConfig.GameSeed   = GameContext.GameSeed;
            gameConfig.FloorCount = AppConfig.FloorCount;

            if (FloorEngines.Count == 0)
            {
                UxContext.PlayMusic(gameConfig.GameMusicFilePath, gameConfig.GameMusicVolume);
            }

            CurrentFloor = FloorEngines.Count + 1;
            var game      = new RogueskivGame(GameStageCodes.Game, gameConfig, CurrentFloor, result, OnGameEnd);
            var renderer  = new RogueskivRenderer(UxContext, GameContext, game, AppConfig, gameConfig);
            var userInput = new RogueskivInputHandler(UxContext, game, renderer);
            var engine    = new GameEngine <EntityList>(GameContext, userInput, game, renderer);

            FloorEngines.Add(engine);

            return(engine);
        }
示例#7
0
 public BounceEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "rock_hit")
 {
 }
示例#8
0
 public override void Init(Game game)
 {
     Game      = (RogueskivGame)game;
     BoardComp = game.Entities.GetSingleComponent <BoardComp>();
 }
示例#9
0
 public PopUpRenderer(UxContext uxContext, RogueskivGame game, IntPtr font)
     : base(uxContext, font) => Game = game;
示例#10
0
 protected EventEffectPlayer(UxContext uxContext, RogueskivGame game, string audioFilename)
     : base(uxContext, audioFilename) =>
示例#11
0
 public TorchPickedEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "torch_picked")
 {
 }
示例#12
0
 public StairsDownEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "stairs_down")
 {
 }
示例#13
0
 public EnemyCollidedEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "enemy_collided")
 {
 }
示例#14
0
 public WinEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "win")
 {
 }
示例#15
0
 public StairsUpEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "stairs_up")
 {
 }
示例#16
0
 public FoodPickedEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "food_picked")
 {
 }
示例#17
0
 public MapRevealerPickedEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "map_revealer_picked")
 {
 }
示例#18
0
 public DeathEffectPlayer(UxContext uxContext, RogueskivGame game)
     : base(uxContext, game, "death")
 {
 }