Example #1
0
    public Enemy SpawnEnemy(AreaInfoStruct areaInfo, int level = -1)
    {
        Enemy enemy = null;

        int roll = Random.Range(0, areaInfo.enemies.Length);

        enemy = Instantiate(areaInfo.enemies[roll], new Vector3(0, 0, 0), Quaternion.identity);

        if (level == -1)
        {
            enemy.SetLevel(Random.Range(areaInfo.minLevel, areaInfo.maxLevel + 1));
        }
        else
        {
            enemy.SetLevel(level);
        }

        //Chance to spawn magic enemy improved by hosts special monster multiplier
        if (Random.Range(0, 1f) <= chanceForSpecialMonster * playerStats.GetSpecialMonsterMultiplier())
        {
            var me = enemy.gameObject.AddComponent <MagicEnemy>();
            Debug.Log("Spawned Magic enemy!" + me.name);
        }

        NetworkServer.Spawn(enemy.gameObject);

        return(enemy.GetComponent <Enemy>());
    }
Example #2
0
 public void SetArea(int areaNumber)
 {
     area        = areaNumber;
     currentArea = areaInformation[area];
 }
Example #3
0
 void RpcClientStartCombat(int areaNumber)
 {
     FindObjectOfType <CombatHud>().Init(areaNumber);
     currentArea = areaInformation[areaNumber];
     areaLoadedEvent.Invoke(currentArea);
 }