Browse Source

Merge branch 'master' of erinn.io:netsim

cecylia 8 years ago
parent
commit
15dda0c18c
4 changed files with 20 additions and 6 deletions
  1. 8 1
      js/bindings.js
  2. 3 0
      js/ui.js
  3. 9 3
      phaser.inc.php
  4. 0 2
      todo

+ 8 - 1
js/bindings.js

@@ -76,6 +76,13 @@ function btnEdit() {
 
 
 function btnLaunch() {
 function btnLaunch() {
 	var pkt = playerPackets[this.launcherIndex];
 	var pkt = playerPackets[this.launcherIndex];
-	doPacketAnimation(pkt.from, getDefaultRecipient(pkt.from), pkt.payload);
+
+	if (pkt.hasOwnProperty("repeat") && pkt.repeat > 1) {
+		for (var i = 0; i < pkt.repeat; i++) {
+			game.time.events.add( 100 * i, playPacket, pkt );
+		}
+	} else {
+		doPacketAnimation(pkt.from, getDefaultRecipient(pkt.from), pkt.payload);
+	}
 }
 }
 
 

+ 3 - 0
js/ui.js

@@ -58,6 +58,8 @@ function createPacketEditor(index, packet) {
 		str += "</fieldset>";
 		str += "</fieldset>";
 	}
 	}
 
 
+	str += "<p>Repeat: <input type=\"text\" id=\"repeat\" style=\"width:40px;\" value=\""+(packet.hasOwnProperty("repeat") ? packet.repeat : 1)+"\"></p>";
+
 	$("#editor").html(str);
 	$("#editor").html(str);
 	$('#editor').dialog({
 	$('#editor').dialog({
 		title: index < 0 ? "Add packet" : "Update packet",
 		title: index < 0 ? "Add packet" : "Update packet",
@@ -71,6 +73,7 @@ function createPacketEditor(index, packet) {
 function updatePlayerPacket(index) {
 function updatePlayerPacket(index) {
 	playerPackets[index] = {
 	playerPackets[index] = {
 		from: $("#pktFrom").val(),
 		from: $("#pktFrom").val(),
+		repeat: $("#repeat").val(),
 		payload:{}
 		payload:{}
 	};
 	};
 
 

+ 9 - 3
phaser.inc.php

@@ -144,11 +144,14 @@ function getPortRecipient(from, portNum) {
 function update() {
 function update() {
 }
 }
 
 
+var levelOver = false;
 function donePacket() {
 function donePacket() {
 	this.kill();
 	this.kill();
 	var youWin = true;
 	var youWin = true;
 
 
 	for (var i = 0; i < level.triggers.length; i++) {
 	for (var i = 0; i < level.triggers.length; i++) {
+		if (level.triggers[i].hasOwnProperty("times")) level.triggers[i].times--;
+
 		if (satisfiesTrigger(this, level.triggers[i])) {
 		if (satisfiesTrigger(this, level.triggers[i])) {
 			level.triggers[i].completed = true;
 			level.triggers[i].completed = true;
 		}
 		}
@@ -156,7 +159,8 @@ function donePacket() {
 		if (!level.triggers[i].hasOwnProperty("completed")) youWin = false;
 		if (!level.triggers[i].hasOwnProperty("completed")) youWin = false;
 	}
 	}
 
 
-	if (youWin) {
+	if (!levelOver && youWin) {
+		levelOver = true;
 		$.get("./solns.ajax.php?level="+levelid+"&method=win");
 		$.get("./solns.ajax.php?level="+levelid+"&method=win");
 		$("#winner").dialog({
 		$("#winner").dialog({
 			title:"You win!",
 			title:"You win!",
@@ -173,10 +177,10 @@ function donePacket() {
 
 
 function satisfiesTrigger(pkt, t) {
 function satisfiesTrigger(pkt, t) {
 	if (pkt.dst != t.device) return false;
 	if (pkt.dst != t.device) return false;
-	if (!t.hasOwnProperty("payload")) return true;
+	if (!t.hasOwnProperty("payload") && !t.hasOwnProperty("times")) return true;
 	if (!pkt.hasOwnProperty("payload")) return false;
 	if (!pkt.hasOwnProperty("payload")) return false;
 
 
-	var layers = Object.keys(t.payload);
+	var layers = t.hasOwnProperty("payload") ? Object.keys(t.payload) : [];
 	for (var i = 0; i < layers.length; i++) {
 	for (var i = 0; i < layers.length; i++) {
 		if (!pkt.payload.hasOwnProperty(layers[i])) return false;
 		if (!pkt.payload.hasOwnProperty(layers[i])) return false;
 
 
@@ -187,6 +191,8 @@ function satisfiesTrigger(pkt, t) {
 		}
 		}
 	}
 	}
 
 
+	if (t.hasOwnProperty("times") && t.times > 0) return false;
+
 	return true;
 	return true;
 }
 }
 
 

+ 0 - 2
todo

@@ -5,11 +5,9 @@ blocking
 - convert triggers in level files to arrays
 - convert triggers in level files to arrays
 - update nextLevel in each file
 - update nextLevel in each file
 - update "you win" dialog to handle no nextLevel property
 - update "you win" dialog to handle no nextLevel property
-- process timing triggers
 - prettier level listing
 - prettier level listing
 - resize game on resize viewport (attempt at this at top of ui.js but it's laggy)
 - resize game on resize viewport (attempt at this at top of ui.js but it's laggy)
 - 'repeat' packet property
 - 'repeat' packet property
-- prevent launcher click-spamming?
 - device scripts (?list)
 - device scripts (?list)
 - method to work on test levels
 - method to work on test levels
 - hosted version on DO
 - hosted version on DO