# alias: AfterPartnerOvercalls # button-text: After Partner Overcalls # gib-works: true # bba-works: true # auction-filter: Auction.....\n(1C +1[DHS]|1D +(1[HS]|2C)|1H +(1S|2[CD])|1S +2[CDH]) +Pass # convention-card-ns: 21GF-DEFAULT # convention-card-ew: 21GF-GIB /*@chat --- After Partner Overcalls • Raise shows 6-10 TP • Jump raises are preemptive • Cue Biddding opener's suit shows 11+ TP • New Suit denies support and shows 10+ HCP @chat*/ # After Partner Overcalls dealer east produce 1000 #include "script/GIB-1N" # Defines gibNT # Predict East's opening suit -- east will be limited to 12-14 HCP s = spades(east) h = hearts(east) d = diamonds(east) c = clubs(east) oS = s>4 and s>=h and s>=d and s>=c oH = not oS and h>4 and h>=d and h>=c oD = not (oS or oH) and ((d>3 and d>=c) or c<3) oC = not (oS or oH or oD) openingSuit = (oS or oH or oD or oC) # Calculate East's Rank eRS = oS ? 4 : 0 eRH = oH ? 3 : 0 eRD = oD ? 2 : 0 eRC = oC ? 1 : 0 eRank = eRS+eRH+eRD+eRC # Define good suits sGoodS = spades(south)>4 and top4(south,spades)==3 and not oS sGoodH = hearts(south)>4 and top4(south,hearts)==3 and not oH sGoodD = diamonds(south)>4 and top4(south,diamonds)==3 and not oD sGoodC = clubs(south)>4 and top4(south,clubs)==3 and not oC sShape = shape(south,any 8xxx + any 7xxx + any 6xxx + any 5xxx - any 85xx - any 76xx - any 75xx - any 65xx - any 55xx) # Calculate South's Rank sRS = sGoodS ? 4 : 0 sRH = sGoodH ? 3 : 0 sRD = sGoodD ? 2 : 0 sRC = sGoodC ? 1 : 0 sRank = sRS + sRH + sRD + sRC # Define working points for South: hcp - points for secondary honors in opponents suit sSP = oS and hascard(south,AS) ? hcp(south,spades)-4 : hcp(south,spades) sHP = oH and hascard(south,AH) ? hcp(south,hearts)-4 : hcp(south,hearts) sDP = oD and hascard(south,AD) ? hcp(south,diamonds)-4 : hcp(south,diamonds) sCP = oC and hascard(south,AC) ? hcp(south,clubs)-4 : hcp(south,clubs) WP = hcp(south) - sSP - sHP - sDP - sCP // only one will be non-zero # Define suitPoints for South: 1 point for every card over 5 sSSP = sGoodS ? spades(south)-5 : 0 sHSP = sGoodH ? hearts(south)-5 : 0 sDSP = sGoodD ? diamonds(south)-5 : 0 sCSP = sGoodC ? clubs(south)-5 : 0 sSuitPoints = hcp(south) + sSSP + sHSP + sDSP + sCSP sTP = WP + sSuitPoints # require 12+ WP for lower rank suit and 8+ WP for higher rank. Use WP for lower limit. sMin = sRank>eRank ? sTP>=8 : sTP>=13 sMax = sTP<18 // avoid too strong to overcall. sRange = sMin and sMax # avoid take-out double shortS = oS and spades(south)<3 shortH = oH and hearts(south)<3 shortD = oD and diamonds(south)<3 shortC = oC and clubs(south)<3 shortOS = shortS or shortH or shortD or shortC sX = shape(south,any 7330 +any 6430 +any 6331 +any 5431 +any 5440 +any 5332) and shortOS and hcp(south)>10 # avoid weak jump overcalls/preempts sJump = shape(south,any 8xxx +any 7xxx +any 6xxx) and hcp(south)>5 and hcp(south)<11 # avoid Michaels & Unusual 2NT sTwoSuits = shape(south,any 76xx+any 75xx+any 66xx+any 65xx+any 55xx) # East opens eOpens = (oC or oD or oH or oS) and hcp(east)>11 and hcp(east)<15 sOvercalls = (sGoodS or sGoodH or sGoodD or sGoodC) and sShape and sRange and not (sX or sJump or sTwoSuits or gibNT) wSFit = oS and spades(west)<3 wHFit = oH and hearts(west)<3 wDFit = oD and diamonds(west)<4 wCFit = oC and clubs(west)<4 wPasses = (wSFit or wHFit or wDFit or wCFit) and hcp(west)<6 and shape(west,any 4432 +any 5332 -5xxx -x5xx) nFitsS = sGoodS and spades(north)>2 nFitsH = sGoodS and hearts(north)>2 nFitsD = sGoodD and diamonds(north)>3 nFitsC = sGoodC and clubs(north)>3 nFit = (nFitsS or nFitsH or nFitsD or nFitsC) nCS = oC and clubs(north)>2 and top3(north,clubs)>1 nDS = oD and diamonds(north)>2 and top3(north,diamonds)>1 nHS = oH and hearts(north)>2 and top3(north,hearts)>1 nSS = oS and spades(north)>2 and top3(north,spades)>1 nStop = nCS or nDS or nHS or nSS nRaises = nFit and hcp(north)>6 and hcp(north)<11 nCueBids = nFit and hcp(north)>10 nNewSuit = shape(north,any 5xxx+any 6xxx) and hcp(north)>9 and not nFit nNotrump = not (nRaises or nCueBids or nNewSuit) and nStop and hcp(north)>9 nPunts = not (nRaises or nCueBids or nNewSuit or nNotrump) #include "script/Leveling" levelRaise = nRaises and keep67 levelCue = nCueBids and keep levelSuit = nNewSuit and keep25 levelNT = nNotrump and keep levelPunts = nPunts and keep25 levelTheDeal = nRaises or nCueBids or nNewSuit or levelNT or levelPunts # Now do it eOpens and sOvercalls and wPasses and (nRaises or nCueBids or nNewSuit or nNotrump or nPunts) and levelTheDeal action average "Raises " 100 * nRaises, average "CueBids " 100 * nCueBids, average "NewSuit " 100 * nNewSuit, average "NoTrump " 100 * nNotrump, average "Punts " 100 * nPunts,