From cc75d517699dc3242d8b7d9f659b667a67f6da51 Mon Sep 17 00:00:00 2001 From: FaceDeer Date: Sat, 20 Aug 2022 00:14:29 -0600 Subject: [PATCH] more achievement icons, fix ancient lantern achievement --- df_achievements/dig.lua | 39 +++++++++--------- df_achievements/farming.lua | 3 +- df_achievements/food.lua | 3 +- df_achievements/misc.lua | 22 +++++----- .../dfcaverns_amethyst_achievement.png | Bin 0 -> 1943 bytes .../dfcaverns_awards_foregroundx32.png | Bin 117 -> 116 bytes .../dfcaverns_bloodthorn_achievement.png | Bin 637 -> 600 bytes .../dfcaverns_castle_coral_achievement.png | Bin 0 -> 2263 bytes .../dfcaverns_cave_coral_achievement.png | Bin 0 -> 1996 bytes .../dfcaverns_cave_pearls_achievement.png | Bin 0 -> 885 bytes .../dfcaverns_glowmese_achievement.png | Bin 0 -> 1724 bytes .../dfcaverns_glowstone_achievement.png | Bin 0 -> 2257 bytes .../dfcaverns_guardian_achievement.png | Bin 0 -> 1556 bytes .../dfcaverns_plump_helmet_achievement.png | Bin 409 -> 405 bytes .../dfcaverns_puzzle_seal_activex32.png | Bin 0 -> 2271 bytes .../dfcaverns_puzzle_seal_solvedx32.png | Bin 0 -> 1368 bytes .../textures/dfcaverns_salt_achievement.png | Bin 0 -> 993 bytes .../dfcaverns_spindlestem_achievement.png | Bin 478 -> 467 bytes df_underworld_items/ancient_lanterns.lua | 1 + 19 files changed, 36 insertions(+), 32 deletions(-) create mode 100644 df_achievements/textures/dfcaverns_amethyst_achievement.png create mode 100644 df_achievements/textures/dfcaverns_castle_coral_achievement.png create mode 100644 df_achievements/textures/dfcaverns_cave_coral_achievement.png create mode 100644 df_achievements/textures/dfcaverns_cave_pearls_achievement.png create mode 100644 df_achievements/textures/dfcaverns_glowmese_achievement.png create mode 100644 df_achievements/textures/dfcaverns_glowstone_achievement.png create mode 100644 df_achievements/textures/dfcaverns_guardian_achievement.png create mode 100644 df_achievements/textures/dfcaverns_puzzle_seal_activex32.png create mode 100644 df_achievements/textures/dfcaverns_puzzle_seal_solvedx32.png create mode 100644 df_achievements/textures/dfcaverns_salt_achievement.png diff --git a/df_achievements/dig.lua b/df_achievements/dig.lua index 02c88f1..906e44c 100644 --- a/df_achievements/dig.lua +++ b/df_achievements/dig.lua @@ -14,7 +14,7 @@ awards.register_achievement("dfcaverns_destroyed_gas_seep", { awards.register_achievement("dfcaverns_giant_web", { title = S("Collect Giant Webbing"), description = S(""), - --icon =, + icon ="dfcaverns_awards_backgroundx32.png^big_webs_item.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "dig", node = "big_webs:webbing", @@ -22,23 +22,24 @@ awards.register_achievement("dfcaverns_giant_web", { }, }) -awards.register_achievement("dfcaverns_glow_worms", { - title = S("Collect Glow Worms"), - description = S(""), - --icon =, - trigger = { - type = "dig", - node = "df_mapitems:glow_worm", - target = 1 - }, -}) +-- too common +--awards.register_achievement("dfcaverns_glow_worms", { +-- title = S("Collect Glow Worms"), +-- description = S(""), +-- icon =, +-- trigger = { +-- type = "dig", +-- node = "df_mapitems:glow_worm", +-- target = 1 +-- }, +--}) --------------------------------------------------------------- awards.register_achievement("dfcaverns_cave_pearls", { title = S("Collect Cave Pearls"), description = S(""), - --icon =, + icon = "dfcaverns_awards_backgroundx32.png^dfcaverns_cave_pearls_achievement.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "dig", node = "df_mapitems:cave_pearls", @@ -49,7 +50,7 @@ awards.register_achievement("dfcaverns_cave_pearls", { awards.register_achievement("dfcaverns_castle_coral", { title = S("Collect Castle Coral"), description = S(""), - --icon =, + icon ="dfcaverns_awards_backgroundx32.png^dfcaverns_castle_coral_achievement.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "dig", node = "df_mapitems:castle_coral", @@ -71,7 +72,7 @@ awards.register_achievement("dfcaverns_ruby_crystals", { awards.register_achievement("dfcaverns_cave_coral", { title = S("Collect Cave Coral"), description = S(""), - --icon =, + icon ="dfcaverns_awards_backgroundx32.png^dfcaverns_cave_coral_achievement.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "dig", node = "group:dfcaverns_cave_coral", @@ -82,7 +83,7 @@ awards.register_achievement("dfcaverns_cave_coral", { awards.register_achievement("dfcaverns_flawless_mese", { title = S("Collect Flawless Mese Crystal Block"), description = S(""), - --icon =, + icon ="dfcaverns_awards_backgroundx32.png^dfcaverns_glowmese_achievement.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "dig", node = "df_mapitems:glow_mese", @@ -93,7 +94,7 @@ awards.register_achievement("dfcaverns_flawless_mese", { awards.register_achievement("dfcaverns_luminous_salt", { title = S("Collect Luminous Salt Crystal"), description = S(""), - --icon =, + icon ="dfcaverns_awards_backgroundx32.png^dfcaverns_salt_achievement.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "dig", node = "df_mapitems:salt_crystal", @@ -104,7 +105,7 @@ awards.register_achievement("dfcaverns_luminous_salt", { awards.register_achievement("dfcaverns_glow_amethyst", { title = S("Collect Glowing Amethyst"), description = S(""), - --icon =, + icon ="dfcaverns_awards_backgroundx32.png^dfcaverns_amethyst_achievement.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "dig", node = "df_underworld_items:glow_amethyst", @@ -113,9 +114,9 @@ awards.register_achievement("dfcaverns_glow_amethyst", { }) awards.register_achievement("dfcaverns_glow_stone", { - title = S('"Collect" Glow Stone'), + title = S('"Collect" Lightseam Stone'), description = S(""), - --icon =, + icon ="dfcaverns_awards_backgroundx32.png^dfcaverns_glowstone_achievement.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "dig", node = "df_underworld_items:glowstone", diff --git a/df_achievements/farming.lua b/df_achievements/farming.lua index 9c0f9a7..17e13c2 100644 --- a/df_achievements/farming.lua +++ b/df_achievements/farming.lua @@ -8,7 +8,6 @@ local coal_ore = "(".. df_dependencies.texture_stone .."^".. df_dependencies.tex local make_texture = function(plant_texture, bg_tex) bg_tex = bg_tex or soil_texture - plant_texture = plant_texture or "dfcaverns_black_cap_sapling.png" return "dfcaverns_awards_backgroundx32.png^[combine:32x32:3,4="..bg_tex.."^[combine:32x32:3,2="..plant_texture.."^[combine:32x32:14,13="..hoe_texture.."^dfcaverns_awards_foregroundx32.png" end @@ -23,7 +22,7 @@ local plant_node_achievements = ["df_trees:spore_tree_sapling"] = {achievement="dfcaverns_plant_spore_tree", title=S("Plant Spore Tree"), desc=S(""), icon=make_texture("dfcaverns_spore_tree_sapling.png")}, ["df_trees:tower_cap_sapling"] = {achievement="dfcaverns_plant_tower_cap", title=S("Plant Tower Cap"), desc=S(""), icon=make_texture("dfcaverns_tower_cap_sapling.png")}, ["df_trees:tunnel_tube_sapling"] = {achievement="dfcaverns_plant_tunnel_tube", title=S("Plant Tunnel Tube"), desc=S(""), icon=make_texture("dfcaverns_tunnel_tube_sapling.png")}, - ["df_trees:torchspine_ember"] = {achievement="dfcaverns_plant_torchspine", title=S("Plant Torchspine"), desc=S(""), icon=make_texture("dfcaverns_torchspine_achievement.png")}, + ["df_trees:torchspine_ember"] = {achievement="dfcaverns_plant_torchspine", title=S("Plant Torchspine"), desc=S(""), icon=make_texture("dfcaverns_torchspine_achievement.png", coal_ore)}, ["df_trees:spindlestem_seedling"] = {achievement="dfcaverns_plant_spindlestem", title=S("Plant Spindlestem"), desc=S(""), icon=make_texture("dfcaverns_spindlestem_achievement.png")}, ["df_trees:blood_thorn"] = {achievement="dfcaverns_plant_bloodthorn", title=S("Plant Bloodthorn"), desc=S(""), icon=make_texture("dfcaverns_bloodthorn_achievement.png")}, ["df_primordial_items:giant_hypha_apical_meristem"] = {achievement="dfcaverns_plant_giant_mycelium", title=S("Plant Primordial Mycelium"), desc=S(""), icon=make_texture("dfcaverns_mush_soil.png")}, diff --git a/df_achievements/food.lua b/df_achievements/food.lua index 0c7a87d..b52fa39 100644 --- a/df_achievements/food.lua +++ b/df_achievements/food.lua @@ -64,10 +64,11 @@ if minetest.get_modpath("df_primordial_items") then }, }) +-- too mundane compared to the other achievements -- awards.register_achievement("dfcaverns_diced_mushroom", { -- title = S("Eat Diced Mushroom"), -- description = S(""), --- --icon =, +-- icon =, -- trigger = { -- type = "eat", -- item = "df_primordial_items:diced_mushroom", diff --git a/df_achievements/misc.lua b/df_achievements/misc.lua index bdefcd9..25a85dc 100644 --- a/df_achievements/misc.lua +++ b/df_achievements/misc.lua @@ -5,7 +5,7 @@ if df_dependencies.node_name_glass_bottle then awards.register_achievement("dfcaverns_captured_ice_sprite", { title = S("Capture an Ice Sprite"), description = S("You've captured an ice sprite and placed it in a bottle. It dances and sparkles and sheds light through the frosted glass while making a faint tinkling sound. Pretty."), - --icon =, + icon = "dfcaverns_awards_backgroundx32.png^ice_sprites_bottle.png^dfcaverns_awards_foregroundx32.png", trigger = { type = "craft", item = "ice_sprites:ice_sprite_bottle", @@ -20,7 +20,7 @@ end awards.register_achievement("dfcaverns_punched_veinstone", { title = S("Punch Veinstone"), description = S(""), - --icon =, + icon = "dfcaverns_awards_backgroundx32.png^((".. df_dependencies.texture_stone .. "^dfcaverns_veins.png)^[resize:32x32)^dfcaverns_awards_foregroundx32.png", }) if minetest.get_modpath("df_underworld_items") then @@ -33,7 +33,8 @@ if minetest.get_modpath("df_underworld_items") then awards.register_achievement("dfcaverns_attacked_by_guardian_statue", { title = S("Get Attacked by an Underworld Guardian"), description = S(""), - --icon =, + icon = "dfcaverns_awards_backgroundx32.png^dfcaverns_guardian_achievement.png^dfcaverns_awards_foregroundx32.png", + secret=true, }) end @@ -44,7 +45,7 @@ if minetest.get_modpath("df_underworld_items") then awards.register_achievement("dfcaverns_solved_puzzle_seal", { title = S("Solve a Puzzle Seal"), description = S(""), - --icon =, + icon = "dfcaverns_puzzle_seal_solvedx32.png^dfcaverns_awards_foregroundx32.png", }) df_underworld_items.slade_breacher_triggered = function(pos, player) @@ -53,7 +54,7 @@ if minetest.get_modpath("df_underworld_items") then awards.register_achievement("dfcaverns_triggered_slade_breacher", { title = S("Trigger a Slade Breacher"), description = S(""), - --icon =, + icon = "dfcaverns_puzzle_seal_activex32.png^dfcaverns_awards_foregroundx32.png", secret=true, }) @@ -63,13 +64,14 @@ if minetest.get_modpath("df_underworld_items") then awards.register_achievement("dfcaverns_repaired_lantern", { title = S("Repair an Ancient Lantern"), description = S(""), - --icon =, + icon = "dfcaverns_awards_backgroundx32.png^((dfcaverns_slade_brick.png^(" .. df_dependencies.texture_meselamp .. "^[mask:dfcaverns_lantern_mask.png))^[resize:32x32)^dfcaverns_awards_foregroundx32.png", + secret=true, }) -- awards.register_achievement("dfcaverns_repaired_100_lanterns", { -- title = S("Repair 100 Ancient Lanterns"), -- description = S(""), --- --icon =, +-- icon =, -- }) end @@ -79,17 +81,17 @@ end --awards.register_achievement("dfcaverns_torch_detonated_mine_gas", { -- title = S("Detonate Mine Gas"), -- description = S(""), --- --icon =, +-- icon =, --}) --awards.register_achievement("dfcaverns_looted_underworld_bones", { -- title = S("Loot Ancient Warrior Bones"), -- description = S(""), --- --icon =, +-- icon =, --}) -- --awards.register_achievement("dfcaverns_looted_100_underworld_bones", { -- title = S("Loot 100 Ancient Warrior Bones"), -- description = S(""), --- --icon =, +-- icon =, --}) diff --git a/df_achievements/textures/dfcaverns_amethyst_achievement.png b/df_achievements/textures/dfcaverns_amethyst_achievement.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b2ac5267b83ad575372cb7d89ee1214e7f47f5 GIT binary patch literal 1943 zcmV;I2Wa?-P)VPU)g$ZunzCmY&_P#&0t&Mc1rZPsa0J2S%m@gApc}!)rNHb2H~s^H zfaprZl>>~-Fw)RYNl(vIRrgeNJ+msaGBV?l*Yi6B0j*6lg*Pe)BI@3AzVn^$oO{!4 zY;4GF$Jdf?%d0D|$xVLkA71}Uvf0$}{qK`M-`ZAio5`;)|5)DKyelvEzTo!;ANb?+ zP{cWjT;#Vqcl;06ekR}Sy?!eIpNWBQ&HX@@k~NucEcux)B%ft+HaV6sh-8=##Ovks z;+dBj|F0SOzZf7IqH-dBoDcm?aV>!hWudtwlQNad>6y&@OhUcx^gb^u%?(MSwyd?b zeItndH@e@$#_a*H=qE4y+6-M~=jvi+4lkxB>af(PuOtp)S!^!LLfkhdo}`azCL(=r zhKV@mygvO~yLaX7ul)X*0HXhP%m`fIkH?473cD4hxio`NI#ExWQA;#B`DC~!qhe?b zaD8#%RXLp;sURnEndJaAb_7^K=^vf%%TIUTcFV1G`T2+6e~JNA&CLSe3|c-bryA{< z9NavRtNcQyMJmn(8dX~(ZxW^Hz>CuFLdkXh#|r3Fb&;1jJ{5dN7~^6r_m4l2hZlPQ z_4hB{_pi0SW5L!8Ov@A+J;vu63v!)ZikAtF)L|lp&&^3%j3jamDW#BDDK2M)%*6}R zj=E6Jt?!E_%+N)~Oi$-~KU3D4Fo|vKX=+nf1K8;7`e8QEx*jUkYA8yKx=iUWd?9K< zrarYC7iwgt5R@fSC0A;YZ>8^&a|3WbeWJh}P8DQsDNDi@Hmz(=(oeBvf~hrtx-aun z@y>&|5)`y20I+BnI6)V%g9x#CGI^{33af@;b_FKS+ofohq zAC3QM3|QnNRW|vAW}^1qgIpJ6(g>T0>;-Q6}2bPgZqqqt<}*H1B*!iyK{>N#H~2Hs%3^_)H@zPHC&KHv2m= zOEP(IJ(EFxCc|Pt3XG9bqnpkqc8`l2=!Z$fO}o~B8fXfZ;H9ntU67I^bvh?WrQY?{ zj;yw}$SEMKyjc|;^Ud+cS-zLQf z@HGG$2)RL2Ri4ktxplWVj9FxL|M=h_4qT!B&;;RPKV>6rhrOt*1<-$_+a#rOw|DcXYEE8FecWQ=3ZeQ3|Tr# zkHZq6P)z)EM4A?BVbK_4P+_$Q*<@Hu=@IpI_eCa{iqEFU284kVQbQyFw%T_QU6j&= zZoc!x5m8d6ywj$!NqX=Dm^uYY=Z1=FNKTC&Klbc|&}q>u#w$c@a~S9a-9S72AcOHnCerZ@3$4t!*b7R_ zc}~Qpk*=~gDaOXwdVAYgI#dC(W+7gpZ1vla@38aqc>u+N7>W=S8KUPOjStX*i6;nis00Gj=?9>)^)evoY zqrHPc6PdTtYl*e$s=cxY0PvEuA0n69i6`g@FP%6>CN=wo}w#chWyT`&9gg%ir4b%kkG8WdaqH8iJ!DHW#+#;QFDY(=l}7i9N%jXRs#sS-k_I zAMVISuAD8(p9a5s?yuS5;=o57=Wejk$4Bxq5Rl%PetC+~e`n~~gN{O0j5?D^gPo31)uc^&ixM?ZMK d_?z5z{0CZv(@k~Vo1y>!002ovPDHLkV1g#(yJ!Fa literal 0 HcmV?d00001 diff --git a/df_achievements/textures/dfcaverns_awards_foregroundx32.png b/df_achievements/textures/dfcaverns_awards_foregroundx32.png index df60df805b98200412feab11eb86fa85baa6e11f..fbebb9daea7168616e40ca11595a36c00cb0390c 100644 GIT binary patch delta 54 zcmXRdnc!?F*?YcQW2N@gP(yC69W20rLqLd8A7TQd z7vo8gq1KED;JO?ruo3d~&yH-mu<%}^o)R>lGOT}T42d&L?UUxHZ-0C(~jGEgMp QqyPW_07*qoM6N<$g7ddP)c^nh delta 199 zcmV;&0672H1pNfCzX5-#Nkl*WB>zZ76{D*7GSM#^eHN5LkK7;X=xi-Ipv;*!!b2ABXCh>0^m1OR?f9Ew3~qxb*-002ovPDHLkV1h7U BP4WN$ diff --git a/df_achievements/textures/dfcaverns_castle_coral_achievement.png b/df_achievements/textures/dfcaverns_castle_coral_achievement.png new file mode 100644 index 0000000000000000000000000000000000000000..9edf90d047252c64df8c0d213ea6b9331dfcf357 GIT binary patch literal 2263 zcmV;|2q^c7P)TkqxZUo?jj#g=5=s!?0P$%u0FXjP3_u7)9x@4|2!UYAjBmos z3<8RTu^hWQRn>Ja?`2=sLM;!bUV5scac^SRO;%$&MaYFB~}GJH7lmp}RszAceolYjW+BhGI#>5x5VW1Sm$ z*O>N|7&8(xY#T=7{HC+5k-SR?EAyjJ`wjaK6x!nJW8oiv_5%qBKm4;#e>32dKm88* zEFC$-A25c$Nd2A&>HR)*&mRb41j84+zE1hixRQoQl8xLR*{)q$?fmE`uZaM|%?){|Znfj(9y6i#NL@i> zLomieq^~m%XXozC%=KZ#%qUxCdb#7KZ9E?;$vWmrT>~0cl0;$xyIj#@ChQIjT3lBI zz6Ma%ox2IR5%-lSm3k@=ojzBlDX`3qUw+m3?7yx|x6ZQ{BiCAQ9mBY@=?S%OgB~8Ah=ci+-OO0iS*5>5}5CuKlol?+$r6KQU>}~F;|YS0{dM@yFD%8Fglt>oCea- zDS$Ux5!SdzfVD2ntAK!o#N0qF(3+F?LJSqeX)9P4HqWT;FfxQh7_NA$T;3FJK1u}J z08oIX@3@>hg&o5&;tuE2z~)CpVYxUjKiG44K4LhnHEJ_loHRP%m^p~x3_SnfK$s?4 zscdT_kCpv1;rVxOc=5XfsI#$q0@OBBYvuY_+3G-|x;cGq__|Ua0_qiWI9&_>^Yce)92t)J32=G<%xM-lx4^^wJ49iK3a6FvdF1dy z5lO6fXBN9**gr$fAQ(D8(gpW|FB{gCUOS;0@esJX>wNa}dpZJnV%%qjfhT~9;xUqQ z;AS#UKXBLh*FWJ)Y_Qq zN>m{t_~yKMFs^Hdn7KI=)HnJHZA*BL#M`F|SRWTOfro@6NEY(Y331Qv#SLNSJYE;9 zI#yxZl)FzGRttyc5fKM>{M=9l4RDz|>m11YN}n%mT|pDBi8zhK7|mVj63ueFsq1wcUT`CL?8(37SSa120SFXMO?v_hIOZv4eNrN zv79QG2WPp&rwYX1sgzzE4a#=jF&!c5iZ~=Gy!`W<)fFohoeX!O7iXC}>;rL7RE#ka5$`De z1i1ga;?2<9NRyyih!M8h(Ui%1#Y;zngEpjG=-#N-KmsNalR$4mK){?BD#J~rU4@i4 zScSR@)&v`e6Zq4cJ> z3j`sAjS#`I;?3yYiMI){j5R}p3amtc5Fj6uY{k5n0%8z4E&(eG<*}h{0gZTwG#hCi zaS!An0fM*^$4D52kU>Q0mj#gl4}uO(+6B4?uJ@a$3IN|cPWkZio{5Gj|Ldfk}y%Hg+;ND$ndwmAFe zneFOei#UmY{g*fV|NO@D{BM8qJ?{T^Au4Y339n#PDSjaDJ9$?@65R%z$T&3u1+l_u l6{;pVzj6NU-@oMB@_)5@9l(T-983TJ002ovPDHLkV1h7mH6j22 literal 0 HcmV?d00001 diff --git a/df_achievements/textures/dfcaverns_cave_coral_achievement.png b/df_achievements/textures/dfcaverns_cave_coral_achievement.png new file mode 100644 index 0000000000000000000000000000000000000000..d54fe3ea4f491ac1d3548157c9526725163a41e2 GIT binary patch literal 1996 zcmV;-2Q&DIP)bff{V6chqp8KSYHw#1i^pajGK@j<*2yz~_m5P}fnU9J?t zV4?{|+HQ7|-sg3ihjA!7h0r@Fp&JW|!CZ_n>#x85sBS*WwR4D$UPp33oDcl!jW_>427dUx7kT9Y-4)e~%axw5HrzWt z;qUkFa&-C;tpiWt&V%Ro&WQqbBS8sibpZ(zbe4YjVhyD14=P6AahKmY9; zpAX=*@7@B1TCu#&T_FJ_`t9mIR4~>>Hd<%a>0`a*C@+9wwnzX z7Z+#+=NwXm*=(XYmrwO0Rp6Jud+W0RZhiSnw0KS~E_Hu0L#t=&luz#8W4l`e%E93w z%jG_e1ct8X^z4kT_H55P&d*MG>e_WCO~c`GpZ({gr)9XH(5JTY64YtdRW zKYHoF|CqV!OeG$Z|5lH=fNI&*eAO=sr=^!=?TCMJ=n&TVJ&o4^hea)kl!95odaiWi}2BEznuYBE66*wClSdRP&or%yX}$7`muJ;XVN zVT)SeOd1k>RZ>+8qBtZ3G>wd#jm3b^0-)qX$x2EI2Q;xk6VP>dCs3i3%8)YC*_;p} ztIY-7xB-Q>opJy2g6(F@a=x_A@neru!2`J;0EkUP6=5s`PTZAI>^((5QKIt%=Zz}E zUq5vaAHntsKDMkky@@uuhH1N`8#B&3v=ma;Sr?ItvD-|imT?|O@-R|WDWyCF&<_K< zzN70qdqLYoymz2j7B-Y~CXI)MXOR#Tnyw= z41iW84}$@8S4AjxK%tm&?VxyX8%wSB5}zX_7wmBG#*84AdFgwcDlrB`g_<)}DwY6h z`^kcf(K;fg0nOP-DQdA~q337{~O$M+(ZAMuy!EA0ys*1Dv$l>O}C~ zgO#CLi%ypdLX5UgRZRz!g1=e<8=u1n{Xoivl9Ek2RKN@Ed`6s1$fcNgx?M-krWF%y zu9;%`u{+oTI_GiTlS)Ok+B~uAS;1lc5PddA%CuBFpcbGIe6W|M zoao17ofF%}0;p-nG6yvPm>6?4ftol~ZRIKhrBoX(4y;C6E7Qf?HVT5dh%pj;6c=NX5QJPxK>>;0;fRFJAP zlL!LdI>A|e1y2QIuv@L@)@uZCim_&i7@MXQ0|5wEv_P#@R+}}$I4}&oDIF(PGpz-w zmEfG!G5A1Dqdg0DcVLE^x?>19(^J7F-#DTMe#(4rpFAYN3_Q_cq zo6UXqYSc7bxpWbLhaP?6P|jDrxrBlMTwn@AWI4)HC7qj?_dNXAsnHQQ``lB!_VQU| z0yB_ob@5B3Nlc^O;OQ4$`d5H%w@;~5v@k5-q8P)-v)sDfK5>$0WC~Vl=K=7TSq?sn zaA6TMZ!&n`z7x8<@DY!kd}d#OpEnv*s})X6SE!Z>q-o6B^&i-7wHZXo!A1D?{2Q#- zH!(9aZ?H!|7WIj{9r856``oTx|DL(mU)dKRC{7ZkDciqx_-SK{ufASlquyXJj4*U? z5gwnakR*w%*EhLmYKm|&M9u*4xzQi?xVpB+&Th|OA8P=Bli>sgcmpI1HyVIE!?Kh( z&)FPAOoSoFDpj&9WqWIzMso`fpa9%IZ}8HEb7Thf-An+;%((z0f#JO!3}9xrmq$3F zC}NmoblNT2?G6A^06~Gjn!0wmMi%ujGZYQ&!TYD=5$nyC0OsC$_i%k6OLOwfgB%0` z0RrzmAXF%zLWmVY1OR;Y$p_@#2uoGV;)tL;L1vgu-^+1VR`16fhwp?RUbqM#Tp*ky zC|7V{5xD@&kc998vr^E(!S@q=Ux@PG6hgVu7m-+h@b00000 LNkvXXu0mjf$widX literal 0 HcmV?d00001 diff --git a/df_achievements/textures/dfcaverns_glowmese_achievement.png b/df_achievements/textures/dfcaverns_glowmese_achievement.png new file mode 100644 index 0000000000000000000000000000000000000000..74fbb332423bc92ba6167ef44e088c647f3ae607 GIT binary patch literal 1724 zcma)*iC2?X8pdr_e6mbNN5lsYcZjvbg2R#7q_ExDh9`0(N?D}gA1$LDlP5hKbY^F@4NThd%yEO&+mD!K5T2y zLh3Rqg+f^vyg4v}jLYZV1(L20+-SiHF%qUiX%S>eAXg6QX~0VYULsOT zAUqVMCPGmT(6=G08QZGKk62fL(~^)u1EfT*0^+u#%nVS7ffJ45*@zv5bOn&X2NoU0 zFi~+nFzJX0lZoaOs&I6)9iGxhKIa8uk$jgMta3oBbGmnAvu8ew&B7YQ0D=`Yu1BF3uRhJNq~+H5iH^kpmnSA`PI;CsMIE4P}a9-)`L7fu#bd zGlM#Z$iww!5T+2kxY|fqVO|o-;G>R4;B!%{6*RdZ6OukbIWm$jHfV5bJx=GLCJWYU z2vQ&&Wl-aYP*j+WEfuh%5?AVReI??J0EUvIuqT<_na;ZV;_v@Dl6m`j(1_2u0a34L zq+B#IAY!)X(mVGChmH*nM~?riFYTfI&5*^mW@gZCec7^cj5;fo+RN_M(1R9vvijV3 z^)J?>9;%Y5&J14&%6y|(HF2NwP56Hs8b+r_-|1hp$9u8%P?~vDG zhRM5mjj#Ms?1LxwKIrP9L~Xo+f2~`0Z0*Dy-E|$hW}NTX`gY*N>f0a8r*Nqu>%=Zw zc3(TLStveh^l|KbG{~i1dQa(P_+mNjMqAh6$4j^Z0d3147oQPy%})x34;WkYe8Gj9 z%oU3@Ke@T-*MFq<*gR;YF&Ve&*<#yDb$PKXqAxG)n;t(gpQ5|E;ll@I33-y6&pf@B z770vF(lO4fS$cW?HZhWyI5t}?_8EtyW3JEkZ)ur%$i4O-_{+{4BYrmzP0lQ#?Xpe0 zR=Pj$F;4zs^bb<~OwHd#d(nS}O`n>Kl^3!?UOVqNIPuTn(w0@p>&D($ot3pIX#eS$ zJ8JFEk#{nhO5Zf4w2T)>R_f^y$;F zHCpx0J=!G=AHO*D%+e|ReyKXciDdTi+cZF-t8x>1KG7ceGX4(Ax*JP0V|XzzZH6% z=BVo^hD9FD1*e?#_D)9!Mr8M$PZoG(A0G0tK3e^5XYeM$UOlsOXwkcS_T9_4E9hnK zwZ0{rHl07Uz3m^LlxY2TN-re`#4DYET!Bq0+isy>EgVd&@e$+FFj-|aaUC|AqUsSG} T9~Wh!x!V^^+Zx#Ob-emdh-I%) literal 0 HcmV?d00001 diff --git a/df_achievements/textures/dfcaverns_glowstone_achievement.png b/df_achievements/textures/dfcaverns_glowstone_achievement.png new file mode 100644 index 0000000000000000000000000000000000000000..42863515ad9b378b5a7b627c3e624d5b46bb080e GIT binary patch literal 2257 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 Rz1si)002ovPDHLkV1lK|O(_5X diff --git a/df_achievements/textures/dfcaverns_puzzle_seal_activex32.png b/df_achievements/textures/dfcaverns_puzzle_seal_activex32.png new file mode 100644 index 0000000000000000000000000000000000000000..33f93e239763d00e834f0777325b2457e30bb76c GIT binary patch literal 2271 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 aXa55Zp zshFlEO_S_yvf0e_%q8uULetjvr56q}nQ7;oxnIM|#KZ*l(*o?!4g?$sSiFASurC7M z-@gwxGz1h1SiE_2Zv}jK`V>%w1c6Gqtb6K#h531)ScH^HDyje>QKSoZ@9vF&W~~Oz za}7Lsw`&3*;^(?JGxPribV<}n5{L-2R6?)QK~7P~G9+=l`vTrwyN2geQ`j`;5T_}Y zNm?a&mGf$&f#u)7v9`Ku1fOr+!k5`uyy3WQ0Uw#=3wQ3I!1y{Ffsfa z2+Of>p5fGRz*spj6^1&Pa>Y2h#L(n(@vVAN8*%1TSUUW zfjm$+ejH#-lX@L3BISVzkr7H!SsYuKKooi7^08wOy4{;&Z%A4#R9F>p99x+(LkALI zhY1DvYT;4Ov2EUgVy(es$z9{8Ol9SB=cu`eL&4^undpr0c*WnGw{|q zMHNXR{ZP<5R&v}$tJ&OmBV_vJ%k2p`?Hh=5;tviOis7S2tqL4r+08Mc5E0qz2cUqp zM#BvKTh#7LIuPb*u?oj048wn8wUv7xc&=fC<7}9Albrj6J5aY zGRswFWP$T0%tkE80v706SP2U30rGbu3;bNaZtV|<000u%8zm4+23B+c0000-QC@t`=5nP;U&wzNM1NX zI0zvON)gck5Ys=Z($$>vI-4&LmaFw