作者:小鍇龜
來源:了不起的修仙模擬器吧
首先,遊戲地圖每一個格,都存在靈氣,靈氣會根據地圖上的相關具有ling屬性的物品或植物來生成。靈氣並不會移動,只會隨著各個物品的相關參數對每個格的影響來決定是否生成還是消散,被吸收。下面根據相關屬性,對靈氣的生成消耗機制進行說明。
靈脈
通過對遊戲資料夾setting中的資料分析,我們發現有一種物體叫靈脈:\Settings\ThingDef\Rock\Special。
其屬性LingSource是獨一無二的,而LingSource決定了靈氣是否消散,凡是沒有靈脈的地方,其靈氣會每次刷新消耗1%,直到最小值0,而存在靈脈的地方,其靈氣最小值為197。
聚靈
很多物品都有AddionLing屬性,下面我們取靈木的ling屬性進行分析。
先說AddionRadius和AddionFailRadius。
聚靈範圍由AddionRadius決定,如上圖所示,靈木聚靈範圍為4。
而AddionFailing和AddionFailRadius,則決定了周圍格子的聚靈數值大小。
設靈木所在格子的的座標為(0,0)。
其中綠色的格子,因為其距離處在AddionFailRadius=2以內,其聚靈數值不變仍為AddionLing,而藍色格子,其距離因為大於AddionFailRadius=2,其聚靈數值將變為:value=AddionLing*AddionFailing^(到靈木的距離-AddionFailRadius),周圍白色格子,由於距離超出了AddionRadius,其聚靈值為0。
靈氣生成機制
前面提到了靈氣的正常損耗是根據是否存在lingsource來決定的,而靈氣的生成,則和周邊地塊的靈氣有關,即靈氣越多,產出的靈氣也就越多。
就源碼來看,靈氣的設定是促進周圍地塊靈氣生成,即某一地塊的靈氣含量很高,而周邊的八塊含量比他低,周邊地塊就會產生靈氣,具體產生的量和靈氣含量的差值有關,差值越大,產出越多。周圍物品的聚靈值,稱為鎖靈更為合適,因為計算靈氣差值時,會先刨除聚靈值。
假設我們取(2,2)點,則周圍的八個點(1,1);(1,2);(1,3);(2,1);(2,3);(3,1);(3,2);(3,3)的物品和人員以及地形都會對靈氣生成有影響。
我們只計算(2,2)和(2,3)點,假設(2,2)和(2,3)的靈氣均為50,則其靈氣差=0,不會產生靈氣,但假如(2,3)點存在一個物體,其聚靈範圍為1(他本身),聚靈值為10,,則靈氣差為(2,2)點-(2,3)點:(50-(50-10))=10,則(2,3)點會生成靈氣。
生成靈氣的大小和靈氣差值有關,其恢復數量是一個階梯函數。
過程相對複雜,直接說一下結果。
遊戲裡沒有任何物品可以直接回復地塊的靈氣,靈脈也不行。地塊的靈氣回復只和是否存在與周圍地塊靈氣差決定。
聚靈的作用是扣除部分靈氣,使得計算周圍地塊靈氣差時,差值增加,從而變相增加回靈速度。
建造聚靈陣的原理,是把人物所在的地方和周邊八格的聚靈值堆高,當人物吸收靈氣後本格靈氣降低,周邊八格聚靈高會導致本格回靈也很高,這樣可以維持本格的靈氣值。