前往
大廳
主題

東方戰棋:戰鬥系統

微笑的貘 | 2024-03-14 17:35:32 | 巴幣 4 | 人氣 126

以皇家騎士團2的系統為骨幹
加入其他戰棋類遊戲的特色、我流見解、東方要素的戰棋系統。

基本流程
一開始要先將角色放到場景上白色格子的區域
放好後按開始戰鬥
你會看到右邊有一排指令
還有行動次數 Action Count:2
每個角色每回合有兩個行動點數
執行不同的行動有不同的限制
1.移動:消耗行動次數1。一回合最多可以移動兩次
2.技能:消耗行動次數1。但是一回合只能使用一次
3.支援:與技能類似,大多是強化自己的效果。不消耗行動次數,但一樣一回合只能使用一次
4.道具:使用規則和技能相同,但是需要消耗道具
5.待機:如果該回合沒有其他想做的事,可以選擇待機結束該回合

玩家可以自由決定先移動再使用技能,或是先使用技能再移動,想要全力移動而捨棄使用技能的機會...
諸如此類的戰術都是可行的,有很高的自由度。


移動:
按下移動後會以白色格子表示可移動的範圍
按R可以旋轉視角,有時候轉個視角更能看清楚戰場
點選範圍內的格子就會出現黃色的標記,再按一次黃色標記角色就會移動到指定的目標

技能:
選擇技能後會出現可使用的技能
選擇要使用的技能後會以白色格子顯示技能的射程
選擇範圍內的目標後會顯示黃色的標記,再按一次黃色的標記就能使用技能

在角色消耗完行動次數之後,會出現四個白色的箭頭,用來選擇角色面對的方向
角色面對的方向會影響到技能的命中判定
比方說兩個角色面對面的時候,命中率只有預設值的50%
從側面攻擊時,命中率是預設值的100%
從背後攻擊時,命中率是預設值的150%
程式碼大概長這樣
        public float GetHitRate(Effect effect, BattleCharacterInfo user, BattleCharacterInfo target)
        
{
            float hitRate = user.DEX * (effect.Hit / 100f) / target.AGI;

            //角色互相面對時角度為180,方向相同時角度為0
            //角度越大則命中越低
            //面對面的時候命中率只有一半
            //從背面攻擊時命中率則為1.5倍
            Vector3 v = target.Position - user.Position;
            float angle = Vector2.Angle(new Vector2(v.x, v.z), target.Direction);
            hitRate = (angle * (-1 / 180f) + 1.5f) * hitRate;

            return hitRate;
        }
命中率溢出會變成爆擊率!爆擊傷害有兩倍!
所以攻方要盡量從背後偷襲,守方則要盡量避免背後的弱點被攻擊。

支援:
使用支援的流程和技能差不多。支援通常是對自己使用的強化型技能。
例如讓自己的攻擊力上升一倍一回合之類的。
比較特別的是靈夢的結界類支援。
它是範圍性的。距離靈夢一定範圍內的同伴都吃得到。
有效範圍就是灰色格子的部份。
另外有一件要注意的是,玩家在使用完兩次行動之後角色的回合就會結束。
所以玩家最好在使用技能前先使用支援,避免錯過使用支援的機會。

關於軌跡:
遠距離攻擊的軌跡有分成四種:直線、貫穿、拋物線、無視地形

直線類的會被場景物件擋住
被擋住的時候線會變成紅色的

貫穿類的技能可以無視場景物件,黃色格子中的目標都是可命中的

拋物線的技能比較能越過障礙物,是八意永琳等弓箭手定位的角色的特長

隕石術等範圍技能是無視地形的

像是貫通、無視地形這種比較強大的技能通常都會有冷卻時間的限制

關於目標:
目標分成我方、敵方、不分敵我三種
像是回復類的技能只能對我方角色使用
弱化類的技能只能對敵方使用
攻擊類大多是不分敵我的!
所以使用範圍攻擊要特別注意不要打到隊友了

關於地形:
草叢等地形會增加移動的消耗
所以角色在草叢中可以移動的距離比較短
另外高低差越大,移動消耗也越大

關於角色資訊:
畫面的左下和右下方有角色資訊
把畫面移到狀態圖示上會顯示狀態的詳細資訊

點選角色的名稱還可以打開角色的詳細資料
以後我會委託人畫角色的立繪放在左邊,大概

滑鼠移動到i的標記上方會顯示角色的被動技能說明
所有的我方角色都有被動技能,部份敵人可能也會有被動技能

創作回應

更多創作