Files
vRp.CD2g_test/game/fight

Fight

Go doc

暂无介绍...

目录导航

列出了该 package 下所有的函数及类型定义,可通过目录导航进行快捷跳转 ❤️

展开 / 折叠目录导航

包级函数定义

函数名称 描述
NewTurnBased 创建一个新的回合制

类型定义

类型 名称 描述
STRUCT TurnBased 回合制
INTERFACE TurnBasedControllerInfo 暂无描述...
INTERFACE TurnBasedControllerAction 暂无描述...
STRUCT TurnBasedController 回合制控制器
STRUCT TurnBasedEntitySwitchEventHandler 暂无描述...

详情信息

func NewTurnBased(calcNextTurnDuration func ( Camp, Entity) time.Duration) *TurnBased[CampID, EntityID, Camp, Entity]

创建一个新的回合制

  • calcNextTurnDuration 将返回下一次行动时间间隔,适用于按照速度计算下一次行动时间间隔的情况。当返回 0 时,将使用默认的行动超时时间

TurnBased STRUCT

回合制

type TurnBased[CampID comparable, EntityID comparable, Camp generic.IdR[CampID], Entity generic.IdR[EntityID]] struct {
	*turnBasedEvents[CampID, EntityID, Camp, Entity]
	controller           *TurnBasedController[CampID, EntityID, Camp, Entity]
	ticker               *time.Ticker
	actionWaitTicker     *time.Ticker
	actioning            bool
	actionMutex          sync.RWMutex
	entities             []Entity
	campRel              map[EntityID]Camp
	calcNextTurnDuration func(Camp, Entity) time.Duration
	actionTimeoutHandler func(Camp, Entity) time.Duration
	signal               chan signal
	round                int
	currCamp             Camp
	currEntity           Entity
	currActionTimeout    time.Duration
	currStart            time.Time
	closeMutex           sync.RWMutex
	closed               bool
}

TurnBasedControllerInfo INTERFACE

type TurnBasedControllerInfo[CampID comparable, EntityID comparable, Camp generic.IdR[CampID], Entity generic.IdR[EntityID]] interface {
	GetRound() int
	GetCamp() Camp
	GetEntity() Entity
	GetActionTimeoutDuration() time.Duration
	GetActionStartTime() time.Time
	GetActionEndTime() time.Time
	Stop()
}

TurnBasedControllerAction INTERFACE

type TurnBasedControllerAction[CampID comparable, EntityID comparable, Camp generic.IdR[CampID], Entity generic.IdR[EntityID]] interface {
	TurnBasedControllerInfo[CampID, EntityID, Camp, Entity]
	Finish()
	Refresh(duration time.Duration) time.Time
}

TurnBasedController STRUCT

回合制控制器

type TurnBasedController[CampID comparable, EntityID comparable, Camp generic.IdR[CampID], Entity generic.IdR[EntityID]] struct {
	tb *TurnBased[CampID, EntityID, Camp, Entity]
}

TurnBasedEntitySwitchEventHandler STRUCT

type TurnBasedEntitySwitchEventHandler[CampID comparable, EntityID comparable, Camp generic.IdR[CampID], Entity generic.IdR[EntityID]] func(controller TurnBasedControllerAction[CampID, EntityID, Camp, Entity])