├── .gitignore ├── README.md ├── elm-package.json └── src ├── GameModel.elm ├── MainLoop.elm ├── elm-package.json └── img ├── floor ├── floor_01.png ├── floor_02.png ├── floor_03.png ├── floor_04.png ├── floor_05.png ├── floor_06.png ├── floor_07.png ├── floor_08.png └── floor_09.png ├── pc ├── down.png ├── left.png ├── right.png └── up.png ├── walls ├── empty-empty-empty-empty.png ├── empty-empty-empty-flat.png ├── empty-empty-flat-empty.png ├── empty-empty-flat-flat.png ├── empty-flat-empty-empty.png ├── empty-flat-empty-flat.png ├── empty-flat-flat-empty.png ├── empty-flat-flat-flat.png ├── flat-empty-empty-empty.png ├── flat-empty-empty-flat.png ├── flat-empty-flat-empty.png ├── flat-empty-flat-flat.png ├── flat-flat-empty-empty.png ├── flat-flat-empty-flat.png ├── flat-flat-flat-empty.png ├── flat-flat-flat-flat.png └── wall.png └── water └── water_01.png /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | elm-stuff/ 3 | elm.js 4 | *.swp 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Castle Of Elm 2 | Roguelike for 7DRL make in [Elm](http://www.elm-lang.org) from scratch in 3 days. 3 | 4 | Play at [castleofelm.com](http://www.castleofelm.com) -------------------------------------------------------------------------------- /elm-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.0.2", 3 | "summary": "Roguelike for 7DRL make in Elm", 4 | "repository": "https://github.com/doppioslash/castleofelm.git", 5 | "description": "", 6 | "license": "BSD3", 7 | "source-directories": [ 8 | "src/" 9 | ], 10 | "exposed-modules": [], 11 | "elm-version": "0.16.0 <= v < 0.17.0", 12 | "dependencies": { 13 | "elm-lang/core": "3.0.0 <= v < 4.0.0" 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/GameModel.elm: -------------------------------------------------------------------------------- 1 | module GameModel where 2 | 3 | import List exposing (map, concat, indexedMap, head, drop) 4 | import Graphics.Element exposing (..) 5 | import Graphics.Collage exposing (..) 6 | 7 | type Direction 8 | = Left 9 | | Right 10 | | Up 11 | | Down 12 | | None 13 | 14 | type Action 15 | = NoOp 16 | | Move Direction 17 | 18 | 19 | type alias Character = 20 | { x : Float 21 | , y : Float 22 | , dir: Direction 23 | } 24 | 25 | type BackGroundTile 26 | = Floor --random floor tile 27 | | WallOver WallTile 28 | | Wall 29 | | Water 30 | 31 | type ShadowTile 32 | = Main 33 | 34 | type Tile 35 | = Door Size 36 | | Chest Size 37 | | Skull 38 | | Key 39 | | Money 40 | | Box 41 | | Lever 42 | | Flag Condition 43 | | Column 44 | | BackGround BackGroundTile 45 | | Shadow ShadowTile 46 | 47 | type Size 48 | = Small 49 | | Big 50 | 51 | type Condition 52 | = Ruined 53 | | Fine 54 | 55 | type WallJunction 56 | = Flat 57 | | Empty 58 | 59 | type alias WallTile = { r: WallJunction, l: WallJunction, u: WallJunction, d: WallJunction } 60 | 61 | type Progress 62 | = InProgress 63 | | GameOver 64 | | Won 65 | 66 | type alias Grid = List Tile --more than 1 layer 67 | 68 | type alias Model = 69 | { grid: Grid 70 | , gridSide: Float 71 | , pc : Character 72 | } 73 | 74 | ffff : WallTile 75 | ffff = { r = Flat, u = Flat, l = Flat, d = Flat } 76 | efef : WallTile 77 | efef = { r = Empty, u = Flat, l = Empty, d = Flat } 78 | feef : WallTile 79 | feef = { r = Flat, u = Empty, l = Empty, d = Flat } 80 | eeff : WallTile 81 | eeff = { r = Empty, u = Empty, l = Flat, d = Flat } 82 | fefe : WallTile 83 | fefe = { r = Flat, u = Empty, l = Flat, d = Empty } 84 | ffee : WallTile 85 | ffee = { r = Flat, u = Flat, l = Empty, d = Empty } 86 | effe : WallTile 87 | effe = { r = Empty, u = Flat, l = Flat, d = Empty } 88 | feee : WallTile 89 | feee = { r = Flat, u = Empty, l = Empty, d = Empty } 90 | eefe : WallTile 91 | eefe = { r = Empty, u = Empty, l = Flat, d = Empty } 92 | efff : WallTile 93 | efff = { r = Empty, u = Flat, l = Flat, d = Flat } 94 | ffef : WallTile 95 | ffef = { r = Flat, u = Flat, l = Empty, d = Flat } 96 | efee : WallTile 97 | efee = { r = Empty, u = Flat, l = Empty, d = Empty } 98 | fffe : WallTile 99 | fffe = { r = Flat, u = Flat, l = Flat, d = Empty } 100 | 101 | mainGrid : Grid 102 | mainGrid = [BackGround (WallOver ffee), BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver efef), 103 | BackGround (WallOver efef), BackGround (WallOver efef), --first line 104 | BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver efef), 105 | BackGround (WallOver efef), BackGround (WallOver efef), 106 | BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver effe), 107 | 108 | BackGround (WallOver fefe), BackGround Wall, BackGround Wall, -- second line 109 | BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, 110 | BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, BackGround (WallOver fefe), 111 | 112 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 113 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 114 | BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 115 | 116 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, 117 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround (WallOver fffe), BackGround Floor, BackGround Floor, 118 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 119 | 120 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 121 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 122 | BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 123 | 124 | BackGround (WallOver feee), BackGround (WallOver efef), BackGround (WallOver efef), 125 | BackGround (WallOver efee), BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver eeff), BackGround Floor, BackGround Floor, 126 | BackGround Floor, BackGround (WallOver ffef), BackGround (WallOver efef), BackGround (WallOver efef), 127 | BackGround (WallOver efef), BackGround (WallOver eefe), 128 | 129 | BackGround (WallOver fefe), BackGround Wall, BackGround Wall, BackGround (WallOver fefe), BackGround Wall, 130 | BackGround Wall, 131 | BackGround Wall, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Wall, BackGround Wall, 132 | BackGround Wall, BackGround Wall, BackGround (WallOver fefe), 133 | 134 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, 135 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 136 | BackGround Floor, 137 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 138 | 139 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 140 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 141 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 142 | 143 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, BackGround (WallOver feef), BackGround (WallOver efef), 144 | BackGround (WallOver efff), 145 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 146 | BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 147 | 148 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, 149 | BackGround Wall, BackGround Wall, BackGround Wall, BackGround Floor, BackGround Floor, BackGround Floor, 150 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 151 | 152 | BackGround (WallOver fefe), BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 153 | BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, BackGround Floor, 154 | BackGround Floor, BackGround Floor, BackGround (WallOver fefe), 155 | 156 | BackGround (WallOver feef), BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver efef), 157 | BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver efef), 158 | BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver efef), 159 | BackGround (WallOver efef), BackGround (WallOver efef), BackGround (WallOver eeff), 160 | 161 | BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, --last line 162 | BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, BackGround Wall, 163 | BackGround Wall, BackGround Wall, BackGround Wall, 164 | 165 | BackGround Water, BackGround Water, BackGround Water, BackGround Water, BackGround Water, BackGround Water, --last line 166 | BackGround Water, BackGround Water, BackGround Water, BackGround Water, BackGround Water, BackGround Water, 167 | BackGround Water, BackGround Water, BackGround Water] 168 | 169 | gridSize = 15 170 | tileSize = 64 171 | 172 | getListIdx: Int -> Grid -> Maybe Tile 173 | getListIdx idx list = 174 | head (drop idx list) 175 | 176 | {---------------------------------------------------- 177 | Tile Functions 178 | -----------------------------------------------------} 179 | 180 | checkWallImg walltype = 181 | let 182 | getsrc side = 183 | case side of 184 | Flat -> 185 | "flat" 186 | Empty -> 187 | "empty" 188 | r = getsrc walltype.r 189 | l = getsrc walltype.l 190 | u = getsrc walltype.u 191 | d = getsrc walltype.d 192 | in 193 | "img/walls/" ++ r ++ "-" ++ u ++ "-" ++ l ++ "-" ++ d ++ ".png" 194 | 195 | 196 | checkBgImg bgtype = 197 | case bgtype of 198 | Floor -> "img/floor/floor_01.png" 199 | Wall -> "img/walls/wall.png" 200 | Water -> "img/water/water_01.png" 201 | WallOver tile -> checkWallImg tile 202 | 203 | displayTile : Tile -> Element 204 | displayTile tile = 205 | let 206 | src = 207 | case tile of 208 | BackGround tiletype -> 209 | checkBgImg tiletype 210 | _ ->"" 211 | in 212 | image tileSize tileSize src 213 | 214 | displayTileAtCoordinates : (Tile, Int, Int) -> Form 215 | displayTileAtCoordinates (t,i,j) = 216 | let position = 217 | ( (toFloat tileSize) * (toFloat i - (toFloat gridSize - 1)/2) 218 | , (-1) * (toFloat tileSize) * (toFloat j - (toFloat gridSize - 1)/2)) 219 | in 220 | move position <| toForm <| displayTile t 221 | 222 | displayTileAtIndex : Int -> Tile -> Form 223 | displayTileAtIndex index tile = 224 | let 225 | y = index // gridSize 226 | x = index % gridSize 227 | in 228 | displayTileAtCoordinates (tile, x, y) 229 | 230 | gridWidth : Float -- the width of the entire game grid 231 | gridWidth = (toFloat gridSize) * (toFloat tileSize) 232 | 233 | getTileIdxFromPosition : (Float, Float) -> Int 234 | getTileIdxFromPosition (x, y) = 235 | let 236 | x_tile = (round x) + 7 237 | y_tile = 8 - (round y) 238 | in 239 | (y_tile - 1) * gridSize + x_tile 240 | 241 | displayGrid : (Int, Int) -> (Float, Float) -> Grid -> List Form -- display a grid 242 | displayGrid frame pcCoords g = 243 | let 244 | tiles = indexedMap displayTileAtIndex g 245 | in 246 | tiles 247 | 248 | -- collisions : all except floor 249 | -------------------------------------------------------------------------------- /src/MainLoop.elm: -------------------------------------------------------------------------------- 1 | import Window 2 | import Debug exposing (watch, log) 3 | import Graphics.Collage exposing (..) 4 | import Graphics.Element exposing (image, Element) 5 | import Keyboard 6 | import Signal exposing (Signal, map, merge, map2, foldp) 7 | import GameModel exposing (..) 8 | 9 | pcState : Character 10 | pcState = { x = 0, y = 0, dir = Right } -- tiredness strenght blabla 11 | 12 | model : Model 13 | model = 14 | { grid = mainGrid 15 | , gridSide = gridWidth 16 | , pc = pcState } 17 | 18 | -- UPDATE 19 | 20 | update : Direction -> Model -> Model 21 | update dir model = 22 | model 23 | |> movepc dir 24 | -- if into monster slash 25 | 26 | movepc : Direction -> Model -> Model 27 | movepc dir model = 28 | let 29 | checkPc default pc = 30 | let 31 | x = pc.x |> Debug.watch "pc x" 32 | y = pc.y |> Debug.watch "pc y" 33 | idx = getTileIdxFromPosition (pc.x, pc.y) |> Debug.watch "idx" 34 | tile = getListIdx idx model.grid |> Debug.watch "tile" 35 | in 36 | case tile of 37 | Nothing -> pc 38 | Just tilet -> if tilet == BackGround Floor then pc else default 39 | updatePc pc dir = 40 | case dir of 41 | Up -> { pc | y = pc.y + 1, dir = Up } 42 | Down -> { pc | y = pc.y - 1, dir = Down } 43 | Left -> { pc | x = pc.x - 1, dir = Left } 44 | Right -> { pc | x = pc.x + 1, dir = Right } 45 | None -> pc 46 | in 47 | { model | pc = (checkPc model.pc (updatePc model.pc dir)) } 48 | 49 | -- on which tile it ends up 50 | -- which other tiles become visible 51 | -- which mosters are in range to attack 52 | -- or be attacked 53 | -- update monsters paths and spawn them 54 | -- update time ticking 55 | 56 | -- what is the center (PC) 57 | 58 | -- VIEW 59 | matchToSide : (Int, Int) -> Int -> (Int, Int) 60 | matchToSide frame side = 61 | let 62 | ( w, h ) = frame 63 | tW = w // side 64 | tH = h // side 65 | in 66 | ((log "tW" tW) , (log "tH" tH) ) 67 | 68 | view : (Int, Int) -> Model -> Element 69 | view frame model = 70 | let 71 | tileSide = 64 72 | dir = 73 | case model.pc.dir of 74 | Left -> "left" 75 | Right -> "right" 76 | Up -> "up" 77 | Down -> "down" 78 | _ -> "none" 79 | src = "img/pc/" ++ dir ++".png" -- Hardcoded 80 | pcImage = image tileSide tileSide src 81 | (tW, tH) = matchToSide (log "win" frame) tileSide 82 | tWSide = (tW * tileSide) 83 | tHSide = (tH * tileSide) 84 | pcPos = (model.pc.x * tileSide, tileSide * model.pc.y) 85 | in 86 | collage tWSide tHSide ((displayGrid (tW, tH) pcPos mainGrid) ++ [pcImage 87 | |> toForm 88 | |> Debug.trace "pc" 89 | |> move pcPos]) 90 | 91 | -- SIGNALS 92 | 93 | main : Signal Element 94 | main = 95 | map2 view Window.dimensions (foldp update model input) 96 | 97 | -- INPUTS: CONTROLS 98 | inputDir : Signal Direction 99 | inputDir = 100 | let dir { x, y } = 101 | case (x, y) of 102 | ( 0, 1 ) -> Up 103 | ( 0, -1 ) -> Down 104 | ( 1, 0 ) -> Right 105 | ( -1, 0 ) -> Left 106 | _ -> None 107 | in merge (Signal.map dir Keyboard.arrows) (Signal.map dir Keyboard.wasd) 108 | 109 | -- samples arrows when fps tick 110 | input : Signal Direction 111 | input = 112 | map (Debug.watch "direction") inputDir 113 | -------------------------------------------------------------------------------- /src/elm-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "summary": "helpful summary of your project, less than 80 characters", 4 | "repository": "https://github.com/user/project.git", 5 | "license": "BSD3", 6 | "source-directories": [ 7 | "." 8 | ], 9 | "exposed-modules": [], 10 | "dependencies": { 11 | "elm-lang/core": "3.0.0 <= v < 4.0.0" 12 | }, 13 | "elm-version": "0.16.0 <= v < 0.17.0" 14 | } -------------------------------------------------------------------------------- /src/img/floor/floor_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_01.png -------------------------------------------------------------------------------- /src/img/floor/floor_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_02.png -------------------------------------------------------------------------------- /src/img/floor/floor_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_03.png -------------------------------------------------------------------------------- /src/img/floor/floor_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_04.png -------------------------------------------------------------------------------- /src/img/floor/floor_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_05.png -------------------------------------------------------------------------------- /src/img/floor/floor_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_06.png -------------------------------------------------------------------------------- /src/img/floor/floor_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_07.png -------------------------------------------------------------------------------- /src/img/floor/floor_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_08.png -------------------------------------------------------------------------------- /src/img/floor/floor_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/floor/floor_09.png -------------------------------------------------------------------------------- /src/img/pc/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/pc/down.png -------------------------------------------------------------------------------- /src/img/pc/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/pc/left.png -------------------------------------------------------------------------------- /src/img/pc/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/pc/right.png -------------------------------------------------------------------------------- /src/img/pc/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/pc/up.png -------------------------------------------------------------------------------- /src/img/walls/empty-empty-empty-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/empty-empty-empty-empty.png -------------------------------------------------------------------------------- /src/img/walls/empty-empty-empty-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/empty-empty-empty-flat.png -------------------------------------------------------------------------------- /src/img/walls/empty-empty-flat-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/empty-empty-flat-empty.png -------------------------------------------------------------------------------- /src/img/walls/empty-empty-flat-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/empty-empty-flat-flat.png -------------------------------------------------------------------------------- /src/img/walls/empty-flat-empty-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/empty-flat-empty-empty.png -------------------------------------------------------------------------------- /src/img/walls/empty-flat-empty-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/empty-flat-empty-flat.png -------------------------------------------------------------------------------- /src/img/walls/empty-flat-flat-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/empty-flat-flat-empty.png -------------------------------------------------------------------------------- /src/img/walls/empty-flat-flat-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/empty-flat-flat-flat.png -------------------------------------------------------------------------------- /src/img/walls/flat-empty-empty-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/flat-empty-empty-empty.png -------------------------------------------------------------------------------- /src/img/walls/flat-empty-empty-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/flat-empty-empty-flat.png -------------------------------------------------------------------------------- /src/img/walls/flat-empty-flat-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/flat-empty-flat-empty.png -------------------------------------------------------------------------------- /src/img/walls/flat-empty-flat-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/flat-empty-flat-flat.png -------------------------------------------------------------------------------- /src/img/walls/flat-flat-empty-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/flat-flat-empty-empty.png -------------------------------------------------------------------------------- /src/img/walls/flat-flat-empty-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/flat-flat-empty-flat.png -------------------------------------------------------------------------------- /src/img/walls/flat-flat-flat-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/flat-flat-flat-empty.png -------------------------------------------------------------------------------- /src/img/walls/flat-flat-flat-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/flat-flat-flat-flat.png -------------------------------------------------------------------------------- /src/img/walls/wall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/walls/wall.png -------------------------------------------------------------------------------- /src/img/water/water_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doppioslash/CastleOfElm/35250ed62f4533f0c45586ae634da16ae9afd71f/src/img/water/water_01.png --------------------------------------------------------------------------------