法宝重做
parent
eb2259ac92
commit
d1cf55e9ac
|
@ -286,14 +286,6 @@ public class GMRequestHandler extends BaseHandler{
|
|||
break;
|
||||
case GlobalGm.MISSION_LEAD:
|
||||
break;
|
||||
case GlobalGm.ESPECIAL_EQUIP:
|
||||
int itemType = SItem.getsItemMap().get(prarm1).getItemType();
|
||||
if(itemType==GlobalItemType.ESPECIAL_EQUIP){
|
||||
EspecialEquip especialEquip = new EspecialEquip(cUser.getId(),prarm1);
|
||||
especialEquip.setStar(prarm2);
|
||||
cUser.getEquipManager().addEspecialEquip(cUser,especialEquip);
|
||||
}
|
||||
break;
|
||||
case GlobalGm.TREASURE_FINISH:
|
||||
Set<Integer> doingMissionIds = cUser.getUserMissionManager().getTreasureMissionIdsType().getDoingMissionIds();
|
||||
if(doingMissionIds.contains(prarm2)){
|
||||
|
|
|
@ -26,7 +26,7 @@ public class UpHeroStarHandler extends BaseHandler{
|
|||
if(upHeroStarRequest.getType()==1){
|
||||
HeroLogic.getInstance().upHeroStar(iSession,heroId,consumeMaterialsList);
|
||||
}else{
|
||||
ItemLogic.getInstance().especialEquipUpStar(iSession,heroId,consumeMaterialsList);
|
||||
ItemLogic.getInstance().especialEquipUpStar(iSession,heroId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -38,8 +38,6 @@ public class UseAndPriceItemHandler extends BaseHandler<PlayerInfoProto.UseAndPr
|
|||
} else if(type==3){
|
||||
CommonProto.Drop.Builder baseBuilder =ItemLogic.getInstance().decomposeHero(iSession,heroIdsList,null, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE);
|
||||
ItemLogic.sendUseAndPriceItemMessage(iSession, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE, baseBuilder);
|
||||
}else if(type==4){//分解法宝
|
||||
ItemLogic.getInstance().decomposeEspecialEquip(iSession, equipIdsList);
|
||||
}else if(type==5){//分解魂印
|
||||
ItemLogic.getInstance().decomposeSoulEquip(iSession, equipIdsList);
|
||||
}
|
||||
|
|
|
@ -13,8 +13,6 @@ public class TemporaryItems {
|
|||
|
||||
public Set<Equip> equips = new HashSet<>();
|
||||
|
||||
public Set<EspecialEquip> especialEquips = new HashSet<>();
|
||||
|
||||
public Set<SoulEquip> soulEquips = new HashSet<>();
|
||||
|
||||
|
||||
|
|
|
@ -13,8 +13,6 @@ public class EquipManager extends MongoBase {
|
|||
|
||||
private Map<String,Equip> equipMap;
|
||||
|
||||
private Map<String,EspecialEquip> especialEquipMap;
|
||||
|
||||
private Map<String,SoulEquip> soulEquipMap;
|
||||
|
||||
private Equip unDetermined;
|
||||
|
@ -27,7 +25,6 @@ public class EquipManager extends MongoBase {
|
|||
|
||||
this.equipHandBook = new HashMap<>();
|
||||
this.equipMap = new HashMap<>();
|
||||
this.especialEquipMap = new HashMap<>();
|
||||
this.soulEquipMap = new HashMap<>();
|
||||
this.soulEquipPool = 1;
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
|
@ -42,20 +39,6 @@ public class EquipManager extends MongoBase {
|
|||
Poster.getPoster().dispatchEvent(new EquipEvent(user.getId(),equip.getEquipId()));
|
||||
}
|
||||
|
||||
public void addEspecialEquip(User user,EspecialEquip especialEquip){
|
||||
especialEquip.init(this.getRootId(),getMongoKey() + ".especialEquipMap." + especialEquip.getId());
|
||||
updateString("especialEquipMap." + especialEquip.getId(), especialEquip);
|
||||
addEquipHandBook(especialEquip.getEquipId());
|
||||
especialEquipMap.put(especialEquip.getId(), especialEquip);
|
||||
}
|
||||
|
||||
public void removeEspecialEquip(String equip){
|
||||
if(especialEquipMap.containsKey(equip)){
|
||||
removeString(getMongoKey()+".especialEquipMap."+equip);
|
||||
especialEquipMap.remove(equip);
|
||||
}
|
||||
}
|
||||
|
||||
public void remove(String equipId){
|
||||
if (equipMap.containsKey(equipId)){
|
||||
removeString(getMongoKey()+".equipMap." + equipId);
|
||||
|
@ -80,10 +63,6 @@ public class EquipManager extends MongoBase {
|
|||
return equipMap;
|
||||
}
|
||||
|
||||
public Map<String, EspecialEquip> getEspecialEquipMap() {
|
||||
return especialEquipMap;
|
||||
}
|
||||
|
||||
public Map<String, SoulEquip> getSoulEquipMap() {
|
||||
return soulEquipMap;
|
||||
}
|
||||
|
@ -119,13 +98,4 @@ public class EquipManager extends MongoBase {
|
|||
return equipHandBook;
|
||||
}
|
||||
|
||||
public void upStarEspecialEquip(String equipId) throws Exception {
|
||||
EspecialEquip especialEquip = especialEquipMap.get(equipId);
|
||||
if(especialEquip ==null){
|
||||
return;
|
||||
}
|
||||
updateString("especialEquipMap."+equipId+".star",especialEquip.getStar()+1);
|
||||
especialEquip.setStar(especialEquip.getStar()+1);
|
||||
especialEquipMap.put(equipId,especialEquip);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
package com.ljsd.jieling.logic.dao;
|
||||
|
||||
import config.SItem;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.util.KeyGenUtils;
|
||||
import com.ljsd.jieling.util.UUIDEnum;
|
||||
|
||||
public class EspecialEquip extends PropertyItem {
|
||||
|
||||
private int star;
|
||||
|
||||
public EspecialEquip(int uid,int equipTid) {
|
||||
super();
|
||||
super.setId(KeyGenUtils.produceIdByModule(UUIDEnum.ESPECIAL_EQUIP, uid));
|
||||
super.setEquipId(equipTid);
|
||||
SItem item = SItem.getsItemMap().get(equipTid);
|
||||
this.star = item.getQuantity();
|
||||
}
|
||||
public EspecialEquip() {
|
||||
this.setRootCollection(User._COLLECTION_NAME);
|
||||
}
|
||||
|
||||
|
||||
public int getStar() {
|
||||
return star;
|
||||
}
|
||||
|
||||
public void setStar(int star) {
|
||||
updateString("star",star);
|
||||
this.star = star;
|
||||
}
|
||||
}
|
|
@ -42,7 +42,7 @@ public class Hero extends MongoBase {
|
|||
|
||||
private int speed;
|
||||
|
||||
private String especialEquip;
|
||||
private int especialEquipLevel;
|
||||
|
||||
private int isLock;
|
||||
|
||||
|
@ -61,7 +61,6 @@ public class Hero extends MongoBase {
|
|||
this.star = initStar;
|
||||
this.equipByPositionMap = new HashMap<>();
|
||||
this.soulEquipByPositionMap = new HashMap<>();
|
||||
this.especialEquip = "";
|
||||
|
||||
if(initStar!=scHero.getStar()){
|
||||
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
|
||||
|
@ -207,9 +206,9 @@ public class Hero extends MongoBase {
|
|||
updateString("starBreakId",starBreakId);
|
||||
this.starBreakId = starBreakId;
|
||||
}
|
||||
public void updateEspecial(String especialEquip){
|
||||
this.especialEquip = especialEquip;
|
||||
updateString("especialEquip",especialEquip);
|
||||
public void updateEspecial(int especialEquipLevel){
|
||||
this.especialEquipLevel = especialEquipLevel;
|
||||
updateString("especialEquipLevel",especialEquipLevel);
|
||||
}
|
||||
|
||||
|
||||
|
@ -222,7 +221,7 @@ public class Hero extends MongoBase {
|
|||
this.isLock = isLock;
|
||||
}
|
||||
|
||||
public String getEspecialEquip() {
|
||||
return especialEquip;
|
||||
public int getEspecialEquipLevel() {
|
||||
return especialEquipLevel;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -127,11 +127,6 @@ public class HeroLogic{
|
|||
for(Equip equipInfo: equipMap.values()){
|
||||
equipList.add(CBean2Proto.getEquipProto(equipInfo));
|
||||
}
|
||||
}else if(type==2){
|
||||
Map<String, EspecialEquip> especialEquipMap = user.getEquipManager().getEspecialEquipMap();
|
||||
for(EspecialEquip especialEquipInfo: especialEquipMap.values()){
|
||||
equipList.add(CBean2Proto.getEquipProto(especialEquipInfo));
|
||||
}
|
||||
}else if(type==3){
|
||||
//魂印
|
||||
Map<String, SoulEquip> stringSoulEquipMap = user.getEquipManager().getSoulEquipMap();
|
||||
|
@ -797,7 +792,7 @@ public class HeroLogic{
|
|||
//删除hero
|
||||
CommonProto.Drop.Builder baseBuilder = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE);
|
||||
// recyleHeroBySystem(user,removeHeroIds);
|
||||
targetHero.upStar( 1 );
|
||||
rankUpHeroExecute(targetHero,1,8);
|
||||
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar()));
|
||||
if(targetHero.getStar()>=5&&targetHero.getStar()!=15){
|
||||
if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5)
|
||||
|
@ -815,6 +810,13 @@ public class HeroLogic{
|
|||
ChatLogic.getInstance().sendSysChatMessage(message,Global.DILIGENT,targetHero.getTemplateId(),0,0,0,0,0);
|
||||
}
|
||||
}
|
||||
private void rankUpHeroExecute(Hero hero,int starCount,int unlockEspecialEquipStar) throws Exception {
|
||||
//是否解锁法宝
|
||||
if(hero.getStar()<unlockEspecialEquipStar&&hero.getStar()+starCount>=unlockEspecialEquipStar){
|
||||
hero.updateEspecial(0);
|
||||
}
|
||||
hero.upStar( 1 );
|
||||
}
|
||||
|
||||
|
||||
//初始属性*(1+化境增长)*等级系数 + 初始属性*突破系数
|
||||
|
@ -986,24 +988,10 @@ public class HeroLogic{
|
|||
}
|
||||
}
|
||||
//法宝技能
|
||||
String especialEquipId = hero.getEspecialEquip();
|
||||
if(!StringUtil.isEmpty(especialEquipId)){
|
||||
EspecialEquip especialEquip = user.getEquipManager().getEspecialEquipMap().get(especialEquipId);
|
||||
SEquipTalismana sEquipTalismana = SEquipTalismana.equipTalismanaStarMap.get(especialEquip.getEquipId()).get(especialEquip.getStar());
|
||||
for(int skill:sEquipTalismana.getOpenSkillRules()){
|
||||
sb.append(skill).append(DIVISION);
|
||||
}
|
||||
int especialEquip = hero.getEspecialEquipLevel();
|
||||
if(especialEquip>=0){
|
||||
|
||||
int[][] specialSkill = sEquipTalismana.getSpecialSkill();
|
||||
for(int i = 0 ; i < specialSkill.length;i++){
|
||||
if(tempHero.getProfession()==specialSkill[i][0]){
|
||||
sb.append(specialSkill[i][1]).append(DIVISION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return sb;
|
||||
}
|
||||
|
||||
|
@ -1257,14 +1245,11 @@ public class HeroLogic{
|
|||
|
||||
}
|
||||
//法宝加成
|
||||
String especialEquip = hero.getEspecialEquip();
|
||||
if(!StringUtil.isEmpty(especialEquip)){
|
||||
|
||||
Map<String, EspecialEquip> especialEquipMap = user.getEquipManager().getEspecialEquipMap();
|
||||
EspecialEquip myEspecial = especialEquipMap.get(especialEquip);
|
||||
if(myEspecial!=null){
|
||||
int equipTempId = myEspecial.getEquipId();
|
||||
int tempStar = myEspecial.getStar();
|
||||
int heroStar = hero.getStar();
|
||||
if(scHero.getEquipTalismana()!=null&&scHero.getEquipTalismana().length>0&&heroStar>=scHero.getEquipTalismana()[0]){//判断是否解锁法宝
|
||||
int equipTempId = scHero.getEquipTalismana()[1];
|
||||
int tempStar = hero.getEspecialEquipLevel();
|
||||
Map<Integer, Map<Integer, SEquipTalismana>> equipTalismanaMap = SEquipTalismana.equipTalismanaStarMap;
|
||||
SEquipTalismana equipTali = equipTalismanaMap.get(equipTempId).get(tempStar);
|
||||
combinedAttribute(equipTali.getProperty(),heroAllAttribute);
|
||||
|
@ -1279,7 +1264,6 @@ public class HeroLogic{
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//魂印加成
|
||||
Iterator<Map.Entry<Integer, String>> soulIterator = hero.getSoulEquipByPositionMap().entrySet().iterator();
|
||||
|
@ -1534,7 +1518,7 @@ public class HeroLogic{
|
|||
throw new ErrorCodeException(ErrorCode.HERO_LEVE_LOW);
|
||||
}
|
||||
}
|
||||
hero.updateEspecial(equipIds.get(0));
|
||||
// hero.updateEspecial(equipIds.get(0));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1700,7 +1684,7 @@ public class HeroLogic{
|
|||
hero.removeEquip(position);
|
||||
}
|
||||
}else if(type==2){
|
||||
hero.updateEspecial("");
|
||||
// hero.updateEspecial("");
|
||||
}
|
||||
|
||||
//发送成功消息
|
||||
|
|
|
@ -186,24 +186,12 @@ public class ItemLogic {
|
|||
* @param equipIdsList
|
||||
* @throws Exception
|
||||
*/
|
||||
public void decomposeEspecialEquip(ISession iSession, List<String> equipIdsList) throws Exception {
|
||||
private void decomposeEspecialEquip(ISession iSession, List<String> equipIdsList) throws Exception {
|
||||
int msgId = MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE;
|
||||
int uid = iSession.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
EquipManager equipManager = user.getEquipManager();
|
||||
Map<Integer,Integer> reward = new HashMap<>();
|
||||
for (String equipId : equipIdsList) {
|
||||
EspecialEquip equip= equipManager.getEspecialEquipMap().get(equipId);
|
||||
int[][] resolve = SEquipTalismana.equipTalismanaStarMap.get(equip.getEquipId()).get(equip.getStar()).getResolve();
|
||||
for(int i = 0;i<resolve.length;i++){
|
||||
if(reward.get(resolve[i][0])==null){
|
||||
reward.put(resolve[i][0],resolve[i][1]);
|
||||
}else{
|
||||
reward.put(resolve[i][0],reward.get(resolve[i][0])+resolve[i][1]);
|
||||
}
|
||||
}
|
||||
equipManager.removeEspecialEquip(equipId);
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.dropMap(user,reward,BIReason.DECOMPOS_EQUIP_REWARD);
|
||||
sendUseAndPriceItemMessage(iSession, msgId, drop);
|
||||
}
|
||||
|
@ -449,76 +437,34 @@ public class ItemLogic {
|
|||
/**
|
||||
* 法宝进阶
|
||||
* @param session
|
||||
* @param equipId
|
||||
* @param heroId
|
||||
* @param materials
|
||||
*/
|
||||
public void especialEquipUpStar(ISession session, String equipId, List<HeroInfoProto.ConsumeMaterial> materials) throws Exception {
|
||||
public void especialEquipUpStar(ISession session, String heroId) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
EspecialEquip especialEquip = user.getEquipManager().getEspecialEquipMap().get(equipId);
|
||||
if(especialEquip == null){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("not exists"));
|
||||
Hero hero = user.getHeroManager().getHero(heroId);
|
||||
if(hero==null){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("当前法宝不存在"));
|
||||
}
|
||||
SEquipTalismana sEquipTalismana = SEquipTalismana.equipTalismanaStarMap.get(especialEquip.getEquipId()).get(especialEquip.getStar());
|
||||
Map<Integer, SEquipTalismanaRankup> equipTalismanaRankupMap = STableManager.getConfig(SEquipTalismanaRankup.class);
|
||||
boolean success = true;
|
||||
//按槽位遍历所需材料
|
||||
if(sEquipTalismana.getRankupConsumeMaterial().length != materials.size()){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("卡槽数量不对"));
|
||||
}
|
||||
for(int i = 0 ; i <sEquipTalismana.getRankupConsumeMaterial().length;i++){
|
||||
//遍历前端传进材料
|
||||
for(HeroInfoProto.ConsumeMaterial material:materials){
|
||||
if(material.getPosition()!=sEquipTalismana.getRankupConsumeMaterial()[i][0]){
|
||||
success=false;
|
||||
continue;
|
||||
}
|
||||
SEquipTalismanaRankup sEquipTalismanaRankup = equipTalismanaRankupMap.get(sEquipTalismana.getRankupConsumeMaterial()[i][1]);
|
||||
for(String materEquip:material.getHeroIdsList()){
|
||||
if(equipId.equals(materEquip)){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("不能吞自己"));
|
||||
}
|
||||
EspecialEquip especialEquip1 = user.getEquipManager().getEspecialEquipMap().get(materEquip);
|
||||
//材料种类判断
|
||||
if(sEquipTalismanaRankup.getIssame()==1){
|
||||
if(especialEquip1.getEquipId()!=especialEquip.getEquipId()){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_ESPECIAL_EQUIP_UP_ITEM_NOT);
|
||||
}
|
||||
}
|
||||
if(especialEquip1.getStar()!=sEquipTalismanaRankup.getStarLimit()){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_ESPECIAL_EQUIP_UP_ITEM_NOT);
|
||||
}
|
||||
if(sEquipTalismanaRankup.getIsId()!=0&&sEquipTalismanaRankup.getIsId()!=especialEquip1.getEquipId()){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_ESPECIAL_EQUIP_UP_ITEM_NOT);
|
||||
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
|
||||
if(scHero.getEquipTalismana()==null && hero.getStar()<scHero.getEquipTalismana()[0]){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("当前英雄无法升级法宝"));
|
||||
}
|
||||
|
||||
}
|
||||
//材料数量判断
|
||||
if(material.getHeroIdsList().size()<sEquipTalismana.getRankupConsumeMaterial()[i][2]){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_ESPECIAL_EQUIP_UP_ITEM_NOT);
|
||||
}
|
||||
success=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
int especialEquipId = scHero.getEquipTalismana()[1];
|
||||
SEquipTalismana sEquipTalismana = SEquipTalismana.equipTalismanaStarMap.get(especialEquipId).get(hero.getEspecialEquipLevel());
|
||||
boolean b = ItemUtil.itemCost(user, sEquipTalismana.getRankupBasicMaterial(), BIReason.ESPECIAL_EQUIP_UP_LEVEL_CONSUME, 1);
|
||||
if(success&&b){
|
||||
for(HeroInfoProto.ConsumeMaterial material:materials){
|
||||
List<String> heroIdsList = material.getHeroIdsList();
|
||||
Iterator<String> iterator = heroIdsList.iterator();
|
||||
while (iterator.hasNext()){
|
||||
user.getEquipManager().removeEspecialEquip(iterator.next());
|
||||
}
|
||||
}
|
||||
user.getEquipManager().upStarEspecialEquip(equipId);
|
||||
Poster.getPoster().dispatchEvent(new EspecialEquipUpEvent(user.getId(),0, user.getEquipManager().getEspecialEquipMap().get(equipId).getStar()));
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP,especialEquip.getStar());
|
||||
if(b){
|
||||
hero.updateEspecial(hero.getEspecialEquipLevel()+1);
|
||||
Poster.getPoster().dispatchEvent(new EspecialEquipUpEvent(user.getId(),especialEquipId, hero.getEspecialEquipLevel()));
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP,hero.getEspecialEquipLevel());
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true);
|
||||
if(especialEquip.getStar()>=SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_equiptalisman_content_parm)){
|
||||
SItem sItem = SItem.getsItemMap().get(especialEquip.getEquipId());
|
||||
if(hero.getEspecialEquipLevel()>=SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_equiptalisman_content_parm)){
|
||||
SItem sItem = SItem.getsItemMap().get(especialEquipId);
|
||||
if(sItem.getQuantity()<5){
|
||||
return;
|
||||
}
|
||||
String message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_equiptalisman_content", new Object[]{user.getPlayerInfoManager().getNickName(), sItem.getName(),especialEquip.getStar()});
|
||||
String message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_equiptalisman_content", new Object[]{user.getPlayerInfoManager().getNickName(), sItem.getName(),hero.getEspecialEquipLevel()});
|
||||
ChatLogic.getInstance().sendSysChatMessage(message,Global.DILIGENT,sItem.getId(),0,0,0,0,0);
|
||||
}
|
||||
}else{
|
||||
|
|
|
@ -631,10 +631,6 @@ public class PlayerLogic {
|
|||
for(String equipId : hero.getSoulEquipByPositionMap().values()){
|
||||
builder.addEquip(CBean2Proto.getEquipProto(soulEquipMap.get(equipId)));
|
||||
}
|
||||
String especialEquip = hero.getEspecialEquip();
|
||||
if(!StringUtil.isEmpty(especialEquip)){
|
||||
builder.addEquip(CBean2Proto.getEquipProto(equipManager.getEspecialEquipMap().get(especialEquip)));
|
||||
}
|
||||
builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute));
|
||||
builder.setHero(CBean2Proto.getHero(hero));
|
||||
MessageUtil.sendMessage(session,1,resMsgId,builder.build(),true);
|
||||
|
|
|
@ -79,7 +79,7 @@ public class CBean2Proto {
|
|||
return itemProto;
|
||||
}
|
||||
|
||||
public static CommonProto.Hero getHero(Hero hero) throws Exception { Map<Integer, String> equipByPositionMap = hero.getEquipByPositionMap();
|
||||
public static CommonProto.Hero getHero(Hero hero){ Map<Integer, String> equipByPositionMap = hero.getEquipByPositionMap();
|
||||
List<String> equipList = new ArrayList<>();
|
||||
if(equipByPositionMap!=null && !equipByPositionMap.isEmpty()){
|
||||
equipList.addAll(equipByPositionMap.values());
|
||||
|
@ -104,7 +104,7 @@ public class CBean2Proto {
|
|||
.setStarBreakId(hero.getStarBreakId())
|
||||
.setCreateTime(hero.getCreateTime())
|
||||
.addAllEquipIdList(equipList)
|
||||
.addEspecialEquip(hero.getEspecialEquip())
|
||||
.setEspecialEquipLevel(hero.getEspecialEquipLevel())
|
||||
.addAllSoulPos(soulPoss)
|
||||
.setLockState(hero.getIsLock())
|
||||
.build();
|
||||
|
@ -154,10 +154,6 @@ public class CBean2Proto {
|
|||
.setRebuildLevel(tempEquip.getRebuildLevel())
|
||||
.setSkillId(tempEquip.getSkill());
|
||||
}
|
||||
if(equip instanceof EspecialEquip){
|
||||
EspecialEquip tempEquip =(EspecialEquip)equip;
|
||||
equipProto.setRebuildLevel(tempEquip.getStar());
|
||||
}
|
||||
if(equip instanceof SoulEquip){
|
||||
equipProto.setRebuildLevel(((SoulEquip) equip).getLevel());
|
||||
equipProto.setExp(((SoulEquip) equip).getExp());
|
||||
|
|
|
@ -710,7 +710,6 @@ public class ItemUtil {
|
|||
public static void addItemToTemporaryBag(User user, Map<Integer, Integer> itemMap, Map<Integer, Integer> equipMap, CommonProto.Drop.Builder dropBuilder) throws Exception {
|
||||
List<CommonProto.Item> itemProtoList = new ArrayList<>();
|
||||
List<CommonProto.Equip> equipProtoList = new ArrayList<>();
|
||||
List<CommonProto.Equip> especialEquip = new ArrayList<>();
|
||||
List<CommonProto.Equip> soulEquiplist = new ArrayList<>();
|
||||
MapManager mapManager = user.getMapManager();
|
||||
TemporaryItems temporaryItems = mapManager.getTemporaryItems();
|
||||
|
@ -736,7 +735,6 @@ public class ItemUtil {
|
|||
LOGGER.info("the uid={},the curMapId={},add item={},addItemNum={},totalItemNum={}",user.getId(),user.getMapManager().getCurMapId(),entry.getKey(),entry.getValue(),item.getItemNum());
|
||||
}
|
||||
Set<Equip> equips = temporaryItems.equips;
|
||||
Set<EspecialEquip> especialEquips = temporaryItems.especialEquips;
|
||||
Set<SoulEquip> soulEquips = temporaryItems.soulEquips;
|
||||
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
|
||||
SEquipConfig sEquipConfig = STableManager.getConfig(SEquipConfig.class).get(entry.getKey());
|
||||
|
@ -751,19 +749,6 @@ public class ItemUtil {
|
|||
}
|
||||
LOGGER.info("the uid={},the curMapId={},add equip={},equipNum={},totalEquipNum={}",user.getId(),user.getMapManager().getCurMapId(),entry.getKey(),nums,equips.size());
|
||||
}
|
||||
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
|
||||
Map<Integer, SEquipTalismana> sEquipTalismanaMap = SEquipTalismana.equipTalismanaStarMap.get(entry.getKey());
|
||||
if (sEquipTalismanaMap==null||sEquipTalismanaMap.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
Integer nums = entry.getValue();
|
||||
for(int i=0;i<nums;i++){
|
||||
EspecialEquip equip = new EspecialEquip(user.getId(), entry.getKey());
|
||||
especialEquips.add(equip);
|
||||
especialEquip.add(CBean2Proto.getEquipProto(equip));
|
||||
}
|
||||
LOGGER.info("the uid={},the curMapId={},add equip={},equipNum={},totalEquipNum={}",user.getId(),user.getMapManager().getCurMapId(),entry.getKey(),nums,especialEquips.size());
|
||||
}
|
||||
|
||||
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
|
||||
SEquipSign sEquipSign = SEquipSign.getsEquipSignMap().get(entry.getKey()*100+1);
|
||||
|
@ -783,7 +768,6 @@ public class ItemUtil {
|
|||
if (dropBuilder != null) {
|
||||
dropBuilder.addAllItemlist(itemProtoList);
|
||||
dropBuilder.addAllEquipId(equipProtoList);
|
||||
dropBuilder.addAllEspecialEquipId(especialEquip);
|
||||
dropBuilder.addAllSoulEquip(soulEquiplist);
|
||||
}
|
||||
|
||||
|
@ -801,9 +785,8 @@ public class ItemUtil {
|
|||
public static void addTemporaryItemToBag(User user, TemporaryItems temporaryItems, boolean isVictory) throws Exception {
|
||||
Map<Integer, Item> items = temporaryItems.items;
|
||||
Set<Equip> equips = temporaryItems.equips;
|
||||
Set<EspecialEquip> especialEquips = temporaryItems.especialEquips;
|
||||
Set<SoulEquip> soulEquips= temporaryItems.soulEquips;
|
||||
if (items.isEmpty() && equips.isEmpty() && especialEquips.isEmpty()&&soulEquips.isEmpty()) {
|
||||
if (items.isEmpty() && equips.isEmpty()&&soulEquips.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Map<Integer, Item> itemMap = user.getItemManager().getItemMap();
|
||||
|
@ -851,9 +834,6 @@ public class ItemUtil {
|
|||
for(Equip equip:equips){
|
||||
equipsToBag(user,isVictory,equip,rewardStr);
|
||||
}
|
||||
for(EspecialEquip especialEquip:especialEquips){
|
||||
equipsToBag(user,isVictory,especialEquip,rewardStr);
|
||||
}
|
||||
for(SoulEquip soulEquip:soulEquips){
|
||||
equipsToBag(user,isVictory,soulEquip,rewardStr);
|
||||
}
|
||||
|
@ -887,8 +867,6 @@ public class ItemUtil {
|
|||
}
|
||||
if(equip instanceof Equip){
|
||||
equipManager.addEquip(user,(Equip)equip);
|
||||
}else if(equip instanceof EspecialEquip){
|
||||
equipManager.addEspecialEquip(user,(EspecialEquip) equip);
|
||||
}else if(equip instanceof SoulEquip){
|
||||
equipManager.addSoulEquip((SoulEquip)equip);
|
||||
}
|
||||
|
@ -1023,25 +1001,6 @@ public class ItemUtil {
|
|||
StringBuilder reward = new StringBuilder();
|
||||
List<CommonProto.Equip> equipList = new CopyOnWriteArrayList<>();
|
||||
List<CommonProto.Equip> especialEquip = new CopyOnWriteArrayList<>();
|
||||
int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit);
|
||||
int especialNum = equipMap.entrySet().stream().filter(k ->{
|
||||
int itemType = SItem.getsItemMap().get(k.getKey()).getItemType();
|
||||
if(itemType==GlobalItemType.ESPECIAL_EQUIP){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}).collect(Collectors.toSet()).size();
|
||||
if(especialNum>0){
|
||||
if (user.getEquipManager().getEspecialEquipMap().size() +especialNum>=limit){
|
||||
String bagTitle = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_title");
|
||||
String bagContent = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_txt");
|
||||
String bagReward = getLimitReward(equipMap,filter);
|
||||
int nowTime =(int) (TimeUtils.now()/1000);
|
||||
MailLogic.getInstance().sendMail(user.getId(),bagTitle,bagContent,bagReward,nowTime,Global.MAIL_EFFECTIVE_TIME);
|
||||
MessageUtil.nofityBagIsFull(user);
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
|
||||
int itemType = SItem.getsItemMap().get(entry.getKey()).getItemType();
|
||||
if(!filter.contains(itemType)){
|
||||
|
@ -1151,13 +1110,6 @@ public class ItemUtil {
|
|||
equipManager.addEquip(user,equip);
|
||||
equipList.add(CBean2Proto.getEquipProto(equip));
|
||||
msgTem="lamp_lottery_equip_content";
|
||||
}else if(itemType==GlobalItemType.ESPECIAL_EQUIP){
|
||||
EspecialEquip especialEquip = new EspecialEquip(user.getId(),equipId);
|
||||
especialEquip.setStar(item.getQuantity());
|
||||
especialEquipList.add(CBean2Proto.getEquipProto(especialEquip));
|
||||
equipManager.addEspecialEquip(user,especialEquip);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP, especialEquip.getStar());
|
||||
msgTem="lamp_lottery_equiptalisman_content";
|
||||
}else if(itemType==GlobalItemType.SOUL_MARK){
|
||||
SoulEquip soulEquip = new SoulEquip(user.getId(),equipId);
|
||||
equipManager.addSoulEquip(soulEquip);
|
||||
|
@ -1495,12 +1447,6 @@ public class ItemUtil {
|
|||
return true;
|
||||
}
|
||||
break;
|
||||
case GlobalItemType.ESPECIAL_EQUIP:
|
||||
int especialLimit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit);
|
||||
if (user.getEquipManager().getEspecialEquipMap().size()+entry.getValue() >=especialLimit){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -47,6 +47,8 @@ public class SCHero implements BaseConfig{
|
|||
|
||||
private int[][] openPassiveSkillRules;
|
||||
|
||||
private int[] equipTalismana;
|
||||
|
||||
private int[][] secondaryFactor;
|
||||
|
||||
private int quality;
|
||||
|
@ -276,4 +278,8 @@ public class SCHero implements BaseConfig{
|
|||
public int[] getGrowthSwitch() {
|
||||
return growthSwitch;
|
||||
}
|
||||
|
||||
public int[] getEquipTalismana() {
|
||||
return equipTalismana;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue