diff --git a/fightmanager/src/main/java/com/ljsd/fight/FightType.java b/fightmanager/src/main/java/com/ljsd/fight/FightType.java index b6ae291f0..95ba419c3 100644 --- a/fightmanager/src/main/java/com/ljsd/fight/FightType.java +++ b/fightmanager/src/main/java/com/ljsd/fight/FightType.java @@ -31,6 +31,8 @@ public enum FightType { CrossLingMaiSecretFight(25),//灵脉秘境 ExploreShouChao(26),//兽潮来袭 ExploreXinMo(27),//心魔试炼 + ENDLESS_NEW_TEAM(28),//新无尽战斗 + TREASURE_TEAM(29),//宝物战斗 ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/ChallengeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/ChallengeHandler.java new file mode 100644 index 000000000..ae5545352 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/ChallengeHandler.java @@ -0,0 +1,182 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; +import com.ljsd.jieling.logic.dao.TeamEnum; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.fight.FightDispatcher; +import com.ljsd.jieling.logic.fight.FightUtil; +import com.ljsd.jieling.logic.fight.GameFightType; +import com.ljsd.jieling.logic.fight.PVEFightEvent; +import com.ljsd.jieling.logic.fight.result.FightResult; +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SChallengeStage; +import config.SDailyChallengeConfig; +import config.SLotterySetting; +import manager.STableManager; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author lvxinran + * @date 2020/4/24 + * @discribe + */ +@Component +public class ChallengeHandler extends BaseHandler { + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.CHALLENGE_REQUEST; + } + + @Override + public void processWithProto(ISession iSession, PlayerInfoProto.ChallengeRequest proto) throws Exception { + //MapLogic.getInstance().dailyChallenge(iSession,proto.getType(),proto.getId(), MessageTypeProto.MessageType.CHALLENGE_RESPONSE); + User user = UserManager.getUser(iSession.getUid()); + if(user == null){ + return; + } + PlayerInfoProto.ChallengeResponse.Builder builder = PlayerInfoProto.ChallengeResponse.newBuilder(); + int type = proto.getType(); //1无尽 2宝物 + int model = proto.getModel(); //1为挑战 2为扫荡 + int id = proto.getId(); + Map config = STableManager.getConfig(SLotterySetting.class); + + SChallengeStage sChallengeConfig = STableManager.getConfig(SChallengeStage.class).get(id); + SChallengeStage lastChange = STableManager.getConfig(SChallengeStage.class).get(id - 1); + if (sChallengeConfig == null) { + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + //次數 + /*boolean consume = PlayerLogic.getInstance().checkAndUpdate(user, sChallengeConfig.getPivilegeID()[1], 1); + if (!consume) { + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + }*/ + int endlessNewReplicaLexel = user.getPlayerInfoManager().getEndlessNewReplica(); + int treasureReplicaLexel = user.getPlayerInfoManager().getTreasureReplica(); + /* + 首次通关 给 保底 +总奖励 +通关奖励 + 扫荡 = 保底 +总奖励 + 没打过 保底+总奖励*奖励百分比 + */ + if(model == 2){ + //掃蕩 + if(type ==1){ + if(endlessNewReplicaLexel>id){ + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.ExplorerMapEventResponse.getNumber(), builder.build(), true); + return; + } + }else if(type == 2){ + if(treasureReplicaLexel>id){ + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.ExplorerMapEventResponse.getNumber(), builder.build(), true); + return; + } + } + //扫荡 = 保底 +总奖励 + Map comDropMap = new HashMap<>(); + /*for(int [] fix : sChallengeConfig.getFixedReward()){ + if (comDropMap.containsKey(fix[0])) { + comDropMap.put(fix[0], comDropMap.get(fix[0]) + fix[1]); + } else { + comDropMap.put(fix[0], fix[1]); + } + }*/ + for(int [] fix : sChallengeConfig.getPassReward()){ + if (comDropMap.containsKey(fix[0])) { + comDropMap.put(fix[0], comDropMap.get(fix[0]) + fix[1]); + } else { + comDropMap.put(fix[0], fix[1]); + } + } + CommonProto.Drop.Builder drop = ItemUtil.drop(user, comDropMap.entrySet().stream().map(n -> + new int[]{n.getKey(), n.getValue()}).toArray(int[][]::new), BIReason.EXPLORE_MAP_COST_RETURN); + builder.setDrop(drop); + }else{ + GameFightType fightType = GameFightType.EndlessNewTeam; + if(type ==1){ + fightType = GameFightType.EndlessNewTeam; + if(sChallengeConfig.getNextLevel()!=endlessNewReplicaLexel){ + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.ExplorerMapEventResponse.getNumber(), builder.build(), true); + return; + }else{ + user.getPlayerInfoManager().setEndlessNewReplica(id); + } + }else if(type == 2){ + fightType = GameFightType.TreasureTeam; + if(sChallengeConfig.getNextLevel()!= treasureReplicaLexel){ + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.ExplorerMapEventResponse.getNumber(), builder.build(), true); + return; + }else{ + user.getPlayerInfoManager().setTreasureReplica(id); + } + } + PVEFightEvent pveFightEvent = new PVEFightEvent(user.getId(), TeamEnum.FORMATION_NORMAL.getTeamId(), 1000, "", + fightType, 810020, 3); + FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent); + Map comDropMap = new HashMap<>(); + /*for(int [] fix : sChallengeConfig.getFixedReward()){ + if (comDropMap.containsKey(fix[0])) { + comDropMap.put(fix[0], comDropMap.get(fix[0]) + fix[1]); + } else { + comDropMap.put(fix[0], fix[1]); + } + }*/ + + //首次通关 给 保底 +总奖励 +通关奖励 + if ((int) fightResult.getCheckResult()[0] == 1){ + //赢了 + for(int [] fix : sChallengeConfig.getPassReward()){ + if (comDropMap.containsKey(fix[0])) { + comDropMap.put(fix[0], comDropMap.get(fix[0]) + fix[1]); + } else { + comDropMap.put(fix[0], fix[1]); + } + } + for(int [] fix : sChallengeConfig.getVictoryReward()){ + if (comDropMap.containsKey(fix[0])) { + comDropMap.put(fix[0], comDropMap.get(fix[0]) + fix[1]); + } else { + comDropMap.put(fix[0], fix[1]); + } + } + + }else{ + //没打过 保底+总奖励*奖励百分比 + //输了 + for(int [] fix : sChallengeConfig.getPassReward()){ + if (comDropMap.containsKey(fix[0])) { + comDropMap.put(fix[0], comDropMap.get(fix[0]) + (int)(fix[1]*0.5)); + } else { + comDropMap.put(fix[0], (int)(fix[1]*0.5)); + } + } + } + CommonProto.FightData fightData = CommonProto.FightData.newBuilder() + .setFightMaxTime(20) + .setFightSeed(fightResult.getSeed()) + .setHeroFightInfos(fightResult.getFightTeamInfo()) + .addAllMonsterList(fightResult.getMonsterTeamList()) + .setFightType(fightType.getFightType().getType()) + .setFightId(FightUtil.getFightId(user.getId(), fightType)) + .build(); + builder.setFightData(fightData); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, comDropMap.entrySet().stream().map(n -> + new int[]{n.getKey(), n.getValue()}).toArray(int[][]::new), BIReason.EXPLORE_MAP_COST_RETURN); + builder.setDrop(drop); + } + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.ExplorerMapEventResponse.getNumber(), builder.build(), true); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/ChallengeInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/ChallengeInfoHandler.java new file mode 100644 index 000000000..9a9073949 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/ChallengeInfoHandler.java @@ -0,0 +1,57 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; +import com.ljsd.jieling.logic.arena.ChallengeLogic; +import com.ljsd.jieling.logic.dao.TeamEnum; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.fight.FightDispatcher; +import com.ljsd.jieling.logic.fight.FightUtil; +import com.ljsd.jieling.logic.fight.GameFightType; +import com.ljsd.jieling.logic.fight.PVEFightEvent; +import com.ljsd.jieling.logic.fight.result.FightResult; +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; +import config.SChallengeStage; +import manager.STableManager; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +/** + * @author lvxinran + * @date 2020/4/24 + * @discribe + */ +@Component +public class ChallengeInfoHandler extends BaseHandler { + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.CHALLENGE_INFO_REQUEST; + } + + @Override + public void processWithProto(ISession iSession, PlayerInfoProto.ChallengeInfoRequest proto) throws Exception { + + User user = UserManager.getUser(iSession.getUid()); + if(user == null){ + return; + } + PlayerInfoProto.ChallengeInfoResponse.Builder builder = PlayerInfoProto.ChallengeInfoResponse.newBuilder(); + ChallengeLogic.getInstance().check(); + for (int i = 1; i <= 2; i++) { + CommonProto.ChallengeInfo.Builder info = CommonProto.ChallengeInfo.newBuilder() + .setType(i) + .setOverTime(ChallengeLogic.status[i-1]) + .setCurrentFloor(i== 1? user.getPlayerInfoManager().getEndlessNewReplica():user.getPlayerInfoManager().getTreasureReplica()); + builder.addInfo(info.build()); + } + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.CHALLENGE_INFO_RESPONSE.getNumber(), builder.build(), true); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 4a7ec929f..02211daa0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -19,6 +19,7 @@ import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; import com.ljsd.jieling.logic.activity.eventhandler.*; import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic; import com.ljsd.jieling.logic.arena.ArenaLogic; +import com.ljsd.jieling.logic.arena.ChallengeLogic; import com.ljsd.jieling.logic.championship.ChampionshipLogic; import com.ljsd.jieling.logic.dao.ServerConfig; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; @@ -466,7 +467,8 @@ public class GlobalDataManaager implements IManager { WeekCardLogic.getInstance().sendWeekCardRewardMail(session); //周卡每日刷新 WeekCardLogic.getInstance().sendWeekCardInitInfo(session); - + //TODO + ChallengeLogic.getInstance().ChallengeInfoIndication(session); // GuildChallengeLogic.getInstance().resetBossDamage(user); if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){ user.getPlayerInfoManager().updateSituationPass(new HashMap<>()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ChallengeLogic.java new file mode 100644 index 000000000..1148e815f --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ChallengeLogic.java @@ -0,0 +1,134 @@ +package com.ljsd.jieling.logic.arena; + +import com.google.gson.reflect.TypeToken; +import com.ljsd.GameApplication; +import com.ljsd.fight.ArenaRecord; +import com.ljsd.fight.FightType; +import com.ljsd.jieling.config.clazzStaticCfg.SArenaRobotStaticConfig; +import com.ljsd.jieling.core.FunctionIdEnum; +import com.ljsd.jieling.core.GlobalsDef; +import com.ljsd.jieling.core.VipPrivilegeType; +import com.ljsd.jieling.db.mongo.MongoUtil; +import com.ljsd.jieling.db.redis.RedisKey; +import com.ljsd.jieling.db.redis.RedisUtil; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.globals.Global; +import com.ljsd.jieling.handler.map.behavior.BehaviorUtil; +import com.ljsd.jieling.logic.GlobalDataManaager; +import com.ljsd.jieling.logic.GlobleSystemLogic; +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic; +import com.ljsd.jieling.logic.dao.*; +import com.ljsd.jieling.logic.dao.cross.CSPlayer; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.fight.*; +import com.ljsd.jieling.logic.fight.result.FightResult; +import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.logic.mail.MailLogic; +import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.logic.rank.RankContext; +import com.ljsd.jieling.logic.rank.RankEnum; +import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; +import com.ljsd.jieling.logic.redpacket.WelfareRedPackEvent; +import com.ljsd.jieling.logic.redpacket.WelfareRedPacketType; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.thrift.idl.CrossArenaManager; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.*; +import manager.STableManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.redis.core.ZSetOperations; +import rpc.protocols.*; +import util.MathUtils; +import util.StringUtil; +import util.TimeUtils; + +import java.util.*; + +public class ChallengeLogic { + private static final Logger LOGGER = LoggerFactory.getLogger(ChallengeLogic.class); + + private ChallengeLogic(){} + + public static class Instance { + public final static ChallengeLogic instance = new ChallengeLogic(); + } + + public static ChallengeLogic getInstance() { + return ChallengeLogic.Instance.instance; + } + /** + * 是否开启,0:未开,1:开启 + * 例子 0,1 + */ + public static int[] status = new int[2]; + /** + * 策划表配置,开启时间 + */ + //public final int[][] config; + + /*public static class Instance { + public final static FourChallengeLogic instance = new FourChallengeLogic(STableManager.getConfig(SCampTowerSetting.class).get(1).getCampOpenDay()); + } + + private FourChallengeLogic(int[][] config) { + this.config = config; + }*/ + + /** + * 首次通关 + */ + public static final int FIRST = 1; + /** + * 最低战力 + */ + public static final int MINI = 2; + + /** + * 四灵试炼标志 + */ + public static final String fc = "fc"; + + /** + * 检测开启状态 + */ + public void check() { + status[0] = 1; + status[1] = 1; + /* int [][] config = {{1,3,5,7},{2,4,6,7}}; + //status = new int[2]; + for(int i = 0; i < config.length; i++){ + for(int j = 0; j < config[i].length; j++){ + // 判断当前周几 + if (TimeUtils.getDayOfWeek() == config[i][j]) { + status[i] = 1; + break; + } + } + }*/ + } + + public void ChallengeInfoIndication(ISession session) throws Exception { + PlayerInfoProto.ChallengeInfoIndication.Builder builder = PlayerInfoProto.ChallengeInfoIndication.newBuilder(); + check(); + User user = UserManager.getUser(session.getUid()); + for (int i = 1; i <= 2; i++) { + CommonProto.ChallengeInfo.Builder info = CommonProto.ChallengeInfo.newBuilder() + .setType(i) + .setOverTime(status[i-1]) + .setCurrentFloor(i== 1? user.getPlayerInfoManager().getEndlessNewReplica():user.getPlayerInfoManager().getTreasureReplica()); + builder.addInfo(info.build()); + } + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.CHALLENGE_INFO_INDICATION_VALUE, builder.build(), true); + + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index c64cdcc3d..f1d13928d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -223,6 +223,12 @@ public class PlayerManager extends MongoBase { return architectureInfoMap; } + /** + *挑战副本等级 + */ + private int endlessNewReplica; //无尽副本 + private int treasureReplica; //宝物副本 + public void putArchitectureInfo(int key, ArchitectureInfo info) { this.architectureInfoMap.put(key,info); updateString("architectureInfoMap", architectureInfoMap); @@ -1425,4 +1431,23 @@ public class PlayerManager extends MongoBase { this.exploreEventMatchDefUid = exploreEventMatchDefUid; updateString("exploreEventMatchDefUid",exploreEventMatchDefUid); } + + + public int getEndlessNewReplica() { + return endlessNewReplica; + } + + public void setEndlessNewReplica(int endlessNewReplica) { + this.endlessNewReplica = endlessNewReplica; + updateString("endlessNewReplica",endlessNewReplica); + } + + public int getTreasureReplica() { + return treasureReplica; + } + + public void setTreasureReplica(int treasureReplica) { + this.treasureReplica = treasureReplica; + updateString("treasureReplica",treasureReplica); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/TeamEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/TeamEnum.java index 9851bc95a..4315c7632 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/TeamEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/TeamEnum.java @@ -17,6 +17,8 @@ public enum TeamEnum { TEAM_ARENA_ATTACH(201,"竞技场进攻编队(暂时不用)"), TRIAL_TEAM(301,"森罗环境编队"), ENDLESS_TEAM(401,"无尽编队"), + ENDLESS_NEW_TEAM(402,"新无尽编队"), + TREASURE_TEAM(403,"宝物编队"), BLOODY_TEAM(701,"血战队伍"), CHAMPION_ATTACK_TEAM(801,"巅峰赛进攻队伍(暂时不用)"), EXPEDITION_TEAM(1001,"大闹天宫"), diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/GameFightType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/GameFightType.java index 446b1d286..2fdfe28c3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/GameFightType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/GameFightType.java @@ -51,7 +51,10 @@ public enum GameFightType { FourChallenge(FightType.FourChallenge,new DefaultWithoutHandFightHandler(),null), SevenWorld(FightType.QIJIE_FIGHT,new SevenWorldFightHandler(),null), CrossLingMaiSecretFight(FightType.CrossLingMaiSecretFight,new DefaultWithoutHandFightHandler(),null), - ExploreShouChaoFight(FightType.ExploreShouChao,new DefaultWithoutHandFightHandler(),null),; + ExploreShouChaoFight(FightType.ExploreShouChao,new DefaultWithoutHandFightHandler(),null), + EndlessNewTeam(FightType.ENDLESS_NEW_TEAM,new DefaultWithoutHandFightHandler(),null), + TreasureTeam(FightType.TREASURE_TEAM,new DefaultWithoutHandFightHandler(),null), + ; diff --git a/tablemanager/src/main/java/config/SChallengeStage.java b/tablemanager/src/main/java/config/SChallengeStage.java new file mode 100644 index 000000000..222ff7f64 --- /dev/null +++ b/tablemanager/src/main/java/config/SChallengeStage.java @@ -0,0 +1,98 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="ChallengeStage") +public class SChallengeStage implements BaseConfig { + + private int id; + + private int chapter; + + private int section; + + private int nextLevel; + + private int[][] levelLimit; + + private int stageType; + + private int monsterGroup; + + private int[] hardStageBuff; + + private int[][] fixedReward; + + private int[][] passReward; + + private int[][] victoryReward; + + private int[][] reward1; + + private int[] pivilegeID; + + + @Override + public void init() throws Exception { + Map config = STableManager.getConfig(SChallengeStage.class); + + } + + + public int getId() { + return id; + } + + public int getChapter() { + return chapter; + } + + public int getSection() { + return section; + } + + public int getNextLevel() { + return nextLevel; + } + + public int[][] getLevelLimit() { + return levelLimit; + } + + public int getStageType() { + return stageType; + } + + public int getMonsterGroup() { + return monsterGroup; + } + + public int[] getHardStageBuff() { + return hardStageBuff; + } + + public int[][] getFixedReward() { + return fixedReward; + } + + public int[][] getPassReward() { + return passReward; + } + + public int[][] getVictoryReward() { + return victoryReward; + } + + public int[][] getReward1() { + return reward1; + } + + public int[] getPivilegeID() { + return pivilegeID; + } + + +} \ No newline at end of file