Lynx Class
Charactor
code:mmd
classDiagram
class Ally{
- name: String readOnly
- hp: Int readonly
- speed: Int readonly
- attack
- sprite2d
+ attack()
+ special()
+ equip(Gear gear)
+ take_damage()
}
class Gear{
}
class Party{
+ recruit(Ally ally)
+ dismiss(Ally ally)
}
class StatusEffect{
}
Ally "1" o-- "1" Gear
Ally "1" o-- "0.." StatusEffect
Ally "1" o--"1" CharaData
Enemy "1" o--"1" CharaData
Party "1" o-- "0..*"Ally
Party "1" *-- "1"Leader
class Leader{
- ap
+ spectial()
}
class Enemy{
+ hp
+ attack()
+ special()
}
class CharaData{
+ id readOnly
+ name readOnly
+ sprite readOnly readOnly
+ icon_sprite
+ attack readOnly
+ hp readOnly
+ speed readOnly
}
Battale
BattleManger
Emeyを生成
QuestごとのEnemyのspawn listが事前にあるので、そこから適当に選出
別に完全固定でもよいか
Enemy spriteを配置
Party情報からAllyを戦闘画面に追加
準備フェーズ
Modifierをあみだくじ上にランダム配置
Allyの各キャラクターのLineTrackerを配置
Enemy情報からEnemyLineTrackerを配置
ランダム性を
プレイヤー入力で任意にLegを追加、削除
プレイヤーからの完了入力をうけたら戦闘フェーズへ
戦闘フェーズ
各LineTrackerが動く
LineTrackerがactionPointに到達のたびにアクション
APを消費するとプレイヤーは任意タイミングで特殊アクションを実行可能
一定時間経過 + すべてのtrackerがactionPoint到達したら終了フェーズへ
敵か味方が全滅したら強制的に戦闘自体を終了
終了フェーズ
終了時実行効果があれば順次実行
再度準備フェーズへ
code:mmd
classDiagram
class BattleManager{
- join(BattleCahra, )
- nextPhase()
- phase: stateMachine
- spawnEnemies()
}
class Enemy{
}
class Ally{
}
class Ally{
}
class Leader{
}
class LineTracker{
}
class EnemyLineTracker{
}
class AllyLineTracker{
}
GameScene進行
基本はクエスト受注してバトルを繰り返す
最後までバトルに勝利すればクエストクリアで報酬
途中でバトルにまければクエスト失敗
code:mmd
sequenceDiagram
participant Title
participant Home
participant Dungeon
participant Battle
Title->>Home: start or load
loop Quest
Home->>Dungeon: Quest
loop Battle
Dungeon->>Battle: Fight against Enemy
Battle-->>Dungeon: return Dugeon
end
Dungeon-->>Home: Home
end
code:mmd
classDiagram
class GameManager{
}
GameManager o-- Party
GameManager o-- Inventory
class BattleManager{
}
code:mmd
classDiagram
BattleManager
code:mmd
classDiagram
GhostLeg