public Transform GetValidSpawn(SpawnType forType) { photonView.RPC ("SetInvalid", PhotonTargets.Others); if (bIsValid && (spawnType == SpawnType.Both || forType == spawnType || forType == SpawnType.Both) ) { bIsValid = false; return transform; } else return null; }
public Spawn(Point p,float rot,float scale,int i,SpawnType t) { //if (scale == null) scale = 1; propertypanel = new SpawnProperty(this); type = t; head = new VertexMarker(); head.Colour = Brushes.Yellow; head.setPosition(p); source = new VertexMarker(); source.Colour = Brushes.Yellow; p.Offset(-(int)(scale * arrowLength * Math.Cos(rot) / Geometry.Geometry.scaleFactor), -(int)(scale * arrowLength * Math.Sin(rot) / Geometry.Geometry.scaleFactor)); source.setPosition(p); Name = string.Format("Spawn {0}", i); setSelected(false); }
public void CompileSettings() { ResetSettingValues(); try { for ( int i = 0; i < SettingsList.Count; i++ ) { ArrayList setting = (ArrayList) SettingsList[i]; ArrayList List = new ArrayList(); int entryIndex = -1; switch ( (Setting) setting[0] ) { case Setting.OverrideIndividualEntries: { OverrideSpawnRange = (int) setting[1]; OverrideWalkRange = (int) setting[2]; OverrideAmount = (int) setting[3]; OverrideMinDelay = (int) setting[4]; OverrideMaxDelay = (int) setting[5]; OverrideGroupSpawn = (bool) setting[6]; OverrideEventAmbush = (bool) setting[7]; OverrideSpawnType = (SpawnType) setting[8]; OverrideEventKeyword = (string) setting[9]; OverrideCaseSensitive = (bool) setting[10]; OverrideEventRange = (int) setting[11]; OverrideBeginTimeBasedHour = (int) setting[12]; OverrideBeginTimeBasedMinute = (int) setting[13]; OverrideEndTimeBasedHour = (int) setting[14]; OverrideEndTimeBasedMinute = (int) setting[15]; OverrideMinDespawn = (int) setting[16]; OverrideMaxDespawn = (int) setting[17]; OverrideDespawn = (bool) setting[18]; OverrideDespawnGroup = (bool) setting[19]; OverrideDespawnTimeExpire = (bool) setting[20]; OverrideIndividualEntries = true; OverrideBeginTimeBased = OverrideBeginTimeBasedHour * OverrideBeginTimeBasedMinute; OverrideEndTimeBased = OverrideEndTimeBasedHour * OverrideEndTimeBasedMinute; break; } case Setting.AddItem:{ entryIndex = (int) setting[2]; List = SetItemInfo( setting ); break; } case Setting.AddContainer: { List = SetItemInfo( setting ); entryIndex = (int) setting[2]; for ( int j = 6; j < setting.Count; j++ ) { ArrayList ItemsList = (ArrayList) setting[j]; List.Add( ItemsList ); } break; } } if ( entryIndex != -1 ) { AddItemRefList.Add( entryIndex ); AddItemList.Add( List ); } } } catch{} }
public MapSpawn(int bx, int @by, SpawnType type) { BlockX = bx; BlockY = @by; Type = type; }
private void GetArgsList() { Help = (bool) ArgsList[0]; DisplayMessages = (bool) ArgsList[1]; MessagesTitle = (string) ArgsList[2]; OldMessagesTitle = (string) ArgsList[3]; Messages = (string) ArgsList[4]; OldMessages = (string) ArgsList[5]; PageInfoList = (ArrayList) ArgsList[12]; MSEGCheckBoxesList = (ArrayList) ArgsList[14]; megaSpawner = (MegaSpawner) ArgsList[19]; ESGArgsList = (ArrayList) ArgsList[21]; PersonalConfigList = (ArrayList) ArgsList[28]; SEGArgsList = (ArrayList) ArgsList[32]; cpg = (int) PageInfoList[4]; pg = (int) PageInfoList[5]; AddToSpawner = (bool) ESGArgsList[0]; index = (int) ESGArgsList[1]; activatedSwitch = (bool) ESGArgsList[2]; spawnGroupSwitch = (bool) ESGArgsList[3]; eventAmbushSwitch = (bool) ESGArgsList[4]; spawnTypeSwitch = (SpawnType) ESGArgsList[5]; if ( !bEntryType ) entryType = (string) ESGArgsList[6]; if ( !bSpawnRange ) spawnRange = (int) ESGArgsList[7]; if ( !bWalkRange ) walkRange = (int) ESGArgsList[8]; if ( !bAmount ) amount = (int) ESGArgsList[9]; if ( !bMinDelayHour ) minDelayHour = (int) ESGArgsList[10]; if ( !bMinDelayMin ) minDelayMin = (int) ESGArgsList[11]; if ( !bMinDelaySec ) minDelaySec = (int) ESGArgsList[12]; if ( !bMaxDelayHour ) maxDelayHour = (int) ESGArgsList[13]; if ( !bMaxDelayMin ) maxDelayMin = (int) ESGArgsList[14]; if ( !bMaxDelaySec ) maxDelaySec = (int) ESGArgsList[15]; if ( !bEventRange ) eventRange = (int) ESGArgsList[16]; if ( !bBeginTimeBased ) { beginTimeBasedHour = (int) ESGArgsList[17]; beginTimeBasedMinute = (int) ESGArgsList[18]; } if ( !bEndTimeBased ) { endTimeBasedHour = (int) ESGArgsList[19]; endTimeBasedMinute = (int) ESGArgsList[20]; } keyword = (string) ESGArgsList[21]; caseSensitiveSwitch = (bool) ESGArgsList[22]; if ( !bMinStackAmount ) minStackAmount = (int) ESGArgsList[23]; if ( !bMaxStackAmount ) maxStackAmount = (int) ESGArgsList[24]; movableSwitch = (bool) ESGArgsList[25]; if ( !bMinDespawnHour ) minDespawnHour = (int) ESGArgsList[26]; if ( !bMinDespawnMin ) minDespawnMin = (int) ESGArgsList[27]; if ( !bMinDespawnSec ) minDespawnSec = (int) ESGArgsList[28]; if ( !bMaxDespawnHour ) maxDespawnHour = (int) ESGArgsList[29]; if ( !bMaxDespawnMin ) maxDespawnMin = (int) ESGArgsList[30]; if ( !bMaxDespawnSec ) maxDespawnSec = (int) ESGArgsList[31]; despawnSwitch = (bool) ESGArgsList[32]; despawnGroupSwitch = (bool) ESGArgsList[33]; despawnTimeExpireSwitch = (bool) ESGArgsList[34]; StyleTypeConfig = (StyleType) PersonalConfigList[0]; BackgroundTypeConfig = (BackgroundType) PersonalConfigList[1]; ActiveTEBGTypeConfig = (BackgroundType) PersonalConfigList[2]; InactiveTEBGTypeConfig = (BackgroundType) PersonalConfigList[3]; DefaultTextColor = (TextColor) PersonalConfigList[4]; TitleTextColor = (TextColor) PersonalConfigList[5]; MessagesTextColor = (TextColor) PersonalConfigList[6]; CommandButtonsTextColor = (TextColor) PersonalConfigList[7]; PageNumberTextColor = (int) PersonalConfigList[8]; ActiveTextEntryTextColor = (int) PersonalConfigList[9]; InactiveTextEntryTextColor = (int) PersonalConfigList[10]; FlagTextColor = (TextColor) PersonalConfigList[14]; }
public void SetSpawnType(SpawnType spawnType) { _spawnType = spawnType; switch (_spawnType) { case SpawnType.LINEAR: _curPool = 0; _curPoolIdx = 0; break; case SpawnType.RANDOM: EnemyIndex = Random.Range(0, _totalEnemies); break; case SpawnType.SHUFFLED: BuildShuffle(); EnemyIndex = _shuffledOrder[0]; break; } }
public static bool EventSpawnAttempt( MegaSpawner megaSpawner, SpawnType st ) { return ( megaSpawner.Active && megaSpawner.OverrideSpawnType == st && megaSpawner.OverrideTriggerEventNow ); }
private void CompileSettingInfo() { if ( setting.Count == 0 ) return; theSetting = setting; InsideItemList.Clear(); try { switch( (Setting) setting[0] ) { case Setting.OverrideIndividualEntries: { spawnRange = (int) setting[1]; walkRange = (int) setting[2]; amount = (int) setting[3]; minDelay = (int) setting[4]; maxDelay = (int) setting[5]; spawnGroupSwitch = (bool) setting[6]; eventAmbushSwitch = (bool) setting[7]; spawnTypeSwitch = (SpawnType) setting[8]; keyword = (string) setting[9]; caseSensitiveSwitch = (bool) setting[10]; eventRange = (int) setting[11]; beginTimeBasedHour = (int) setting[12]; beginTimeBasedMinute = (int) setting[13]; endTimeBasedHour = (int) setting[14]; endTimeBasedMinute = (int) setting[15]; minDespawn = (int) setting[16]; maxDespawn = (int) setting[17]; despawnSwitch = (bool) setting[18]; despawnGroupSwitch = (bool) setting[19]; despawnTimeExpireSwitch = (bool) setting[20]; pg = 3; OverrideIndividualEntriesClicked = true; minDelayHour = (int) minDelay / 3600; minDelayMin = ( (int) minDelay - ( minDelayHour * 3600 ) ) / 60; minDelaySec = ( (int) minDelay - ( minDelayHour * 3600 ) - ( minDelayMin * 60 ) ); maxDelayHour = (int) maxDelay / 3600; maxDelayMin = ( (int) maxDelay - ( maxDelayHour * 3600 ) ) / 60; maxDelaySec = ( (int) maxDelay - ( maxDelayHour * 3600 ) - ( maxDelayMin * 60 ) ); minDespawnHour = (int) minDespawn / 3600; minDespawnMin = ( (int) minDespawn - ( minDespawnHour * 3600 ) ) / 60; minDespawnSec = ( (int) minDespawn - ( minDespawnHour * 3600 ) - ( minDespawnMin * 60 ) ); maxDespawnHour = (int) maxDespawn / 3600; maxDespawnMin = ( (int) maxDespawn - ( maxDespawnHour * 3600 ) ) / 60; maxDespawnSec = ( (int) maxDespawn - ( maxDespawnHour * 3600 ) - ( maxDespawnMin * 60 ) ); setting = new ArrayList(); break; } case Setting.AddItem: { SetItemInfo(); pg = 6; AddItemClicked = true; setting = new ArrayList(); break; } case Setting.AddContainer: { SetItemInfo(); for ( int i = 6; i < setting.Count; i++ ) { ArrayList ItemsList = (ArrayList) setting[i]; InsideItemList.Add( ItemsList ); } pg = 6; AddItemClicked = true; setting = new ArrayList(); break; } } } catch( Exception ex ) { MessagesTitle = "Update Setting"; Messages = String.Format( "Error reading setting info:\n{0}", ex ); } }
public void spawn(int amount, SpawnType spawnType) { float[] toSpawn = new float[amount]; BlockType[] types = new BlockType[amount]; //print(spawnType.ToString()); switch (spawnType) { case SpawnType.Centre: for (int i = 0; i < toSpawn.Length; i++) { toSpawn[i] = 0; types[i] = BlockType.Normal; } break; case SpawnType.Random: //add the max and min for random spawning for (int i = 0; i < toSpawn.Length; i++) { toSpawn[i] = Random.Range(-randomRange, randomRange); } break; case SpawnType.Snake: for (int i = 0; i < toSpawn.Length; i++) { //print(player.position.x); toSpawn[i] = prevSpawn + Random.Range(-0.3f, 0.3f); toSpawn[i] = Mathf.Clamp(toSpawn[i], player.position.x / blockWidth - 0.75f, player.position.x / blockWidth + 0.75f); // if (toSpawn[i] > 1.2f) toSpawn[i] = 1.2f; // if (toSpawn[i] < -1.2f) toSpawn[i] = -1.2f; } break; case SpawnType.Test1: break; case SpawnType.Test2: break; case SpawnType.Left: for (int i = 0; i < toSpawn.Length; i++) { toSpawn[i] = prevSpawn; types[i] = BlockType.LeftWedge; } break; case SpawnType.Right: for (int i = 0; i < toSpawn.Length; i++) { toSpawn[i] = prevSpawn; types[i] = BlockType.RightWedge; } break; default: break; } spawnBlocks(toSpawn, types); }
public List <Spawn> GetSpawns(SpawnType type) { return(Spawns.Select(x => x).Where(x => x.SpawnType == type).ToList()); }
/// <summary> /// Function which finds spawnpoints for one or more troops /// </summary> /// <param name="playerNumber">Determines how many co-ordinates should be returned</param> /// <param name="spawnType">Deterines how the co-ordinates should relate to each other and the map</param> /// <returns></returns> public List <Point> DeterminSpawnPoint(int playerNumber, SpawnType spawnType) { List <Point> toReturn = new List <Point>(); switch (spawnType) { case SpawnType.road: { if (goals.Count <= 1) { for (int i = 0; i < playerNumber; i++) { int x; int y; int n = World.World.random.Next(4); if (n == 0) { x = 0; y = World.World.random.Next(map.GetUpperBound(1)); } else if (n == 1) { x = World.World.random.Next(map.GetUpperBound(0)); y = 0; } else if (n == 2) { x = map.GetUpperBound(0); y = World.World.random.Next(map.GetUpperBound(1)); } else { x = World.World.random.Next(map.GetUpperBound(0)); y = map.GetUpperBound(1); } toReturn.Add(new Point(x, y)); } break; } } //Determin which road spawn point to start List <MapTile> _goals = new List <MapTile>(goals); while (_goals.Count != 0 && playerNumber != 0) { MapTile pathPoint = _goals[World.World.random.Next(_goals.Count)]; _goals.Remove(pathPoint); toReturn.Add(pathPoint.position); playerNumber--; if (playerNumber == 0) { break; } foreach (MapTile possible in pathPoint.neighbours.rawMaptiles.Where(m => m.type.type == MapTileTypeEnum.road)) { toReturn.Add(possible.position); playerNumber--; if (playerNumber == 0) { break; } } } break; case SpawnType.random: for (int i = 0; i < playerNumber; i++) { Point p = new Point(); while (true) { p = new Point(World.World.random.Next(map.GetUpperBound(0)), World.World.random.Next(map.GetUpperBound(1))); //Determine is viable if (!troops.Exists(t => t.Position.X == p.X && t.Position.Y == p.Y) && !toReturn.Exists(c => c.X == p.X && c.Y == p.Y)) { break; } } toReturn.Add(p); } break; case SpawnType.randomLand: FindRandomLandTile(playerNumber, ref toReturn); break; case SpawnType.heighestField: var ordered = from field in map.Cast <MapTile>() orderby field.Height descending select field; toReturn = ordered.Take(playerNumber).ToList().ConvertAll(f => f.position); break; case SpawnType.centralRoad: { int x, y, count = 50; for (int i = 0; i < playerNumber; i++) { do { x = World.World.random.Next((int)(0.2 * map.GetUpperBound(0)), (int)(0.8 * map.GetUpperBound(0))); y = World.World.random.Next((int)(0.2 * map.GetUpperBound(1)), (int)(0.8 * map.GetUpperBound(1))); count--; if (count == 0) { count = 100; do { x = World.World.random.Next(0, map.GetUpperBound(0)); y = World.World.random.Next(0, map.GetUpperBound(1)); count--; } while (map[x, y].type.type != MapTileTypeEnum.road && count > 0 && toReturn.Contains(new Point(x, y))); break; } } while (map[x, y].type.type != MapTileTypeEnum.road && toReturn.Contains(new Point(x, y))); toReturn.Add(new Point(x, y)); } break; } case SpawnType.randomRoughCircle: { int x, y; x = World.World.random.Next((int)(0.2 * map.GetUpperBound(0)), (int)(0.8 * map.GetUpperBound(0))); y = World.World.random.Next((int)(0.2 * map.GetUpperBound(1)), (int)(0.8 * map.GetUpperBound(1))); for (int i = 0; i < playerNumber; i++) { int _x = 0, _y = 0, tempX, tempY, minDistance = 100; for (int t = 0; t < 10; t++) { tempX = World.World.random.Next((int)(0.2 * map.GetUpperBound(0)), (int)(0.8 * map.GetUpperBound(0))); tempY = World.World.random.Next((int)(0.2 * map.GetUpperBound(1)), (int)(0.8 * map.GetUpperBound(1))); int distance = Math.Abs(tempX - x) + Math.Abs(tempY - y); if (distance < minDistance && !toReturn.Contains(new Point(tempX, tempY))) { _x = tempX; _y = tempY; minDistance = distance; } } toReturn.Add(new Point(_x, _y)); } break; } case SpawnType.randomRoughRoadCircle: { int x, y, count = 100; do { x = World.World.random.Next((int)(0.2 * map.GetUpperBound(0)), (int)(0.8 * map.GetUpperBound(0))); y = World.World.random.Next((int)(0.2 * map.GetUpperBound(1)), (int)(0.8 * map.GetUpperBound(1))); count--; } while (map[x, y].type.type != MapTileTypeEnum.road && count > 0); toReturn.Add(new Point(x, y)); for (int i = 0; i < playerNumber; i++) { int _x = 0, _y = 0, tempX, tempY, minDistance = 100; for (int t = 0; t < 10; t++) { tempX = World.World.random.Next((int)(0.2 * map.GetUpperBound(0)), (int)(0.8 * map.GetUpperBound(0))); tempY = World.World.random.Next((int)(0.2 * map.GetUpperBound(1)), (int)(0.8 * map.GetUpperBound(1))); int distance = Math.Abs(tempX - x) + Math.Abs(tempY - y); if (distance < minDistance && !toReturn.Contains(new Point(tempX, tempY))) { _x = tempX; _y = tempY; minDistance = distance; } } toReturn.Add(new Point(_x, _y)); } break; } default: break; } return(toReturn); }
public void Activate(SpawnType spawnTf, NpcTypes type) { base.Activate(transform, spawnTf); // TODO set sprite based on NPC type }
public int NumberSpawnsInWave(SpawnType type, int waveIndex) { waveIndex = Mathf.Clamp(waveIndex, 0, MaxWaveIndex); return(WorkingLevelData.NumSpawns(type, waveIndex)); }
public int NumberSpawnsInCurrentWave(SpawnType type) { return(NumberSpawnsInWave(type, CurrentWaveIndex)); }
public void Activate(SpawnType spawnTf, bool bDropEnabled) { base.Activate(transform, spawnTf); _web.SpecialWeb = bDropEnabled; }
private void SubmitSetting( RelayInfo info, bool submit, int command ) { int settingNum = 0; string oldMessages = Messages; if ( submit ) { if ( AddSetting ) MessagesTitle = "Submit Setting"; else MessagesTitle = "Update Setting"; Messages = null; } if ( OverrideIndividualEntriesClicked ) settingNum = 1; if ( AddItemClicked ) settingNum = 2; switch ( settingNum ) { case 0: { Messages = "You must select a setting before submitting."; UpdatePage( command ); break; } case 1: // Override Individual Entries { bool invalid = false; bool fSpawnRange=false, fWalkRange=false, fAmount=false, fMinDelayHour=false, fMinDelayMin=false, fMinDelaySec=false, fMaxDelayHour=false, fMaxDelayMin=false, fMaxDelaySec=false, fEventRange=false, fBeginTimeBased=false, fEndTimeBased=false, fMinDespawnHour=false, fMinDespawnMin=false, fMinDespawnSec=false, fMaxDespawnHour=false, fMaxDespawnMin=false, fMaxDespawnSec=false; string checkSpawnRange=null, checkWalkRange=null, checkAmount=null, checkMinDelayHour=null, checkMinDelayMin=null, checkMinDelaySec=null, checkMaxDelayHour=null, checkMaxDelayMin=null, checkMaxDelaySec=null, checkEventRange=null, checkBeginTimeBased=null, checkEndTimeBased=null, checkMinDespawnHour=null, checkMinDespawnMin=null, checkMinDespawnSec=null, checkMaxDespawnHour=null, checkMaxDespawnMin=null, checkMaxDespawnSec=null; string stringBeginTimeBasedAMPM=null, stringEndTimeBasedAMPM=null; int intSpawnRange=0, intWalkRange=0, intAmount=0, intMinDelayHour=0, intMinDelayMin=0, intMinDelaySec=0, intMaxDelayHour=0, intMaxDelayMin=0, intMaxDelaySec=0, intEventRange=0, intBeginTimeBasedHour=0, intBeginTimeBasedMinute=0, intEndTimeBasedHour=0, intEndTimeBasedMinute=0, intMinDespawnHour=0, intMinDespawnMin=0, intMinDespawnSec=0, intMaxDespawnHour=0, intMaxDespawnMin=0, intMaxDespawnSec=0; if ( pg == 3 ) { spawnGroupSwitch = info.IsSwitched( 1 ); eventAmbushSwitch = info.IsSwitched( 2 ); despawnSwitch = info.IsSwitched( 3 ); despawnGroupSwitch = info.IsSwitched( 4 ); checkSpawnRange = info.GetTextEntry( 2 ).Text; checkWalkRange = info.GetTextEntry( 3 ).Text; checkAmount = info.GetTextEntry( 4 ).Text; checkMinDelayHour = info.GetTextEntry( 5 ).Text; checkMinDelayMin = info.GetTextEntry( 6 ).Text; checkMinDelaySec = info.GetTextEntry( 7 ).Text; checkMaxDelayHour = info.GetTextEntry( 8 ).Text; checkMaxDelayMin = info.GetTextEntry( 9 ).Text; checkMaxDelaySec = info.GetTextEntry( 10 ).Text; checkMinDespawnHour = info.GetTextEntry( 11 ).Text; checkMinDespawnMin = info.GetTextEntry( 12 ).Text; checkMinDespawnSec = info.GetTextEntry( 13 ).Text; checkMaxDespawnHour = info.GetTextEntry( 14 ).Text; checkMaxDespawnMin = info.GetTextEntry( 15 ).Text; checkMaxDespawnSec = info.GetTextEntry( 16 ).Text; } else { checkSpawnRange = spawnRange.ToString(); checkWalkRange = walkRange.ToString(); checkAmount = amount.ToString(); checkMinDelayHour = minDelayHour.ToString(); checkMinDelayMin = minDelayMin.ToString(); checkMinDelaySec = minDelaySec.ToString(); checkMaxDelayHour = maxDelayHour.ToString(); checkMaxDelayMin = maxDelayMin.ToString(); checkMaxDelaySec = maxDelaySec.ToString(); checkMinDespawnHour = minDespawnHour.ToString(); checkMinDespawnMin = minDespawnMin.ToString(); checkMinDespawnSec = minDespawnSec.ToString(); checkMaxDespawnHour = maxDespawnHour.ToString(); checkMaxDespawnMin = maxDespawnMin.ToString(); checkMaxDespawnSec = maxDespawnSec.ToString(); } if ( pg == 4 ) { int switchNum = MC.GetSwitchNum( info, 1, 5 ); spawnTypeSwitch = (SpawnType) switchNum; caseSensitiveSwitch = info.IsSwitched( 6 ); despawnTimeExpireSwitch = info.IsSwitched( 7 ); checkEventRange = info.GetTextEntry( 1 ).Text; checkBeginTimeBased = info.GetTextEntry( 2 ).Text; checkEndTimeBased = info.GetTextEntry( 3 ).Text; keyword = info.GetTextEntry( 4 ).Text; } else { CalcTimeBased(); checkEventRange = eventRange.ToString(); checkBeginTimeBased = beginTimeBased.ToString(); checkEndTimeBased = endTimeBased.ToString(); } // *************** First Check *************** try{ intSpawnRange = Convert.ToInt32( checkSpawnRange ); } catch { invalid = true; bSpawnRange = false; fSpawnRange = true; Messages = String.Format( "{0}Invalid input for [Spawn Range]. You must specify an integer only.\n", Messages ); } try{ intWalkRange = Convert.ToInt32( checkWalkRange ); } catch { invalid = true; bWalkRange = false; fWalkRange = true; Messages = String.Format( "{0}Invalid input for [Walk Range]. You must specify an integer only.\n", Messages ); } try{ intAmount = Convert.ToInt32( checkAmount ); } catch { invalid = true; bAmount = false; fAmount = true; Messages = String.Format( "{0}Invalid input for [Amount To Spawn]. You must specify an integer only.\n", Messages ); } try{ intMinDelayHour = Convert.ToInt32( checkMinDelayHour ); } catch { invalid = true; bMinDelayHour = false; fMinDelayHour = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Hours]. You must specify an integer only.\n", Messages ); } try{ intMinDelayMin = Convert.ToInt32( checkMinDelayMin ); } catch { invalid = true; bMinDelayMin = false; fMinDelayMin = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Minutes]. You must specify an integer only.\n", Messages ); } try{ intMinDelaySec = Convert.ToInt32( checkMinDelaySec ); } catch { invalid = true; bMinDelaySec = false; fMinDelaySec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Seconds]. You must specify an integer only.\n", Messages ); } try{ intMaxDelayHour = Convert.ToInt32( checkMaxDelayHour ); } catch { invalid = true; bMaxDelayHour = false; fMaxDelayHour = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Hours]. You must specify an integer only.\n", Messages ); } try{ intMaxDelayMin = Convert.ToInt32( checkMaxDelayMin ); } catch { invalid = true; bMaxDelayMin = false; fMaxDelayMin = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Minutes]. You must specify an integer only.\n", Messages ); } try{ intMaxDelaySec = Convert.ToInt32( checkMaxDelaySec ); } catch { invalid = true; bMaxDelaySec = false; fMaxDelaySec = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Seconds]. You must specify an integer only.\n", Messages ); } try{ intEventRange = Convert.ToInt32( checkEventRange ); } catch { invalid = true; bEventRange = false; fEventRange = true; Messages = String.Format( "{0}Invalid input for [Event Range]. You must specify an integer only.\n", Messages ); } string[] begin = checkBeginTimeBased.Split(':'); string[] end = checkEndTimeBased.Split(':'); string[] beginAMPM = null; string[] endAMPM = null; if ( begin.Length != 2 ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid format for [Begin Time Based]. Example of the correct format is: 12:00 PM.\n", Messages ); } else { beginAMPM = begin[1].Split(' '); } if ( end.Length != 2 ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid format for [End Time Based]. Example of the correct format is: 12:00 PM.\n", Messages ); } else { endAMPM = end[1].Split(' '); } try{ intBeginTimeBasedHour = Convert.ToInt32( begin[0] ); } catch { if ( !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [Hour]. You must specify an integer only.\n", Messages ); } } try{ intBeginTimeBasedMinute = Convert.ToInt32( beginAMPM[0] ); } catch { if ( !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [Minute]. You must specify an integer only.\n", Messages ); } } try{ intEndTimeBasedHour = Convert.ToInt32( end[0] ); } catch { if ( !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [Hour]. You must specify an integer only.\n", Messages ); } } try{ intEndTimeBasedMinute = Convert.ToInt32( endAMPM[0] ); } catch { if ( !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [Minute]. You must specify an integer only.\n", Messages ); } } if ( ( beginAMPM == null || beginAMPM.Length != 2 ) && !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid format for [Begin Time Based]. Example of the correct format is: 12:00 PM.\n", Messages ); } else stringBeginTimeBasedAMPM = Convert.ToString( beginAMPM[1] ).ToUpper(); if ( ( endAMPM == null || endAMPM.Length != 2 ) && !fBeginTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid format for [End Time Based]. Example of the correct format is: 12:00 PM.\n", Messages ); } else stringEndTimeBasedAMPM = Convert.ToString( endAMPM[1] ).ToUpper(); try{ intMinDespawnHour = Convert.ToInt32( checkMinDespawnHour ); } catch { invalid = true; bMinDespawnHour = false; fMinDespawnHour = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Hours]. You must specify an integer only.\n", Messages ); } try{ intMinDespawnMin = Convert.ToInt32( checkMinDespawnMin ); } catch { invalid = true; bMinDespawnMin = false; fMinDespawnMin = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Minutes]. You must specify an integer only.\n", Messages ); } try{ intMinDespawnSec = Convert.ToInt32( checkMinDespawnSec ); } catch { invalid = true; bMinDespawnSec = false; fMinDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Seconds]. You must specify an integer only.\n", Messages ); } try{ intMaxDespawnHour = Convert.ToInt32( checkMaxDespawnHour ); } catch { invalid = true; bMaxDespawnHour = false; fMaxDespawnHour = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Hours]. You must specify an integer only.\n", Messages ); } try{ intMaxDespawnMin = Convert.ToInt32( checkMaxDespawnMin ); } catch { invalid = true; bMaxDespawnMin = false; fMaxDespawnMin = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Minutes]. You must specify an integer only.\n", Messages ); } try{ intMaxDespawnSec = Convert.ToInt32( checkMaxDespawnSec ); } catch { invalid = true; bMaxDespawnSec = false; fMaxDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Seconds]. You must specify an integer only.\n", Messages ); } // *************** Second Check *************** if ( intSpawnRange < 0 && !fSpawnRange ) { invalid = true; bSpawnRange = false; fSpawnRange = true; Messages = String.Format( "{0}Invalid input for [Spawn Range]. Must be greater than or equal to 0.\n", Messages ); } if ( intWalkRange < 0 && !fWalkRange ) { invalid = true; bWalkRange = false; fWalkRange = true; Messages = String.Format( "{0}Invalid input for [Walk Range]. Must be greater than or equal to 0.\n", Messages ); } if ( intAmount <= 0 && !fAmount ) { invalid = true; bAmount = false; fAmount = true; Messages = String.Format( "{0}Invalid input for [Amount]. Must be greater than 0.\n", Messages ); } if ( intMinDelayHour < 0 && !fMinDelayHour ) { invalid = true; bMinDelayHour = false; fMinDelayHour = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Hours]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intMinDelayMin < 0 || intMinDelayMin > 59 ) && !fMinDelayMin ) { invalid = true; bMinDelayMin = false; fMinDelayMin = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Minutes]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( ( intMinDelaySec < 0 || intMinDelaySec > 59 ) && !fMinDelaySec ) { invalid = true; bMinDelaySec = false; fMinDelaySec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Seconds]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( intMaxDelayHour < 0 && !fMaxDelayHour ) { invalid = true; bMaxDelayHour = false; fMaxDelayHour = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Hours]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intMaxDelayMin < 0 || intMaxDelayMin > 59 ) && !fMaxDelayMin ) { invalid = true; bMaxDelayMin = false; fMaxDelayMin = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Minutes]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( ( intMaxDelaySec < 0 || intMaxDelaySec > 59 ) && !fMaxDelaySec ) { invalid = true; bMaxDelaySec = false; fMaxDelaySec = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Seconds]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } int calcMinDelay=0, calcMaxDelay=0, calcBeginTimeBased=0, calcEndTimeBased=0; if ( !fMinDelayHour && !fMinDelayMin && !fMinDelaySec && !fMaxDelayHour && !fMaxDelayMin && !fMaxDelaySec ) { calcMinDelay = intMinDelaySec + ( intMinDelayMin * 60 ) + ( intMinDelayHour * 3600 ); calcMaxDelay = intMaxDelaySec + ( intMaxDelayMin * 60 ) + ( intMaxDelayHour * 3600 ); } if ( calcMinDelay > calcMaxDelay ) { invalid = true; bMinDelayHour = false; bMinDelayMin = false; bMinDelaySec = false; bMaxDelayHour = false; bMaxDelayMin = false; bMaxDelaySec = false; fMinDelayHour = true; fMinDelayMin = true; fMinDelaySec = true; fMaxDelayHour = true; fMaxDelayMin = true; fMaxDelaySec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn]. Must be less than or equal to [Max Delay To Next Spawn].\n", Messages ); } if ( intEventRange < 0 && !fEventRange ) { invalid = true; bEventRange = false; fEventRange = true; Messages = String.Format( "{0}Invalid input for [Event Range]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intBeginTimeBasedHour > 12 || intBeginTimeBasedHour < 1 ) && !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [Hour]. Must be between 1 and 12.\n", Messages ); } if ( ( intBeginTimeBasedMinute > 59 || intBeginTimeBasedMinute < 0 ) && !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [Minute]. Must be between 00 and 59.\n", Messages ); } if ( ( stringBeginTimeBasedAMPM != "AM" && stringBeginTimeBasedAMPM != "PM" ) && !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [AM/PM]. Must be AM or PM only.\n", Messages ); } if ( ( intEndTimeBasedHour > 12 || intEndTimeBasedHour < 1 ) && !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [Hour]. Must be between 1 and 12.\n", Messages ); } if ( ( intEndTimeBasedMinute > 59 || intEndTimeBasedMinute < 0 ) && !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [Minute]. Must be between 00 and 59.\n", Messages ); } if ( ( stringEndTimeBasedAMPM != "AM" && stringEndTimeBasedAMPM != "PM" ) && !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [AM/PM]. Must be AM or PM only.\n", Messages ); } if ( !fBeginTimeBased ) { int hourCheck = intBeginTimeBasedHour; if ( stringBeginTimeBasedAMPM == "PM" && hourCheck < 12 ) hourCheck += 12; if ( stringBeginTimeBasedAMPM == "AM" && hourCheck == 12 ) hourCheck = 0; calcBeginTimeBased = ( hourCheck * 60 ) + intBeginTimeBasedMinute; } if ( !fEndTimeBased ) { int hourCheck = intEndTimeBasedHour; if ( stringEndTimeBasedAMPM == "PM" && hourCheck < 12 ) hourCheck += 12; if ( stringEndTimeBasedAMPM == "AM" && hourCheck == 12 ) hourCheck = 0; calcEndTimeBased = ( hourCheck * 60 ) + intEndTimeBasedMinute; } if ( intMinDespawnHour < 0 && !fMinDespawnHour ) { invalid = true; bMinDespawnHour = false; fMinDespawnHour = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Hours]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intMinDespawnMin < 0 || intMinDespawnMin > 59 ) && !fMinDespawnMin ) { invalid = true; bMinDespawnMin = false; fMinDespawnMin = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Minutes]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( ( intMinDespawnSec < 0 || intMinDespawnSec > 59 ) && !fMinDespawnSec ) { invalid = true; bMinDespawnSec = false; fMinDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Seconds]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( intMaxDespawnHour < 0 && !fMaxDespawnHour ) { invalid = true; bMaxDespawnHour = false; fMaxDespawnHour = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Hours]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intMaxDespawnMin < 0 || intMaxDespawnMin > 59 ) && !fMaxDespawnMin ) { invalid = true; bMaxDespawnMin = false; fMaxDespawnMin = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Minutes]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( ( intMaxDespawnSec < 0 || intMaxDespawnSec > 59 ) && !fMaxDespawnSec ) { invalid = true; bMaxDespawnSec = false; fMaxDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Seconds]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } int calcMinDespawn=0, calcMaxDespawn=0; if ( !fMinDespawnHour && !fMinDespawnMin && !fMinDespawnSec && !fMaxDespawnHour && !fMaxDespawnMin && !fMaxDespawnSec ) { calcMinDespawn = intMinDespawnSec + ( intMinDespawnMin * 60 ) + ( intMinDespawnHour * 3600 ); calcMaxDespawn = intMaxDespawnSec + ( intMaxDespawnMin * 60 ) + ( intMaxDespawnHour * 3600 ); } if ( calcMinDespawn > calcMaxDespawn ) { invalid = true; bMinDespawnHour = false; bMinDespawnMin = false; bMinDespawnSec = false; bMaxDespawnHour = false; bMaxDespawnMin = false; bMaxDespawnSec = false; fMinDespawnHour = true; fMinDespawnMin = true; fMinDespawnSec = true; fMaxDespawnHour = true; fMaxDespawnMin = true; fMaxDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn]. Must be less than or equal to [Max Delay To Despawn].\n", Messages ); } // *************** Final Check *************** if ( invalid ) { if ( !fSpawnRange ) { bSpawnRange = true; spawnRange = intSpawnRange; } if ( !fWalkRange ) { bWalkRange = true; walkRange = intWalkRange; } if ( !fAmount ) { bAmount = true; amount = intAmount; } if ( !fMinDelayHour ) { bMinDelayHour = true; minDelayHour = intMinDelayHour; } if ( !fMinDelayMin ) { bMinDelayMin = true; minDelayMin = intMinDelayMin; } if ( !fMinDelaySec ) { bMinDelaySec = true; minDelaySec = intMinDelaySec; } if ( !fMaxDelayHour ) { bMaxDelayHour = true; maxDelayHour = intMaxDelayHour; } if ( !fMaxDelayMin ) { bMaxDelayMin = true; maxDelayMin = intMaxDelayMin; } if ( !fMaxDelaySec ) { bMaxDelaySec = true; maxDelaySec = intMaxDelaySec; } if ( !fEventRange ) { bEventRange = true; eventRange = intEventRange; } if ( !fBeginTimeBased ) { bBeginTimeBased = true; if ( stringBeginTimeBasedAMPM == "PM" && intBeginTimeBasedHour < 12 ) intBeginTimeBasedHour += 12; if ( stringBeginTimeBasedAMPM == "AM" && intBeginTimeBasedHour == 12 ) intBeginTimeBasedHour = 0; beginTimeBasedHour = intBeginTimeBasedHour; beginTimeBasedMinute = intBeginTimeBasedMinute; } if ( !fEndTimeBased ) { bEndTimeBased = true; if ( stringEndTimeBasedAMPM == "PM" && intEndTimeBasedHour < 12 ) intEndTimeBasedHour += 12; if ( stringEndTimeBasedAMPM == "AM" && intEndTimeBasedHour == 12 ) intEndTimeBasedHour = 0; endTimeBasedHour = intEndTimeBasedHour; endTimeBasedMinute = intEndTimeBasedMinute; } if ( !fMinDespawnHour ) { bMinDespawnHour = true; minDespawnHour = intMinDespawnHour; } if ( !fMinDespawnMin ) { bMinDespawnMin = true; minDespawnMin = intMinDespawnMin; } if ( !fMinDespawnSec ) { bMinDespawnSec = true; minDespawnSec = intMinDespawnSec; } if ( !fMaxDespawnHour ) { bMaxDespawnHour = true; maxDespawnHour = intMaxDespawnHour; } if ( !fMaxDespawnMin ) { bMaxDespawnMin = true; maxDespawnMin = intMaxDespawnMin; } if ( !fMaxDespawnSec ) { bMaxDespawnSec = true; maxDespawnSec = intMaxDespawnSec; } if ( !submit ) Messages = oldMessages; UpdatePage( command ); return; } // *************** Applying Settings *************** spawnRange = intSpawnRange; walkRange = intWalkRange; amount = intAmount; eventRange = intEventRange; if ( stringBeginTimeBasedAMPM == "PM" && intBeginTimeBasedHour < 12 ) intBeginTimeBasedHour += 12; if ( stringBeginTimeBasedAMPM == "AM" && intBeginTimeBasedHour == 12 ) intBeginTimeBasedHour = 0; beginTimeBasedHour = intBeginTimeBasedHour; beginTimeBasedMinute = intBeginTimeBasedMinute; if ( stringEndTimeBasedAMPM == "PM" && intEndTimeBasedHour < 12 ) intEndTimeBasedHour += 12; if ( stringEndTimeBasedAMPM == "AM" && intEndTimeBasedHour == 12 ) intEndTimeBasedHour = 0; endTimeBasedHour = intEndTimeBasedHour; endTimeBasedMinute = intEndTimeBasedMinute; ArrayList settingList = new ArrayList(); settingList.Add( Setting.OverrideIndividualEntries ); settingList.Add( spawnRange ); settingList.Add( walkRange ); settingList.Add( amount ); settingList.Add( calcMinDelay ); settingList.Add( calcMaxDelay ); settingList.Add( spawnGroupSwitch ); settingList.Add( eventAmbushSwitch ); settingList.Add( spawnTypeSwitch ); settingList.Add( keyword ); settingList.Add( caseSensitiveSwitch ); settingList.Add( eventRange ); settingList.Add( beginTimeBasedHour ); settingList.Add( beginTimeBasedMinute ); settingList.Add( endTimeBasedHour ); settingList.Add( endTimeBasedMinute ); settingList.Add( calcMinDespawn ); settingList.Add( calcMaxDespawn ); settingList.Add( despawnSwitch ); settingList.Add( despawnGroupSwitch ); settingList.Add( despawnTimeExpireSwitch ); if ( AddSetting && submit ) { megaSpawner.SettingsList.Add( settingList ); Messages = "Setting has been added."; SettingsCheckBoxesList.Add( (bool) false ); } else if ( submit ) { megaSpawner.SettingsList[index] = settingList; Messages = "Setting has been updated."; } if ( submit ) { megaSpawner.DeleteEntries(); MegaSpawnerOverride.RemoveRespawnEntries( megaSpawner ); for ( int i = 0; i < amount; i++ ) { megaSpawner.OverrideRespawnEntryList.Add( "" ); megaSpawner.OverrideRespawnTimeList.Add( 0 ); megaSpawner.OverrideSpawnCounterList.Add( DateTime.Now ); megaSpawner.OverrideSpawnTimeList.Add( 0 ); megaSpawner.OverrideDespawnTimeList.Add( 0 ); } megaSpawner.OverrideSpawnedEntries.Clear(); megaSpawner.OverrideLastMovedList.Clear(); megaSpawner.CompileSettings(); megaSpawner.Respawn(); MegaSpawnerOverride.CheckDupedEntries( megaSpawner ); ArgsList[30] = 0; // FromWhere SetArgsList(); gumpMobile.SendGump( new SettingsGump( gumpMobile, ArgsList ) ); break; } else { minDelayHour = intMinDelayHour; minDelayMin = intMinDelayMin; minDelaySec = intMinDelaySec; maxDelayHour = intMaxDelayHour; maxDelayMin = intMaxDelayMin; maxDelaySec = intMaxDelaySec; minDespawnHour = intMinDespawnHour; minDespawnMin = intMinDespawnMin; minDespawnSec = intMinDespawnSec; maxDespawnHour = intMaxDespawnHour; maxDespawnMin = intMaxDespawnMin; maxDespawnSec = intMaxDespawnSec; if ( stringBeginTimeBasedAMPM == "PM" && intBeginTimeBasedHour < 12 ) intBeginTimeBasedHour += 12; if ( stringBeginTimeBasedAMPM == "AM" && intBeginTimeBasedHour == 12 ) intBeginTimeBasedHour = 0; beginTimeBasedHour = intBeginTimeBasedHour; beginTimeBasedMinute = intBeginTimeBasedMinute; if ( stringEndTimeBasedAMPM == "PM" && intEndTimeBasedHour < 12 ) intEndTimeBasedHour += 12; if ( stringEndTimeBasedAMPM == "AM" && intEndTimeBasedHour == 12 ) intEndTimeBasedHour = 0; endTimeBasedHour = intEndTimeBasedHour; endTimeBasedMinute = intEndTimeBasedMinute; Messages = oldMessages; UpdatePage( command ); } break; } case 2: // Add Item To Spawn Entry { bool invalid = false; bool fAddItem=false, fMinStackAmount=false, fMaxStackAmount=false; string checkAddItem=null, checkMinStackAmount=null, checkMaxStackAmount=null; int intMinStackAmount=0, intMaxStackAmount=0; string stringAddItem=null; TextRelay textInput; if ( pg == 6 ) { textInput = info.GetTextEntry( 1 ); checkAddItem = Convert.ToString( textInput.Text ); textInput = info.GetTextEntry( 2 ); checkMinStackAmount = Convert.ToString( textInput.Text ); textInput = info.GetTextEntry( 3 ); checkMaxStackAmount = Convert.ToString( textInput.Text ); } else { checkMinStackAmount = minStackAmount.ToString(); checkMaxStackAmount = maxStackAmount.ToString(); } // *************** First Check *************** if ( entryName == "" ) { invalid = true; Messages = String.Format( "{0}Invalid input for [Entry Name]. You must choose an entry to add the item to.\n", Messages ); } if ( pg == 6 ) { Type type = ScriptCompiler.FindTypeByName( checkAddItem ); if ( type != null ) stringAddItem = type.Name; if ( type == null || MC.IsBadEntryType( checkAddItem ) || MC.IsMobile( checkAddItem ) ) { invalid = true; bAddItem = false; fAddItem = true; Messages = String.Format( "{0}Invalid input for [Item To Add]. You must specify a valid type. Type must be an item only. Specifying a mobile will result in an error.\n", Messages ); } } try{ intMinStackAmount = Convert.ToInt32( checkMinStackAmount ); } catch { invalid = true; bMinStackAmount = false; fMinStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount] [Minimum Amount]. You must specify an integer only.\n", Messages ); } try{ intMaxStackAmount = Convert.ToInt32( checkMaxStackAmount ); } catch { invalid = true; bMaxStackAmount = false; fMaxStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount] [Maximum Amount]. You must specify an integer only.\n", Messages ); } // *************** Second Check *************** if ( intMinStackAmount < 1 && !fMinStackAmount ) { invalid = true; bMinStackAmount = false; fMinStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount] [Minimum Amount]. Must be greater than 0.\n", Messages ); } if ( intMaxStackAmount < 1 && !fMaxStackAmount ) { invalid = true; bMaxStackAmount = false; fMaxStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount] [Maximum Amount]. Must be greater than 0.\n", Messages ); } if ( intMinStackAmount > intMaxStackAmount && !fMinStackAmount && !fMaxStackAmount ) { invalid = true; bMinStackAmount = false; fMinStackAmount = true; bMaxStackAmount = false; fMaxStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount]. [Minimum Amount] must be less than or equal to [Maximum Amount].\n", Messages ); } // *************** Final Check *************** if ( invalid ) { if ( !fAddItem || command == 7 ) { bAddItem = true; addItem = checkAddItem; } if ( !fMinStackAmount ) { bMinStackAmount = true; minStackAmount = intMinStackAmount; } if ( !fMaxStackAmount ) { bMaxStackAmount = true; maxStackAmount = intMaxStackAmount; } if ( !submit ) Messages = oldMessages; UpdatePage( command ); return; } // *************** Applying Settings *************** if ( stringAddItem != null ) addItem = stringAddItem; else addItem = checkAddItem; minStackAmount = intMinStackAmount; maxStackAmount = intMaxStackAmount; bool notContainer = false; ArrayList settingList = new ArrayList(); settingList.Add( Setting.AddItem ); settingList.Add( entryName ); settingList.Add( entryIndex ); settingList.Add( addItem ); settingList.Add( minStackAmount ); settingList.Add( maxStackAmount ); if ( MC.IsContainer( addItem ) ) settingList[0] = Setting.AddContainer; else settingList[0] = Setting.AddItem; if ( !MC.IsContainer( addItem ) && InsideItemList.Count > 0 ) { notContainer = true; } else { for ( int i = 0; i < InsideItemList.Count; i++ ) { ArrayList List = (ArrayList) InsideItemList[i]; settingList.Add( List ); } } if ( AddSetting && submit ) { megaSpawner.SettingsList.Add( settingList ); megaSpawner.CompileSettings(); Messages = String.Format( "Setting has been added.{0}", notContainer ? " The item being added is not a container, therefore, the items list was cleared." : "" ); SettingsCheckBoxesList.Add( (bool) false ); } else if ( submit ) { megaSpawner.SettingsList[index] = settingList; megaSpawner.CompileSettings(); Messages = String.Format( "Setting has been updated.{0}", notContainer ? " The item being added is not a container, therefore, the items list was cleared." : "" ); } if ( submit ) { megaSpawner.SettingsList.Sort( new MC.SettingsSorter() ); if ( !MC.IsContainer( addItem ) ) InsideItemList.Clear(); ArgsList[30] = 0; // FromWhere SetArgsList(); gumpMobile.SendGump( new SettingsGump( gumpMobile, ArgsList ) ); break; } else { Messages = oldMessages; UpdatePage( command ); } break; } } }
public WayPoint(Vector2 position, SpawnType spawnType, Submarine submarine, Gap gap = null) : this(new Rectangle((int)position.X - 3, (int)position.Y + 3, 6, 6), submarine) { this.spawnType = spawnType; ConnectedGap = gap; }
public static void CheckTimeExpire( MegaSpawner megaSpawner, SpawnType st ) { if ( !megaSpawner.OverrideDespawnTimeExpire ) return; switch ( st ) { case SpawnType.GameTimeBased: { int UOHour, UOMinute, time; Server.Items.Clock.GetTime( megaSpawner.Map, megaSpawner.X, megaSpawner.Y, out UOHour, out UOMinute ); if ( UOHour == 24 ) UOHour = 0; time = ( UOHour * 60 ) + UOMinute; CheckDespawnTime( megaSpawner, time ); break; } case SpawnType.RealTimeBased: { int time = ( DateTime.Now.Hour * 60 ) + DateTime.Now.Minute; CheckDespawnTime( megaSpawner, time ); break; } } }
public void AddWaveData(SpawnType spawnType, int count) { m_WaveData.Add(new WaveData(spawnType, count)); }
public Spawn(Point p,int i, SpawnType t) : this(p,0,1f,i,t) { }
private void SpawnBoss(SpawnType spawnType) { switch (spawnType) { case SpawnType.Squid: var controller = AddActorController<SquidController>(ActorFactory.Create<SquidBoss>(ResourceDictionary.GetResource("SquidData"), new Vector2(7f, 1.75f))); controller.Zazumo = this._zazumo; break; } }
public void Read(MpqFileStream stream) { this.SNOHandle = new SNOHandle(stream); this.SpawnType = (SpawnType)stream.ReadValueS32(); this.I0 = stream.ReadValueS32(); this.I1 = stream.ReadValueS32(); this.I2 = stream.ReadValueS32(); this.I3 = stream.ReadValueS32(); }
public void Draw(SpriteBatch spriteBatch, Vector2 drawPos) { Color clr = currentHull == null ? Color.CadetBlue : GUI.Style.Green; if (spawnType != SpawnType.Path) { clr = Color.Gray; } if (isObstructed) { clr = Color.Black; } if (IsHighlighted || IsHighlighted) { clr = Color.Lerp(clr, Color.White, 0.8f); } int iconSize = spawnType == SpawnType.Path ? WaypointSize : SpawnPointSize; if (ConnectedGap != null || Ladders != null || Stairs != null || SpawnType != SpawnType.Path) { iconSize = (int)(iconSize * 1.5f); } if (IsSelected || IsHighlighted) { int glowSize = (int)(iconSize * 1.5f); GUI.Style.UIGlowCircular.Draw(spriteBatch, new Rectangle((int)(drawPos.X - glowSize / 2), (int)(drawPos.Y - glowSize / 2), glowSize, glowSize), Color.White); } Sprite sprite = iconSprites[SpawnType.ToString()]; if (spawnType == SpawnType.Human && AssignedJob?.Icon != null) { sprite = iconSprites["Path"]; } else if (ConnectedDoor != null) { sprite = iconSprites["Door"]; } else if (Ladders != null) { sprite = iconSprites["Ladder"]; } sprite.Draw(spriteBatch, drawPos, clr, scale: iconSize / (float)sprite.SourceRect.Width, depth: 0.001f); sprite.RelativeOrigin = Vector2.One * 0.5f; if (spawnType == SpawnType.Human && AssignedJob?.Icon != null) { AssignedJob.Icon.Draw(spriteBatch, drawPos, AssignedJob.UIColor, scale: iconSize / (float)AssignedJob.Icon.SourceRect.Width * 0.8f, depth: 0.0f); } foreach (MapEntity e in linkedTo) { GUI.DrawLine(spriteBatch, drawPos, new Vector2(e.DrawPosition.X, -e.DrawPosition.Y), (isObstructed ? Color.Gray : GUI.Style.Green) * 0.7f, width: 5, depth: 0.002f); } GUI.SmallFont.DrawString(spriteBatch, ID.ToString(), new Vector2(DrawPosition.X - 10, -DrawPosition.Y - 30), Color.WhiteSmoke); }
private void SubmitEntry( RelayInfo info, bool submit, int command ) { oldEntryType = entryType; string oldMessages = Messages; bool oldActivated = false; if ( submit ) { if ( AddToSpawner ) MessagesTitle = "Submit Entry"; else MessagesTitle = "Update Entry"; Messages = null; } bool invalid = false; bool fEntryType=false, fSpawnRange=false, fWalkRange=false, fAmount=false, fMinDelayHour=false, fMinDelayMin=false, fMinDelaySec=false, fMaxDelayHour=false, fMaxDelayMin=false, fMaxDelaySec=false, fEventRange=false, fBeginTimeBased=false, fEndTimeBased=false, fMinStackAmount=false, fMaxStackAmount=false, fMinDespawnHour=false, fMinDespawnMin=false, fMinDespawnSec=false, fMaxDespawnHour=false, fMaxDespawnMin=false, fMaxDespawnSec=false; string checkEntryType=null, checkSpawnRange=null, checkWalkRange=null, checkAmount=null, checkMinDelayHour=null, checkMinDelayMin=null, checkMinDelaySec=null, checkMaxDelayHour=null, checkMaxDelayMin=null, checkMaxDelaySec=null, checkEventRange=null, checkBeginTimeBased=null, checkEndTimeBased=null, checkMinStackAmount=null, checkMaxStackAmount=null, checkMinDespawnHour=null, checkMinDespawnMin=null, checkMinDespawnSec=null, checkMaxDespawnHour=null, checkMaxDespawnMin=null, checkMaxDespawnSec=null; string stringEntryType=null, stringBeginTimeBasedAMPM=null, stringEndTimeBasedAMPM=null; int intSpawnRange=0, intWalkRange=0, intAmount=0, intMinDelayHour=0, intMinDelayMin=0, intMinDelaySec=0, intMaxDelayHour=0, intMaxDelayMin=0, intMaxDelaySec=0, intEventRange=0, intBeginTimeBasedHour=0, intBeginTimeBasedMinute=0, intEndTimeBasedHour=0, intEndTimeBasedMinute=0, intMinStackAmount=0, intMaxStackAmount=0, intMinDespawnHour=0, intMinDespawnMin=0, intMinDespawnSec=0, intMaxDespawnHour=0, intMaxDespawnMin=0, intMaxDespawnSec=0; if ( pg == 1 ) { checkEntryType = info.GetTextEntry( 1 ).Text; checkMinStackAmount = info.GetTextEntry( 11 ).Text; checkMaxStackAmount = info.GetTextEntry( 12 ).Text; oldActivated = activatedSwitch; activatedSwitch = info.IsSwitched( 1 ); movableSwitch = info.IsSwitched( 4 ); } else { checkEntryType = entryType; checkMinStackAmount = minStackAmount.ToString(); checkMaxStackAmount = maxStackAmount.ToString(); } if ( !megaSpawner.OverrideIndividualEntries ) { if ( pg == 1 ) { spawnGroupSwitch = info.IsSwitched( 2 ); eventAmbushSwitch = info.IsSwitched( 3 ); despawnSwitch = info.IsSwitched( 5 ); despawnGroupSwitch = info.IsSwitched( 6 ); checkSpawnRange = info.GetTextEntry( 2 ).Text; checkWalkRange = info.GetTextEntry( 3 ).Text; checkAmount = info.GetTextEntry( 4 ).Text; checkMinDelayHour = info.GetTextEntry( 5 ).Text; checkMinDelayMin = info.GetTextEntry( 6 ).Text; checkMinDelaySec = info.GetTextEntry( 7 ).Text; checkMaxDelayHour = info.GetTextEntry( 8 ).Text; checkMaxDelayMin = info.GetTextEntry( 9 ).Text; checkMaxDelaySec = info.GetTextEntry( 10 ).Text; checkMinDespawnHour = info.GetTextEntry( 13 ).Text; checkMinDespawnMin = info.GetTextEntry( 14 ).Text; checkMinDespawnSec = info.GetTextEntry( 15 ).Text; checkMaxDespawnHour = info.GetTextEntry( 16 ).Text; checkMaxDespawnMin = info.GetTextEntry( 17 ).Text; checkMaxDespawnSec = info.GetTextEntry( 18 ).Text; } else { checkSpawnRange = spawnRange.ToString(); checkWalkRange = walkRange.ToString(); checkAmount = amount.ToString(); checkMinDelayHour = minDelayHour.ToString(); checkMinDelayMin = minDelayMin.ToString(); checkMinDelaySec = minDelaySec.ToString(); checkMaxDelayHour = maxDelayHour.ToString(); checkMaxDelayMin = maxDelayMin.ToString(); checkMaxDelaySec = maxDelaySec.ToString(); checkMinDespawnHour = minDespawnHour.ToString(); checkMinDespawnMin = minDespawnMin.ToString(); checkMinDespawnSec = minDespawnSec.ToString(); checkMaxDespawnHour = maxDespawnHour.ToString(); checkMaxDespawnMin = maxDespawnMin.ToString(); checkMaxDespawnSec = maxDespawnSec.ToString(); } if ( pg == 2 ) { int switchNum = MC.GetSwitchNum( info, 1, 5 ); spawnTypeSwitch = (SpawnType) switchNum; caseSensitiveSwitch = info.IsSwitched( 6 ); despawnTimeExpireSwitch = info.IsSwitched( 7 ); checkEventRange = info.GetTextEntry( 1 ).Text; checkBeginTimeBased = info.GetTextEntry( 2 ).Text; checkEndTimeBased = info.GetTextEntry( 3 ).Text; keyword = info.GetTextEntry( 4 ).Text; } else { CalcTimeBased(); checkEventRange = eventRange.ToString(); checkBeginTimeBased = beginTimeBased.ToString(); checkEndTimeBased = endTimeBased.ToString(); } } else { if ( pg == 1 ) { checkAmount = info.GetTextEntry( 4 ).Text; } spawnTypeSwitch = SpawnType.Regular; spawnGroupSwitch = false; eventAmbushSwitch = true; checkSpawnRange = "10"; checkWalkRange = "10"; checkMinDelayHour = "0"; checkMinDelayMin = "5"; checkMinDelaySec = "0"; checkMaxDelayHour = "0"; checkMaxDelayMin = "10"; checkMaxDelaySec = "0"; checkEventRange = "10"; checkBeginTimeBased = "12:00 AM"; checkEndTimeBased = "12:00 AM"; keyword = ""; checkMinDespawnHour = "0"; checkMinDespawnMin = "30"; checkMinDespawnSec = "0"; checkMaxDespawnHour = "1"; checkMaxDespawnMin = "0"; checkMaxDespawnSec = "0"; } // *************** First Check *************** Type type = ScriptCompiler.FindTypeByName( checkEntryType ); if ( type != null ) stringEntryType = type.Name; if ( type == null || MC.IsBadEntryType( checkEntryType ) ) { invalid = true; bEntryType = false; fEntryType = true; Messages = String.Format( "{0}Invalid input for [Entry Type]. You must specify a valid type.\n", Messages ); } if ( AddToSpawner && submit && megaSpawner.OverrideIndividualEntries ) { for ( int i = 0; i < megaSpawner.EntryList.Count; i++ ) { if ( checkEntryType.ToLower() == ( (string) megaSpawner.EntryList[i] ).ToLower() ) { invalid = true; bEntryType = false; fEntryType = true; Messages = String.Format( "{0}Invalid input for [Entry Type]. That entry already exists. You may not have duplicate entries when the Mega Spawner is overridden. Please choose another entry.\n", Messages ); } } } try{ intSpawnRange = Convert.ToInt32( checkSpawnRange ); } catch { invalid = true; bSpawnRange = false; fSpawnRange = true; Messages = String.Format( "{0}Invalid input for [Spawn Range]. You must specify an integer only.\n", Messages ); } try{ intWalkRange = Convert.ToInt32( checkWalkRange ); } catch { invalid = true; bWalkRange = false; fWalkRange = true; Messages = String.Format( "{0}Invalid input for [Walk Range]. You must specify an integer only.\n", Messages ); } try{ intAmount = Convert.ToInt32( checkAmount ); } catch { invalid = true; bAmount = false; fAmount = true; Messages = String.Format( "{0}Invalid input for [Amount To Spawn]. You must specify an integer only.\n", Messages ); } try{ intMinDelayHour = Convert.ToInt32( checkMinDelayHour ); } catch { invalid = true; bMinDelayHour = false; fMinDelayHour = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Hours]. You must specify an integer only.\n", Messages ); } try{ intMinDelayMin = Convert.ToInt32( checkMinDelayMin ); } catch { invalid = true; bMinDelayMin = false; fMinDelayMin = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Minutes]. You must specify an integer only.\n", Messages ); } try{ intMinDelaySec = Convert.ToInt32( checkMinDelaySec ); } catch { invalid = true; bMinDelaySec = false; fMinDelaySec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Seconds]. You must specify an integer only.\n", Messages ); } try{ intMaxDelayHour = Convert.ToInt32( checkMaxDelayHour ); } catch { invalid = true; bMaxDelayHour = false; fMaxDelayHour = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Hours]. You must specify an integer only.\n", Messages ); } try{ intMaxDelayMin = Convert.ToInt32( checkMaxDelayMin ); } catch { invalid = true; bMaxDelayMin = false; fMaxDelayMin = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Minutes]. You must specify an integer only.\n", Messages ); } try{ intMaxDelaySec = Convert.ToInt32( checkMaxDelaySec ); } catch { invalid = true; bMaxDelaySec = false; fMaxDelaySec = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Seconds]. You must specify an integer only.\n", Messages ); } try{ intEventRange = Convert.ToInt32( checkEventRange ); } catch { invalid = true; bEventRange = false; fEventRange = true; Messages = String.Format( "{0}Invalid input for [Event Range]. You must specify an integer only.\n", Messages ); } string[] begin = checkBeginTimeBased.Split(':'); string[] end = checkEndTimeBased.Split(':'); string[] beginAMPM = null; string[] endAMPM = null; if ( begin.Length != 2 ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid format for [Begin Time Based]. Example of the correct format is: 12:00 PM.\n", Messages ); } else { beginAMPM = begin[1].Split(' '); } if ( end.Length != 2 ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid format for [End Time Based]. Example of the correct format is: 12:00 PM.\n", Messages ); } else { endAMPM = end[1].Split(' '); } try{ intBeginTimeBasedHour = Convert.ToInt32( begin[0] ); } catch { if ( !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [Hour]. You must specify an integer only.\n", Messages ); } } try{ intBeginTimeBasedMinute = Convert.ToInt32( beginAMPM[0] ); } catch { if ( !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [Minute]. You must specify an integer only.\n", Messages ); } } try{ intEndTimeBasedHour = Convert.ToInt32( end[0] ); } catch { if ( !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [Hour]. You must specify an integer only.\n", Messages ); } } try{ intEndTimeBasedMinute = Convert.ToInt32( endAMPM[0] ); } catch { if ( !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [Minute]. You must specify an integer only.\n", Messages ); } } if ( ( beginAMPM == null || beginAMPM.Length != 2 ) && !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid format for [Begin Time Based]. Example of the correct format is: 12:00 PM.\n", Messages ); } else stringBeginTimeBasedAMPM = Convert.ToString( beginAMPM[1] ).ToUpper(); if ( ( endAMPM == null || endAMPM.Length != 2 ) && !fBeginTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid format for [End Time Based]. Example of the correct format is: 12:00 PM.\n", Messages ); } else stringEndTimeBasedAMPM = Convert.ToString( endAMPM[1] ).ToUpper(); try{ intMinStackAmount = Convert.ToInt32( checkMinStackAmount ); } catch { invalid = true; bMinStackAmount = false; fMinStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount] [Minimum Amount]. You must specify an integer only.\n", Messages ); } try{ intMaxStackAmount = Convert.ToInt32( checkMaxStackAmount ); } catch { invalid = true; bMaxStackAmount = false; fMaxStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount] [Maximum Amount]. You must specify an integer only.\n", Messages ); } try{ intMinDespawnHour = Convert.ToInt32( checkMinDespawnHour ); } catch { invalid = true; bMinDespawnHour = false; fMinDespawnHour = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Hours]. You must specify an integer only.\n", Messages ); } try{ intMinDespawnMin = Convert.ToInt32( checkMinDespawnMin ); } catch { invalid = true; bMinDespawnMin = false; fMinDespawnMin = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Minutes]. You must specify an integer only.\n", Messages ); } try{ intMinDespawnSec = Convert.ToInt32( checkMinDespawnSec ); } catch { invalid = true; bMinDespawnSec = false; fMinDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Seconds]. You must specify an integer only.\n", Messages ); } try{ intMaxDespawnHour = Convert.ToInt32( checkMaxDespawnHour ); } catch { invalid = true; bMaxDespawnHour = false; fMaxDespawnHour = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Hours]. You must specify an integer only.\n", Messages ); } try{ intMaxDespawnMin = Convert.ToInt32( checkMaxDespawnMin ); } catch { invalid = true; bMaxDespawnMin = false; fMaxDespawnMin = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Minutes]. You must specify an integer only.\n", Messages ); } try{ intMaxDespawnSec = Convert.ToInt32( checkMaxDespawnSec ); } catch { invalid = true; bMaxDespawnSec = false; fMaxDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Seconds]. You must specify an integer only.\n", Messages ); } // *************** Second Check *************** if ( intSpawnRange < 0 && !fSpawnRange ) { invalid = true; bSpawnRange = false; fSpawnRange = true; Messages = String.Format( "{0}Invalid input for [Spawn Range]. Must be greater than or equal to 0.\n", Messages ); } if ( intWalkRange < 0 && !fWalkRange ) { invalid = true; bWalkRange = false; fWalkRange = true; Messages = String.Format( "{0}Invalid input for [Walk Range]. Must be greater than or equal to 0.\n", Messages ); } if ( intAmount <= 0 && !fAmount ) { invalid = true; bAmount = false; fAmount = true; Messages = String.Format( "{0}Invalid input for [Amount]. Must be greater than 0.\n", Messages ); } if ( intMinDelayHour < 0 && !fMinDelayHour ) { invalid = true; bMinDelayHour = false; fMinDelayHour = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Hours]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intMinDelayMin < 0 || intMinDelayMin > 59 ) && !fMinDelayMin ) { invalid = true; bMinDelayMin = false; fMinDelayMin = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Minutes]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( ( intMinDelaySec < 0 || intMinDelaySec > 59 ) && !fMinDelaySec ) { invalid = true; bMinDelaySec = false; fMinDelaySec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn] [Seconds]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( intMaxDelayHour < 0 && !fMaxDelayHour ) { invalid = true; bMaxDelayHour = false; fMaxDelayHour = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Hours]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intMaxDelayMin < 0 || intMaxDelayMin > 59 ) && !fMaxDelayMin ) { invalid = true; bMaxDelayMin = false; fMaxDelayMin = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Minutes]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( ( intMaxDelaySec < 0 || intMaxDelaySec > 59 ) && !fMaxDelaySec ) { invalid = true; bMaxDelaySec = false; fMaxDelaySec = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Next Spawn] [Seconds]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } int calcMinDelay=0, calcMaxDelay=0, calcBeginTimeBased=0, calcEndTimeBased=0; if ( !fMinDelayHour && !fMinDelayMin && !fMinDelaySec && !fMaxDelayHour && !fMaxDelayMin && !fMaxDelaySec ) { calcMinDelay = intMinDelaySec + ( intMinDelayMin * 60 ) + ( intMinDelayHour * 3600 ); calcMaxDelay = intMaxDelaySec + ( intMaxDelayMin * 60 ) + ( intMaxDelayHour * 3600 ); } if ( calcMinDelay > calcMaxDelay ) { invalid = true; bMinDelayHour = false; bMinDelayMin = false; bMinDelaySec = false; bMaxDelayHour = false; bMaxDelayMin = false; bMaxDelaySec = false; fMinDelayHour = true; fMinDelayMin = true; fMinDelaySec = true; fMaxDelayHour = true; fMaxDelayMin = true; fMaxDelaySec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Next Spawn]. Must be less than or equal to [Max Delay To Next Spawn].\n", Messages ); } if ( intEventRange < 0 && !fEventRange ) { invalid = true; bEventRange = false; fEventRange = true; Messages = String.Format( "{0}Invalid input for [Event Range]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intBeginTimeBasedHour > 12 || intBeginTimeBasedHour < 1 ) && !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [Hour]. Must be between 1 and 12.\n", Messages ); } if ( ( intBeginTimeBasedMinute > 59 || intBeginTimeBasedMinute < 0 ) && !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [Minute]. Must be between 00 and 59.\n", Messages ); } if ( ( stringBeginTimeBasedAMPM != "AM" && stringBeginTimeBasedAMPM != "PM" ) && !fBeginTimeBased ) { invalid = true; bBeginTimeBased = false; fBeginTimeBased = true; Messages = String.Format( "{0}Invalid input for [Begin Time Based] [AM/PM]. Must be AM or PM only.\n", Messages ); } if ( ( intEndTimeBasedHour > 12 || intEndTimeBasedHour < 1 ) && !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [Hour]. Must be between 1 and 12.\n", Messages ); } if ( ( intEndTimeBasedMinute > 59 || intEndTimeBasedMinute < 0 ) && !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [Minute]. Must be between 00 and 59.\n", Messages ); } if ( ( stringEndTimeBasedAMPM != "AM" && stringEndTimeBasedAMPM != "PM" ) && !fEndTimeBased ) { invalid = true; bEndTimeBased = false; fEndTimeBased = true; Messages = String.Format( "{0}Invalid input for [End Time Based] [AM/PM]. Must be AM or PM only.\n", Messages ); } if ( !fBeginTimeBased ) { int hourCheck = intBeginTimeBasedHour; if ( stringBeginTimeBasedAMPM == "PM" && hourCheck < 12 ) hourCheck += 12; if ( stringBeginTimeBasedAMPM == "AM" && hourCheck == 12 ) hourCheck = 0; calcBeginTimeBased = ( hourCheck * 60 ) + intBeginTimeBasedMinute; } if ( !fEndTimeBased ) { int hourCheck = intEndTimeBasedHour; if ( stringEndTimeBasedAMPM == "PM" && hourCheck < 12 ) hourCheck += 12; if ( stringEndTimeBasedAMPM == "AM" && hourCheck == 12 ) hourCheck = 0; calcEndTimeBased = ( hourCheck * 60 ) + intEndTimeBasedMinute; } if ( intMinStackAmount < 1 && !fMinStackAmount ) { invalid = true; bMinStackAmount = false; fMinStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount] [Minimum Amount]. Must be greater than 0.\n", Messages ); } if ( intMaxStackAmount < 1 && !fMaxStackAmount ) { invalid = true; bMaxStackAmount = false; fMaxStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount] [Maximum Amount]. Must be greater than 0.\n", Messages ); } if ( intMinStackAmount > intMaxStackAmount && !fMinStackAmount && !fMaxStackAmount ) { invalid = true; bMinStackAmount = false; fMinStackAmount = true; bMaxStackAmount = false; fMaxStackAmount = true; Messages = String.Format( "{0}Invalid input for [Stack Amount]. [Minimum Amount] must be less than or equal to [Maximum Amount].\n", Messages ); } if ( intMinDespawnHour < 0 && !fMinDespawnHour ) { invalid = true; bMinDespawnHour = false; fMinDespawnHour = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Hours]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intMinDespawnMin < 0 || intMinDespawnMin > 59 ) && !fMinDespawnMin ) { invalid = true; bMinDespawnMin = false; fMinDespawnMin = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Minutes]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( ( intMinDespawnSec < 0 || intMinDespawnSec > 59 ) && !fMinDespawnSec ) { invalid = true; bMinDespawnSec = false; fMinDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn] [Seconds]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( intMaxDespawnHour < 0 && !fMaxDespawnHour ) { invalid = true; bMaxDespawnHour = false; fMaxDespawnHour = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Hours]. Must be greater than or equal to 0.\n", Messages ); } if ( ( intMaxDespawnMin < 0 || intMaxDespawnMin > 59 ) && !fMaxDespawnMin ) { invalid = true; bMaxDespawnMin = false; fMaxDespawnMin = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Minutes]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } if ( ( intMaxDespawnSec < 0 || intMaxDespawnSec > 59 ) && !fMaxDespawnSec ) { invalid = true; bMaxDespawnSec = false; fMaxDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Max Delay To Despawn] [Seconds]. Must be greater than or equal to 0 and less than 60.\n", Messages ); } int calcMinDespawn=0, calcMaxDespawn=0; if ( !fMinDespawnHour && !fMinDespawnMin && !fMinDespawnSec && !fMaxDespawnHour && !fMaxDespawnMin && !fMaxDespawnSec ) { calcMinDespawn = intMinDespawnSec + ( intMinDespawnMin * 60 ) + ( intMinDespawnHour * 3600 ); calcMaxDespawn = intMaxDespawnSec + ( intMaxDespawnMin * 60 ) + ( intMaxDespawnHour * 3600 ); } if ( calcMinDespawn > calcMaxDespawn ) { invalid = true; bMinDespawnHour = false; bMinDespawnMin = false; bMinDespawnSec = false; bMaxDespawnHour = false; bMaxDespawnMin = false; bMaxDespawnSec = false; fMinDespawnHour = true; fMinDespawnMin = true; fMinDespawnSec = true; fMaxDespawnHour = true; fMaxDespawnMin = true; fMaxDespawnSec = true; Messages = String.Format( "{0}Invalid input for [Min Delay To Despawn]. Must be less than or equal to [Max Delay To Despawn].\n", Messages ); } // *************** Final Check *************** if ( invalid ) { if ( !fEntryType || command == 6 ) { bEntryType = true; entryType = checkEntryType; } if ( !fSpawnRange ) { bSpawnRange = true; spawnRange = intSpawnRange; } if ( !fWalkRange ) { bWalkRange = true; walkRange = intWalkRange; } if ( !fAmount ) { bAmount = true; amount = intAmount; } if ( !fMinDelayHour ) { bMinDelayHour = true; minDelayHour = intMinDelayHour; } if ( !fMinDelayMin ) { bMinDelayMin = true; minDelayMin = intMinDelayMin; } if ( !fMinDelaySec ) { bMinDelaySec = true; minDelaySec = intMinDelaySec; } if ( !fMaxDelayHour ) { bMaxDelayHour = true; maxDelayHour = intMaxDelayHour; } if ( !fMaxDelayMin ) { bMaxDelayMin = true; maxDelayMin = intMaxDelayMin; } if ( !fMaxDelaySec ) { bMaxDelaySec = true; maxDelaySec = intMaxDelaySec; } if ( !fEventRange ) { bEventRange = true; eventRange = intEventRange; } if ( !fBeginTimeBased ) { bBeginTimeBased = true; if ( stringBeginTimeBasedAMPM == "PM" && intBeginTimeBasedHour < 12 ) intBeginTimeBasedHour += 12; if ( stringBeginTimeBasedAMPM == "AM" && intBeginTimeBasedHour == 12 ) intBeginTimeBasedHour = 0; beginTimeBasedHour = intBeginTimeBasedHour; beginTimeBasedMinute = intBeginTimeBasedMinute; } if ( !fEndTimeBased ) { bEndTimeBased = true; if ( stringEndTimeBasedAMPM == "PM" && intEndTimeBasedHour < 12 ) intEndTimeBasedHour += 12; if ( stringEndTimeBasedAMPM == "AM" && intEndTimeBasedHour == 12 ) intEndTimeBasedHour = 0; endTimeBasedHour = intEndTimeBasedHour; endTimeBasedMinute = intEndTimeBasedMinute; } if ( !fMinStackAmount ) { bMinStackAmount = true; minStackAmount = intMinStackAmount; } if ( !fMaxStackAmount ) { bMaxStackAmount = true; maxStackAmount = intMaxStackAmount; } if ( !fMinDespawnHour ) { bMinDespawnHour = true; minDespawnHour = intMinDespawnHour; } if ( !fMinDespawnMin ) { bMinDespawnMin = true; minDespawnMin = intMinDespawnMin; } if ( !fMinDespawnSec ) { bMinDespawnSec = true; minDespawnSec = intMinDespawnSec; } if ( !fMaxDespawnHour ) { bMaxDespawnHour = true; maxDespawnHour = intMaxDespawnHour; } if ( !fMaxDespawnMin ) { bMaxDespawnMin = true; maxDespawnMin = intMaxDespawnMin; } if ( !fMaxDespawnSec ) { bMaxDespawnSec = true; maxDespawnSec = intMaxDespawnSec; } if ( !submit ) Messages = oldMessages; UpdatePage( command ); return; } // *************** Applying Settings *************** if ( stringEntryType != null ) entryType = stringEntryType; else entryType = checkEntryType; spawnRange = intSpawnRange; walkRange = intWalkRange; amount = intAmount; eventRange = intEventRange; minStackAmount = intMinStackAmount; maxStackAmount = intMaxStackAmount; if ( AddToSpawner && submit ) { megaSpawner.EntryList.Add( entryType ); megaSpawner.SpawnRangeList.Add( spawnRange ); megaSpawner.WalkRangeList.Add( walkRange ); megaSpawner.AmountList.Add( amount ); megaSpawner.MinDelayList.Add( calcMinDelay ); megaSpawner.MaxDelayList.Add( calcMaxDelay ); megaSpawner.SpawnTypeList.Add( spawnTypeSwitch ); megaSpawner.ActivatedList.Add( activatedSwitch ); megaSpawner.EventRangeList.Add( eventRange ); megaSpawner.EventKeywordList.Add( keyword ); megaSpawner.KeywordCaseSensitiveList.Add( caseSensitiveSwitch ); megaSpawner.TriggerEventNowList.Add( (bool) true ); megaSpawner.EventAmbushList.Add( eventAmbushSwitch ); megaSpawner.BeginTimeBasedList.Add( calcBeginTimeBased ); megaSpawner.EndTimeBasedList.Add( calcEndTimeBased ); megaSpawner.GroupSpawnList.Add( spawnGroupSwitch ); megaSpawner.MinStackAmountList.Add( minStackAmount ); megaSpawner.MaxStackAmountList.Add( maxStackAmount ); megaSpawner.MovableList.Add( movableSwitch ); megaSpawner.MinDespawnList.Add( calcMinDespawn ); megaSpawner.MaxDespawnList.Add( calcMaxDespawn ); megaSpawner.DespawnList.Add( despawnSwitch ); megaSpawner.DespawnGroupList.Add( despawnGroupSwitch ); megaSpawner.DespawnTimeExpireList.Add( despawnTimeExpireSwitch ); megaSpawner.SpawnedEntries.Add( new ArrayList() ); megaSpawner.LastMovedList.Add( new ArrayList() ); MSEGCheckBoxesList.Add( (bool) false ); Messages = String.Format( "\"{0}\" entry has been added.", entryType ); } else if ( submit ) { if ( oldEntryType != entryType ) megaSpawner.DeleteEntries( index ); megaSpawner.EntryList[index] = entryType; megaSpawner.SpawnRangeList[index] = spawnRange; megaSpawner.WalkRangeList[index] = walkRange; megaSpawner.AmountList[index] = amount; megaSpawner.MinDelayList[index] = calcMinDelay; megaSpawner.MaxDelayList[index] = calcMaxDelay; megaSpawner.SpawnTypeList[index] = spawnTypeSwitch; megaSpawner.ActivatedList[index] = activatedSwitch; megaSpawner.EventRangeList[index] = eventRange; megaSpawner.EventKeywordList[index] = keyword; megaSpawner.KeywordCaseSensitiveList[index] = caseSensitiveSwitch; megaSpawner.TriggerEventNowList[index] = (bool) true; megaSpawner.EventAmbushList[index] = eventAmbushSwitch; megaSpawner.BeginTimeBasedList[index] = calcBeginTimeBased; megaSpawner.EndTimeBasedList[index] = calcEndTimeBased; megaSpawner.GroupSpawnList[index] = spawnGroupSwitch; megaSpawner.MinStackAmountList[index] = minStackAmount; megaSpawner.MaxStackAmountList[index] = maxStackAmount; megaSpawner.MovableList[index] = movableSwitch; megaSpawner.MinDespawnList[index] = calcMinDespawn; megaSpawner.MaxDespawnList[index] = calcMaxDespawn; megaSpawner.DespawnList[index] = despawnSwitch; megaSpawner.DespawnGroupList[index] = despawnGroupSwitch; megaSpawner.DespawnTimeExpireList[index] = despawnTimeExpireSwitch; if ( !megaSpawner.OverrideIndividualEntries ) { megaSpawner.RemoveRespawnEntries( index ); megaSpawner.RecompileSettings( index ); } if ( entryType == oldEntryType ) Messages = String.Format( "\"{0}\" entry has been updated.", oldEntryType ); else Messages = String.Format( "\"{0}\" entry has been updated and changed to \"{1}\" entry.", oldEntryType, entryType ); } if ( submit ) { if ( megaSpawner.OverrideIndividualEntries ) { MegaSpawnerOverride.DeleteEntries( megaSpawner ); MegaSpawnerOverride.RemoveRespawnEntries( megaSpawner ); megaSpawner.OverrideSpawnedEntries.Clear(); megaSpawner.OverrideLastMovedList.Clear(); for ( int i = 0; i < megaSpawner.OverrideAmount; i++ ) { megaSpawner.OverrideRespawnEntryList.Add( "" ); megaSpawner.OverrideRespawnTimeList.Add( 0 ); megaSpawner.OverrideSpawnCounterList.Add( DateTime.Now ); megaSpawner.OverrideSpawnTimeList.Add( 0 ); megaSpawner.OverrideDespawnTimeList.Add( 0 ); } } else { ArrayList respawnEntryList = new ArrayList(); ArrayList respawnTimeList = new ArrayList(); ArrayList spawnCounterList = new ArrayList(); ArrayList spawnTimeList = new ArrayList(); ArrayList respawnOnSaveList = new ArrayList(); ArrayList despawnTimeList = new ArrayList(); for ( int i = 0; i < amount; i++ ) { respawnEntryList.Add( entryType ); respawnTimeList.Add( 0 ); spawnCounterList.Add( DateTime.Now ); spawnTimeList.Add( 0 ); respawnOnSaveList.Add( (bool) false ); despawnTimeList.Add( 0 ); } if ( AddToSpawner ) { megaSpawner.RespawnEntryList.Add( respawnEntryList ); megaSpawner.RespawnTimeList.Add( respawnTimeList ); megaSpawner.SpawnCounterList.Add( spawnCounterList ); megaSpawner.SpawnTimeList.Add( spawnTimeList ); megaSpawner.RespawnOnSaveList.Add( respawnOnSaveList ); megaSpawner.DespawnTimeList.Add( despawnTimeList ); } else { megaSpawner.RespawnEntryList[index] = respawnEntryList; megaSpawner.RespawnTimeList[index] = respawnTimeList; megaSpawner.SpawnCounterList[index] = spawnCounterList; megaSpawner.SpawnTimeList[index] = spawnTimeList; megaSpawner.RespawnOnSaveList[index] = respawnOnSaveList; megaSpawner.DespawnTimeList[index] = despawnTimeList; } } if ( megaSpawner.Active ) { if ( oldActivated && !activatedSwitch ) megaSpawner.DeleteEntries( index ); if ( !megaSpawner.OverrideIndividualEntries ) { if ( !AddToSpawner ) megaSpawner.Respawn( index ); else megaSpawner.Respawn( megaSpawner.EntryList.Count - 1 ); } else { megaSpawner.Respawn(); } megaSpawner.CheckProximityType(); megaSpawner.CheckSpeechType(); } SetArgsList(); gumpMobile.SendGump( new MegaSpawnerEditGump( gumpMobile, ArgsList ) ); } else { minDelayHour = intMinDelayHour; minDelayMin = intMinDelayMin; minDelaySec = intMinDelaySec; maxDelayHour = intMaxDelayHour; maxDelayMin = intMaxDelayMin; maxDelaySec = intMaxDelaySec; minDespawnHour = intMinDespawnHour; minDespawnMin = intMinDespawnMin; minDespawnSec = intMinDespawnSec; maxDespawnHour = intMaxDespawnHour; maxDespawnMin = intMaxDespawnMin; maxDespawnSec = intMaxDespawnSec; if ( stringBeginTimeBasedAMPM == "PM" && intBeginTimeBasedHour < 12 ) intBeginTimeBasedHour += 12; if ( stringBeginTimeBasedAMPM == "AM" && intBeginTimeBasedHour == 12 ) intBeginTimeBasedHour = 0; beginTimeBasedHour = intBeginTimeBasedHour; beginTimeBasedMinute = intBeginTimeBasedMinute; if ( stringEndTimeBasedAMPM == "PM" && intEndTimeBasedHour < 12 ) intEndTimeBasedHour += 12; if ( stringEndTimeBasedAMPM == "AM" && intEndTimeBasedHour == 12 ) intEndTimeBasedHour = 0; endTimeBasedHour = intEndTimeBasedHour; endTimeBasedMinute = intEndTimeBasedMinute; Messages = oldMessages; UpdatePage( command ); } }
public Spawn(Point p, int i, SpawnType t) : this(p, 0, 1f, i, t) { }
/// <summary> /// Initializes the particle System. /// The Particle will spawn at the specified POINT with the defined SpawnType, /// with the specified Directions, speed and the specified Gravity /// </summary> /// <param name="fontaine">Determines the spawnType: /// Fontain: The particles will spawn continously at the specified Point /// Explosion: The particles will spawn all at once at the specified Point</param> /// <param name="pnumParticles">Maximum particle number</param> /// <param name="particle_s">Spawntype: /// Fontain: The Particle per second (must be >= 60 to spawn any particles), also controls the particle lifetime = numParticles/particle_s /// Explosion: The particles Lifetime</param> /// <param name="Size">The Size of the Particles</param> /// <param name="pStdColor">The Color of the Particles</param> /// <param name="src">The Point where the particles are going to spawn</param> /// <param name="pdirections">Determines the Directions in which the particles are going to go</param> /// <param name="maxSpeed">The Maxmimum x and y speed</param> /// <param name="tex">The Texture of the particles</param> /// <param name="Gravity">The Gravity Type. /// OverallForce: all particles will be forced in that direction /// Point: All particles are going to move to that direction /// Newton: All particles are going to have planetary Gravity, Masses can be defined with the AddNewtonMass() method</param> /// <param name="gravAim"> /// Gravity Type: /// Overall Force: The force which will be applied. /// Point: The Point, the particles are heading to. /// Newton: No affect /// </param> /// <param name="pfriction">Particles speed will bei divided by this when they collided with sth.</param> /// <param name="collison">Defines if the particles can collide or not</param> public void Initialize(bool bla, SpawnType fontaine, int pnumParticles, float particle_s, int Size, Color pStdColor, Vector2 src, SpawnDirections pdirections, Vector2 maxSpeed, Texture2D tex, GravityType Gravity, Vector2 gravAim, float pfriction, CollisionType collison) { Initialize(false, fontaine, pnumParticles, particle_s, Size, pStdColor, src, src, pdirections, maxSpeed, tex, Gravity, gravAim, pfriction, collison); }
/// <summary> /// Initializes a Default Particle System with <c>numParticles</c> Particles and no Startspeed or Gravity /// </summary> /// <param name="numParticles">The Number of Particles</param> /// <param name="lifeTime"><c>type</c>=Explosion: LifeTime in seconds /// <c>type</c> =Fontaine: Particle spawning per second</param> /// <param name="type"></param> /// <param name="Size"></param> /// <param name="tex"></param> /// <param name="src"></param> public void Initialize(bool bla, int numParticles, float lifeTime, SpawnType type, int Size, Texture2D tex, Vector2 src) { Initialize(false, type, numParticles, lifeTime, Size, Color.White, src, SpawnDirections.Normal, Vector2.Zero, tex, GravityType.OverallForce, Vector2.Zero, 1, CollisionType.None); }
public void CheckTimeExpire( int index, SpawnType st ) { if ( !(bool) DespawnTimeExpireList[index] ) return; switch ( st ) { case SpawnType.GameTimeBased: { int UOHour, UOMinute, time; Server.Items.Clock.GetTime( Map, X, Y, out UOHour, out UOMinute ); if ( UOHour == 24 ) UOHour = 0; time = ( UOHour * 60 ) + UOMinute; CheckDespawnTime( index, time ); break; } case SpawnType.RealTimeBased: { int time = ( DateTime.Now.Hour * 60 ) + DateTime.Now.Minute; CheckDespawnTime( index, time ); break; } } }
/// <summary> /// Initializes the particle System. /// The Particle will spawn at the specified RECTANGLE with the defined SpawnType, /// with the specified Directions, speed and the specified Gravity /// </summary> /// <param name="fontaine">Determines the spawnType: /// Fontain: The particles will spawn continously at the specified Point /// Explosion: The particles will spawn all at once at the specified Point</param> /// <param name="pnumParticles">Maximum particle number</param> /// <param name="particle_s">Spawntype: /// Fontain: The Particle per second (must be >= 60 to spawn any particles), also controls the particle lifetime = numParticles/particle_s /// Explosion: The particles Lifetime</param> /// <param name="Size">The Size of the Particles</param> /// <param name="pStdColor">The Color of the Particles</param> /// <param name="startpos">The Startpoint of the Rectangle where the particles are going to spawn</param> /// <param name="endpos">The Endpos of the Rectangle where the particles are going to spawn</param> /// <param name="pdirections">Determines the Directions in which the particles are going to go</param> /// <param name="maxSpeed">The Maxmimum x and y speed</param> /// <param name="tex">The Texture of the particles</param> /// <param name="Gravity">The Gravity Type. /// OverallForce: all particles will be forced in that direction /// Point: All particles are going to move to that direction /// Newton: All particles are going to have planetary Gravity, Masses can be defined with the AddNewtonMass() method</param> /// <param name="gravAim"> /// Gravity Type: /// Overall Force: The force which will be applied. /// Point: The Point, the particles are heading to. /// Newton: No affect /// </param> /// <param name="pfriction">Particles speed will bei divided by this when they collided with sth.</param> /// <param name="collison">Defines if the particles can collide or not</param> public void Initialize(bool bla, SpawnType fontaine, int pnumParticles, float particle_s, int Size, Color pStdColor, Vector2 startpos, Vector2 endpos, SpawnDirections pdirections, Vector2 maxSpeed, Texture2D tex, GravityType Gravity, Vector2 gravAim, float pfriction, CollisionType collison) { if (startpos != endpos) spawnsource = SpawnSource.Rectangle; else spawnsource = SpawnSource.Point; masses = new List<NewtonMass>(); collisiontype = collison; spawntype = fontaine; gravtype = Gravity; spawndirections = pdirections; size = Size; rand = new Random((int)DateTime.Now.Ticks); stdcolor = pStdColor; spawn = startpos; spawnend = endpos; maxspeed = maxSpeed; spawnperS = particle_s; numParticles = pnumParticles; positions = new Vector2[numParticles]; velocities = new Vector2[numParticles]; lifetimes = new float[numParticles]; rects = new Rectangle[numParticles]; Rotations = new float[numParticles]; alphas = new byte[numParticles]; floatalphas = new float[numParticles]; collisionrectangles = new List<Rectangle>(); collisionrectangles.Add(new Rectangle(-500000000, 0, 0, 0)); particletex = tex; gravtype = Gravity; friction = MathHelper.Clamp(pfriction, float.Epsilon, float.MaxValue); gravity = gravAim; duration = new TimeSpan[numThreads]; if (fontaine == SpawnType.Fontaine) { totallifetime = pnumParticles / particle_s; } else { totallifetime = particle_s; } for (int i = 0; i < pnumParticles; i++) { ResetParticle(i); lifetimes[i] = totallifetime + 1; } running = true; updatethread = new Thread[numThreads]; newframe = new bool[numThreads]; for (int i = 0; i < numThreads; i++) { updatethread[i] = new Thread((new ParameterizedThreadStart(UpdateThread))); updatethread[i].Name = "ParticleThread#" + i.ToString(); } initialized = true; airFriction = 1; newSpawners = 0; InitalizeCUDA(); }
public bool EventSpawnAttempt( int index, SpawnType st ) { return ( Active && (SpawnType) SpawnTypeList[index] == st && (bool) TriggerEventNowList[index] ); }
/// <summary> /// Initializes a new instance of <see cref="SpawnPoint"/>. /// </summary> /// <param name="in_position">The location of this point.</param> /// <param name="in_whatToSpawn">The entity that spawns in this location.</param> public SpawnPoint(Point in_position, SpawnType in_whatToSpawn) : base(in_position) => WhatToSpawn = in_whatToSpawn;