因為是連線遊戲,資料要透過封包傳遞,這邊需要定義玩家和伺服器之間溝通的資料格式
玩家行動的時候需要送出手牌組合和使用陣法格式:組合ID, 陣法ID
手牌組合能夠編碼為0-31數字,代表玩家要出的手牌
使用陣法:目前基礎陣法總共25個,所以用 0-24 表示即可
實際送出卡片代號也可以,只是玩家出牌不會固定張數,送出的資料長度也會受到影響不固定,而且這些資料伺服器已經有了,也不需要再傳,所以思考之後的結果打算用這種方式表示。
然後伺服器根據選擇的手牌組合選取了對應的卡片 seleC,再搭配陣法編號 zenID ,解析陣法後。最後送到處理陣法效果的地方,在處理完蓋牌效果、防護罩、五行生剋…等這些影響之後,把結果送給代理人執行,然後發送更新後的場面狀態給全場玩家
解析前:卡片列表, 陣法ID
解析後,處理場面狀態影響之前:玩家ID, 陣法ID, 對象ID, 陣法數值
處理場面狀態影響之後:對象ID, 效果ID [,數值]
這邊我目前的實作是把一個一個效果拆分出來去執行它
效果ID 在實作影響單體玩家狀態算是蠻方便的,而且這些效果在後面有機會組合成複合效果,就不用每個相同效果都要實作一次底下的基礎效果。
遇到實作上的問題:
影響多個玩家的效果就必須取用兩位玩家的資料,職業規則也有出現對全場自己以外玩家造成影響的效果,所以還是需要盡早支援。
效果部分目前有的:
然後自己的經驗是 ID 編排時常會因為開發需要而重新調整,所以是很正常的,不用太介意它為什麼後面跟一開始不一樣。
以上,努力拚實作
謝謝大家的收看,祝大家有個美好的夜晚:)