/// <summary> /// 判断是否达到某种得彩类型的出彩条件. /// </summary> public bool GetIsChuCaiPiaoByDeCaiState(DeCaiState type) { bool isChuPiao = false; int coinToCaiPiao = XKGlobalData.GetInstance().m_CoinToCard *XKGlobalData.GameNeedCoin; float chuPiaoTiaoJian = 0f; int deCaiVal = -1; switch (type) { case DeCaiState.ZhanChe: { chuPiaoTiaoJian = ZhanCheChuPiaoTiaoJian; deCaiVal = ZhanCheDeCai; break; } case DeCaiState.SuiJiDaoJu: { chuPiaoTiaoJian = SuiJiDaoJuChuPiaoTiaoJian; deCaiVal = SuiJiDaoJuDeCai; break; } case DeCaiState.JPBoss: { chuPiaoTiaoJian = JPBossChuPiaoTiaoJian; deCaiVal = JPBossDeCai; break; } } int chuCaiVal = (int)(coinToCaiPiao * chuPiaoTiaoJian); if (XkGameCtrl.GetInstance().m_CaiPiaoMode == XkGameCtrl.CaiPiaoModeSuanFa.GuDing && XkPlayerCtrl.GetInstanceFeiJi() != null) { switch (type) { case DeCaiState.ZhanChe: { chuCaiVal = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GuDingBanCaiPiaoData.ZhanCheDeCai; break; } case DeCaiState.JPBoss: { chuCaiVal = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GuDingBanCaiPiaoData.GetJPBossChuPiaoTiaoJian(); break; } } } if (deCaiVal >= chuCaiVal) { isChuPiao = true; //Debug.Log("Unity: GetIsChuCaiPiaoBy -> the type is can shuCaiPiao! type ============ " + type); } return(isChuPiao); }
/// <summary> /// 获取需要打印的彩票数量. /// </summary> public int GetPrintCaiPiaoValueByDeCaiState(DeCaiState type, SuiJiDaoJuState suiJiDaoJuType = SuiJiDaoJuState.BaoXiang) { int value = 0; int coinStart = XKGlobalData.GetInstance().m_CoinToCard *XKGlobalData.GameNeedCoin; switch (type) { case DeCaiState.ZhanChe: { if (XkGameCtrl.GetInstance().m_CaiPiaoMode == XkGameCtrl.CaiPiaoModeSuanFa.GuDing) { value = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GuDingBanCaiPiaoData.ZhanCheDeCai; } else { value = (int)(coinStart * ZhanCheChuPiaoTiaoJian); } break; } case DeCaiState.SuiJiDaoJu: { float suiJiDaoJuChuPiaoLv = 0f; SuiJiDaoJuData suiJiDaoJuData = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_SuiJiDaoJuData; if (suiJiDaoJuType == SuiJiDaoJuState.TouZi) { suiJiDaoJuChuPiaoLv = suiJiDaoJuData.TouZiDePiaoLv; } else { suiJiDaoJuChuPiaoLv = suiJiDaoJuData.BaoXiangDePiaoLv; } value = (int)(coinStart * SuiJiDaoJuChuPiaoTiaoJian); //应该给玩家的彩票数量. value = (int)(value * suiJiDaoJuChuPiaoLv); break; } case DeCaiState.JPBoss: { if (XkGameCtrl.GetInstance().m_CaiPiaoMode == XkGameCtrl.CaiPiaoModeSuanFa.GuDing) { value = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GuDingBanCaiPiaoData.GetJPBossChuPiaoTiaoJian(); } else { value = (int)(coinStart * JPBossChuPiaoTiaoJian); } break; } } return(value); }
/// <summary> /// 获取当前彩池是出票条件的几倍. /// </summary> public int GetChuPiaoTiaoJianBeiShu(DeCaiState type) { int chuPiaoBeiShu = 0; int coinToCaiPiao = XKGlobalData.GetInstance().m_CoinToCard *XKGlobalData.GameNeedCoin; float chuPiaoTiaoJian = 0f; int deCaiVal = -1; switch (type) { case DeCaiState.ZhanChe: { chuPiaoTiaoJian = ZhanCheChuPiaoTiaoJian; deCaiVal = ZhanCheDeCai; break; } case DeCaiState.SuiJiDaoJu: { chuPiaoTiaoJian = SuiJiDaoJuChuPiaoTiaoJian; deCaiVal = SuiJiDaoJuDeCai; break; } case DeCaiState.JPBoss: { chuPiaoTiaoJian = JPBossChuPiaoTiaoJian; deCaiVal = JPBossDeCai; break; } } int chuCaiVal = (int)(coinToCaiPiao * chuPiaoTiaoJian); chuPiaoBeiShu = deCaiVal / chuCaiVal; return(chuPiaoBeiShu); }
/// <summary> /// 减去游戏某种类型得彩累积数量. /// </summary> public void SubGameDeCaiValByDeCaiState(PlayerEnum index, DeCaiState type, SuiJiDaoJuState suiJiDaoJuType = SuiJiDaoJuState.BaoXiang) { if (XkGameCtrl.GetInstance().m_GamePlayerAiData.IsActiveAiPlayer == true) { //没有激活任何玩家. return; } int val = 0; int coinStart = XKGlobalData.GetInstance().m_CoinToCard *XKGlobalData.GameNeedCoin; switch (type) { case DeCaiState.ZhanChe: { if (XkGameCtrl.GetInstance().m_CaiPiaoMode == XkGameCtrl.CaiPiaoModeSuanFa.GuDing) { val = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GuDingBanCaiPiaoData.ZhanCheDeCai; } else { val = (int)(coinStart * ZhanCheChuPiaoTiaoJian); } ZhanCheDeCai -= val; //从预制彩池里取彩票投入战车彩池. XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GameYuZhiCaiPiaoData.SubZhanCheCaiPiaoVal(); break; } case DeCaiState.SuiJiDaoJu: { //随机道具. float suiJiDaoJuChuPiaoLv = 0f; SuiJiDaoJuData suiJiDaoJuData = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_SuiJiDaoJuData; if (suiJiDaoJuType == SuiJiDaoJuState.TouZi) { suiJiDaoJuChuPiaoLv = suiJiDaoJuData.TouZiDePiaoLv; } else { suiJiDaoJuChuPiaoLv = suiJiDaoJuData.BaoXiangDePiaoLv; } val = (int)(coinStart * SuiJiDaoJuChuPiaoTiaoJian); //应该给玩家的彩票数量. int outCaiPiao = (int)(val * suiJiDaoJuChuPiaoLv); //随机道具积累到预支彩票池的彩票数量. int jiLeiToYuZhiCaiPiaoChiVal = val - outCaiPiao; XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GameYuZhiCaiPiaoData.AddYuZhiCaiPiao(jiLeiToYuZhiCaiPiaoChiVal); val = outCaiPiao; SuiJiDaoJuDeCai -= val; break; } case DeCaiState.JPBoss: { if (XkGameCtrl.GetInstance().m_CaiPiaoMode == XkGameCtrl.CaiPiaoModeSuanFa.GuDing) { val = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GuDingBanCaiPiaoData.GetJPBossChuPiaoTiaoJian(); } else { val = (int)(coinStart * JPBossChuPiaoTiaoJian); } JPBossDeCai -= val; //从预制彩池里取彩票投入JPBoss彩池. XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GameYuZhiCaiPiaoData.SubJPBossCaiPiaoVal(); break; } } if (val > 0) { //此时彩票机应该给对应玩家出val张彩票. Debug.Log("Unity: SubGameDeCaiValByDeCaiState -> index ====== " + index + ", chuPiaoVal ====== " + val + ", type ======= " + type); XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.AddCaiPiaoToPlayer(index, val, type); } }