package config; import manager.STableManager; import manager.Table; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Table(name = "HeroConfig") public class SCHero implements BaseConfig{ public static Map sCHero; private int id; private int piecesId; private int piecesCount; private String readingName; private int propertyName; //角色属性 private int profession; //角色职业 private int maxRank; //角色最高星级 private int star; private float hp; private float attack; //攻击力 private float physicalDefence; //护甲 private float magicDefence; //魔抗 private float speed; //速度 private int actionPower; private int[][] rankupConsumeMaterial; private int[][] openSkillRules; private int[][] openPassiveSkillRules; private int[] equipTalismana; private int[][] secondaryFactor; private int quality; private int natural; private int[] growthSwitch; private Map secondaryFactorMap; private Map> skillListByStar; private Map> consumeMaterialInfoOfPositionByStar; private static Map piecesMap; public static class ConsumeMaterialInfo{ private int groupID; private int nums; public ConsumeMaterialInfo(int groupID, int nums) { this.groupID = groupID; this.nums = nums; } public int getGroupID() { return groupID; } public void setGroupID(int groupID) { this.groupID = groupID; } public int getNums() { return nums; } public void setNums(int nums) { this.nums = nums; } } @Override public void init() throws Exception { Map integerSCHeroMap = STableManager.getConfig(SCHero.class); for(SCHero scHero : integerSCHeroMap.values()){ int[][] secondaryFactor = scHero.getSecondaryFactor(); if(secondaryFactor!=null && secondaryFactor.length>0){ Map secondaryFactorMapTmp = new HashMap<>(secondaryFactor.length); for(int[] secondaryFactorItem : secondaryFactor){ int property = secondaryFactorItem[0]; int propertyValue = secondaryFactorItem[1]; secondaryFactorMapTmp.put(property,propertyValue); scHero.setSecondaryFactorMap(secondaryFactorMapTmp); } } Map> consumeMaterialInfoByStarTmp = new HashMap<>(); int[][] openSkillRules = scHero.getOpenSkillRules(); int[][] rankupConsumeMaterial = scHero.getRankupConsumeMaterial(); for(int j=0;j()); } consumeMaterialInfoByStarTmp.get(star).put(position,new ConsumeMaterialInfo(groupID,nums)); } scHero.setConsumeMaterialInfoOfPositionByStar(consumeMaterialInfoByStarTmp); Map> skillTmp = new HashMap<>(); for(int i=0;i()); } skillTmp.get(star).add(skillId); } for(List items : skillTmp.values()){ if(items.size() <2){ items.add(0); } } for(int[] openSkillRule : scHero.getOpenPassiveSkillRules()){ int star = openSkillRule[0]; int skillId = openSkillRule[1]; if(!skillTmp.containsKey(star)){ skillTmp.put(star,new ArrayList<>()); } skillTmp.get(star).add(skillId); } scHero.setSkillListByStar(skillTmp); } sCHero = integerSCHeroMap; piecesMap = new HashMap<>(); for(Map.Entry hero:sCHero.entrySet()){ piecesMap.put(hero.getValue().getPiecesId(),hero.getValue()); } } public static SCHero getHeroByPieceId(int piecesId){ return piecesMap.get(piecesId); } public Map getConsumeMaterialInfoOfPositionByStar(int star) { return consumeMaterialInfoOfPositionByStar.get(star); } public void setConsumeMaterialInfoOfPositionByStar(Map> consumeMaterialInfoOfPositionByStar) { this.consumeMaterialInfoOfPositionByStar = consumeMaterialInfoOfPositionByStar; } public static Map getsCHero() { return sCHero; } public int getId() { return id; } public int getPiecesId() { return piecesId; } public int getPiecesCount() { return piecesCount; } public int getProfession() { return profession; } public int getMaxRank() { return maxRank; } public float getHp() { return hp; } public float getAttack() { return attack; } public float getPhysicalDefence() { return physicalDefence; } public float getMagicDefence() { return magicDefence; } public float getSpeed() { return speed; } public int getPropertyName() { return propertyName; } public int getActionPower() { return actionPower; } public int[][] getRankupConsumeMaterial() { return rankupConsumeMaterial; } public int[][] getOpenSkillRules() { return openSkillRules; } public int getStar() { return star; } public int[][] getSecondaryFactor() { return secondaryFactor; } public Map getSecondaryFactorMap() { return secondaryFactorMap; } public void setSecondaryFactorMap(Map secondaryFactorMap) { this.secondaryFactorMap = secondaryFactorMap; } public int getQuality() { return quality; } public int getNatural() { return natural; } public String getReadingName() { return readingName; } public int[][] getOpenPassiveSkillRules() { return openPassiveSkillRules; } public List getSkillListByStar(int star) { return skillListByStar.get(star); } public void setSkillListByStar(Map> skillListByStar) { this.skillListByStar = skillListByStar; } public int[] getGrowthSwitch() { return growthSwitch; } public int[] getEquipTalismana() { return equipTalismana; } }