打工结算
(gid string)
| 341 | |
| 342 | // 打工结算 |
| 343 | func (inf *catInfo) settleOfWork(gid string) (int, bool) { |
| 344 | workTime := inf.Work % 10 |
| 345 | if workTime <= 0 { |
| 346 | return 0, true |
| 347 | } |
| 348 | lastTime := time.Unix(inf.Work/10, 0) |
| 349 | subtime := time.Since(lastTime).Hours() |
| 350 | if subtime < float64(workTime) { |
| 351 | return 0, false |
| 352 | } |
| 353 | getFood := 5 * rand.Float64() |
| 354 | mood := rand.Intn(int(workTime)) |
| 355 | if rand.Intn(5) < 3 { // 60%受饿 |
| 356 | getFood = -(getFood + float64(workTime)*rand.Float64()) |
| 357 | mood *= -3 |
| 358 | } |
| 359 | inf.Satiety += getFood * 100 / math.Max(1, inf.Weight) |
| 360 | inf.Mood += mood |
| 361 | inf.Work = time.Now().Unix() * 10 |
| 362 | inf.LastTime = time.Unix(inf.LastTime, 0).Add(time.Duration(workTime) * time.Hour).Unix() |
| 363 | if catdata.insert(gid, inf) != nil { |
| 364 | return 0, true |
| 365 | } |
| 366 | getmoney := 10 + rand.Intn(10*int(workTime)) |
| 367 | if wallet.InsertWalletOf(inf.User, getmoney) != nil { |
| 368 | return 0, true |
| 369 | } |
| 370 | return getmoney, true |
| 371 | } |