什麼是轉彎?
ToME 4 在其術語中同時使用了轉彎和動作速度,這讓我感到困惑。
一回合是固定的遊戲時間(例如 2.6 秒),是一種抽象的“只要需要一個人行動”的交易,還是完全不同的東西?這非常重要,因為它嚴重影響了我應該如何與定時效果互動。
例如,如果我得到一個持續 10 回合的 buff,提高我的動作速度會更快地消除效果(因為我更快地執行了我的 10 個動作),或者讓我更多地使用它(因為我可以在效果固定的情況下採取更多動作期間)?
首先,請參閱角色表的 wiki 頁面,在速度部分:速度決定了您在一個回合中可以執行多少“動作”。在 100% 的全域速度下,你可以做一個動作,在 200% 的全域速度下,你可以做兩個動作,以此類推。全域速度由附加的移動/法術/攻擊/心理速度修改。所以如果你的角色的全域速度為 200%,移動速度為 0%,攻擊速度為 -100%,那麼每次移動需要半轉,而每次攻擊需要整轉。
二、速度見頁面. 為了確定演員何時開始採取行動,遊戲每回合給予他們 1000 能量點 (EPT)。普通攻擊每次命中消耗 1000 能量點 (EPH)。因此,具有 100% 全域速度且沒有攻擊速度或武器速度修飾符的演員將在一次攻擊中花費所有精力。提高全域速度會增加您每回合獲得的能量,例如,140% 的全域速度意味著您獲得 1400 EPT。增加武器速度或攻擊速度會降低 EPH:EPH = 1000 / ((1 + 攻擊速度) * 武器速度)。例如,攻擊速度為 -30% 的角色所持的 110% 劍的 EPH = 1000 / (0.7 * 1.1) = 1000 / 0.77 = 1299。如果該角色的全域速度為 140%,他們將獲得 1400 EPT。在一次攻擊上花費 1299 後,他們將剩下 101 能量。下一回合他們將獲得額外的1400能量,攻擊,
因此,如果你有一個持續 X 回合的 buff,那麼充分提高你的速度會讓你在 buff 結束之前獲得更多動作。
您可以通過以弓箭手身份開始遊戲來自行測試。走向敵人並使用你的狂野灌注天賦。你的角色將獲得一個帶有 5 的“痛苦壓制”狀態效果,因為狂野天賦是一個持續本回合的瞬間,還有 4 個。然後對敵人使用弓箭手的脫離接觸天賦。脫離是一個全回合動作,所以你會看到疼痛抑制還剩 4 個回合。脫離讓你的角色在 3 回合內進入狂野速度狀態。狂野的速度使您的移動速度加快約 150%。現在計算在疼痛抑制結束之前您可以採取多少步驟。我剛剛檢查並能夠採取9個步驟。相比之下,如果我在沒有脫離的情況下觸發了狂野灌注天賦,那麼我只能在疼痛壓制結束前走5步。
要查看原始碼中的轉數/能量,請在目前版本 (1.5.10) 中查看GameEnergyBased.lua。第 95 行定義了 tickLevel,它循環遍歷關卡上的實體數組,給每個實體“energy_per_tick”(又名 EPT),然後在第 129 行呼叫實體的 act 函式(即請求一個動作)。然後是第 65 行NPC.lua解釋說NPC act 函式被tickLevel 呼叫,只要NPC 有足夠的能量,act 函式就會在while 循環中呼叫doAI(即選擇特定動作)。
如果 config.settings.log_detail_ai > 2,則 NPC act 函式會列印包含目前回合和所選動作前後能量的日誌。
為了確保遊戲實際上意味著“轉身”而不是增益效果的動作,我查看了狂野灌注。它有一個 inscription_data 是一個通用的“解析器”函式,它返回一個 dur
$$ ation $$介於 2 和 4 之間。當創建一個玩家矮人時,這是給他們這種持續時間為 4 的灌注的線條。當你使用灌注或符文時,你的角色會學習一種天賦。使用該天賦會在角色行動之前、在 actBase 函式中、在再生資源(如生命值和檢查窒息情況)之後創建一個計時的臨時效果(在 timedEffects 中)。 不幸的是,程式碼變得棘手。actBase 函式在 tickLevel 中的act之前呼叫(適用於“級別”中的實體)。實際上有兩個能量變數,一個用於actBase,一個用於act。所以tick呼叫tickLevel,它呼叫actBase,然後,如果實體有足夠的能量,它呼叫act。如果該實體是玩家角色,則遊戲會暫停輸入,我不確定程式碼流如何從那裡開始。