game

package
v0.3.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2023 License: MIT Imports: 2 Imported by: 0

README

Game

该目录下包含了各类通用的游戏玩法性内容,其中该目录主要为基础性内容,具体目录将对应不同的游戏功能性内容。

builtin: 原内置功能实现目录,即将抽离到各个子目录中,不再提供单独的功能实现。

Activity 游戏活动

提供了通用的游戏活动接口及各类辅助函数,开发者可以使用它来快速创建和管理游戏中的各类活动。活动是游戏中的特殊事件,通常在限时或周期内举行,为玩家提供额外奖励、挑战或合作机会。活动框架将实现活动时间的管理,包括开始和结束时间的设定,并提供活动数据的管理功能,例如参与玩家的记录、活动奖励等。开发者可以根据具体游戏需求,自由定制不同类型的活动,并快速集成到游戏中。

Poker 扑克玩法

提供了通用的扑克游戏数据结构和辅助函数,如牌堆、扑克牌、牌型、匹配器等,使得开发者可以轻松实现各种扑克类游戏。扑克游戏是一种流行的纸牌游戏,通常涉及赌注和策略。在这个子目录中,我们将实现通用的扑克游戏框架,例如德州扑克框架、奥马哈扑克框架等,开发者可以基于这些框架快速搭建具有不同规则的扑克游戏,并灵活调整游戏规则和玩法,较为核心的内容则是提供了牌型检测及最优组合选取的功能,以及内置了一系列常用的牌型等。

Room 游戏房间

提供了通用的基础游戏房间设计,开发者可以使用它来构建游戏中的多人模式功能。房间是指游戏中的多人对战或合作模式,玩家可以创建或加入房间,与其他玩家一起进行游戏。 该目录内提供了统一的房间管理及座位号等常用功能,并配置了大量的事件供给状态监控。

Task 任务

提供了通用的任务设计,开发者可以使用它来设计和实现游戏中的任务机制。任务系统是引导玩家完成特定任务或目标的机制,它是游戏中重要的激励和玩法设计元素。任务系统框架将包括日常任务、主线任务、奖励机制等功能,开发者可以根据游戏类型和风格,定制不同类型的任务,并设定相应的奖励机制,以增加游戏的可玩性和挑战性。

Documentation

Overview

Package game 目录下包含了各类通用的游戏玩法性内容,其中该目录主要为基础性内容,具体目录将对应不同的游戏功能性内容。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Actor

type Actor interface {
	// SetGuid 设置对象的唯一标识符
	//  - 需要注意的是该函数不应该主动执行,否则可能产生意想不到的情况
	SetGuid(guid int64)
	// GetGuid 获取对象的唯一标识符
	GetGuid() int64
}

Actor 表示游戏中的可以放到游戏场景中的游戏对象的基本类型

  • 需要注意 Actor 不等于 Player
  • 在 Minotaur 中,每个网络连接可以表示一个 Player,而每个玩家可以拥有多个 Actor
  • Actor 并非 Player 独有,场景中也可包含各类无主的 Actor

type Item

type Item[ID comparable] interface {
	// GetID 获取物品ID
	GetID() ID
	// IsSame 与另一个物品比较是否相同
	IsSame(item Item[ID]) bool
}

type ItemContainer

type ItemContainer[ItemID comparable, I Item[ItemID]] interface {
	// GetSize 获取容器物品非堆叠数量
	GetSize() int
	// GetSizeLimit 获取容器物品非堆叠数量上限
	GetSizeLimit() int
	// SetExpandSize 设置拓展非堆叠数量上限
	SetExpandSize(size int)
	// GetItem 获取物品
	GetItem(guid int64) (ItemContainerMember[ItemID, I], error)
	// GetItems 获取所有非空物品
	//  - 物品顺序为容器内顺序
	//  - 空的容器空间将被忽略
	GetItems() []ItemContainerMember[ItemID, I]
	// GetItemsFull 获取所有物品
	//  - 物品顺序为容器内顺序
	//  - 空的容器空间将被设置为nil
	//  - 当容器非堆叠物品上限为0时,最后一个非空物品之后的所有空物品都将被忽略
	//  - 当容器非堆叠物品未达到上限时,其余空间将使用nil填充
	GetItemsFull() []ItemContainerMember[ItemID, I]
	// GetItemsMap 获取所有物品
	GetItemsMap() map[int64]ItemContainerMember[ItemID, I]
	// ExistItem 物品是否存在
	ExistItem(guid int64) bool
	// ExistItemWithID 是否存在特定ID的物品
	ExistItemWithID(id ItemID) bool
	// AddItem 添加物品
	AddItem(item I, count *huge.Int) (guid int64, err error)
	// DeductItem 扣除特定物品数量,当数量为0将被移除,数量不足时将不进行任何改变
	DeductItem(guid int64, count *huge.Int) error
	// TransferTo 转移特定物品到另一个容器中
	TransferTo(guid int64, count *huge.Int, target ItemContainer[ItemID, I]) error
	// CheckAllowAdd 检查是否允许添加特定物品
	CheckAllowAdd(item I, count *huge.Int) error
	// CheckDeductItem 检查是否允许扣除特定物品
	CheckDeductItem(guid int64, count *huge.Int) error
	// Remove 移除特定guid的物品
	Remove(guid int64)
	// RemoveWithID 移除所有物品ID匹配的物品
	RemoveWithID(id ItemID)
	// Clear 清空物品容器
	Clear()
}

ItemContainer 物品容器

type ItemContainerMember

type ItemContainerMember[ItemID comparable, I Item[ItemID]] interface {
	// GetID 获取物品ID
	GetID() ItemID
	// GetGUID 获取物品GUID
	GetGUID() int64
	// GetCount 获取物品数量
	GetCount() *huge.Int
	// GetItem 获取物品
	GetItem() I
}

ItemContainerMember 物品容器成员信息

type Player

type Player[ID comparable] interface {
	// GetID 获取玩家ID
	GetID() ID
	// GetConn 获取玩家连接
	GetConn() *server.Conn
	// UseConn 指定连接
	UseConn(conn *server.Conn)
	// Close 关闭玩家并且释放其资源
	Close(err ...error)
}

Player 玩家

type Position2D

type Position2D interface {
	// GetPosition 获取对象位置
	GetPosition() (x, y float64)
}

Position2D 2D位置接口定义

type Position2DSet

type Position2DSet interface {
	SetPosition(x, y float64)
}

Position2DSet 2D位置设置接口定义

type Position3D

type Position3D interface {
	GetPosition() (x, y, z float64)
}

Directories

Path Synopsis
Package builtin 包含了通用游戏相关的接口的内置实现
Package builtin 包含了通用游戏相关的接口的内置实现
Package poker 提供了一组用于处理扑克牌游戏的函数和数据结构。
Package poker 提供了一组用于处理扑克牌游戏的函数和数据结构。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL