public Game1() { _graphics = new GraphicsDeviceManager(this); ScreenRectangle = new Rectangle( 0, 0, ScreenWidth, ScreenHeight); IsMouseVisible = true; Content.RootDirectory = "Content"; Components.Add(new InputHandler(this)); _gameStateManager = new GameStateManager(this); Components.Add(_gameStateManager); _ = new TextureManager(); TitleScreen = new TitleScreen(this, _gameStateManager); StartMenuScreen = new StartMenuScreen(this, _gameStateManager); GamePlayScreen = new GamePlayScreen(this, _gameStateManager); CharacterGeneratorScreen = new CharacterGeneratorScreen(this, _gameStateManager); SkillScreen = new SkillScreen(this, _gameStateManager); LoadGameScreen = new LoadGameScreen(this, _gameStateManager); ConversationScreen = new ConversationScreen(this, _gameStateManager); ShopScreen = new ShopState(this, _gameStateManager); InventoryScreen = new InventoryScreen(this, _gameStateManager); CombatScreen = new CombatScreen(this, _gameStateManager); _gameStateManager.ChangeState(TitleScreen); IsFixedTimeStep = false; _graphics.SynchronizeWithVerticalRetrace = false; }
/// <summary> /// 进入剧情战斗 /// </summary> /// <param name="roundMax">最多回合数,0为无限</param> /// <param name="monstersType">0-3 敌人</param> /// <param name="scr">0战斗背景,1左下角图,2右上角图</param> /// <param name="evtRnds">0-3 战斗中,触发事件的回合</param> /// <param name="evts">0-3 对应的事件号</param> /// <param name="lossto">战斗失败跳转的地址</param> /// <param name="winto">战斗成功跳转的地址</param> public void EnterStoryCombat(int roundMax, int[] monstersType, int[] scr, int[] evtRnds, int[] evts, int lossto, int winto) { IsRandomCombat = false; EnableRandomCombat = true; _storyCombat = new CombatScreen(Context, this); _storyCombat.EnterStoryCombat(roundMax, monstersType, scr, evtRnds, evts, lossto, winto); }
/// <summary> /// 初始化并开启随即战斗 /// </summary> /// <param name="monstersType">0-7 可能出现的敌人种类</param> /// <param name="scrb">战斗背景</param> /// <param name="scrl">左下角图</param> /// <param name="scrr">右上角图</param> public void InitRandomCombat(int[] monstersType, int scrb, int scrl, int scrr) { EnableRandomCombat = true; IsRandomCombat = true; _randomCombat = new CombatScreen(Context, this); _randomCombat.InitRandomCombat(monstersType, scrb, scrl, scrr); }
/// <summary> /// 退出当前战斗 /// </summary> public void ExitCurrentCombat(bool isWin) { if (IsRandomCombat) { if (!isWin) { // 死了,游戏结束 Context.ChangeScreen(ScreenEnum.SCREEN_MENU); } } else { //剧情战斗结束,设置成为随机战斗 IsRandomCombat = true; _storyCombat = null; } }
/// <summary> /// 战斗管理 /// </summary> public CombatManage(SimulatorContext context) : base(context) { _randomCombat = new CombatScreen(Context, this); }
public ActionExecutor(List <ActionBase> actionQueue, CombatScreen combat) { mActionQueue = actionQueue; mCombat = combat; }