Inheritance: MonoBehaviour
Example #1
0
 // Use this for initialization
 void Awake()
 {
     lg = FindObjectOfType<LevelGen>();
     image = GetComponent<Image>();
     villageNameText = transform.parent.FindChild("VillageText")
             .GetComponent<Text>();
 }
Example #2
0
 /// <summary>
 /// Prepare for the level to start
 /// </summary>
 public void LevelStart()
 {
     // disable bounds collider
     CheckCol();
     cacheCol.enabled = false;
     roomStartEvent.Invoke();
     foreach (var lc in allLevelComponents)
     {
         if (lc != null)
         {
             lc.SetUsing(usedLevelComponents.Contains(lc));
         }
     }
     // keys
     foreach (var lckey in keyLevelComponents)
     {
         lckey.SetUsing(false);//haskey
     }
     if (hasKey)
     {
         if (keyLevelComponents.Count == 0)
         {
             Debug.LogError("no key in " + name + " but is needed");
         }
         // todo other things in chests
         LevelGen.GetRandomIn <LevelComponent>(keyLevelComponents.ToArray()).SetUsing(true);
     }
     // todo?
 }
Example #3
0
    protected void Start()
    {
        // Get level object
        levelObj = GameObject.Find("Level");
        maze     = levelObj.GetComponent <Maze>();
        levelGen = levelObj.GetComponent <LevelGen>();

        // Create fade texture (used for pause screen fade)
        fadeTexture = new Texture2D(1, 1);
    }
Example #4
0
	protected void Start()
	{
		// Get level object
		levelObj = GameObject.Find("Level");
		maze = levelObj.GetComponent<Maze>();
		levelGen = levelObj.GetComponent<LevelGen>();

		// Create fade texture (used for pause screen fade)
		fadeTexture = new Texture2D(1, 1);
	}
Example #5
0
    void Start()
    {
        lg = this;
        pm = PuaseMenu.pm;

        level = new int[4, 4];          // level is represented by a 4x4 grid

        templates    = GetComponent <Templates>();
        leviathanPos = lev.transform.position;
        Init();
    }
Example #6
0
    void Awake()
    {
        instance    = this;
        playerClip  = new List <GameObject> ();
        enemyClip   = new List <GameObject> ();
        missileClip = new List <GameObject> ();

        blueShips  = new List <GameObject> ();
        redShips   = new List <GameObject> ();
        brownShips = new List <GameObject> ();
        globeShips = new List <GameObject> ();
    }
Example #7
0
        public void Set(GEntity e)
        {
            int sx = e.iX / GTile.WIDTH * _zoom;
            int sy = e.iY / GTile.HEIGHT * _zoom;

            for (int i = 0; i < _zoom; i++)
            {
                for (int j = 0; j < _zoom; j++)
                {
                    Image.SetPixel(sx + i, sy + j, LevelGen.GetEntityColor(e));
                }
            }
        }
Example #8
0
 private void btnStart_Click(object sender, EventArgs e)
 {
     if (btnStart.Text == "Continue game")
     {
         // Generate a random level. See LevelGenerator.cs
         LevelGen.NewLevel();
     }
     else if (btnStart.Text == "New game")
     {
         // SaveSystem.cs
         SaveSystem.SaveLoader();
         this.Hide();
     }
 }
 private void txtNameEntry_KeyPress(object sender, KeyPressEventArgs e)
 {
     if ((int)e.KeyChar == 13) // Enter
     {
         TextWriter saveGame = new StreamWriter("SaveGame.txt");
         SaveSystem.name = txtNameEntry.Text;
         saveGame.WriteLine(SaveSystem.name);
         SaveSystem.saveGameExists = true;
         saveGame.WriteLine(SaveSystem.saveGameExists);
         saveGame.Close();
         LevelGen.NewLevel();
         this.Close();
     }
 }
Example #10
0
    override public void  OnInspectorGUI()
    {
        LevelGen LevelGen = (LevelGen)target;

        if (GUILayout.Button("Generate Level"))
        {
            LevelGen.GenerateLevel();
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
        DrawDefaultInspector();
    }
        public override void drawRoom(LevelGen.Dungeon d_in, LevelGen.Brush b_in, Map m_in)
        {
            base.drawRoom (d_in, b_in, m_in);

            for ( int i = -1; i > -8; i-- ) {
                for ( int x = 2; x <= 4; x++ ) for ( int y = 0; y <= 2; y++ ) d_in.Place (new LevelGen.Position(ActualLocation.x+x+1,i,ActualLocation.y+y+1),b_in);
                for ( int x = 12; x <= 14; x++ ) for ( int y = 2; y <= 4; y++ ) d_in.Place (new LevelGen.Position(ActualLocation.x+x+1,i,ActualLocation.y+y+1),b_in);
                for ( int x = 10; x <= 12; x++ ) for ( int y = 12; y <= 14; y++ ) d_in.Place (new LevelGen.Position(ActualLocation.x+x+1,i,ActualLocation.y+y+1),b_in);
                for ( int x = 0; x <= 2; x++ ) for ( int y = 10; y <= 12; y++ ) d_in.Place (new LevelGen.Position(ActualLocation.x+x+1,i,ActualLocation.y+y+1),b_in);
            }

            d_in.Place(new LevelGen.Position(ActualLocation.x+4,-6,ActualLocation.y+2), endBrush);
            d_in.Place(new LevelGen.Position(ActualLocation.x+14,-6,ActualLocation.y+4), endBrush);
            d_in.Place(new LevelGen.Position(ActualLocation.x+12,-6,ActualLocation.y+14), endBrush);
            d_in.Place(new LevelGen.Position(ActualLocation.x+2,-6,ActualLocation.y+12), endBrush);
        }
Example #12
0
    public override void OnInspectorGUI()
    {
        LevelGen level = (LevelGen)target;

        if (GUILayout.Button("generate"))
        {
            level.Generate();
        }

        if (GUILayout.Button("build"))
        {
            level.Build();
        }

        DrawDefaultInspector();
    }
Example #13
0
    // Start is called before the first frame update
    void Start()
    {
        letterText     = textObject.GetComponent <TextMeshProUGUI>();
        nextLetterText = nextTextObject.GetComponent <TextMeshProUGUI>();

        LevelScript    = LevelGenerator.GetComponent <LevelGen>();
        colorMappings  = LevelScript.colorMappings;
        passwordLength = LevelScript.passwordLength;

        gameObject.transform.position = colorMappings[colorMappings.Length - 1].pos;

        tilesLeft       = colorMappings.Length - 1;
        currentPassword = colorMappings[tilesLeft].password;
        lettersLeft     = passwordLength - 1;
        letterText.text = currentPassword[lettersLeft];
        nLT();
    }
        public void InitLevelList()
        {
            Controls.Clear();

            Selector = new SelectableGrid(Input, 100, 60, 4);
            Selector.SetX(100);
            Selector.SetY(60);
            Selector.SetBorder(3);
            Selector.SetItemDimension(100, 100);

            LevelManager manager = new LevelManager();

            for (int i = 0; i < manager.GetLevelsAmount(GameLevel.GetMode()); ++i)
            {
                string  name      = manager.GetLevelName(GameLevel.GetMode(), i);
                GBitmap thumbnail = LevelGen.CreateThumbnail(manager.GetLevelStream(GameLevel.GetMode(), i));
                Selector.Push(new GridItem(manager.ParseName(GameLevel.GetMode(), name), thumbnail));
            }

            Controls.Add(Selector);
        }
        public void Construct(string fileName)
        {
            Screen.Fill(255, 0, 0, 0);

            FileInfo f    = new FileInfo(fileName);
            Modes    mode = Modes.Deathmatch;

            if (f.Directory.Name == "dm")
            {
                mode = Modes.Deathmatch;
            }
            else if (f.Directory.Name == "tdm")
            {
                mode = Modes.TeamDeathmatch;
            }
            else if (f.Directory.Name == "ctf")
            {
                mode = Modes.CaptureFlag;
            }
            var t = LevelGen.ParseLevel(fileName);

            _width       = (int)t[0];
            _height      = (int)t[1];
            _mapGameMode = mode;
            _name        = f.Name.Substring(0, f.Name.IndexOf(f.Extension));

            _constructLabels();

            _mapEditor              = new MapEditor(Input, _width, _height, _mapGameMode, this, (List <GEntity>)t[2], (List <GEntity>)t[3], (List <GEntity>)t[4]);
            _mapEditor.Screen       = Screen;
            _mapEditor.OffsetX      = 0;
            _mapEditor.OffsetY      = 28;
            _mapEditor.BottomOffset = 65;

            Resized();
            _clearScreen = true;
        }
Example #16
0
 public void ForceUseLComponent(LevelComponent component)
 {
     if (component == null)
     {
         Debug.Log("null component found " + name + "." + component.name + ". ignoring");
         return;
     }
     if (component.isInUse)
     {
         return;
     }
     blockedConnectors.AddRange(blockedConnectors);
     component.isInUse = true;
     usedLevelComponents.Add(component);
     foreach (var forceC in component.forceUse)
     {
         TryUseLComponent(forceC);
     }
     if (component.requireOneOf.Count > 0)
     {
         var choosenOne = LevelGen.GetRandomIn <LevelComponent>(component.requireOneOf.ToArray(), out int rofi);
         TryUseLComponent(choosenOne);
     }
 }
    private static void InstantiateMonster(MonsterData monster, float xRoll, float yRoll, LevelGen levelGen)
    {
        var prefab = GetMonsterPrefab(monster);

        if (prefab != null)
        {
            var obj = GameObject.Instantiate(prefab, new Vector3(xRoll, 0, yRoll), new Quaternion());
            obj.transform.parent = LevelGen.instance.dungeonInstance.transform;
            levelGen.instantiatedObjects.Add(obj);
            SetupMonster(obj, monster.level, monster.quality, PlayerCharacter.localPlayer.gameObject);
        }
    }
Example #18
0
    void Start()
    {
        Scene s = SceneManager.GetActiveScene();

        map = s.name;

        GameObject levelG      = Resources.Load("Prefabs/Scripts/LevelGen") as GameObject;
        GameObject gen         = Instantiate(levelG, new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
        LevelGen   generateMap = gen.GetComponent <LevelGen>();

        GameObject f = new GameObject("Floors");

        generateMap.floors = f;
        GameObject c = new GameObject("Ceilings");

        generateMap.ceilings = c;
        GameObject w = new GameObject("Walls");

        generateMap.walls = w;

        generateMap.level    = map;
        generateMap.spaceMod = UnityEngine.Random.Range(1.5f, 2f);

        generateMap.genMap();
        xStartPos = generateMap.getXStart();
        yStartPos = generateMap.getYStart();
        //print(xStartPos);
        //print(yStartPos);

        GameObject player;
        Statistics stats;

        GameObject[] players = GameObject.FindGameObjectsWithTag("Player");
        foreach (GameObject g in players)
        {
            g.transform.position = new Vector3(xStartPos, 2, yStartPos);
            player = g;
            stats  = g.GetComponent <Statistics>();
            Inventory     i    = player.GetComponent <Inventory>();
            PlayerControl cont = player.GetComponent <PlayerControl>();
            cont.startX = xStartPos;
            cont.startY = 2;
            cont.startZ = yStartPos;

            //REMOVED WHEN OTHER PART BACK In
            if (i.equipped[0] == null)
            {
                GameObject sword = Instantiate(Resources.Load("Prefabs/Weapons/SmallSword")) as GameObject;
                i.addItem(sword);
            }
            //

            //removeWeatherEffects(g);

            if (map == "dream")
            {
                stats.setMusic(1);

                /* REMOVED FOR NOW
                 * GameObject sword = Instantiate(Resources.Load("Prefabs/Weapons/SmallSword")) as GameObject;
                 * i.addItem(sword);
                 * //god stats etc
                 * stats.maxHealth = 200;
                 * stats.curHealth = 200;
                 * stats.maxMana = 100;
                 * stats.curMana = 100;
                 * stats.attack = 30;
                 * stats.magicAttack = 30;
                 * stats.strength = 20;
                 * stats.intellect = 15;
                 * stats.agility = 15;
                 * cont.refreshStats();
                 * stats.level = 10;
                 * i.updateAllStatisitics();
                 *
                 * //changeLightSize(player, 50,1);
                 * //setParticles(Resources.Load("Prefabs/Particles/Fog") as GameObject, player);
                 */
            }
            else if (map == "forest")
            {
                stats.setMusic(2);

                /* REMOVED FOR NOW
                 * //check if sword is equipped
                 * if (i.equipped[0] == null)
                 * {
                 *  GameObject sword = Instantiate(Resources.Load("Prefabs/Weapons/SmallSword")) as GameObject;
                 *  i.addItem(sword);
                 * }
                 *
                 *
                 * //rain on, drop all items
                 * stats.maxHealth = 100;
                 * stats.curHealth = 100;
                 * stats.maxMana = 50;
                 * stats.curMana = 50;
                 * stats.attack = 10;
                 * stats.magicAttack = 25;
                 * stats.strength = 5;
                 * stats.intellect = 5;
                 * stats.agility = 10;
                 *
                 * cont.refreshStats();
                 * i.updateAllStatisitics();
                 * stats.level = 1;
                 *
                 * //changeLightSize(player, 30,1);
                 * //setParticles(Resources.Load("Prefabs/Particles/Rain") as GameObject, g);
                 */
            }
            else if (map == "dungeon")
            {
                //changeLightSize(player, 50, 1.5f);
                stats.setMusic(3);
            }
            else if (map == "endLevel")
            {
                changeLightSize(player, 30, 1f);
                stats.setMusic(4);
                //setParticles(Resources.Load("Prefabs/Particles/Rain") as GameObject, player);
            }
            else if (map == "WinterForest")
            {
                //setParticles(Resources.Load("Prefabs/Particles/Fog") as GameObject, player);
            }
        }

        GameObject e    = GameObject.FindGameObjectWithTag("LevelSwitch");
        ExitLevel  exit = e.GetComponent <ExitLevel>();

        exit.setLevel(map);
    }
Example #19
0
        public Level(int w, int h, int level, Level parentLevel)
        {
            unchecked
            {
                if (level < 0)
                {
                    dirtColor = 222;
                }
                this.depth = level;
                this.w     = w;
                this.h     = h;
                byte[][] maps;

                if (level == 1)
                {
                    dirtColor = 444;
                }
                if (level == 0)
                {
                    maps = LevelGen.createAndValidateTopMap(w, h);
                }
                else if (level < 0)
                {
                    maps           = LevelGen.createAndValidateUndergroundMap(w, h, -level);
                    monsterDensity = 4;
                }
                else
                {
                    maps           = LevelGen.createAndValidateSkyMap(w, h); // Sky level
                    monsterDensity = 4;
                }

                tiles = maps[0];
                data  = maps[1];

                if (parentLevel != null)
                {
                    for (int y = 0; y < h; y++)
                    {
                        for (int x = 0; x < w; x++)
                        {
                            if (parentLevel.getTile(x, y) == Tile.stairsDown)
                            {
                                setTile(x, y, Tile.stairsUp, 0);
                                if (level == 0)
                                {
                                    setTile(x - 1, y, Tile.hardRock, 0);
                                    setTile(x + 1, y, Tile.hardRock, 0);
                                    setTile(x, y - 1, Tile.hardRock, 0);
                                    setTile(x, y + 1, Tile.hardRock, 0);
                                    setTile(x - 1, y - 1, Tile.hardRock, 0);
                                    setTile(x - 1, y + 1, Tile.hardRock, 0);
                                    setTile(x + 1, y - 1, Tile.hardRock, 0);
                                    setTile(x + 1, y + 1, Tile.hardRock, 0);
                                }
                                else
                                {
                                    setTile(x - 1, y, Tile.dirt, 0);
                                    setTile(x + 1, y, Tile.dirt, 0);
                                    setTile(x, y - 1, Tile.dirt, 0);
                                    setTile(x, y + 1, Tile.dirt, 0);
                                    setTile(x - 1, y - 1, Tile.dirt, 0);
                                    setTile(x - 1, y + 1, Tile.dirt, 0);
                                    setTile(x + 1, y - 1, Tile.dirt, 0);
                                    setTile(x + 1, y + 1, Tile.dirt, 0);
                                }
                            }
                        }
                    }
                }

                entitiesInTiles = new List <Entity> [w * h];
                for (int i = 0; i < w * h; i++)
                {
                    entitiesInTiles[i] = new List <Entity>();
                }

                if (level == 1)
                {
                    AirWizard aw = new AirWizard();
                    aw.x = w * 8;
                    aw.y = h * 8;
                    add(aw);
                }
            }
        }
 void Start()
 {
     lg = LevelGen.lg;
     pm = PuaseMenu.pm;
 }
Example #21
0
 void Awake()
 {
     lg = FindObjectOfType<LevelGen>();
     text = GetComponent<Text>();
 }
Example #22
0
    // Use this for initialization
    void Awake()
    {
        levelGen = GetComponent <LevelGen>();

        players = new List <Player>();
    }
Example #23
0
    // Use this for initialization
    void Start()
    {
        Random.InitState(randomSeed);

        parentGen = GameObject.Find("Main").GetComponent <LevelGen>();
        iStats    = parentGen.islandStats[iStatsIndex];
        SetBaseHeight(iStats.baseLayerHeight);


        islandUpdater = GetComponent <IslandUpdater>();

        transform.position = Random.onUnitSphere;
        farHolder          = transform.Find("Far");
        closeHolder        = transform.Find("Close");

        cloudHolder            = transform.Find("CloudHolder");
        cloudHolder.localScale = Vector3.one * radius / 2;
        cloudCover             = cloudHolder.GetComponentInChildren <ParticleSystem>();
        cloudHolder.gameObject.SetActive(false); //TODO Re enable if this ever works well enough

        ParticleSystem.MainModule cloudCoverMain = cloudCover.main;
        cloudCoverMain.startSizeMultiplier *= radius;

        spin       = Random.Range(0.0f, 360.0f);
        spinSpeed  = Random.Range(-maxSpinSpeed, maxSpinSpeed);
        timeRecalc = Random.Range(0, parentGen.islandMoveIntervals);

        foreach (PerlinLayer layer in iStats.layerStats)
        {
            layer.Set(); //TODO maybe save seperatley incase we need to reaccess this (it will get overwritten by the next island)
        }

        GenerateLowQuality();
        tiles = new HexType[iStats.layerStats.Count + iStats.cityLayerStats.Count, size, size];
        GenerateBaseHexes();
        //TODO put in a loop
        if (iStats.cityLayerStats.Count != 0)
        {
            for (int index = 0; index < iStats.cityLayerStats.Count; index++)
            {
                iStats.cityLayerStats[index].GenerateHuts(iStats.layerStats.Count + index, tiles);
                iStats.cityLayerStats[index].GenerateConnections(iStats.layerStats.Count + index, tiles);
                iStats.cityLayerStats[index].RemoveSingleHuts(iStats.layerStats.Count + index, tiles);
                iStats.cityLayerStats[index].FillHoles(iStats.layerStats.Count + index, tiles);
                iStats.cityLayerStats[index].RemoveIfNoBottom(iStats.layerStats.Count + index, tiles);
                if (index != 0)
                {
                    iStats.cityLayerStats[index - 1].GenerateStairs(iStats.layerStats.Count + index - 1, tiles);
                }
                //iStats.cityLayerStats [index].RemoveSingleHuts (iStats.layerStats.Count + index, tiles);
            }
        }
        DrawBaseHexes();
        if (iStats.cityLayerStats.Count != 0)
        {
            DrawCityHexes();
        }

        CapsuleCollider cTemp = gameObject.GetComponent <CapsuleCollider>();

        cTemp.radius = radius + 5;
        cTemp.height = cTemp.radius * 2f;

        OcclusionArea oTemp = gameObject.GetComponent <OcclusionArea>();

        oTemp.size = Vector3.one * (radius + 1) * 2;

        islandUpdater.SetExpectedNumOfWeapons();

        //TODO Fix to allow more or less islands added.
        if (!isServer)
        {
            parentGen.islandStats[iStatsIndex].islands.Add(this);
            parentGen.AddOneIsland(this);
        }

        SetFar(true);

        Random.InitState((int)System.DateTime.Now.Ticks);

        if (isServer)
        {
            UpdateToSpherePosition(true);
        }
    }
Example #24
0
 void Awake()
 {
     selectedPath   = new List <HexTile>();
     gameController = GetComponent <GameController>();
     levelGen       = GetComponent <LevelGen>();
 }
Example #25
0
    // Use this for initialization
    void Start()
    {
        tt = FindObjectOfType<TapTarget>();
        lg = FindObjectOfType<LevelGen>();
        children = new List<GameObject>();
        for (int index = 0; index < transform.childCount; index++) {
            children.Add(transform.GetChild(index).gameObject);
        }
        message = GetComponentInChildren<InputField>();

        itemImage = transform.FindChild("ItemImage").GetComponent<Image>();
        pickupDropIcon = itemImage.transform.FindChild("PickupDropImage")
                .GetComponent<Image>();
        valueText = itemImage.transform.FindChild("ItemValue")
                .GetComponent<Text>();

        lastTTPos = tt.transform.position;
    }
Example #26
0
    void Awake()
    {
        instance = this;
        playerClip = new List<GameObject> ();
        enemyClip = new List<GameObject> ();
        missileClip = new List<GameObject> ();

        blueShips = new List<GameObject> ();
        redShips = new List<GameObject> ();
        brownShips = new List<GameObject> ();
        globeShips = new List<GameObject> ();
    }
Example #27
0
 void Awake()
 {
     S = this;
 }
 public LevelGen()
 {
     instance = this;
 }
Example #29
0
 // Use this for initialization
 void Start()
 {
     levelGen       = GameObject.Find("Main").GetComponent <LevelGen> ();
     timeUntilRadar = maxTimeBetweenRadar;
 }
 public static void InstantiateMonsters(int floor, DesignedBuilding layout, SocialStructure socialStructure, LevelGen levelGen)
 {
     //if (!NetworkServer.active) return;
     foreach (var monster in socialStructure.population)
     {
         int roll = Random.Range(0, monster.associatedRooms.Count);
         var room = monster.associatedRooms[roll];
         if (room.floor != floor)
         {
             continue;
         }
         float xRoll = Random.Range(5f * room.x, 5f * (room.x + room.xSize - 1));
         float yRoll = Random.Range(5f * room.y, 5f * (room.y + room.ySize - 1));
         if (monster.quality == 4)
         {
             xRoll = (room.x + (room.xSize / 2)) * 4;
             yRoll = (room.y + (room.ySize / 2)) * 4;
         }
         InstantiateMonster(monster, xRoll, yRoll, levelGen);
     }
 }
Example #31
0
    // Use this for initialization
    void Start()
    {
        if (settingLevel)
        {
            CmdSetTargetLevel(targetLevel);
        }
        //if (!NetworkServer.active) return;
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
            return;
        }
        foreach (var pair in prefabs)
        {
            foreach (var pair2 in pair.Value)
            {
                var keys = new List <string>();
                foreach (var pair3 in pair2.Value)
                {
                    keys.Add(pair3.Key);
                }
                foreach (var item in keys)
                {
                    pair2.Value[item] = (GameObject)Resources.Load("Prefabs/Dungeon/" + item);
                }
            }
        }
        int roll = Random.Range(0, dungeonTypes.Count);

        dungeonType = dungeonTypes[roll];

        //dungeonType = dungeonTypes[4]; // TEMP TO SEE MONSTERS
        dungeonType = dungeonTypes[6]; // TEMP FOR TESTING

        roll = Random.Range(0, 2);
        if (roll == 0)
        {
            resettled = true;
        }

        resettled = false; // TEMP FOR TESTING

        if (dungeonType.settingType == DungeonSetting.INCIDENTAL)
        {
            resettled = true;
        }
        if (dungeonData == null || !dungeonData.entered)
        {
            GenerateDungeonLayout();
        }
        else
        {
            GenerateLoadedDungeonLayout();
        }

        //TEMP TO VARY MUSIC UNTIL FULL LEVEL GEN IS FINISHED
        var types = new List <string>()
        {
            "castle",
            "mine",
            "sewer",
            "temple",
            "vault",
            "tomb"
        };
        var roll2 = Random.Range(0, 7);

        if (roll2 < 6)
        {
            dungeonType = new DungeonType(DungeonSetting.DESIGNED, types[roll2]);
        }
        else
        {
            dungeonType = new DungeonType(DungeonSetting.DESIGNED, types[Random.Range(0, 6)]);
            resettled   = true;
        }
        //END TEMP TO VARY MUSIC
    }
Example #32
0
 bool RoomCheck(int x, int y, int [,] map)
 {
     return(LevelGen.IsInGrid(x, y, map) && map[x, y] != 0);
 }
 public LevelGen()
 {
     instance = this;
 }
Example #34
0
 private void Awake()
 {
     levelGen       = GetComponentInParent <LevelGen>();
     gameController = GetComponentInParent <GameController>();
     selector       = GetComponentInParent <Selector>();
 }
Example #35
0
        public Level(int w, int h, int level, Level parentLevel)
        {
            DirtColor = 322;
            unchecked
            {
                if (level < 0)
                {
                    DirtColor = 222;
                }
                Depth = level;
                W     = w;
                H     = h;
                byte[][] maps;

                if (level == 1)
                {
                    DirtColor = 444;
                }
                if (level == 0)
                {
                    maps = LevelGen.CreateAndValidateTopMap(w, h);
                }
                else if (level < 0)
                {
                    maps           = LevelGen.CreateAndValidateUndergroundMap(w, h, -level);
                    MonsterDensity = 4;
                }
                else
                {
                    maps           = LevelGen.CreateAndValidateSkyMap(w, h); // Sky level
                    MonsterDensity = 4;
                }

                Tiles = maps[0];
                Data  = maps[1];

                if (parentLevel != null)
                {
                    for (int y = 0; y < h; y++)
                    {
                        for (int x = 0; x < w; x++)
                        {
                            if (parentLevel.GetTile(x, y) != Tile.StairsDown)
                            {
                                continue;
                            }
                            SetTile(x, y, Tile.StairsUp, 0);
                            if (level == 0)
                            {
                                SetTile(x - 1, y, Tile.HardRock, 0);
                                SetTile(x + 1, y, Tile.HardRock, 0);
                                SetTile(x, y - 1, Tile.HardRock, 0);
                                SetTile(x, y + 1, Tile.HardRock, 0);
                                SetTile(x - 1, y - 1, Tile.HardRock, 0);
                                SetTile(x - 1, y + 1, Tile.HardRock, 0);
                                SetTile(x + 1, y - 1, Tile.HardRock, 0);
                                SetTile(x + 1, y + 1, Tile.HardRock, 0);
                            }
                            else
                            {
                                SetTile(x - 1, y, Tile.Dirt, 0);
                                SetTile(x + 1, y, Tile.Dirt, 0);
                                SetTile(x, y - 1, Tile.Dirt, 0);
                                SetTile(x, y + 1, Tile.Dirt, 0);
                                SetTile(x - 1, y - 1, Tile.Dirt, 0);
                                SetTile(x - 1, y + 1, Tile.Dirt, 0);
                                SetTile(x + 1, y - 1, Tile.Dirt, 0);
                                SetTile(x + 1, y + 1, Tile.Dirt, 0);
                            }
                        }
                    }
                }

                _entitiesInTiles = new List <Entity> [w * h];
                for (int i = 0; i < w * h; i++)
                {
                    _entitiesInTiles[i] = new List <Entity>();
                }

                if (level == 1)
                {
                    TheWizard aw = new TheWizard
                    {
                        X = w * 8,
                        Y = h * 8
                    };
                    Add(aw);
                }
            }
        }
Example #36
0
    // Use this for initialization
    void Awake () {
        if(gen != null)
        {
            Destroy(this.gameObject);
            return;
        }
        gen = this;
        DontDestroyOnLoad(this.gameObject);

	}
Example #37
0
 public static void InstantiateMonsters(int floor, DesignedBuilding layout, SocialStructure socialStructure, LevelGen levelGen)
 {
     ActiveCastleGen.InstantiateMonsters(floor, layout, socialStructure, levelGen);
 }
Example #38
0
        public Map(string url, string type, ContentManager content)
        {
            string tile = "Tile";

            this.title   = url;
            this.content = content;

            Random random = new Random();
            int    index  = 0;

            Console.WriteLine("Creating level generator...");
            LevelGen lvlgen = new LevelGen(url);

            Console.WriteLine("Finished level generation, populating grid...");
            int[,] grid = lvlgen.LevelGrid;
            if (grid == null)
            {
                hasError   = true;
                this.title = "Encountered an error retrieving remote document!";
                grid       = new int[50, 50];
            }
            else
            {
                this.title = lvlgen.title;
                index      = random.Next(Math.Max(0, lvlgen.colors.Count - 4), lvlgen.colors.Count);
                GV.MainInstance.BackgroundColor = Backgroundify(lvlgen.colors[index]);
            }
            for (int x = 1; x < grid.GetLength(0) - 2; x++)
            {
                for (int y = 1; y < grid.GetLength(1); y++)
                {
                    if (hasError && (x == 0 || x == grid.GetLength(0) - 1 || y == 0 || y == grid.GetLength(0) - 1))
                    {
                        grid[x, y] = 1;
                    }
                    if (random.Next(0, 50) == 12 && (x != 1 && y != 1))
                    {
                        grid[x, y] = 1;
                    }
                }
            }
            this.grid = new Tile[grid.GetLength(0), grid.GetLength(1)];
            for (int y = 0; y < grid.GetLength(1); y++)
            {
                for (int x = 0; x < grid.GetLength(0); x++)
                {
                    if (grid[x, y] == 0)
                    {
                        tile = "Tile";
                    }
                    else if (grid[x, y] == 1)
                    {
                        tile = "Wall";
                    }
                    else if (grid[x, y] == 2)
                    {
                        tile = "Door";
                    }
                    this.grid[x, y] = new Tile(new Vector2((float)(x * 40), (float)(y * 40)), new Vector2(), tile, GV.content, grid[x, y]);
                    if (grid != null)
                    {
                        this.grid[x, y].color = lvlgen.colors[index];
                    }
                    if (this.grid[x, y].tile_type == 2)
                    {
                        this.grid[x, y].doorURL        = lvlgen.dict[new Tuple <int, int>(x, y)];
                        this.grid[x, y].onPlayerTouch += GV.MainInstance.StartLevel;
                    }
                }
            }
        }
Example #39
0
 void OnApplicationQuit()
 {
     gen = null;
 }