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

