法宝重做

back_recharge
lvxinran 2020-04-02 15:14:30 +08:00
parent eb2259ac92
commit d1cf55e9ac
13 changed files with 62 additions and 263 deletions

View File

@ -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)){

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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<>();

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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("");
}
//发送成功消息

View File

@ -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{

View File

@ -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);

View File

@ -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());

View File

@ -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;
}

View File

@ -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;
}
}