-
Notifications
You must be signed in to change notification settings - Fork 1
Stage 0.3 Distance
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.