예제 #1
0
    def createFunctional(self, dispatcher, ctx):
        unitMrg = prb_control.getClientUnitMgr()
        if unitMrg.id and unitMrg.unitIdx:
            unit = prb_control.getUnit(unitMrg.unitIdx, safe=True)
            if unit:
                unitFunctional = UnitFunctional(unit.getPrebattleType(),
                                                DynamicRosterSettings(unit))
                for listener in dispatcher._globalListeners:
                    unitFunctional.addListener(listener())

            else:
                LOG_ERROR('Unit is not found in unit manager', unitMrg.unitIdx,
                          unitMrg.units)
                unitMrg.leave()
                unitFunctional = NoUnitFunctional()
        else:
            prbType = ctx.getPrbType()
            if prbType:
                unitFunctional = IntroFunctional(
                    prbType,
                    ctx.getCreateParams().get('modeFlags',
                                              UNIT_MODE_FLAGS.UNDEFINED),
                    SupportedRosterSettings.last(prbType))
                for listener in dispatcher._globalListeners:
                    unitFunctional.addListener(listener())

            else:
                unitFunctional = NoUnitFunctional()
        return unitFunctional
예제 #2
0
파일: unitfactory.py 프로젝트: webiumsk/WoT
    def createFunctional(self, dispatcher, ctx):
        unitMrg = prb_control.getClientUnitMgr()
        if unitMrg.id and unitMrg.unitIdx:
            unit = prb_control.getUnit(unitMrg.unitIdx, safe=True)
            prbType = PREBATTLE_TYPE.UNIT
            if unit.isSortie():
                prbType = PREBATTLE_TYPE.SORTIE
            elif unit.isFortBattle():
                prbType = PREBATTLE_TYPE.FORT_BATTLE
            if unit:
                unitFunctional = UnitFunctional(prbType, DynamicRosterSettings(unit))
                for listener in dispatcher._globalListeners:
                    unitFunctional.addListener(listener())

            else:
                LOG_ERROR('Unit is not found in unit manager', unitMrg.unitIdx, unitMrg.units)
                unitMrg.leave()
                unitFunctional = NoUnitFunctional()
        else:
            prbType = ctx.getPrbType()
            if prbType:
                unitFunctional = IntroFunctional(prbType, ctx.getCreateParams().get('modeFlags', UNIT_MODE_FLAGS.UNDEFINED), SupportedRosterSettings.last(prbType))
                for listener in dispatcher._globalListeners:
                    unitFunctional.addListener(listener())

            else:
                unitFunctional = NoUnitFunctional()
        return unitFunctional
예제 #3
0
def createUnitFunctional(dispatcher):
    unitMrg = prb_control.getClientUnitMgr()
    if unitMrg.id and unitMrg.unitIdx:
        if unitMrg.unitIdx in unitMrg.units:
            unitFunctional = UnitFunctional()
            for listener in dispatcher._globalListeners:
                unitFunctional.addListener(listener())

        else:
            LOG_ERROR('Unit not found in unit manager', unitMrg.unitIdx, unitMrg.units)
            unitMrg.leave()
            unitFunctional = NoUnitFunctional()
    else:
        func = dispatcher.getUnitFunctional()
        if func and func.getExit() == FUNCTIONAL_EXIT.INTRO_UNIT:
            unitFunctional = IntroFunctional()
            for listener in dispatcher._globalListeners:
                unitFunctional.addListener(listener())

        else:
            unitFunctional = NoUnitFunctional()
    return unitFunctional
예제 #4
0
def createUnitFunctional(dispatcher):
    unitMrg = prb_control.getClientUnitMgr()
    if unitMrg.id and unitMrg.unitIdx:
        if unitMrg.unitIdx in unitMrg.units:
            unitFunctional = UnitFunctional()
            for listener in dispatcher._globalListeners:
                unitFunctional.addListener(listener())

        else:
            LOG_ERROR("Unit not found in unit manager", unitMrg.unitIdx, unitMrg.units)
            unitMrg.leave()
            unitFunctional = NoUnitFunctional()
    else:
        func = dispatcher.getUnitFunctional()
        if func and func.getExit() == FUNCTIONAL_EXIT.INTRO_UNIT:
            unitFunctional = IntroFunctional()
            for listener in dispatcher._globalListeners:
                unitFunctional.addListener(listener())

        else:
            unitFunctional = NoUnitFunctional()
    return unitFunctional