public void init(List<int> para_charIDsToUnlockInWorld, int[] para_mapSize, GridProperties para_gPropMapWorldBounds, ColoredNavGraph para_worldNavGraph, ITerrainHandler para_terrHandle) { charIDsToUnlockInWorld = para_charIDsToUnlockInWorld; mapSize = para_mapSize; gPropMapWorldBounds = para_gPropMapWorldBounds; worldNavGraph = para_worldNavGraph; terrainHandle = para_terrHandle; performInitialDelay(); }
public void init(int[] para_mapSize, GridProperties para_gPropMapWorldBounds, ColoredNavGraph para_worldNavGraph, ITerrainHandler para_terrainHandle, Transform para_sfxPrefab) { //mapSize = para_mapSize; gPropMapWorldBounds = para_gPropMapWorldBounds; worldNavGraph = para_worldNavGraph; terrainHandle = para_terrainHandle; sfxPrefab = para_sfxPrefab; }
public void init(Transform para_monkeyPrefab, Transform para_sfxPrefab, int[] para_mapSize, GridProperties para_gPropMapWorldBounds, ColoredNavGraph para_worldNavGraph, ITerrainHandler para_terrainHandle) { monkeyPrefab = para_monkeyPrefab; sfxPrefab = para_sfxPrefab; mapSize = para_mapSize; gPropMapWorldBounds = para_gPropMapWorldBounds; worldNavGraph = para_worldNavGraph; terrainHandle = para_terrainHandle; //playerAvatar = GameObject.Find("MainAvatar"); // Spatial hash monkey spawn pts. monkeySpawnLocHasher = new SpatialHasher(new GridProperties(new float[3] {gPropMapWorldBounds.x,gPropMapWorldBounds.y,gPropMapWorldBounds.z},0,gPropMapWorldBounds.totalWidth/4f,gPropMapWorldBounds.totalHeight/4f,4,4)); List<int> monkeySpawnNodeIDs = worldNavGraph.getNodesOfType(worldNavGraph.getTypeIDByName("MonkeySpawn")); for(int i=0; i<monkeySpawnNodeIDs.Count; i++) { WorldNode tmpNode = (WorldNode) worldNavGraph.getNode(monkeySpawnNodeIDs[i]); Vector3 tmpWorldPt = tmpNode.getWorldPt(); monkeySpawnLocHasher.insertItem(tmpNode.getNodeID(),new Vector2(tmpWorldPt.x,tmpWorldPt.y)); } // Spawn Monkeys. spawnMonkeys(); }
protected override void initWorld() { // Auto Adjust. GameObject tmpPackageUIIcon = GameObject.Find("PackageUIIcon"); GameObject tmpBananaUIIcon = GameObject.Find("BananaUIIcon"); GameObject tmpPersonPortrait = GameObject.Find("PersonPortrait"); GameObject tmpPauseButton = GameObject.Find("PauseButton"); GameObject tmpBackdrop = GameObject.Find("Backdrop").gameObject; SpawnNormaliser.adjustGameObjectsToNwBounds(SpawnNormaliser.get2DBounds(tmpBackdrop.renderer.bounds), WorldSpawnHelper.getCameraViewWorldBounds(tmpBackdrop.transform.position.z,true), new List<GameObject>() { tmpPackageUIIcon, tmpBananaUIIcon, tmpPersonPortrait, tmpBackdrop }); tmpPackageUIIcon.transform.parent = GameObject.Find("Main Camera").transform; tmpBananaUIIcon.transform.parent = GameObject.Find("Main Camera").transform; tmpPersonPortrait.transform.parent = GameObject.Find("Main Camera").transform; tmpPauseButton.transform.parent = GameObject.Find("Main Camera").transform; tmpPackageUIIcon.transform.FindChild("PackageUICounter").gameObject.renderer.sortingOrder = (tmpPackageUIIcon.renderer.sortingOrder+1); tmpBananaUIIcon.transform.FindChild("BananaUICounter").gameObject.renderer.sortingOrder = (tmpBananaUIIcon.renderer.sortingOrder+1); CommonUnityUtils.setSortingOrderOfEntireObject(tmpPersonPortrait,100); CommonUnityUtils.setSortingOrderOfEntireObject(tmpPauseButton,200); uiBounds.Add("PackageCounter",WorldSpawnHelper.getWorldToGUIBounds(tmpPackageUIIcon.renderer.bounds,upAxisArr)); uiBounds.Add("PersonPortrait",WorldSpawnHelper.getWorldToGUIBounds(tmpPersonPortrait.renderer.bounds,upAxisArr)); uiBounds.Add("PauseBtn",WorldSpawnHelper.getWorldToGUIBounds(tmpPauseButton.renderer.bounds,upAxisArr)); Destroy(tmpBackdrop); // Init world bounds data. gPropMapWorldBounds = calculateWorldMapBounds(mapSize); WorldSpawnHelper.initObjWithinWorldBounds(blankCollisionBox, blankCollisionBox.transform.renderer.bounds.size.x, blankCollisionBox.transform.renderer.bounds.size.y, "WorldColBox", new Rect(gPropMapWorldBounds.x,gPropMapWorldBounds.y,gPropMapWorldBounds.totalWidth,gPropMapWorldBounds.totalHeight), null, gPropMapWorldBounds.z, upAxisArr); // Init Nav Graph. string bnwMapFilePath = "Textures/AcDelivery/Map"; ImgToWorldNavGraphBuilderV2 navBuilder = new ImgToWorldNavGraphBuilderV2(bnwMapFilePath,gPropMapWorldBounds); List<ColorGraphTypeInfo> graphRequirements = new List<ColorGraphTypeInfo>() { new ColorGraphTypeInfo(new string[] { "FreeSpace", "MonkeySpawn", "HouseDeliveryPoint", "PlayerSpawn" }, new Color[] { Color.white, ColorUtils.convertColor(153,76,0), Color.blue, Color.red }) }; List<ColoredNavGraph> graphList = navBuilder.constructColorGraphs(graphRequirements); worldNavGraph = graphList[0]; List<System.Object> paramList = new List<System.Object>(); paramList.Add(worldNavGraph); paramList.Add(gPropMapWorldBounds); terrainHandle = new BasicTerrainHandler(); terrainHandle.constructTerrainStructures(paramList); // Render Nav Graph. (For Debug Purposes). //GameObject navGraphRenderObj = NavGraphUnityUtils.renderNavGraph("WorldNavGraphRender",worldNavGraph,graphNodePrefab); //navGraphRenderObj.SetActive(false); // Spawn Player. List<int> playerSpawnPtList = worldNavGraph.getNodesOfType(worldNavGraph.getTypeIDByName("PlayerSpawn")); WorldNode playerSpawnNode = (WorldNode) worldNavGraph.getNode(playerSpawnPtList[Random.Range(0,playerSpawnPtList.Count)]); Vector3 tmpV = playerSpawnNode.getWorldPt(); Vector3 playerSpawnPt = new Vector3(tmpV.x,tmpV.y,-2f); Transform nwPlayerAvatar = (Transform) Instantiate(mainAvatarPrefab,playerSpawnPt,Quaternion.identity); nwPlayerAvatar.gameObject.name = "MainAvatar"; NewCharacterNavMovement cnm = nwPlayerAvatar.gameObject.AddComponent<NewCharacterNavMovement>(); cnm.faceDirection("S"); // Apply player clothing. applyPlayerAvatarClothing(); // Spawn MonkeyManager. PDMonkeyManager monkeyMang = transform.gameObject.AddComponent<PDMonkeyManager>(); monkeyMang.init(monkeyPrefab,sfxPrefab,mapSize,gPropMapWorldBounds,worldNavGraph,terrainHandle); // Input detectors. inputDetectors = new List<AbsInputDetector>(); ClickDetector cd = transform.gameObject.AddComponent<ClickDetector>(); cd.setMaxDelayBetweenClicks(0.01f); cd.registerListener("AcScen",this); inputDetectors.Add(cd); // Mechanics variables. currNumKnocks = 0; mainCam = GameObject.Find("Main Camera").GetComponent<Camera>(); numOfPackagesInInventory = reqDeliveriesForWin; numOfBananasInInventory = 30; refreshInventoryCounterDisplay(); stolenPackageToMonkeyQueue = new List<string[]>(); stoleQueueIndexPointer = 0; // Select prefabs for packages. selectedPackagePrefabIndexes = new List<int>(); for(int i=0; i<reqDeliveriesForWin; i++) { selectedPackagePrefabIndexes.Add(Random.Range(0,packagePrefabs.Length)); } }
void Start() { float iconifiedBounds_Width = Screen.width * 0.15f; float iconifiedBounds_Height = Screen.height * 0.15f; if(iconifiedBounds_Width > iconifiedBounds_Height) { iconifiedBounds_Width = iconifiedBounds_Height; } else { iconifiedBounds_Height = iconifiedBounds_Width; } float iconifiedBounds_X = Screen.width - iconifiedBounds_Width; float iconifiedBounds_Y = Screen.height - iconifiedBounds_Height; clickableArea = new Rect(iconifiedBounds_X,iconifiedBounds_Y,iconifiedBounds_Width,iconifiedBounds_Height); walkers = new GameObject[LocalisationMang.getNPCnames().Count]; visibleWalkers = new List<int>(); isPaused = false; currPlayerDestCell = new int[2] {-1,-1}; playerNavigationFlag = true; dialogEventRequired = false; dialogTargetCharID = -1; // Disable any debug scene related things. makeAllClickablesTransparent(); // Apply Clothing Config to Main Avatar. applyPlayerAvatarClothing(); clonePlayerAv(); // Calculate World Bounds. gPropMapWorldBounds = calculateWorldMapBounds(mapSize); WorldSpawnHelper.initObjWithinWorldBounds(blankCollisionBox, blankCollisionBox.transform.renderer.bounds.size.x, blankCollisionBox.transform.renderer.bounds.size.y, "WorldColBox", new Rect(gPropMapWorldBounds.x,gPropMapWorldBounds.y,gPropMapWorldBounds.totalWidth,gPropMapWorldBounds.totalHeight), null, gPropMapWorldBounds.z, upAxisArr); // Remove Scroll Cam and use Follow Cam. Destroy(GameObject.Find("GlobObj").GetComponent(typeof(ScrollCam))); FollowScript followScrpt = Camera.main.transform.gameObject.AddComponent<FollowScript>(); followScrpt.init(GameObject.Find("MainAvatar"),new bool[3] { true, true, false }); // Init Nav Graph. string bnwMapFilePath = "Textures/WorldView/WorldView_B&W"; ImgToWorldNavGraphBuilderV2 navBuilder = new ImgToWorldNavGraphBuilderV2(bnwMapFilePath,gPropMapWorldBounds); List<ColorGraphTypeInfo> graphRequirements = new List<ColorGraphTypeInfo>() { new ColorGraphTypeInfo(new string[] { "FreeSpace", "MainCharacterSpawns" }, new Color[] { Color.white, Color.red }) }; List<ColoredNavGraph> graphList = navBuilder.constructColorGraphs(graphRequirements); worldNavGraph = graphList[0]; List<System.Object> paramList = new List<System.Object>(); paramList.Add(worldNavGraph); paramList.Add(gPropMapWorldBounds); terrainHandle = new BasicTerrainHandler(); terrainHandle.constructTerrainStructures(paramList); Animator mainPlayerAvatarAni = GameObject.Find("MainAvatar").GetComponent<Animator>(); //mainPlayerAvatarAni.Play("MainAvatar_walkDown"); mainPlayerAvatarAni.speed = 0; SoundPlayerScript sps = transform.GetComponent<SoundPlayerScript>(); //sps.triggerSoundLoopAtCamera("WindAmbient","WorldAmbientBox",0.3f,true); ambientSound = sps.triggerSoundLoopAtCamera("Serenade Band Tracks/Serenade_Bass_01.00","WorldAmbientBox",0.3f,true); // Init input detectors. inputDetectors = new List<AbsInputDetector>(); ClickDetector cd = transform.gameObject.AddComponent<ClickDetector>(); cd.registerListener("WorldScript",this); cd.setMaxDelayBetweenClicks(0.0001f); inputDetectors.Add(cd); // Persistent Obj Check. int index = 0; //Hide all recognised characters and destroy extra ones foreach(string para_namePrefix in new string[]{"AvatarChar-","SecChar-"}){ int counter = 0; bool foundItem = true; while(foundItem) { GameObject tmpObj = GameObject.Find(para_namePrefix+""+counter); counter++; if(tmpObj == null) { foundItem = false; } else { if(index >= walkers.Length){ Destroy(tmpObj); }else{ rootItemToMapGrid(tmpObj); walkers[index++] = tmpObj; List<SpriteRenderer> sRends = CommonUnityUtils.getSpriteRendsOfChildrenRecursively(tmpObj); if(sRends != null) { for(int i=0; i<sRends.Count; i++) { sRends[i].enabled = false; } } tmpObj.collider.enabled = false; //tmpObj.SetActive(false); } } } } isStillPerformingUnlockSequence = false; GameObject poRef = PersistentObjMang.getInstance(); control = poRef.GetComponent<ProgressScript>(); if(control == null) { control = poRef.AddComponent<ProgressScript>(); }/*else{ Debug.Log("Enable progress script"); control.enabled = true; }*/ Debug.LogWarning("Position of avatar not initialised"); //placeExistingItemInCell("MainAvatar",int[]{});//NEW control.attemptActivityDebrief(this); // Switch player controls off until the intro effect is over. togglePlayerInputState(false); setupReady = false; Debug.Log("Fading removed"); respondToEvent("", "FadeEffectDone", null); }