Search in sources :

Example 1 with QuestsIndex

use of delta.games.lotro.lore.quests.index.QuestsIndex in project lotro-companion by dmorcellet.

the class MainTestQuestCompletionStats method main.

/**
 * Basic main method for test.
 * @param args Not used.
 */
public static void main(String[] args) {
    LotroTestUtils utils = new LotroTestUtils();
    // CharacterFile mainToon=utils.getMainToon();
    CharacterFile mainToon = utils.getToonByName("Feroce");
    CharacterSummary summary = mainToon.getSummary();
    CharacterLog log = mainToon.getLastCharacterLog();
    if (log != null) {
        QuestsManager qm = QuestsManager.getInstance();
        QuestsIndex index = qm.getIndex();
        String[] categories = index.getCategories();
        for (String category : categories) {
            // String category="Epic - Vol. I, Book 1: Stirrings in the Darkness";
            QuestsCompletionStats stats = new QuestsCompletionStats(category, summary, log);
            stats.dump(System.out, true);
        }
    }
}
Also used : CharacterSummary(delta.games.lotro.character.CharacterSummary) LotroTestUtils(delta.games.lotro.character.log.LotroTestUtils) QuestsManager(delta.games.lotro.lore.quests.QuestsManager) CharacterFile(delta.games.lotro.character.CharacterFile) QuestsIndex(delta.games.lotro.lore.quests.index.QuestsIndex) CharacterLog(delta.games.lotro.character.log.CharacterLog)

Example 2 with QuestsIndex

use of delta.games.lotro.lore.quests.index.QuestsIndex in project lotro-companion by dmorcellet.

the class QuestsCompletionStats method loadQuestIdentifiers.

private void loadQuestIdentifiers() {
    QuestsManager qm = QuestsManager.getInstance();
    QuestsIndex index = qm.getIndex();
    if (index != null) {
        QuestCategory category = index.getCategory(_category);
        if (category != null) {
            QuestSummary[] summaries = category.getQuests();
            for (QuestSummary summary : summaries) {
                int id = summary.getIdentifier();
                QuestDescription q = qm.getQuest(id);
                if (q != null) {
                    boolean useIt = true;
                    if (USE_CLASS_RESTRICTIONS) {
                        List<String> classes = q.getRequiredClasses();
                        if ((classes != null) && (classes.size() > 0)) {
                            CharacterClass cClass = _character.getCharacterClass();
                            String className = cClass.getKey();
                            if (classes.contains(className)) {
                                useIt = true;
                            } else {
                                String key = q.getKey();
                                if (_logger.isInfoEnabled()) {
                                    _logger.info("Ignored quest [" + key + "]. Class=" + className + ", Required:" + classes);
                                }
                                useIt = false;
                            }
                        }
                    }
                    if (USE_RACE_RESTRICTIONS) {
                        List<String> races = q.getRequiredRaces();
                        if ((races != null) && (races.size() > 0)) {
                            Race cRace = _character.getRace();
                            String raceName = cRace.getLabel();
                            if (races.contains(raceName)) {
                                useIt = true;
                            } else {
                                String key = q.getKey();
                                if (_logger.isInfoEnabled()) {
                                    _logger.info("Ignored quest [" + key + "]. Race=" + raceName + ", Required:" + races);
                                }
                                useIt = false;
                            }
                        }
                    }
                    if (!USE_INSTANCES) {
                        boolean instanced = q.isInstanced();
                        if (instanced) {
                            useIt = false;
                        }
                    }
                    if (useIt) {
                        _expectedIds.add(Integer.valueOf(id));
                    }
                }
            }
            _nbExpectedQuests = _expectedIds.size();
        }
    }
}
Also used : QuestDescription(delta.games.lotro.lore.quests.QuestDescription) QuestsManager(delta.games.lotro.lore.quests.QuestsManager) Race(delta.games.lotro.common.Race) QuestsIndex(delta.games.lotro.lore.quests.index.QuestsIndex) QuestCategory(delta.games.lotro.lore.quests.index.QuestCategory) QuestSummary(delta.games.lotro.lore.quests.index.QuestSummary) CharacterClass(delta.games.lotro.common.CharacterClass)

Example 3 with QuestsIndex

use of delta.games.lotro.lore.quests.index.QuestsIndex in project lotro-tools by dmorcellet.

the class QuestsIndexBuilder method doIt.

/**
 * Do build quests index.
 * @return <code>true</code> if it was done, <code>false</code> otherwise.
 */
public boolean doIt() {
    boolean ret = false;
    if (_questsDir.exists()) {
        QuestsIndex index = new QuestsIndex();
        ExtensionPredicate extFilter = new ExtensionPredicate(".xml");
        File[] questFiles = _questsDir.listFiles(extFilter);
        if (questFiles != null) {
            QuestXMLParser parser = new QuestXMLParser();
            for (File questFile : questFiles) {
                QuestDescription q = parser.parseXML(questFile);
                String category = q.getCategory();
                String key = q.getKey();
                String title = q.getTitle();
                int id = q.getIdentifier();
                index.addQuest(category, id, key, title);
            }
            QuestsIndexWriter writer = new QuestsIndexWriter();
            ret = writer.write(_indexFile, index, EncodingNames.UTF_8);
        }
    }
    return ret;
}
Also used : QuestDescription(delta.games.lotro.lore.quests.QuestDescription) QuestXMLParser(delta.games.lotro.lore.quests.io.xml.QuestXMLParser) ExtensionPredicate(delta.common.utils.files.filter.ExtensionPredicate) QuestsIndex(delta.games.lotro.lore.quests.index.QuestsIndex) File(java.io.File) QuestsIndexWriter(delta.games.lotro.lore.quests.index.io.xml.QuestsIndexWriter)

Example 4 with QuestsIndex

use of delta.games.lotro.lore.quests.index.QuestsIndex in project lotro-tools by dmorcellet.

the class QuestsItemsLoader method doIt.

private void doIt() {
    List<QuestDescription> storage = new ArrayList<QuestDescription>();
    QuestsManager qm = QuestsManager.getInstance();
    QuestsIndex index = qm.getIndex();
    if (index != null) {
        String[] categories = index.getCategories();
        System.out.println(Arrays.deepToString(categories));
        for (String category : categories) {
            QuestCategory c = index.getCategory(category);
            QuestSummary[] quests = c.getQuests();
            int indexQ = 0;
            for (QuestSummary questSum : quests) {
                int id = questSum.getIdentifier();
                QuestDescription q = qm.getQuest(id);
                handleQuest(indexQ, q);
                storage.add(q);
                indexQ++;
            }
        }
        System.out.println("Resolved: " + _resolved + ", missed: " + _missed);
        writeQuestsDatabase(storage);
    } else {
        _logger.error("Cannot gets quests index file!");
    }
}
Also used : QuestDescription(delta.games.lotro.lore.quests.QuestDescription) QuestsManager(delta.games.lotro.lore.quests.QuestsManager) ArrayList(java.util.ArrayList) QuestsIndex(delta.games.lotro.lore.quests.index.QuestsIndex) QuestCategory(delta.games.lotro.lore.quests.index.QuestCategory) QuestSummary(delta.games.lotro.lore.quests.index.QuestSummary)

Example 5 with QuestsIndex

use of delta.games.lotro.lore.quests.index.QuestsIndex in project lotro-tools by dmorcellet.

the class QuestsIndexJSONParser method parseQuestsIndex.

/**
 * Get quests index from web.
 * @return A quests index or <code>null</code> if a problem occurs.
 */
public QuestsIndex parseQuestsIndex() {
    QuestsIndex ret;
    try {
        _index = new QuestsIndex();
        Downloader d = new Downloader();
        while ((_total == 0) || (_currentItemIndex < _total)) {
            load(d, _currentItemIndex);
        }
        ret = _index;
        _index = null;
    } catch (Exception e) {
        ret = null;
    }
    return ret;
}
Also used : Downloader(delta.downloads.Downloader) QuestsIndex(delta.games.lotro.lore.quests.index.QuestsIndex)

Aggregations

QuestsIndex (delta.games.lotro.lore.quests.index.QuestsIndex)6 QuestDescription (delta.games.lotro.lore.quests.QuestDescription)3 QuestsManager (delta.games.lotro.lore.quests.QuestsManager)3 QuestCategory (delta.games.lotro.lore.quests.index.QuestCategory)2 QuestSummary (delta.games.lotro.lore.quests.index.QuestSummary)2 QuestsIndexWriter (delta.games.lotro.lore.quests.index.io.xml.QuestsIndexWriter)2 ExtensionPredicate (delta.common.utils.files.filter.ExtensionPredicate)1 Downloader (delta.downloads.Downloader)1 CharacterFile (delta.games.lotro.character.CharacterFile)1 CharacterSummary (delta.games.lotro.character.CharacterSummary)1 CharacterLog (delta.games.lotro.character.log.CharacterLog)1 LotroTestUtils (delta.games.lotro.character.log.LotroTestUtils)1 CharacterClass (delta.games.lotro.common.CharacterClass)1 Race (delta.games.lotro.common.Race)1 QuestXMLParser (delta.games.lotro.lore.quests.io.xml.QuestXMLParser)1 File (java.io.File)1 ArrayList (java.util.ArrayList)1