back_recharge
wangyuan 2019-09-03 10:23:51 +08:00
parent 1b7fd4fb56
commit 2ed3864e16
10 changed files with 179 additions and 3 deletions

View File

@ -9,6 +9,7 @@ import com.ljsd.jieling.battle.match.MatchServerice;
import com.ljsd.jieling.battle.room.BeanToProto;
import com.ljsd.jieling.battle.room.Command;
import com.ljsd.jieling.battle.room.SceneManager;
import com.ljsd.jieling.battle.statics.AnalysisData;
import com.ljsd.jieling.config.SBloodyBattleSetting;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.logic.OnlineUserManager;
@ -48,6 +49,8 @@ public class Scene implements Runnable{
return minealForPosMap.remove(pos);
}
private Map<Integer, AnalysisData> analysisDataMap = new HashMap<>();
public void randomMineralOfUserDeath(Creature creature,int totalMineal){
if(totalMineal <=0){
@ -391,4 +394,8 @@ public class Scene implements Runnable{
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public Map<Integer, AnalysisData> getAnalysisDataMap() {
return analysisDataMap;
}
}

View File

@ -0,0 +1,30 @@
package com.ljsd.jieling.battle.statics;
public class AnalysisData {
private int id;
private int killNums; // 杀敌次数
private int deadNums; //死亡次数
private int diggerTimes; // 连续挖矿次数
private int continuousKillNums;//连续杀敌次数
private int continuousDeadNums;//连续死亡次数
public AnalysisData(int id) {
this.id = id;
}
public void win(){
killNums++;
continuousKillNums++;
continuousDeadNums=0;
}
public void fail(){
deadNums++;
continuousKillNums=0;
continuousDeadNums=0;
}
public void digger(){
diggerTimes++;
}
}

View File

@ -0,0 +1,8 @@
package com.ljsd.jieling.battle.statics;
public enum AnalysisEventType {
BATTLE,
DIGGER,
}

View File

@ -0,0 +1,8 @@
package com.ljsd.jieling.battle.statics;
import com.ljsd.jieling.battle.actor.Scene;
public interface AnalysisProcessor {
void process(Scene scene,AnalysisSourceData analysisSourceData);
}

View File

@ -0,0 +1,27 @@
package com.ljsd.jieling.battle.statics;
public class AnalysisSourceData {
private int targetId;
private int caster;
private int value; //参数
public AnalysisSourceData(int targetId, int caster, int value) {
this.targetId = targetId;
this.caster = caster;
this.value = value;
}
public int getTargetId() {
return targetId;
}
public int getCaster() {
return caster;
}
public int getValue() {
return value;
}
}

View File

@ -0,0 +1,16 @@
package com.ljsd.jieling.battle.statics;
import com.ljsd.jieling.battle.actor.Scene;
public class BattleAnalysisProcessor implements AnalysisProcessor{
@Override
public void process(Scene scene, AnalysisSourceData analysisSourceData){
AnalysisData analysisData = scene.getAnalysisDataMap().get(analysisSourceData.getTargetId());
if(analysisSourceData.getValue() == 1){
analysisData.win();
}else{
analysisData.fail();
}
}
}

View File

@ -0,0 +1,12 @@
package com.ljsd.jieling.battle.statics;
import com.ljsd.jieling.battle.actor.Scene;
public class DiggerAnalysisProcessor implements AnalysisProcessor{
@Override
public void process(Scene scene, AnalysisSourceData analysisSourceData) {
AnalysisData analysisData = scene.getAnalysisDataMap().get(analysisSourceData.getTargetId());
analysisData.digger();
}
}

View File

@ -0,0 +1,18 @@
package com.ljsd.jieling.battle.statics;
import java.util.HashMap;
import java.util.Map;
public class MessageBoxUtils {
private static Map<AnalysisEventType,AnalysisProcessor> analysisEventTypeIntegerMap = new HashMap<>();
static {
//更新统计数据 数据汇总聚合
analysisEventTypeIntegerMap.put(AnalysisEventType.BATTLE,new BattleAnalysisProcessor());
analysisEventTypeIntegerMap.put(AnalysisEventType.DIGGER,new DiggerAnalysisProcessor());
}
public static void onGameEvent(AnalysisEventType type){
AnalysisProcessor analysisProcessor = analysisEventTypeIntegerMap.get(type);
}
}

View File

@ -0,0 +1,49 @@
package com.ljsd.jieling.config;
import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.Table;
import java.util.Map;
@Table(name ="BloodyMessagesConfig")
public class SBloodyMessagesConfig implements BaseConfig {
private int id;
private String name;
private int type;
private int count;
private String message;
@Override
public void init() throws Exception {
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getType() {
return type;
}
public int getCount() {
return count;
}
public String getMessage() {
return message;
}
}

View File

@ -87,9 +87,7 @@ public class StoreLogic {
int uid = iSession.getUid();
User user = UserManager.getUser(uid);
StoreManager storeManager = user.getStoreManager();
if (storeManager.getStoreInfoMap().size() == 0){
initStoreInfo(user,storeManager);
}
initStoreInfo(user,storeManager);
PlayerInfoProto.GetStoreInfosResponse.Builder builder = PlayerInfoProto.GetStoreInfosResponse.newBuilder();
Map<Integer, StoreInfo> storeInfoMap = storeManager.getStoreInfoMap();
checkStoreRefresh(user,storeInfoMap);
@ -223,6 +221,9 @@ public class StoreLogic {
Map<Integer, SStoreTypeConfig> sstoreTypeConfigMap = SStoreTypeConfig.getsStoreTypeConfigMap();
for ( Map.Entry<Integer, SStoreTypeConfig> entry :sstoreTypeConfigMap.entrySet()){
SStoreTypeConfig sStoreTypeConfig = entry.getValue();
if(storeManager.getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
continue;
}
if (sStoreTypeConfig.getStoreOpenRule() == 1 && sStoreTypeConfig.getId() !=8){ //固定商店
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
long startTime = 0;