皮肤逻辑提交

back_recharge
lvxinran 2020-11-06 10:21:12 +08:00
parent f3af1b0c4b
commit 841d2aa8a8
9 changed files with 49 additions and 8 deletions

View File

@ -3218,7 +3218,9 @@ public class MapLogic {
for(String id:heroIds){ for(String id:heroIds){
Hero hero = heroManager.getHero(id); Hero hero = heroManager.getHero(id);
String heroSkill = HeroLogic.getInstance().getHeroSkills(user,hero,new StringBuilder()).toString(); String heroSkill = HeroLogic.getInstance().getHeroSkills(user,hero,new StringBuilder()).toString();
TrailHero trailHero = new TrailHero(hero.getTemplateId(),HeroLogic.getInstance().calHeroNotBufferAttribute(user,hero,false,0),hero.getStar(),heroSkill,hero.getLevel()); int skinTime = heroManager.getSkinInfo().getOrDefault(hero.getSkin(), 0);
TrailHero trailHero = new TrailHero(hero.getTemplateId(),HeroLogic.getInstance().calHeroNotBufferAttribute(user,hero,false,0),hero.getStar(),heroSkill,hero.getLevel(),hero.getSkin(),skinTime);
heroInfo.put(id,trailHero); heroInfo.put(id,trailHero);
} }
mapManager.updateTrailHeroInfo(heroInfo); mapManager.updateTrailHeroInfo(heroInfo);

View File

@ -19,6 +19,10 @@ public class TrailHero {
private int level; private int level;
private int skinId;
private int skinTime;
public int getTmpId() { public int getTmpId() {
return tmpId; return tmpId;
} }
@ -43,12 +47,22 @@ public class TrailHero {
this.star = star; this.star = star;
} }
public TrailHero(int tmpId, Map<Integer, Integer> property, int star,String heroSkills,int level) { public TrailHero(int tmpId, Map<Integer, Integer> property, int star,String heroSkills,int level,int skinId,int skinTime) {
this.tmpId = tmpId; this.tmpId = tmpId;
this.property = property; this.property = property;
this.star = star; this.star = star;
this.heroSkills = heroSkills; this.heroSkills = heroSkills;
this.level = level; this.level = level;
this.skinId = skinId;
this.skinTime = skinTime;
}
public int getSkinId() {
return skinId;
}
public int getSkinTime() {
return skinTime;
} }
public String getHeroSkills() { public String getHeroSkills() {

View File

@ -30,6 +30,7 @@ import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.MonsterUtil; import com.ljsd.jieling.util.MonsterUtil;
import config.SArenaRobotConfig; import config.SArenaRobotConfig;
import config.SCHero; import config.SCHero;
import jdk.nashorn.internal.ir.debug.ObjectSizeCalculator;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import util.TimeUtils; import util.TimeUtils;
@ -241,6 +242,7 @@ public class BehaviorUtil {
.setProperty(property.substring(0, property.length()-1)) .setProperty(property.substring(0, property.length()-1))
.setPosition(teamPosHeroInfo.getPosition()) .setPosition(teamPosHeroInfo.getPosition())
.setStar(hero.getStar()) .setStar(hero.getStar())
.setSkinId(hero.getSkin())
.build(); .build();
heroFightInfos.add(heroFightInfo); heroFightInfos.add(heroFightInfo);
} }

View File

@ -105,6 +105,7 @@ public class TowerMap extends AbstractMap {
.setHeroHp(calHp) .setHeroHp(calHp)
.setStar(trailHero.getStar()) .setStar(trailHero.getStar())
.setLevel(trailHero.getLevel()) .setLevel(trailHero.getLevel())
.setSkinId(trailHero.getSkinId())
.build(); .build();
mapEnterResponse.addInfos(info); mapEnterResponse.addInfos(info);
} }

View File

@ -125,5 +125,9 @@ public class HeroManager extends MongoBase {
skinInfo.put(skinId,time); skinInfo.put(skinId,time);
updateString("skinInfo."+skinId,time); updateString("skinInfo."+skinId,time);
} }
public void removeSkin(int skinId){
skinInfo.remove(skinId);
removeString(getMongoKey()+"skinInfo."+skinId);
}
} }

View File

@ -24,6 +24,7 @@ import com.ljsd.jieling.util.MonsterUtil;
import config.SArenaRobotConfig; import config.SArenaRobotConfig;
import config.SCHero; import config.SCHero;
import org.luaj.vm2.LuaValue; import org.luaj.vm2.LuaValue;
import util.TimeUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -253,6 +254,7 @@ public class FightUtil {
.setProperty(property.substring(0, property.length()-1)) .setProperty(property.substring(0, property.length()-1))
.setPosition(teamPosHeroInfo.getPosition()) .setPosition(teamPosHeroInfo.getPosition())
.setStar(trailHero.getStar()) .setStar(trailHero.getStar())
.setSkinId(trailHero.getSkinId()==0?0:(trailHero.getSkinTime()==-1||trailHero.getSkinTime()> TimeUtils.nowInt()?trailHero.getSkinId():0))
.build(); .build();
heroFightInfos.add(heroFightInfo); heroFightInfos.add(heroFightInfo);
} }
@ -327,6 +329,7 @@ public class FightUtil {
.setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1)) .setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1))
.setProperty(property.substring(0, property.length()-1)) .setProperty(property.substring(0, property.length()-1))
.setPosition(teamPosHeroInfo.getPosition()) .setPosition(teamPosHeroInfo.getPosition())
.setSkinId(hero.getSkin())
.setStar(hero.getStar()) .setStar(hero.getStar())
.build(); .build();
heroFightInfos.add(heroFightInfo); heroFightInfos.add(heroFightInfo);

View File

@ -3246,7 +3246,19 @@ public class HeroLogic{
User user = UserManager.getUser(session.getUid()); User user = UserManager.getUser(session.getUid());
Map<Integer, Integer> skinInfo = user.getHeroManager().getSkinInfo(); Map<Integer, Integer> skinInfo = user.getHeroManager().getSkinInfo();
HeroInfoProto.GetAllSkinResponse.Builder response = HeroInfoProto.GetAllSkinResponse.newBuilder(); HeroInfoProto.GetAllSkinResponse.Builder response = HeroInfoProto.GetAllSkinResponse.newBuilder();
Set<Integer> removeId = new HashSet<>(skinInfo.size()+1);
if(!skinInfo.isEmpty()){ if(!skinInfo.isEmpty()){
for(Map.Entry<Integer,Integer> entry:skinInfo.entrySet()){
if(entry.getValue()!=-1&&entry.getValue()<TimeUtils.nowInt()){
removeId.add(entry.getKey());
}
}
if(!removeId.isEmpty()){
for(int remove :removeId){
user.getHeroManager().removeSkin(remove);
}
}
skinInfo.forEach((k,v)->response.addSkinInfo(CommonProto.SkinInfo.newBuilder().setSkinId(k).setOverTime(v).build())); skinInfo.forEach((k,v)->response.addSkinInfo(CommonProto.SkinInfo.newBuilder().setSkinId(k).setOverTime(v).build()));
} }
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);

View File

@ -193,16 +193,18 @@ public class ItemLogic {
if(sHeroSkin==null){ if(sHeroSkin==null){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
} }
// if(skinInfo.containsKey(sHeroSkin.getType())){ if(skinInfo.containsKey(sHeroSkin.getType())){
// if(skinInfo.get(sHeroSkin.getType())==-1||skinInfo.get(sHeroSkin.getType())> TimeUtils.nowInt()){ if(skinInfo.get(sHeroSkin.getType())==-1||skinInfo.get(sHeroSkin.getType())> TimeUtils.nowInt()){
// throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
// } }
// } }
int time; int time;
if(sHeroSkin.getTime()==0){ if(sHeroSkin.getTime()==0){
time = -1; time = -1;
}else{ }else{
time = sHeroSkin.getTime()+TimeUtils.nowInt(); // time =TimeUtils.nowInt()+120;
time =(int)(sHeroSkin.getTime()*TimeUtils.DAY/1000+TimeUtils.nowInt());
} }
boolean use = ItemUtil.itemCost(user,new int[][]{{item.getItemId(),item.getItemNum()}},BIReason.SKIN_USE_CONSUME,1); boolean use = ItemUtil.itemCost(user,new int[][]{{item.getItemId(),item.getItemNum()}},BIReason.SKIN_USE_CONSUME,1);

View File

@ -317,6 +317,7 @@ public class FightDataUtil {
} }
unitData.set("passivity", getPassivity(skillIds)); unitData.set("passivity", getPassivity(skillIds));
unitData.set("property", getProperty(property)); unitData.set("property", getProperty(property));
unitData.set("skinId",data.getSkinId());
return unitData; return unitData;
} }