# Not A Bird
_A crafting game, where elements are full-fledged cryptocurrencies, and players can win a prize._
#### 30th May, 2024
---
# Gameplay
* **(1)** - Buy elements
* **(2)** - Craft elements
* **(3)** - Sacrifice to win
---
# Contracts Architecture
```plantuml
@startuml
interface PSP22 {}
interface PSP22Metadata {}
interface ElementContract {}
interface GameContract {}
class SomeDEX {}
PSP22 <|.. ElementContract : <<extends>>
PSP22Metadata <|.. ElementContract : <<extends>>
ElementContract <.. GameContract : <<depends on>>
PSP22 <.. SomeDEX : <<depends on>>
class CraftyGame {}
class WaterElement {}
class FireElement {}
class SteamElement {}
GameContract <|-- CraftyGame
ElementContract <|-- WaterElement
ElementContract <|-- FireElement
ElementContract <|-- SteamElement
WaterElement <.. CraftyGame : <<uses>>
FireElement <.. CraftyGame : <<uses>>
SteamElement <.. CraftyGame : <<uses>>
@enduml
```
---
# Packages
```plantuml
@startuml
node "app-game" as AppGame
node "contract-unifiers" as ContractUnifiers
node "contract-water" as ContractWater
node "contract-fire" as ContractFire
node "contract-steam" as ContractSteam
node "deployer" as Deployer
node "on-chain-game" as OnChainGame
node "model" as Model
Model <.. AppGame
ContractUnifiers <.. Deployer
ContractWater <.. Deployer
ContractFire <.. Deployer
ContractSteam <.. Deployer
Model <.. OnChainGame
Deployer <.. OnChainGame
OnChainGame <.. AppGame
@enduml
```
---
# Built-in wallet
* No need to install another extension
* Generated address when first launched
---
# Code generation
* Uses proprietary code generator
* **173** generated **contracts**
* **187** generated **wiki pages**
* Single-point-of-modification
{"contributors":"[{\"id\":\"ad7b8fdd-0f93-45c8-9c6e-94acdeef54a4\",\"add\":1743,\"del\":3}]","title":"Polkadot Global: NA 2024 - Austin - Not A Bird Presentation"}