feat(fight): 添加战斗前状态检查与经验获取限制判断
- 在挑战BOSS和野外怪物战斗前,增加 CanFight 状态检查,防止非法战斗 - 修复战斗胜利后经验与物品发放逻辑,增加 CanGetExp 判断避免重复获取 - 优化战斗中精灵切换逻辑与相关伤害效果处理,确保死亡标记正确设置 - 修正战斗轮次中被动切换行为及技能执行顺序问题 - 移除无用的管理员会话控制器和宠物融合模型代码 - 调整战斗输入结构体中的 Switch 类型为 Map 以提高查找效率 - 修复战斗中精灵存活判定条件,
This commit is contained in:
24
modules/blazing/controller/admin/pet_fusion_controller.go
Normal file
24
modules/blazing/controller/admin/pet_fusion_controller.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"blazing/modules/blazing/service"
|
||||
)
|
||||
|
||||
// PetFusionController 宠物融合配方主表Admin控制器(对应/admin/pet/fusion路由)
|
||||
type PetFusionController struct {
|
||||
*cool.Controller
|
||||
}
|
||||
|
||||
func init() {
|
||||
// 初始化控制器,配置路由前缀、支持的API、绑定Service
|
||||
var petFusionController = &PetFusionController{
|
||||
&cool.Controller{
|
||||
Prefix: "/admin/pet/fusion", // 路由前缀(按模块分类:宠物-融合配方)
|
||||
Api: []string{"Add", "Delete", "Update", "Info", "List", "Page"}, // 支持的基础CRUD接口
|
||||
Service: service.NewPetFusionService(), // 绑定主表Service
|
||||
},
|
||||
}
|
||||
// 注册控制器到框架
|
||||
cool.RegisterController(petFusionController)
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"blazing/modules/blazing/service"
|
||||
)
|
||||
|
||||
// PetFusionMaterialController 宠物融合材料子表Admin控制器(对应/admin/pet/fusion/material路由)
|
||||
type PetFusionMaterialController struct {
|
||||
*cool.Controller
|
||||
}
|
||||
|
||||
func init() {
|
||||
// 初始化控制器,配置路由前缀、支持的API、绑定Service
|
||||
var petFusionMaterialController = &PetFusionMaterialController{
|
||||
&cool.Controller{
|
||||
Prefix: "/admin/pet/fusionmaterial", // 路由前缀(主表路由+子表名,层级清晰)
|
||||
Api: []string{"Add", "Delete", "Update", "Info", "List", "Page"}, // 支持的基础CRUD接口
|
||||
Service: service.NewPetFusionMaterialService(), // 绑定子表Service
|
||||
},
|
||||
}
|
||||
// 注册控制器到框架
|
||||
cool.RegisterController(petFusionMaterialController)
|
||||
}
|
||||
@@ -1,85 +1,85 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"blazing/common/data/share"
|
||||
"blazing/cool"
|
||||
baseservice "blazing/modules/base/service"
|
||||
"blazing/modules/blazing/service"
|
||||
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
type SessionReq struct {
|
||||
g.Meta `path:"/getSessionByAuth" method:"GET"`
|
||||
Email string `json:"email" v:"required|email"`
|
||||
Password string `json:"password" v:"required"`
|
||||
}
|
||||
type SessionRes struct {
|
||||
Msg string `json:"msg"`
|
||||
Code int `json:"code"`
|
||||
Session string `json:"session"`
|
||||
}
|
||||
|
||||
type BlazingController struct {
|
||||
*cool.Controller
|
||||
}
|
||||
|
||||
var biazing_service = service.NewLoginServiceService()
|
||||
|
||||
func init() {
|
||||
var blazing_controller = &BlazingController{
|
||||
&cool.Controller{
|
||||
Prefix: "/seer/game",
|
||||
Api: []string{},
|
||||
Service: biazing_service,
|
||||
},
|
||||
}
|
||||
// 注册路由
|
||||
cool.RegisterController(blazing_controller)
|
||||
}
|
||||
func (c *BlazingController) GetSession(ctx context.Context, req *SessionReq) (res *SessionRes, err error) {
|
||||
|
||||
res = &SessionRes{
|
||||
Msg: "success",
|
||||
Code: 200,
|
||||
Session: ""}
|
||||
if err := g.Validator().Data(req).Run(ctx); err != nil {
|
||||
fmt.Println(err)
|
||||
res.Code = 400
|
||||
res.Msg = err.Error()
|
||||
|
||||
}
|
||||
res1, err := baseservice.NewBaseSysUserService().GetSession(req.Email, req.Password)
|
||||
|
||||
if err != nil || res1 == nil {
|
||||
res.Code = 400
|
||||
res.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
|
||||
accountID := res1.ID
|
||||
retsid, sid, err := biazing_service.GetSessionId(accountID)
|
||||
if err != nil {
|
||||
res.Code = 400
|
||||
res.Msg = err.Error()
|
||||
|
||||
}
|
||||
|
||||
res.Session = retsid
|
||||
|
||||
if err := share.ShareManager.SaveSession(sid, uint32(accountID)); err != nil {
|
||||
res.Code = 400
|
||||
res.Msg = err.Error()
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
type MockReq struct {
|
||||
g.Meta `path:"/mock" method:"GET"`
|
||||
Email string `json:"email" v:"required|email"`
|
||||
Password string `json:"password" v:"required"`
|
||||
}
|
||||
package app
|
||||
|
||||
import (
|
||||
"blazing/common/data/share"
|
||||
"blazing/cool"
|
||||
baseservice "blazing/modules/base/service"
|
||||
"blazing/modules/blazing/service"
|
||||
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
type SessionReq struct {
|
||||
g.Meta `path:"/getSessionByAuth" method:"GET"`
|
||||
Email string `json:"email" v:"required|email"`
|
||||
Password string `json:"password" v:"required"`
|
||||
}
|
||||
type SessionRes struct {
|
||||
Msg string `json:"msg"`
|
||||
Code int `json:"code"`
|
||||
Session string `json:"session"`
|
||||
}
|
||||
|
||||
type BlazingController struct {
|
||||
*cool.Controller
|
||||
}
|
||||
|
||||
var biazing_service = service.NewLoginServiceService()
|
||||
|
||||
func init() {
|
||||
var blazing_controller = &BlazingController{
|
||||
&cool.Controller{
|
||||
Prefix: "/seer/game",
|
||||
Api: []string{},
|
||||
Service: biazing_service,
|
||||
},
|
||||
}
|
||||
// 注册路由
|
||||
cool.RegisterController(blazing_controller)
|
||||
}
|
||||
func (c *BlazingController) GetSession(ctx context.Context, req *SessionReq) (res *SessionRes, err error) {
|
||||
|
||||
res = &SessionRes{
|
||||
Msg: "success",
|
||||
Code: 200,
|
||||
Session: ""}
|
||||
if err := g.Validator().Data(req).Run(ctx); err != nil {
|
||||
fmt.Println(err)
|
||||
res.Code = 400
|
||||
res.Msg = err.Error()
|
||||
|
||||
}
|
||||
res1, err := baseservice.NewBaseSysUserService().GetSession(req.Email, req.Password)
|
||||
|
||||
if err != nil || res1 == nil {
|
||||
res.Code = 400
|
||||
res.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
|
||||
accountID := res1.ID
|
||||
retsid, sid, err := biazing_service.GetSessionId(accountID)
|
||||
if err != nil {
|
||||
res.Code = 400
|
||||
res.Msg = err.Error()
|
||||
|
||||
}
|
||||
|
||||
res.Session = retsid
|
||||
|
||||
if err := share.ShareManager.SaveSession(sid, uint32(accountID)); err != nil {
|
||||
res.Code = 400
|
||||
res.Msg = err.Error()
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
type MockReq struct {
|
||||
g.Meta `path:"/mock" method:"GET"`
|
||||
Email string `json:"email" v:"required|email"`
|
||||
Password string `json:"password" v:"required"`
|
||||
}
|
||||
@@ -2,4 +2,5 @@ package controller
|
||||
|
||||
import (
|
||||
_ "blazing/modules/blazing/controller/admin"
|
||||
_ "blazing/modules/blazing/controller/app"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user