private IEnumerator GetCustomerDataFromNpcDatabase(LevelBase level) { yield return(new WaitUntil(() => NpcData.CanRead)); this.CustomerData = NpcData.GetDatabaseEntry(NpcId); orderDialogueCache = this.CustomerData.GetCustomerDialogue(level.Id, 0); }
public override void LoadContent() { _ball = new Ball(Configuration.BallDiameter, Configuration.Gravity); _currentLevel = new Level1(); _currentLevel.AddPlayer(_ball); }
public static void Create(LevelBase m) { // Get outer shape if (m.root != null) { DestroyImmediate(m.root.gameObject); } GameObject root = new GameObject("Root"); m.root = root.transform; m.root.parent = m.transform; //List<GameObject> created = new List<GameObject>(); foreach (Transform t in m.transform) { if (t.name == "Shape") { GameObject o = CreateMeshFromColl(m, t, t.GetComponents<LevelShape>()); o.layer = 25; o.transform.parent = m.root; //// Create shadow //GameObject shadow = Instantiate(o) as GameObject; //shadow.GetComponent<MeshRenderer>().material = m.hillMaterialShadow; //shadow.transform.parent = m.root; //shadow.transform.Translate(m.shadowOffset); } } }
void GetLevelCreatorInfo() { levelCreatorInfo = AssetDatabase.LoadAssetAtPath("Assets/Resources/Prefabs/LevelCreatorInfo.prefab", typeof(LevelCreatorInfo)) as LevelCreatorInfo; levelBasePrefab = levelCreatorInfo.levelBase; basicRoomPrefab = levelCreatorInfo.basicRoom; doorPrefab = levelCreatorInfo.doorPrefab; }
public static void CreateBounds(LevelBase m) { if (m.collider2D != null) { DestroyImmediate(m.collider2D); } List<LevelBoundsNode> n = new List<LevelBoundsNode>(); GetNodes(m.transform, n); Debug.Log("Found " + n.Count + " nodes"); if (n.Count > 2) { List<Vector2> vecs = new List<Vector2>(); foreach (LevelBoundsNode bn in n) { vecs.Add(new Vector2(bn.transform.position.x, bn.transform.position.y)); } // vecs.Add(new Vector2( n[0].transform.position.x, n[0].transform.position.y)); CreateVector(m, vecs); EdgeCollider2D c = m.gameObject.AddComponent<EdgeCollider2D>(); c.points = vecs.ToArray(); } // TODO create vector }
public void SwitchState(GameState gameState) { switch (gameState) { case GameState.LEVEL_1: this.Components.Remove(mainMenu); level3 = new Level3(this); Components.Add(level3); currentLevel = level3; break; case GameState.MAIN_MENU: this.Components.Remove(currentLevel); mainMenu = new MenuJewSaver(this); Components.Add(mainMenu); break; case GameState.LEVEL_2: this.Components.Remove(level1); level2 = new Level2(this); this.Components.Add(level2); currentLevel = level2; break; case GameState.LEVEL_3: this.Components.Remove(level2); level3 = new Level3(this); this.Components.Add(level3); currentLevel = level3; break; default: break; } }
public void ConfirmWallPlacement() { wallBeingMade.ConfirmPlacement(); levelBases.Add(wallBeingMade); wallBeingMade.transform.parent = levelBaseMain.transform; wallBeingMade = null; }
public IEntity CreatePlayer(BaseEntityInfo info, AnimationEventStates animationEventStates) { LevelBase level = Global.NodeGraphMgr.WorldLevelRoot.ActorLevel; ActorImplNode actorMain = Global.FactoryMgr.CreatePoolComponent <ActorImplNode>(ePath.Actor, info.AssetInfo.SpriteName, info.AssetInfo.Position, info.AssetInfo.Rotation, level.transform); //actorMain.Initialize(playMakerFsm, animationEventStates); ActorRoot actor = new ActorRoot(); actorMain.Lock(); actor.AttachChild(actorMain); IEntity entity = MakePlayer(info, actorMain); if (info.CombatType == eCombatType.Hero) { m_hero = entity as Hero; } else if (info.CombatType == eCombatType.Monster) { } AttachActor(level, actor); return(entity); }
private void AttachActor(LevelBase level, IGraphNodeGroup nodeGroup) { Debug.Assert(level != null); nodeGroup.BhvOnEnter(); level.AttachChild(nodeGroup); }
public static void SetActiveLevel(LevelBase level) { if (levelData.ContainsKey(level.Id)) { activeLevel = level; } }
public void OnClick() { if (GameTicketManager.Instance.PlayGamePopUp.activeSelf || GameErrorDisplayManager.Instance.ErrorDisplaying || GameTicketManager.Instance.LoadingScreen.activeSelf) { return; } int levelNo = int.Parse(LevelNo.text.Split(' ')[1]); LevelBase level = LevelsSO.instance.Levels[levelNo - 1]; if (level != null) { if (GameStarManager.Instance.TotalStars >= level.StarsToUnlock && !level.Locked) { GameTicketManager.Instance.SelectedLevel = levelNo; GameTicketManager.Instance.ShowPlayGamePopUp(true); } else { if (GameStarManager.Instance.TotalStars >= level.StarsToUnlock) { GameErrorDisplayManager.Instance.DisplayError("Collect atleast one Star in previous Level to unlock this Level"); } else { GameErrorDisplayManager.Instance.DisplayError("Collect " + level.StarsToUnlock + " Stars in previous Levels to unlock this Level"); } } } else { Debug.LogError(String.Format("Level {0} SO not configured properly", levelNo)); } }
public static void CreateVector(LevelBase m, List<Vector2> vecs) { VectorLine vecline; if (m.boundsVector != null) { DestroyImmediate(m.boundsVector); } vecs.Reverse(); //Vector2[] splinePoints = new Vector2[numberOfHills*2 + 1]; vecline = new VectorLine("Hills", // new Vector2[m.numberOfPoints], vecs.ToArray(), m.hillMaterial, m.width, LineType.Continuous, Joins.Weld); //vecline.useViewportCoords = true; // hills.collider = true; // vecline.MakeSpline( vecs.ToArray(), true ) ; vecline.Draw3D(); m.boundsVector = vecline.vectorObject; m.boundsVector.transform.parent = m.transform; m.boundsVector.layer = 0; GameObject vectorCam = GameObject.Find("VectorCam"); if (vectorCam != null) DestroyImmediate(vectorCam); }
public LevelBase GetLevelHander(LevelType type) { LevelBase level = null; levels.TryGetValue(type, out level); return(level); }
// Use this for initialization void Start() { level = GameObject.Find("Level").GetComponent <LevelBase>(); player = FindObjectOfType <Player>().GetComponent <Player>(); vfx_list = new List <GameObject>(); FlowGenerate(); LevelUp(); level.LevelUpHandler += LevelUp; target_angular = 0; }
void CreateNewSubMesh(LevelBase originalLevelBase, LevelCreatorUtils.WallsBounds roomWallbounds, Vector3 pDirection) { LevelBase subMesh = Instantiate(levelBasePrefab); AddNewObject(subMesh.gameObject); subMesh.transform.position = originalLevelBase.transform.position; float zOffset = 0; LevelCreatorUtils.WallsBounds originalBounds = LevelCreatorUtils.BoxColliderToWallbounds(originalLevelBase.transform.position, originalLevelBase.GetComponent <BoxCollider>()); float xScale = originalLevelBase.transform.localScale.x; float zScale = originalLevelBase.transform.localScale.z; if (pDirection.x != 0) { xScale = pDirection.x == 1 ? originalBounds.maxWallsX - roomWallbounds.maxWallsX : originalBounds.minWallsX - roomWallbounds.minWallsX; float topReduction = 0; float bottomReduction = 0; //Delete top scale if (roomWallbounds.maxWallsZ < originalBounds.maxWallsZ) { topReduction = originalBounds.maxWallsZ - roomWallbounds.maxWallsZ; } //Delete bottom if (roomWallbounds.minWallsZ > originalBounds.minWallsZ) { bottomReduction = roomWallbounds.minWallsZ - originalBounds.minWallsZ; } zScale -= (topReduction + bottomReduction); //set to correct z pos if (originalBounds.maxWallsZ > roomWallbounds.maxWallsZ) { zOffset -= (originalBounds.maxWallsZ - roomWallbounds.maxWallsZ) / 2; } if (roomWallbounds.minWallsZ > originalBounds.minWallsZ) { zOffset += (roomWallbounds.minWallsZ - originalBounds.minWallsZ) / 2; } //zOffset = (((originalBounds.maxWallsZ - pUpdatedRoom.wallBounds.maxWallsZ) / 2) - ((pUpdatedRoom.wallBounds.minWallsZ - originalBounds.minWallsZ) / 2)) * -1; subMesh.transform.position = new Vector3(roomWallbounds.center.x, 0, originalLevelBase.transform.position.z + zOffset); } else { zScale = pDirection.z == 1 ? originalBounds.maxWallsZ - roomWallbounds.maxWallsZ : originalBounds.minWallsZ - roomWallbounds.minWallsZ; subMesh.transform.position = new Vector3(originalLevelBase.transform.position.x, 0, roomWallbounds.center.z); } subMesh.transform.localScale = new Vector3(Mathf.Abs(xScale), levelCreatorInfo.wallHeight, Mathf.Abs(zScale)); subMesh.transform.position += new Vector3(((subMesh.transform.localScale.x / 2 + (roomWallbounds.maxWallsX - roomWallbounds.minWallsX) / 2) * pDirection.x), 0, ((subMesh.transform.localScale.z / 2 + (roomWallbounds.maxWallsZ - roomWallbounds.minWallsZ) / 2) * pDirection.z)); newLevelBases.Add(subMesh); subMesh.transform.parent = levelBaseMain.transform; }
public void AddLevel(int id, LevelBase level) { if (!levelDictionary.ContainsKey(id)) { levelDictionary.Add(id, level); } else { Debug.LogWarning("Attempting to add multiple levels with the same Id: " + id.ToString()); } }
void Start() { level = GameObject.Find("Level").GetComponent <LevelBase>(); head = GameObject.Find("Head"); units = new GameObject[transform.childCount]; ys = new float[units.Length]; for (int i = 0; i < units.Length; ++i) { units[i] = transform.GetChild(i).gameObject; ys[i] = units[i].transform.localPosition.y; } }
public GameObject InstantitateNextBackground(float prevXPosition, out bool isNoWindowWallGenerated) { LevelBase l = CurrentLevel; GameObject nextWall = Instantiate(WallPrefab); nextWall.transform.position = new Vector3(prevXPosition + 5f, 6.2f, 10.8f); nextWall.transform.parent = BackgroundsParent.transform; GameObject nextBackground = l.InstantiateWall(GemMeter, out isNoWindowWallGenerated); nextBackground.transform.position = new Vector3(prevXPosition + 10f, 6.2f, 10.8f); nextBackground.transform.parent = BackgroundsParent.transform; return(nextBackground); }
public void OpenLevel <T>(LevelName levelName) where T : LevelBase { if (m_LevelNow != null) { CloseLevel(); } GameObject Level = Mgr_AssetBundle.Instance.LoadAsset <GameObject>(ABTypes.prefab, levelName.ToString()); m_LevelNow = Instantiate(Level).GetComponent <T>() as LevelBase; m_LevelNow.transform.SetParent(GameManager.Instance.m_MainGame.m_Level, false); m_LevelNow.Init(); m_LevelNow.OnOpen(); }
// Use this for initialization #if UNITY_EDITOR private void OnEnable() { if (!levelBaseMain) { levelBaseMain = GameObject.Find("levelBaseMain"); if (levelBaseMain) { GetLevelCreatorInfo(); } } basicRoomPrefab = levelCreatorInfo.basicRoom; levelBasePrefab = levelCreatorInfo.levelBase; levelBases = GetAllWalls(); }
// запускает уровень public void LoadLevel(int lev) { // // some background sprite setting? // newLevel = GetLevel(lev); if (newLevel == null) { Debug.Log("newLevel == null"); return; } StartTimer(); //StartSpawning (); }
public void OnStartLevel() { if (m_rootNodeGroup != null) { int childCount = m_rootNodeGroup.GetNumChildren(); for (int i = 0; i < childCount; ++i) { LevelBase level = m_rootNodeGroup.GetChild(i) as LevelBase; if (level != null) { level.OnStartLevel(); } } } }
/// <summary> /// Creates the base for the level where rooms can be added in /// </summary> public void SpawnBaseLevel() { levelCreatorInfo = AssetDatabase.LoadAssetAtPath("Assets/Resources/Prefabs/LevelCreatorInfo.prefab", typeof(LevelCreatorInfo)) as LevelCreatorInfo; levelBaseMain = new GameObject(); levelBaseMain.name = "levelBaseMain"; levelBasePrefab = levelCreatorInfo.levelBase; LevelBase levelBaseStart = Instantiate(levelBasePrefab); levelBaseStart.transform.localScale = new Vector3(levelCreatorInfo.baseWidth, levelCreatorInfo.wallHeight, levelCreatorInfo.baseLenght); levelBaseStart.transform.parent = levelBaseMain.transform; levelBases = new List <LevelBase>(); rooms = new List <Room>(); roomBeingBuild = null; levelBases.Add(levelBaseStart); }
public void DestroyPlayer(IEntity entity) { eCombatType combatType = entity.CombatType; IGraphNodeGroup parentnode = entity.Main.Parent as IGraphNodeGroup; Debug.Assert(parentnode != null); entity.Terminate(); Remove(entity.CombatType, entity.NetID); LevelBase level = Global.NodeGraphMgr.WorldLevelRoot.ActorLevel; DetachActor(level, parentnode); //Global.FactoryMgr.Node.Destroy(actor); }
//Wall methods region #region public void SpawnWall() { //Instantiate wall levelCreatorInfo = AssetDatabase.LoadAssetAtPath("Assets/Resources/Prefabs/LevelCreatorInfo.prefab", typeof(LevelCreatorInfo)) as LevelCreatorInfo; levelBasePrefab = levelCreatorInfo.levelBase; wallBeingMade = Instantiate(levelBasePrefab); wallBeingMade.transform.localScale = new Vector3(2, levelCreatorInfo.wallHeight, 2); ActiveEditorTracker.sharedTracker.isLocked = true; GameObject[] selectObject = new GameObject[1]; selectObject[0] = wallBeingMade.gameObject; Selection.objects = selectObject; wallBeingMade.denominator = 1; wallBeingMade.numerator = 1; //Check if intersecting with walls //Cut of part that is intersecting with wall }
public void TransitionToLevel(int id) { if (levelDictionary.ContainsKey(id)) { if (currentLevel != null) { currentLevel.OnEndLevel(); } currentLevel = levelDictionary[id]; currentLevel.OnStartLevel(); eventManager.FireEvent(NewTargetWeightEvent, new NewTargetWeightEventArgs(currentLevel.WeightGoal, currentLevel.WeightMax)); } else { Debug.LogError("Unable to find level with Id: " + id.ToString()); } }
public void Init(Vector2Int tilePosition, TileType tileType, Transform parentTransform, LevelBase owner) { if (IsInitialized) { return; } TilePosition = tilePosition; transform.SetParent(parentTransform); transform.localPosition = new Vector3(TilePosition.x, TilePosition.y, 2.0f); TileType = tileType; Owner = owner; UpdateSprite(); LoadTileBehaviors(); IsInitialized = true; }
public IEnumerator OnLoadLevel(System.Action <float> OnProgressAction) { if (m_rootNodeGroup != null) { int childCount = m_rootNodeGroup.GetNumChildren(); if (childCount <= 0) { yield return(new WaitForEndOfFrame()); if (OnProgressAction != null) { OnProgressAction(1.0f); } yield break; } float baseProgress = 0.0f; float loadingProgressRate = 1.0f / childCount; for (int i = 0; i < childCount; ++i) { LevelBase level = m_rootNodeGroup.GetChild(i) as LevelBase; if (level != null) { yield return(level.OnLoadLevel((progress) => { OnProgressAction(baseProgress + (progress * loadingProgressRate)); })); baseProgress += loadingProgressRate; } } } yield return(new WaitForEndOfFrame()); if (OnProgressAction != null) { OnProgressAction(1.0f); } }
public void ShowPlayGamePopUp(bool show) { LevelText.text = "LEVEL " + SelectedLevel.ToString(); if (show) { LevelBase level = LevelsSO.instance.Levels[SelectedLevel - 1]; int minWallsToClose = (level.wallLimit % 2 == 0) ? level.wallLimit / 2 : level.wallLimit / 2 + 1; MissionText.text = "Mission: Close " + minWallsToClose + " Windows"; foreach (var storeObject in storeObjectIconMaps) { if (StoreObjectPurchaseController.Instance.GetNoOfStoreObjectPurchased(storeObject.storeObject) > 0) { storeObject.Icon.SetActive(true); } } ShowTicketDisplay(false); } PlayGamePopUp.SetActive(show); }
private void DetachActor(LevelBase level, IGraphNodeGroup nodeGroup) { Debug.Assert(level != null); level.DetachChild(nodeGroup); // 레벨에서 삭제하고 nodeGroup.BhvOnLeave(); //자식들을 종료시키고 List <GraphMonoPoolNode> lstPoolNodes = nodeGroup.GetChilds <GraphMonoPoolNode>(); // 풀노드만 빼온후 nodeGroup.DetachAllChildren(); //자식들을 제거함 for (int i = 0; i < lstPoolNodes.Count; i++) { GraphMonoPoolNode poolNode = lstPoolNodes[i]; poolNode.Unlock(); Global.FactoryMgr.FastDestory(poolNode); //다시 풀링으로.. } lstPoolNodes.Clear(); }
// Use this for initialization void Start() { leftSoldierController.SetArsenal("Rifle"); rightSoldierController.SetArsenal("Rifle"); xPosition = -1.0f; LastUnlockedLevel = -1; levelWalls = new GameObject[levels.Levels.Length]; for (int i = 0; i < levels.Levels.Length; i++) { LevelBase currentLevel = levels.Levels[i]; bool levelUnlocked; GenerateWall(currentLevel, i, out levelUnlocked); if (levelUnlocked) { LastUnlockedLevel = i; } xPosition += 11.0f; } Vector3 currentPos = RightWall.transform.position; RightWall.transform.position = new Vector3(xPosition - 3.35f, currentPos.y, currentPos.z); GameTicketManager.Instance.ShowTicketDisplay(true); GameTicketManager.Instance.isReplayGame = false; Debug.Log("CSU: TotalStars=" + GameStarManager.Instance.GetTotalStars()); starCounttText.text = GameStarManager.Instance.GetTotalStars().ToString(); GemText.text = GemScript.Instance.TotalGems.ToString(); float soldierAndCameraXPosition = LastUnlockedLevel * 11.0f; Vector3 soldierPosition = Soldiers.transform.position + new Vector3(soldierAndCameraXPosition, 0.0f, 0.0f); Soldiers.transform.position = soldierPosition; Vector3 cameraPosition = MainCamera.transform.position + new Vector3(soldierAndCameraXPosition, 0.0f, 0.0f); MainCamera.transform.position = cameraPosition; if (shouldUnlockLevel) { UnlockNextLevel(); shouldUnlockLevel = false; } }
private void GenerateWall(LevelBase level, int index, out bool levelUnlocked) { GameObject WallRef = level.LevelWall; GameObject Wall = Instantiate(WallRef); Wall.transform.parent = transform; Vector3 currentPos = Wall.transform.position; Vector3 Position = new Vector3(xPosition, currentPos.y, currentPos.z); int StarCount = GameStarManager.Instance.GetStarsForLevel(level.LevelName); Wall.transform.position = Position; if (index != 0 && !shouldUnlockLevel) { LevelBase prevLevel = levels.Levels[index - 1]; int prevLevelStarCount = GameStarManager.Instance.GetStarsForLevel(prevLevel.LevelName); if (prevLevelStarCount > 0) { level.Locked = false; } } bool LevelUnlocked = (GameStarManager.Instance.GetTotalStars() >= level.StarsToUnlock) && !level.Locked; levelUnlocked = LevelUnlocked; Wall.GetComponent <Animator>().SetBool("Unlock", LevelUnlocked); Wall.GetComponent <Animator>().SetInteger("StarCount", StarCount); Wall.GetComponent <LevelButtonScript>().LevelNo.text = "Level " + level.LevelName; if (level.AdventureTitle != null) { Wall.GetComponent <LevelButtonScript>().AdventureTitle.gameObject.SetActive(true); Wall.GetComponent <LevelButtonScript>().AdventureTitle.sprite = level.AdventureTitle; } for (int i = 0; i < StarCount; i++) { Wall.GetComponent <LevelButtonScript>().LitStars[i].SetActive(true); Wall.GetComponent <LevelButtonScript>().UnlitStars[i].SetActive(false); } levelWalls[index] = Wall; }
public void add_level(LevelBase lvl) { lvls.levels.Add(lvl); }
void CheckLevel(LevelBase level) { bool allCriteraMet = true; UnlockCriteria[] mUnlockCriterias = level.GetComponents<UnlockCriteria>(); for (int j = 0; j < mUnlockCriterias.Length; j++) { UnlockCriteria mUnlockCriteria = mUnlockCriterias[j]; if (!mUnlockCriteria.CriteriaMet()) { allCriteraMet = false; } } if (allCriteraMet) { level.UnlockLevel(); } else { level.LockLevel(); } }
public void InitializeCustomerData(LevelBase level) { level.StartCoroutine(this.GetCustomerDataFromNpcDatabase(level)); }
public bool LoadCurrentLevel() { if (CurrentLevel == null) { // Load level if (CurrentLevelIndex < LevelArray.Length && LevelArray[CurrentLevelIndex] != null) { GameObject newLevelObj = GameObject.Instantiate(LevelArray[CurrentLevelIndex].gameObject) as GameObject; GameManager.CurrentLevel = newLevelObj.GetComponent<LevelBase>(); return true; } else { Debug.Log("-- RUN OUT OF LEVELS, I GUESS YOU WON --- CurrentLevelIndex: " + CurrentLevelIndex); ChangeState(GameState.GameEndWin); } } return false; }
public void UpdateGameState() { if (CurrentState == GameState.LevelWin || CurrentState == GameState.LevelLost) { // Clear Game if (GameManager.CurrentLevel != null) { GameManager.CurrentLevel.ClearAndDestroy(); GameManager.CurrentLevel = null; } } if (CurrentState == GameState.GameStart) { ShowUIMenu(TitleMenu); OnClickGotoState = GameState.Intro; // Reset game CurrentLevelIndex = 0; RetriesUsed = 0; } else if(CurrentState == GameState.Intro) { ShowUIMenu(InfoMenu); OnClickGotoState = GameState.LoadLevel; } else if(CurrentState == GameState.LoadLevel) { LevelComboWins = 0; LevelCombosPlayed = 0; if(LoadCurrentLevel()) { ShowUIMenu(null); ChangeState(GameState.GameAI); } } else if(CurrentState == GameState.GameAI) { if (GameManager.CurrentLevel != null) { ShowUIMenu(ReadyMenu); PointRaytrace.CurrentPlayerHitsID = ""; // Create AI if null if (CurrentAI == null) { CurrentAI = AIBase.CreateAIToGameobject(GameManager.CurrentLevel.gameObject); } GameManager.CurrentLevel.DeactivateAll(); // Showing to player what to do CurrentAI.StartShowHint(); } else { Debug.LogError("Cant Play NULL Level!"); } } else if(CurrentState == GameState.GamePlayer) { ShowUIMenu(StartMenu); Invoke("HideUIMenus", 1f); LevelCombosPlayed++; // Players turn CurrentAI.Stop(); } else if (CurrentState == GameState.LevelWinOutro) { ShowUIMenu(SuccessMenu); Invoke("LevelWinOutroComplete", 2f); } else if (CurrentState == GameState.LevelWin) { ShowUIMenu(WinMenu); OnClickGotoState = GameState.LoadLevel; CurrentLevelIndex++; } else if (CurrentState == GameState.LevelLost) { RetriesUsed++; if (AcceptedRetries >= RetriesUsed) { ShowUIMenu(LostMenu); Debug.Log(RetriesUsed + " of " + AcceptedRetries + " AcceptedRetries"); OnClickGotoState = GameState.LoadLevel; BlockClickFor(0.5f); } else { ShowUIMenu(GameLoseMenu); OnClickGotoState = GameState.GameStart; BlockClickFor(0.5f); } } else if (CurrentState == GameState.GameEndWin) { ShowUIMenu(GameOverMenu); Invoke("ReplayFromStart", 10f); } }
void InitializeLevels(LevelManager levelManager) { //TODO: pull this from an external file LevelBase levelOne = new LevelBase(); levelOne.LevelId = 1; levelOne.SceneName = "level1"; levelOne.spawnFrequency = 2.0f; levelOne.spawnFrequencyDeviation = 1.0f; levelOne.WeightMax = 2200f; levelOne.WeightGoal = 1900f; levelOne.collectibles = new List <CollectibleLevelInfo>(); levelOne.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/DumbBell", oddsOfCollectible = 1, lifetime = 15f }); levelOne.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/SodaCan", oddsOfCollectible = 1, lifetime = 10f }); levelOne.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/IceCreamCone", oddsOfCollectible = 1, lifetime = 10f }); levelOne.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/Carrot", oddsOfCollectible = 1, lifetime = 10f }); levelOne.collectibleSpawnLeftRange = new Vector3(-20, 15, -20); levelOne.collectibleSpawnRightRange = new Vector3(20, 15, 20); levelManager.AddLevel(levelOne.LevelId, levelOne); LevelBase levelTwo = new LevelBase(); levelTwo.LevelId = 2; levelTwo.SceneName = "level2"; levelTwo.spawnFrequency = 2.0f; levelTwo.spawnFrequencyDeviation = 1.0f; levelTwo.WeightMax = 2000f; levelTwo.WeightGoal = 1850f; levelTwo.collectibles = new List <CollectibleLevelInfo>(); levelTwo.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/DumbBell", oddsOfCollectible = 4, lifetime = 15f }); levelTwo.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/SodaCan", oddsOfCollectible = 5, lifetime = 10f }); levelTwo.collectibleSpawnLeftRange = new Vector3(-25, 15, -25); levelTwo.collectibleSpawnRightRange = new Vector3(25, 15, 25); levelManager.AddLevel(levelTwo.LevelId, levelTwo); LevelBase levelThree = new LevelBase(); levelThree.LevelId = 3; levelThree.SceneName = "level3"; levelThree.spawnFrequency = 1.0f; levelThree.spawnFrequencyDeviation = 0.5f; levelThree.WeightMax = 2200f; levelThree.WeightGoal = 1800f; levelThree.collectibles = new List <CollectibleLevelInfo>(); levelThree.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/DumbBell", oddsOfCollectible = 5, lifetime = 5f }); levelThree.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/SodaCan", oddsOfCollectible = 5, lifetime = 10f }); levelThree.collectibleSpawnLeftRange = new Vector3(-20, 15, -6); levelThree.collectibleSpawnRightRange = new Vector3(20, 15, 18); levelManager.AddLevel(levelThree.LevelId, levelThree); }
public void add_level(string ident, string name, string artists_count) { LevelBase tmp_lvl; tmp_lvl = new LevelBase(); tmp_lvl.artists_count = artists_count; tmp_lvl.name = name; tmp_lvl.ident = ident; lvls.levels.Add(tmp_lvl); save_levels(); }
void InitializeLevels(LevelManager levelManager) { //TODO: pull this from an external file LevelBase levelOne = new LevelBase(); levelOne.LevelId = 1; levelOne.SceneName = "level1"; levelOne.spawnFrequency = 2.0f; levelOne.spawnFrequencyDeviation = 1.0f; levelOne.WeightMax = 2200f; levelOne.WeightGoal = 1900f; levelOne.collectibles = new List<CollectibleLevelInfo>(); levelOne.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/DumbBell", oddsOfCollectible = 1, lifetime = 15f }); levelOne.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/SodaCan", oddsOfCollectible = 1, lifetime = 10f }); levelOne.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/IceCreamCone", oddsOfCollectible = 1, lifetime = 10f }); levelOne.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/Carrot", oddsOfCollectible = 1, lifetime = 10f }); levelOne.collectibleSpawnLeftRange = new Vector3(-20,15,-20); levelOne.collectibleSpawnRightRange = new Vector3(20,15,20); levelManager.AddLevel(levelOne.LevelId, levelOne); LevelBase levelTwo = new LevelBase(); levelTwo.LevelId = 2; levelTwo.SceneName = "level2"; levelTwo.spawnFrequency = 2.0f; levelTwo.spawnFrequencyDeviation = 1.0f; levelTwo.WeightMax = 2000f; levelTwo.WeightGoal = 1850f; levelTwo.collectibles = new List<CollectibleLevelInfo>(); levelTwo.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/DumbBell", oddsOfCollectible = 4, lifetime = 15f }); levelTwo.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/SodaCan", oddsOfCollectible = 5, lifetime = 10f }); levelTwo.collectibleSpawnLeftRange = new Vector3(-25,15,-25); levelTwo.collectibleSpawnRightRange = new Vector3(25,15,25); levelManager.AddLevel(levelTwo.LevelId, levelTwo); LevelBase levelThree = new LevelBase(); levelThree.LevelId = 3; levelThree.SceneName = "level3"; levelThree.spawnFrequency = 1.0f; levelThree.spawnFrequencyDeviation = 0.5f; levelThree.WeightMax = 2200f; levelThree.WeightGoal = 1800f; levelThree.collectibles = new List<CollectibleLevelInfo>(); levelThree.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/DumbBell", oddsOfCollectible = 5, lifetime = 5f }); levelThree.collectibles.Add(new CollectibleLevelInfo() { collectibleResourceName = "Prefabs/SodaCan", oddsOfCollectible = 5, lifetime = 10f }); levelThree.collectibleSpawnLeftRange = new Vector3(-20,15,-6); levelThree.collectibleSpawnRightRange = new Vector3(20,15,18); levelManager.AddLevel(levelThree.LevelId, levelThree); }
static GameObject CreateMeshFromColl(LevelBase l, Transform t, LevelShape[] s) { GameObject partObj = new GameObject("Part"); PolygonCollider2D[] colls = t.GetComponents<PolygonCollider2D>(); Polygon polygon = null; List<EdgeCollider2D> collsToAdd = new List<EdgeCollider2D>(); foreach (PolygonCollider2D c in colls) { if (c.enabled == false) continue; Vector2[] vecs = c.points; List<Vector2> edgeVecs = new List<Vector2>(); edgeVecs.AddRange(vecs); edgeVecs.Add(vecs[0]); EdgeCollider2D e = partObj.AddComponent<EdgeCollider2D>(); e.points = edgeVecs.ToArray(); List<PolygonPoint> pts = new List<Poly2Tri.PolygonPoint>(); for (int i = 0; i < vecs.Length; i++) { PolygonPoint pt = new Poly2Tri.PolygonPoint(vecs[i].x * l.factor, vecs[i].y * l.factor); pts.Add(pt); } if (polygon == null) { polygon = new Polygon(pts); } else { pts.Reverse(); polygon.AddHole(new Polygon(pts)); } c.enabled = false; } P2T.Triangulate(polygon); Mesh m = CreateMesh2(polygon.Points, polygon.Triangles); Vector3[] vertices = m.vertices; Color[] colors = new Color[vertices.Length]; int j = 0; while (j < vertices.Length) { colors[j] = l.fillColor; j++; } m.colors = colors; MeshFilter mf = partObj.AddComponent<MeshFilter>(); bool extrudeMesh = false; if (extrudeMesh) { Mesh extruded = new Mesh(); Matrix4x4 m1 = Matrix4x4.TRS(new Vector3(0, 0, 0), Quaternion.identity, new Vector3(1, 1, 1)); List<Matrix4x4> mxs = new List<Matrix4x4>(); mxs.Add(m1); for (int i = 0; i < s.Length; i++) { Matrix4x4 m3 = Matrix4x4.TRS(s[i].exturePos, Quaternion.Euler(s[i].extrudeRotation.x, s[i].extrudeRotation.y, s[i].extrudeRotation.z), s[i].extrudeScale); mxs.Add(m3); } MeshExtrusion.ExtrudeMesh(m, extruded, mxs.ToArray(), false); mf.sharedMesh = extruded; } else { mf.sharedMesh = m; } MeshRenderer mr = partObj.AddComponent<MeshRenderer>(); mr.material = l.hillMaterial; return partObj; }