示例#1
0
    public void TestStart()
    {
        Mock <Player> mockPlayer = new Mock <Player>("name", 100, 1);
        Mock <Enemy>  mockEnemy  = new Mock <Enemy>("name", 100, 1);
        Mock <CharacterCombatHandler> mockPlayerCombatHandler = new Mock <CharacterCombatHandler>();
        Mock <CharacterCombatHandler> mockEnemyCombatHandler  = new Mock <CharacterCombatHandler>();

        mockCombatConfig.Setup(combatConfig => combatConfig.GetPlayer()).Returns(mockPlayer.Object);
        mockCharacterManager.Setup(characterManager => characterManager.RegisterCharacter(It.IsAny <Player>()));
        mockCombatConfig.Setup(combatConfig => combatConfig.GetEnemy()).Returns(mockEnemy.Object);
        mockCharacterManager.Setup(characterManager => characterManager.RegisterCharacter(It.IsAny <Enemy>()));
        mockPlayer.Setup(player => player.SubscribeCombatHandler(It.IsAny <CharacterCombatHandler>()));
        mockCombatUI.Setup(combatUI => combatUI.GetPlayerCombatHandler(It.IsAny <Player>())).Returns(mockPlayerCombatHandler.Object);
        mockCombatUI.Setup(combatUI => combatUI.GetEnemyCombatHandler(It.IsAny <Enemy>())).Returns(mockEnemyCombatHandler.Object);
        mockCombatManager.Setup(combatManager => combatManager.Init(It.IsAny <CharacterManager>(),
                                                                    It.IsAny <TurnManager>(),
                                                                    It.IsAny <GameFlowManager>()));

        combatInitializer.Initialize();

        mockCharacterManager.Verify(characterManager => characterManager.RegisterCharacter(mockPlayer.Object));
        mockCombatConfig.Verify(combatConfig => combatConfig.GetEnemy());
        mockCharacterManager.Verify(characterManager => characterManager.RegisterCharacter(mockEnemy.Object));
        mockCombatConfig.Verify(combatConfig => combatConfig.GetPlayer());
        mockPlayer.Verify(player => player.SubscribeCombatHandler(mockPlayerCombatHandler.Object));
        mockCombatConfig.Verify(combatConfig => combatConfig.GetEnemy());
        mockEnemy.Verify(enemy => enemy.SubscribeCombatHandler(mockEnemyCombatHandler.Object));
        mockCombatManager.Verify(combatManager => combatManager.Init(mockCharacterManager.Object,
                                                                     mockTurnManager.Object,
                                                                     mockGameFlowManager.Object));
    }
    IEnumerator FirstLoad()
    {
        if (combatConfig == null || combatInitializer == null || dataInitializer.SaveManager == null)
        {
            yield return(null);
        }

        if (combatUI.GetPlayerCombatHandler(dataInitializer.GameSave.Player) == null)
        {
            yield return(null);
        }

        currentLevel = dataInitializer.GameSave.EnemyLevel;
        combatConfig.Initialize(dataInitializer.GameSave.Player, levels[currentLevel].GetEnemy());
        combatInitializer.Initialize();

        combatConfig.GetPlayer().EquipWeapon(weapons[dataInitializer.GameSave.WeaponLevel].GetWeapon());
        inBattle = true;
        SceneManager.LoadScene("Intro", LoadSceneMode.Additive);
    }