Example #1
0
        /// <summary>
        /// Spawns mob in place.
        /// </summary>
        /// <param name="place"></param>
        /// <param name="name"></param>
        /// <param name="group"></param>
        /// <param name="spawnPosition"></param>
        public void AllocateAndSpawnMob(PuzzlePlace place, string name, DungeonMonsterGroupData group, Placement spawnPosition)
        {
            var mob = new MonsterGroup(name, this, place, spawnPosition);

            _monsterGroups.Add(name, mob);

            mob.Allocate(group);
            mob.Spawn();
        }
Example #2
0
        /// <summary>
        /// Creates mob in puzzle, in place.
        /// </summary>
        /// <param name="mobGroupName">Name of the mob, for reference.</param>
        /// <param name="raceId">Race to spawn.</param>
        /// <param name="amount">Number of monsters to spawn.</param>
        /// <param name="placement"></param>
        public void SpawnSingleMob(string mobGroupName, int raceId, int amount, Placement placement = Placement.Random)
        {
            if (amount < 1)
            {
                amount = 1;
            }

            var group = new DungeonMonsterGroupData();

            group.Add(new DungeonMonsterData()
            {
                RaceId = raceId, Amount = amount
            });

            this.Puzzle.AllocateAndSpawnMob(this, mobGroupName, group, placement);
        }
Example #3
0
		/// <summary>
		/// Creates monsters from group data and adds them to internal list.
		/// </summary>
		/// <param name="groupData"></param>
		public void Allocate(DungeonMonsterGroupData groupData)
		{
			foreach (var monsterData in groupData)
			{
				for (int i = 0; i < monsterData.Amount; ++i)
				{
					var monster = new NPC(monsterData.RaceId);
					monster.State |= CreatureStates.Spawned | CreatureStates.InstantNpc;
					monster.Death += this.OnDeath;

					_monsters.Add(monster);
				}
			}

			_remaining = this.Count;

			this.Puzzle.Script.OnMobAllocated(this.Puzzle, this);
		}
Example #4
0
        /// <summary>
        /// Creates monsters from group data and adds them to internal list.
        /// </summary>
        /// <param name="groupData"></param>
        public void Allocate(DungeonMonsterGroupData groupData)
        {
            foreach (var monsterData in groupData)
            {
                for (int i = 0; i < monsterData.Amount; ++i)
                {
                    var monster = new NPC(monsterData.RaceId);
                    monster.State |= CreatureStates.Spawned | CreatureStates.InstantNpc;
                    monster.Death += this.OnDeath;

                    _monsters.Add(monster);
                }
            }

            _remaining = this.Count;

            this.Puzzle.Script.OnMobAllocated(this.Puzzle, this);
        }
Example #5
0
		/// <summary>
		/// Creates mob in puzzle, in place.
		/// </summary>
		/// <param name="mobGroupName">Name of the mob, for reference.</param>
		/// <param name="raceId">Race to spawn.</param>
		/// <param name="amount">Number of monsters to spawn.</param>
		/// <param name="placement"></param>
		public void SpawnSingleMob(string mobGroupName, int raceId, int amount, Placement placement = Placement.Random)
		{
			if (amount < 1)
				amount = 1;

			var group = new DungeonMonsterGroupData();
			group.Add(new DungeonMonsterData() { RaceId = raceId, Amount = amount });

			this.Puzzle.AllocateAndSpawnMob(this, mobGroupName, group, placement);
		}
Example #6
0
		/// <summary>
		/// Spawns mob in place.
		/// </summary>
		/// <param name="place"></param>
		/// <param name="name"></param>
		/// <param name="group"></param>
		/// <param name="spawnPosition"></param>
		public void AllocateAndSpawnMob(PuzzlePlace place, string name, DungeonMonsterGroupData group, Placement spawnPosition)
		{
			var mob = new MonsterGroup(name, this, place, spawnPosition);
			_monsterGroups.Add(name, mob);

			mob.Allocate(group);
			mob.Spawn();
		}