Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    public MonsterStatusData(byte newMonsterNum)
    {
        monsterNum  = newMonsterNum;
        monsterData = new MonsterBaseData[monsterNum];

        for (int i = 0; i < monsterNum; i++)
        {
            monsterData[i] = new MonsterBaseData();
        }
    }
Exemplo n.º 3
0
 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));
        }
    }
Exemplo n.º 5
0
    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());
    }
Exemplo n.º 6
0
 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);
        }
Exemplo n.º 9
0
    //몬스터 스텟 데이터 요청
    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);
        }
    }
Exemplo n.º 10
0
    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();
//		}
    }
Exemplo n.º 11
0
    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);
        }
    }
Exemplo n.º 12
0
    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();
//		}
    }