Skip to content
neuront edited this page Jan 28, 2012 · 1 revision

Code Review: https://github.com/neuront/sgs/commit/d19cceeb9adc2b8d1f328aff6cdf76c795ae3cc1

距离

在这次更新中引入玩家之间的距离, 以及装备/马.

计算

玩家之间的距离计算有逆时针 (counter-clockwise, 简写为 ccw) 距离以及顺时针距离 (clockwise, 简写为 cw), 两者取小为玩家到另一玩家的距离.

计算函数接口为 ext.src.players_control.PlayersControl.distance_between.

装备

马的卡牌名称中, 第一个字符表示该马的距离修正属性 ('-' 表示 -1 马, '+' 表示 +1 马).

-1 马被称为主动 (positive) 马, +1 马被称为被动 (passive) 马.

每个装备牌模块中, 需包含函数 imported, 接受装备字典作为参数, 函数应在字典中增加该模块维护的装备对应的项目.

锦囊 - 顺手牵羊

顺手牵羊 (steal) 的实现与效果同过河拆桥类似, 只是增加目标距离检查.

丢失装备

当顺手牵羊的目标区域为装备区时, 玩家丢失的装备牌将不是弃掉. 因此, 去掉装备的实现修正为仅丢失装备, 而在 ext.src.player.Player.unequip 函数中将丢失的装备牌返回, 由调用者决定如何处置该卡牌 (弃掉, 或转移给另一玩家).

事件

新增卡牌转移事件 (core.event.CardsTransferBase), 分为公开卡牌转移 (core.event.PublicCardsTransfer) 与隐秘卡牌转移 (PrivateCardsTransfer). 前者适用于被转移的卡牌信息公开的情形 (如装备牌被顺手牵羊), 而后者适用于卡牌信息非公开的情形 (如手牌被顺手牵羊).

其它修正

PlayersControl 中添加玩家时, 由 PlayersControl 分配玩家 id.

Clone this wiki locally