iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0
自我挑戰組

卡牌遊戲開發日記v2020系列 第 7

Day7 改善傷害的處理過程

//關於程式邏輯優化的思考

傷害處理在進階規則開放後變得更複雜

  1. 後面會出現無視防護罩和蓋牌的風行者職業能力—風行術
  2. 職業提供的物理減傷、五行抗性
  3. 場地效果造成攻擊加倍、傷害轉治癒

如果是在有開發時程壓力的話,可能還是走一般的IF-ELSE分支樹去處理,適度地使用函數呼叫減少程式碼階層。

在場地、職業的規則加入下,傷害計算的程式碼會變成四種版本:

  • 基礎規則
  • 基礎規則+職業
  • 基礎規則+場地
  • 基礎規則+職業+場地

在更後面主題規則進駐之後,冗餘程式碼的膨脹速度會急遽增加,造成專案更難維護。
有時候,暴力硬幹也是一種迫不得已的選擇,但如果你還有時間,拜託請你再多想想。

經過很長時間的糾結,我自己大概理出一個小頭緒,按照這樣的思路下去處理可能會好一些

  1. 有效性,檢查行動是否有效?蓋牌/風行術的pk
  2. 是否被阻擋?防護罩/風行術的pk
  3. 傷害是否修正?五行生剋、減傷、抗性、場地等因素

ps. 防護罩不會阻止場地造成的傷害加倍
ps. 如果反震的反彈傷害是五行攻擊,對自己不適用五行相抵效果,但反彈物理傷害對戰士存在減傷

接下來方向是把場地資料封裝起來,然後遊戲流程順一順,才能實作光芒和混沌。


上一篇
Day6 曾經的規則實作
下一篇
Day8 場面資訊封裝
系列文
卡牌遊戲開發日記v202030

尚未有邦友留言

立即登入留言