Aller au contenu

Game Full

15 classes 5 interfaces avec interface implementation, héritage, association

classDiagram
    class Being {
        -int maxHealth
        #int health
        #double resistance
        +receiveDamage(int amount)
    }
    class Pack {
        -int maxSize
        +isInPack(being {'$ref': 'AAAAAAFv16T+VPap1V8='}) boolean
        +Pack(chief {'$ref': 'AAAAAAFv16T+VPap1V8='})
    }
    class Attacker {
        +attack(target {'$ref': 'AAAAAAFpV1lqKLEfpf8='})
        +attack(target {'$ref': 'AAAAAAFv16oUegXMmxc='})
    }
    class Eagle {
        +int vision
    }
    class Wolf {
    }
    class Movable {
        +goUp(int speed)
        +goDown(int speed)
        +goRight(int speed)
        +goLeft(int speed)
    }
    class Map {
        +String WIDTH
        +String HEIGHT
        +add(spacial {'$ref': 'AAAAAAFpV1hZ/7DbJUc='})
    }
    class Warrior {
    }
    class Flying {
        +takeOff(boolean)
        +land(boolean)
    }
    class SpacialElement {
        -String name
        #int x
        #int y
        +SpacialElement(name, x, y)
    }
    class Archer {
        -int dexterity
        -int range
    }
    class Animal {
    }
    class Dragon {
        -int power
        -int range
    }
    class MovableBeing {
        #int maxSpeed
        #int force
        #boolean inAir
        +communicate()
    }
    class DistantAttacker {
        +distantAttack(target {'$ref': 'AAAAAAFpV1lqKLEfpf8='})
        +Operation1()
    }
    class Adopt {
        +adopt(candidate; MovableBeing) boolean
        +revoke(candidate {'$ref': 'AAAAAAFv16T+VPap1V8='}) boolean
    }
    class Humanoid {
    }
    class Tree {
    }
    class Rock {
    }
    class Exporter {
        +serialize(map {'$ref': 'AAAAAAFsGMEN3SljslY='}, String path)
        +deserialize(String path, : {'$ref': 'AAAAAAFsGMEN3SljslY='})
        -filter(m {'$ref': 'AAAAAAFsGMEN3SljslY='})
    }
    Tree --|> Being
    Rock --|> SpacialElement
    Eagle --|> Animal
    Wolf --|> Animal
    Being --|> SpacialElement
    Animal --|> MovableBeing
    Humanoid --|> MovableBeing
    Eagle ..|> Flying
    MovableBeing ..|> Movable
    Dragon ..|> Flying
    Dragon --|> Animal
    MovableBeing --|> Being
    Pack "0..1" --> "1..*" MovableBeing : <contiens
    Pack ..|> Adopt
    Pack ..|> Movable
    Pack --|> SpacialElement
    Pack "0..1" --> "1" MovableBeing : dirige>
    Archer --|> Humanoid
    Warrior --|> Humanoid
    Archer ..|> DistantAttacker
    Dragon ..|> DistantAttacker
    Pack ..|> Attacker
    MovableBeing ..|> Attacker
    Map --> SpacialElement