//Public Methods
    public void Init(List <BtlCtrlCharacter> playerCharacters, List <BtlCtrlCharacter> aiCharacters, string playerName, string aiName,
                     List <long> turns, BattleControllerType type, int turnTime = 0, BattleSceneType sceneType = BattleSceneType.Tutorial_Hell)
    {
        _parties = new BtlCtrlParty[2];

        _parties[0] = new BtlCtrlParty();
        _parties[0].Init(playerCharacters, TeamTypes.Player, playerName);

        _parties[1] = new BtlCtrlParty();
        _parties[1].Init(aiCharacters, TeamTypes.Enemy, aiName);

        ListenToPartiesAndCharactersEvents();

        _turnOrders = turns;
        _turnTime   = turnTime;

        _type = type;

        _sceneType = sceneType;

        _currentState = States.WaitToStartFight;

        _currentTurnIndex = -1;

        _currentActionsStack = new Stack <ActionData>();
        _currentActiveSpells = new List <BtlCtrlSpell>();

        _externalLogic = null;
        SetExternalLogic();

        _secretController = new BtlCtrlSecretController();
        _secretController.Event_ActionGenerated += OnActionGenerated;

        _fakeServer = FakeServer.instance;

        _fakeServer.Event_OnMove      += OnMove;
        _fakeServer.Event_OnReadyCome += OnReadyCome;
    }
Ejemplo n.º 2
0
    public static BattleController Build(BattleControllerType type)
    {
        IBtlCtrlBuilder espcialBuilder = null;

        switch (type)
        {
        case BattleControllerType.Tutorial_MiniBoss:
            espcialBuilder = new BtlCtrlBuilder_TutMiniBoss();
            break;

        case BattleControllerType.Tutorial_Zahak:
            espcialBuilder = new BtlCtrlBuilder_TutZahak();
            break;
        }

        BattleController battleController = espcialBuilder.Build();

        BattleLogic battleLogic = MakeBattleLogic(battleController);

        battleController.SetBattleLogic(battleLogic);

        return(battleController);
    }