All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
feat(fight): 新增疲惫状态并优化睡眠状态机制 - 实现疲惫状态(StatusTired),仅限制攻击技能,允许属性技能正常使用 - 重构睡眠状态,改为在被攻击且未miss时立即解除,而非技能使用后 - 修复寄生种子效果触发时机,改为回合开始时触发 - 调整寄生效果的目标为技能施放者而非
91 lines
1.9 KiB
Go
91 lines
1.9 KiB
Go
package service
|
|
|
|
import (
|
|
"blazing/cool"
|
|
"blazing/modules/config/model"
|
|
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
)
|
|
|
|
type TaskService struct {
|
|
*cool.Service
|
|
}
|
|
|
|
func NewTaskService() *TaskService {
|
|
return &TaskService{
|
|
&cool.Service{
|
|
Model: model.NewTaskConfig(),
|
|
PageQueryOp: &cool.QueryOp{
|
|
FieldEQ: []string{"task_type", "task_id"},
|
|
KeyWordField: []string{"remark"},
|
|
},
|
|
//UniqueKey: map[string]string{"task_id": "索引不能重复"},
|
|
},
|
|
}
|
|
}
|
|
func (s *TaskService) Get(id, os int) *model.TaskConfig {
|
|
var res *model.TaskConfig
|
|
dbm_enable(s.Model).Where("task_id", id).Where("out_state", os).Scan(&res)
|
|
if res == nil {
|
|
dbm_notenable(s.Model).Where("task_id", id).Where("out_state", os).Scan(&res)
|
|
}
|
|
// var res *model.TaskConfig
|
|
// for _, v := range item {
|
|
// if v.OutState == os {
|
|
// res = &v
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
return res
|
|
|
|
}
|
|
func (s *TaskService) GetDaily() []model.TaskConfig {
|
|
var item []model.TaskConfig
|
|
dbm_enable(s.Model).Where("task_type", 1).Scan(&item)
|
|
if len(item) == 0 {
|
|
dbm_notenable(s.Model).Where("task_type", 1).Scan(&item)
|
|
}
|
|
|
|
return item
|
|
|
|
}
|
|
func (s *TaskService) GetWeek() []model.TaskConfig {
|
|
var item []model.TaskConfig
|
|
dbm_enable(s.Model).Where("task_type", 2).Scan(&item)
|
|
if len(item) == 0 {
|
|
dbm_notenable(s.Model).Where("task_type", 2).Scan(&item)
|
|
}
|
|
|
|
return item
|
|
|
|
}
|
|
func (s *TaskService) IsDaily(id, os int) bool {
|
|
var item *model.TaskConfig
|
|
dbm_enable(s.Model).Where("task_id", id).Where("out_state", os).Scan(&item)
|
|
if item == nil {
|
|
dbm_notenable(s.Model).Where("task_id", id).Where("out_state", os).Scan(&item)
|
|
}
|
|
if item == nil {
|
|
return false
|
|
}
|
|
if item.TaskType == 1 {
|
|
return true
|
|
}
|
|
return false
|
|
|
|
}
|
|
func (s *TaskService) IsAcceptable(taskid uint32) (out *model.TaskConfig) {
|
|
|
|
cool.DBM(s.Model).Where("is_acceptable", 1).Where("task_id", taskid).
|
|
Cache(gdb.CacheOption{
|
|
// Duration: time.Hour,
|
|
|
|
Force: false,
|
|
}).Scan(&out)
|
|
|
|
return
|
|
|
|
}
|