迷宫寻宝
parent
23488394d9
commit
628902282d
|
@ -192,6 +192,8 @@ public interface BIReason {
|
|||
|
||||
int MISSING_ROOM_SEND_CONSUME = 1048;//迷宫寻宝派遣消耗
|
||||
|
||||
int MISSING_ROOM_ACCELERATE_CONSUME = 1049;//迷宫寻宝加速消耗
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.ljsd.jieling.thread.task.RPCServerTask;
|
|||
import com.ljsd.jieling.util.CBean2Proto;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SChallengeConfig;
|
||||
import config.SMazeTreasureSetting;
|
||||
import config.SRechargeCommodityConfig;
|
||||
import manager.STableManager;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -136,6 +137,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
endless.setBloodScore(RedisUtil.getInstence().getZSetScore(RedisKey.BLOODY_RANK,Integer.toString(1), Integer.toString(userId)).intValue());
|
||||
List<CommonProto.GiftGoodsInfo> goodsBagInfo = new ArrayList<>(SRechargeCommodityConfig.rechargeCommodityConfigMap.size());
|
||||
BuyGoodsLogic.getGoodsBagInfo(userId,goodsBagInfo,true);
|
||||
int vipPrivilageValue = user.getPlayerInfoManager().getVipPrivilageValue(SMazeTreasureSetting.sMazeTreasureSetting.getRefreshVIP());
|
||||
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
|
||||
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder()
|
||||
.setPlayer(player)
|
||||
|
@ -164,7 +166,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
.addAllPlayedMapTypes(mapManager.getPlayedMapType())
|
||||
.setAmount(rechargeInfo.getSaveAmt())
|
||||
.setVipDaily(playerInfoManager.getHadTakeDailyBoxVip())
|
||||
.setMissingRefreshCount(user.getUserMissionManager().getMissingRoomMissionType().getCoinRefreshCount())
|
||||
.setMissingRefreshCount(vipPrivilageValue)
|
||||
.build();
|
||||
try {
|
||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true);
|
||||
|
|
|
@ -166,28 +166,33 @@ public class UserMissionManager extends MongoBase {
|
|||
missingRoomMissionType.getFinishMissionIds().removeIf(value->missingRoomMissionType.getAllMissingTime().get(value)==-1);
|
||||
missingRoomMissionType.getAllMissingTime().values().removeIf(value->value==-1);
|
||||
boolean result;
|
||||
SMazeTreasureSetting sMazeTreasureSetting = SMazeTreasureSetting.sMazeTreasureSettingMap.get(1);
|
||||
SMazeTreasureSetting sMazeTreasureSetting = SMazeTreasureSetting.sMazeTreasureSetting;
|
||||
result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getTakeOrder()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
|
||||
if(!result){
|
||||
result = ItemUtil.itemCost(user, new int[][]{sMazeTreasureSetting.getRefreshItem()}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
|
||||
if(!result){
|
||||
int coinRefreshCount = missingRoomMissionType.getCoinRefreshCount();
|
||||
int[][] refreshHighTypeNum = SMazeTreasureSetting.sMazeTreasureSettingMap.get(1).getRefreshHighTypeNum();
|
||||
for(int[] refresh:refreshHighTypeNum){
|
||||
if(coinRefreshCount==0||coinRefreshCount%refresh[0]!=0){
|
||||
continue;
|
||||
}else{
|
||||
mustAppear.put(refresh[1],mustAppear.get(refresh[1])==null?1:(mustAppear.get(refresh[1])+1));
|
||||
}
|
||||
}
|
||||
int coinRefreshCount = user.getPlayerInfoManager().getVipPrivilageValue(sMazeTreasureSetting.getRefreshVIP());
|
||||
int[][] cost = sMazeTreasureSetting.getCost();
|
||||
int count = (int)MathUtils.calABX(coinRefreshCount, cost[1]);
|
||||
result = ItemUtil.itemCost(user, new int[][]{new int[]{cost[0][0], count}}, BIReason.MISSING_ROOM_REFRESH_CONSUME, 1);
|
||||
missingRoomMissionType.setCoinRefreshCount(coinRefreshCount +1);
|
||||
if(!result){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
user.getPlayerInfoManager().updateVipPrivilage(sMazeTreasureSetting.getRefreshVIP(),1);
|
||||
}
|
||||
}
|
||||
if(!result){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
//高级特权
|
||||
missingRoomMissionType.privilegeRefresh(user,sMazeTreasureSetting.getHighDailyPrivilege(),mustAppear);
|
||||
//豪华特权
|
||||
missingRoomMissionType.privilegeRefresh(user,sMazeTreasureSetting.getLuxuryDailyPrivilege(),mustAppear);
|
||||
int[][] refreshHighTypeNum = sMazeTreasureSetting.getRefreshHighTypeNum();
|
||||
for(int[] refresh:refreshHighTypeNum){
|
||||
if(missingRoomMissionType.getRefreshTotalCount()==0||missingRoomMissionType.getRefreshTotalCount()%refresh[0]!=0){
|
||||
continue;
|
||||
}else{
|
||||
mustAppear.put(refresh[1],mustAppear.get(refresh[1])==null?1:(mustAppear.get(refresh[1])+1));
|
||||
}
|
||||
}
|
||||
missingRoomMissionType.setRefreshTotalCount(missingRoomMissionType.getRefreshTotalCount()+1);
|
||||
}
|
||||
missingRoomMissionType.getDoingMissionIds().clear();
|
||||
}
|
||||
|
|
|
@ -707,11 +707,14 @@ public class MissionLoigc {
|
|||
User user = UserManager.getUser(session.getUid());
|
||||
MissingRoomMissionType missingRoomMissionType = user.getUserMissionManager().getMissingRoomMissionType();
|
||||
Set<Integer> finishMissionIds = missingRoomMissionType.getFinishMissionIds();
|
||||
if(finishMissionIds.contains(missionId)){
|
||||
missingRoomMissionType.setMissingTime(missionId,0);
|
||||
}else {
|
||||
if(!finishMissionIds.contains(missionId)){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
SMazeTreasure sMazeTreasure = SMazeTreasure.sMazeTreasureMap.get(missionId % 10000);
|
||||
if(!ItemUtil.itemCost(user,new int[][]{sMazeTreasure.getSpeedUpTake()},BIReason.MISSING_ROOM_ACCELERATE_CONSUME,1)){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
missingRoomMissionType.setMissingTime(missionId,0);
|
||||
user.getUserMissionManager().updateString("missingRoomMissionType",missingRoomMissionType);
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
|
||||
}
|
||||
|
|
|
@ -26,7 +26,13 @@ public class MissingRoomMissionType extends AbstractMissionType{
|
|||
|
||||
private int missionIndex;
|
||||
|
||||
private int coinRefreshCount;
|
||||
private int refreshTotalCount;
|
||||
|
||||
// private int coinRefreshCount;
|
||||
//
|
||||
// private int higherDailyRefreshCount;
|
||||
//
|
||||
// private int especialDailyRefreshCount;
|
||||
|
||||
@Override
|
||||
public void openMission(User user, int missionId, List<MissionStateChangeInfo> missionTypeEnumList) {
|
||||
|
@ -129,6 +135,19 @@ public class MissingRoomMissionType extends AbstractMissionType{
|
|||
heroesInfo.put(missionId,heroes);
|
||||
}
|
||||
|
||||
|
||||
public void privilegeRefresh(User user,int[][] privilege,Map<Integer,Integer> mustAppear){
|
||||
if(user.getPlayerInfoManager().checkFunctionIsAllowed(privilege[0][0])&&privilege.length>1){
|
||||
int especialCount = user.getPlayerInfoManager().getVipPrivilageValue(privilege[0][0]);
|
||||
for(int i = 1; i< privilege.length; i++){
|
||||
if(privilege[i][0]==especialCount+1){
|
||||
mustAppear.put(privilege[i][1],mustAppear.get(privilege[i][1])==null?1:(mustAppear.get(privilege[i][1])+1));
|
||||
}
|
||||
}
|
||||
user.getPlayerInfoManager().updateVipPrivilage(privilege[0][0],1);
|
||||
}
|
||||
|
||||
}
|
||||
public Map<Integer,Integer> getAllMissingTime(){
|
||||
return missingTime;
|
||||
}
|
||||
|
@ -148,11 +167,12 @@ public class MissingRoomMissionType extends AbstractMissionType{
|
|||
return missionIndex;
|
||||
}
|
||||
|
||||
public int getCoinRefreshCount() {
|
||||
return coinRefreshCount;
|
||||
public int getRefreshTotalCount() {
|
||||
return refreshTotalCount;
|
||||
}
|
||||
|
||||
public void setCoinRefreshCount(int coinRefreshCount) {
|
||||
this.coinRefreshCount = coinRefreshCount;
|
||||
public void setRefreshTotalCount(int refreshTotalCount) {
|
||||
this.refreshTotalCount = refreshTotalCount;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,8 +11,6 @@ public class SMazeTreasureSetting implements BaseConfig {
|
|||
|
||||
private int refreshType;
|
||||
|
||||
private int needItem;
|
||||
|
||||
private int refreshNum;
|
||||
|
||||
private int[] takeOrder;
|
||||
|
@ -23,14 +21,18 @@ public class SMazeTreasureSetting implements BaseConfig {
|
|||
|
||||
private int[][] refreshHighTypeNum;
|
||||
|
||||
private int[][] dailyPrivilege;
|
||||
private int[][] highDailyPrivilege;
|
||||
|
||||
public static Map<Integer,SMazeTreasureSetting> sMazeTreasureSettingMap;
|
||||
private int[][] luxuryDailyPrivilege;
|
||||
|
||||
private int refreshVIP;
|
||||
|
||||
public static SMazeTreasureSetting sMazeTreasureSetting;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
sMazeTreasureSettingMap = STableManager.getConfig(SMazeTreasureSetting.class);
|
||||
sMazeTreasureSetting = STableManager.getConfig(SMazeTreasureSetting.class).get(1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -38,10 +40,6 @@ public class SMazeTreasureSetting implements BaseConfig {
|
|||
return refreshType;
|
||||
}
|
||||
|
||||
public int getNeedItem() {
|
||||
return needItem;
|
||||
}
|
||||
|
||||
public int getRefreshNum() {
|
||||
return refreshNum;
|
||||
}
|
||||
|
@ -58,11 +56,19 @@ public class SMazeTreasureSetting implements BaseConfig {
|
|||
return refreshHighTypeNum;
|
||||
}
|
||||
|
||||
public int[][] getDailyPrivilege() {
|
||||
return dailyPrivilege;
|
||||
}
|
||||
|
||||
public int[] getTakeOrder() {
|
||||
return takeOrder;
|
||||
}
|
||||
|
||||
public int[][] getHighDailyPrivilege() {
|
||||
return highDailyPrivilege;
|
||||
}
|
||||
|
||||
public int[][] getLuxuryDailyPrivilege() {
|
||||
return luxuryDailyPrivilege;
|
||||
}
|
||||
|
||||
public int getRefreshVIP() {
|
||||
return refreshVIP;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue