Testhostplaycanvasmobile / 386.bundle.js
kwabs22
puzzle scene and label fix attempts
8dcf070
"use strict";(self.webpackChunkplaycanvas_game=self.webpackChunkplaycanvas_game||[]).push([[386],{386:(e,t,i)=>{i.r(t),i.d(t,{default:()=>n});var o=i(96);const n={id:"industrial_facility",title:"Industrial Facility",type:"scene",async build(e,t,i){console.log("[IndustrialFacility] Building industrial facility...");const n=new o.n(e,e.systems?.core||{});n.sceneBuilder=t,n.entityFactory=i,n.createRoom("entry_hall",{size:[18,5,14],lighting:"industrial",position:[0,0,0],buildFunction:a,objectives:[{id:"facility_entry",name:"Facility Access",description:"Report to the security checkpoint",type:"simple",autoStart:!0,rewards:{experience:25}},{id:"get_facility_badge",name:"Obtain Access Badge",description:"Get security clearance from the checkpoint",type:"simple",rewards:{experience:40,items:[{id:"facility_badge",quantity:1}]}}]}),n.createRoom("control_room",{size:[16,4,12],lighting:"control_room",position:[0,0,0],buildFunction:r,objectives:[{id:"monitor_systems",name:"System Monitoring",description:"Check all facility monitoring stations",type:"counter",target:4,progress:0,rewards:{experience:60},nextObjective:"diagnose_problem"},{id:"diagnose_problem",name:"System Diagnosis",description:"Identify the generator malfunction",type:"simple",prerequisites:["monitor_systems"],rewards:{experience:80,skillPoints:1}}]}),n.createRoom("generator_bay",{size:[25,6,20],lighting:"emergency",position:[0,0,0],buildFunction:s,objectives:[{id:"repair_generator",name:"Generator Repair",description:"Restore primary power systems",type:"sequence",target:["cooling_system","electrical_panel","main_generator"],progress:0,rewards:{experience:120,skillPoints:2}}]}),n.createRoom("maintenance_tunnel",{size:[30,3,8],lighting:"dim",position:[0,0,0],buildFunction:c,objectives:[{id:"emergency_sequence",name:"Emergency Protocol",description:"Execute the facility emergency sequence",type:"sequence",target:["valve_1","valve_2","emergency_release"],progress:0,rewards:{experience:150,skillPoints:3,items:[{id:"facility_override_key",quantity:1}]}}]}),n.createDoor("entry_hall","control_room",{type:"none"},{playerSpawnPosition:[0,0,5]}),n.createDoor("control_room","generator_bay",{type:"none"},{playerSpawnPosition:[0,0,8]}),n.createDoor("generator_bay","maintenance_tunnel",{type:"none"},{playerSpawnPosition:[0,0,3]});const l=await n.build(e,t,i);return l.multiRoom=n,l},onLoad(e,t){console.log("[IndustrialFacility] Facility systems online");const i=e.root.findByTag("scene_root")[0];i&&i.multiRoom&&(i.multiRoom.onLoad(e,t),this.multiRoom=i.multiRoom,this.interactionHandler=i=>{this.handleFacilityInteraction(i,e,t)},this.multiRoom.setSceneInteractionHandler(this.interactionHandler)),e.fire("ui:notification",{text:"Industrial Facility - Critical Systems Failure Detected",type:"error",duration:4e3})},handleFacilityInteraction(e,t,i){const o=i.getSystem("objectivemanager");if("SecurityCheckpoint"===e)o&&o.isObjectiveActive("facility_entry")&&(o.completeObjective("facility_entry"),o.startObjective("get_facility_badge")),t.fire("ui:notification",{text:"Security: Emergency protocols active - Generator failure imminent!",type:"warning",duration:4e3});else if("BadgeDispenser"===e)o&&o.isObjectiveActive("get_facility_badge")&&(this.multiRoom.addItem("facility_badge"),o.completeObjective("get_facility_badge"),t.fire("ui:notification",{text:"Access badge obtained - Control room access granted",type:"success",duration:3e3}));else if(e.startsWith("MonitorStation_")){if("control_room"===this.multiRoom.currentRoom&&o&&o.isObjectiveActive("monitor_systems")){const i=parseInt(e.split("_")[1]),n=["PRIMARY GENERATOR: Critical temperature warning","COOLING SYSTEM: Pump failure detected","ELECTRICAL GRID: Power fluctuations increasing","BACKUP SYSTEMS: Manual activation required"];t.fire("ui:notification",{text:n[i],type:"warning",duration:3e3}),o.updateObjective("monitor_systems")}}else if("DiagnosticConsole"===e)o&&o.isComplete("monitor_systems")&&o.isObjectiveActive("diagnose_problem")&&(o.completeObjective("diagnose_problem"),t.fire("ui:notification",{text:"DIAGNOSIS: Generator cooling failure - Manual repair required",type:"error",duration:4e3}));else if(["CoolingSystem","ElectricalPanel","MainGenerator"].includes(e)){if("generator_bay"===this.multiRoom.currentRoom&&o&&o.isObjectiveActive("repair_generator")){const i={CoolingSystem:"cooling_system",ElectricalPanel:"electrical_panel",MainGenerator:"main_generator"}[e];t.fire("ui:notification",{text:`${i.replace("_"," ")} repaired`,type:"success",duration:2e3}),o.updateObjective("repair_generator",i)}}else if(["Valve1","Valve2","EmergencyRelease"].includes(e)){if("maintenance_tunnel"===this.multiRoom.currentRoom&&o&&o.isObjectiveActive("emergency_sequence")){const i={Valve1:"valve_1",Valve2:"valve_2",EmergencyRelease:"emergency_release"}[e];t.fire("ui:notification",{text:`${i.replace("_"," ")} activated`,type:"info",duration:2e3}),o.updateObjective("emergency_sequence",i)}}else"guard_rodriguez"===e?t.fire("ui:notification",{text:'Guard Rodriguez: "Emergency protocols active - get your badge from the dispenser!"',type:"info",duration:4e3}):"engineer_johnson"===e&&t.fire("ui:notification",{text:'Chief Engineer Johnson: "Generator failure imminent! Check all monitoring stations!"',type:"warning",duration:4e3})},onUnload(e,t){console.log("[IndustrialFacility] Facility shutdown sequence initiated..."),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("[IndustrialFacility] Building entry hall...");const n=i.create("SecurityCheckpoint",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,1,1]},rigidbody:{type:"static"}},position:[0,1,-5],scale:[4,2,2],tags:["interactive","security"]});if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.2,.2,.3),e.emissive=new pc.Color(.1,.1,.2),e.update(),n.model.meshInstances.forEach(t=>t.material=e)}e.addChild(n);const a=i.create("BadgeDispenser",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[.3,.5,.2]},rigidbody:{type:"static"}},position:[2,1,-4],scale:[.6,1,.4],tags:["interactive","dispenser"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.3,.3,.3),e.emissive=new pc.Color(.1,.2,.1),e.update(),a.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(a,"entry_hall");const r=i.createNPC("guard_rodriguez",{position:[-2,0,-4],displayName:"Security Guard Rodriguez",dialogue:{greeting:"Emergency situation! Main generator is failing - we need immediate assistance.",topics:{emergency:"Power grid instability detected. Control room access requires clearance.",badge:"Get your facility badge from the dispenser - you'll need it for restricted areas.",generator:"Engineering team is overwhelmed. We need someone with technical skills."}}});e.addChild(r);const s=i.create("SafetyEquipment",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[1,1,.5]}},position:[6,1,0],scale:[2,2,1],tags:["equipment"]});if(s.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.8,.6,.2),e.update(),s.model.meshInstances.forEach(t=>t.material=e)}e.addChild(s),[{pos:[0,4,0],color:new pc.Color(.9,.9,.8)},{pos:[-6,4,0],color:new pc.Color(.9,.9,.8)},{pos:[6,4,0],color:new pc.Color(.9,.9,.8)}].forEach((t,o)=>{const n=i.createLight("point",{color:t.color,intensity:1.8,range:10,position:t.pos});e.addChild(n)})}async function r(e,t,i,o){console.log("[IndustrialFacility] Building control room..."),[[-6,1,-4],[6,1,-4],[-6,1,4],[6,1,4]].forEach((e,t)=>{const n=i.create(`MonitorStation_${t}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[1,1,.5]},rigidbody:{type:"static"}},position:e,scale:[2,2,1],tags:["interactive","monitor"]});if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.1,.2,.3),e.emissive=new pc.Color(.1,.3,.5),e.emissiveIntensity=.5,e.update(),n.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(n,"control_room")});const n=i.create("DiagnosticConsole",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,1,1]},rigidbody:{type:"static"}},position:[0,1,0],scale:[4,2,2],tags:["interactive","console"]});if(console.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.3,.3,.4),e.emissive=new pc.Color(.2,.4,.6),e.update(),n.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(n,"control_room");const a=i.createNPC("engineer_johnson",{position:[0,0,3],displayName:"Chief Engineer Johnson",dialogue:{greeting:"Thank goodness you're here! Our monitoring systems are going crazy.",topics:{systems:"Check all four monitoring stations - we need a complete status report.",generator:"Primary generator is overheating. Cooling system failure imminent.",diagnosis:"Use the central console once you've gathered all the data."}}});e.addChild(a);const r=i.createLight("point",{color:new pc.Color(.7,.8,1),intensity:2,range:12,position:[0,3,0]});e.addChild(r)}async function s(e,t,i,o){console.log("[IndustrialFacility] Building generator bay...");const n=i.create("MainGenerator",{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:3,height:4},rigidbody:{type:"static"}},position:[0,2,0],scale:[6,4,6],tags:["interactive","generator"]});if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.5,.5,.5),e.emissive=new pc.Color(.3,.1,.1),e.emissiveIntensity=.3,e.metalness=.8,e.update(),n.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(n,"generator_bay");const a=i.create("CoolingSystem",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,2,1]},rigidbody:{type:"static"}},position:[-8,2,0],scale:[4,4,2],tags:["interactive","cooling"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.3,.5,.7),e.emissive=new pc.Color(.1,.2,.3),e.update(),a.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(a,"generator_bay");const r=i.create("ElectricalPanel",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[1,2,.2]},rigidbody:{type:"static"}},position:[8,2,-6],scale:[2,4,.4],tags:["interactive","panel"]});if(r.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.4,.4,.4),e.emissive=new pc.Color(.2,.2,.1),e.update(),r.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(r,"generator_bay"),[{pos:[0,5,0],color:new pc.Color(1,.3,.3)},{pos:[-8,4,0],color:new pc.Color(1,.3,.3)},{pos:[8,4,0],color:new pc.Color(1,.3,.3)}].forEach((t,o)=>{const n=i.createLight("point",{color:t.color,intensity:1.5,range:8,position:t.pos});e.addChild(n)})}async function c(e,t,i,o){console.log("[IndustrialFacility] Building maintenance tunnel...");const n=i.create("Valve1",{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:.5,height:.3},rigidbody:{type:"static"}},position:[-10,1.5,0],scale:[1,.6,1],tags:["interactive","valve"]}),a=i.create("Valve2",{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:.5,height:.3},rigidbody:{type:"static"}},position:[0,1.5,0],scale:[1,.6,1],tags:["interactive","valve"]}),r=i.create("EmergencyRelease",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[.5,.5,.3]},rigidbody:{type:"static"}},position:[10,1.5,0],scale:[1,1,.6],tags:["interactive","release"]});if([n,a].forEach(e=>{if(e.model){const t=new pc.StandardMaterial;t.diffuse=new pc.Color(.6,.3,.1),t.metalness=.9,t.update(),e.model.meshInstances.forEach(e=>e.material=t)}o.addEntityToRoom(e,"maintenance_tunnel")}),r.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.8,.2,.2),e.emissive=new pc.Color(.2,.05,.05),e.update(),r.model.meshInstances.forEach(t=>t.material=e)}o.addEntityToRoom(r,"maintenance_tunnel"),[[-12,2.5,0],[-8,2.5,0],[-4,2.5,0],[4,2.5,0],[8,2.5,0],[12,2.5,0]].forEach((t,o)=>{const n=i.create(`Pipe_${o}`,{components:{model:{type:"cylinder"},collision:{type:"cylinder",radius:.2,height:.5}},position:t,rotation:[0,0,90],scale:[.4,1,.4],tags:["pipe"]});if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.4,.4,.4),e.metalness=.8,e.update(),n.model.meshInstances.forEach(t=>t.material=e)}e.addChild(n)}),[{pos:[-10,2.8,0],color:new pc.Color(.8,.8,.6)},{pos:[0,2.8,0],color:new pc.Color(.8,.8,.6)},{pos:[10,2.8,0],color:new pc.Color(.8,.8,.6)}].forEach((t,o)=>{const n=i.createLight("point",{color:t.color,intensity:1,range:6,position:t.pos});e.addChild(n)})}}}]);