private void InitializeComponentsInChildren() { environmentTransforms = GetComponentsInChildren <Transform> (); SpriteRenderer groundSprite = environmentTransforms [environmentTransforms.Length - 2].GetComponent <SpriteRenderer> (); npcSpawner = GetComponentInChildren <NPCSpawner> (); npcSpawner.Initialize(3, groundSprite); List <Transform> npcTransforms = npcSpawner.GetNPCTransforms(); platformSpawner = GetComponentInChildren <PlatformSpawner> (); platformSpawner.Initialize(npcTransforms, groundSprite); playerData = SaveSystem.LoadPlayer(); player.Initialize(this, playerData); player.transform.position = platformSpawner.GetPlayerSpawnPoint(); meteorSpawner = GetComponentInChildren <MeteorSpawner> (); meteorSpawner.Initialize(); uiInGameHandler = GetComponentInChildren <UIInGameHandler> (); uiInGameHandler.Initialize(player, npcTransforms); NPCController [] npcControllers = FindObjectsOfType <NPCController> (); foreach (NPCController npc in npcControllers) { npc.Initialize(this, player.playerData.upgradeLevels[1]); } }
void OnScene(SceneView sceneView) { Handles.BeginGUI(); GUILayout.Label("<b>Unit Spawn Information (Total count : " + spawnerList.Count + ")</b>", richStyle); npcDic.Clear(); for (int i = 0; i < spawnerList.Count; i++) { ISpawner spawner = spawnerList[i]; if (spawner is NPCSpawner) { NPCSpawner nSpawner = spawner as NPCSpawner; uint npcID = (uint)nSpawner.unitId; if (!npcDic.ContainsKey(npcID)) { npcDic.Add(npcID, new List <NPCSpawner>()); } npcDic[npcID].Add(nSpawner); } } foreach (KeyValuePair <uint, List <NPCSpawner> > pair in npcDic) { GUILayout.Label("NPCID : " + pair.Key + " | Count : " + pair.Value.Count + (pair.Value[0].isBoss ? " [BOSS]" : string.Empty), txtColStyle); } Handles.EndGUI(); }
public CrossDependecyResolver(NPCSpawner npcSpawner, QuestManager questManager) { this.questManager = questManager; this.npcSpawner = npcSpawner; Debug.Log("CrossDependencyLoaded"); npcSpawner.QuestManagerInjector = questManager; questManager.NPCSpawnerInjector = npcSpawner; Debug.Log("CrossDependencyResolved"); }
// Use this for initialization void Start() { //InvokeRepeating("TestAndDestroy", 2f, 2f); //walkNormal = true; NPC.ShowSide(); Spawner = GameObject.FindWithTag("NPCSpawner").GetComponent <NPCSpawner>(); mainCanvas = GameObject.FindWithTag("ShopCanvas").GetComponent <Canvas>(); EnableWalkParticles(); }
void Awake() { if (instance == null) { instance = this; } else if (instance != this) { Destroy(gameObject); } }
public virtual void OnGameEnd() { isPlaying = false; UIController uic = UI.GetComponent <UIController>(); uic.ResultsScreen(true); NPCSpawner ns = spawner.GetComponent <NPCSpawner>(); ns.OnGameOver(); }
// Start is called before the first frame update void Awake() { if (current == null) { current = this; } else { Destroy(this.gameObject); return; } }
override public void OnGameEnd() { isPlaying = false; UIControllerNetwork ui = UI.GetComponent <UIControllerNetwork>(); ui.networkResults(); NPCSpawner ns = spawner.GetComponent <NPCSpawner>(); ns.OnGameOver(); }
public NPCSpawnerData(NPCSpawner spawner) { numNpcs = spawner.NumNpcs(); npcIndicies = spawner.GetNpcIndicies(); npcAwake = spawner.GetNpcAwake(); numAwakeNpcs = spawner.GetNumAwakeNpcs(); npcDatas = new NPC.NPCData[numNpcs]; NPC[] npcs = spawner.GetNpcs(); for (int i = 0; i < numNpcs; i++) { npcDatas[i] = new NPC.NPCData(npcs[i]); } }
// Use this for initialization void Start() { if (worldObject == null) { worldObject = GameObject.Find("_Scripts"); } if (worldSpawner == null) { worldSpawner = worldObject.GetComponent <NPCSpawner>(); } path = gameObject.AddComponent <LineRenderer>(); UpdateVisual(); }
// Use this for initialization public void Start() { if (worldObject == null) { worldObject = GameObject.Find("_Scripts"); } if (worldSpawner == null) { worldSpawner = worldObject.GetComponent <NPCSpawner>(); } if (path == null) { path = GetComponent <LineRenderer>(); } }
// Start is called before the first frame update private void Start() { // Starting values sliders = GetComponent <SliderChangeScript>(); burnoutChangeValue = 2f; moodChangeValue = 2f; counterAdd = divideNum; clockTime = clockStart; budgetScript = GetComponent <BudgetScript>(); // Pool NPCs spawner = GetComponent <NPCSpawner>(); // Game events GameEvents.instance.onSundayEvent += itIsSunday; // Start the game loop StartCoroutine(PlayGameLoop()); }
void OnJoinedRoom() { Debug.Log("Joined Room!"); NPCSpawner spawner = GetComponent <NPCSpawner>(); GameObject mePlayer = (GameObject)PhotonNetwork.Instantiate("Player Networked", new Vector3(UnityEngine.Random.Range(spawner.worldMinX, spawner.worldMaxX), UnityEngine.Random.Range(spawner.worldMinY, spawner.worldMaxY)), Quaternion.identity, 0); PlayerMovement pMove = mePlayer.GetComponent <PlayerMovement>(); pMove.gameSettings = gameObject; GameSettingsNetwork gsn = GetComponent <GameSettingsNetwork>(); gsn.myNumber = pMove.playerNumber = PhotonNetwork.playerList.Length - 1; gsn.UpdateNetworkColor(); GetComponent <GameLogicNetwork>().OnLobbyWait(); }
private void WalkTowardsSpotInRegion() { Vector3 position = NPCSpawner.GetRandomPointWithinMeshRegion(region); moveController.move.SetAutoMovePosition(position); }
void InitSpawnCtlr() { // 난이도 선택 및 NPCSpawn 시작! SpawnController[] spawnCtlrs = GameObject.FindObjectsOfType <SpawnController>(); if (null == spawnCtlrs || 0 == spawnCtlrs.Length) { spawnCtlr = ResourceMgr.InstAndGetComponent <SpawnController>("MapComponent/SpawnController"); } else { spawnCtlr = spawnCtlrs[0]; } if (!TutorialGameState.IsTutorial) { spawnCtlr.gameObject.SetActive(false); return; } spawnCtlr.Init(G_GameInfo.PlayerController.Leader.gameObject); CameraManager.instance.mainCamera.enabled = true; //G_GameInfo.PlayerController.Leader.SuperRecoveryTick = float.MaxValue; //G_GameInfo.PlayerController.Leader.CharInfo.SuperArmor = 0; //<========================================== // 스폰될 NPC들 설정해주기 //<========================================== //Dictionary<uint, StageLowData.NpcPostingInfo> placementDic = LowDataMgr.GetSingleStagePlacementDatas(StageInfo.stageId); spawnGroup = spawnCtlr.GetList <SpawnGroup>(); int totalMonster = 0; List <string> SpawnEffects = new List <string>(); for (int i = 0; i < spawnGroup.Count; i++) { SpawnGroup group = spawnGroup[i]; totalMonster += group.spawnerList.Count; for (int spawnerNo = 0; spawnerNo < group.spawnerList.Count; spawnerNo++) { // NPCSpawner만 골라서 처리해주도록 한다. NPCSpawner npcSpawner = group.spawnerList[spawnerNo] as NPCSpawner; if (null == npcSpawner) { continue; } npcSpawner.Owner = group; } // 스폰불가능한 Spawner는 지우도록 한다. group.spawnerList.RemoveAll((spawner) => { bool removed = false; if (spawner is NPCSpawner) { removed = (spawner as NPCSpawner).unitId == 0; } if (removed) { DestroyImmediate((spawner as NPCSpawner).gameObject); } return(removed); }); } spawnCtlr.StartController(); //< 이펙트를 풀에 생성해둔다 for (int i = 0; i < SpawnEffects.Count; i++) { FillSpawnPool(effectPool, SpawnEffects[i], 3); } GameObject arrowGo = GameObject.Find("Arrow"); if (arrowGo == null) { return; } Transform arrowTf = arrowGo.transform; for (int i = 0; i < arrowTf.childCount; i++) { Transform tf = arrowTf.GetChild(i); if (tf == null) { continue; } EventObj eventObj = tf.GetComponent <EventObj>(); if (eventObj == null) { eventObj = tf.gameObject.AddComponent <EventObj>(); } eventObj.EventTarget = G_GameInfo.PlayerController.Leader.gameObject; eventObj.Callback = delegate() { ArrowList.RemoveAt(0); }; eventObj.Hide(); ArrowList.Add(eventObj); } ArrowList[0].Show(); }
void InitSpawnCtlr() { DungeonTable.TowerInfo tLowData = _LowDataMgr.instance.GetLowDataTower(StageId); //TimeLimit = tLowData.limitTime; // 난이도 선택 및 NPCSpawn 시작! SpawnController[] spawnCtlrs = GameObject.FindObjectsOfType <SpawnController>(); if (null == spawnCtlrs || 0 == spawnCtlrs.Length) { spawnCtlr = ResourceMgr.InstAndGetComponent <SpawnController>("MapComponent/SpawnController"); } else { spawnCtlr = spawnCtlrs[0]; } spawnCtlr.Init(G_GameInfo.PlayerController.Leader.gameObject); //<========================================== // 스폰될 NPC들 설정해주기 //<========================================== uint[] Group1_UnitId = new uint[] { tLowData.MobId1, tLowData.MobId2, tLowData.MobId3, }; uint[] Group2_UnitId = new uint[] { tLowData.MobId4, tLowData.MobId5, tLowData.MobId6, }; uint[] Group3_UnitId = new uint[] { tLowData.MobId7, tLowData.MobId8, tLowData.MobId9, tLowData.MobId10, tLowData.MobId11 //얘가 보스. }; spawnGroup = spawnCtlr.GetList <SpawnGroup>(); int totalMonster = 0; List <string> SpawnEffects = new List <string>(); for (int i = 0; i < spawnGroup.Count; i++) { SpawnGroup group = spawnGroup[i]; totalMonster += group.spawnerList.Count; uint[] unitId = Group1_UnitId; if (group.groupNo == 2) { unitId = Group2_UnitId; } if (group.groupNo == 3) { unitId = Group3_UnitId; } for (int spawnerNo = 0; spawnerNo < group.spawnerList.Count; spawnerNo++) { //if (unitId[spawnerNo] == 0)continue; // NPCSpawner만 골라서 처리해주도록 한다. NPCSpawner npcSpawner = group.spawnerList[spawnerNo] as NPCSpawner; if (null == npcSpawner) { continue; } npcSpawner.unitId = (int)unitId[spawnerNo]; npcSpawner.Owner = group; } // 스폰불가능한 Spawner는 지우도록 한다. group.spawnerList.RemoveAll((spawner) => { bool removed = false; if (spawner is NPCSpawner) { removed = (spawner as NPCSpawner).unitId == 0; } if (removed) { DestroyImmediate((spawner as NPCSpawner).gameObject); } return(removed); }); } spawnCtlr.StartController(); //< 이펙트를 풀에 생성해둔다 for (int i = 0; i < SpawnEffects.Count; i++) { FillSpawnPool(effectPool, SpawnEffects[i], 3); } int dropGold = NetData.instance._RewardData.GetCoin; NormalDropGold = Mathf.CeilToInt(dropGold / (totalMonster + 5)); BossDropGold = dropGold - (NormalDropGold * (totalMonster - 1)); }
void InitSpawnCtlr() { // 난이도 선택 및 NPCSpawn 시작! SpawnController[] spawnCtlrs = GameObject.FindObjectsOfType <SpawnController>(); if (null == spawnCtlrs || 0 == spawnCtlrs.Length) { spawnCtlr = ResourceMgr.InstAndGetComponent <SpawnController>("MapComponent/SpawnController"); } else { spawnCtlr = spawnCtlrs[0]; } spawnCtlr.Init(G_GameInfo.PlayerController.Leader.gameObject); //<========================================== // 스폰될 NPC들 설정해주기 //<========================================== //Dictionary<uint, StageLowData.NpcPostingInfo> placementDic = LowDataMgr.GetSingleStagePlacementDatas(StageInfo.stageId); spawnGroup = spawnCtlr.GetList <SpawnGroup>(); int totalMonster = 0; List <string> SpawnEffects = new List <string>(); for (int i = 0; i < spawnGroup.Count; i++) { SpawnGroup group = spawnGroup[i]; totalMonster += group.spawnerList.Count; for (int spawnerNo = 0; spawnerNo < group.spawnerList.Count; spawnerNo++) { // NPCSpawner만 골라서 처리해주도록 한다. NPCSpawner npcSpawner = group.spawnerList[spawnerNo] as NPCSpawner; if (null == npcSpawner) { continue; } npcSpawner.Owner = group; // NPCSpawner에서 SpawnNo를 얻어와서. //if (!placementDic.ContainsKey((uint)npcSpawner.UnitNum)) //{ // if (GameDefine.TestMode) // Debug.Log("UnitLowData.DataInfo Index Error UnitNum : " + npcSpawner.UnitNum + " , StageId : " + StageInfo.stageId); // // 없는 데이터는 스폰안되도록하기. // npcSpawner.unitId = 0; // continue; //} //// 스테이지 정보 데이터 기반으로 스폰될 유닛 셋팅해주기. //npcSpawner.unitId = (int)placementDic[(uint)npcSpawner.UnitNum].unitId; //npcSpawner.GroupNo = (int)placementDic[(uint)npcSpawner.UnitNum].groupNo; //npcSpawner.SetEventData(placementDic[(uint)npcSpawner.UnitNum]); ////< 출현할때 이펙트 리스트를 저장 //if (placementDic[(uint)npcSpawner.UnitNum].intro == 1 && !SpawnEffects.Contains(placementDic[(uint)npcSpawner.UnitNum].introEffect)) // SpawnEffects.Add(placementDic[(uint)npcSpawner.UnitNum].introEffect); } // 스폰불가능한 Spawner는 지우도록 한다. group.spawnerList.RemoveAll((spawner) => { bool removed = false; if (spawner is NPCSpawner) { removed = (spawner as NPCSpawner).unitId == 0; } if (removed) { DestroyImmediate((spawner as NPCSpawner).gameObject); } return(removed); }); } spawnCtlr.StartController(); //< 트랩 스폰 //TrapSpawnController[] TrapspawnCtlrs = GameObject.FindObjectsOfType<TrapSpawnController>(); //if (TrapspawnCtlrs != null && TrapspawnCtlrs.Length > 0) //{ // TrapSpawnController TrapspawnCtlr = TrapspawnCtlrs[0]; // TrapspawnCtlr.Init(); //} //< 이펙트를 풀에 생성해둔다 for (int i = 0; i < SpawnEffects.Count; i++) { FillSpawnPool(effectPool, SpawnEffects[i], 3); } int dropGold = NetData.instance._RewardData.GetCoin; NormalDropGold = Mathf.CeilToInt(dropGold / (totalMonster + 5)); BossDropGold = dropGold - (NormalDropGold * (totalMonster - 1)); }