Testhostplaycanvasmobile / 713.bundle.js
kwabs22
Added latest updates
3463977
"use strict";(self.webpackChunkplaycanvas_game=self.webpackChunkplaycanvas_game||[]).push([[713],{713:(e,t,o)=>{o.r(t),o.d(t,{default:()=>a});var i=o(96);const a={id:"data_center",title:"Corporate Data Center",type:"scene",async build(e,t,o){console.log("[DataCenter] Building corporate data center...");const a=new i.n(e,e.systems?.core);a.sceneBuilder=t,a.entityFactory=o,this.securityLevel="HIGH",this.detectionTimer=null,a.createRoom("reception_lobby",{size:[20,4,16],lighting:"corporate",position:[0,0,0],buildFunction:n,objectives:[{id:"infiltration_start",name:"Corporate Infiltration",description:"Gain access to the corporate data systems",type:"simple",autoStart:!0,rewards:{experience:30}},{id:"social_engineer",name:"Social Engineering",description:"Obtain security credentials from reception",type:"simple",rewards:{experience:50,items:[{id:"temp_badge",quantity:1}]}}]}),a.createRoom("technical_floor",{size:[35,5,25],lighting:"technical",position:[0,0,0],buildFunction:s,objectives:[{id:"network_mapping",name:"Network Reconnaissance",description:"Map the internal network infrastructure",type:"counter",target:6,progress:0,autoStart:!0,rewards:{experience:80},nextObjective:"bypass_firewall"},{id:"bypass_firewall",name:"Firewall Bypass",description:"Exploit network vulnerabilities to gain system access",type:"simple",prerequisites:["network_mapping"],rewards:{experience:120,skillPoints:2,items:[{id:"network_access",quantity:1}]}}]}),a.createRoom("server_core",{size:[30,8,20],lighting:"server_room",position:[0,0,0],buildFunction:r,objectives:[{id:"data_extraction",name:"Corporate Espionage",description:"Extract sensitive corporate intelligence",type:"sequence",target:["database_access","encryption_bypass","data_download"],progress:0,rewards:{experience:200,skillPoints:4}}]}),a.createRoom("executive_vault",{size:[18,6,14],lighting:"vault",position:[0,0,0],buildFunction:c,objectives:[{id:"executive_files",name:"Executive Intelligence",description:"Access the most classified corporate documents",type:"simple",rewards:{experience:300,skillPoints:5,items:[{id:"classified_docs",quantity:1}]}}]}),a.createDoor("reception_lobby","technical_floor",{type:"keycard",item:"temp_badge"},{playerSpawnPosition:[-12,0,0]}),a.createDoor("technical_floor","server_core",{type:"objective",id:"bypass_firewall"},{playerSpawnPosition:[0,0,8]}),a.createDoor("server_core","executive_vault",{type:"objective",id:"data_extraction"},{playerSpawnPosition:[0,0,5]});const l=await a.build(e,t,o);return l.multiRoom=a,l},onLoad(e,t){console.log("[DataCenter] Corporate systems online - Security Level: HIGH");const o=e.root.findByTag("scene_root")[0];o&&o.multiRoom&&(o.multiRoom.onLoad(e,t),this.multiRoom=o.multiRoom,this.interactionHandler=o=>{this.handleDataCenterInteraction(o,e,t)},this.multiRoom.setSceneInteractionHandler(this.interactionHandler)),e.fire("ui:notification",{text:"INFILTRATION ACTIVE: Corporate espionage mission commenced",type:"info",duration:4e3})},handleDataCenterInteraction(e,t,o){console.log("[DataCenter] Interaction triggered with:",e);const i=o.getSystem("objectivemanager");if("ReceptionDesk"===e)i.isObjectiveActive("infiltration_start")&&(i.completeObjective("infiltration_start"),i.startObjective("social_engineer")),t.fire("ui:notification",{text:'Receptionist: "Welcome to SecureCorp! Are you here for the IT consultation?"',type:"info",duration:4e3});else if("BadgePrinter"===e)i.isObjectiveActive("social_engineer")&&(this.multiRoom.addItem("temp_badge"),i.completeObjective("social_engineer"),t.fire("ui:notification",{text:"Temporary security badge obtained - Technical floor access granted",type:"success",duration:3e3}));else if(e.startsWith("NetworkTerminal_")){const o=this.multiRoom.currentRoom;if(console.log(`[DataCenter] NetworkTerminal interaction - Room: ${o}, network_mapping active: ${i.isObjectiveActive("network_mapping")}`),"technical_floor"===o&&i.isObjectiveActive("network_mapping")){const o=parseInt(e.split("_")[1]),a=["Database cluster: 10.0.1.0/24","Executive subnet: 192.168.100.0/24","DMZ services: 172.16.0.0/16","Backup systems: 10.0.2.0/24","Security monitoring: 192.168.200.0/24","Administrative tools: 10.0.3.0/24"];t.fire("ui:notification",{text:`Network scan: ${a[o]}`,type:"info",duration:2500}),i.updateObjective("network_mapping"),i.isComplete("network_mapping")&&(i.startObjective("bypass_firewall"),t.fire("ui:notification",{text:"Network mapping complete - Firewall bypass available",type:"success",duration:3e3}))}}else if("FirewallConsole"===e)i.isComplete("network_mapping")&&i.isObjectiveActive("bypass_firewall")&&(this.multiRoom.addItem("network_access"),i.completeObjective("bypass_firewall"),i.startObjective("data_extraction"),t.fire("ui:notification",{text:"FIREWALL COMPROMISED: Full network access obtained",type:"success",duration:4e3}));else if(["DatabaseServer","EncryptionModule","DownloadTerminal"].includes(e)){if("server_core"===this.multiRoom.currentRoom&&i.isObjectiveActive("data_extraction")){const o={DatabaseServer:"database_access",EncryptionModule:"encryption_bypass",DownloadTerminal:"data_download"}[e],a={database_access:"Database access established",encryption_bypass:"Encryption protocols bypassed",data_download:"Corporate data extraction complete"};t.fire("ui:notification",{text:a[o],type:"success",duration:2500}),i.updateObjective("data_extraction",o)}}else"ExecutiveTerminal"===e&&"executive_vault"===this.multiRoom.currentRoom&&i.isObjectiveActive("executive_files")&&(this.multiRoom.addItem("classified_docs"),i.completeObjective("executive_files"),t.fire("ui:notification",{text:"MISSION COMPLETE: Highest level corporate intelligence acquired",type:"success",duration:5e3}))},onUnload(e,t){console.log("[DataCenter] Disconnecting from corporate systems..."),this.multiRoom&&this.multiRoom.setSceneInteractionHandler(null),this.interactionHandler=null,this.multiRoom&&this.multiRoom.onUnload(e,t)}};async function n(e,t,o,i){console.log("[DataCenter] Building reception lobby...");const a=o.create("ReceptionDesk",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[3,.8,1.5]},rigidbody:{type:"static"}},position:[0,.8,-6],scale:[6,1.6,3],tags:["interactive","reception"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.6,.4,.2),e.update(),a.model.meshInstances.forEach(t=>t.material=e)}e.addChild(a);const n=o.create("BadgePrinter",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[.4,.3,.3]},rigidbody:{type:"static"}},position:[2,1.6,-5.5],scale:[.8,.6,.6],tags:["interactive","printer"]});if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.2,.2,.2),e.emissive=new pc.Color(0,.1,0),e.update(),n.model.meshInstances.forEach(t=>t.material=e)}i.addEntityToRoom(n,"reception_lobby"),[[-6,.5,0],[-3,.5,0],[3,.5,0],[6,.5,0]].forEach((t,i)=>{const a=o.create(`CorporateChair_${i}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[.8,.8,.8]}},position:t,scale:[1.6,1.6,1.6],tags:["furniture"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.3,.3,.4),e.update(),a.model.meshInstances.forEach(t=>t.material=e)}e.addChild(a)});const s=o.createNPC("receptionist_jenny",{position:[0,0,-5],displayName:"Jenny (Receptionist)",dialogue:{greeting:"Hi there! Welcome to SecureCorp Technologies. How can I help you today?",topics:{consultation:"Oh yes, the IT consultation! Let me print you a temporary access badge.",building:"Our technical teams work on the second floor - you'll need a badge for elevator access.",security:"Don't worry about security - our systems are state of the art. Completely impenetrable!"}}});i.addEntityToRoom(s,"reception_lobby"),[{pos:[0,3.5,0],color:new pc.Color(.9,.9,.85)},{pos:[-8,3.5,0],color:new pc.Color(.9,.9,.85)},{pos:[8,3.5,0],color:new pc.Color(.9,.9,.85)}].forEach((t,i)=>{const a=o.createLight("point",{color:t.color,intensity:1.8,range:10,position:t.pos});e.addChild(a)})}async function s(e,t,o,i){console.log("[DataCenter] Building technical floor..."),[[-14,1,-10],[-7,1,-10],[7,1,-10],[14,1,-10],[-10,1,10],[10,1,10]].forEach((e,t)=>{const a=o.create(`NetworkTerminal_${t}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[1,1,.5]},rigidbody:{type:"static"}},position:e,scale:[2,2,1],tags:["interactive","terminal"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.1,.1,.1),e.emissive=new pc.Color(0,.2,.1),e.emissiveIntensity=.5,e.update(),a.model.meshInstances.forEach(t=>t.material=e)}i.addEntityToRoom(a,"technical_floor")});const a=o.create("FirewallConsole",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,1.5,1]},rigidbody:{type:"static"}},position:[0,1.5,0],scale:[4,3,2],tags:["interactive","firewall"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.3,.1,.1),e.emissive=new pc.Color(.4,.1,.1),e.emissiveIntensity=.6,e.update(),a.model.meshInstances.forEach(t=>t.material=e)}i.addEntityToRoom(a,"technical_floor"),[[-10,1.5,-5],[-10,1.5,5],[10,1.5,-5],[10,1.5,5]].forEach((t,i)=>{const a=o.create(`NetworkRack_${i}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[1,1.5,.5]}},position:t,scale:[2,3,1],tags:["equipment"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.2,.2,.2),e.emissive=new pc.Color(.1,.1,.05),e.update(),a.model.meshInstances.forEach(t=>t.material=e)}e.addChild(a)});const n=o.createNPC("it_admin_david",{position:[5,0,-3],displayName:"David (IT Admin)",dialogue:{greeting:"Hey, you must be the new security consultant. Pretty impressive setup we have here.",topics:{network:"Our network spans multiple subnets - enterprise grade security throughout.",firewall:"That red console is our main firewall management system. Only senior admins have access.",servers:"The real magic happens in the server core - that's where all our critical data lives."}}});i.addEntityToRoom(n,"technical_floor"),[{pos:[0,4.5,0],color:new pc.Color(.8,.9,1)},{pos:[-12,4.5,0],color:new pc.Color(.8,.9,1)},{pos:[12,4.5,0],color:new pc.Color(.8,.9,1)}].forEach((t,i)=>{const a=o.createLight("point",{color:t.color,intensity:2,range:12,position:t.pos});e.addChild(a)})}async function r(e,t,o,i){console.log("[DataCenter] Building server core...");const a=o.create("DatabaseServer",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,2.5,1]},rigidbody:{type:"static"}},position:[-8,2.5,0],scale:[4,5,2],tags:["interactive","database"]}),n=o.create("EncryptionModule",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[1.5,2,1]},rigidbody:{type:"static"}},position:[0,2,0],scale:[3,4,2],tags:["interactive","encryption"]}),s=o.create("DownloadTerminal",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,1.5,.8]},rigidbody:{type:"static"}},position:[8,1.5,0],scale:[4,3,1.6],tags:["interactive","download"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.2,.4,.6),e.emissive=new pc.Color(.1,.2,.3),e.update(),a.model.meshInstances.forEach(t=>t.material=e)}if(n.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.6,.3,.1),e.emissive=new pc.Color(.3,.15,.05),e.update(),n.model.meshInstances.forEach(t=>t.material=e)}if(s.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.1,.5,.2),e.emissive=new pc.Color(.05,.25,.1),e.update(),s.model.meshInstances.forEach(t=>t.material=e)}i.addEntityToRoom(a,"server_core"),i.addEntityToRoom(n,"server_core"),i.addEntityToRoom(s,"server_core"),[[-12,2,-8],[-4,2,-8],[4,2,-8],[12,2,-8],[-12,2,8],[-4,2,8],[4,2,8],[12,2,8]].forEach((t,i)=>{const a=o.create(`ServerArray_${i}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2,2,1]}},position:t,scale:[4,4,2],tags:["server"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.1,.1,.1),e.emissive=new pc.Color(.05,.1,.05),e.emissiveIntensity=.3,e.update(),a.model.meshInstances.forEach(t=>t.material=e)}e.addChild(a)}),[{pos:[0,7.5,0],color:new pc.Color(.6,.8,1)},{pos:[-10,6,0],color:new pc.Color(.6,.8,1)},{pos:[10,6,0],color:new pc.Color(.6,.8,1)}].forEach((t,i)=>{const a=o.createLight("point",{color:t.color,intensity:2.2,range:15,position:t.pos});e.addChild(a)})}async function c(e,t,o,i){console.log("[DataCenter] Building executive vault...");const a=o.create("ExecutiveTerminal",{components:{model:{type:"box"},collision:{type:"box",halfExtents:[2.5,2,1.5]},rigidbody:{type:"static"}},position:[0,2,-5],scale:[5,4,3],tags:["interactive","executive"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.4,.2,.6),e.emissive=new pc.Color(.2,.1,.3),e.emissiveIntensity=.7,e.metalness=.8,e.update(),a.model.meshInstances.forEach(t=>t.material=e)}i.addEntityToRoom(a,"executive_vault"),[[-6,1.5,0],[6,1.5,0],[-6,1.5,4],[6,1.5,4]].forEach((t,i)=>{const a=o.create(`SecureStorage_${i}`,{components:{model:{type:"box"},collision:{type:"box",halfExtents:[1.5,1.5,1]}},position:t,scale:[3,3,2],tags:["storage"]});if(a.model){const e=new pc.StandardMaterial;e.diffuse=new pc.Color(.6,.6,.7),e.metalness=.9,e.update(),a.model.meshInstances.forEach(t=>t.material=e)}e.addChild(a)}),[{pos:[0,5.5,0],color:new pc.Color(1,.9,.7)},{pos:[-6,4.5,0],color:new pc.Color(1,.9,.7)},{pos:[6,4.5,0],color:new pc.Color(1,.9,.7)}].forEach((t,i)=>{const a=o.createLight("point",{color:t.color,intensity:1.8,range:10,position:t.pos});e.addChild(a)})}}}]);