Inheritance: MonoBehaviour
Exemple #1
0
    public void Init()
    {
        systems = new List <IGameSystem>();

        achievementSystem = new AchievementSystem();
        campSystem        = new CampSystem();
        CharacterSystem   = new CharacterSystem();
        EnergySystem      = new EnergySystem();
        EventSystem       = new GameEventSystem();
        StageSystem       = new StageSystem();

        CampInfoUI      = new CampInfoUI();
        gamePauseUI     = new GamePauseUI();
        GameStateInfoUI = new GameStateInfoUI();
        soldierInfoUI   = new SoldierInfoUI();

        systems.Add(achievementSystem);
        systems.Add(campSystem);
        systems.Add(CharacterSystem);
        systems.Add(EnergySystem);
        systems.Add(EventSystem);
        systems.Add(StageSystem);

        systems.Add(CampInfoUI);
        systems.Add(gamePauseUI);
        systems.Add(GameStateInfoUI);
        systems.Add(soldierInfoUI);

        systems.ForEach(s => s.Init());


        var memento = CareTaker.RetrieveMemento(); //取回备忘录

        achievementSystem.RestoreMemento(memento); //根据备忘录,恢复成就系统
    }
Exemple #2
0
        public MainWindow()
        {
            InitializeComponent();
            AchievementSystem.Load();

            // which window size is used?

            /*
             * if (Styles.WindowSizeGenerator.windowSize == "Maximum")
             * {
             *  this.WindowState = WindowState.Maximized;
             *  this.ResizeMode = System.Windows.ResizeMode.NoResize;
             *  this.WindowStyle = System.Windows.WindowStyle.None;
             *  //this.Topmost = true;
             * }
             * else
             * {
             *  this.WindowState = WindowState.Normal;
             * }*/

            /*
             * this.MinHeight = Styles.WindowSizeGenerator.mainWindowMinHeight;
             * this.MinWidth = Styles.WindowSizeGenerator.mainWindowMinWidth;
             * this.Height = this.MinHeight;
             * this.Width = this.MinWidth;
             */

            // show navigation page first
            NavigationPage firstPage = new NavigationPage();

            firstPage.holderWin = this;
            this.Navigate(firstPage);
        }
	// 初始P-BaseDefense遊戲相關設定
	public void Initinal()
	{
		// 場景狀態控制
		m_bGameOver = false;
		// 遊戲系統
		m_GameEventSystem = new GameEventSystem(this);	// 遊戲事件系統
		m_CampSystem = new CampSystem(this);			// 兵營系統
		m_StageSystem = new StageSystem(this);			// 關卡系統
		m_CharacterSystem = new CharacterSystem(this); 	// 角色管理系統
		m_ApSystem = new APSystem(this);				// 行動力系統
		m_AchievementSystem = new AchievementSystem(this); // 成就系統
		// 界面
		m_CampInfoUI = new CampInfoUI(this); 			// 兵營資訊
		m_SoldierInfoUI = new SoldierInfoUI(this); 		// Soldier資訊									
		m_GameStateInfoUI = new GameStateInfoUI(this); 	// 遊戲資料
		m_GamePauseUI = new GamePauseUI (this);			// 遊戲暫停

		// 注入到其它系統
		EnemyAI.SetStageSystem( m_StageSystem );

		// 載入存檔
		LoadData();

		// 註冊遊戲事件系統
		ResigerGameEvent();
	}
Exemple #4
0
    //最好先Awake, 再Init. Awake中初始化数据, Init中再new对象之类的
    //不然部分new对象比较分散的,就不好给System初始化进行排序,有耦合。比如EventSubject
    public void Init()
    {
        m_AchievementSystem = new AchievementSystem();
        m_CampSystem        = new CampSystem();
        m_CharactorSystem   = new CharacterSystem();
        m_EnergySystem      = new EnergySystem();
        m_GameEventSystem   = new GameEventSystem();
        m_StageSystem       = new StageSystem();
        m_FileDataSystem    = new FileDataSystem();


        m_CampInfoUI      = new CampInfoUI();
        m_GamePauseUI     = new GamePauseUI();
        m_GameStateInfoUI = new GameStateInfoUI();
        m_SolderInfoUI    = new SoldierInfoUI();

        m_FileDataSystem.Init();
        m_AchievementSystem.Init();
        m_CampSystem.Init();
        m_CharactorSystem.Init();
        m_EnergySystem.Init();
        m_GameEventSystem.Init();
        m_StageSystem.Init();

        m_CampInfoUI.Init();
        m_GamePauseUI.Init();
        m_GameStateInfoUI.Init();
        m_SolderInfoUI.Init();
        LoadMemento();
    }
Exemple #5
0
    // 初始P-BaseDefense游戏相关设定
    public void Initinal()
    {
        // 场景状态控制
        m_bGameOver = false;
        // 游戏系统
        m_GameEventSystem   = new GameEventSystem(this);   // 游戏事件系统
        m_CampSystem        = new CampSystem(this);        // 兵营系统
        m_StageSystem       = new StageSystem(this);       // 关卡系统
        m_CharacterSystem   = new CharacterSystem(this);   // 角色管理系统
        m_ApSystem          = new APSystem(this);          // 行动力系统
        m_AchievementSystem = new AchievementSystem(this); // 成就系统
                                                           // 界面
        m_CampInfoUI      = new CampInfoUI(this);          // 兵营信息
        m_SoldierInfoUI   = new SoldierInfoUI(this);       // Soldier信息
        m_GameStateInfoUI = new GameStateInfoUI(this);     // 游戏资料
        m_GamePauseUI     = new GamePauseUI(this);         // 游戏暂停

        // 注入到其它系统
        EnemyAI.SetStageSystem(m_StageSystem);

        // 载入存档
        LoadData();

        // 注册游戏事件系统
        ResigerGameEvent();
    }
Exemple #6
0
    public void Init()
    {
        mCampSystem         = new CampSystem();
        mCharacterSystem    = new CharacterSystem();
        mEnergySystem       = new EnergySystem();
        mGameEventSystem    = new GameEventSystem();
        mStageSystem        = new StageSystem();
        mArchievementSystem = new AchievementSystem();

        mCampInfoUI      = new CampInfoUI();
        mGamePauseUI     = new GamePauseUI();
        mGameStateInfoUI = new GameStateInfoUI();
        mSoldierInfoUI   = new SoldierInfoUI();

        mCampSystem.Init();
        mCharacterSystem.Init();
        mEnergySystem.Init();
        mGameEventSystem.Init();
        mStageSystem.Init();
        mArchievementSystem.Init();

        mCampInfoUI.Init();
        mGamePauseUI.Init();
        mGameStateInfoUI.Init();
        mSoldierInfoUI.Init();

        LoadMemento();//加载快照数据
    }
Exemple #7
0
        /// <summary>
        /// 生成新游戏
        /// </summary>
        /// <param name="user">用户名</param>
        /// <param name="controller">控制器</param>
        /// <param name="withItem">是否启用道具</param>
        /// <returns></returns>
        public TetrisGame NewGame(string user = "", IController controller = null, bool withItem = true)
        {
            var            id = games.Count;
            ITetrisFactory factory;

            if (withItem)
            {
                factory = new CacheFactory(Square.Styles(styles), ran);
                (factory as TetrisItemFactory).GenSpecialBlock = true;
            }
            else
            {
                factory = new TetrisFactory(Square.Styles(styles), ran);
            }

            // use AdvancedGUI.Styles.WindowSizeGenerator to set the game size! shuo han

            int gameWidth  = AdvancedGUI.Styles.WindowSizeGenerator.gameWidth;
            int gameHeight = AdvancedGUI.Styles.WindowSizeGenerator.gameHeight;

            var game = new TetrisGame(id, Square.Styles(styles), _engine, factory, gameWidth, gameHeight, Settings.Default.DefaultSpeed);

            game.SetController(controller);
            ItemSystem.Bind(game);
            ScoreSystem.Bind(game);
            AchievementSystem.Bind(game, user);
            games[id] = game;
            return(game);
        }
Exemple #8
0
    private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        Debug.Log("Scene was loaded: " + SceneManager.GetActiveScene().name);

        if (IsExitOutro()) // If the level is about to exit, nothing of the normal stuff should happen
        {
            fade_obj.SetActive(false);
            exit_outro = false;
            GameObject.Find("MainMenu").GetComponent <GUI>().MenuIntro();
            Destroy(gameObject);
            return;
        }

        character      = GameObject.Find("Character");
        c_script       = character.GetComponent <CharacterControllerScript>();
        elevator_level = (character.GetComponent <Rigidbody>().position.y > 0.5f) ? 1 : 0;
        elevators      = GameObject.FindGameObjectsWithTag("Elevator");

        if (IsResetFade())
        {
            return;                // If a reset is in progress, all fading and intro stuff is aborted
        }
        level_intro         = true;
        transition_progress = 0;

        fade_script = fade_obj.GetComponent <Fade>();
        fade_obj.SetActive(true);
        fade_script.StartFade(INTRO_FADE_SPEED, -1);

        achievement_script = achievement.GetComponent <AchievementSystem>();
    }
    // 初始P-BaseDefense遊戲相關設定
    public void Initinal()
    {
        // 場景狀態控制
        m_bGameOver = false;
        // 遊戲系統
        m_GameEventSystem   = new GameEventSystem(this);        // 遊戲事件系統
        m_CampSystem        = new CampSystem(this);             // 兵營系統
        m_StageSystem       = new StageSystem(this);            // 關卡系統
        m_CharacterSystem   = new CharacterSystem(this);        // 角色管理系統
        m_ApSystem          = new APSystem(this);               // 行動力系統
        m_AchievementSystem = new AchievementSystem(this);      // 成就系統
        // 界面
        m_CampInfoUI      = new CampInfoUI(this);               // 兵營資訊
        m_SoldierInfoUI   = new SoldierInfoUI(this);            // Soldier資訊
        m_GameStateInfoUI = new GameStateInfoUI(this);          // 遊戲資料
        m_GamePauseUI     = new GamePauseUI(this);              // 遊戲暫停

        // 注入到其它系統
        EnemyAI.SetStageSystem(m_StageSystem);

        // 載入存檔
        LoadData();

        // 註冊遊戲事件系統
        ResigerGameEvent();
    }
Exemple #10
0
 public void Initinal()
 {
     isGameOver        = false;
     apSystem          = new APSystem(this);
     campSystem        = new CampSystem(this);
     stageSystem       = new StageSystem(this);
     gameEventSystem   = new GameEventSystem(this);
     characterSystem   = new CharacterSystem(this);
     achievementSystem = new AchievementSystem(this);
 }
    // Start is called before the first frame update
    void Start()
    {
        game_master_script = GameObject.Find("GameMaster").GetComponent <GameMasterScript>();

        achievement_script = achievement.GetComponent <AchievementSystem>();
        CheckSteps();

        fade_obj    = game_master_script.fade_obj;
        fade_script = fade_obj.GetComponent <Fade>();
        fade_obj.SetActive(false);
        quit_to_menu = false;
    }
        // Load Highest Records
        private void highest_Loaded(object sender, RoutedEventArgs e)
        {
            // read the achievements from AchievementSystem
            AchievementSystem.UpdateHighest();
            HighestScore.Content      = AchievementSystem.AchievementState.HighestScoreGlobal;
            MostTotalClearBar.Content = AchievementSystem.AchievementState.HighestTotalClearBarGlobal;
            var hsname   = AchievementSystem.AchievementState.HighestScoreUser.Aggregate("", (current, str) => current + str + " ");
            var htcbname = AchievementSystem.AchievementState.HighestTotalClearBarUser.Aggregate("", (current, str) => current + str + " ");

            HighestScoreName.Content      = hsname;
            MostTotalClearBarName.Content = htcbname;
        }
Exemple #13
0
        public void Show(AchievementScriptable achievement, bool showDescription = false)
        {
            AchievementModel fillInfo = achievement.Data;

            if (!showDescription)
            {
                fillInfo.Description = string.Empty;
            }
            achievementIcon = achievement.Icon;
            Initialize();
            AchievementSystem.ShowNotification(this, fillInfo);
        }
    private System.Collections.IEnumerator Start()
    {
        MidGameSaver.Initialize();
        ScoreCounter.Initialize();
        AchievementSystem.Initialize();
        Pause.Initialize();

        DOTween.Init();

        Destroy(gameObject);
        yield break;
    }
Exemple #15
0
        public AchievementGump(PlayerMobile pm, PlayerMobile subject)
            : base(pm, 50, 50)
        {
            pm.CloseGump(typeof(AchievementGump));

            Subject    = subject;
            SearchName = "Search";

            Profile = subject != null?AchievementSystem.GetProfile(subject) : AchievementSystem.GetProfile(pm);

            Index = Profile.GetTypeIndex(Profile.FilterType);
        }
    public static void Initialize()
    {
        if (Instance == null)
        {
            Instance = new AchievementSystem();

            Instance.AddAchievementsHere();
            Instance.LoadAchievements();

            // Temp test
            //Instance.ResetAchievements();
        }
    }
Exemple #17
0
 /// <summary>
 /// 初始化
 /// </summary>
 public void Initinal()
 {
     //场景状态控制
     m_bGameOver = false;
     //游戏系统
     m_GameEventSystem   = new GameEventSystem(this);
     m_CampSystem        = new CampSystem(this);
     m_StageSystem       = new StageSystem(this);
     m_CharacterSystem   = new CharacterSystem(this);
     m_ApSystem          = new APSystem(this);
     m_AchievementSystem = new AchievementSystem(this);
     //...
 }
 private void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this.gameObject);
         return;
     }
     else
     {
         instance = this;
     }
     DontDestroyOnLoad(this.gameObject);
 }
Exemple #19
0
        public void TestPerfectGroup_ReturnsTrue_WhenAllGroupMatchesAndBothQualifiersAreCorrect()
        {
            string userBet       = @"[stage-one]
winners = [ [ ""Germany"", ""Algerie"",], ]
";
            string actualResults = @"[stage-one]
winners = [ [ ""Brasil"", ""Mexico"",], ]
";
            var    user          = new Results(userBet.ParseAsToml());
            var    actual        = new Results(actualResults.ParseAsToml());

            var a = new AchievementSystem(user, actual);
        }
Exemple #20
0
        public void TestAchievements_ShouldContainBronse_WhenBronseFinalWinnerIsCorrect()
        {
            string userBet       = @"[finals]
bronse-final = ""Brasil""
";
            string actualResults = @"[finals]
bronse-final = ""Brasil""
";
            var    user          = new Results(userBet.ParseAsToml());
            var    actual        = new Results(actualResults.ParseAsToml());

            var a = new AchievementSystem(user, actual);

            a.Achievements.ShouldContain(a.AchievementRepo[AchievementTypes.Bronze]);
        }
Exemple #21
0
        public void TestAchievements_ShouldContainGold_WhenFinalWinnerIsCorrect()
        {
            string userBet       = @"[finals]
final = ""Tyskland""
";
            string actualResults = @"[finals]
final = ""Tyskland""
";
            var    user          = new Results(userBet.ParseAsToml());
            var    actual        = new Results(actualResults.ParseAsToml());

            var a = new AchievementSystem(user, actual);

            a.Achievements.ShouldContain(a.AchievementRepo[AchievementTypes.Gold]);
        }
Exemple #22
0
        private void UnlocksTooltip(Achievement achievement)
        {
            var lines = new string[achievement.Unlocks.Length + 1];

            lines[0] = "Unlocks:";

            for (int i = 0; i < achievement.Unlocks.Length; i++)
            {
                var locked = AchievementSystem.GetAchievement(achievement.Unlocks[i]);

                lines[i + 1] = locked != null?locked.Name.ToString() : string.Empty;
            }

            AddTooltip(lines);
        }
Exemple #23
0
        public void TestAchievements_ShouldContainSweet16_WhenEveryRound16WinnerIsCorrect()
        {
            string userBet       = @"[stage-two]
round-of-16 = [ ""Brasil"", ""Nederland"", ""Colombia"", ]
";
            string actualResults = @"[stage-two]
round-of-16 = [ ""Brasil"", ""Nederland"", ""Colombia"", ]
";
            var    user          = new Results(userBet.ParseAsToml());
            var    actual        = new Results(actualResults.ParseAsToml());

            var a = new AchievementSystem(user, actual);

            a.Achievements.ShouldContain(a.AchievementRepo[AchievementTypes.Sweet16]);
        }
Exemple #24
0
        public void TestAchievements_ShouldNotContainQuarterback_WhenAtLeastOneQuarterFinalWinnerIsWrong()
        {
            string userBet       = @"[stage-two]
quarter-final = [ ""Brasil"", ""Nederland"", ""Tyskland"", ""Frankrike"",]
";
            string actualResults = @"[stage-two]
quarter-final = [ ""Brasil"", ""Nederland"", ""Tyskland"", ""Argentina"",]
";
            var    user          = new Results(userBet.ParseAsToml());
            var    actual        = new Results(actualResults.ParseAsToml());

            var a = new AchievementSystem(user, actual);

            a.Achievements.ShouldNotContain(a.AchievementRepo[AchievementTypes.Quarterback]);
        }
Exemple #25
0
 void CreateBetterlist(List <string> betters, ISubmittedBets sb, IResults actual)
 {
     foreach (var better in betters)
     {
         var score = new ScoringSystem(sb.GetSingleBet(better), actual);
         var bet   = new Better()
         {
             Name = better, Score = score.GetTotal()
         };
         var achievements = new AchievementSystem(sb.GetSingleBet(better), actual);
         bet.Achievements = achievements.Achievements;
         bet.RowClass     = "normal";
         Betters.Add(bet);
     }
 }
Exemple #26
0
 void CreateBetterlist(List <string> betters, ISubmittedBets sb, IResultCollection rc)
 {
     foreach (var better in betters)
     {
         var score    = new ScoringSystem(sb.GetSingleBet(better), rc.Current);
         var oldscore = new ScoringSystem(sb.GetSingleBet(better), rc.Previous);
         var bet      = new Better()
         {
             Name = better, Score = score.GetTotal(), OldScore = oldscore.GetTotal()
         };
         var achievements = new AchievementSystem(sb.GetSingleBet(better), rc.Current);
         bet.Achievements = achievements.Achievements;
         bet.RowClass     = "normal";
         Betters.Add(bet);
     }
 }
Exemple #27
0
        public void TestAchivements_ShouldNotContainFullPot_WhenScoreIsLessThanMax()
        {
            string userBet       = @"[stage-one]
winners = [ [ ""Germany"", ""Algerie"",], ]
results = [ [ ] ]
";
            string actualResults = @"[stage-one]
winners = [ [ ""Mexico"", ""Algerie"",], ]
results = [ [ ] ]
";
            var    user          = new Results(userBet.ParseAsToml());
            var    actual        = new Results(actualResults.ParseAsToml());

            var a = new AchievementSystem(user, actual);

            a.Achievements.ShouldNotContain(a.AchievementRepo[AchievementTypes.FullPot]);
        }
Exemple #28
0
    public void Initial()
    {
        bGameOver = false;

        //游戏系统
        gameEventSystem   = new GameEventSystem(this);
        campSystem        = new CampSystem(this);
        stageSystem       = new StageSystem(this);
        characterSystem   = new CharacterSystem(this);
        apSystem          = new APSystem(this);
        achievementSystem = new AchievementSystem(this);

        //界面
        campInfoUI      = new CampInfoUI(this);
        soldierInfoUI   = new SoldierInfoUI(this);
        gameStateInfoUI = new GameStateInfoUI(this);
    }
Exemple #29
0
        public void TestAchievements_ShouldNotContainNotEvenClose_WhenStageOneIsNotComplete()
        {
            string userBet       = @"[stage-two]
semi-final = [ ""Spania"", ""Italia"",]
";
            string actualResults = @"[stage-one]
results = [ [ ""h"", ""h"", ""u"", ""b"", ""b"", ""b"",], [ ""b"", ""h"", ""b"", ""b"", ""b"", ""h"",], [ ""h"", ""h"", ""h"", ""u"", ""-"", ""-"",], [ ""b"", ""b"", ""h"", ""b"", ""b"", ""u"",], [ ""h"", ""h"", ""b"", ""b"", ""b"", ""u"",], [ ""h"", ""u"", ""h"", ""h"", ""b"", ""h"",], [ ""h"", ""b"", ""u"", ""u"", ""b"", ""h"",], [ ""h"", ""u"", ""h"", ""b"", ""b"", ""u"",],]
winners = [ [ ""Brasil"", ""Mexico"",], [ ""Nederland"", ""Chile"",], [ ""Colombia"", ""Hellas"",], ]
[stage-two]
";
            var    user          = new Results(userBet.ParseAsToml());
            var    actual        = new Results(actualResults.ParseAsToml());

            var a = new AchievementSystem(user, actual);

            a.Achievements.ShouldNotContain(a.AchievementRepo[AchievementTypes.NotEvenClose]);
        }
Exemple #30
0
        public void TestAchievements_ShouldContainDoubleRainbow_WhenAtLeastOneGroupWithBothQualifiers()
        {
            string userBet       = @"[stage-one]
winners = [ [ ""Brasil"", ""Algerie"",], [ ""Spania"", ""Nederland"",], ]
results = [ [ ] ]
";
            string actualResults = @"[stage-one]
winners = [ [ ""Brasil"", ""Mexico"",], [ ""Spania"", ""Nederland"",], ]
results = [ [ ] ]
";
            var    user          = new Results(userBet.ParseAsToml());
            var    actual        = new Results(actualResults.ParseAsToml());

            var a = new AchievementSystem(user, actual);

            a.Achievements.ShouldContain(a.AchievementRepo[AchievementTypes.DoubleRainbow]);
        }
Exemple #31
0
        // Init RTSGame.
        public void Initinal()
        {
            // Scene Control.
            m_bGameOver = false;
            // Game System.
            m_GameEventSystem   = new GameEventSystem(this);
            m_CampSystem        = new CampSystem(this);
            m_StageSystem       = new StageSystem(this);
            m_CharacterSystem   = new CharacterSystem(this);
            m_APSystem          = new APSystem(this);
            m_AchievementSystem = new AchievementSystem(this);

            // UI
            m_CampInfoUI      = new CampInfoUI(this);
            m_GamePauseUI     = new GamePauseUI(this);
            m_GameStateInfoUI = new GameStateInfoUI(this);
            m_SoldierInfoUI   = new SoldierInfoUI(this);
        }
 private void PlayAchievementClip(object sender, AchievementSystem.AchievementEventArgs e)
 {
     _audio.Play(AudioStorage.instance.achievement);
 }
	public EnemyKilledObserverAchievement(AchievementSystem  AchievementSystem)
	{
		m_AchievementSystem = AchievementSystem;
	}
	public NewStageObserverAchievement(AchievementSystem  AchievementSystem)
	{
		m_AchievementSystem = AchievementSystem;
	}
	public SoldierKilledObserverAchievement(AchievementSystem  AchievementSystem)
	{
		m_AchievementSystem = AchievementSystem;
	}