新增神魔转职功能相关修改

back_recharge
yuanshuai 2022-03-21 15:03:40 +08:00
parent dc0c9819bd
commit cc06e2f19b
18 changed files with 62 additions and 51 deletions

View File

@ -1,5 +1,7 @@
package com.ljsd.fight;
import config.SCHero;
import java.util.Map;
public class FamilyHeroInfo {
@ -10,6 +12,7 @@ public class FamilyHeroInfo {
private Map<Integer,Long> attribute;
private int position;
private int godSoulLv;
private int propertyId;
public int getTempleteId() {
return templeteId;
@ -27,6 +30,10 @@ public class FamilyHeroInfo {
return godSoulLv;
}
public int getPropertyId() {
return propertyId;
}
public Map<Integer, Long> getAttribute() {
return attribute;
}
@ -52,13 +59,19 @@ public class FamilyHeroInfo {
}
public FamilyHeroInfo(int templeteId, int level, int star, Map<Integer, Long> attribute, int position,int godSoulLv) {
public FamilyHeroInfo(int templeteId, int level, int star, Map<Integer, Long> attribute, int position,int godSoulLv,int propertyId) {
this.templeteId = templeteId;
this.level = level;
this.star = star;
this.attribute = attribute;
this.position = position;
this.godSoulLv=godSoulLv;
if (propertyId==0){
this.propertyId= SCHero.getsCHero().get(templeteId).getPropertyName();
}else{
this.propertyId=propertyId;
}
}
public FamilyHeroInfo(int templeteId, int level, int star, Map<Integer, Long> attribute) {

View File

@ -66,7 +66,7 @@ public class SaveHeroChangeRequestHandler extends BaseHandler<HeroInfoProto.Save
throw new ErrorCodeException(ErrorCode.ITEM_DECOMPOSE_HERO_TEAM);
}
int propertyName = hero1.getPropertyName();
int propertyName = hero.getPropertyId();
int heroStar = hero.getStar();
Map<Integer, Integer> integerIntegerMap = SLotterySetting.getChangeIds().get(heroStar);
if(null == integerIntegerMap|| integerIntegerMap.size() ==0){

View File

@ -177,7 +177,7 @@ public class Cmd_role_gm extends GmRoleAbstract {
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
int robotLevel = sArenaRobotConfig.getRoleLv();
Map<Integer, Long> robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, 0, differDemonsId, differDemonsLv, false);
heroAllAttribute.put(heroTid.toString(), new FamilyHeroInfo(heroTid, robotLevel, heroStar, robotHeroAttribute,inner++,0));
heroAllAttribute.put(heroTid.toString(), new FamilyHeroInfo(heroTid, robotLevel, heroStar, robotHeroAttribute,inner++,0,0));
// String property = HeroLogic.getInstance().getRobotHeroProperty(sArenaRobotConfig,scHero,propertySb,robotHeroAttribute).toString();
}

View File

@ -11,6 +11,7 @@ import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.UserManager;
@ -233,8 +234,8 @@ public class SituationLogic {
}
int[] heroType = new int[5];
teamPosHeroInfos.forEach(hero->{
int tempId = user.getHeroManager().getHero(hero.getHeroId()).getTemplateId();
int profession = SCHero.getsCHero().get(tempId).getPropertyName();
Hero _hero = user.getHeroManager().getHero(hero.getHeroId());
int profession = _hero.getPropertyId();
heroType[profession] = heroType[profession]+1;
});
for(int[] rule:sRaceTowerConfig.getTeamRules()){

View File

@ -206,7 +206,7 @@ public class FourChallengeLogic {
}
help++;
}else {
if (SCHero.getsCHero().get(hero.getTemplateId()).getPropertyName() != campId) {
if (hero.getPropertyId() != campId) {
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE,"挑战编队英雄类型有误");
}
}

View File

@ -73,7 +73,7 @@ public class BloodLogic {
}
}
int position = heroInfo.getPosition();
heroAllAttribute.put(heroInfo.getHeroId(), new FamilyHeroInfo(hero.getTemplateId(), hero.getLevel(user.getHeroManager()),hero.getStar(), heroAttributeMap,position,hero.getGodSoulLv()));
heroAllAttribute.put(heroInfo.getHeroId(), new FamilyHeroInfo(hero.getTemplateId(), hero.getLevel(user.getHeroManager()),hero.getStar(), heroAttributeMap,position,hero.getGodSoulLv(),hero.getPropertyId()));
}
return heroAllAttribute;
}

View File

@ -200,7 +200,7 @@ public class BattleNode extends AbstractExpedition {
Map<Integer,Long> longAttribute = new HashMap<>();
robotHeroAttribute.forEach((k,v)->longAttribute.put(k,(long)v));
force+=HeroLogic.getInstance().calForce(longAttribute);
heroAllAttribute.put(id.toString(), new FamilyHeroInfo(id, property.getId(), property.getStar(), longAttribute,innerPosition++,property.getSpirits()));
heroAllAttribute.put(id.toString(), new FamilyHeroInfo(id, property.getId(), property.getStar(), longAttribute,innerPosition++,property.getSpirits(),0));
}
fightInfo.setForce(force);

View File

@ -778,7 +778,7 @@ public class ExpeditionLogic {
}
}
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(),hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(),hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))

View File

@ -70,7 +70,7 @@ public class SpecialNode extends AbstractExpedition {
int force = HeroLogic.getInstance().calForce(longAttribute);
fightInfo.setForce(force);
//试炼节点 放到第二个位置上
heroAllAttribute.put(Integer.toString(heroId), new FamilyHeroInfo(heroId,level,robot.getStar(),longAttribute,2,robot.getGodSoulLev()));
heroAllAttribute.put(Integer.toString(heroId), new FamilyHeroInfo(heroId,level,robot.getStar(),longAttribute,2,robot.getGodSoulLev(),0));
fightInfo.updateHeroSkill(String.valueOf(heroId),skills.substring(0,skills.length()-1));
// 获取灵兽信息
SRobotProperty property = STableManager.getConfig(SRobotProperty.class).get(level);

View File

@ -326,7 +326,7 @@ public class FightUtil {
} else {
propertyMap = trailHero.getProperty();
}
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, trailHero.getTmpId(), trailHero.getLevel(), propertyMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, trailHero.getPropertyId(), trailHero.getLevel(), propertyMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(trailHero.getTmpId()))
@ -373,7 +373,7 @@ public class FightUtil {
StringBuilder skillSb = new StringBuilder();
StringBuilder propertySb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
@ -442,7 +442,7 @@ public class FightUtil {
StringBuilder propertySb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
heroSkill = heroSkill + moraleSkillBuilder.toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
@ -477,14 +477,13 @@ public class FightUtil {
continue;
}
Map<Integer, Long> heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, teamId);
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
if (buffInfo.containsKey(scHero.getPropertyName())) {
CombatLogic.getInstance().bufferOneHeroAttrAfterEat(heroAttributeMap, buffInfo.get(scHero.getPropertyName()));
if (buffInfo.containsKey(hero.getPropertyId())) {
CombatLogic.getInstance().bufferOneHeroAttrAfterEat(heroAttributeMap, buffInfo.get(hero.getPropertyId()));
}
StringBuilder skillSb = new StringBuilder();
StringBuilder propertySb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
@ -530,7 +529,7 @@ public class FightUtil {
StringBuilder skillSb = new StringBuilder();
StringBuilder propertySb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
@ -723,7 +722,7 @@ public class FightUtil {
StringBuilder skillSb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
Map<Integer, Long> attributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, teamId);
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(user.getHeroManager()), attributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), attributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
@ -765,7 +764,7 @@ public class FightUtil {
StringBuilder propertySb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getCrossHeroSkillStr(crossArenaManager, hero).toString();
Map<Integer, Long> attributeMap = crossArenaManager.getHeros().get(hero.getId()).getAttributeMapByTeamBattle().get(teamId);
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(), attributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(), attributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))

View File

@ -70,8 +70,7 @@ public enum PassiveskillCalEnum {
}),//武将100级后每升一级[c]额外增加[d]
HERO_PROFESSION_ADD(129,(config,hero,heroSkillAdMap,user,teamId)->{
float[] value = config.getValue();
if(SCHero.getsCHero().get(hero.getTemplateId()).getPropertyName()!=value[0]){
if(hero.getPropertyId()!=value[0]){
return;
}
float parm = value[1];
@ -109,7 +108,7 @@ public enum PassiveskillCalEnum {
if (localHero==null) {
continue;
}
if(SCHero.getsCHero().get(localHero.getTemplateId()).getPropertyName()==value[0]){
if(hero.getPropertyId()==value[0]){
haveNum++;
}
}

View File

@ -217,7 +217,7 @@ public class HardStageLogic {
buff = SHardStageBuff.getConfigMap().get(nodeConfig.getHardStageBuff());
if (buff != null && buff.getType() == hardStageBuffLimit) {
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
if (!Arrays.stream(buff.getVocation()).boxed().anyMatch(n -> n.equals(Integer.valueOf(scHero.getPropertyName())))) {
if (!Arrays.stream(buff.getVocation()).boxed().anyMatch(n -> n.equals(Integer.valueOf(hero.getPropertyId())))) {
continue;
}
}
@ -237,7 +237,7 @@ public class HardStageLogic {
}
}
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))

View File

@ -165,7 +165,7 @@ public class HelpHeroLogic {
}
// 英雄类型
int propertyName = SCHero.getsCHero().get(hero.getTemplateId()).getPropertyName();
int propertyName = hero.getPropertyId();
// 自己的助战列表
String subKey = subKey(user.getId(), MY);
HelpHero helpHero = getHelpHeroMap(subKey).get(String.valueOf(propertyName));

View File

@ -1557,9 +1557,9 @@ public class HeroLogic {
}
if (1 == isSameClan) {
SCHero scHeroTmp = SCHero.getsCHero().get(hero.getTemplateId());
SCHero targetSHero = SCHero.getsCHero().get(targetHero.getTemplateId());
if (scHeroTmp.getPropertyName() != targetSHero.getPropertyName()) {
// SCHero scHeroTmp = SCHero.getsCHero().get(hero.getTemplateId());
// SCHero targetSHero = SCHero.getsCHero().get(targetHero.getTemplateId());
if (hero.getPropertyId() != targetHero.getPropertyId()) {
throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH);
}
}
@ -1575,7 +1575,7 @@ public class HeroLogic {
else if(consume.getType() == 2){
int itemId = Integer.parseInt(consume.getItemId());
if (!items.contains(itemId)) {
boolean camp = upStartItemCamp(scHero.getPropertyName(), itemCamp, itemId);
boolean camp = upStartItemCamp(targetHero.getPropertyId(), itemCamp, itemId);
if (!camp) {
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
}
@ -2067,12 +2067,12 @@ public class HeroLogic {
// 附身神印
if (v.getType() == 1) {
if (v.getSubId().equals(hero.getId())) {
getPurpleMansionSealSkill(v.getSealId(), tempHero, skillList);
getPurpleMansionSealSkill(v.getSealId(), hero.getPropertyId(), skillList);
}
}
// 通用神印
else {
getPurpleMansionSealSkill(v.getSealId(), tempHero, skillList);
getPurpleMansionSealSkill(v.getSealId(), hero.getPropertyId(), skillList);
}
}
});
@ -2135,13 +2135,13 @@ public class HeroLogic {
faBaoSoulSkills.add(skillId);
}
}else if(sXiuXianSkill.getFitList()[0]==1){
if (sXiuXianSkill.getFitList()[1]==tempHero.getPropertyName()){
if (sXiuXianSkill.getFitList()[1]==hero.getPropertyId()){
for (int skillId : sXiuXianSkill.getSkillId()) {
faBaoSoulSkills.add(skillId);
}
}
}else if(sXiuXianSkill.getFitList()[0]==2){
if (sXiuXianSkill.getFitList()[1]==tempHero.getProfession()){
if (sXiuXianSkill.getFitList()[1]==hero.getPropertyId()){
for (int skillId : sXiuXianSkill.getSkillId()) {
faBaoSoulSkills.add(skillId);
}
@ -2208,12 +2208,12 @@ public class HeroLogic {
// 附身神印
if (v.getType() == 1) {
if (v.getSubId().equals(hero.getId())) {
getPurpleMansionSealSkill(v.getSealId(), tempHero, skillList);
getPurpleMansionSealSkill(v.getSealId(), hero.getPropertyId(), skillList);
}
}
// 通用神印
else {
getPurpleMansionSealSkill(v.getSealId(), tempHero, skillList);
getPurpleMansionSealSkill(v.getSealId(), hero.getPropertyId(), skillList);
}
}
});
@ -2276,13 +2276,13 @@ public class HeroLogic {
faBaoSoulSkills.add(skillId);
}
}else if(sXiuXianSkill.getFitList()[0]==1){
if (sXiuXianSkill.getFitList()[1]==tempHero.getPropertyName()){
if (sXiuXianSkill.getFitList()[1]==hero.getPropertyId()){
for (int skillId : sXiuXianSkill.getSkillId()) {
faBaoSoulSkills.add(skillId);
}
}
}else if(sXiuXianSkill.getFitList()[0]==2){
if (sXiuXianSkill.getFitList()[1]==tempHero.getProfession()){
if (sXiuXianSkill.getFitList()[1]==hero.getPropertyId()){
for (int skillId : sXiuXianSkill.getSkillId()) {
faBaoSoulSkills.add(skillId);
}
@ -2315,10 +2315,10 @@ public class HeroLogic {
*
*
* @param sealId
* @param tempHero
* @param propertyId
* @param skillList
*/
private void getPurpleMansionSealSkill(int sealId, SCHero tempHero, List<Integer> skillList) {
private void getPurpleMansionSealSkill(int sealId, int propertyId, List<Integer> skillList) {
SXiuXianSkill xianSkill = STableManager.getConfig(SXiuXianSkill.class).get(sealId);
// 技能数组转list
int skillId = xianSkill.getSkillId()[0];
@ -2334,13 +2334,13 @@ public class HeroLogic {
break;
case 1:
// 阵营限制
if (tempHero.getPropertyName() == fitList[1]) {
if (propertyId == fitList[1]) {
skillList.add(skillId);
}
break;
case 2:
// 职业限制
if (tempHero.getProfession() == fitList[1]) {
if (propertyId == fitList[1]) {
skillList.add(skillId);
}
break;
@ -2396,13 +2396,12 @@ public class HeroLogic {
} else {
heroAttributeMap = calHeroFinalAttributeWhenInMap(user, hero, false, teamId);
}
return getHeroPropertyBuilder(sb, hero.getTemplateId(), hero.getLevel(user.getHeroManager()), heroAttributeMap);
return getHeroPropertyBuilder(sb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap);
}
public StringBuilder getHeroPropertyBuilder(StringBuilder sb, int tempId, int heroLevel, Map<Integer, Long> heroAttributeMap) {
public StringBuilder getHeroPropertyBuilder(StringBuilder sb, int propertyId, int heroLevel, Map<Integer, Long> heroAttributeMap) {
sb.append(heroLevel).append(DIVISION);
SCHero scHero = SCHero.getsCHero().get(tempId);
List<Integer> templatePropetyIds = transTemplateByHeroPropertyName.get(scHero.getPropertyName());
List<Integer> templatePropetyIds = transTemplateByHeroPropertyName.get(propertyId);
for (Integer templatePropetyId : templatePropetyIds) {
Long propertyValue = heroAttributeMap.get(templatePropetyId);
if (propertyValue == null) {
@ -6094,7 +6093,7 @@ public class HeroLogic {
SCHero heroConfig=SCHero.getsCHero().get(hero.getTemplateId());
SCHero bindHeroConfig=SCHero.getsCHero().get(bindHero.getTemplateId());
if (heroRankupGroup.getIsSameClan()>0){//需要同系神将
if (heroConfig.getPropertyName()!=bindHeroConfig.getPropertyName()){
if (hero.getPropertyId()!=bindHero.getPropertyId()){
return false;
}
}

View File

@ -118,7 +118,7 @@ public class MissingRoomMissionType extends AbstractMissionType{
if(star!=0&&hero.getStar()>=star){
star = 0;
}
int propertyName = SCHero.getsCHero().get(hero.getTemplateId()).getPropertyName();
int propertyName = hero.getPropertyId();
int propValue = 1<<(propertyName-1);
type = (type |propValue) ^ propValue;
}

View File

@ -395,7 +395,7 @@ public class SevenWorldLogic {
throw new ErrorCodeException(ErrorCode.CFG_NULL,"1配置表英雄找不到");
}
// 单个类型存储
map.put(scHero.getPropertyName(),map.getOrDefault(scHero.getPropertyName(), 0)+1);
map.put(hero.getPropertyId(),map.getOrDefault(hero.getPropertyId(), 0)+1);
// 全部类型存储
map.put(0,map.getOrDefault(0, 0)+1);
}

View File

@ -280,7 +280,7 @@ public class CBean2Proto {
public static HelpHero heroToHelpHero(User user,Hero hero) throws Exception {
// 获取神将类型
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
HelpTypeEnum type = HelpTypeEnum.getType(scHero.getPropertyName());
HelpTypeEnum type = HelpTypeEnum.getType(hero.getPropertyId());
// 英雄镜像
Hero heroVo = getHeroVoToHero(user, hero);

View File

@ -384,7 +384,7 @@ public class FightDataUtil {
unitData.set("type", 1);
unitData.set("quality", 1);
unitData.set("position", data.getPosition());
unitData.set("element", hero.getPropertyName());
unitData.set("element", data.getPropertyId());
unitData.set("skill", getSkill(skillIds[0],data.getSkinId()));
if(skillIds.length == 1){