예제 #1
0
        public SelectScreen(Game game, Character character)
        {
            playerManager = (PlayerManager)game.Services.GetService(typeof(PlayerManager));
            map = (BattleMap)game.Services.GetService(typeof(BattleMap));
            selectedChar = character;

            const string usageText = "";
            this.message = message + usageText;
            if (selectedChar == null)
            {
                //this.message = "";
            }
            else
            {
                this.message += "LVL: " + selectedChar.Level + " "
                                + "HP: " + selectedChar.CurrentHealth + "/" + selectedChar.HealthPoints + " "
                                + "STR: " + selectedChar.Strength + " "
                                + "DEX: " + selectedChar.Dexterity + " "
                                + "INT: " + selectedChar.Intelligence + "\n"
                                + "PDEF: " + selectedChar.PDefense + " "
                                + "MDEF: " + selectedChar.MDefense + " "
                                + "EXP: " + selectedChar.Experience;
                if (selectedChar.CharType == "champion") message += " Gold: " + selectedChar.Gold;
            }
            IsPopup = true;

            TransitionOnTime = TimeSpan.FromSeconds(0.2);
            TransitionOffTime = TimeSpan.FromSeconds(0.2);
        }
예제 #2
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;
 }
예제 #3
0
파일: Character.cs 프로젝트: Raynd/XNA_RPG
 public Character(Game game, int xLoc, int yLoc)
     : base(game)
 {
     position = new Vector2(xLoc*60+12, yLoc*60+27);
     content = new ContentManager(game.Services, "Content");
     map = (BattleMap)game.Services.GetService(typeof(BattleMap));
     playerManager = (PlayerManager)game.Services.GetService(typeof(PlayerManager));
     currentHealth = Maxhealth;
     random = new RandomNumberGenerator();
 }
예제 #4
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));
 }
예제 #5
0
        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);
        }
예제 #6
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();
            }*/
        }
예제 #7
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;
        }