package items import ( "wuziqi-server/core" "github.com/heroiclabs/nakama-common/runtime" ) // GameLogic 接口定义了道具需要从游戏引擎调用的方法 // 这避免了 items 和 logic 包之间的循环依赖 type GameLogic interface { ApplyDamage(state *core.GameState, target *core.Player, amount int, isItemEffect bool) HealPlayer(player *core.Player, amount int) GetRandomAliveTarget(state *core.GameState, excludeID string) *core.Player BroadcastEvent(event core.GameEvent) SendPrivateEvent(targetID string, event core.GameEvent) } // ItemContext 捆绑了道具使用所需的依赖项 type ItemContext struct { Logger runtime.Logger Dispatcher runtime.MatchDispatcher Logic GameLogic } // ItemStrategy 定义了特定道具的行为 type ItemStrategy interface { // Use 应用道具效果。如果消耗则返回 true。 Use(state *core.GameState, user *core.Player, ctx ItemContext) bool }