From d3948419b80c0a9f96cb10ffc9651626ed6535af Mon Sep 17 00:00:00 2001
From: Tim Repke <timmothey@gmx.de>
Date: Fri, 21 Aug 2015 23:17:59 +0200
Subject: [PATCH] some fixes and walkon event handler

---
 .../view/signups/game1/js/achievements.js     |   5 +-
 .../view/signups/game1/js/character.js        |  20 ++++---
 .../view/signups/game1/js/events.js           |  26 +++++++++
 .../view/signups/game1/js/game.js             |  24 ++++++---
 .../view/signups/game1/js/pathFinder.js       |  51 ++++++++++++++----
 .../view/signups/game1/maps/map_landing.svg   | Bin 6578996 -> 6579596 bytes
 .../view/signups/game1/test.html              |   3 +-
 7 files changed, 99 insertions(+), 30 deletions(-)
 create mode 100644 registration-system/view/signups/game1/js/events.js

diff --git a/registration-system/view/signups/game1/js/achievements.js b/registration-system/view/signups/game1/js/achievements.js
index 652c349..4db9a05 100644
--- a/registration-system/view/signups/game1/js/achievements.js
+++ b/registration-system/view/signups/game1/js/achievements.js
@@ -56,14 +56,13 @@ Achievements.prototype.triggerAchievement = function (achievementId) {
     if (!this.achievements[achievementId]){
         console.error("No such achievement: " + achievementId);
     }
-    else if (!this.achievedAchievements.indexOf(achievementId) >= 0) {
+    else if (! (this.achievedAchievements.indexOf(achievementId) >= 0)) {
         this.achievedAchievements.push(achievementId);
         this.updateStatusBar();
         this.updateStatusText();
         this.logMessage(this.achievements[achievementId]);
     }
-    else
-        console.warn("Achievement already achieved: " + achievementId);
+    // else console.warn("Achievement already achieved: " + achievementId);
 
     if (this.numCompletedAchievements() === 42 ) this.triggerAchievement('achievement42')
 };
\ No newline at end of file
diff --git a/registration-system/view/signups/game1/js/character.js b/registration-system/view/signups/game1/js/character.js
index 39eea83..14aeab3 100644
--- a/registration-system/view/signups/game1/js/character.js
+++ b/registration-system/view/signups/game1/js/character.js
@@ -28,7 +28,7 @@ Char.prototype.findSpawn = function() {
 	var spawn = this.svg.select("#player_spawn");
 	var bbox = spawn[0][0].getBBox();
 	return Vec.add(getTranslation(this.svg[0][0], spawn[0][0]), [bbox.x, bbox.y]);
-}
+};
 Char.prototype.initializeAnimations = function() {
 	var self = this;
 
@@ -57,7 +57,7 @@ Char.prototype.initializeAnimations = function() {
 
 		self.animations[label] = frames;
 	});
-}
+};
 Char.directionToName = ["UP", "RIGHT", "DOWN", "LEFT"];
 Char.prototype.animate = function() {
 	this.animateStep += 1;
@@ -105,7 +105,7 @@ Char.prototype.animate = function() {
 
 	// show current frame
 	this.frames[this.currentFrame].style.display = 'block';
-}
+};
 Char.prototype.physics = function() {
 	if (this.moveTarget && this.moveTarget.length == 0) return;
 	if (Vec.equals(this.translation, this.moveTarget[0])) {
@@ -126,17 +126,20 @@ Char.prototype.physics = function() {
 	if (this.pathFinder.canWalkOn(nextPosition[0], nextPosition[1]))
 		Vec.assign(this.translation, nextPosition);
 	else
-		this.moveTarget.shift();	
+		this.moveTarget.shift();
+
+	var event = this.pathFinder.getEventOn(nextPosition[0], nextPosition[1]);
+	if (event) Game.eventHandler.handleEvent(event);
 
 	this.updatePosition();
-}
+};
 Char.prototype.updatePosition = function() {
 	if (!this.image) return;
 	var self = this;
 	this.image.attr("transform", function() {
 		return translate.apply(null, self.translation);
 	});
-}
+};
 Char.prototype.setMoveTarget = function(newX, newY) {
 	var matrix = this.svg[0][0].getScreenCTM();
 	var x = newX-matrix.e;
@@ -146,5 +149,8 @@ Char.prototype.setMoveTarget = function(newX, newY) {
 		this.moveTarget = this.pathFinder.smoothPath(this.pathFinder.findPath(this.translation[0], this.translation[1], x, y));
 	else
 		this.moveTarget = [[x, y]];
-}
+};
 
+Char.prototype.stopMovement = function() {
+	this.moveTarget = null;
+};
\ No newline at end of file
diff --git a/registration-system/view/signups/game1/js/events.js b/registration-system/view/signups/game1/js/events.js
new file mode 100644
index 0000000..9f2d168
--- /dev/null
+++ b/registration-system/view/signups/game1/js/events.js
@@ -0,0 +1,26 @@
+function EventHandler() {
+
+}
+
+/**
+ * Receives an event object and handles the necessary actions
+ *
+ * Object has:
+ *   id: svg elem id,
+ *   type: (achievement,...)
+ *   trigger: (walkon, hover, click)
+ *   stopsWalk: (true, false)
+ *
+ * @param event
+ */
+EventHandler.prototype.handleEvent = function (event) {
+    switch (event.type) {
+        case 'achievement':
+            Game.achievements.triggerAchievement(event.id);
+            break;
+    }
+
+    if (event.stopsWalk) {
+        Game.char.stopMovement();
+    }
+};
\ No newline at end of file
diff --git a/registration-system/view/signups/game1/js/game.js b/registration-system/view/signups/game1/js/game.js
index 1378bce..e7c5818 100644
--- a/registration-system/view/signups/game1/js/game.js
+++ b/registration-system/view/signups/game1/js/game.js
@@ -4,7 +4,10 @@ function Game(config) {
 	Game.config = config;
 	Game.instance = this;
 
-	this.achievements = new Achievements();
+	Game.achievements = new Achievements();
+	Game.eventHandler = new EventHandler();
+	Game.char = null;
+	Game.cam  = null;
 }
 Game.eventLayers = ['CLICKABLE', 'WALK', 'NOWALK', 'EVENT'];
 Game.prototype.run = function() {
@@ -17,6 +20,8 @@ Game.prototype.run = function() {
 
 		var svg = d3.select("svg");
 
+		// -------------------------------------
+		// init event related stuff
 		var displayEvents = Game.config.showEventLayers ? 'block' : 'none';
 		svg.selectAll('g').filter(function() {
 			return (
@@ -25,8 +30,11 @@ Game.prototype.run = function() {
 			);
 		}).style('display', displayEvents);
 
-		var char = new Char(svg);
-		var cam = new Camera(svg, char.translation);
+
+		// -------------------------------------
+		// init view stuff
+		Game.char = new Char(svg);
+		Game.cam = new Camera(svg, Game.char.translation);
 
 
 		// test animation
@@ -39,17 +47,17 @@ Game.prototype.run = function() {
 
 		// animate
 		setInterval(function() {
-			if (char.loaded) {
+			if (Game.char.loaded) {
 				// move player
-				char.physics();
-				char.animate();
+				Game.char.physics();
+				Game.char.animate();
 				// cam movement
-				cam.movement();
+				Game.cam.movement();
 			}
 		}, 10);
 
 		svg.on("click", function(d) {
-			char.setMoveTarget(d3.event.pageX, d3.event.pageY);
+			Game.char.setMoveTarget(d3.event.pageX, d3.event.pageY);
 		});
 	});
 
diff --git a/registration-system/view/signups/game1/js/pathFinder.js b/registration-system/view/signups/game1/js/pathFinder.js
index 476b31b..765d746 100644
--- a/registration-system/view/signups/game1/js/pathFinder.js
+++ b/registration-system/view/signups/game1/js/pathFinder.js
@@ -3,12 +3,14 @@ function PathFinder(svg) {
 
 	this.walkNodes = [];
 	this.noWalkNodes = [];
+	this.walkEventNodes = [];
 
 	this.raster = null;
 
 	this.scanWalkables();
 	this.generateRaster();
 }
+
 PathFinder.prototype.scanWalkables = function() {
 	var self = this;
 	this.svg.selectAll('g').each(function(d, i) {
@@ -17,6 +19,8 @@ PathFinder.prototype.scanWalkables = function() {
 			self.walkNode = this;
 		if (!self.noWalkNode && label == "NOWALK")
 			self.noWalkNode = this;
+		if (!self.eventNode && label == "EVENT")
+			self.eventNode = this;
 	});
 	var walkTranslation = getTranslation(this.svg[0][0], this.walkNode);
 	d3.select(self.walkNode).selectAll('path').each(function() {
@@ -26,25 +30,42 @@ PathFinder.prototype.scanWalkables = function() {
 	d3.select(self.noWalkNode).selectAll('path').each(function() {
 		self.noWalkNodes.push(new Path(this.getAttribute("d"), noWalkTranslation));
 	});
-}
+	var eventTranslation = getTranslation(this.svg[0][0], this.eventNode);
+	d3.select(self.eventNode).selectAll('path').each(function() {
+		if (this.getAttribute('trigger') == 'walkon' )
+			self.walkEventNodes.push({
+				path: new Path(this.getAttribute("d"), eventTranslation),
+				id: this.getAttribute('id'),
+				type: this.getAttribute('type'),
+				trigger: 'walkon',
+				stopsWalk: this.getAttribute('stopsWalk') === 'true'
+			});
+	});
+};
+
 PathFinder.prototype.generateRaster = function() {
 	if (!Game.config.usePathFinding) return;
 
 	this.raster = [];
 	var subraster = null;
 
-	var bbox = this.svg[0][0].getBBox()
+	var bbox = this.svg[0][0].getBBox();
 	var ymax = Math.floor(bbox.height/Game.config.pathFindingGridSize);
 	var xmax = Math.floor(bbox.width/Game.config.pathFindingGridSize);
 	for (var y = 0; y < ymax; ++y) {
-		var subraster = this.raster[y] = [];
+		subraster = this.raster[y] = [];
 		for (var x = 0; x < xmax; ++x) {
-			subraster[x] = {walkable: this.canWalkOn(x*Game.config.pathFindingGridSize, y*Game.config.pathFindingGridSize), score: -1, from: null};
+			subraster[x] = {
+				walkable: this.canWalkOn(x*Game.config.pathFindingGridSize, y*Game.config.pathFindingGridSize),
+				score: -1,
+				from: null,
+				event: this.getEventOn(x*Game.config.pathFindingGridSize, y*Game.config.pathFindingGridSize) !== null
+			};
 		}
 	}
-}
+};
 PathFinder.prototype.clearPathScore = function() {
-	var bbox = this.svg[0][0].getBBox()
+	var bbox = this.svg[0][0].getBBox();
 	var ymax = Math.floor(bbox.height/Game.config.pathFindingGridSize);
 	var xmax = Math.floor(bbox.width/Game.config.pathFindingGridSize);
 	for (var y = 0; y < ymax; ++y) {
@@ -55,7 +76,7 @@ PathFinder.prototype.clearPathScore = function() {
 			e.from = null;
 		}
 	}
-}
+};
 PathFinder.prototype.findPath = function(fromX, fromY, toX, toY) {
 	if (!this.canWalkOn(toX, toY))
 		return [];
@@ -116,7 +137,7 @@ PathFinder.prototype.findPath = function(fromX, fromY, toX, toY) {
 	resultPath.unshift([fromX, fromY]);
 
 	return resultPath;
-}
+};
 PathFinder.prototype.smoothPath = function(path) {
 	if (!path || path.length == 0) return [];
 
@@ -133,7 +154,7 @@ PathFinder.prototype.smoothPath = function(path) {
 	resultPath.push(path[path.length-1]);
 
 	return resultPath;
-}
+};
 PathFinder.prototype.isDirectlyReachable = function(fromX, fromY, x, y) {
 	var canWalk = true;
 	for (var i = 0; i < this.walkNodes.length; ++i) {
@@ -151,7 +172,7 @@ PathFinder.prototype.isDirectlyReachable = function(fromX, fromY, x, y) {
 		}
 	}
 	return canWalk;
-}
+};
 PathFinder.prototype.canWalkOn = function(x, y) {
 	var canWalk = false;
 	for (var i = 0; i < this.walkNodes.length; ++i) {
@@ -169,5 +190,13 @@ PathFinder.prototype.canWalkOn = function(x, y) {
 		}
 	}
 	return canWalk;
-}
+};
+PathFinder.prototype.getEventOn = function(x, y) {
+	for (var i = 0; i < this.walkEventNodes.length; ++i) {
+		if (this.walkEventNodes[i].path.isInside(x, y)) {
+			return this.walkEventNodes[i];
+		}
+	}
+	return null;
+};
 
diff --git a/registration-system/view/signups/game1/maps/map_landing.svg b/registration-system/view/signups/game1/maps/map_landing.svg
index 1a8aab377a107bb32dc8ef82fa31f91fb6a3f920..6c404dc27e6ae00bed65a18d449783ca0fc8adf1 100644
GIT binary patch
delta 34928
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

delta 41642
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

diff --git a/registration-system/view/signups/game1/test.html b/registration-system/view/signups/game1/test.html
index 0065a1d..12a1a81 100644
--- a/registration-system/view/signups/game1/test.html
+++ b/registration-system/view/signups/game1/test.html
@@ -7,6 +7,7 @@
 <script src="jslib/priority-queue.min.js" type="text/javascript"></script>
 <script src="jslib/checkLineIntersection.js" type="text/javascript"></script>
 <script src="../../js/api.js" type="text/javascript"></script>
+<script src="js/events.js" type="text/javascript"></script>
 <script src="js/achievements.js" type="text/javascript"></script>
 <script src="js/svgUtils.js" type="text/javascript"></script>
 <script src="js/pathFinder.js" type="text/javascript"></script>
@@ -54,7 +55,7 @@ FAPI.methodBasepath = '';
 
 var game = new Game({
 	startMap: 'map_landing.svg',
-	showEventLayers: false,
+	showEventLayers: UrlComponents.isSet('showEL'),
 	pathFindingGridSize: 5,
 	usePathFinding: true,
 	size: [800, 600]
-- 
GitLab