public void BossMonsterSet(int _maxlife, int _basedamage) { RunRange = 10; attackRange = 4; if (GameObject.FindWithTag("GameManager") == null) { //네트워크 없을 때 실행 함 MonsterBaseData baseData = new MonsterBaseData((int)MonsterId.Bear, "Bear"); baseData.AddLevelData(new MonsterLevelData(1, 20, 0, 300, 5)); MonsterSet(baseData); //uiManager = GameObject.FindWithTag("UIManager").GetComponent<UIManager>(); } isAttack = false; skillInsertImage = GameObject.Find("InGameUICanvas").transform.Find("BossDeadlyPatternImage").Find("BossDeadlyPattern").GetComponent <Image>(); //skillInsertImage = transform.Find("InGameUICanvas").gameObject; halfLife = false; BossMonsterWeapon [0].MonsterWeaponSet(); BossMonsterWeapon [1].MonsterWeaponSet(); patternReserveList = new int[5]; for (int listSet = 0; listSet < patternReserveList.Length; listSet++) { Debug.Log(Random.Range(2, 4)); // max + 1-> (min <-> max) //patternReserveList [listSet] = Random.Range ((int)BigBearBossPatternName.BigBearBossAttack,(int)BigBearBossPatternName.BigBearBossShout); patternReserveList [listSet] = Random.Range((int)BigBearBossPatternName.BigBearBossAttack, (int)BigBearBossPatternName.BigBearBossOneHandAttack + 1); } }
public MonsterStatusData(byte newMonsterNum) { monsterNum = newMonsterNum; monsterData = new MonsterBaseData[monsterNum]; for (int i = 0; i < monsterNum; i++) { monsterData[i] = new MonsterBaseData(); } }
public Monster(MonsterBaseData data, MonsterType type) { hp = data.HP; currentHp = data.HP; speed = data.Speed; strength = data.Strength; Type = type; hitSound = data.HitSound; attackSound = data.AttackSound; deathSound = data.DeathSound; }
public MonsterBaseData(MonsterBaseData newMonsterBaseData) { id = newMonsterBaseData.Id; name = newMonsterBaseData.Name; monsterLevelData = new List <MonsterLevelData>(); foreach (MonsterLevelData levelData in newMonsterBaseData.MonsterLevelData) { monsterLevelData.Add(new MonsterLevelData(levelData)); } }
public void MonsterSet(MonsterBaseData monster) { wall = GameObject.FindGameObjectsWithTag("Wall"); currentDisTanceWall = new float[wall.Length]; animator = this.gameObject.GetComponent <Animator>(); HittedBox = this.gameObject.GetComponent <BoxCollider>(); isAlive = true; isHited = false; moveAble = true; _name = monster.Name; level = monster.MonsterLevelData[0].Level; attack = monster.MonsterLevelData[0].Attack; defense = monster.MonsterLevelData[0].Defense; currentHP = monster.MonsterLevelData[0].HealthPoint; maxHP = monster.MonsterLevelData[0].HealthPoint; moveSpeed = monster.MonsterLevelData[0].MoveSpeed; if (monster.Id == (int)MonsterId.Rabbit || monster.Id == (int)MonsterId.Frog) { searchRange = 12; attackRange = 4; attackCollider = this.transform.GetComponentsInChildren <MonsterWeapon> (); attackCollider[0].MonsterWeaponSet(); } if (monster.Id == (int)MonsterId.Duck) { shockWaveInstantiate = Resources.Load <GameObject>("Effect/Monster_ShockWave"); searchRange = 8; } if (monster.Id == (int)MonsterId.Bear || monster.Id == (int)MonsterId.BlackBear) { attackCollider = this.transform.GetComponentsInChildren <MonsterWeapon> (); attackCollider[0].MonsterWeaponSet(); attackCollider[1].MonsterWeaponSet(); searchRange = 12; attackRange = 3; RunRange = 30; } currentDisTanceArray = new float[player.Length]; aggroRank = new float[player.Length]; playerToMonsterDamage = new float[player.Length]; StartCoroutine(LookatChange()); }
public bool AddBaseData(MonsterBaseData newMonsterData) { try { monsterData.Add(newMonsterData); return(true); } catch (Exception e) { Debug.Log("MonsterDatabase::AddBaseData 에러 - " + e.Message); return(false); } }
public bool AddBaseData(MonsterBaseData newMonsterData) { try { monsterData.Add(newMonsterData); return(true); } catch (Exception e) { Console.WriteLine("MonsterDatabase::AddBaseData.Add 에러 " + e.Message); return(false); } }
private void CreateRemoveAt(string savePath, int index) { var fullPath = savePath + "/" + index + "_Removing"; if (!Directory.Exists(fullPath)) { Directory.CreateDirectory(fullPath); } var nMonsterInfo = new MonsterBaseData(); nMonsterInfo.Id = index; nMonsterInfo.Name = "Removed"; string dataAsJason = JsonUtility.ToJson(nMonsterInfo, true); File.WriteAllText(fullPath + "/" + index + "_Remove.json", dataAsJason); }
//몬스터 스텟 데이터 요청 public void RequestMonsterStatusData(DataPacket packet) { Console.WriteLine(packet.client.RemoteEndPoint.ToString() + "몬스터 스텟 데이터 요청"); RequestDungeonDataPacket requestDungeonDataPacket = new RequestDungeonDataPacket(packet.msg); RequestDungeonData requestDungeonData = requestDungeonDataPacket.GetData(); DungeonLevelData dungeonLevelData = dungeonDatabase.GetDungeonBaseData(requestDungeonData.DungeonId).GetLevelData(requestDungeonData.DungeonLevel); int monsterNum = dungeonLevelData.GetMonsterNum(); MonsterBaseData[] monsterBaseData = new MonsterBaseData[monsterNum]; int dataIndex = 0; for (int stageIndex = 0; stageIndex < dungeonLevelData.Stages.Count; stageIndex++) { for (int monsterIndex = 0; monsterIndex < dungeonLevelData.Stages[stageIndex].MonsterSpawnData.Count; monsterIndex++) { int monsterId = dungeonLevelData.Stages[stageIndex].MonsterSpawnData[monsterIndex].MonsterId; int monsterLevel = dungeonLevelData.Stages[stageIndex].MonsterSpawnData[monsterIndex].MonsterLevel; monsterBaseData[dataIndex] = new MonsterBaseData(monsterDatabase.GetBaseData(monsterId)); MonsterLevelData monsterLevelData = new MonsterLevelData(monsterDatabase.GetBaseData(monsterId).GetLevelData(monsterLevel)); monsterBaseData[dataIndex].MonsterLevelData.Clear(); monsterBaseData[dataIndex].AddLevelData(monsterLevelData); dataIndex++; } } MonsterStatusData monsterStatusData = new MonsterStatusData((byte)monsterNum, monsterBaseData); MonsterStatusPacket monsterStatusPacket = new MonsterStatusPacket(monsterStatusData); monsterStatusPacket.SetPacketId((int)ServerPacketId.MonsterStatusData); byte[] msg = CreatePacket(monsterStatusPacket); packet = new DataPacket(msg, packet.client); lock (sendLock) { sendMsgs.Enqueue(packet); } }
void Start() { //SceneManager = this.scene; //test if (GameObject.FindGameObjectWithTag("GameManager") == null) { players = GameObject.FindGameObjectsWithTag("Player"); } //Instantiate 스폰포인트 생성조건 - > mapNumber != 2; // if (scenmanager.name == ("ProtoTypeCoPy3")) { mapNumber = 3; // } if (mapNumber == 2) { normalMode = false; } if (mapNumber != 2) { normalMode = true; } DungeonConstruct(); if (GameObject.FindGameObjectWithTag("GameManager") == null) { InitializeMonsterSpawnPoint(); // if(mapNumber==3){ MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[4]; monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3); monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 4); monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 1); monsterSpawnData[3] = new MonsterSpawnData((int)MonsterId.BlackBear, 1); monsterSpawnList = new MonsterSpawnList(4, monsterSpawnData); MonsterBaseData[] monsterBaseData = new MonsterBaseData[4]; monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog"); monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5)); monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck"); monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4)); monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit"); monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 4)); monsterBaseData[3] = new MonsterBaseData((int)MonsterId.BlackBear, "BlackBear"); monsterBaseData[3].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 1)); dungeonData = new MonsterStatusData(4, monsterBaseData); // } // if (mapNumber == 1) { // MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[3]; // monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3); // monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 3); // monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 2); // monsterSpawnList = new MonsterSpawnList(3, monsterSpawnData); // // MonsterBaseData[] monsterBaseData = new MonsterBaseData[3]; // monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog"); // monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5)); // monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck"); // monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4)); // monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit"); // monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 100, 4)); // // dungeonData = new MonsterStatusData(3, monsterBaseData); // } // MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[4]; // monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3); // monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 4); // monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 1); // monsterSpawnData[3] = new MonsterSpawnData((int)MonsterId.BlackBear, 1); // monsterSpawnList = new MonsterSpawnList(4, monsterSpawnData); // // MonsterBaseData[] monsterBaseData = new MonsterBaseData[4]; // monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog"); // monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5)); // monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck"); // monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4)); // monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit"); // monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 100, 4)); // monsterBaseData[3] = new MonsterBaseData((int)MonsterId.BlackBear, "BlackBear"); // monsterBaseData[3].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 4)); // dungeonData = new MonsterStatusData(4, monsterBaseData); SetMonsterSpawnList(monsterSpawnList); SpawnMonster(); SetMonsterStatus(); } // if (GameObject.FindGameObjectWithTag("GameManager") == null) // { // //스폰 포인트 찾기 // InitializeMonsterSpawnPoint(); // // //서버에서 온 데이터 : monsterSpawnData // //여기서는 직접 데이터를 설정 // MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[1]; // monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Bear, 1); // //monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.BlackBear, 1); // // //던전 데이터에서 몬스터 스폰 리스트를 monsterSpawnData로 설정 // //그러면 몬스터 생성 숫자가 설정됨(종류, 개수) // monsterSpawnList = new MonsterSpawnList(1, monsterSpawnData); // // //서버에서 온 데이터 : monsterBaseData // MonsterBaseData[] monsterBaseData = new MonsterBaseData[1]; // monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Bear, "Bear"); // monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30,1)); // // //던전 데이터에서 몬스터 스탯테이블을 monsterBaseData로 설정 // //그러면 위의 몬스터 생성할때 스탯이 이렇게 설정됨 // dungeonData = new MonsterStatusData(1, monsterBaseData); // // SpawnMonster(); // SetMonsterStatus(); // } }
public void MonsterSet(MonsterBaseData monster) { player = GameObject.FindGameObjectsWithTag("Player"); wall = GameObject.FindGameObjectsWithTag("Wall"); //currentDisTanceWall = new float[wall.Length]; //SetMonsterSound(); animator = this.gameObject.GetComponent <Animator>(); HittedBox = this.gameObject.GetComponent <BoxCollider>(); isAlive = true; isHited = false; moveAble = true; randomStandby = 0; roarBreak = false; _name = monster.Name; level = monster.MonsterLevelData[0].Level; attack = monster.MonsterLevelData[0].Attack; defense = monster.MonsterLevelData[0].Defense; currentHP = monster.MonsterLevelData[0].HealthPoint; maxHP = monster.MonsterLevelData[0].HealthPoint; moveSpeed = monster.MonsterLevelData[0].MoveSpeed; // if (monsterId == MonsterId.Rabbit) { searchRange = 20; attackRange = 4; attackCollider = this.transform.GetComponentsInChildren <MonsterWeapon>(); attackCollider[0].MonsterWeaponSet(); } if (monsterId == MonsterId.Duck || monsterId == MonsterId.Frog) { if (monsterId == MonsterId.Duck) { bulletInstantiate = new GameObject[1]; bulletInstantiate[0] = Resources.Load <GameObject>("Effect/Monster_ShockWave"); } if (monsterId == MonsterId.Frog) { bulletInstantiate = new GameObject[1]; bulletInstantiate[0] = Resources.Load <GameObject>("Monster/FrogBullet"); } searchRange = 15; attackRange = 9; } if (monsterId == MonsterId.Bear || monsterId == MonsterId.BlackBear) { if (monsterId == MonsterId.BlackBear) { bulletInstantiate = new GameObject[1]; bulletInstantiate[0] = Resources.Load <GameObject>("Effect/BossDarkSphere"); } attackCollider = this.transform.GetComponentsInChildren <MonsterWeapon>(); for (int i = 0; i < attackCollider.Length; i++) { attackCollider[i].MonsterWeaponSet(); } searchRange = 20; attackRange = 3; RunRange = 30; shootNumber = 6; } currentDisTanceArray = new float[player.Length]; aggroRank = new float[player.Length]; playerToMonsterDamage = new float[player.Length]; if (NetworkManager.Instance.MyIndex == 0) { StartCoroutine(MonsterUpdate()); StartCoroutine(ChangeRandomStanby()); normalMode = DungeonManager.Instance.IsNormal; if (MonsterId == MonsterId.Rabbit && !normalMode) { MonsterAIStart(!normalMode); } else { MonsterAIStart(normalMode); } DataSender.Instance.UnitPositionSend(gameObject); } }
void Start() { //test if (GameObject.FindGameObjectWithTag("GameManager") == null) { players = GameObject.FindGameObjectsWithTag("Player"); } //Instantiate 스폰포인트 생성조건 - > mapNumber != 2; mapNumber = 2; normalMode = false; DungeonConstruct(); if (GameObject.FindGameObjectWithTag("GameManager") == null) { InitializeMonsterSpawnPoint(); MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[3]; monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 9); monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 12); monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 6); monsterSpawnList = new MonsterSpawnList(3, monsterSpawnData); MonsterBaseData[] monsterBaseData = new MonsterBaseData[3]; monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog"); monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5)); monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck"); monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4)); monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit"); monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 75, 4)); dungeonData = new MonsterStatusData(3, monsterBaseData); SetMonsterSpawnList(monsterSpawnList); SpawnMonster(); SetMonsterStatus(); } // if (GameObject.FindGameObjectWithTag("GameManager") == null) // { // //스폰 포인트 찾기 // InitializeMonsterSpawnPoint(); // // //서버에서 온 데이터 : monsterSpawnData // //여기서는 직접 데이터를 설정 // MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[1]; // monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Bear, 1); // //monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.BlackBear, 1); // // //던전 데이터에서 몬스터 스폰 리스트를 monsterSpawnData로 설정 // //그러면 몬스터 생성 숫자가 설정됨(종류, 개수) // monsterSpawnList = new MonsterSpawnList(1, monsterSpawnData); // // //서버에서 온 데이터 : monsterBaseData // MonsterBaseData[] monsterBaseData = new MonsterBaseData[1]; // monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Bear, "Bear"); // monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30,1)); // // //던전 데이터에서 몬스터 스탯테이블을 monsterBaseData로 설정 // //그러면 위의 몬스터 생성할때 스탯이 이렇게 설정됨 // dungeonData = new MonsterStatusData(1, monsterBaseData); // // SpawnMonster(); // SetMonsterStatus(); // } }