Skip to content

Commit 084e194

Browse files
committed
优化代码,修改jj()返回niuID后续赎牛牛可自定义回复
1 parent d91ce11 commit 084e194

File tree

2 files changed

+50
-13
lines changed

2 files changed

+50
-13
lines changed

niu/main.go

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ var (
2727

2828
errCancelFail = errors.New("遇到不可抗力因素,注销失败!")
2929

30+
// ErrAuctioned 已被拍卖无法赎回
31+
ErrAuctioned = errors.New("你的牛牛已经被拍卖无法赎回")
32+
33+
// ErrCanceled 已被注销无法赎回
34+
ErrCanceled = errors.New("你的牛牛已经被注销无法赎回")
35+
3036
// ErrInvalidProductID 商品ID无效
3137
ErrInvalidProductID = errors.New("商品id不存在")
3238

@@ -241,37 +247,38 @@ func Register(gid, uid int64) (string, error) {
241247
}
242248

243249
// JJ ...
244-
func JJ(gid, uid, adduser int64, prop string) (message string, adduserLength float64, err error) {
250+
func JJ(gid, uid, adduser int64, prop string) (message string, adduserLength float64, niuID uuid.UUID, err error) {
245251
globalLock.Lock()
246252
defer globalLock.Unlock()
247253

248254
myniuniu, err := getUserByID(gid, uid)
249255
if err != nil {
250-
return "", 0, ErrNoNiuNiu
256+
return "", 0, uuid.Nil, ErrNoNiuNiu
251257
}
252258

253259
adduserniuniu, err := getUserByID(gid, adduser)
254260
if err != nil {
255-
return "", 0, ErrAdduserNoNiuNiu
261+
return "", 0, uuid.Nil, ErrAdduserNoNiuNiu
256262
}
257263

258264
if uid == adduser {
259-
return "", 0, ErrCannotFight
265+
return "", 0, uuid.Nil, ErrCannotFight
260266
}
261267

262268
message, err = myniuniu.processJJ(adduserniuniu, prop)
263269
if err != nil {
264-
return "", 0, err
270+
return "", 0, uuid.Nil, err
265271
}
266272

267273
if err = tableFor(gid, ur).Where("user_id =?", uid).Update("length", myniuniu.Length).Error; err != nil {
268-
return "", 0, err
274+
return "", 0, uuid.Nil, err
269275
}
270276

271277
if err = tableFor(gid, ur).Where("user_id =?", adduser).Update("length", adduserniuniu.Length).Error; err != nil {
272-
return "", 0, err
278+
return "", 0, uuid.Nil, err
273279
}
274280

281+
niuID = adduserniuniu.NiuID
275282
adduserLength = adduserniuniu.Length
276283

277284
return
@@ -294,7 +301,7 @@ func Cancel(gid, uid int64) (string, error) {
294301
}
295302

296303
// Redeem 赎牛牛
297-
func Redeem(gid, uid int64, lastLength float64) error {
304+
func Redeem(gid, uid int64, r Rm) error {
298305
globalLock.Lock()
299306
defer globalLock.Unlock()
300307

@@ -305,7 +312,19 @@ func Redeem(gid, uid int64, lastLength float64) error {
305312

306313
money := wallet.GetWalletOf(uid)
307314

308-
price := 150
315+
var niuManager niuNiuManager
316+
if err = db.Model(&niuNiuManager{}).Where("niu_id = ?", r.NiuID).First(&niuManager).Error; err != nil {
317+
return err
318+
}
319+
320+
switch niuManager.Status {
321+
case 1:
322+
return ErrAuctioned
323+
case 2:
324+
return ErrCanceled
325+
}
326+
327+
price := int(hitGlue(r.Length))*100 + 150
309328

310329
if money < price {
311330
var builder strings.Builder
@@ -324,7 +343,7 @@ func Redeem(gid, uid int64, lastLength float64) error {
324343
return err
325344
}
326345

327-
return tableFor(gid, ur).Where("user_id = ?", uid).Update("length", lastLength).Error
346+
return tableFor(gid, ur).Where("user_id = ?", uid).Update("length", r.Length).Error
328347
}
329348

330349
// Store 牛牛商店

niu/models.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ var (
1717
jjPorps = []string{"击剑神器", "击剑神稽"}
1818
)
1919

20+
type Rm struct {
21+
NiuID uuid.UUID
22+
TimeLimit time.Time
23+
Count int
24+
Length float64
25+
}
26+
2027
type users []*userInfo
2128

2229
type niuNiuManager struct {
@@ -115,9 +122,9 @@ func (u *userInfo) useWeiGe() (string, float64) {
115122
reduce := math.Abs(hitGlue(niuniu))
116123
niuniu += reduce
117124
return randomChoice([]string{
118-
fmt.Sprintf("哈哈,你这一用道具,牛牛就像是被激发了潜能,增加了%.2fcm!看来今天是个大日子呢!", reduce),
125+
fmt.Sprintf("哈哈,你这一用伟哥,牛牛就像是被激发了潜能,增加了%.2fcm!看来今天是个大日子呢!", reduce),
119126
fmt.Sprintf("你这是用了什么神奇的道具?牛牛竟然增加了%.2fcm,简直是牛气冲天!", reduce),
120-
fmt.Sprintf("使用道具后,你的牛牛就像是开启了加速模式,一下增加了%.2fcm,这成长速度让人惊叹!", reduce),
127+
fmt.Sprintf("使用伟哥后,你的牛牛就像是开启了加速模式,一下增加了%.2fcm,这成长速度让人惊叹!", reduce),
121128
}), niuniu
122129
}
123130

@@ -127,7 +134,7 @@ func (u *userInfo) useMeiYao() (string, float64) {
127134
niuniu -= reduce
128135
return randomChoice([]string{
129136
fmt.Sprintf("你使用媚药,咿呀咿呀一下使当前长度发生了一些变化,当前长度%.2fcm", niuniu),
130-
fmt.Sprintf("看来你追求的是‘微观之美’,故意使用道具让牛牛凹进去了%.2fcm!", reduce),
137+
fmt.Sprintf("看来你追求的是‘微观之美’,故意使用媚药让牛牛凹进去了%.2fcm!", reduce),
131138
fmt.Sprintf("缩小奇迹’在你身上发生了,牛牛凹进去了%.2fcm,你的选择真是独特!", reduce),
132139
}), niuniu
133140
}
@@ -266,6 +273,17 @@ func (u *userInfo) purchaseItem(productID, quantity int) (money int, err error)
266273

267274
money *= quantity
268275

276+
switch productID {
277+
case 1:
278+
u.WeiGe += quantity
279+
case 2:
280+
u.MeiYao += quantity
281+
case 3:
282+
u.Artifact += quantity
283+
case 4:
284+
u.ShenJi += quantity
285+
}
286+
269287
return
270288
}
271289

0 commit comments

Comments
 (0)