59 lines
2.5 KiB
JavaScript
59 lines
2.5 KiB
JavaScript
(function (realWindow) {
|
|
const subgameControllerKey = '_______subgame_func';
|
|
const subGameKey = '"%{subgame_key}"';
|
|
|
|
let subGameWindow;
|
|
let subgameMain;
|
|
let propertyBackup = {};
|
|
let Loki = realWindow['Loki'] || { pushLog: () => { realWindow.cc.log() } };
|
|
|
|
realWindow[subgameControllerKey] = realWindow[subgameControllerKey] || {};
|
|
realWindow[subgameControllerKey][subGameKey] = {
|
|
init: () => {
|
|
Loki.pushLog(`SubgameController[${subGameKey}]: init`);
|
|
const cc = realWindow.cc;
|
|
const sg = realWindow.sg;
|
|
const window = subGameWindow = { cc, sg };
|
|
|
|
"%{subgame_content}"
|
|
|
|
subgameMain = window['SubGameMain'];
|
|
return subgameMain;
|
|
},
|
|
|
|
load: () => {
|
|
Loki.pushLog(`SubgameController[${subGameKey}]: load`);
|
|
if (!propertyBackup['collisionMatrix']) {
|
|
Loki.pushLog(`SubgameController[${subGameKey}]: property backup, collisionMatrix = ${JSON.stringify(cc.game['collisionMatrix'])}`);
|
|
|
|
propertyBackup['collisionMatrix'] = cc.game['collisionMatrix'];
|
|
cc.game['collisionMatrix'] = "%{subgame_collision_matrix}";
|
|
}
|
|
|
|
if (!propertyBackup['groupList']) {
|
|
Loki.pushLog(`SubgameController[${subGameKey}]: property backup, groupList = ${JSON.stringify(cc.game['groupList'])}`);
|
|
|
|
propertyBackup['groupList'] = cc.game['groupList'];
|
|
cc.game['groupList'] = "%{subgame_group_list}";
|
|
}
|
|
},
|
|
|
|
destroy: () => {
|
|
Loki.pushLog(`SubgameController[${subGameKey}]: destroy`);
|
|
if (propertyBackup['collisionMatrix']) {
|
|
Loki.pushLog(`SubgameController[${subGameKey}]: property restore, collisionMatrix = ${JSON.stringify(propertyBackup['collisionMatrix'])}`);
|
|
cc.game['collisionMatrix'] = propertyBackup['collisionMatrix'];
|
|
propertyBackup['collisionMatrix'] = null;
|
|
}
|
|
|
|
if (propertyBackup['groupList']) {
|
|
Loki.pushLog(`SubgameController[${subGameKey}]: property restore, groupList = ${JSON.stringify(propertyBackup['groupList'])}`);
|
|
cc.game['groupList'] = propertyBackup['groupList'];
|
|
propertyBackup['groupList'] = null;
|
|
}
|
|
},
|
|
|
|
main: () => { return subgameMain },
|
|
window: () => { return subGameWindow }
|
|
}
|
|
})(window); |