|
@ -740,7 +740,7 @@ basic_robot.commands.craft = function(item, mode, idx, name)
|
||||||
local cache = basic_robot.commands.craftcache[name];
|
local cache = basic_robot.commands.craftcache[name];
|
||||||
if not cache then basic_robot.commands.craftcache[name] = {}; cache = basic_robot.commands.craftcache[name] end
|
if not cache then basic_robot.commands.craftcache[name] = {}; cache = basic_robot.commands.craftcache[name] end
|
||||||
local itemlist = {}; local output = "";
|
local itemlist = {}; local output = "";
|
||||||
if cache.item == item then-- read cache
|
if cache.item == item and cache.idx == idx then -- read cache
|
||||||
itemlist = cache.itemlist;
|
itemlist = cache.itemlist;
|
||||||
output = cache.output;
|
output = cache.output;
|
||||||
else
|
else
|
||||||
|
@ -759,6 +759,7 @@ basic_robot.commands.craft = function(item, mode, idx, name)
|
||||||
itemlist[item]=(itemlist[item] or 0)+1;
|
itemlist[item]=(itemlist[item] or 0)+1;
|
||||||
end
|
end
|
||||||
cache.item = item;
|
cache.item = item;
|
||||||
|
cache.idx = idx;
|
||||||
cache.itemlist = itemlist;
|
cache.itemlist = itemlist;
|
||||||
cache.output = output;
|
cache.output = output;
|
||||||
|
|
||||||
|
@ -866,7 +867,7 @@ basic_robot.technic = { -- data cache
|
||||||
|
|
||||||
compressor_recipes = { --[in] ={fuel cost, out, quantity of material required for processing}
|
compressor_recipes = { --[in] ={fuel cost, out, quantity of material required for processing}
|
||||||
["default:snow"] = {1,"default:ice"},
|
["default:snow"] = {1,"default:ice"},
|
||||||
["default:coalblock"] = {16,"default:diamond"},
|
["default:coalblock"] = {41,"default:diamond"}, -- to smelt diamond dust to diamond need 25 coal + 16 for grinder
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
init.lua
|
@ -18,7 +18,7 @@ basic_robot.dig_require_energy = true; -- does robot require energy to dig?
|
||||||
|
|
||||||
basic_robot.http_api = minetest.request_http_api();
|
basic_robot.http_api = minetest.request_http_api();
|
||||||
|
|
||||||
basic_robot.version = "2018/06/29a";
|
basic_robot.version = "2018/06/30a";
|
||||||
|
|
||||||
basic_robot.data = {}; -- stores all robot related data
|
basic_robot.data = {}; -- stores all robot related data
|
||||||
--[[
|
--[[
|
||||||
|
|
|
@ -2,18 +2,25 @@
|
||||||
--https://en.wikipedia.org/wiki/Black_Box_(game)
|
--https://en.wikipedia.org/wiki/Black_Box_(game)
|
||||||
|
|
||||||
if not data then
|
if not data then
|
||||||
m=8;n=8;turn = 0;
|
m=16;n=16;
|
||||||
attempts = 1;
|
atoms = 32
|
||||||
|
attempts = 1;turn = 0;
|
||||||
|
spawnpos = self.spawnpos(); spawnpos.x = spawnpos.x-m/2; spawnpos.y = spawnpos.y+2; spawnpos.z = spawnpos.z-n/2
|
||||||
|
|
||||||
|
local players = find_player(5,spawnpos);
|
||||||
|
if not player then self.remove() else pname = players[1] end
|
||||||
|
|
||||||
self.spam(1);t0 = _G.minetest.get_gametime();
|
self.spam(1);t0 = _G.minetest.get_gametime();
|
||||||
spawnpos = self.spawnpos()
|
|
||||||
data = {};
|
data = {};
|
||||||
for i = 1,m do data[i]={}; for j = 1,n do data[i][j]=0 end end
|
for i = 1,m do data[i]={}; for j = 1,n do data[i][j]=0 end end
|
||||||
|
|
||||||
for i=1,4 do -- put in 4 atoms randomly
|
for i=1,atoms do -- put in atoms randomly
|
||||||
data[math.random(m)][math.random(n)] = 1
|
data[math.random(m)][math.random(n)] = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
atoms = 0
|
||||||
|
for i = 1,m do for j = 1,n do if data[i][j]==1 then atoms = atoms + 1 end end end
|
||||||
|
|
||||||
render_board = function(mode) -- mode 0 : render without solution, 1: render solution
|
render_board = function(mode) -- mode 0 : render without solution, 1: render solution
|
||||||
for i = 1,m do for j = 1,n do -- render game
|
for i = 1,m do for j = 1,n do -- render game
|
||||||
if mode == 0 or data[i][j] == 0 then
|
if mode == 0 or data[i][j] == 0 then
|
||||||
|
@ -95,7 +102,7 @@ if not data then
|
||||||
if result<=1 then
|
if result<=1 then
|
||||||
keyboard.set({x=spawnpos.x+x,y=spawnpos.y,z=spawnpos.z+z},6); -- immediate bounce off
|
keyboard.set({x=spawnpos.x+x,y=spawnpos.y,z=spawnpos.z+z},6); -- immediate bounce off
|
||||||
else
|
else
|
||||||
local nodename = "default:obsidian_letter_"..string.char(97+count) .. "u";
|
local nodename = "basic_robot:button_"..(65+count);
|
||||||
_G.minetest.set_node(
|
_G.minetest.set_node(
|
||||||
{x=spawnpos.x+out[1],y=spawnpos.y+1,z=spawnpos.z+out[2]},
|
{x=spawnpos.x+out[1],y=spawnpos.y+1,z=spawnpos.z+out[2]},
|
||||||
{name = nodename, param2 = 1})
|
{name = nodename, param2 = 1})
|
||||||
|
@ -167,7 +174,9 @@ if not data then
|
||||||
|
|
||||||
--render board
|
--render board
|
||||||
render_board(0)
|
render_board(0)
|
||||||
keyboard.set({x=spawnpos.x,y=spawnpos.y,z=spawnpos.z-1},5)
|
keyboard.set({x=spawnpos.x,y=spawnpos.y,z=spawnpos.z-1},4)
|
||||||
|
keyboard.set({x=spawnpos.x+1,y=spawnpos.y,z=spawnpos.z-1},5)
|
||||||
|
self.label("BLACKBOX with " .. atoms .. " atoms")
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -175,13 +184,17 @@ event = keyboard.get();
|
||||||
if event then
|
if event then
|
||||||
local x = event.x - spawnpos.x;local y = event.y - spawnpos.y;local z = event.z - spawnpos.z;
|
local x = event.x - spawnpos.x;local y = event.y - spawnpos.y;local z = event.z - spawnpos.z;
|
||||||
if x<1 or x>m or z<1 or z>n then
|
if x<1 or x>m or z<1 or z>n then
|
||||||
if event.type == 5 then
|
if event.type == 4 then
|
||||||
if check_solution() then
|
if check_solution() then
|
||||||
say("#BLACKBOX : CONGRATULATIONS! " .. event.puncher .. " found all atoms after " .. attempts .. " tries."); self.remove()
|
say("#BLACKBOX : CONGRATULATIONS! " .. event.puncher .. " found all atoms after " .. attempts .. " tries."); self.remove()
|
||||||
else
|
else
|
||||||
say("#BLACKBOX : " .. event.puncher .. " failed to detect atoms after " .. attempts .. " attempts.")
|
say("#BLACKBOX : " .. event.puncher .. " failed to detect atoms after " .. attempts .. " attempts.")
|
||||||
attempts = attempts+1
|
attempts = attempts+1
|
||||||
end
|
end
|
||||||
|
elseif event.type == 5 then
|
||||||
|
say("#BLACKBOX : DISPLAYING SOLUTION",pname)
|
||||||
|
render_board(1)
|
||||||
|
self.remove()
|
||||||
end
|
end
|
||||||
else -- interior punch
|
else -- interior punch
|
||||||
nodetype = 2;
|
nodetype = 2;
|
||||||
|
|
|
@ -58,7 +58,7 @@ if not init then
|
||||||
local players = find_player(4);
|
local players = find_player(4);
|
||||||
if not players then say("#fallout hacking game: no players") self.remove() end
|
if not players then say("#fallout hacking game: no players") self.remove() end
|
||||||
pname = players[1];
|
pname = players[1];
|
||||||
say("#fallout hacking game, player " .. pname)
|
minetest.chat_send_player(pname,"#fallout hacking game, player " .. pname)
|
||||||
|
|
||||||
--if rom.data[pname] then say("password is locked out!") self.remove() end
|
--if rom.data[pname] then say("password is locked out!") self.remove() end
|
||||||
|
|
||||||
|
@ -77,8 +77,8 @@ sender,fields = self.read_form()
|
||||||
if selected>0 then
|
if selected>0 then
|
||||||
guesses = guesses + 1
|
guesses = guesses + 1
|
||||||
if selected == correct then
|
if selected == correct then
|
||||||
say("password " .. passlist[correct] .. " is correct! " .. guesses .. " guesses.")
|
minetest.chat_send_player(pname,"password " .. passlist[correct] .. " is correct! " .. guesses .. " guesses.")
|
||||||
self.show_form(pname, "size[1,1] label[0,0.5;" .. minetest.colorize("lawngreen", "ACCESS GRANTED") .. "]")
|
self.show_form(pname, "size[2,1] label[0,0.5;" .. minetest.colorize("lawngreen", "ACCESS GRANTED") .. "]")
|
||||||
self.remove()
|
self.remove()
|
||||||
--correct: do something with player
|
--correct: do something with player
|
||||||
else
|
else
|
||||||
|
@ -89,7 +89,7 @@ sender,fields = self.read_form()
|
||||||
if guesses>=max_guesses then
|
if guesses>=max_guesses then
|
||||||
msg = minetest.colorize("red","A C C E S S D E N I E D!")
|
msg = minetest.colorize("red","A C C E S S D E N I E D!")
|
||||||
self.show_form(pname, get_form())
|
self.show_form(pname, get_form())
|
||||||
say("too many false guesses. password locked out!") rom.data[pname] = 1; self.remove()
|
minetest.chat_send_player(pname,"too many false guesses. password locked out!") rom.data[pname] = 1; self.remove()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if fields.quit then self.remove() end
|
if fields.quit then self.remove() end
|
||||||
|
|
|
@ -23,7 +23,7 @@ if not grid then
|
||||||
end
|
end
|
||||||
|
|
||||||
if not rom.score then _,rom.score = book.read(1) end
|
if not rom.score then _,rom.score = book.read(1) end
|
||||||
--rom.score = "0 - 999 1 - 999 2 - 999 3 - 999 4 - 999 5 - 999" -- default
|
if not rom.score then rom.score = "0 - 999 1 - 999 2 - 999 3 - 999 4 - 999 5 - 999" end
|
||||||
highscore = get_score_from_string(rom.score)
|
highscore = get_score_from_string(rom.score)
|
||||||
--self.label(string.gsub(_G.dump(highscore), "\n",""))
|
--self.label(string.gsub(_G.dump(highscore), "\n",""))
|
||||||
|
|
||||||
|
@ -179,6 +179,11 @@ if not grid then
|
||||||
keyboard.set({x=spawnpos.x+1,y=spawnpos.y,z=spawnpos.z},4) -- game check button
|
keyboard.set({x=spawnpos.x+1,y=spawnpos.y,z=spawnpos.z},4) -- game check button
|
||||||
keyboard.set({x=spawnpos.x+2,y=spawnpos.y,z=spawnpos.z},5) -- game check button
|
keyboard.set({x=spawnpos.x+2,y=spawnpos.y,z=spawnpos.z},5) -- game check button
|
||||||
|
|
||||||
|
local players = find_player(4,spawnpos)
|
||||||
|
if not players then error("minesweeper: no players near") end
|
||||||
|
local pname = players[1];
|
||||||
|
|
||||||
|
|
||||||
--self.label()
|
--self.label()
|
||||||
|
|
||||||
--self.label(string.gsub(_G.dump(read_field()),"\n","") )
|
--self.label(string.gsub(_G.dump(read_field()),"\n","") )
|
||||||
|
@ -191,7 +196,7 @@ if not grid then
|
||||||
elseif difficulty == 2 then limit = 80 reward = 7
|
elseif difficulty == 2 then limit = 80 reward = 7
|
||||||
elseif difficulty <= 1 then limit = 70 reward = 6
|
elseif difficulty <= 1 then limit = 70 reward = 6
|
||||||
end
|
end
|
||||||
say("nonogram difficulty " .. difficulty .. ". you will get " .. reward .. " gold if you solve it in faster than " .. limit .."s" ..
|
minetest.chat_send_player(pname, "nonogram difficulty " .. difficulty .. ". you will get " .. reward .. " gold if you solve it in faster than " .. limit .."s" ..
|
||||||
". Current record " .. highscore[difficulty][2] .. " by " .. highscore[difficulty][1])
|
". Current record " .. highscore[difficulty][2] .. " by " .. highscore[difficulty][1])
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -216,7 +221,7 @@ if event then
|
||||||
|
|
||||||
-- highscore
|
-- highscore
|
||||||
if t<highscore[difficulty][2] then
|
if t<highscore[difficulty][2] then
|
||||||
say("new record! old record " .. highscore[difficulty][2] .. "s by " .. highscore[difficulty][1])
|
say("nonogram: new record " .. t .. " s ! old record " .. highscore[difficulty][2] .. "s by " .. highscore[difficulty][1])
|
||||||
highscore[difficulty] = {event.puncher, t}
|
highscore[difficulty] = {event.puncher, t}
|
||||||
rom.score = get_score_string(highscore)
|
rom.score = get_score_string(highscore)
|
||||||
book.write(1,"scores", rom.score)
|
book.write(1,"scores", rom.score)
|
||||||
|
@ -229,13 +234,13 @@ if event then
|
||||||
inv:add_item("main",_G.ItemStack("default:gold_ingot " .. reward))
|
inv:add_item("main",_G.ItemStack("default:gold_ingot " .. reward))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
say(msg)
|
minetest.chat_send_player(event.puncher,msg)
|
||||||
|
|
||||||
self.remove()
|
self.remove()
|
||||||
|
|
||||||
else self.label("FAIL") end
|
else self.label("FAIL") end
|
||||||
elseif event.x == spawnpos.x+2 then -- solve
|
elseif event.x == spawnpos.x+2 then -- solve
|
||||||
say("you gave up on game, displaying solution")
|
minetest.chat_send_player(event.puncher,"you gave up on game, displaying solution")
|
||||||
for i=1,n do
|
for i=1,n do
|
||||||
for j =1,n do
|
for j =1,n do
|
||||||
local typ;
|
local typ;
|
||||||
|
|
|
@ -5,6 +5,12 @@ if not init then
|
||||||
board = {};
|
board = {};
|
||||||
size = 3;
|
size = 3;
|
||||||
|
|
||||||
|
local players = find_player(4);
|
||||||
|
if not players then say("#sliding puzzle game: no players") self.remove() end
|
||||||
|
name = players[1];
|
||||||
|
|
||||||
|
minetest.chat_send_player(name, "#SLIDING GAME: try to sort numbers in increasing order, starting from top left")
|
||||||
|
|
||||||
create_board = function(n)
|
create_board = function(n)
|
||||||
local k = 0;
|
local k = 0;
|
||||||
local ret = scramble(n*n, os.time())
|
local ret = scramble(n*n, os.time())
|
||||||
|
@ -17,7 +23,7 @@ if not init then
|
||||||
end
|
end
|
||||||
board[math.random(n)][math.random(n)] = 0
|
board[math.random(n)][math.random(n)] = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
render_board = function()
|
render_board = function()
|
||||||
local n = #board;
|
local n = #board;
|
||||||
for i = 1,n do
|
for i = 1,n do
|
||||||
|
@ -27,6 +33,18 @@ if not init then
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
check_score = function() -- check how many places are increasing in order, starting top left
|
||||||
|
local n = #board;
|
||||||
|
local cmax = 0;
|
||||||
|
local score = 0;
|
||||||
|
for j = n,1,-1 do
|
||||||
|
for i = 1,n do
|
||||||
|
local b = board[i][j];
|
||||||
|
if b==0 or b<cmax then return score else score = score +1 cmax = b end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
find_hole = function(i,j)
|
find_hole = function(i,j)
|
||||||
if board[i][j] == 0 then return i,j end
|
if board[i][j] == 0 then return i,j end
|
||||||
|
@ -69,6 +87,15 @@ if event and event.y == spos.y then
|
||||||
board[i][j] = tmp;
|
board[i][j] = tmp;
|
||||||
keyboard.set({x=spos.x+i, y = spos.y, z=spos.z+j}, tmp)
|
keyboard.set({x=spos.x+i, y = spos.y, z=spos.z+j}, tmp)
|
||||||
end
|
end
|
||||||
|
local score = check_score()
|
||||||
|
self.label("score : " .. score)
|
||||||
|
if score >= size*size-2 then
|
||||||
|
minetest.chat_send_player(name, "CONGRATULATIONS! YOU SOLVED PUZZLE. REWARD WAS DROPPED ON TOP OF ROBOT.")
|
||||||
|
pos = self.pos(); pos.y = pos.y+2;
|
||||||
|
reward = "default:gold_ingot"
|
||||||
|
minetest.add_item(pos, _G.ItemStack(reward))
|
||||||
|
self.remove()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -23,10 +23,10 @@
|
||||||
imax = 0; jmax = 0
|
imax = 0; jmax = 0
|
||||||
|
|
||||||
sokoban.load=0;sokoban.playername =""; sokoban.pos = {};
|
sokoban.load=0;sokoban.playername =""; sokoban.pos = {};
|
||||||
SOKOBAN_WALL = "default:brick"
|
SOKOBAN_WALL = "moreblocks:cactus_brick"
|
||||||
SOKOBAN_FLOOR = "default:stonebrick"
|
SOKOBAN_FLOOR = "default:desert_sandstone"
|
||||||
SOKOBAN_GOAL = "default:diamondblock"
|
SOKOBAN_GOAL = "moreblocks:wood_tile_center"
|
||||||
SOKOBAN_BOX = "basic_robot:button8080FF"
|
SOKOBAN_BOX = "basic_robot:buttonFFFFFF"
|
||||||
|
|
||||||
load_level = function(lvl)
|
load_level = function(lvl)
|
||||||
|
|
||||||
|
@ -89,6 +89,18 @@
|
||||||
file:close();
|
file:close();
|
||||||
end
|
end
|
||||||
|
|
||||||
|
clear_game = function()
|
||||||
|
local pos = self.spawnpos(); pos.x=pos.x+1;pos.y=pos.y+1;
|
||||||
|
for i = 1, 20 do
|
||||||
|
for j = 1,20 do
|
||||||
|
local node = minetest.get_node({x=pos.x+i,y=pos.y-1,z=pos.z+j}).name
|
||||||
|
if node ~= "default:desert_sandstone" then minetest.set_node({x=pos.x+i,y=pos.y-1,z=pos.z+j}, {name = "default:desert_sandstone"}) end
|
||||||
|
node = minetest.get_node({x=pos.x+i,y=pos.y,z=pos.z+j}).name
|
||||||
|
if node ~= "air" then minetest.set_node({x=pos.x+i,y=pos.y,z=pos.z+j}, {name = "air"}) end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -99,6 +111,7 @@ if state == 1 then
|
||||||
--say(serialize(fields))
|
--say(serialize(fields))
|
||||||
|
|
||||||
if fields.LVL then
|
if fields.LVL then
|
||||||
|
clear_game()
|
||||||
load_level((tonumber(fields.LVL) or 1)-1)
|
load_level((tonumber(fields.LVL) or 1)-1)
|
||||||
state = 0
|
state = 0
|
||||||
self.label("stand close to blue box and punch it one time to push it. you can only push 1 box\nand cant pull. goal is to get all boxes pushed on diamond blocks")
|
self.label("stand close to blue box and punch it one time to push it. you can only push 1 box\nand cant pull. goal is to get all boxes pushed on diamond blocks")
|
||||||
|
@ -107,7 +120,7 @@ if state == 1 then
|
||||||
else
|
else
|
||||||
|
|
||||||
local ppos = player_:getpos()
|
local ppos = player_:getpos()
|
||||||
if math.abs(ppos.y-sokoban.pos.y)~= 0.5 then say(colorize("red", "SOKOBAN: " .. name .. " QUITS ! "));
|
if math.abs(ppos.y-sokoban.pos.y)~= 0.5 then minetest.chat_send_player(name,colorize("red", "SOKOBAN: " .. name .. " QUITS ! "));
|
||||||
player_:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0});player_:set_physics_override({jump=1}); self.remove() end
|
player_:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0});player_:set_physics_override({jump=1}); self.remove() end
|
||||||
|
|
||||||
event = keyboard.get();
|
event = keyboard.get();
|
||||||
|
|
BIN
textures/000.png
Before Width: | Height: | Size: 88 B After Width: | Height: | Size: 116 B |
BIN
textures/001.png
Before Width: | Height: | Size: 125 B After Width: | Height: | Size: 127 B |
BIN
textures/002.png
Before Width: | Height: | Size: 127 B After Width: | Height: | Size: 130 B |
BIN
textures/003.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 141 B |
BIN
textures/004.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 126 B |
BIN
textures/005.png
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 122 B |
BIN
textures/006.png
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 122 B |
BIN
textures/007.png
Before Width: | Height: | Size: 101 B After Width: | Height: | Size: 119 B |
BIN
textures/008.png
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 118 B |
BIN
textures/009.png
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 119 B |
BIN
textures/010.png
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 118 B |
BIN
textures/011.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 123 B |
BIN
textures/012.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 123 B |
BIN
textures/013.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 122 B |
BIN
textures/014.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 123 B |
BIN
textures/015.png
Before Width: | Height: | Size: 125 B After Width: | Height: | Size: 130 B |
BIN
textures/016.png
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 122 B |
BIN
textures/017.png
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 123 B |
BIN
textures/018.png
Before Width: | Height: | Size: 112 B After Width: | Height: | Size: 124 B |
BIN
textures/019.png
Before Width: | Height: | Size: 98 B After Width: | Height: | Size: 113 B |
BIN
textures/020.png
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 120 B |
BIN
textures/021.png
Before Width: | Height: | Size: 126 B After Width: | Height: | Size: 127 B |
BIN
textures/022.png
Before Width: | Height: | Size: 93 B After Width: | Height: | Size: 113 B |
BIN
textures/023.png
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 128 B |
BIN
textures/024.png
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 121 B |
BIN
textures/025.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 120 B |
BIN
textures/026.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 124 B |
BIN
textures/027.png
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 123 B |
BIN
textures/028.png
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 125 B |
BIN
textures/029.png
Before Width: | Height: | Size: 106 B After Width: | Height: | Size: 118 B |
BIN
textures/030.png
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 125 B |
BIN
textures/031.png
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 124 B |
BIN
textures/032.png
Before Width: | Height: | Size: 88 B After Width: | Height: | Size: 112 B |
BIN
textures/033.png
Before Width: | Height: | Size: 98 B After Width: | Height: | Size: 118 B |
BIN
textures/034.png
Before Width: | Height: | Size: 98 B After Width: | Height: | Size: 114 B |
BIN
textures/035.png
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 118 B |
BIN
textures/036.png
Before Width: | Height: | Size: 123 B After Width: | Height: | Size: 131 B |
BIN
textures/037.png
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 128 B |
BIN
textures/038.png
Before Width: | Height: | Size: 123 B After Width: | Height: | Size: 129 B |
BIN
textures/039.png
Before Width: | Height: | Size: 97 B After Width: | Height: | Size: 114 B |
BIN
textures/040.png
Before Width: | Height: | Size: 113 B After Width: | Height: | Size: 122 B |
BIN
textures/041.png
Before Width: | Height: | Size: 114 B After Width: | Height: | Size: 120 B |
BIN
textures/042.png
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 120 B |
BIN
textures/043.png
Before Width: | Height: | Size: 102 B After Width: | Height: | Size: 120 B |
BIN
textures/044.png
Before Width: | Height: | Size: 91 B After Width: | Height: | Size: 111 B |
BIN
textures/045.png
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 114 B |
BIN
textures/046.png
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 113 B |
BIN
textures/047.png
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 122 B |
BIN
textures/048.png
Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 128 B |
BIN
textures/049.png
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 119 B |
BIN
textures/050.png
Before Width: | Height: | Size: 125 B After Width: | Height: | Size: 130 B |
BIN
textures/051.png
Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 127 B |
BIN
textures/052.png
Before Width: | Height: | Size: 114 B After Width: | Height: | Size: 127 B |
BIN
textures/053.png
Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 133 B |
BIN
textures/054.png
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 128 B |
BIN
textures/055.png
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 123 B |
BIN
textures/056.png
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 124 B |
BIN
textures/057.png
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 128 B |
BIN
textures/058.png
Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 120 B |
BIN
textures/059.png
Before Width: | Height: | Size: 98 B After Width: | Height: | Size: 117 B |
BIN
textures/060.png
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 127 B |
BIN
textures/061.png
Before Width: | Height: | Size: 98 B After Width: | Height: | Size: 113 B |
BIN
textures/062.png
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 125 B |
BIN
textures/063.png
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 125 B |
BIN
textures/064.png
Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 128 B |
BIN
textures/065.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 121 B |
BIN
textures/066.png
Before Width: | Height: | Size: 112 B After Width: | Height: | Size: 120 B |
BIN
textures/067.png
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 121 B |
BIN
textures/068.png
Before Width: | Height: | Size: 106 B After Width: | Height: | Size: 116 B |
BIN
textures/069.png
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 124 B |
BIN
textures/070.png
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 122 B |
BIN
textures/071.png
Before Width: | Height: | Size: 115 B After Width: | Height: | Size: 124 B |
BIN
textures/072.png
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 119 B |
BIN
textures/073.png
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 118 B |
BIN
textures/074.png
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 117 B |
BIN
textures/075.png
Before Width: | Height: | Size: 112 B After Width: | Height: | Size: 122 B |
BIN
textures/076.png
Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 114 B |
BIN
textures/077.png
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 121 B |
BIN
textures/078.png
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 123 B |
BIN
textures/079.png
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 116 B |
BIN
textures/080.png
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 118 B |
BIN
textures/081.png
Before Width: | Height: | Size: 114 B After Width: | Height: | Size: 120 B |
BIN
textures/082.png
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 118 B |
BIN
textures/083.png
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 125 B |
BIN
textures/084.png
Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 114 B |
BIN
textures/085.png
Before Width: | Height: | Size: 101 B After Width: | Height: | Size: 114 B |
BIN
textures/086.png
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 118 B |
BIN
textures/087.png
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 122 B |
BIN
textures/088.png
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 123 B |
BIN
textures/089.png
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 118 B |
BIN
textures/090.png
Before Width: | Height: | Size: 114 B After Width: | Height: | Size: 128 B |
BIN
textures/091.png
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 117 B |
BIN
textures/092.png
Before Width: | Height: | Size: 109 B After Width: | Height: | Size: 122 B |