|
|
"use strict";(self.webpackChunkplaycanvas_game=self.webpackChunkplaycanvas_game||[]).push([[420],{420:(e,t,i)=>{i.r(t),i.d(t,{default:()=>n});var o=i(96);const n={id:"quantum_lab",title:"Quantum Research Laboratory",type:"scene",async build(e,t,i){console.log("[QuantumLab] Building quantum research laboratory...");const n=new o.n(e,e.systems?.core||{});n.sceneBuilder=t,n.entityFactory=i,this.powerLevel=100,this.startTime=null,n.createRoom("entrance_chamber",{size:[18,5,14],lighting:"quantum",position:[0,0,0],buildFunction:a,objectives:[{id:"quantum_breach",name:"Quantum Containment Breach",description:"Investigate quantum field containment failure",type:"simple",autoStart:!0,rewards:{experience:30}},{id:"power_analysis",name:"Power Grid Analysis",description:"Analyze quantum power distribution systems",type:"simple",rewards:{experience:50,items:[{id:"power_diagnostics",quantity:1}]}}]}),n.createRoom("laser_grid_hall",{size:[30,6,12],lighting:"laser_grid",position:[0,0,0],buildFunction:r,objectives:[{id:"disable_security_grid",name:"Security Grid Deactivation",description:"Disable laser security grid in correct sequence",type:"sequence",target:["laser_node_1","laser_node_2","laser_node_3","master_grid"],progress:0,rewards:{experience:120}}]}),n.createRoom("containment_lab",{size:[25,7,20],lighting:"containment",position:[0,0,0],buildFunction:s,objectives:[{id:"stabilize_experiments",name:"Quantum Stabilization",description:"Stabilize failing quantum containment fields",type:"counter",target:6,progress:0,rewards:{experience:150,skillPoints:3}}]}),n.createRoom("power_core",{size:[20,8,16],lighting:"power_core",position:[0,0,0],buildFunction:c,objectives:[{id:"electromagnetic_override",name:"Electromagnetic Override",description:"Override quantum field generators to restore containment",type:"sequence",target:["field_generator_1","field_generator_2","quantum_core","containment_matrix"],progress:0,rewards:{experience:250,skillPoints:5,items:[{id:"quantum_stabilizer",quantity:1}]}}]}),n.createDoor("entrance_chamber","laser_grid_hall",{type:"keycard",item:"power_diagnostics"},{playerSpawnPosition:[-12,0,0]}),n.createDoor("laser_grid_hall","containment_lab",{type:"objective",id:"disable_security_grid"},{playerSpawnPosition:[0,0,8]}),n.createDoor("containment_lab","power_core",{type:"objective",id:"stabilize_experiments"},{playerSpawnPosition:[0,0,6]});const l=await n.build(e,t,i);return l.multiRoom=n,l},onLoad(e,t){console.log("[QuantumLab] Quantum field generators online - Power fluctuations detected");const i=e.root.findByTag("scene_root")[0];i&&i.multiRoom&&(i.multiRoom.onLoad(e,t),this.multiRoom=i.multiRoom,this.interactionHandler=i=>{this.handleQuantumInteraction(i,e,t)},this.multiRoom.setSceneInteractionHandler(this.interactionHandler),this.startTime=Date.now(),this.setupPowerSystem(e)),e.fire("ui:notification",{text:"QUANTUM BREACH: Containment field destabilization detected",type:"error",duration:4e3})},setupPowerSystem(e){this.powerInterval=setInterval(()=>{this.powerLevel=Math.max(20,this.powerLevel-2),this.powerLevel<=50&&e.fire("ui:notification",{text:`POWER CRITICAL: ${this.powerLevel}% - Barriers destabilizing`,type:"warning",duration:2e3})},1e4)},handleQuantumInteraction(e,t,i){console.log("[QuantumLab] Quantum interaction with:",e);const o=i.getSystem("objectivemanager");if("PowerDiagnostic"===e)o&&o.isObjectiveActive("quantum_breach")&&(o.completeObjective("quantum_breach"),o.startObjective("power_analysis")),t.fire("ui:notification",{text:"ANALYSIS: Quantum field resonance cascade detected",type:"warning",duration:4e3});else if("PowerGridAnalyzer"===e)o&&o.isObjectiveActive("power_analysis")&&(this.multiRoom.addItem("power_diagnostics"),o.completeObjective("power_analysis"),t.fire("ui:notification",{text:"Power diagnostics complete - Laser grid access enabled",type:"success",duration:3e3}));else if(e.startsWith("LaserNode_")){if("laser_grid_hall"===this.multiRoom.currentRoom&&o&&o.isObjectiveActive("disable_security_grid")){const i=parseInt(e.split("_")[2]),n=["laser_node_1","laser_node_2","laser_node_3"];this.createEnergyWall(i,!1),t.fire("ui:notification",{text:`Laser Node ${i+1} deactivated - Energy barrier offline`,type:"success",duration:2500}),o.updateObjective("disable_security_grid",n[i])}}else if("MasterGridControl"===e){if("laser_grid_hall"===this.multiRoom.currentRoom&&o){const e=o.getObjective("disable_security_grid");e&&3===e.progress&&(this.createEnergyWall("master",!1),t.fire("ui:notification",{text:"LASER GRID OFFLINE: Containment lab access granted",type:"success",duration:4e3}),o.updateObjective("disable_security_grid","master_grid"))}}else if(e.startsWith("ContainmentField_")){if("containment_lab"===this.multiRoom.currentRoom&&o&&o.isObjectiveActive("stabilize_experiments")){const i=parseInt(e.split("_")[2]),n=["Quantum entanglement matrix","Particle acceleration chamber","Dimensional fold generator","Temporal flux capacitor","Dark matter containment","Quantum foam stabilizer"];t.fire("ui:notification",{text:`${n[i]} stabilized`,type:"success",duration:2e3}),o.updateObjective("stabilize_experiments")}}else if(["FieldGenerator1","FieldGenerator2","QuantumCore","ContainmentMatrix"].includes(e)&&"power_core"===this.multiRoom.currentRoom&&o&&o.isObjectiveActive("electromagnetic_override")){const i={FieldGenerator1:"field_generator_1",FieldGenerator2:"field_generator_2",QuantumCore:"quantum_core",ContainmentMatrix:"containment_matrix"}[e];t.fire("ui:notification",{text:`${i.replace("_"," ")} synchronized`,type:"success",duration:2e3}),o.updateObjective("electromagnetic_override",i)}},createEnergyWall(e,t=!0){const i={0:[-8,1.5,0],1:[0,1.5,0],2:[8,1.5,0],master:[0,1.5,-5]}[e];if(!i)return;const o=this.app.root.findByName(`EnergyWall_${e}`);if(t){if(!o){const t=this.multiRoom.entityFactory.create(`EnergyWall_${e}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[.2,3,4]},rigidbody:{type:"static"}},position:i,scale:[.4,6,8],tags:["energy_wall","impassable"]});if(t.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(1,.2,.2),e.emissive=new pc.Color(.8,.1,.1),e.emissiveIntensity=1,e.opacity=.7,e.blendType=pc.BLEND_NORMAL,e.update(),t.model.meshInstances.forEach(t=>t.material=e)}multiRoom.addEntityToRoom(t,this.multiRoom.currentRoom)}}else o&&o.destroy()},onUnload(e,t){console.log("[QuantumLab] Quantum systems shutting down..."),this.powerInterval&&clearInterval(this.powerInterval),this.multiRoom&&this.multiRoom.setSceneInteractionHandler(null),this.interactionHandler=null,this.multiRoom&&this.multiRoom.onUnload(e,t)}};async function a(e,t,i,o){console.log("[QuantumLab] Building entrance chamber...");const n=i.create("PowerDiagnostic",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[1.5,1,.8]},rigidbody:{type:"static"}},position:[0,1,-5],scale:[3,2,1.6],tags:["interactive","diagnostic"]});if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.2,.3,.6),e.emissive=new pc.Color(.1,.2,.4),e.emissiveIntensity=.6,e.update(),n.model.meshInstances.forEach(t=>t.material=e)}e.addChild(n);const a=i.create("PowerGridAnalyzer",{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:1,height:2.5},rigidbody:{type:"static"}},position:[6,1.25,-2],scale:[2,2.5,2],tags:["interactive","analyzer"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.1,.5,.3),e.emissive=new pc.Color(.05,.3,.2),e.update(),a.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(a,"entrance_chamber");const r=i.createNPC("dr_quantum",{position:[-3,0,-3],displayName:"Dr. Helena Quantum",dialogue:{greeting:"The quantum containment fields are destabilizing! We're losing power across all systems.",topics:{breach:"Something triggered a cascade failure - all our experiments are going critical.",laser:"The security grid is still active - you'll need to disable each node in sequence.",power:"Power diagnostics will show you the system status - start there first."}}});o.addEntityToRoom(r,"entrance_chamber"),[{pos:[0,4.5,0],color:new pc.Color(.8,.9,1)},{pos:[-6,4.5,0],color:new pc.Color(.8,.9,1)},{pos:[6,4.5,0],color:new pc.Color(.8,.9,1)}].forEach((t,o)=>{const n=i.createLight("point",{color:t.color,intensity:2,range:10,position:t.pos});e.addChild(n)});const s=i.create("SpawnPoint",{position:[0,1,3],tags:["spawn"]});e.addChild(s)}async function r(e,t,i,o){console.log("[QuantumLab] Building laser grid hall with IMPASSABLE BARRIERS..."),[[-8,1.5,-4],[0,1.5,-4],[8,1.5,-4]].forEach((e,t)=>{const n=i.create(`LaserNode_${t}`,{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:.8,height:2},rigidbody:{type:"static"}},position:e,scale:[1.6,2,1.6],tags:["interactive","laser_node"]});if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(1,.3,.3),e.emissive=new pc.Color(.8,.2,.2),e.emissiveIntensity=.8,e.update(),n.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(n,"laser_grid_hall");const a=i.create(`EnergyWall_${t}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[.2,3,4]},rigidbody:{type:"static"}},position:[e[0],1.5,0],scale:[.4,6,8],tags:["energy_wall","impassable"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(1,.2,.2),e.emissive=new pc.Color(.8,.1,.1),e.emissiveIntensity=1,e.opacity=.7,e.blendType=pc.BLEND_NORMAL,e.update(),a.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(a,"laser_grid_hall")});const n=i.create("MasterGridControl",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,1.5,1]},rigidbody:{type:"static"}},position:[0,1.5,4],scale:[4,3,2],tags:["interactive","master_control"]});if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.6,.2,.8),e.emissive=new pc.Color(.4,.1,.6),e.update(),n.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(n,"laser_grid_hall");const a=i.create("EnergyWall_master",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[12,3,.2]},rigidbody:{type:"static"}},position:[0,1.5,-5],scale:[24,6,.4],tags:["energy_wall","impassable","master_wall"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(1,.1,.1),e.emissive=new pc.Color(1,.05,.05),e.emissiveIntensity=1.2,e.opacity=.8,e.blendType=pc.BLEND_NORMAL,e.update(),a.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(a,"laser_grid_hall"),[{pos:[0,5.5,0],color:new pc.Color(1,.3,.3)},{pos:[-12,5,0],color:new pc.Color(1,.3,.3)},{pos:[12,5,0],color:new pc.Color(1,.3,.3)}].forEach((t,o)=>{const n=i.createLight("point",{color:t.color,intensity:2.2,range:15,position:t.pos});e.addChild(n)})}async function s(e,t,i,o){console.log("[QuantumLab] Building containment laboratory..."),[[-8,1.5,-6],[0,1.5,-6],[8,1.5,-6],[-8,1.5,6],[0,1.5,6],[8,1.5,6]].forEach((e,t)=>{const n=i.create(`ContainmentField_${t}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,2.5,2]},rigidbody:{type:"static"}},position:e,scale:[4,5,4],tags:["interactive","containment"]});if(n.model){const e=new pc.StandardMaterial,i=[new pc.Color(.8,.2,.8),new pc.Color(.2,.8,.8),new pc.Color(.8,.8,.2),new pc.Color(.2,.8,.2),new pc.Color(.8,.2,.2),new pc.Color(.2,.2,.8)];e.diffuse=i[t],e.emissive=new pc.Color(.5*i[t].r,.5*i[t].g,.5*i[t].b),e.emissiveIntensity=.8,e.update(),n.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(n,"containment_lab")}),[{pos:[0,6.5,0],color:new pc.Color(.9,.8,1)},{pos:[-8,5.5,0],color:new pc.Color(.8,.9,1)},{pos:[8,5.5,0],color:new pc.Color(1,.8,.9)}].forEach((t,o)=>{const n=i.createLight("point",{color:t.color,intensity:2.5,range:12,position:t.pos});e.addChild(n)})}async function c(e,t,i,o){console.log("[QuantumLab] Building power core chamber...");const n=i.create("FieldGenerator1",{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:2,height:4},rigidbody:{type:"static"}},position:[-6,2,-6],scale:[4,4,4],tags:["interactive","generator"]}),a=i.create("FieldGenerator2",{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:2,height:4},rigidbody:{type:"static"}},position:[6,2,-6],scale:[4,4,4],tags:["interactive","generator"]}),r=i.create("QuantumCore",{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:3,height:6},rigidbody:{type:"static"}},position:[0,3,0],scale:[6,6,6],tags:["interactive","core"]}),s=i.create("ContainmentMatrix",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[4,2,2]},rigidbody:{type:"static"}},position:[0,2,6],scale:[8,4,4],tags:["interactive","matrix"]});if([n,a].forEach(e=>{if(e.model){const t=new pc.StandardMaterial;t.diffuse=new pc.Color(.3,.6,.9),t.emissive=new pc.Color(.1,.3,.5),t.metalness=.8,t.update(),e.model.meshInstances.forEach(e=>e.material=t)}o.addEntityToRoom(e,"power_core")}),r.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.9,.3,.9),e.emissive=new pc.Color(.6,.2,.6),e.emissiveIntensity=1,e.update(),r.model.meshInstances.forEach(t=>t.material=e)}if(o.addEntityToRoom(r,"power_core"),s.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.2,.8,.3),e.emissive=new pc.Color(.1,.5,.2),e.update(),s.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(s,"power_core");const c=i.createLight("point",{color:new pc.Color(.9,.7,1),intensity:3,range:15,position:[0,7.5,0]});e.addChild(c)}}}]); |