changhongserver/game_zp_anxiang/src/main/java/extend/zp/EXRoom.java

1471 lines
50 KiB
Java
Raw Normal View History

2026-01-18 06:48:37 +08:00
package extend.zp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import com.game.Global;
import com.game.Util;
import com.game.data.Player;
import com.game.data.Room;
import com.game.player.state.PlayerWaitState;
import com.taurus.core.entity.ITArray;
import com.taurus.core.entity.ITObject;
import com.taurus.core.entity.TArray;
import com.taurus.core.entity.TObject;
import extend.zp.player.state.EXPlayerDisCardTipState;
import extend.zp.tip.Action;
import extend.zp.tip.TipManager;
import extend.zp.uitl.CardUtil;
public class EXRoom extends Room {
//
public Map<Integer, TipManager> tipMap;
public Action curAction;
public List<Action> actionList;
public RoomCard card;
public int showCard;
public int currenDiscardSeat;
public boolean liuju = false;
public boolean tianHu = true;
public ITArray throwList;
public int lastPaoSeat;
public int draw = -1;
public boolean isAllPass = false;
public int douLiuZi = 0;
public EXRoom(String roomid, Map<String, String> redis_room_map) {
super(roomid, redis_room_map);
card = new RoomCard(this);
this.actionList = new ArrayList<Action>();
this.tipMap = new HashMap<Integer, TipManager>();
this.throwList = TArray.newInstance();
this.isEntrust=true;
}
/*public void addAction(Action action) {
if (this.curAction ==null) {
this.curAction = action;
} else if (action.tip.weight > this.curAction.tip.weight) {
this.curAction = action;
} else if (action.tip.weight == this.curAction.tip.weight) {
int pos = Util.getPos(this.activeSeat, action.player.seat,this.maxPlayers);
int pos1 = Util.getPos(this.activeSeat, this.curAction.player.seat, this.maxPlayers);
if (pos < pos1) {
this.curAction = action;
}
}
checkAction();
}*/
public void addAction(Action action) {
if (this.actionList.size() == 0) {
this.actionList.add(action);
} else if (action.tip.weight > this.actionList.get(0).tip.weight) {
this.actionList.clear();
this.actionList.add(action);
} else if (action.tip.weight == this.actionList.get(0).tip.weight) {
this.actionList.add(action);
}
checkAction();
}
public void changePaiXing(int seat, ITObject params) {
ITArray paixing = params.getTArray("card_list");
if (paixing == null) {
paixing = TArray.newInstance();
}
ITObject cmdData = TObject.newInstance();
cmdData.putTArray("card_list", paixing);
this.getPlayBack().addCommand("ChangePaiXing", seat, cmdData);
}
public void checkAction() {
boolean isWeightest = this.isWeightestAction();
if (!isWeightest) {
return;
}
if (this.isAllPass()) {
this.isAllPass = true;
EXPlayer activePlayer = (EXPlayer)this.playerMapBySeat.get(this.activeSeat);
activePlayer.stateMachine.toNextState();
} else {
for (Action action : this.actionList) {
action.run();
}
this.actionList.clear();
}
}
public boolean isAllPass() {
return this.actionList.size() == 0 && this.tipMap.size() == 0;
}
public boolean isWeightestAction() {
if (this.isAllPass()) {
return true;
}
if (this.actionList.size() == 0) {
return false;
}
Action curaction = this.actionList.get(0);
for (Entry<Integer, TipManager> entry : this.tipMap.entrySet()) {
TipManager tip = entry.getValue();
if (curaction.player.seat == tip.owner.seat) {
continue;
}
if (curaction.tip.weight <= tip.getWeightest()) {
return false;
}
}
for (Entry<Integer, Player> entry : this.playerMapById.entrySet()) {
Player player = entry.getValue();
if (curaction.player.seat == player.seat) {
continue;
}
if (player.stateMachine.curState instanceof EXPlayerDisCardTipState) {
player.stateMachine.changeState(Global.getState(PlayerWaitState.class));
}
}
return true;
}
public ITObject getReloadInfo(Player player) {
ITObject data = this.getReloadInfoEx(player);
EXPlayer p = (EXPlayer) player;
if(p.pxData !=null) {
data.putTArray("hand_px_data", p.pxData);
}
data.putInt("show_card", this.showCard);
data.putTArray("hand_card", Util.toTArray(p.cardInhand));
data.putInt("left_card", card.getCount());
data.putInt("score_pool", this.douLiuZi);
ITArray paramArray = TArray.newInstance();
for (int chiCard : p.suoCardList) {
paramArray.addInt(chiCard);
}
data.putTArray("suoCard", paramArray);
data.putTArray("tinglist", Util.toTArray(p.tingList));
if (p.tingMap.size() > 0) {
ITArray infoList = new TArray();
for (Entry<Integer, List<Integer>> entry : p.tingMap.entrySet()) {
ITObject obj = TObject.newInstance();
obj.putInt("card", entry.getKey());
obj.putTArray("ting_list", Util.toTArray(entry.getValue()));;
infoList.addTObject(obj);
}
data.putTArray("ting", infoList);
}
data.putInt("curren_outcard_seat", currenDiscardSeat);
return data;
}
public ITObject getReloadInfoEx(Player player) {
ITObject data = new TObject();
data.putInt("active_seat", this.activeSeat);
data.putInt("banker_seat", this.bankerSeat);
data.putBoolean("playing", this.isplaying);
ITArray info_list = TArray.newInstance();
for (Entry<Integer, Player> entry : this.playerMapBySeat.entrySet()) {
info_list.addTObject(((EXPlayer)entry.getValue()).getReloadInfo(entry.getValue().seat == player.seat ? true : false));
}
data.putTArray("info_list", info_list);
return data;
}
public void addScore(EXPlayer destPlayer, EXPlayer fromPlayer, int score, int type) {
destPlayer.score.round_log.put(type, destPlayer.score.round_log.get(type) + score);
fromPlayer.score.round_log.put(type, fromPlayer.score.round_log.get(type) - score);
destPlayer.score.round_score += score;
destPlayer.score.total_score += score;
fromPlayer.score.round_score -= score;
fromPlayer.score.total_score -= score;
}
public void addDouLiuZiScore(EXPlayer destPlayer, int score, int type) {
destPlayer.score.round_log.put(type, (destPlayer.score.round_log.get(type) == null
? 0 : destPlayer.score.round_log.get(type)) - score);
destPlayer.score.round_score -= score;
destPlayer.score.total_score -= score;
this.douLiuZi += score;
}
public void addAllScore(EXPlayer destPlayer, int socre, int type) {
for (Entry<Integer, Player> entry : this.playerMapById.entrySet()) {
if (entry.getKey().equals(destPlayer.playerid)) {
continue;
}
EXPlayer fromPlayer = (EXPlayer) entry.getValue();
this.addScore(destPlayer, fromPlayer, socre, type);
}
}
private boolean checkBian3(List<OpCard> opCardList, int winCard) {
for (OpCard opCard : opCardList) {
if (opCard.type != RuleWeight.TYPE_CHOW) continue;
List<Integer> list = new ArrayList<Integer>();
list.add(opCard.card1);
list.add(opCard.card2);
list.add(opCard.card3);
if ((winCard % 100 == 3 && Collections.max(list) == winCard)
|| (winCard % 100 == 8 && Collections.min(list) == winCard)) {
return true;
}else {
if (Collections.min(list) + 1 == winCard) return true;
}
}
return false;
}
public int caclSpecialScore(EXPlayer owner) {
int huXi = 0;
int wanFa = owner.getRoom().config.getInt(Config.ROOM_CONFIG_WANFA);
for(int i = 0; i < owner.specialList.size(); i++) {
if (owner.specialList.get(i) == 1) {
int xi = wanFa == 3 ? (i == 6 ? 150 : 100) : (i == 6 ? 200 : 150);
huXi += xi;
owner.winMtList.add(new MingTang(50+(i > 5 ? i + 1 : i), MingTang.ST_HUXI, xi));
}
}
owner.winHuxi += huXi;
if (owner.winType == 1) owner.paiZu();
return huXi;
}
public int caclWin(EXPlayer owner,boolean zimo) {
owner.winMtList.clear();
int wanfa = owner.room.config.getInt(Config.ROOM_CONFIG_WANFA);
int huxi = 0;
boolean duizi = true, duiDaoHu = false, dandiao = false, haveXi = true, bianKan = false
, geShanDaNiu = false;
int shouXi = 0, zhuoXi = 0, hong_num = 0;
for(OpCard opc : owner.opCardList) {
zhuoXi += opc.huXi;
switch(opc.type) {
/*case RuleWeight.TYPE_PONG:
case RuleWeight.TYPE_WEI:
break;*/
case RuleWeight.TYPE_CHOW:
duizi = false;
break;
}
if(opc.huXi <= 0) haveXi = false;
if(CardUtil.checkHongCard(opc.card1))hong_num++;
if(CardUtil.checkHongCard(opc.card2))hong_num++;
if(CardUtil.checkHongCard(opc.card3))hong_num++;
}
int jiangCard = 0;
for(OpCard cg : owner.handCard) {
Set<Integer> set = new HashSet<Integer>();
set.add(cg.card1);
set.add(cg.card2);
if (cg.card3 > 0) set.add(cg.card3);
if (RuleWeight.TYPE_JIANG == cg.type) jiangCard = cg.card1;
if(set.size() > 1)
duizi = false;
if(RuleWeight.TYPE_JIANG == cg.type && cg.card1 == owner.winCard)
dandiao = true;
if(cg.huXi <= 0) haveXi = false;
shouXi += cg.huXi;
if (RuleWeight.TYPE_CHOW == cg.type) duizi = false;
if (RuleWeight.TYPE_PONG == cg.type && set.contains(owner.winCard) || owner.kaWei) duiDaoHu = true;// <20><><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD>ͶԶԵ<D4B6><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ߿<DAB1><DFBF><EFBFBD>
if(CardUtil.checkHongCard(cg.card1))hong_num++;
if(CardUtil.checkHongCard(cg.card2))hong_num++;
if(cg.card3 > 0 && CardUtil.checkHongCard(cg.card3))hong_num++;
}
boolean piaodui = false;
if (duizi && hong_num == 3 && CardUtil.checkPiaoDui(owner.opCardList, owner.handCard))
piaodui = true;
if (duiDaoHu && Math.abs(jiangCard - owner.winCard) == 2) geShanDaNiu = true;
int contains123 = 0;
if (!duizi && !duiDaoHu && !dandiao) {
bianKan = checkBian3(owner.handCard, owner.winCard);
}
int beishu = 0, jiaxi = 0;
Global.logger.info("list card");
Global.logger.info(owner.opCardList);
Global.logger.info(owner.handCard);
Set<Integer> tuanYuanSet = CardUtil.checkTuanYuan(owner.opCardList, owner.handCard);
Global.logger.info(tuanYuanSet);
List<Integer> yinList = new ArrayList<Integer>();
for(int ty : tuanYuanSet) {
if(CardUtil.checkHongCard(ty))
yinList.add(ty);
}
if (owner.huXi == 2) {
int hxi = wanfa == 3 ? 150 : 200;
owner.winMtList.add(new MingTang(MingTang.TYPE_ERXIMANHUAYUAN, MingTang.ST_HUXI, wanfa == 3 ? 150 : 200));// <20><>Ϣ<EFBFBD><CFA2>԰<EFBFBD><D4B0>
if (wanfa == 3) {
if(zimo) {
hxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZIMO, MingTang.ST_HUXI, 20));
}
if(bianKan) {
hxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_LINGBIANKAN, MingTang.ST_HUXI, 20));
}
if(dandiao) {
if(duizi) {
hxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,50));
} else {
hxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,20));
}
}
if(this.config.getBoolean(Config.ROOM_CONFIG_ZXS) && zimo && owner.winCard == 103) { // ׽С<D7BD><D0A1>
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOXIAOSAN, MingTang.ST_HUXI, 30));
}
if (this.config.getBoolean(Config.ROOM_CONFIG_XLX) && CardUtil.checkXinLianXin(owner.opCardList, owner.handCard)) {
hxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_XINLIANXIN, MingTang.ST_HUXI, 20));
}
}else if (wanfa == 2) {
if(zimo) {
hxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZIMO, MingTang.ST_HUXI, 40));
}
if(bianKan) {
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_LINGBIANKAN, MingTang.ST_HUXI, 30));
}
if(dandiao) {
if(duizi) {
hxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,50));
} else {
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,30));
}
}
if(this.config.getBoolean(Config.ROOM_CONFIG_QQR) && owner.cardInhand.size() == 1) {// ȫ<><C8AB><EFBFBD><EFBFBD>
hxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_QUANQIUREN,MingTang.ST_HUXI,150));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_ZXS) && zimo && owner.winCard == 103) { // ׽С<D7BD><D0A1>
hxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOXIAOSAN, MingTang.ST_HUXI, 100));
}
if(this.card.getCount() == 0) {
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_HAIDIHU,MingTang.ST_HUXI,30));
}
if (CardUtil.checkXinLianXin(owner.opCardList, owner.handCard)) {
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_XINLIANXIN, MingTang.ST_HUXI, 30));
}
}else if (wanfa == 1) {
if(zimo) {
hxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZIMO, MingTang.ST_HUXI, 40));
}
if(bianKan) {
hxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_LINGBIANKAN, MingTang.ST_HUXI, 40));
}
if(dandiao) {
if(duizi) {
hxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,50));
} else {
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,30));
}
}
if(zimo && owner.winCard == 103) {
hxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOXIAOSAN, MingTang.ST_HUXI, 100));
}
if (CardUtil.checkXinLianXin(owner.opCardList, owner.handCard)) {
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_XINLIANXIN, MingTang.ST_HUXI, 30));
}
if(this.card.getCount() == 0) {
hxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_HAIDIHU,MingTang.ST_HUXI,50));
}
if(owner.cardInhand.size() == 1) {
hxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_QUANQIUREN,MingTang.ST_HUXI,150));
}
}else if (wanfa == 4) {
if(zimo) {
hxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZIMO, MingTang.ST_HUXI, 40));
}
if(bianKan) {
hxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_LINGBIANKAN, MingTang.ST_HUXI, 40));
}
if(dandiao) {
if(duizi) {
hxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,50));
} else {
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,30));
}
}
if(this.card.getCount() == 0) {
hxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_HAIDIHU,MingTang.ST_HUXI,50));
}
if (CardUtil.checkXinLianXin(owner.opCardList, owner.handCard)) {
hxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_XINLIANXIN, MingTang.ST_HUXI, 30));
}
if(owner.cardInhand.size() == 1) {
hxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_QUANQIUREN,MingTang.ST_HUXI,150));
}
if(zimo && owner.winCard == 103) {
hxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOXIAOSAN, MingTang.ST_HUXI, 100));
}
}
owner.winHuxi = hxi;
return hxi;
}
if(wanfa == 0) {
if(yinList.size() >= 1) {
int xi = (yinList.size() * 10);
owner.winMtList.add(new MingTang(MingTang.TYPE_YINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
}
if(hong_num >= 10) {
int xi = (hong_num - 9) * 10;
if(xi > 10) {
owner.winMtList.add(new MingTang(MingTang.TYPE_DUOHONGHU, MingTang.ST_HUXI, xi));
} else {
owner.winMtList.add(new MingTang(MingTang.TYPE_HONGHU, MingTang.ST_HUXI, xi));
}
jiaxi += xi;
}
if(hong_num <= 0) {
if(duizi) {
beishu += 6;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUDUI, MingTang.ST_HUXI_TIMES, 6));
}else {
beishu += 4;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUHU, MingTang.ST_HUXI_TIMES, 4));
}
}
if(hong_num > 0 && duizi) {
beishu += 4;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIZIHU, MingTang.ST_HUXI_TIMES, 4));
}
if(hong_num == 1) {
beishu += 3;
owner.winMtList.add(new MingTang(MingTang.TYPE_YIDIANHONG, MingTang.ST_HUXI_TIMES, 3));
}
boolean huayuan = CardUtil.checkContainHong(owner.opCardList, owner.handCard);
if(huayuan) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_MANHUAYUAN,MingTang.ST_HUXI,50));
}
int se = CardUtil.checkQingyise(owner.opCardList, owner.handCard);
if(se > 0) {
jiaxi += 50;
owner.winMtList.add(new MingTang(se==1?MingTang.TYPE_XIAOYISE:MingTang.TYPE_DAYISE,MingTang.ST_HUXI,50));
}
huxi = owner.huXi * (beishu > 0 ? beishu : 1) + jiaxi;
/*===========================================================================================================*/
} else if(wanfa == 1) {
if(hong_num > 0 && duizi) {
beishu += 10;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIZIHU, MingTang.ST_HUXI_TIMES, 10));
}
if(hong_num <= 0) {
if(duizi) {
beishu += 15;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUDUI, MingTang.ST_HUXI_TIMES, 15));
}else {
beishu += 6;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUHU, MingTang.ST_HUXI_TIMES, 6));
}
}
if (CardUtil.checkXinLianXin(owner.opCardList, owner.handCard)) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_XINLIANXIN, MingTang.ST_HUXI, 30));
}
if(hong_num == 1) {
beishu += 4;
owner.winMtList.add(new MingTang(MingTang.TYPE_YIDIANHONG, MingTang.ST_HUXI_TIMES, 4));
}
if(yinList.size() >= 1) {
if(hong_num == yinList.size() * 4) {
int xi = (yinList.size() * 150);
owner.winMtList.add(new MingTang(MingTang.TYPE_CHUNYINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
}// else {
int xi = (yinList.size() * 30);
owner.winMtList.add(new MingTang(MingTang.TYPE_YINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
//}
}
if(hong_num >= 10) {
int xi = (hong_num - 9) * 30;
if(xi > 30) {
owner.winMtList.add(new MingTang(MingTang.TYPE_DUOHONGHU, MingTang.ST_HUXI, xi));
} else {
owner.winMtList.add(new MingTang(MingTang.TYPE_HONGHU, MingTang.ST_HUXI, xi));
}
jiaxi += xi;
}
boolean huayuan = CardUtil.checkContainHong(owner.opCardList, owner.handCard);
if(huayuan) {
//按需求150改成120 05-20 mt
jiaxi += 120;
owner.winMtList.add(new MingTang(MingTang.TYPE_MANHUAYUAN,MingTang.ST_HUXI,120));
}
int se = CardUtil.checkQingyise(owner.opCardList, owner.handCard);
if(se > 0) {
//按需求200改成150 05-20 mt
jiaxi += 150;
owner.winMtList.add(new MingTang(se==1?MingTang.TYPE_XIAOYISE:MingTang.TYPE_DAYISE,MingTang.ST_HUXI,150));
}
if(zimo) {
jiaxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZIMO, MingTang.ST_HUXI, 40));
}
if (duiDaoHu) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIDAOHU, MingTang.ST_HUXI, 20));
}
if (geShanDaNiu) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_GSDN, MingTang.ST_HUXI, 20));
}
if(zimo && owner.winCard == 103) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOXIAOSAN, MingTang.ST_HUXI, 100));
}
if(tuanYuanSet.size() >= 2) {
boolean result1 = false;
boolean result2 = false;
boolean result3 = false;
boolean result4 = false;
for(int ty : tuanYuanSet) {
if(ty % 100 == 10) {
if(tuanYuanSet.contains(ty - 9))
result1 = true;
} else {
if(tuanYuanSet.contains(ty +1))
result2 = true;
}
if(ty % 100 <= 8) {
if(tuanYuanSet.contains(ty +1) && tuanYuanSet.contains(ty +2))
result3 = true;
}
int type = ty / 100;
if(type == 1 && tuanYuanSet.contains(ty + 100)) {
result4 = true;
}
if(type == 2 && tuanYuanSet.contains(ty - 100)) {
result4 = true;
}
}
if(tuanYuanSet.size() == 2) {
if(tuanYuanSet.contains(108) && tuanYuanSet.contains(208)) { // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBAPENGTOU,MingTang.ST_HUXI,300));
}else if (result4) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIABAPENGTOU,MingTang.ST_HUXI,150));
}else if (result1) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_LONGBAIWEI,MingTang.ST_HUXI,150));
}else if (result2) {
jiaxi += 80;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIEMEIZHUO,MingTang.ST_HUXI,80));
}//else {
jiaxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOHU,MingTang.ST_HUXI,40));
//}
} else if(tuanYuanSet.size() > 2) {
if (tuanYuanSet.contains(108) && tuanYuanSet.contains(208)) { // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBAPENGTOU,MingTang.ST_HUXI,300));
}
if (result4) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIABAPENGTOU,MingTang.ST_HUXI,150));
}
if (result1) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_LONGBAIWEI,MingTang.ST_HUXI,150));
}
if (result3) {
if(tuanYuanSet.size() == 4) {
jiaxi += 400;
owner.winMtList.add(new MingTang(MingTang.TYPE_DIASUNZHUODAITUO,MingTang.ST_HUXI,400));
}else {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_DIASUNZHUO,MingTang.ST_HUXI,300));
}
}
if (result2 &&!result3) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIEMEIZHUODAITUO,MingTang.ST_HUXI,150));
}
if (tuanYuanSet.size() == 3 && !result3 && !result2) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_SANLUANZHUO,MingTang.ST_HUXI,100));
}else if (tuanYuanSet.size() == 4) {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_SILUANZHUO,MingTang.ST_HUXI,300));
}
}
}
if(this.card.getCount() == 0) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_HAIDIHU,MingTang.ST_HUXI,50));
}
if(dandiao) {
if(duizi) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,50));
} else {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,30));
}
}
int specialDuiDaoHu = 0 ;
if(duiDaoHu) {
specialDuiDaoHu = CardUtil.checkSpecialDuiDaoHu(owner.opCardList, owner.handCard, owner.winCard);
if(specialDuiDaoHu == 1) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_BEIKAOBEI,MingTang.ST_HUXI,50));
}else if (specialDuiDaoHu == 2) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_SHOUQIANSHOU,MingTang.ST_HUXI,50));
}
}
if(haveXi) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DINGDUI,MingTang.ST_HUXI,50));
}
if(owner.cardInhand.size() == 1) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_QUANQIUREN,MingTang.ST_HUXI,150));
}
if(owner.huXi == 10 && owner.kaWei) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_KAWEI,MingTang.ST_HUXI,50));
}
if(this.tianHu &&owner.seat == this.bankerSeat) {
//按需求150改100 05-20 mt
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_TIANHU, MingTang.ST_HUXI, 100));
}
if(piaodui) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_PIAODUI, MingTang.ST_HUXI, 50));
}
if (dandiao && CardUtil.checkJiDing(owner.handCard, owner.winCard)) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIDING, MingTang.ST_HUXI, 100));
}
if(shouXi == zhuoXi && zhuoXi ==5) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_SXWUQIANNIAN, MingTang.ST_HUXI, 50));
}
if(bianKan) {
jiaxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_LINGBIANKAN, MingTang.ST_HUXI, 40));
}
if(specialDuiDaoHu == 3) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBEIKAOBEI, MingTang.ST_HUXI, 100));
}
if(specialDuiDaoHu == 4) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_FENGPAIWEI, MingTang.ST_HUXI, 50));
}
if(owner.huXi == 10) {
//按需求50改30 05-20 mt
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_KAHU, MingTang.ST_HUXI, 30));
}
huxi = owner.huXi * (beishu > 0 ? beishu : 1) + jiaxi;
/*===========================================================================================================*/
} else if(wanfa == 2) {
Global.logger.info("yinhu :"+yinList.size());
if(yinList.size() >= 1) {
if(hong_num == yinList.size() * 4) {
int xi = (yinList.size() * 150);
owner.winMtList.add(new MingTang(MingTang.TYPE_CHUNYINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
} //else {
int xi = (yinList.size() * 30);
owner.winMtList.add(new MingTang(MingTang.TYPE_YINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
//}
}
if (CardUtil.checkXinLianXin(owner.opCardList, owner.handCard)) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_XINLIANXIN, MingTang.ST_HUXI, 30));
}
if(bianKan) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_LINGBIANKAN, MingTang.ST_HUXI, 30));
}
if (geShanDaNiu) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_GSDN, MingTang.ST_HUXI, 20));
}
if (duiDaoHu) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIDAOHU, MingTang.ST_HUXI, 20));
}
if(owner.huXi == 10) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_KAHU, MingTang.ST_HUXI, 30));
}
if(zimo) {
jiaxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZIMO, MingTang.ST_HUXI, 40));
}
if(hong_num >= 10) {
//按需求20改3005-20 mt
int xi = (hong_num - 9) * 30;
if(xi > 30) {
owner.winMtList.add(new MingTang(MingTang.TYPE_DUOHONGHU, MingTang.ST_HUXI, xi));
} else {
owner.winMtList.add(new MingTang(MingTang.TYPE_HONGHU, MingTang.ST_HUXI, xi));
}
jiaxi += xi;
}
if(hong_num > 0 && duizi) {
//按需求8改1005-20 mt
beishu += 10;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIZIHU, MingTang.ST_HUXI_TIMES, 10));
}
if(hong_num <= 0) {
if(duizi) {
//按需求10改1505-20 mt
beishu += 15;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUDUI, MingTang.ST_HUXI_TIMES, 15));
} else {
beishu += 6;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUHU, MingTang.ST_HUXI_TIMES, 6));
}
}
if(hong_num == 1) {
beishu += 4;
owner.winMtList.add(new MingTang(MingTang.TYPE_YIDIANHONG, MingTang.ST_HUXI_TIMES, 4));
}
boolean huayuan = CardUtil.checkContainHong(owner.opCardList, owner.handCard);
if(huayuan) {
//按需求200改12005-20 mt 此处本来是150
jiaxi += 120;
owner.winMtList.add(new MingTang(MingTang.TYPE_MANHUAYUAN,MingTang.ST_HUXI,120));
}
int se = CardUtil.checkQingyise(owner.opCardList, owner.handCard);
if(se > 0) {
//按需求200改15005-20 mt
jiaxi += 150;
owner.winMtList.add(new MingTang(se==1?MingTang.TYPE_XIAOYISE:MingTang.TYPE_DAYISE,MingTang.ST_HUXI,150));
}
if(tuanYuanSet.size() >= 2) {
boolean result1 = false;
boolean result2 = false;
boolean result3 = false;
boolean result4 = false;
for(int ty : tuanYuanSet) {
if(ty % 100 == 10) {
if(tuanYuanSet.contains(ty - 9))
result1 = true;
} else {
if(tuanYuanSet.contains(ty +1))
result2 = true;
}
if(ty % 100 <= 8) {
if(tuanYuanSet.contains(ty +1) && tuanYuanSet.contains(ty +2))
result3 = true;
}
int type = ty / 100;
if(type == 1 && tuanYuanSet.contains(ty + 100)) {
result4 = true;
}
if(type == 2 && tuanYuanSet.contains(ty - 100)) {
result4 = true;
}
}
if(tuanYuanSet.size() == 2) {
if(tuanYuanSet.contains(108) && tuanYuanSet.contains(208)) {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBAPENGTOU,MingTang.ST_HUXI,300));
}else if (result4) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIABAPENGTOU,MingTang.ST_HUXI,150));
}else if (this.config.getBoolean(Config.ROOM_CONFIG_LBW) && result1) {// <20><><EFBFBD><EFBFBD>β
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_LONGBAIWEI,MingTang.ST_HUXI,150));
}else if (result2) {
jiaxi += 80;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIEMEIZHUO,MingTang.ST_HUXI,80));
}//else {
jiaxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOHU,MingTang.ST_HUXI,40));
//}
} else if(tuanYuanSet.size() > 2) {
if (tuanYuanSet.contains(108) && tuanYuanSet.contains(208)) {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBAPENGTOU,MingTang.ST_HUXI,300));
}
if (result4) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIABAPENGTOU,MingTang.ST_HUXI,150));
}
if (result1) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_LONGBAIWEI,MingTang.ST_HUXI,150));
}
if (result3) {
if(tuanYuanSet.size() == 4) {
jiaxi += 400;
owner.winMtList.add(new MingTang(MingTang.TYPE_DIASUNZHUODAITUO,MingTang.ST_HUXI,400));
}else {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_DIASUNZHUO,MingTang.ST_HUXI,300));
}
}
if (result2 && !result3) {
//按需求120改成150 05-20 mt
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIEMEIZHUODAITUO,MingTang.ST_HUXI,150));
}
if (tuanYuanSet.size() == 3 && !result3 && !result2) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_SANLUANZHUO,MingTang.ST_HUXI,100));
}else if (tuanYuanSet.size() == 4) {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_SILUANZHUO,MingTang.ST_HUXI,300));
}
}
}
if(this.card.getCount() == 0) {
//按需求30改成50 05-20 mt
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_HAIDIHU,MingTang.ST_HUXI,50));
}
if(dandiao) {
if(duizi) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,50));
} else {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,30));
}
}
if(duiDaoHu) {
int specialDuiDaoHu = CardUtil.checkSpecialDuiDaoHu(owner.opCardList, owner.handCard, owner.winCard);
if(specialDuiDaoHu == 1 || specialDuiDaoHu == 3) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_BEIKAOBEI,MingTang.ST_HUXI,50));
}else if (specialDuiDaoHu == 2) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_SHOUQIANSHOU,MingTang.ST_HUXI,50));
}
}
if(this.config.getBoolean(Config.ROOM_CONFIG_DD) && haveXi) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DINGDUI,MingTang.ST_HUXI,50));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_QQR) && owner.cardInhand.size() == 1) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_QUANQIUREN,MingTang.ST_HUXI,150));
}
if(owner.huXi == 10 && owner.kaWei) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_KAWEI,MingTang.ST_HUXI,50));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_TH) && this.tianHu && owner.seat == this.bankerSeat) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_TIANHU, MingTang.ST_HUXI, 100));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_PD) && piaodui) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_PIAODUI, MingTang.ST_HUXI, 50));
}
if (dandiao && CardUtil.checkJiDing(owner.handCard, owner.winCard)) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIDING, MingTang.ST_HUXI, 100));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_ZXS) && zimo && owner.winCard == 103) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOXIAOSAN, MingTang.ST_HUXI, 100));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_SXWQN) && shouXi == zhuoXi && zhuoXi ==5) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_SXWUQIANNIAN, MingTang.ST_HUXI, 50));
}
huxi = owner.huXi * (beishu > 0 ? beishu : 1) + jiaxi;
/*===========================================================================================================*/
} else if(wanfa == 3) {
if(yinList.size() >= 1) {
if(hong_num == yinList.size() * 4) {
int xi = (yinList.size() * 100);
owner.winMtList.add(new MingTang(MingTang.TYPE_CHUNYINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
}// else {
int xi = (yinList.size() * 20);
owner.winMtList.add(new MingTang(MingTang.TYPE_YINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
//}
}
if(bianKan) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_LINGBIANKAN, MingTang.ST_HUXI, 20));
}
if (geShanDaNiu) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_GSDN, MingTang.ST_HUXI, 20));
}
if (duiDaoHu) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIDAOHU, MingTang.ST_HUXI, 20));
}
if(owner.huXi == 10) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_KAHU, MingTang.ST_HUXI, 20));
}
if(zimo) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZIMO, MingTang.ST_HUXI, 20));
}
if (this.config.getBoolean(Config.ROOM_CONFIG_XLX) && CardUtil.checkXinLianXin(owner.opCardList, owner.handCard)) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_XINLIANXIN, MingTang.ST_HUXI, 20));
}
if(hong_num >= 10) {
int xi = (hong_num - 9) * 20;
if(xi > 10) {
owner.winMtList.add(new MingTang(MingTang.TYPE_DUOHONGHU, MingTang.ST_HUXI, xi));
} else {
owner.winMtList.add(new MingTang(MingTang.TYPE_HONGHU, MingTang.ST_HUXI, xi));
}
jiaxi += xi;
}
if(hong_num > 0 && duizi) {
beishu += 6;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIZIHU, MingTang.ST_HUXI_TIMES, 6));
}
if(hong_num <= 0) {
if(duizi) {
beishu += 8;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUDUI, MingTang.ST_HUXI_TIMES, 8));
} else {
beishu += 4;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUHU, MingTang.ST_HUXI_TIMES, 4));
}
}
if(hong_num == 1) {
beishu += 3;
owner.winMtList.add(new MingTang(MingTang.TYPE_YIDIANHONG, MingTang.ST_HUXI_TIMES, 3));
}
boolean huayuan = CardUtil.checkContainHong(owner.opCardList, owner.handCard);
if(huayuan) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_MANHUAYUAN,MingTang.ST_HUXI,100));
}
int se = CardUtil.checkQingyise(owner.opCardList, owner.handCard);
if(se > 0) {
jiaxi += 100;
owner.winMtList.add(new MingTang(se==1?MingTang.TYPE_XIAOYISE:MingTang.TYPE_DAYISE,MingTang.ST_HUXI,100));
}
if(tuanYuanSet.size() >= 2) {
boolean result1 = false;
boolean result2 = false;
boolean result3 = false;
boolean result4 = false;
for(int ty : tuanYuanSet) {
if(ty % 100 == 10) {
if(tuanYuanSet.contains(ty - 9))
result1 = true;
} else {
if(tuanYuanSet.contains(ty +1))
result2 = true;
}
if(ty % 100 <= 8) {
if(tuanYuanSet.contains(ty +1) && tuanYuanSet.contains(ty +2))
result3 = true;
}
int type = ty / 100;
if(type == 1 && tuanYuanSet.contains(ty + 100)) {
result4 = true;
}
if(type == 2 && tuanYuanSet.contains(ty - 100)) {
result4 = true;
}
}
if(tuanYuanSet.size() == 2) {
if(tuanYuanSet.contains(108) && tuanYuanSet.contains(208)) {
jiaxi += 200;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBAPENGTOU,MingTang.ST_HUXI,200));
}else if (result4) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIABAPENGTOU,MingTang.ST_HUXI,100));
}else if (this.config.getBoolean(Config.ROOM_CONFIG_LBW) && result1) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_LONGBAIWEI,MingTang.ST_HUXI,100));
}else if (result2) {
jiaxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIEMEIZHUO,MingTang.ST_HUXI,40));
}//else {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOHU,MingTang.ST_HUXI,20));
//}
} else if(tuanYuanSet.size() > 2) {
if (tuanYuanSet.contains(108) && tuanYuanSet.contains(208)) {
jiaxi += 200;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBAPENGTOU,MingTang.ST_HUXI,200));
}
if (result4) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIABAPENGTOU,MingTang.ST_HUXI,100));
}
if (result1) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_LONGBAIWEI,MingTang.ST_HUXI,100));
}
if (result3) {
if(tuanYuanSet.size() == 4) {
//按需求200改成300 05-20 mt
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_DIASUNZHUODAITUO,MingTang.ST_HUXI,300));
}else {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_DIASUNZHUO,MingTang.ST_HUXI,150));
}
}
if (result2 && !result3) {
jiaxi += 80;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIEMEIZHUODAITUO,MingTang.ST_HUXI,80));
}
if (tuanYuanSet.size() == 3 && !result3 && !result2) {
jiaxi += 60;
owner.winMtList.add(new MingTang(MingTang.TYPE_SANLUANZHUO,MingTang.ST_HUXI,60));
}else if (tuanYuanSet.size() == 4 && !result3) {
//按需求100改成200 05-20 mt
jiaxi += 200;
owner.winMtList.add(new MingTang(MingTang.TYPE_SILUANZHUO,MingTang.ST_HUXI,200));
}
}
}
if(this.card.getCount() == 0) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_HAIDIHU,MingTang.ST_HUXI,20));
}
if(dandiao) {
if(duizi) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,50));
} else {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,20));
}
}
if(duiDaoHu) {
int specialDuiDaoHu = CardUtil.checkSpecialDuiDaoHu(owner.opCardList, owner.handCard, owner.winCard);
if(specialDuiDaoHu == 1 || specialDuiDaoHu == 3) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_BEIKAOBEI,MingTang.ST_HUXI,20));
}else if (specialDuiDaoHu == 2) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_SHOUQIANSHOU,MingTang.ST_HUXI,20));
}
}
if(this.config.getBoolean(Config.ROOM_CONFIG_DD) && haveXi) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_DINGDUI,MingTang.ST_HUXI,20));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_QQR) && owner.cardInhand.size() == 1) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_QUANQIUREN,MingTang.ST_HUXI,100));
}
if(owner.huXi == 10 && owner.kaWei) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_KAWEI,MingTang.ST_HUXI,50));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_TH) && this.tianHu && owner.seat == this.bankerSeat) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_TIANHU, MingTang.ST_HUXI, 50));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_PD) && piaodui) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_PIAODUI, MingTang.ST_HUXI, 20));
}
if (dandiao && CardUtil.checkJiDing(owner.handCard, owner.winCard)) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIDING, MingTang.ST_HUXI, 50));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_SXWQN) && shouXi == zhuoXi && zhuoXi ==5) {
jiaxi += 20;
owner.winMtList.add(new MingTang(MingTang.TYPE_SXWUQIANNIAN, MingTang.ST_HUXI, 20));
}
if(this.config.getBoolean(Config.ROOM_CONFIG_ZXS) && zimo && owner.winCard == 103) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOXIAOSAN, MingTang.ST_HUXI, 30));
}
huxi = owner.huXi * (beishu > 0 ? beishu : 1) + jiaxi;
/*===========================================================================================================*/
} else if(wanfa == 4) {
if(hong_num > 0 && duizi) {
beishu += 10;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIZIHU, MingTang.ST_HUXI_TIMES, 10));
}
if(hong_num <= 0) {
if(duizi) {
beishu += 15;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUDUI, MingTang.ST_HUXI_TIMES, 15));
} else {
//按需求6改8 05-20 mt
beishu += 8;
owner.winMtList.add(new MingTang(MingTang.TYPE_WUHU, MingTang.ST_HUXI_TIMES, 8));
}
}
if(hong_num == 1) {
//按需求4改6 05-20 mt
beishu += 6;
owner.winMtList.add(new MingTang(MingTang.TYPE_YIDIANHONG, MingTang.ST_HUXI_TIMES, 6));
}
if(yinList.size() >= 1) {
if(hong_num == yinList.size() * 4) {
int xi = (yinList.size() * 150);
owner.winMtList.add(new MingTang(MingTang.TYPE_CHUNYINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
}// else {
int xi = (yinList.size() * 30);
owner.winMtList.add(new MingTang(MingTang.TYPE_YINHU, MingTang.ST_HUXI, xi));
jiaxi += xi;
//}
}
if(hong_num >= 10) {
int xi = (hong_num - 9) * 30;
if(xi > 30) {
owner.winMtList.add(new MingTang(MingTang.TYPE_DUOHONGHU, MingTang.ST_HUXI, xi));
} else {
owner.winMtList.add(new MingTang(MingTang.TYPE_HONGHU, MingTang.ST_HUXI, xi));
}
jiaxi += xi;
}
boolean huayuan = CardUtil.checkContainHong(owner.opCardList, owner.handCard);
if(huayuan) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_MANHUAYUAN,MingTang.ST_HUXI,150));
}
int se = CardUtil.checkQingyise(owner.opCardList, owner.handCard);
if(se > 0) {
//按需求200改150 05-20 mt
jiaxi += 150;
owner.winMtList.add(new MingTang(se==1?MingTang.TYPE_XIAOYISE:MingTang.TYPE_DAYISE,MingTang.ST_HUXI,150));
}
if(tuanYuanSet.size() >= 2) {
boolean result1 = false;
boolean result2 = false;
boolean result3 = false;
boolean result4 = false;
for(int ty : tuanYuanSet) {
if(ty % 100 == 10) {
if(tuanYuanSet.contains(ty - 9))
result1 = true;
} else {
if(tuanYuanSet.contains(ty +1))
result2 = true;
}
if(ty % 100 <= 8) {
if(tuanYuanSet.contains(ty +1) && tuanYuanSet.contains(ty +2))
result3 = true;
}
int type = ty / 100;
if(type == 1 && tuanYuanSet.contains(ty + 100)) {
result4 = true;
}
if(type == 2 && tuanYuanSet.contains(ty - 100)) {
result4 = true;
}
}
if(tuanYuanSet.size() == 2) {
if(tuanYuanSet.contains(108) && tuanYuanSet.contains(208)) {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBAPENGTOU,MingTang.ST_HUXI,300));
}else if (result4) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIABAPENGTOU,MingTang.ST_HUXI,150));
}else if (result1) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_LONGBAIWEI,MingTang.ST_HUXI,150));
}else if (result2) {
jiaxi += 80;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIEMEIZHUO,MingTang.ST_HUXI,80));
}//else {
//按需求40改50 05-20 mt
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOHU,MingTang.ST_HUXI,50));
//}
} else if(tuanYuanSet.size() > 2) {
if (tuanYuanSet.contains(108) && tuanYuanSet.contains(208)) {
//按需求300改400 05-20 mt
jiaxi += 400;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBAPENGTOU,MingTang.ST_HUXI,400));
}
if (result4) {
//按需求150改200 05-20 mt
jiaxi += 200;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIABAPENGTOU,MingTang.ST_HUXI,200));
}
if (result1) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_LONGBAIWEI,MingTang.ST_HUXI,150));
}
if (result3) {
if(tuanYuanSet.size() == 4) {
jiaxi += 400;
owner.winMtList.add(new MingTang(MingTang.TYPE_DIASUNZHUODAITUO,MingTang.ST_HUXI,400));
}else {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_DIASUNZHUO,MingTang.ST_HUXI,300));
}
}
if (result2 &&!result3) {
//按需求150改200 05-20 mt
jiaxi += 200;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIEMEIZHUODAITUO,MingTang.ST_HUXI,200));
}
if (tuanYuanSet.size() == 3 && !result3 && !result2) {
//按需求100改150 05-20 mt jefe
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_SANLUANZHUO,MingTang.ST_HUXI,150));
}else if (tuanYuanSet.size() == 4) {
jiaxi += 300;
owner.winMtList.add(new MingTang(MingTang.TYPE_SILUANZHUO,MingTang.ST_HUXI,300));
}
}
}
if(this.card.getCount() == 0) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_HAIDIHU,MingTang.ST_HUXI,50));
}
if(dandiao) {
if(duizi) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,50));
} else {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_DANDIAO,MingTang.ST_HUXI,30));
}
}
int specialDuiDaoHu = 0;
if(duiDaoHu) {
specialDuiDaoHu = CardUtil.checkSpecialDuiDaoHu(owner.opCardList, owner.handCard, owner.winCard);
if(specialDuiDaoHu == 1) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_BEIKAOBEI,MingTang.ST_HUXI,50));
}else if (specialDuiDaoHu == 2) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_SHOUQIANSHOU,MingTang.ST_HUXI,50));
}
}
if(haveXi) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DINGDUI,MingTang.ST_HUXI,50));
}
if(owner.cardInhand.size() == 1) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_QUANQIUREN,MingTang.ST_HUXI,150));
}
if(owner.huXi == 10 && owner.kaWei) {
//按需求50改100 05-20 mt
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_KAWEI,MingTang.ST_HUXI,100));
}
if(this.tianHu && owner.seat == this.bankerSeat) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_TIANHU, MingTang.ST_HUXI, 150));
}
if(piaodui) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_PIAODUI, MingTang.ST_HUXI, 50));
}
if (dandiao && CardUtil.checkJiDing(owner.handCard, owner.winCard)) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIDING, MingTang.ST_HUXI, 100));
}
if(shouXi == zhuoXi && zhuoXi ==5) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_SXWUQIANNIAN, MingTang.ST_HUXI, 50));
}
/**=========================================================================================*/
if(bianKan) {
jiaxi += 40;
owner.winMtList.add(new MingTang(MingTang.TYPE_LINGBIANKAN, MingTang.ST_HUXI, 40));
}
if(specialDuiDaoHu == 3 ) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHENBEIKAOBEI, MingTang.ST_HUXI, 100));
}
if(specialDuiDaoHu == 4) {
int xiao = owner.winCard % 100;
if(xiao == 1 || xiao == 10) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_FENGPAIWEI, MingTang.ST_HUXI, 50));
}
}
if(owner.huXi == 10) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_KAHU, MingTang.ST_HUXI, 50));
}
if(zimo) {
//按需求40改30 05-20 mt
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZIMO, MingTang.ST_HUXI, 30));
}
if(haveXi) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_DINGDINGXI, MingTang.ST_HUXI, 50));
}
if (duiDaoHu) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_DUIDAOHU, MingTang.ST_HUXI, 30));
}
if (geShanDaNiu) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_GSDN, MingTang.ST_HUXI, 30));
}
if (specialDuiDaoHu == 5) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIAFENGBAIWEI, MingTang.ST_HUXI, 30));
}
if(zimo && owner.winCard == 103) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_ZHUOXIAOSAN, MingTang.ST_HUXI, 100));
}
/*if(CardUtil.checkErXiManHuaYuan(owner.opCardList, owner.handCard)) {
jiaxi += 150;
owner.winMtList.add(new MingTang(MingTang.TYPE_ERXIMANHUAYUAN, MingTang.ST_HUXI, 150));
}*/
if((tuanYuanSet.contains(101) && tuanYuanSet.contains(210)) || (tuanYuanSet.contains(110) && tuanYuanSet.contains(201))) {
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_JIALONGBAIWU, MingTang.ST_HUXI, 100));
}
if (dandiao && CardUtil.checkYuanYuanDing(owner.opCardList, owner.handCard, owner.winCard)) {
//按需求50改100 05-20 mt
jiaxi += 100;
owner.winMtList.add(new MingTang(MingTang.TYPE_YUANYUANDING, MingTang.ST_HUXI, 100));
}
if (CardUtil.checkXinLianXin(owner.opCardList, owner.handCard)) {
jiaxi += 30;
owner.winMtList.add(new MingTang(MingTang.TYPE_XINLIANXIN, MingTang.ST_HUXI, 30));
}
if(hong_num == 2 && contains123 == 2) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_ERLONGXIZHU, MingTang.ST_HUXI, 50));
}
if(owner.cardInhand.size() == 1 && CardUtil.checkHongCard(owner.cardInhand.get(0))) {
jiaxi += 50;
owner.winMtList.add(new MingTang(MingTang.TYPE_MEINVCAIDANCHE,MingTang.ST_HUXI,50));
}
huxi = owner.huXi * (beishu > 0 ? beishu : 1) + jiaxi;
}
owner.winHuxi = huxi;
return huxi;
}
@Override
protected void roomResult() {
EXMainServer.gameCtr.roomResult(this);
}
@Override
public void endGame() {
super.endGame();
}
/*public void settleRound() {
boolean total = this.round >= this.maxRound;
if (!total)
EXMainServer.gameCtr.roomResult(this);
else {
this.saveMilitaryTotal(false);
}
saveMilitaryRound(playBackData.getData());
this.stateMachine.changeState(Global.getState(EXRoomRoundSettleState.class));
if (total) {
if (this.maxRound == 8) {
for (Entry<Integer, Player> entry : this.playerMapById.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue();
if (player.winCount == 8) {
player.redisTask(3, 8);
}
}
}
this.stateMachine.changeState(Global.getState(RoomEndGameState.class));
return;
}
}*/
public PlayBack getPlayBack() {
return (PlayBack) playBackData;
}
@Override
public void saveMilitaryTotal(boolean dissmiss) {
super.saveMilitaryTotal(dissmiss);
EXMainServer.gameCtr.roomTotalResult(this, dissmiss);
}
@Override
public void clear() {
super.clear();
this.tianHu = true;
this.throwList.clear();
this.liuju = false;
this.activeSeat = this.currenDiscardSeat = 0;
this.lastPaoSeat = 0;
this.draw = -1;
this.isAllPass = false;
}
}