コード例 #1
0
ファイル: ChampionOne.cs プロジェクト: Raynd/XNA_RPG
        public ChampionOne(Game1 game, int xLoc, int yLoc, int playerIndex)
            : base(game, xLoc, yLoc)
        {
            map = (BattleMap)game.Services.GetService(typeof(BattleMap));
            gameStateManager = (GameStateManager)game.Services.GetService(typeof(GameStateManager));
            screenManager = (ScreenManager)game.Services.GetService(typeof(ScreenManager));
            this.game = game;
            walk = new Texture2D[2];
            attack = new Texture2D[5];
            PlayerIndex = playerIndex;

            Initialize();
            LoadContent();

            this.Move(xLoc, yLoc);
            PlayerIndex = playerIndex;
            HasMoved = false;
            HasAttacked = false;
            Alive = true;
            CharType = "champion";
            MoveDistance = 4;
            HealthPoints = 50;
            Strength = 20;
            PDefense = 15;
            MDefense = 15;
            Dexterity = 10;
            AttackRange = 1;
            CurrentHealth = HealthPoints;
            Gold = 500;
            Level = 2;
            Experience = 0;
        }
コード例 #2
0
ファイル: LoadingScreen.cs プロジェクト: Raynd/XNA_RPG
        /// <summary>
        /// The constructor is private: loading screens should
        /// be activated via the static Load method instead.
        /// </summary>
        private LoadingScreen(ScreenManager screenManager, bool loadingIsSlow,
                              GameScreen[] screensToLoad)
        {
            this.loadingIsSlow = loadingIsSlow;
            this.screensToLoad = screensToLoad;

            TransitionOnTime = TimeSpan.FromSeconds(0.5);
        }
コード例 #3
0
ファイル: OpponentAI.cs プロジェクト: Raynd/XNA_RPG
 public OpponentAI(Game game)
     : base(game)
 {
     playerManager = (PlayerManager)game.Services.GetService(typeof(PlayerManager));
     map = (BattleMap)game.Services.GetService(typeof(BattleMap));
     charList = (List<Character>)game.Services.GetService(typeof(List<Character>));
     screenManager = (ScreenManager)game.Services.GetService(typeof(ScreenManager));
     gameStateManager = (GameStateManager)game.Services.GetService(typeof(GameStateManager));
     this.game = game;
 }
コード例 #4
0
ファイル: EndingScreen.cs プロジェクト: Raynd/XNA_RPG
        public EndingScreen(Game game)
            : base("")
        {
            this.game = game;

            screenManager = (ScreenManager)game.Services.GetService(typeof(ScreenManager));
            MenuEntry exit = new MenuEntry("Exit Game");

            exit.Selected += ExitSelected;

            MenuEntries.Add(exit);
        }
コード例 #5
0
ファイル: Cursor.cs プロジェクト: Raynd/XNA_RPG
 public Cursor(Game game)
     : base(game)
 {
     pos = new Vector2(20, 0);
     this.game = game;
     Initialize();
     LoadContent();
     map = (BattleMap)game.Services.GetService(typeof(BattleMap));
     currentTile = SelectTile(0, 0);
     screenManager = (ScreenManager)game.Services.GetService(typeof(ScreenManager));
     gameStateManager = (GameStateManager)game.Services.GetService(typeof(GameStateManager));
     playerManager = (PlayerManager)game.Services.GetService(typeof(PlayerManager));
 }
コード例 #6
0
ファイル: LoadingScreen.cs プロジェクト: Raynd/XNA_RPG
        /// <summary>
        /// Activates the loading screen.
        /// </summary>
        public static void Load(ScreenManager screenManager, bool loadingIsSlow,
                                PlayerIndex? controllingPlayer,
                                params GameScreen[] screensToLoad)
        {
            // Tell all the current screens to transition off.
            foreach (GameScreen screen in screenManager.GetScreens())
                screen.ExitScreen();

            // Create and activate the loading screen.
            LoadingScreen loadingScreen = new LoadingScreen(screenManager,
                                                            loadingIsSlow,
                                                            screensToLoad);

            screenManager.AddScreen(loadingScreen, controllingPlayer);
        }
コード例 #7
0
ファイル: PopupScreen.cs プロジェクト: Raynd/XNA_RPG
        public PopupScreen(Game game, Character character)
        {
            cursor = (Cursor)game.Services.GetService(typeof(Cursor));
            playerManager = (PlayerManager)game.Services.GetService(typeof(PlayerManager));
            screenManager = (ScreenManager)game.Services.GetService(typeof(ScreenManager));
            map = (BattleMap)game.Services.GetService(typeof(BattleMap));
            gameStateManager = (GameStateManager)game.Services.GetService(typeof(GameStateManager));

            selectedChar = character;
            selectScreen = new SelectScreen(game, character);
            screenManager.AddScreen(selectScreen, null);

            const string usageText = "A: Move" + "\nX: Attack" + "\nStart: End Turn" + "\nB: Cancel";
            this.message = message + usageText;
            if (selectedChar == null)
            {
                this.message = "Start: End Turn" + "\nB: Cancel";
            }
            else if (selectedChar.CharType == "champion")
            {
                this.message += "\nY: Buy Mercenary";
            }
            IsPopup = true;

            TransitionOnTime = TimeSpan.FromSeconds(0.2);
            TransitionOffTime = TimeSpan.FromSeconds(0.2);

                menuMove = new InputAction(
                    new Buttons[] { Buttons.A },
                    new Keys[] { Keys.A },
                    true);
                menuAttack = new InputAction(
                    new Buttons[] { Buttons.X, },
                    new Keys[] { Keys.X },
                    true);
                menuCancel = new InputAction(
                    new Buttons[] { Buttons.B, },
                    new Keys[] { Keys.B },
                    true);
                menuEndTurn = new InputAction(
                    new Buttons[] { Buttons.Start, },
                    new Keys[] { Keys.Enter },
                    true);
                menuBuy = new InputAction(
                    new Buttons[] { Buttons.Y, },
                    new Keys[] { Keys.Y },
                    true);
        }
コード例 #8
0
ファイル: BuyScreen.cs プロジェクト: Raynd/XNA_RPG
        public BuyScreen(Game game, Character character)
            : base("Hire a Mercenary")
        {
            cursor = (Cursor)game.Services.GetService(typeof(Cursor));
            playerManager = (PlayerManager)game.Services.GetService(typeof(PlayerManager));
            map = (BattleMap)game.Services.GetService(typeof(BattleMap));
            charList = (List<Character>)game.Services.GetService(typeof(List<Character>));
            screenManager = (ScreenManager)game.Services.GetService(typeof(ScreenManager));
            champion = character;
            this.game = game;

            MenuEntry buyKnight = new MenuEntry("Hire Knight, Cost: 100");
            MenuEntry buyRanger = new MenuEntry("Hire Ranger, Cost: 100");
            MenuEntry buyBarbarian = new MenuEntry("Hire Barbarian, Cost: 100");
            MenuEntry buyMage = new MenuEntry("Hire Mage, Cost: 150");
            MenuEntry buyPriest = new MenuEntry("Hire Spirit Priest, Cost: 150");
            MenuEntry cancel = new MenuEntry("Cancel");
            gameStateManager = (GameStateManager)game.Services.GetService(typeof(GameStateManager));

            gameStateManager.State = GameState.buying;
            // Hook up menu event handlers.
            buyKnight.Selected += buyKnightSelected;
            buyRanger.Selected += buyRangerSelected;
            buyBarbarian.Selected += buyBarbarianSelected;
            buyMage.Selected += buyMageSelected;
            buyPriest.Selected += buyPriestSelected;
            cancel.Selected += cancelSelected;

            // Add entries to the menu.
            MenuEntries.Add(buyKnight);
            MenuEntries.Add(buyRanger);
            MenuEntries.Add(buyBarbarian);
            MenuEntries.Add(buyMage);
            MenuEntries.Add(buyPriest);
            MenuEntries.Add(cancel);

            /*if (aiFlag == true)
            {
                BuyRandom();
            }*/
        }
コード例 #9
0
ファイル: Game1.cs プロジェクト: Raynd/XNA_RPG
        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";

            Services.AddService(typeof(List<Character>), charList);
            gameStateManager = new GameStateManager();
            gameStateManager.State = GameState.mainMenu;
            Services.AddService(typeof(GameStateManager), gameStateManager);

            screenManager = new ScreenManager(this);
            Components.Add(screenManager);
            Services.AddService(typeof(ScreenManager), screenManager);

            screenManager.AddScreen(new OptionsScreen(this), null);

            playerManager = new PlayerManager(this);
            Services.AddService(typeof(PlayerManager), playerManager);

            AddInitialScreens();

            graphics.PreferredBackBufferWidth = 1280;
            graphics.PreferredBackBufferHeight = 720;
        }