回顧在第九天講到的三個部分:
系統的API實作內容在昨天的PlayerState 完成,裡面封裝了所有跟玩家有關的資料,然後內部實作了扣血、補血、蓋牌、中光芒…各種陣法造成玩家狀態改變的實作,另外手牌加入卡片、手牌移出卡片、牌庫加入卡片、更新棄牌、展示手牌…這些跟卡牌操作的部份也實作了。
然後因為這是很內部的底層資料,為了保護它,不讓外部直接呼叫,所以用了一個代理人當中介。我把它叫玩家代理人(PlayerAgent),它很像小秘書,拿著玩家給的小紙條去辦事,紙條上只有執行效果(efctID)和點數(val)。透過這一層介面把內部實作和外面呼叫隔開。同時,也把玩家不能知道的牌庫資訊包在裡面,玩家沒辦法透過小秘書拿到機密資料。所以系統接收玩家API呼叫的介面算是在今天完成了。
這個小秘書目前只能處理單一玩家的操作,一旦效果會影響雙方玩家、全場環境時,會需要更上層的小秘書。目前只有五行輪迴會影響到雙方,所以晚點實作沒關係。
程式碼已上傳,裡面也有簡單demo測試。
目前github只是暫時放code,沒有很認真管理分支,下載後執行如果失敗再跟我縮