catastrophe 是一款基于 Sui 区块链的卡牌游戏,结合了 GameFi 和 NFT 的特性,允许玩家收集、合成、升级、质押和租赁卡牌,并参与游戏对战以赢取奖励。本文档详细说明了智能合约的设计与实现。
系统由前端界面层和智能合约层组成:
前端界面提供以下主要功能模块:
welcome.tsx
): 新用户首次访问展示,介绍游戏并展示初始资产dashboard/page.tsx
): 游戏主界面,集成所有功能模块card-collection.tsx
): 展示用户拥有的所有卡牌card-synthesis-gacha.tsx
): 提供卡牌合成和抽卡功能card-rental-marketplace.tsx
): 提供卡牌租赁服务card-staking-pools.tsx
): 提供卡牌质押服务game-matches.tsx
): 提供游戏对战匹配exchange.tsx
): 提供不同代币间的交换dialog-modal.tsx
)、抽卡结果展示 (drawn-card.tsx
) 等智能合约层由六个主要模块组成:
功能:管理用户的游戏身份和资格。
主要对象:
Passport
: 用户护照对象,每个地址只能拥有一个主要方法:
create_passport
: 创建新的护照claim_daily_rewards
: 领取每日奖励can_claim_daily_rewards
: 检查是否可以领取每日奖励add_rental_card
: 添加租赁卡牌到护照remove_rental_card
: 从护照中移除租赁卡牌与前端的交互:
welcome.tsx
在首次访问时创建护照功能:管理游戏卡牌 NFT。
主要对象:
Card
: 游戏卡牌 NFT,具有不同稀有度和属性主要方法:
create_card
: 创建新卡牌upgrade_card
: 升级卡牌burn_card
: 销毁卡牌transfer_card
: 转移卡牌所有权与前端的交互:
card-synthesis-gacha.tsx
合成或抽取卡牌card-collection.tsx
展示所有卡牌card-staking-pools.tsx
质押卡牌card-rental-marketplace.tsx
租赁卡牌功能:管理游戏内碎片代币。
主要对象:
FRAGMENT
: 碎片代币类型FragmentStore
: 碎片存储对象主要方法:
mint
: 铸造碎片burn
: 销毁碎片merge
: 合并碎片split
: 分割碎片transfer_fragments
: 转移碎片与前端的交互:
exchange.tsx
交换碎片与其他资产card-synthesis-gacha.tsx
消耗碎片合成卡牌功能:管理卡牌租赁系统。
主要对象:
RentalCard
: 租赁卡牌对象主要方法:
create_rental
: 创建租赁卡牌rent_card
: 租用卡牌use_rental
: 使用租赁卡牌end_rental
: 结束租赁与前端的交互:
card-rental-marketplace.tsx
提供租赁服务card-collection.tsx
展示租赁的卡牌功能:管理卡牌质押系统。
主要对象:
StakingPool
: 质押池对象StakerInfo
: 质押者信息主要方法:
create_pool
: 创建质押池stake_card
: 质押卡牌unstake_card
: 解除质押calculate_rewards
: 计算奖励claim_rewards
: 领取奖励与前端的交互:
card-staking-pools.tsx
提供质押服务card-collection.tsx
展示质押的卡牌功能:管理游戏资金和奖励。
主要对象:
Treasury
: 资金库对象主要方法:
deposit
: 存入资金