예제 #1
0
        /// <summary>
        /// Initialize
        /// </summary>
        /// <returns>True if successful</returns>
        public bool Initialize()
        {
            assets.LoadAll();

            if (!LoadMap())
            {
                return(false);
            }

            RB.MusicVolumeSet(0.5f);
            RB.MusicPlay(assets.musicGame);

            SceneTitle scene = new SceneTitle();

            scene.Initialize();

            SwitchScene(scene);

            RB.EffectSet(RB.Effect.Scanlines, 0.25f);
            RB.EffectSet(RB.Effect.Noise, 0.05f);

            if (!mStandalone)
            {
                RB.PresentDisable();
            }

            return(true);
        }
예제 #2
0
        /// <summary>
        /// Enter the scene
        /// </summary>
        /// <param name="parameters">Scene parameters</param>
        public override void Enter(object parameters)
        {
            mResultSet = new ResultSet();

            RB.MusicPlay(C.MUSIC_MAIN_MENU);
            RB.MusicVolumeSet(1.0f);
        }
예제 #3
0
        /// <summary>
        /// Enter the scene
        /// </summary>
        /// <param name="parameters">Scene parameters</param>
        public override void Enter(object parameters)
        {
            var game = (RetroDungeoneerGame)RB.Game;

            mResultSet = new ResultSet();

            RB.MusicPlay(game.assets.musicMainMenu);
            RB.MusicVolumeSet(1.0f);
        }
예제 #4
0
        /// <summary>
        /// Enter the scene
        /// </summary>
        /// <param name="parameters">Scene parameters</param>
        public override void Enter(object parameters)
        {
            mGameReady = false;

            var enterParams = (EnterParameters)parameters;

            mResultSet = new ResultSet();
            mConsole   = new Console(new Vector2i((int)(RB.DisplaySize.width * 0.66f), RB.DisplaySize.height / 3));

            if (enterParams.testMap)
            {
                InitializeNewGame.SetupTestGameVariables(ref mPlayer, ref mGameMap);
                mGameState  = GameState.PLAYER_TURN;
                mGameReady  = true;
                mSaveOnExit = true;
            }
            else if (enterParams.savedFilename == null)
            {
                InitializeNewGame.SetupGameVariables(ref mPlayer, ref mGameMap);
                mGameState  = GameState.PLAYER_TURN;
                mGameReady  = true;
                mSaveOnExit = true;
            }
            else
            {
                var ret = DataLoaders.LoadGame(enterParams.savedFilename, ref mPlayer, ref mGameMap, ref mGameState, mConsole);
                if (ret == false)
                {
                    return;
                }
                else
                {
                    mGameReady  = true;
                    mSaveOnExit = true;
                }
            }

            mFOVRecompute = true;
            mFloodMap     = new FloodMap(mGameMap.size);

            mCamera.SetPos(mPlayer);
            ChangeState(GameState.PLAYER_TURN);

            mConsole.Log(C.FSTR.Set("Welcome! Press H for help."));

            RB.MusicPlay(mGameMap.music);
            mCurrentMusic = mGameMap.music;

            RB.MusicVolumeSet(0.75f);

            // If some key is down when entering scene then lock input until all keys are up. This prevents
            // the player accidentally moving
            if (RB.AnyKeyDown())
            {
                mInputLocked = true;
            }
        }
예제 #5
0
        /// <summary>
        /// Initialize
        /// </summary>
        /// <returns>True if successful</returns>
        public bool Initialize()
        {
            RB.SpriteSheetSetup(SPRITESHEET_SPRITES, "Demos/SuperFlagRun/Sprites", new Vector2i(16, 16));
            RB.SpriteSheetSetup(SPRITESHEET_TITLE, "Demos/SuperFlagRun/SpritesTitle", new Vector2i(16, 16));
            RB.SpriteSheetSetup(SPRITESHEET_TERRAIN, "Demos/SuperFlagRun/TilemapTerrain", new Vector2i(16, 16));
            RB.SpriteSheetSetup(SPRITESHEET_DECO, "Demos/SuperFlagRun/TilemapDeco", new Vector2i(16, 16));

            RB.SpriteSheetSet(SPRITESHEET_SPRITES);

            RB.FontSetup(GAME_FONT, 'A', 'Z', new Vector2i(0, 130), 0, new Vector2i(12, 12), 6, 1, -1, false);

            if (!LoadMap())
            {
                return(false);
            }

            RB.SoundSetup(SOUND_JUMP, "Demos/SuperFlagRun/Jump");
            RB.SoundSetup(SOUND_PICKUP_FLAG, "Demos/SuperFlagRun/Pickup");
            RB.SoundSetup(SOUND_DROP_FLAG, "Demos/SuperFlagRun/DropFlag");
            RB.SoundSetup(SOUND_START_GAME, "Demos/SuperFlagRun/StartGame");
            RB.SoundSetup(SOUND_FOOT_STEP, "Demos/SuperFlagRun/FootStep");

            RB.MusicSetup(0, "Demos/SuperFlagRun/Music/GoLucky");
            RB.MusicVolumeSet(0.5f);
            RB.MusicPlay(0);

            SceneTitle scene = new SceneTitle();

            scene.Initialize();

            SwitchScene(scene);

            RB.EffectSet(RB.Effect.Scanlines, 0.25f);
            RB.EffectSet(RB.Effect.Noise, 0.05f);

            if (!mStandalone)
            {
                RB.PresentDisable();
            }

            return(true);
        }
예제 #6
0
        /// <summary>
        /// Kill the player
        /// </summary>
        /// <param name="resultSet">Result</param>
        /// <param name="player">Player entity</param>
        public static void KillPlayer(ResultSet resultSet, EntityID player)
        {
            var pe = player.e;

            pe.sprite = S.GRAVESTONE;
            pe.color  = new Color32(200, 200, 200, 255);
            C.FSTR.Set(pe.name);
            pe.name.Set("grave of ").Append(C.FSTR);
            pe.renderOrder = RenderFunctions.RenderOrder.CORPSE;

            // Delete all equipment, this prevents paperDoll rendering on the grave
            pe.equipment = null;

            resultSet.AddMessage(C.FSTR.Set("You ").Append(C.STR_COLOR_DEAD).Append("@w145died@w000@-!"));

            RB.SoundPlay(C.SOUND_PLAYER_DEATH, 1.0f);
            RB.MusicVolumeSet(1.0f);
            RB.MusicPlay(C.MUSIC_DEATH);

            EffectManager.Instance.AddEffect(new EffectPlayerDeath(player));
        }
예제 #7
0
        /// <summary>
        /// Initialize your game here.
        /// </summary>
        /// <returns>Return true if successful</returns>
        public bool Initialize()
        {
            // You can load a spritesheet here
            RB.SpriteSheetSetup(0, "Demos/BrickBust/Sprites", new Vector2i(10, 10));
            RB.SpriteSheetSet(0);

            mMainMenu = new MainMenu();

            RB.EffectSet(RB.Effect.Scanlines, 0.2f);
            RB.EffectSet(RB.Effect.Noise, 0.01f);

            RB.ShaderSetup(C.SHADER_SHADOW, "Demos/BrickBust/DrawShaderShadow");
            RB.ShaderSpriteSheetTextureSet(C.SHADER_SHADOW, "_SpritesTexture", 0);

            RB.SoundSetup(C.SOUND_HIT_BRICK, "Demos/BrickBust/Sounds/hit");
            RB.SoundSetup(C.SOUND_HIT_WALL, "Demos/BrickBust/Sounds/hit2");
            RB.SoundSetup(C.SOUND_EXPLODE, "Demos/BrickBust/Sounds/explode");
            RB.SoundSetup(C.SOUND_DEATH, "Demos/BrickBust/Sounds/death");
            RB.SoundSetup(C.SOUND_START, "Demos/BrickBust/Sounds/start");
            RB.SoundSetup(C.SOUND_POWERUP, "Demos/BrickBust/Sounds/powerup");
            RB.SoundSetup(C.SOUND_LASERSHOT, "Demos/BrickBust/Sounds/lasershot");
            RB.SoundSetup(C.SOUND_LASERHIT, "Demos/BrickBust/Sounds/laserhit");

            RB.MusicSetup(C.MENU_MUSIC, "Demos/BrickBust/Music/BossFight");
            RB.MusicSetup(C.LEVEL_MUSIC, "Demos/BrickBust/Music/Stage2");

            RB.MusicVolumeSet(0.4f);

            LevelDef.Initialize();

            ChangeState(GameState.MAIN_MENU);

            if (UnityEngine.Application.isMobilePlatform)
            {
                C.ACTION_VERB = "TAP";
            }

            return(true);
        }
예제 #8
0
        /// <summary>
        /// Initialize your game here.
        /// </summary>
        /// <returns>Return true if successful</returns>
        public bool Initialize()
        {
            assets.LoadAll();

            mMainMenu = new MainMenu();

            RB.EffectSet(RB.Effect.Scanlines, 0.2f);
            RB.EffectSet(RB.Effect.Noise, 0.01f);

            RB.MusicVolumeSet(0.4f);

            LevelDef.Initialize();

            ChangeState(GameState.MAIN_MENU);

            if (UnityEngine.Application.isMobilePlatform)
            {
                Global.ACTION_VERB = "TAP";
            }

            return(true);
        }
예제 #9
0
        /// <summary>
        /// Update
        /// </summary>
        public override void Update()
        {
            var demo = (DemoReel)RB.Game;

            for (int i = mFadeSounds.Count - 1; i >= 0; i--)
            {
                var soundRef = mFadeSounds[i];
                RB.SoundVolumeSet(soundRef, RB.SoundVolumeGet(soundRef) * 0.75f);

                if (RB.SoundVolumeGet(soundRef) < 0.01f)
                {
                    mFadeSounds.RemoveAt(i);
                }
            }

            if (!RB.MusicIsPlaying())
            {
                mMusicTurnSpeed--;
                if (mMusicTurnSpeed < 0)
                {
                    mMusicTurnSpeed = 0;
                }
            }

            mMusicTicks += mMusicTurnSpeed;

            for (int i = 0; i < mPianoButtons.Length; i++)
            {
                mPianoButtons[i].Update();
                if (mPianoButtons[i].Pressed)
                {
                    break;
                }
            }

            for (int i = 0; i < mEffectButtons.Length; i++)
            {
                mEffectButtons[i].Update();
                if (mEffectButtons[i].Pressed)
                {
                    break;
                }
            }

            mMusicPlayButton.Update();
            mPositionalButton.Update();

            mNextButton.Update();
            mPrevButton.Update();

            int color = 1;

            if ((RB.Ticks % 200 > 170 && RB.Ticks % 200 < 180) || (RB.Ticks % 200) > 190)
            {
                color = 5;
            }

            mNextButton.LabelColor = color;
            mPrevButton.LabelColor = color;

            if (RB.ButtonPressed(RB.BTN_SYSTEM))
            {
                Application.Quit();
            }

            mListenerPos = new Vector2i(330 + (Mathf.Sin(mPositionalTicks / 50.0f) * 100), (RB.DisplaySize.height / 2) + 32);

            if (mPositionalPlaying)
            {
                mSoundPos = RB.PointerPos();
                RB.SoundPosSet(mPosSoundRef, mSoundPos);
            }

            RB.SoundListenerPosSet(mListenerPos);

            var positionalVol = RB.SoundVolumeGet(mPosSoundRef);

            // Change music volume to inverse of waterfall volume
            if (demo.IsMusicPlaying())
            {
                RB.MusicVolumeSet((1.0f - positionalVol) * demo.MusicVolume());
            }

            if (mPositionalPlaying)
            {
                mPositionalTicks++;

                positionalVol += 0.05f;
                if (positionalVol > 1)
                {
                    positionalVol = 1;
                }

                RB.SoundVolumeSet(mPosSoundRef, positionalVol);
            }
            else
            {
                positionalVol -= 0.05f;
                if (positionalVol < 0)
                {
                    positionalVol = 0;
                }

                RB.SoundVolumeSet(mPosSoundRef, positionalVol);
            }

            UpdateMusicButtonLabel();
            UpdatePositionalButtonLabel();
        }
예제 #10
0
 /// <summary>
 /// Play music
 /// </summary>
 public void MusicPlay()
 {
     RB.MusicVolumeSet(MusicVolume());
     RB.MusicPlay(mMusic);
     mMusicIsPlaying = true;
 }
예제 #11
0
 /// <summary>
 /// Play music
 /// </summary>
 public void MusicPlay()
 {
     RB.MusicVolumeSet(1);
     RB.MusicPlay(0);
     mMusicOn = true;
 }