クラスの設計図 - CASru-GAME/TeamGameDevBootcamp GitHub Wiki

クラスの設計図をここに書いてください~

書き方は Mermaid記法について


CharacterParameterクラス

TODO : Levelクラス作成

classDiagram
    namespace CharacterParameterData{
        class HealthPoint
        class MagicPoint
        class AttackPoint
        class MagicAttackPoint
        class DefensePoint
        class MagicDefensePoint
        class ExperiencePoint
    }

    CharacterParameter -- HealthPoint
    CharacterParameter -- MagicPoint
    CharacterParameter -- AttackPoint
    CharacterParameter -- MagicAttackPoint
    CharacterParameter -- DefensePoint
    CharacterParameter -- MagicDefensePoint
    CharacterParameter -- ExperiencePoint

    CharacterParameter : +string Name
    CharacterParameter : +HealthPoint Hp
    CharacterParameter : +MagicPoint Mp
    CharacterParameter : +AttackPoint Atk
    CharacterParameter : +MagicAttackPoint Mat
    CharacterParameter : +DefensePoint Def
    CharacterParameter : +MagicDefensePoint Mde
    CharacterParameter : +MagicDefensePoint Exp
Loading
classDiagram
    class HealthPoint{
        -int _currentValue
        +int CurrentValue => _currentValue
        -int _maxValue
        +int MaxValue => _maxValue

        -HealthPoint(int currentValue, int maxValue)
        +HealthPoint(int maxValue) : HealthPoint(maxValue, maxValue)
        +AddCurrentValue(HealthPoint value)
        +AddMaxValue(HealthPoint value)
        +SubtractCurrentValue(HealthPoint value)
        +Dump(string message)
    }

    class MagicPoint{
        -int _currentValue
        +int CurrentValue => _currentValue
        -int _maxValue
        +int MaxValue => _maxValue

        -MagicPoint(int currentValue, int maxValue)
        +MagicPoint(int maxValue) : MagicPoint(maxValue, maxValue)
        +AddCurrentValue(MagicPoint value)
        +AddMaxValue(MagicPoint value)
        +SubtractCurrentValue(MagicPoint value)
        +Dump(string message)
    }
Loading
classDiagram
    class AttackPoint{
        -int _currentValue
        +int CurrentValue => _currentValue

        +AttackPoint(int value)
        +AddCurrentValue(AttackPoint value)
        +SubtractCurrentValue(AttackPoint value)
        +Dump(string message)
    }

    class MagicAttackPoint{
        -int _currentValue
        +int CurrentValue => _currentValue

        +MagicAttackPoint(int value)
        +AddCurrentValue(MagicAttackPoint value)
        +SubtractCurrentValue(MagicAttackPoint value)
        +Dump(string message)
    }
Loading
classDiagram
    class DefensePoint{
        -int _currentValue
        +int CurrentValue => _currentValue

        +DefensePoint(int value)
        +AddCurrentValue(DefensePoint value)
        +SubtractCurrentValue(DefensePoint value)
        +Dump(string message)
    }

    class MagicDefensePoint{
        -int _currentValue
        +int CurrentValue => _currentValue

        +MagicDefensePoint(int value)
        +AddCurrentValue(MagicDefensePoint value)
        +SubtractCurrentValue(MagicDefensePoint value)
        +Dump(string message)
    }
Loading
classDiagram
    class ExperiencePoint{
        -int _currentValue
        +int CurrentValue => _currentValue
        -int _maxValue
        +int MaxValue => _maxValue

        +ExperiencePoint(int currentValue, int maxValue)
        +ExperiencePoint(int maxValue) : ExperiencePoint(maxValue, maxValue)
        +AddCurrentValue(ExperiencePoint value)
        +AddMaxValue(ExperiencePoint value)
        +Dump(string message)
    }
Loading

敵の生成

classDiagram

    class BattleLifetimeScope{
        <<DIコンテナ>>
    }
    class BattleEnemyDatastore{
        -Dictionary~string, Enemy~ _enemyIds
        +IEnumerable~string~ Enemies => _enemies.Values.ToArray
        +void AddEnemy(string, CharacterParameter)
        +void RemoveEnemy(string)
        +Enemy GetEnemyBy(string)
    }
    class IBattleEnemyDatastore{
        <<Interface>>
        IEnumerable~Enemy~ Enemies
        void AddEnemy(string, CharacterParameter)
        void RemoveEnemy(string)
        Enemy GetEnemyBy(string)
    }
    class IBattleEnemyGeneratePresenter{
        <<Interface>>
        void GenerateEnemy()
    }
    class IBattleEnemyGenerateUseCase{
        <<Interface>>
        void GenerateEnemy()
    }
    class BattleEnemyGeneratePresenter{
        -IBattleEnemyDatastore _BattleEnemyDatastore

        +void GenerateEnemy()
    }
    class BattleEnemyGenerateUseCase{
        -IBattleEnemyDatastore _BattleEnemyDatastore

        +void GenerateEnemy()
    }

    class BattleDebugLifetimeScope{
        <<DIコンテナ>>
    }
    class IBattleDebugEnemyPresenter{
        <<Interface>>

        IObservable~Unit~ OnGenerateEnemy
    }
    class BattleDebugEnemyGeneratePresenter{
        -Button _generateEnemyButton
        -Subject~Unit~ _onGenerateEnemy
        +IObservable~Unit~ OnGenerateEnemy => _onGenerateEnemy

        +void Initialize()
    }
    class BattleDebugEnemyUseCase{
        -IBattleDebugEnemyPresenter _battleDebugEnemyPresenter
        -IBattleEnemyGenerateUseCase _battleEnemyGenerateUseCase

        +void Initialize()
    }

    BattleLifetimeScope<--IBattleEnemyDatastore : Register
    BattleLifetimeScope<--BattleEnemyGenerateUseCase : RegisterEntryPoint
    IBattleEnemyDatastore<|--BattleEnemyDatastore : 継承
    BattleEnemyGeneratePresenter<--BattleLifetimeScope : Inject
    BattleEnemyGenerateUseCase<--BattleLifetimeScope : Inject
    IBattleEnemyGeneratePresenter<|--BattleEnemyGeneratePresenter : 継承
    IBattleEnemyGenerateUseCase<|--BattleEnemyGenerateUseCase : 継承

    BattleDebugEnemyUseCase<--BattleDebugLifetimeScope : Inject
    BattleDebugEnemyUseCase<--BattleLifetimeScope : Inject
    IBattleDebugEnemyPresenter<|--BattleDebugEnemyGeneratePresenter : 継承
    BattleDebugLifetimeScope<--BattleDebugEnemyUseCase : RegisterEntryPoint
    BattleDebugLifetimeScope<--IBattleDebugEnemyPresenter : RegisterComponent

Loading
⚠️ **GitHub.com Fallback** ⚠️