package cardCfg import ( "server/GoUtil" "server/game/mod/item" "server/gamedata" "server/pkg/github.com/name5566/leaf/log" "strconv" "strings" ) const ( CARD_CONST_CFG_NAME = "CardConst" CARD_DETAIL_CFG_NAME = "CardDetail" CARD_PACK_CFG_NAME = "CardPack" CARD_COLLECT_CFG_NAME = "CardCollect" CARD_EXCHANGE_CFG = "CardExchange" ) func init() { gamedata.InitCfg(CARD_CONST_CFG_NAME) gamedata.InitCfg(CARD_DETAIL_CFG_NAME) gamedata.InitCfg(CARD_PACK_CFG_NAME) gamedata.InitCfg(CARD_COLLECT_CFG_NAME) gamedata.InitCfg(CARD_EXCHANGE_CFG) } func GetAllCollectReward() []*item.Item { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "all_collect_reward") if err != nil { log.Debug("GetAllCollectReward data not found") } return item.ParseItem(data["Value"]) } func GetStarById(Id int) int { data, err := gamedata.GetDataByIntKey(CARD_DETAIL_CFG_NAME, Id) if err != nil { log.Debug("GetStarById data not found") } return gamedata.GetIntValue(data, "Star") } // 获取开启卡包获得的卡牌数量 func GetPackRewardCnt(Star int) int { data, err := gamedata.GetDataByIntKey(CARD_PACK_CFG_NAME, Star) if err != nil { log.Debug("GetPackRewardCnt data not found") } return gamedata.GetIntValue(data, "RewardCnt") } // 获取开启开包比得x星卡 func GetPackMustHave(Star int) int { data, err := gamedata.GetDataByIntKey(CARD_PACK_CFG_NAME, Star) if err != nil { log.Debug("GetPackMustHave data not found") } return gamedata.GetIntValue(data, "MustHave") } // 根据星级获取卡牌列表 func GetCardListByStar(Round, Star, IsGold int) []int { var CardList []int data, err := gamedata.GetData(CARD_DETAIL_CFG_NAME) if err != nil { log.Debug("GetCardListByStar data not found") } for k, v := range data { Extra := gamedata.GetIntValue(v, "Round") if Round < Extra { continue } vStar := gamedata.GetIntValue(v, "Star") isGold := gamedata.GetIntValue(v, "IsGold") if vStar == Star && IsGold == isGold { id, _ := strconv.Atoi(k) CardList = append(CardList, id) } } return CardList } // 获取随机卡牌 func GetRandListByStar(Star int) map[int]int { var randList []int data, err := gamedata.GetDataByIntKey(CARD_PACK_CFG_NAME, Star) if err != nil { log.Debug("GetRandListByStar data not found") } r1 := gamedata.GetStringValue(data, "RandRate") r2 := strings.Split(r1, ",") randList = GoUtil.SliceStringToInt(r2) r := make(map[int]int) for k, v := range randList { r[k+1] = v } return r } // 获取卡牌收集奖励 func GetCollectReward(Color int) ([]*item.Item, int) { data, err := gamedata.GetDataByIntKey(CARD_COLLECT_CFG_NAME, Color) if err != nil { log.Debug("GetCollectReward data not found") return nil, 0 } itemCfg := gamedata.GetValue(data, "Item") Chess := gamedata.GetIntValue(data, "Chess") itemList := item.ParseItem(itemCfg) return itemList, Chess } // 获取兑换奖励 func GetExchangeCfg(Id int) (int, []*item.Item) { data, err := gamedata.GetDataByIntKey(CARD_EXCHANGE_CFG, Id) if err != nil { log.Debug("GetExchangeCfg data not found") } CostStar := gamedata.GetIntValue(data, "CostStar") itemList := gamedata.GetItemList(data, "Item") return CostStar, itemList } // 根据系列获取卡牌列表 func GetCardListByColor(Id int) []int { data, err := gamedata.GetData(CARD_DETAIL_CFG_NAME) if err != nil { log.Debug("GetCardListByColor data not found") return []int{} } var r []int for k, v := range data { color := gamedata.GetIntValue(v, "PictureAlbum") if color == Id { k1, _ := strconv.Atoi(k) r = append(r, k1) } } return r } // 获取所有卡牌id func GetAllCardId(Round int) []int { data, err := gamedata.GetData(CARD_DETAIL_CFG_NAME) if err != nil { log.Debug("GetCardListByColor data not found") return []int{} } var r []int for k, v := range data { Extra := gamedata.GetIntValue(v, "Round") if Round < Extra { continue } k1, _ := strconv.Atoi(k) r = append(r, k1) } return r } func CheckCardIsGold(Id int) bool { data, err := gamedata.GetDataByIntKey(CARD_DETAIL_CFG_NAME, Id) if err != nil { log.Debug("CheckCardIsGold data not found") } return gamedata.GetIntValue(data, "IsGold") == 1 } func GetCardDuration() int64 { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "duration") if err != nil { log.Debug("GetCardDuration data not found") } return int64(gamedata.GetIntValue(data, "Value")) } func GetExTimes() int { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "exchange_times") if err != nil { log.Debug("GetExTimes data not found") } return gamedata.GetIntValue(data, "Value") } func GetReqTimes() int { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "request_times") if err != nil { log.Debug("GetReqTimes data not found") } return gamedata.GetIntValue(data, "Value") } func GetItemIdByCardId(CardId int) int { data, err := gamedata.GetDataByIntKey(CARD_DETAIL_CFG_NAME, CardId) if err != nil { log.Debug("GetItemIdByCardId data not found") } return gamedata.GetIntValue(data, "ItemId") }