From 62ce7b7ca09ef7b38491044ee980da21448e5a31 Mon Sep 17 00:00:00 2001 From: Tim Repke <timmothey@gmx.de> Date: Sat, 26 Sep 2015 15:44:47 +0200 Subject: [PATCH] added quite a few achievements --- .../view/signups/game1/js/achievements.js | 88 +++++++++++++++--- .../view/signups/game1/js/story.js | 2 +- .../view/signups/game1/maps/dorf.svg | Bin 1806688 -> 1807707 bytes .../view/signups/game1/maps/map_landing.svg | Bin 6745732 -> 6747793 bytes .../view/signups/game1/maps/shop.svg | Bin 534911 -> 539038 bytes 5 files changed, 76 insertions(+), 14 deletions(-) diff --git a/registration-system/view/signups/game1/js/achievements.js b/registration-system/view/signups/game1/js/achievements.js index 3341725..e2a6e3e 100644 --- a/registration-system/view/signups/game1/js/achievements.js +++ b/registration-system/view/signups/game1/js/achievements.js @@ -1,20 +1,79 @@ function Achievements() { + var self = this; this.achievements = { - 'started_game': 'Bestes Anmeldesystem gestartet', + // LANDING 'first_step': 'Erster Schritt getan', 'some_water': { message: 'An frischem Brunnenwasser gerochen', - condition: function(context) { + condition: function (context) { return euclidianDistance(Game.char.translation[0], Game.char.translation[1], context.x, context.y) < 150; } }, - 'stroh': 'Warum liegt hier Stroh rum?', 'saw_devs1': 'Wilde Informatiker auf Wiese gesehen', + 'spotted_gorilla': 'Ein bekannter Gorilla im Wald', + 'hydrant': { + message: 'Wasser aufgedreht', + condition: function (context) { + return euclidianDistance(Game.char.translation[0], Game.char.translation[1], context.x, context.y) < 150; + } + }, + 'randomwalk': 'Sinnlose Wegwahl', + + // CASTLE ENTRANCE 'moneyboy': 'Money Boy: Swag ist aufgedreht', + + // DORF 'speedrun': 'Haalt stop! Denkt doch mal an die Kinder!!1!', 'woman': 'Mit einer Prinzessin gesprochen', 'plumber': 'Berufung: Gas, Wasser, Scheiße', 'princess': 'Prinzessin verärgert', + 'stroh': 'Warum liegt hier Stroh rum?', + 'maske': { + message: 'Warum hast du eine Maske auf?', + condition: function () { + return self.achievedAchievements.indexOf('stroh') >= 0 + } + }, + 'gentzen': 'Bei diese Baustelle machen die sich den gentzen Aufwand umsonst.', + 'kacke': 'Eine gefährliche Stuhl-Gang', + + // SHOP + 'antler': { + message: 'Geweih verschönert', + action: function () { + Game.char.svg.select('#antler_ball').style('display', 'block'); + } + }, + 'flowers': { + message: 'Blumen umgestoßen', + action: function () { + Game.char.svg.select('#flowerpot').style('transform-origin', '50% 50%').style('transform', 'rotate(70deg)'); + }, + condition: function (context) { + return euclidianDistance(Game.char.translation[0], Game.char.translation[1], context.x, context.y) < 100; + } + }, + 'wine': { + message: 'Weinfass getrunken', + action: function () { + Game.char.svg.select('#wine_glass').style('display', 'none'); + }, + condition: function (context) { + return euclidianDistance(Game.char.translation[0], Game.char.translation[1], context.x, context.y) < 80; + } + }, + 'chair': { + message: 'Stuhl geklaut', + action: function () { + Game.char.svg.select('#stuhl').style('display', 'none'); + }, + condition: function (context) { + return euclidianDistance(Game.char.translation[0], Game.char.translation[1], context.x, context.y) < 80; + } + }, + + // META + 'started_game': 'Bestes Anmeldesystem gestartet', 'gameDone': 'Zeit verschwendet', 'achievement42': 'You just found the answer to everything!' }; @@ -25,29 +84,29 @@ function Achievements() { this.triggerAchievement('started_game'); Environment.sound.achievements = true; } -Achievements.prototype.numTotalAchievements = function() { +Achievements.prototype.numTotalAchievements = function () { return Object.keys(this.achievements).length; }; -Achievements.prototype.numCompletedAchievements = function() { +Achievements.prototype.numCompletedAchievements = function () { return Object.keys(this.achievedAchievements).length; }; Achievements.prototype.initDomElems = function () { this.domElems = { - 'log': document.getElementById('achievement-log'), - 'statusBar': document.getElementById('achievement-progress').getElementsByClassName('status-bar-bar')[0], + 'log': document.getElementById('achievement-log'), + 'statusBar': document.getElementById('achievement-progress').getElementsByClassName('status-bar-bar')[0], 'statusText': document.getElementById('achievement-progress').getElementsByClassName('status-bar-text')[0] }; }; Achievements.prototype.getDomElem = function (elem) { - if(!this.domElems) this.initDomElems(); + if (!this.domElems) this.initDomElems(); return this.domElems[elem]; }; Achievements.prototype.updateStatusBar = function () { - var percent = Math.ceil((this.numCompletedAchievements() / this.numTotalAchievements())*100); + var percent = Math.ceil((this.numCompletedAchievements() / this.numTotalAchievements()) * 100); this.getDomElem('statusBar').style.width = percent + '%'; }; @@ -65,7 +124,7 @@ Achievements.prototype.logMessage = function (message) { newElem.appendChild(newElemText); newElem.style.backgroundColor = '#474c46'; - setTimeout(function(){ + setTimeout(function () { newElem.style.background = 'transparent'; }, 1000); @@ -81,14 +140,14 @@ Achievements.prototype.getMessage = function (achievementId) { Achievements.prototype.isTriggerable = function (achievementId, context) { var achievement = this.achievements[achievementId]; - if (typeof achievement === 'object' && 'condition' in achievement){ + if (typeof achievement === 'object' && 'condition' in achievement) { return achievement.condition(context); } return true; }; Achievements.prototype.triggerAchievement = function (achievementId, context) { - if (!this.achievements[achievementId]){ + if (!this.achievements[achievementId]) { console.error("No such achievement: " + achievementId); } else if (this.achievedAchievements.indexOf(achievementId) < 0 && this.isTriggerable(achievementId, context)) { @@ -96,8 +155,11 @@ Achievements.prototype.triggerAchievement = function (achievementId, context) { this.updateStatusBar(); this.updateStatusText(); this.logMessage(this.getMessage(achievementId)); + if (typeof this.achievements[achievementId] === 'object' && 'action' in this.achievements[achievementId]) { + this.achievements[achievementId].action(); + } } // else console.warn("Achievement already achieved: " + achievementId); - if (this.numCompletedAchievements() === 42 ) this.triggerAchievement('achievement42') + if (this.numCompletedAchievements() === 42) this.triggerAchievement('achievement42') }; diff --git a/registration-system/view/signups/game1/js/story.js b/registration-system/view/signups/game1/js/story.js index b924425..6564c40 100644 --- a/registration-system/view/signups/game1/js/story.js +++ b/registration-system/view/signups/game1/js/story.js @@ -693,7 +693,7 @@ Story.actions = { food.kaese.style('display', 'none'); } }, { - message: 'Neeee! Ich bin nicht auf Diät!', + message: 'Neeee, ich bin nicht auf Diät!', action: function () { } }] diff --git a/registration-system/view/signups/game1/maps/dorf.svg b/registration-system/view/signups/game1/maps/dorf.svg index 9057422f4612248e2a786f259159b6ec0c9f06a7..ce37243fa92244dfb5ef429e3c328a3fb9cbed32 100644 GIT binary patch delta 847 zcmZ{iyKmD_6o+LKk~S?ZG$l|xV8Vv%+k4M_qXq^L3?Ly8LaJDZ(ln|f%)^vE1{Q=$ zR8*8m^iB*gvXBL3gb}eY1hKF%@h32Ij1W=-vGmE7kA3`|pU?N#$+tI2Z`;pV7T$ln z>-TqkZ)fKm5CcYlhDtHaj+La9)@yegr|aw03ge0r%DMfgxKXWWB?x5<gll%Z3qG^% zZO1#GW6DtXv*Vpu05$yD+Dfu?XD!Y;Tc9JV*cy9Y>v|QBZLM}a#7FiaIb=VQM+(Ro zGL96H31kvEfJ`CN$U)=~GSgq}mIh~C?@Q_WRyrslv&dnjj2uCZB6Iz8a4dZnf;OB* zv5<sIX=JE@NXnIsC=p;exO_W!>3YwDF?Vr2m~)@|rE&Mk__O`@?chbheKdaA^}gn( z-J>VLjJxtIDC8(zUUsiOl#UlEu~JzE0IpW{FWodkXE_=jDJ2QDAY~XEL5wv5zi2@S z6EaG`aKq7xp^Rnbx0L`T@fmKxhMRx##DBO{t=z7qt%kdLFJNw?9h`JOwu7l5+r5et z?#9!gb&G2p66c3V8%xj#SQtx#Nr1sju!vqV#I-=5D3(AJ%`(CZEwhYb5QGC&W=N>n zNFHo9lD|r){ukh0rO~NfUgU-mDm9C60f{mSAdIshm4OJeV_fPmW<+xx#kj;)3I(A6 gA}qx_6erVK4Jo#2_0gFXCKu+LXNn8+=|epI0%36ZIsgCw delta 564 zcmZY3J4*vW5C?GX)cA_=alTK&l2R_q%<b;otq>Gnt%8kZBnA`27}O%#SXiit5d*T7 zjg?s0XugM*HhvW6lo-K<U-O@xKlAZa`FyB6U)lXK;))$0fP}LfyLn?<_4*QWiPA?A zWcpbA%9Y*2!dA67SE%JO2qE$iwf;9e&SiW7T%im@lfSiAZ9g=Rx7KopR)N8WHIXb8 z%R8l`xJ2T2(nXCrFwn4E8>633dt0^gUiqZBoy)*^wP6vPbdXNcMG~Z&^pIZCNBT*U z43HEVBtvAFj5Mna=Y8I+YrDt5tJ7)HFHYh#ig+L*p*)O$`&vcF3Jg5pp#&5x3tVa) zkGY`0XIbQkO2~EqJV2$j2kjYcQKI#qq_qzo4S%}h>Xo>gI^%M|THU`vySp`_<o8=^ z?Zhm+I_dNLn?pv)7#SxMWRgrZ^Ka8nFARZB_p(ZIB_m(5P|zue!t*)!AkfTSxc6pc Z!=5qwH8*7zuHBX9=B2yXZPxDG<QGqKoHYOd diff --git a/registration-system/view/signups/game1/maps/map_landing.svg b/registration-system/view/signups/game1/maps/map_landing.svg index 9b162a4ddb7feec165a92414ca46a89ed0f842bc..70ae65452ab58c7df5c7e030c7ac7de2852eabda 100644 GIT binary patch delta 1040 zcmYk*Nlz3(90l+&Eh365C@2cWxJ!50|Jq9h_kCY+L2-0woydp*5`hC8G~s4qNa#c_ z#>6;B<7GVh1-xjC7d>+DARoc_T8*)jUpigYsebjk`|-Eu!P6hlgEzyud7jwNqlw(q zM6L#M)rnm2>}5TX^*mNyq#dt<rh4lHC+)~ryI%$GbAfSjT2l!+YQ#(>XsH|R%99tr zhnj20y7EG0v&{|V!f2^n8t*S+K7COMR!&V<0+<K2Fdyn*0o21nSOg8Q7?!|NSO&{s z1vEkvWNWR0W@v%cum)OTEv$n!Xa@!zkcaiK0XD)W*bG}>D{O;K2q6Lv+aU%50TL8w zFkr!fhaIpJc0m_(!*19Edto2!hXZgB4#8nK0!QH(9ETHd5>CNsI0I+l9Gr&>a1ky+ z4_t;Ta22jWFI<Nk&<8i60Jq>a6rsO5T}fsSrsc0mPx|CTvY@*5Qxeonl2D!-?_@|y zNbWT`78%Q>_bw#vlw^_PN_Z7Y#be_<Bh97sGL*!PwuZTwYpZd$;>wX_+Ho0M6-J6X zt2B#j%ws7n1{@aD#K!Xr*`K4agpXzT!QjY9f3fe*;81B`ppbTaOlH!#F9}auzZV-* z_Ac4`J97HrbMkZ25!YU7#Is%^fwU|Vj>kfqP;jpd5^JtVtB|sULOF)BArq3}F*(gJ zE=al1BaRS^95=D?VMN?YN6c~SeRk=&)l#_s@|KGAUHQ9X#i7Fekt}C#x^y;aO4~js zZ(p~6O3){H?ACY+jW_5;C>F_>qhJ?C0{@sH7Ez2R8LP9rI?GD}dm<g8_?U!8B<Z*( zA;Ji)%h(yk$l~=7dN+tCtVB$uHSSQ7JFk_=Vy^t#YgQ{V76;1@3j_E5HQJeu&Ls`M E0KAH9kN^Mx delta 551 zcmW;GNlO9&7{+m&$riPJ(ag%MY}Xkbbu?|aec$&oGnGIhBgtz)=T1W1f?$r_y!J)< z2z`N0{q2Dt&wF{{dHH!0pT6J3&#YinRF}_wD@&3hJ?4bxoS=hH%n9P_yVLKJTxvj8 zybgoClyv4g8;{*2Lh*-)L-lxFiZ2-S6aydPmmmb?f=v@Grc@%GOx;BsvZTm`c1^VE zq*9sn{K)G6S;%OjQ71j;H4$adqZ}2eL=_A$!h~wnpcZwgM*|wsgl4qB3=3LeMH_5r zM+Z7#M;9FEMh|-7L?8MwfI$pl7$b1OjnZxz9(bX^2R{N(5kv^12qS_qjAH_mn8Gw> z5XCI!FpmW+VhPJw!7A3Ujty*L3)|SiF7~jG103QA$2h?$&Tx(xE)d5h62-iB^&2&X N-N`XS*qyzn{s6xw<u?ET diff --git a/registration-system/view/signups/game1/maps/shop.svg b/registration-system/view/signups/game1/maps/shop.svg index 9dc74f32bb5599580d671bce80c370744b788ab5..8c94d63c1f97b232b6b9aa19503bd90527628e28 100644 GIT binary patch delta 3817 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 UdX%fp)&z~|=+KcvmDBL}8#cUb1ONa4 delta 1598 zcmb_cOK1~87-sY6PE%S?G_|d5w`qJe&17cZn?A%xB8U`v5=3d@8Z@Rh=_W=C6_Fl1 zc(8S)<3T(qc(jEcwjc@~1-*zBPi+tOpdd&sVo!B8tu~VMfw(a2&wSs^e0={m^XNOb z@{XGvbySHelsE$;B%-PNj>x%VJXCpA<Q44maQ2rRNM-eSCK1-JcloeJVFB|}2{_c{ z<9QK^8dfB8SL_6%m}g@Vr-o&diPxIXV;+Zy?b1cJL3ZJ$OR!2SAA_d+@lOm{ZUptD zZ^_+i{?zwRrSzwR<f9L$BMWoZ!W>hH$wbh}GAe1Ac1KCiva`ZEy2CNvLlzssK{GI4 zJ??e7tZ#je_a8`l+F9Y&WI+v*-p`Kc?Ha{Nhs&x_+`TUd_t4GS3rK8|aarb)d+eDN zc~bEuV}70WRO{*fv=MGag^#?cWA9a_GjTnc8wz7`Mh1bVD{&*0Fv0`rfka0>nN6Ng z_S<No>`#!pb!-cHEQ2=d>TWj2khgX0*gtPkyN69N|5sPQdR@=nDEQrC+hC3EWk-IH zl}V@D#Unv0SY}PkFby6u+z9gI6$WuD*91D4sG>muDOhO_t_DTmf(R;frag!SC<+qd zxgf?WR5U>o+t<=Wr=W;M-ew^TRco;s%s2~;WA&t=_a{8&+^m;egCNLsn1|<U3G#y+ zT8$vbWz!du89E9fr29fimLzp8ghep9<p<ujKWxK}EDsTu1wkog8$;xQAIQWJ0MVVB z_Hl3@IL&N>mpTB3x8?<`JBPsWt$A&h5dhM5cqfCvYlj3BJ9r9%Dl!ehrJH4Kl#xW8 zktDg)7@b~C5i1bWXFx24ZChoCkfiaNRtBc4*I_QyO(GC9lvOt#0+-9H6BHh5RO0Vv zsHn-dIss#-X;gig<Ec6k%7TnHXnHZcsk%G@sSP41DD)lVRlf9i@)7~B^j8Ge%_wPv zQS22t0zq>bpR(mGqN#?GDxfkQvMrKi1=8ENfkWHX<f9IGYB;Vlbg|ph8OrAA?-wH} B;E(_S -- GitLab