每日任务
parent
3cf9a1dd10
commit
0e8b6eda1d
|
|
@ -30,10 +30,12 @@ public class SRechargeCommodityConfig implements BaseConfig {
|
|||
|
||||
private int order;
|
||||
|
||||
public static Map<Integer, SRechargeCommodityConfig> rechargeCommodityConfigMap;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
rechargeCommodityConfigMap = STableManager.getConfig(SRechargeCommodityConfig.class);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1768,8 +1768,8 @@ public class MapLogic {
|
|||
if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE) {
|
||||
reward = sLevelDifficultyConfig.getFirstReward();
|
||||
levelDifficulty.setState(Global.FIGHT_CLEARANCE);
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.STORY_FIGHT,fightId,0);
|
||||
}
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.STORY_FIGHT,fightId,0);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,reward, 1, 0,BIReason.LEVELDIFFICULTY_FIGHT_REWARD);
|
||||
levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() +1);
|
||||
//开启关卡
|
||||
|
|
|
|||
|
|
@ -2,11 +2,17 @@ package com.ljsd.jieling.logic.dao;
|
|||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class RechargeInfo extends MongoBase{
|
||||
|
||||
private int saveAmt;//累计充值
|
||||
private long createTime;
|
||||
|
||||
private Map<Integer,Integer> levelBagMap;
|
||||
|
||||
private Map<Integer,Integer> buyGoodsTimes;
|
||||
|
||||
public RechargeInfo(){
|
||||
|
||||
}
|
||||
|
|
@ -27,4 +33,12 @@ public class RechargeInfo extends MongoBase{
|
|||
public long getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getLevelBagMap() {
|
||||
return levelBagMap;
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getBuyGoodsTimes() {
|
||||
return buyGoodsTimes;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public class UserMissionManager extends MongoBase {
|
|||
}
|
||||
break;
|
||||
case DAILY_REFRESH:
|
||||
/* Set<Integer> missionIds = SDailyTasksConfig.config.keySet();
|
||||
Set<Integer> missionIds = SDailyTasksConfig.config.keySet();
|
||||
int type = (int)parm[0];
|
||||
if(type == 0){
|
||||
if( dailyMissionIdsType.getDoingMissionIds().isEmpty() && dailyMissionIdsType.getFinishMissionIds().isEmpty() && dailyMissionIdsType.getRewardedMissionIds().isEmpty() ){
|
||||
|
|
@ -49,7 +49,7 @@ public class UserMissionManager extends MongoBase {
|
|||
dailyCumulationData.reset();
|
||||
updateString("dailyCumulationData",dailyCumulationData);
|
||||
}
|
||||
dailyMissionIdsType.getDoingMissionIds().addAll(missionIds);*/
|
||||
dailyMissionIdsType.getDoingMissionIds().addAll(missionIds);
|
||||
|
||||
updateString("dailyMissionIdsType",dailyMissionIdsType);
|
||||
|
||||
|
|
@ -66,7 +66,7 @@ public class UserMissionManager extends MongoBase {
|
|||
break;
|
||||
case DAILY_MISSION_REWARD:{
|
||||
dailyMissionIdsType.rewardMission((int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION));
|
||||
calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,1);
|
||||
calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,1,(int)parm[0]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -259,6 +259,10 @@ public class WorkShopLogic {
|
|||
int uid=session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
SWorkShopEquipmentConfig sWorkShopEquipmentConfig = SWorkShopEquipmentConfig.getsWorkShopEquipmentConfigMap().get(equipTid);
|
||||
if(sWorkShopEquipmentConfig == null){
|
||||
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,"equipTid not exists");
|
||||
return;
|
||||
}
|
||||
if(!checkIsUnlock(GlobalsDef.WORK_CREATE_TYPE,sWorkShopEquipmentConfig.getType(),user.getWorkShopController(),sWorkShopEquipmentConfig.getOpenRules(),sWorkShopEquipmentConfig.getId())){
|
||||
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,"未开");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -217,6 +217,9 @@ public class MissionLoigc {
|
|||
case BUY_GOLD_TIMES:
|
||||
count=cumulationData.buyGoldTimes;
|
||||
break;
|
||||
case BUY_STAMINA_TIMES:
|
||||
count=cumulationData.buyStaminaTimes;
|
||||
break;
|
||||
case WORKSHOP_CREATE_EQUIP_NUMS:
|
||||
count=cumulationData.createEquips;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ public class ArenaChallengeManager implements BaseDataManager{
|
|||
}else if(missionType == MissionType.ARENA_FIGHTSUCCES_TIMES){
|
||||
if((int)parm[0] == 1){
|
||||
data.arenaFightsuccesTimes++;
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -8,12 +8,14 @@ public class BuyGoodsManager implements BaseDataManager {
|
|||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
int itemId = (int)parm[0];
|
||||
int itemNum = (int)parm[0];
|
||||
int itemNum = (int)parm[1];
|
||||
if(missionType == MissionType.BUY_GOLD_TIMES && itemId == Global.GOLD){
|
||||
data.buyGoldTimes = data.buyGoldTimes + itemNum;
|
||||
return new CumulationData.Result(missionType);
|
||||
}else if(missionType == MissionType.BUY_STAMINA_TIMES && itemId == Global.STAMINA){
|
||||
data.buyStaminaTimes = data.buyStaminaTimes + itemNum;
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
return new CumulationData.Result(missionType);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ public class DataManagerDistributor {
|
|||
|
||||
judges.put(MissionType.HERO_LEVLE_TIMES,new HeroLevelUpManager());
|
||||
judges.put(MissionType.ARENA_FIGHTSUCCES_TIMES,new ArenaChallengeManager());
|
||||
|
||||
judges.put(MissionType.FINSIH_DAYILY_TIMES,new FinishDailyManager());
|
||||
}
|
||||
|
||||
public static CumulationData.Result updateData(CumulationData data, MissionType missionType, Object...parm) throws Exception {
|
||||
|
|
|
|||
|
|
@ -11,24 +11,40 @@ public class FightDataManager implements BaseDataManager{
|
|||
CumulationData.Result result = null;
|
||||
int fightId = (int)parm[0];
|
||||
int fightType = (int)parm[1];// 0: 故事副本 1: 普通副本
|
||||
if(fightType == 0 && missionType == MissionType.LEVEL_STORY_PASS){
|
||||
LevelDifficulty levelDifficulty = SLevelDifficultyConfig.getLevelDifficultyMap().get(fightId);
|
||||
int type = levelDifficulty.getType();
|
||||
Integer maxFightId = data.getHeroLevleCountMap().get(type);
|
||||
if(maxFightId!=null){
|
||||
if(fightId>maxFightId){
|
||||
if(fightType == 0){
|
||||
if(missionType == MissionType.LEVEL_STORY_TIMES){
|
||||
data.levelStoryTimes++;
|
||||
result = new CumulationData.Result(missionType);
|
||||
}else if(missionType == MissionType.LEVEL_STORY_PASS){
|
||||
LevelDifficulty levelDifficulty = SLevelDifficultyConfig.getLevelDifficultyMap().get(fightId);
|
||||
int type = levelDifficulty.getType();
|
||||
Integer maxFightId = data.getHeroLevleCountMap().get(type);
|
||||
if(maxFightId!=null){
|
||||
if(fightId>maxFightId){
|
||||
data.getHeroLevleCountMap().put(type,fightId);
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
}else{
|
||||
data.getHeroLevleCountMap().put(type,fightId);
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
}else{
|
||||
data.getHeroLevleCountMap().put(type,fightId);
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(fightType == 1 && (missionType == MissionType.GENERAL_STORY_PASS || missionType == MissionType.HERO_STORY_PASS)){
|
||||
data.addExploreFight(fightId);
|
||||
result = new CumulationData.Result(missionType);
|
||||
if(fightType == 1){
|
||||
if(missionType == MissionType.GENERAL_STORY_TIMES){
|
||||
data.generalStoryTimes++;
|
||||
result = new CumulationData.Result(missionType);
|
||||
}else if(missionType == MissionType.HERO_LEVLE_TIMES){
|
||||
data.heroStoryTimes++;
|
||||
result = new CumulationData.Result(missionType);
|
||||
}else if(missionType == MissionType.GENERAL_STORY_PASS || missionType == MissionType.HERO_STORY_PASS){
|
||||
data.addExploreFight(fightId);
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.config.SDailyTasksConfig;
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
public class FinishDailyManager implements BaseDataManager{
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
int missionId = (int) parm[0];
|
||||
if(SDailyTasksConfig.getSDailyTasksConfigById(missionId).getType()!= MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue()){
|
||||
data.finsihDayilyTimes++;
|
||||
}
|
||||
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ljsd.jieling.logic.mission.event;
|
||||
|
||||
import com.ljsd.jieling.config.SDailyTasksConfig;
|
||||
import com.ljsd.jieling.config.STaskConfig;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
|
@ -103,7 +104,7 @@ public class MissionEventDistributor {
|
|||
|
||||
typeList.add(MissionType.HERO_STORY_TIMES);
|
||||
typeList.add(MissionType.LEVEL_STORY_TIMES);
|
||||
typeList.add(MissionType.HERO_LEVLE_TIMES);
|
||||
typeList.add(MissionType.GENERAL_STORY_TIMES);
|
||||
|
||||
eventEnumListMap.put(GameEvent.STORY_FIGHT,typeList);
|
||||
eventProcessor.put(GameEvent.STORY_FIGHT,new CumulationDataEventProcessor());
|
||||
|
|
@ -174,6 +175,10 @@ public class MissionEventDistributor {
|
|||
if (missionStateChangeInfos.size() != 0) {
|
||||
sendMissionUpdate(session,user,missionStateChangeInfos,GameMisionType.VIPMISSION);
|
||||
}
|
||||
List<MissionStateChangeInfo> dailyMissioStateInfos = missionTypeEnumListMap.get(GameMisionType.DAILYMISSION);
|
||||
if (dailyMissioStateInfos.size() != 0) {
|
||||
sendMissionUpdate(session,user,dailyMissioStateInfos,GameMisionType.DAILYMISSION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -188,11 +193,19 @@ public class MissionEventDistributor {
|
|||
STaskConfig sTaskConfig = STaskConfig.getsTaskConfigById(missionStateChangeInfo.getMissionId());
|
||||
progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getCumulationData(),sTaskConfig.getTaskType(),sTaskConfig.getTaskValue()[0]);
|
||||
}
|
||||
if(gameMisionType == GameMisionType.DAILYMISSION){
|
||||
SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionStateChangeInfo.getMissionId());
|
||||
progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getCumulationData(),sDailyTasksConfig.getType(),sDailyTasksConfig.getValues()[0]);
|
||||
}
|
||||
}else if(missionState == MissionState.FINISH){
|
||||
if(gameMisionType == GameMisionType.VIPMISSION){
|
||||
STaskConfig sTaskConfig = STaskConfig.getsTaskConfigById(missionStateChangeInfo.getMissionId());
|
||||
progress=sTaskConfig.getTaskValue()[1];
|
||||
}
|
||||
if(gameMisionType == GameMisionType.DAILYMISSION){
|
||||
SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionStateChangeInfo.getMissionId());
|
||||
progress= sDailyTasksConfig.getValues()[1];
|
||||
}
|
||||
}
|
||||
builder.addUserMissionInfo(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionStateChangeInfo.getMissionId()).setType(gameMisionType.getType()).setState(state).setProgress(progress));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,74 @@
|
|||
package com.ljsd.jieling.logic.store;
|
||||
|
||||
import com.ljsd.jieling.config.SRechargeCommodityConfig;
|
||||
import com.ljsd.jieling.logic.dao.RechargeInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.TimeUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 真钱购买东西
|
||||
*/
|
||||
public class BuyGoodsLogic {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(BuyGoodsLogic.class);
|
||||
|
||||
public void buyGoods(ISession session,int goodsId){
|
||||
|
||||
}
|
||||
|
||||
public void sendGoods(int uid,int goodsId) throws Exception {
|
||||
User user = UserManager.getUser(uid);
|
||||
SRechargeCommodityConfig sRechargeCommodityConfig = SRechargeCommodityConfig.rechargeCommodityConfigMap.get(goodsId);
|
||||
RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
|
||||
Map<Integer, Integer> buyGoodsTimes = rechargeInfo.getBuyGoodsTimes();
|
||||
Integer buyCount = buyGoodsTimes.get(goodsId);
|
||||
if(buyCount ==null){
|
||||
buyCount = 0;
|
||||
}
|
||||
buyCount=buyCount+1;
|
||||
int limit = sRechargeCommodityConfig.getLimit();
|
||||
if(limit!=0){
|
||||
if(buyCount>limit){
|
||||
LOGGER.error("the uid={},the goodId={}, is over limit={}",uid,goodsId,buyCount);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(buyCount == 1){
|
||||
int[][] firstMultiple = sRechargeCommodityConfig.getFirstMultiple();
|
||||
int firstInvest = sRechargeCommodityConfig.getFirstInvest();
|
||||
|
||||
}
|
||||
int saveAmt = rechargeInfo.getSaveAmt();
|
||||
int isDiscount = sRechargeCommodityConfig.getIsDiscount();
|
||||
int price =sRechargeCommodityConfig.getPrice();
|
||||
if(isDiscount!=0){
|
||||
price=(int)(sRechargeCommodityConfig.getPrice() * (10 + isDiscount)/10f);
|
||||
}
|
||||
rechargeInfo.setSaveAmt(price+saveAmt);
|
||||
|
||||
int[][] baseReward = sRechargeCommodityConfig.getBaseReward();
|
||||
buyGoodsTimes.put(goodsId,buyCount+1);
|
||||
}
|
||||
|
||||
public void getGoodsBagInfo(int uid) throws Exception {
|
||||
User user = UserManager.getUser(uid);
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
|
||||
long now = TimeUtils.now();
|
||||
Map<Integer, Integer> buyGoodsTimes = rechargeInfo.getBuyGoodsTimes();
|
||||
for(SRechargeCommodityConfig sRechargeCommodityConfig :SRechargeCommodityConfig.rechargeCommodityConfigMap.values()){
|
||||
int limit = sRechargeCommodityConfig.getLimit();
|
||||
int goodsId = sRechargeCommodityConfig.getId();
|
||||
if(limit!=0){
|
||||
Integer integer = buyGoodsTimes.get(goodsId);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ public class StoreLogic {
|
|||
int goodsNum = sStoreConfig.getGoods()[1]*itemNum;
|
||||
String reward = goodsId +"#"+goodsNum;
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt2(reward), BIReason.STORE_BUY_ITEM);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.BUY_MATERIAL,goodsId,goodsNum);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.BUY_MATERIAL,goodsId,itemNum);
|
||||
PlayerInfoProto.BuyStoreItemResponse builder = PlayerInfoProto.BuyStoreItemResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue