From f7307fa1efca756af221491f31d5544d6cde0991 Mon Sep 17 00:00:00 2001 From: Tim Repke <timmothey@gmx.de> Date: Mon, 21 Sep 2015 22:33:53 +0200 Subject: [PATCH] =?UTF-8?q?typ=20am=20dorfeingang,=20tor=20w=C3=A4hlt=20al?= =?UTF-8?q?ter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- registration-system/view/js/api.js | 1 + .../view/signups/game1/MAP_HOWTO.md | 1 + .../view/signups/game1/js/environment.js | 2 + .../view/signups/game1/js/events.js | 12 ++- .../view/signups/game1/js/story.js | 69 +++++++++++++++--- .../view/signups/game1/maps/map_landing.svg | Bin 6738310 -> 6745913 bytes 6 files changed, 74 insertions(+), 11 deletions(-) diff --git a/registration-system/view/js/api.js b/registration-system/view/js/api.js index c4a0e26..e8d38df 100644 --- a/registration-system/view/js/api.js +++ b/registration-system/view/js/api.js @@ -42,6 +42,7 @@ function Bachelor() { 'mehl': null, 'essen': null, 'public': null, + 'virgin': null, 'studityp':null, 'comment': null }; diff --git a/registration-system/view/signups/game1/MAP_HOWTO.md b/registration-system/view/signups/game1/MAP_HOWTO.md index 0d8cc28..e2a73e5 100644 --- a/registration-system/view/signups/game1/MAP_HOWTO.md +++ b/registration-system/view/signups/game1/MAP_HOWTO.md @@ -38,6 +38,7 @@ Folgende Attribute sollten gesetzt werden: - destination (optional, target map für mapchange) - id - action (optional, action to call as defined in Events.actions) +- directAction (optional, set true to fire action before walkTo point is reached) - walkTo (optional, before calling action, walk to point with this ID) - condition (optional, expression with vars as defined in Environment.progress, parenthesis allowed, i.e.: `(!someVar||otherVar)&&moreVar`) diff --git a/registration-system/view/signups/game1/js/environment.js b/registration-system/view/signups/game1/js/environment.js index 0d3309e..b6e5e64 100644 --- a/registration-system/view/signups/game1/js/environment.js +++ b/registration-system/view/signups/game1/js/environment.js @@ -15,6 +15,8 @@ Environment.progress = { // landing map related landing_askedNickname: false, landing_killedGoat: false, + landing_dorfEntranceApproach: false, + landing_ageChosen: false, // ----------------------------- diff --git a/registration-system/view/signups/game1/js/events.js b/registration-system/view/signups/game1/js/events.js index d62e074..af503f0 100644 --- a/registration-system/view/signups/game1/js/events.js +++ b/registration-system/view/signups/game1/js/events.js @@ -24,6 +24,7 @@ function EventHandler(svg) { destination: this.getAttribute('destination'), stopsWalk: this.getAttribute('stopsWalk') === 'true', action: this.getAttribute('action'), + directAction: this.getAttribute('directAction'), walkTo: this.getAttribute('walkTo'), condition: this.getAttribute('condition') }); @@ -113,13 +114,20 @@ EventHandler.handleAction = function (event) { var bbox = spawn[0][0].getBBox(); var xy = Vec.add(getTranslation(spawn[0][0], Game.char.svg[0][0]), [bbox.x, bbox.y]); + // trigger action, then walk to target + if (event.directAction && event.directAction === 'true') { + Story.actions[event.action].action(event); + Game.char.setMoveTarget(xy[0], xy[1]); + } // walk to the action point, start action on callback - Game.char.setMoveTarget(xy[0], xy[1], Story.actions[event.action].action); + else { + Game.char.setMoveTarget(xy[0], xy[1], Story.actions[event.action].action); + } } } // otherwise start action directly else { - Story.actions[event.action].action(); + Story.actions[event.action].action(event); } } return isPossible; diff --git a/registration-system/view/signups/game1/js/story.js b/registration-system/view/signups/game1/js/story.js index f8fcaf5..fca4ed2 100644 --- a/registration-system/view/signups/game1/js/story.js +++ b/registration-system/view/signups/game1/js/story.js @@ -348,15 +348,66 @@ Story.actions = { function rotate(deg) { return 'rotate(' + deg + ',' + goatPos.xCenter + ',' + goatPos.yCenter + ')'; } + + function helper_endAll(transition, callback) { + var n = 0; + transition.each(function () { + ++n; + }).each('end', function () { + if (!--n && callback) callback.apply(this, arguments); + }); + } } + } + }, - function helper_endAll(transition, callback) { - var n = 0; - transition.each(function () { - ++n; - }).each('end', function () { - if (!--n && callback) callback.apply(this, arguments); - }); + 'landing_dorfEntranceApproach': { + possible: function () { + return !Environment.progress.landing_dorfEntranceApproach; + }, + action: function () { + Environment.progress.landing_dorfEntranceApproach = true; + Game.char.svg.select('#dorfritter') + .transition().attr('transform', 'translate(0,15)'); + + Story.dialogueHelper([{ + bubble: '#dorfritter_speech', + message: 'Wie ich sehe, willst du in das Dorf.', + action: function () { + Game.char.svg.select('#dorfritter') + .transition().duration(400).attr('transform', 'translate(30,5)'); + } + }, { + bubble: '#dorfritter_speech', + message: 'Wenn du über 18 bist, nutze das rechte Tor.', + action: function () { + Game.char.svg.select('#dorfritter') + .transition().duration(800).attr('transform', 'translate(-30,5)'); + } + }, { + bubble: '#dorfritter_speech', + message: 'Wenn nicht, dann das Linke!', + action: function () { + Game.char.svg.select('#dorfritter') + .transition().duration(200).attr('transform', 'translate(0,0)'); + } + }], null, function() { + Game.log('Gehe ins Dorf.'); + Game.log('18+ rechtes Tor, sonst das linke'); + }); + } + }, + + 'landing_ageChoice': { + possible: function () { + return Environment.progress.landing_dorfEntranceApproach && !Environment.progress.landing_ageChosen; + }, + action: function (event) { + Environment.progress.landing_ageChosen = true; + if (event.id === '18plusEntrance') { + Environment.fapi.data.setValue('virgin', 'Ja'); + } else { + Environment.fapi.data.setValue('virgin', 'Nein'); } } } @@ -365,8 +416,8 @@ Story.actions = { Story.dialogueHelper = function (dialogue, context, done) { var speed = { - talk: UrlComponents.isSet('fastTalk') ? 1 : 45, - pause: UrlComponents.isSet('fastTalk') ? 50 : 1500 + talk: UrlComponents.isSet('fastTalk') ? 1 : 50, + pause: UrlComponents.isSet('fastTalk') ? 50 : 2000 }; Game.actionsBlocked = true; diff --git a/registration-system/view/signups/game1/maps/map_landing.svg b/registration-system/view/signups/game1/maps/map_landing.svg index d81e9c54971307d3e00406d6db0c6afc346fcfd8..8af9084ebbda29901e0533257062e757e6be4ae2 100644 GIT binary patch delta 5056 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 V(adr1r!HJC+Rx{%7o!Bke*;n{T0{T< delta 857 zcmZ|N%TH556bA4}fl38=*-{kirTF%CI`_`pnR`nMf*`(%4^Vs}we659RwIc~S1v&I zY-YhyN!X|fn%ubZ@dv1hVL?LNxH7@GaiJUI$HI+|ll*cPXY%DFXI^}q3p{u@7q~yQ zZmQyW;M=2KhX_Zw4!7eWW35W%Ym@oh&0;ElClhBbBd&`Fe+}<u;zBrt2|;JXd;lt; z3aTLp>!AihumNhJ4mLtPG(aOXK{ITEFhrmQqR<MPVGFduR*1niFrXdc&;i?F2keAh zup9QkUf2gFB!EB?*7ml*1_m4)5Fo(?4^q$xX~;kqbi;n=fnGQOeb5gFVE_)nVK@Ru z;TU9L5RStMI0>g<2!`P_oPiNI3+LcGT!4#k2}a>Ej6n{r_+mca^`t6S9xvX~J&yyP z|7@s`sMkN1d5a&-7v8kZWM>Od^s}>SF<eo;p~n_f*pDu#rRqj0iKMQSW`Yuz3&H*V zr|MnMkNRr5Jtk~IEl2$R9fpy|<vqa&vn6A?@vCanr4==z8$PIz?=Gu>fPNnd*6X*v zYO3p0rHP4Dhf<U(rE@jKQa7g#;Wnkh<bo4vGb#;>Si-Z-1b2yTd)zaSZ!sY~lVZk& z<(OO&k4ekZgRAPLwtp7F`unPC*3+NWVxOdzC6VV4$Md{@<hhgx$&r_^31cq*Gu5~k q*RLbN*nhSz=&PSps~-KLLi+lW8unkUsHV!=baK2alul0GM*9WFd?~H~ -- GitLab