테스트

aion-server 4.8

Gitteol
최고관리자 · 1 · 💬 0 클론/새로받기
 4.8 61f661d · 1 commits 새로받기(Pull)
game-server/src/com/aionemu/gameserver/model/templates/QuestTemplate.java
package com.aionemu.gameserver.model.templates;

import java.util.Collections;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlList;
import javax.xml.bind.annotation.XmlType;

import com.aionemu.gameserver.configs.main.CraftConfig;
import com.aionemu.gameserver.model.Gender;
import com.aionemu.gameserver.model.PlayerClass;
import com.aionemu.gameserver.model.Race;
import com.aionemu.gameserver.model.templates.quest.CollectItems;
import com.aionemu.gameserver.model.templates.quest.InventoryItems;
import com.aionemu.gameserver.model.templates.quest.QuestBonuses;
import com.aionemu.gameserver.model.templates.quest.QuestCategory;
import com.aionemu.gameserver.model.templates.quest.QuestDrop;
import com.aionemu.gameserver.model.templates.quest.QuestExtraCategory;
import com.aionemu.gameserver.model.templates.quest.QuestItems;
import com.aionemu.gameserver.model.templates.quest.QuestKill;
import com.aionemu.gameserver.model.templates.quest.QuestMentorType;
import com.aionemu.gameserver.model.templates.quest.QuestRepeatCycle;
import com.aionemu.gameserver.model.templates.quest.QuestTarget;
import com.aionemu.gameserver.model.templates.quest.QuestWorkItems;
import com.aionemu.gameserver.model.templates.quest.Rewards;
import com.aionemu.gameserver.model.templates.quest.XMLStartCondition;

/**
 * @author MrPoke, vlog, Neon
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Quest")
public class QuestTemplate implements L10n {

	@XmlElement(name = "collect_items")
	private CollectItems collectItems;
	@XmlElement(name = "inventory_items")
	private InventoryItems inventoryItems;
	@XmlElement(name = "rewards")
	private List<Rewards> rewards;
	@XmlElement(name = "bonus")
	private QuestBonuses bonus;
	@XmlElement(name = "extended_rewards")
	private Rewards extendedRewards;
	@XmlElement(name = "quest_drop")
	private List<QuestDrop> questDrop;
	@XmlElement(name = "quest_kill")
	private List<QuestKill> questKill;
	@XmlElement(name = "start_conditions")
	private List<XMLStartCondition> startConds;
	@XmlList
	@XmlElement(name = "class_permitted")
	private List<PlayerClass> classPermitted;
	@XmlElement(name = "gender_permitted")
	private Gender genderPermitted;
	@XmlElement(name = "quest_work_items")
	private QuestWorkItems questWorkItems;
	@XmlElement(name = "fighter_selectable_reward")
	private List<QuestItems> fighterSelectableReward;
	@XmlElement(name = "knight_selectable_reward")
	private List<QuestItems> knightSelectableReward;
	@XmlElement(name = "ranger_selectable_reward")
	private List<QuestItems> rangerSelectableReward;
	@XmlElement(name = "assassin_selectable_reward")
	private List<QuestItems> assassinSelectableReward;
	@XmlElement(name = "wizard_selectable_reward")
	private List<QuestItems> wizardSelectableReward;
	@XmlElement(name = "elementalist_selectable_reward")
	private List<QuestItems> elementalistSelectableReward;
	@XmlElement(name = "priest_selectable_reward")
	private List<QuestItems> priestSelectableReward;
	@XmlElement(name = "chanter_selectable_reward")
	private List<QuestItems> chanterSelectableReward;
	@XmlElement(name = "gunner_selectable_reward")
	private List<QuestItems> gunnerSelectableReward;
	@XmlElement(name = "rider_selectable_reward")
	private List<QuestItems> riderSelectableReward;
	@XmlElement(name = "bard_selectable_reward")
	private List<QuestItems> bardSelectableReward;
	@XmlAttribute(name = "id", required = true)
	private int id;
	@XmlAttribute(name = "name")
	private String name;
	@XmlAttribute(name = "nameId")
	private int nameId;
	@XmlAttribute(name = "minlevel_permitted")
	private int minlevelPermitted;
	@XmlAttribute(name = "maxlevel_permitted")
	private int maxlevelPermitted;
	@XmlAttribute(name = "rank")
	private int rank;
	@XmlAttribute(name = "max_repeat_count")
	private int maxRepeatCount = 1;
	@XmlAttribute(name = "reward_repeat_count")
	private int rewardRepeatCount;
	@XmlAttribute(name = "cannot_share")
	private boolean cannotShare;
	@XmlAttribute(name = "cannot_giveup")
	private boolean cannotGiveup;
	@XmlAttribute(name = "can_report")
	private boolean canReport;
	@XmlAttribute(name = "use_class_reward")
	private int useClassReward;
	@XmlAttribute(name = "race_permitted")
	private Race racePermitted;
	@XmlAttribute(name = "combineskill")
	private int combineskill;
	@XmlAttribute(name = "combine_skillpoint")
	private int combineSkillpoint;
	@XmlAttribute(name = "timer")
	private boolean timer;
	@XmlAttribute(name = "category")
	private QuestCategory category = QuestCategory.QUEST;
	@XmlAttribute(name = "extra_category")
	private QuestExtraCategory extraCategory = QuestExtraCategory.NONE;
	@XmlAttribute(name = "repeat_cycle")
	private List<QuestRepeatCycle> repeatCycle;
	@XmlAttribute(name = "npcfaction_id")
	private int npcFactionId;
	@XmlAttribute(name = "mentor_type")
	private QuestMentorType mentorType = QuestMentorType.NONE;
	@XmlAttribute(name = "target")
	private QuestTarget target = QuestTarget.NONE;
	@XmlAttribute(name = "restricted")
	private boolean restricted = false;
	@XmlAttribute(name = "data_driven")
	private boolean dataDriven = false;

	/**
	 * Gets the value of the collectItems property.
	 * 
	 * @return possible object is {@link CollectItems }
	 */
	public CollectItems getCollectItems() {
		return collectItems;
	}

	public InventoryItems getInventoryItems() {
		return inventoryItems;
	}

	public List<Rewards> getRewards() {
		return rewards == null ? Collections.emptyList() : rewards;
	}

	public Rewards getExtendedRewards() {
		return extendedRewards;
	}

	public QuestBonuses getBonus() {
		return bonus;
	}

	public List<QuestDrop> getQuestDrop() {
		return questDrop == null ? Collections.emptyList() : questDrop;
	}

	public List<QuestKill> getQuestKill() {
		return questKill == null ? Collections.emptyList() : questKill;
	}

	public List<XMLStartCondition> getXMLStartConditions() {
		return startConds == null ? Collections.emptyList() : startConds;
	}

	public int getRequiredConditionCount() {
		if (getXMLStartConditions().isEmpty())
			return 0;
		int optionalCount = 0;
		int mandatoryCount = 0;
		for (XMLStartCondition cond : startConds) {
			if (cond.isOptional())
				optionalCount++;
			else
				mandatoryCount++;
		}

		int result = Math.min(1, optionalCount) + mandatoryCount;

		if (isMaster())
			result += 1 - CraftConfig.MAX_MASTER_CRAFTING_SKILLS;

		return result;
	}

	public List<PlayerClass> getClassPermitted() {
		return classPermitted == null ? Collections.emptyList() : classPermitted;
	}

	/**
	 * Gets the value of the genderPermitted property.
	 * 
	 * @return possible object is {@link Gender }
	 */
	public Gender getGenderPermitted() {
		return genderPermitted;
	}

	/**
	 * Gets the value of the questWorkItems property.
	 * 
	 * @return possible object is {@link QuestWorkItems }
	 */
	public QuestWorkItems getQuestWorkItems() {
		return questWorkItems;
	}

	public List<QuestItems> getSelectableRewardByClass(PlayerClass playerClass) {
		switch (playerClass) {
			case ASSASSIN:
				return assassinSelectableReward == null ? Collections.emptyList() : assassinSelectableReward;
			case CHANTER:
				return chanterSelectableReward == null ? Collections.emptyList() : chanterSelectableReward;
			case CLERIC:
				return priestSelectableReward == null ? Collections.emptyList() : priestSelectableReward;
			case GLADIATOR:
				return fighterSelectableReward == null ? Collections.emptyList() : fighterSelectableReward;
			case RANGER:
				return rangerSelectableReward == null ? Collections.emptyList() : rangerSelectableReward;
			case SORCERER:
				return wizardSelectableReward == null ? Collections.emptyList() : wizardSelectableReward;
			case SPIRIT_MASTER:
				return elementalistSelectableReward == null ? Collections.emptyList() : elementalistSelectableReward;
			case TEMPLAR:
				return knightSelectableReward == null ? Collections.emptyList() : knightSelectableReward;
			case GUNNER:
				return gunnerSelectableReward == null ? Collections.emptyList() : gunnerSelectableReward;
			case BARD:
				return bardSelectableReward == null ? Collections.emptyList() : bardSelectableReward;
			case RIDER:
				return riderSelectableReward == null ? Collections.emptyList() : riderSelectableReward;
		}
		return Collections.emptyList();
	}

	public int getId() {
		return id;
	}

	public String getName() {
		return name;
	}

	@Override
	public int getL10nId() {
		return nameId;
	}

	public int getMinlevelPermitted() {
		return minlevelPermitted;
	}

	public int getMaxlevelPermitted() {
		return maxlevelPermitted;
	}

	public int getRequiredRank() {
		return rank;
	}

	public int getMaxRepeatCount() {
		return maxRepeatCount;
	}

	public int getRewardRepeatCount() {
		return rewardRepeatCount;
	}

	public boolean isCannotShare() {
		return cannotShare;
	}

	public boolean isCannotGiveup() {
		return cannotGiveup;
	}

	public boolean isCanReport() {
		return canReport;
	}

	public boolean isClassRewardOnEveryRepeat() {
		return useClassReward == 1;
	}

	public boolean isSingleTimeClassReward() {
		return useClassReward == 2;
	}

	public boolean isRepeatable() {
		return getMaxRepeatCount() > 1;
	}

	public Race getRacePermitted() {
		return racePermitted;
	}

	public int getCombineSkill() {
		return combineskill;
	}

	public int getCombineSkillPoint() {
		return combineSkillpoint;
	}

	public boolean isTimer() {
		return timer;
	}

	public QuestCategory getCategory() {
		return category;
	}

	public QuestExtraCategory getExtraCategory() {
		return extraCategory;
	}

	public boolean isMentor() {
		return mentorType != QuestMentorType.NONE;
	}

	public QuestMentorType getMentorType() {
		return mentorType;
	}

	public QuestTarget getTarget() {
		return target;
	}

	public List<QuestRepeatCycle> getRepeatCycle() {
		return repeatCycle;
	}

	public int getNpcFactionId() {
		return npcFactionId;
	}

	public boolean isTimeBased() {
		return repeatCycle != null;
	}

	public boolean isDaily() {
		return isTimeBased() && repeatCycle.contains(QuestRepeatCycle.ALL);
	}

	public boolean isWeekly() {
		return isTimeBased() && !isDaily();
	}

	public boolean isMaster() {
		return getCombineSkillPoint() == 499;
	}

	public boolean isExpert() {
		return getCombineSkillPoint() == 399;
	}

	public boolean isProfession() {
		return isMaster() || isExpert();
	}

	/**
	 * @return True, if the quest is a mission quest (campaign quest)
	 */
	public boolean isMission() {
		return category == QuestCategory.MISSION;
	}

	public boolean isNoCount() {
		return category == QuestCategory.NON_COUNT || category == QuestCategory.EVENT;
	}

	/**
	 * @return the restricted, in client has any bm_restrict_category
	 */
	public boolean isRestricted() {
		return restricted;
	}

	/**
	 * @return the dataDriven property, if true quest setting are retrieved from quest_data_driven.xml file
	 */
	public boolean isDataDriven() {
		return dataDriven;
	}
}

📎 첨부파일

댓글 작성 권한이 없습니다.
🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 102,949
2 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 63,733
3 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 51,771
4 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 36,923
5 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 35,011
6 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 29,470
7 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 29,077
8 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 28,199
9 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 26,731
10 no_profile 호롤롤로쪽지보내기 자기소개 아이디로 검색 전체게시물 17,020
알림 0