void SpawnCollidingPlatform() { int RandomChanceSpawn = Random.Range(0, 100); if (RandomChanceSpawn > 80) { SpawnHere = SpawnTypes.Big; } else if (RandomChanceSpawn <= 80 && RandomChanceSpawn > 60) { SpawnHere = SpawnTypes.LowSmall; } else if (RandomChanceSpawn <= 60 && RandomChanceSpawn > 40) { SpawnHere = SpawnTypes.TwoSmall; } else if (RandomChanceSpawn <= 40 && RandomChanceSpawn > 20) { SpawnHere = SpawnTypes.TopSmall; } else if (RandomChanceSpawn <= 20) { SpawnHere = SpawnTypes.Big; } SpawnGo(); }
protected float GenericSpawnCondition(SpawnTypes genericSpawnType, NPCSpawnInfo spawnInfo) { float finalRate = 0f; switch (genericSpawnType) { case SpawnTypes.Surface: if (UsualSpawnConditions(spawnInfo) && spawnInfo.spawnTileY < Main.worldSurface) { finalRate = ActualSpawnRate(.05f); } break; case SpawnTypes.Underground: if (UsualSpawnConditions(spawnInfo) && AboveUnderworldCondition(spawnInfo) && spawnInfo.spawnTileY > (Main.worldSurface - Main.worldSurface * .1f)) { finalRate = ActualSpawnRate(.075f); } break; case SpawnTypes.Everywhere: if (UsualSpawnConditions(spawnInfo)) { return(ActualSpawnRate(.02f)); } break; } return(finalRate); }
public void Spawn() { if (_initialSpawn) { for (var i = 0; i < InitialSpawnAmount; i++) { SpawnEntity(); } _initialSpawn = false; _lastSpawnTick = Game.TickCount; return; } if (Game.Blobs.Count(blob => SpawnTypes.Any(type => type == blob.GetType())) >= MaxSpawnAmount) { return; } if (Game.TickCount < _lastSpawnTick + SpawnTicksInterval) { return; } for (var i = 0; i < SpawnAmount; i++) { SpawnEntity(); } _lastSpawnTick = Game.TickCount; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); m_NoPD = reader.ReadBool(); m_SpawnLevel = reader.ReadInt(); m_SpawnType = (SpawnTypes)reader.ReadInt(); m_MaxResourceLevel = reader.ReadInt(); }
void Spawn(int enemyNumber, Vector3 spawn, SpawnTypes mode, EnemyAttributes attributes) { switch (mode) { case SpawnTypes.DelayedIndianLine: _gameManager.StartCoroutine(SpawnDelayedSingleEnemy(spawn, 1, enemyNumber, attributes)); break; case SpawnTypes.LineGroup: SpawnEnemyLineGroup(spawn, enemyNumber, attributes); break; } }
public void ChangeEnemyLevel() { if (enemyLevel != EnemyLevels.Boss) { enemyLevel++; } else { //GameObject Enemy = (GameObject)Instantiate(Enemies[enemyLevel], gameObject.transform.position, Quaternion.identity); spawnType = SpawnTypes.Once; totalEnemy = 1; disableSpawner(SpawnID); } }
IEnumerator BeginSpawns() { while (_currentWave < _waves.Length) { WaveData wave = _waves[_currentWave]; float totalTime = 0; foreach (EnemyWave subWave in wave.enemySubWaves) { totalTime += subWave.timeUntilNextSubWave; } Debug.Log(string.Format("INFO - Beggining wave {0} for {1} seconds", _currentWave + 1, totalTime)); _gameManager.Input.SetWaveTimer(totalTime); foreach (EnemyWave subWave in wave.enemySubWaves) { EnemyWave.Type expectedType = subWave.enemyType; EnemyAttributes value; enemyTypesDict.TryGetValue(expectedType, out value); int quantity = subWave.quantity; SpawnTypes formation = subWave.formation; float timeLimit = subWave.timeUntilNextSubWave; Debug.Log(string.Format("INFO - SubWave {0} type {1} in {2} formation for {3} seconds", quantity, expectedType, formation, timeLimit)); Spawn(quantity, _spawnPointList[Random.Range(0, _spawnPointList.Count)], formation, value); yield return(new WaitForSeconds(timeLimit)); } Wave++; } Debug.Log(string.Format("INFO - No more waves, but there are {0} enemies alive", _enemySystem.GetActiveNumber())); while (_enemySystem.GetActiveNumber() > 0) { Debug.Log(string.Format("INFO - {0} enemies alive", _enemySystem.GetActiveNumber())); yield return(new WaitForSeconds(2f)); } Debug.Log("INFO - Victory"); _gameManager.EndGameProcedure("Victory!", "Play again?"); }
private void SpawnItem(SpawnTypes spawnType) { int randomItemIndex = UnityEngine.Random.Range(0, items.Length); int iterations; Item itemToSpawn = spawnType == SpawnTypes.Item ? items[randomItemIndex] : weapon; iterations = itemToSpawn.itemType == Item.TypeOfItem.Chicken ? 2 : 1; for (int i = 0; i < iterations; i++) { float halfRectWidth = rectTransform.rect.width / 2; float halfRectHeight = rectTransform.rect.height / 2; Vector3 newPos = new Vector3(UnityEngine.Random.Range(-halfRectWidth, halfRectWidth), UnityEngine.Random.Range(-halfRectHeight, halfRectHeight), 1); Vector3 finalPos = transform.position + newPos; Instantiate(itemToSpawn.gameObject, finalPos, Quaternion.identity, transform); } }
// Use this for initialization public void Initialize(bool forceClear, int i, int j) { mineActive = false; isCleared = false; targeted = false; flagged = false; arrayRowPos = i; arrayColPos = j; //now uses the current difficulty to determine if the tile is a mine if (Random.value < MineChance()) { isMine = true; mineActive = true; } else { isMine = false; } if (forceClear) { isMine = false; isCleared = true; mineActive = false; bc.enabled = false; } int rand = Random.Range(0, 2); if (rand == 0) { type = SpawnTypes.Burster; } else if (rand == 1) { type = SpawnTypes.Consistant; } neighborMineCount = 0; }
public void Initialize(bool forceClear, float mineChance, int i, int j) { mineActive = false; isCleared = false; targeted = false; flagged = false; arrayRowPos = i; arrayColPos = j; if (Random.Range(1f, 100f) < mineChance) //mineChance must be between >= 1f and <= 100f { isMine = true; mineActive = true; } else { isMine = false; } if (forceClear) { isMine = false; isCleared = true; mineActive = false; bc.enabled = false; } int rand = Random.Range(0, 2); if (rand == 0) { type = SpawnTypes.Burster; } else if (rand == 1) { type = SpawnTypes.Consistant; } neighborMineCount = 0; }
// Static spawn generation funciton. // Create your spawns here! public static ArrayList CreateSpawn(SpawnTypes type) { ArrayList temp = new ArrayList(); switch (type) { // Big champs first. // To emulate the original big champs exactly, we need 16 levels of spawn. // This is because the original champs were actually 16 levels, one for each red skull. // The spawns have 4 "big" levels split into 16 sub levels with this distribution: // Level 1 : 5 levels // Level 2 : 4 levels // Level 3 : 4 levels // Level 4 : 3 Levels #region big champs case SpawnTypes.Abyss: { ///////// Abyss ////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1 " { temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Mongbat", "Imp" })); } for (int i = 1; i <= 4; ++i) //Level " 2 " { temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Gargoyle", "Harpy" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "FireGargoyle", "StoneGargoyle" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Daemon", "Succubus" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Semidar" })); break; } case SpawnTypes.Arachnid: { ///////// Arachnid ////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" { temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Scorpion", "GiantSpider" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "TerathanDrone", "TerathanWarrior" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "DreadSpider", "TerathanMatriarch" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "PoisonElemental", "TerathanAvenger" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Mephitis" })); break; } case SpawnTypes.ColdBlood: { ////////// Cold Blood /////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" { temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Lizardman", "Snake" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "LavaLizard", "OphidianWarrior" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Drake", "OphidianArchmage" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Dragon", "OphidianKnight" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Rikktor" })); break; } case SpawnTypes.ForestLord: { ///////// Forest Lord ////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" { temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Pixie", "ShadowWisp" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Kirin", "Wisp" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Centaur", "Unicorn" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "EtherealWarrior", "SerpentineDragon" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "LordOaks" })); break; } case SpawnTypes.FrozenHost: { ///////// Frozen Host ///////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- for (int i = 1; i <= 5; ++i) // Level " 1" { temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "FrostOoze", "FrostSpider" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "FrostTroll", "IceSerpent" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "SnowElemental", "FrostNymph" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "IceFiend", "WhiteWyrm" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Azothu" })); break; } case SpawnTypes.UnholyTerror: { ///////// UnholyTerror //////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level "1" { temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Bogle", "Ghoul", "Shade", "Spectre", "Wraith" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "BoneMagi", "Mummy", "SkeletalMage" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "BoneKnight", "BoneMagiLord", "SkeletalKnight" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "BoneKnightLord", "RottingCorpse" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Neira" })); break; } case SpawnTypes.VerminHorde: { ///////// Vermin Horde /////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" { temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "GiantRat", "Slime" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Ratman", "DireWolf" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "HellHound", "RatmanMage" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "RatmanArcher", "SilverSerpent" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Barracoon" })); break; } /* * Increase range to 75 * Reduce the number of mobs spawned at once by 1/2 when Pirates are involved. */ case SpawnTypes.Pirate: { ///////// Pirate at sea ////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" { temp.Add(new ChampLevelData(40, 40, 10, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.SpawnFar, new string[] { "WaterElemental", "SeaSerpent" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.SpawnFar, new string[] { "SeaSerpent", "Kraken" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25 / 2, 6, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "PirateDeckHand", "PirateWench" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17 / 2, 4, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "PirateWench", "Pirate" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.FactoryMobile, new string[] { "PirateChamp" })); break; } case SpawnTypes.Bob: { ///////// Bobs in Jhelom ///////// // kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" { temp.Add(new ChampLevelData(40, 40, 10, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "Gypsy" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "Brigand", "NightMare" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25 / 2, 6, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "Brigand", "EvilMageLord" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17 / 2, 4, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "GolemController" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.FactoryMobile, new string[] { "TheOneBob" })); break; } case SpawnTypes.Vampire: { ///////// Vampires in the dead forset of Ilshenar ///////// // kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" { temp.Add(new ChampLevelData(40, 40, 10, 20, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "VampireBat" })); } for (int i = 1; i <= 4; ++i) //Level " 2" { temp.Add(new ChampLevelData(38, 38, 9, 20, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "VampireBat", "WalkingDead" })); } for (int i = 1; i <= 4; ++i) // Level " 3 " { temp.Add(new ChampLevelData(25, 25 / 2, 6, 20, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "WalkingDead", "WalkingDead" })); } for (int i = 1; i <= 3; ++i) // Level " 4 " { temp.Add(new ChampLevelData(17, 17 / 2, 4, 20, TimeSpan.Zero, TimeSpan.FromMinutes(50), SpawnFlags.None, new string[] { "Vampire" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(60), SpawnFlags.None, new string[] { "VladDracula" })); break; } #endregion // Now for the mini champs. // These are just 3 levels with the fourth spawning a single mob, like a champ #region mini champs case SpawnTypes.Mini_Deceit: { ///////// Decei! /////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// -------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Skeleton" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "SkeletalKnight", "BoneKnight" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "SkeletalMage", "BoneMagi" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "BoneDemon", "SkeletalDragon" })); break; } case SpawnTypes.Mini_Destard: { ///////// Destard //////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ---------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Lizardman", "OphidianWarrior" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "Drake", "Wyvern" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Dragon", "OphidianKnight" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "AncientWyrm" })); break; } case SpawnTypes.Mini_Hythloth: { ///////// Hyloth //////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// -------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Imp", "HellHound" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "Gargoyle", "ChaosDaemon" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Succubus", "Daemon" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "Balron" })); break; } case SpawnTypes.Mini_Ice: { ///////// Ice ! ///////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// --------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "FrostOoze", "FrostSpider" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "IceElemental", "FrostSpider" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "IceFiend", "FrostNymph" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "ArcticOgreLord" })); break; } case SpawnTypes.Mini_Wind: // Wind has a different expire delay for level 4 { ///////// Wind //////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// --------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "EvilMage" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "Lich", "EvilMageLord" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "LichLord", "CouncilMember" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "AncientLich" })); break; } case SpawnTypes.Mini_Wrong: { ///////// Wrong /////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Zombie", "HeadlessOne", "Slime" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "GoreFiend", "FleshGolem" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "BloodElemental", "RottingCorpse" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "FleshRenderer" })); break; } #endregion // Angel Island prison system spawns // These guys take some of thir spawn level settings // from statics in CoreAI #region AI Level system case SpawnTypes.AI_Escape: { // k m s r temp.Add(new ChampLevelData(CoreAI.SpiritFirstWaveNumber, 5, 5, 18, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.SpiritExpireDelay), SpawnFlags.None, new string[] { "Spirit" })); temp.Add(new ChampLevelData(CoreAI.SpiritSecondWaveNumber, 5, 5, 18, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.SpiritExpireDelay), SpawnFlags.None, new string[] { "VengefulSpirit" })); temp.Add(new ChampLevelData(CoreAI.SpiritThirdWaveNumber, 5, 5, 18, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.SpiritExpireDelay), SpawnFlags.None, new string[] { "Soul" })); temp.Add(new ChampLevelData(1, 1, 1, 18, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.SpiritExpireDelay), SpawnFlags.None, new string[] { "AngelofJustice" })); break; } case SpawnTypes.AI_Guard: { // k m s r temp.Add(new ChampLevelData(5, 5, 5, 12, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.GuardSpawnExpireDelay), SpawnFlags.None, new string[] { "AIPostGuard" })); temp.Add(new ChampLevelData(1, 1, 1, 12, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.GuardSpawnExpireDelay), SpawnFlags.None, new string[] { "AIGuardCaptain" })); break; } #endregion #region Kin //Kin city consists purely of golem controllers. case SpawnTypes.KinCity: { temp.Add(new ChampLevelData(40, 40, 5, 40, TimeSpan.Zero, TimeSpan.FromHours(1), SpawnFlags.None, new string[] { "GolemController" })); temp.Add(new ChampLevelData(40, 40, 5, 40, TimeSpan.Zero, TimeSpan.FromHours(1), SpawnFlags.None, new string[] { "GolemController" })); break; } #endregion #region plamsa's test stuff! case SpawnTypes.Test: { ///////// Test! ///////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 0; i < 36; ++i) { temp.Add(new ChampLevelData(10, 10, 5, 5, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "slime", "rat" })); } //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Barracoon", "Semidar", "Rikktor", "Neira", "LordOaks", "Mephitis" })); break; } case SpawnTypes.Test2: { ///////// Test! ///////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// -------------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(5, 3, 1, 1, TimeSpan.FromSeconds(5), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Dragon", "WhiteWyrm" })); temp.Add(new ChampLevelData(300, 150, 1, 15, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "GiantRat", "Slime" })); temp.Add(new ChampLevelData(100, 30, 5, 12, TimeSpan.FromSeconds(5), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Orc", "OrcishMage" })); temp.Add(new ChampLevelData(4, 3, 1, 5, TimeSpan.FromSeconds(12), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "GolemController" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Barracoon", "Semidar", "Rikktor", "Neira", "LordOaks", "Mephitis" })); break; } } #endregion return(temp); }
// Static spawn generation funciton. // Create your spawns here! public static ArrayList CreateSpawn(SpawnTypes type) { ArrayList temp = new ArrayList(); switch (type) { // Big champs first. // To emulate the original big champs exactly, we need 16 levels of spawn. // This is because the original champs were actually 16 levels, one for each red skull. // The spawns have 4 "big" levels split into 16 sub levels with this distribution: // Level 1 : 5 levels // Level 2 : 4 levels // Level 3 : 4 levels // Level 4 : 3 Levels #region big champs case SpawnTypes.Abyss: { ///////// Abyss ////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1 " temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Mongbat", "Imp" })); for (int i = 1; i <= 4; ++i) //Level " 2 " temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Gargoyle", "Harpy" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "FireGargoyle", "StoneGargoyle" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Daemon", "Succubus" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Semidar" })); break; } case SpawnTypes.Arachnid: { ///////// Arachnid ////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Scorpion", "GiantSpider" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "TerathanDrone", "TerathanWarrior" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "DreadSpider", "TerathanMatriarch" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "PoisonElemental", "TerathanAvenger" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Mephitis" })); break; } case SpawnTypes.ColdBlood: { ////////// Cold Blood /////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Lizardman", "Snake" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "LavaLizard", "OphidianWarrior" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Drake", "OphidianArchmage" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Dragon", "OphidianKnight" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Rikktor" })); break; } case SpawnTypes.ForestLord: { ///////// Forest Lord ////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Pixie", "ShadowWisp" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Kirin", "Wisp" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Centaur", "Unicorn" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "EtherealWarrior", "SerpentineDragon" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "LordOaks" })); break; } case SpawnTypes.FrozenHost: { ///////// Frozen Host ///////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- for (int i = 1; i <= 5; ++i) // Level " 1" temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "FrostOoze", "FrostSpider" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "FrostTroll", "IceSerpent" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "SnowElemental", "FrostNymph" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "IceFiend", "WhiteWyrm" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Azothu" })); break; } case SpawnTypes.UnholyTerror: { ///////// UnholyTerror //////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level "1" temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Bogle", "Ghoul", "Shade", "Spectre", "Wraith" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "BoneMagi", "Mummy", "SkeletalMage" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "BoneKnight", "BoneMagiLord", "SkeletalKnight" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "BoneKnightLord", "RottingCorpse" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Neira" })); break; } case SpawnTypes.VerminHorde: { ///////// Vermin Horde /////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" temp.Add(new ChampLevelData(40, 40, 10, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "GiantRat", "Slime" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Ratman", "DireWolf" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25, 6, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "HellHound", "RatmanMage" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17, 4, 24, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "RatmanArcher", "SilverSerpent" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Barracoon" })); break; } /* * Increase range to 75 * Reduce the number of mobs spawned at once by 1/2 when Pirates are involved. */ case SpawnTypes.Pirate: { ///////// Pirate at sea ////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" temp.Add(new ChampLevelData(40, 40, 10, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.SpawnFar, new string[] { "WaterElemental", "SeaSerpent" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.SpawnFar, new string[] { "SeaSerpent", "Kraken" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25 / 2, 6, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "PirateDeckHand", "PirateWench" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17 / 2, 4, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "PirateWench", "Pirate" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.FactoryMobile, new string[] { "PirateChamp" })); break; } case SpawnTypes.Bob: { ///////// Bobs in Jhelom ///////// // kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" temp.Add(new ChampLevelData(40, 40, 10, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "Gypsy" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "Brigand", "NightMare" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25 / 2, 6, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "Brigand", "EvilMageLord" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17 / 2, 4, 75, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.FactoryMobile, new string[] { "GolemController" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.FactoryMobile, new string[] { "TheOneBob" })); break; } case SpawnTypes.Vampire: { ///////// Vampires in the dead forset of Ilshenar ///////// // kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 1; i <= 5; ++i) // Level " 1" temp.Add(new ChampLevelData(40, 40, 10, 20, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "VampireBat" })); for (int i = 1; i <= 4; ++i) //Level " 2" temp.Add(new ChampLevelData(38, 38, 9, 20, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "VampireBat", "WalkingDead" })); for (int i = 1; i <= 4; ++i) // Level " 3 " temp.Add(new ChampLevelData(25, 25 / 2, 6, 20, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "WalkingDead", "WalkingDead" })); for (int i = 1; i <= 3; ++i) // Level " 4 " temp.Add(new ChampLevelData(17, 17 / 2, 4, 20, TimeSpan.Zero, TimeSpan.FromMinutes(50), SpawnFlags.None, new string[] { "Vampire" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(60), SpawnFlags.None, new string[] { "VladDracula" })); break; } #endregion // Now for the mini champs. // These are just 3 levels with the fourth spawning a single mob, like a champ #region mini champs case SpawnTypes.Mini_Deceit: { ///////// Decei! /////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// -------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Skeleton" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "SkeletalKnight", "BoneKnight" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "SkeletalMage", "BoneMagi" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "BoneDemon", "SkeletalDragon" })); break; } case SpawnTypes.Mini_Destard: { ///////// Destard //////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ---------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Lizardman", "OphidianWarrior" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "Drake", "Wyvern" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Dragon", "OphidianKnight" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "AncientWyrm" })); break; } case SpawnTypes.Mini_Hythloth: { ///////// Hyloth //////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// -------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Imp", "HellHound" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "Gargoyle", "ChaosDaemon" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Succubus", "Daemon" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "Balron" })); break; } case SpawnTypes.Mini_Ice: { ///////// Ice ! ///////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// --------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "FrostOoze", "FrostSpider" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "IceElemental", "FrostSpider" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "IceFiend", "FrostNymph" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(20), SpawnFlags.None, new string[] { "ArcticOgreLord" })); break; } case SpawnTypes.Mini_Wind: // Wind has a different expire delay for level 4 { ///////// Wind //////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// --------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "EvilMage" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "Lich", "EvilMageLord" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "LichLord", "CouncilMember" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "AncientLich" })); break; } case SpawnTypes.Mini_Wrong: { ///////// Wrong /////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(9, 5, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(10), SpawnFlags.None, new string[] { "Zombie", "HeadlessOne", "Slime" })); temp.Add(new ChampLevelData(15, 4, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(15), SpawnFlags.None, new string[] { "GoreFiend", "FleshGolem" })); temp.Add(new ChampLevelData(16, 2, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "BloodElemental", "RottingCorpse" })); temp.Add(new ChampLevelData(1, 1, 1, 8, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "FleshRenderer" })); break; } #endregion // Angel Island prison system spawns // These guys take some of thir spawn level settings // from statics in CoreAI #region AI Level system case SpawnTypes.AI_Escape: {// k m s r temp.Add(new ChampLevelData(CoreAI.SpiritFirstWaveNumber, 5, 5, 18, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.SpiritExpireDelay), SpawnFlags.None, new string[] { "Spirit" })); temp.Add(new ChampLevelData(CoreAI.SpiritSecondWaveNumber, 5, 5, 18, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.SpiritExpireDelay), SpawnFlags.None, new string[] { "VengefulSpirit" })); temp.Add(new ChampLevelData(CoreAI.SpiritThirdWaveNumber, 5, 5, 18, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.SpiritExpireDelay), SpawnFlags.None, new string[] { "Soul" })); temp.Add(new ChampLevelData(1, 1, 1, 18, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.SpiritExpireDelay), SpawnFlags.None, new string[] { "AngelofJustice" })); break; } case SpawnTypes.AI_Guard: { // k m s r temp.Add(new ChampLevelData(5, 5, 5, 12, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.GuardSpawnExpireDelay), SpawnFlags.None, new string[] { "AIPostGuard" })); temp.Add(new ChampLevelData(1, 1, 1, 12, TimeSpan.Zero, TimeSpan.FromMinutes(CoreAI.GuardSpawnExpireDelay), SpawnFlags.None, new string[] { "AIGuardCaptain" })); break; } #endregion #region Kin //Kin city consists purely of golem controllers. case SpawnTypes.KinCity: { temp.Add(new ChampLevelData(40, 40, 5, 40, TimeSpan.Zero, TimeSpan.FromHours(1), SpawnFlags.None, new string[] { "GolemController" })); temp.Add(new ChampLevelData(40, 40, 5, 40, TimeSpan.Zero, TimeSpan.FromHours(1), SpawnFlags.None, new string[] { "GolemController" })); break; } #endregion #region plamsa's test stuff! case SpawnTypes.Test: { ///////// Test! ///////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (int i = 0; i < 36; ++i) temp.Add(new ChampLevelData(10, 10, 5, 5, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "slime", "rat" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Barracoon", "Semidar", "Rikktor", "Neira", "LordOaks", "Mephitis" })); break; } case SpawnTypes.Test2: { ///////// Test! ///////////////////////////////// kills, Mobs, Spawn, Range, Spawn Delay, Level Expire Delay, Monster Array /////////////////////////////////////////////////// -------------------------------------------------------------------------------------------------------------------------------------------------------------------- temp.Add(new ChampLevelData(5, 3, 1, 1, TimeSpan.FromSeconds(5), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Dragon", "WhiteWyrm" })); temp.Add(new ChampLevelData(300, 150, 1, 15, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "GiantRat", "Slime" })); temp.Add(new ChampLevelData(100, 30, 5, 12, TimeSpan.FromSeconds(5), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Orc", "OrcishMage" })); temp.Add(new ChampLevelData(4, 3, 1, 5, TimeSpan.FromSeconds(12), TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "GolemController" })); //Champion! temp.Add(new ChampLevelData(1, 1, 1, 1, TimeSpan.Zero, TimeSpan.FromMinutes(40), SpawnFlags.None, new string[] { "Barracoon", "Semidar", "Rikktor", "Neira", "LordOaks", "Mephitis" })); break; } } #endregion return temp; }