|
|
@@ -1,7 +1,7 @@ |
|
|
|
define([ |
|
|
|
|
|
|
|
'../config/eventPhases/phaseTemplate' |
|
|
|
], function( |
|
|
|
|
|
|
|
phaseTemplate |
|
|
|
) { |
|
|
|
return { |
|
|
|
configs: null, |
|
|
@@ -19,7 +19,7 @@ define([ |
|
|
|
return; |
|
|
|
|
|
|
|
this.configs = extend(true, [], configs); |
|
|
|
this.configs.forEach(c => (c.ttl = 10)); |
|
|
|
this.configs.forEach(c => (c.ttl = 5)); |
|
|
|
}, |
|
|
|
|
|
|
|
update: function() { |
|
|
@@ -30,8 +30,10 @@ define([ |
|
|
|
var cLen = configs.length; |
|
|
|
for (var i = 0; i < cLen; i++) { |
|
|
|
var c = configs[i]; |
|
|
|
if (c.event) |
|
|
|
if (c.event) { |
|
|
|
this.updateEvent(c.event); |
|
|
|
continue; |
|
|
|
} |
|
|
|
else if (c.ttl > 0) { |
|
|
|
c.ttl--; |
|
|
|
continue; |
|
|
@@ -42,7 +44,54 @@ define([ |
|
|
|
}, |
|
|
|
|
|
|
|
startEvent: function(config) { |
|
|
|
return {}; |
|
|
|
var event = { |
|
|
|
config: config, |
|
|
|
phases: [], |
|
|
|
nextPhase: 0 |
|
|
|
}; |
|
|
|
|
|
|
|
return event; |
|
|
|
}, |
|
|
|
|
|
|
|
updateEvent: function(event) { |
|
|
|
var currentPhases = event.phases; |
|
|
|
var cLen = currentPhases.length; |
|
|
|
var stillBusy = false; |
|
|
|
for (var i = 0; i < cLen; i++) { |
|
|
|
var phase = currentPhases[i]; |
|
|
|
if (phase.end) |
|
|
|
continue |
|
|
|
else { |
|
|
|
stillBusy = true; |
|
|
|
phase.update(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (stillBusy) |
|
|
|
return; |
|
|
|
|
|
|
|
var config = event.config; |
|
|
|
|
|
|
|
var phases = config.phases; |
|
|
|
var pLen = phases.length; |
|
|
|
for (var i = event.nextPhase; i < pLen; i++) { |
|
|
|
var p = phases[i]; |
|
|
|
|
|
|
|
var phaseFile = 'phase' + p.type[0].toUpperCase() + p.type.substr(1); |
|
|
|
var typeTemplate = require('config/eventPhases/' + phaseFile); |
|
|
|
var phase = extend(true, { |
|
|
|
instance: this.instance |
|
|
|
}, phaseTemplate, typeTemplate, p); |
|
|
|
|
|
|
|
event.phases.push(phase); |
|
|
|
|
|
|
|
phase.init(); |
|
|
|
|
|
|
|
event.nextPhase = i + 1; |
|
|
|
|
|
|
|
if (!p.auto) |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}); |