示例#1
0
			protected override void OnTick()
			{
				if(m_PilesDone >= m_PilesMax)
				{
					Stop();
					return;
				}

				Point3D p = FindGoldLocation(m_Map, m_Location, m_PilesMax / 8);
				Gold g = new Gold(m_MinAmount, m_MaxAmount);
				g.DropToWorld(p, this.m_Map);

				switch (Utility.Random(3))
				{
					case 0: // Fire column
						Effects.SendLocationParticles(EffectItem.Create(g.Location, g.Map, EffectItem.DefaultDuration), 0x3709, 10, 30, 5052);
						Effects.PlaySound(g, g.Map, 0x208);
						break;
					case 1: // Explosion
						Effects.SendLocationParticles(EffectItem.Create(g.Location, g.Map, EffectItem.DefaultDuration), 0x36BD, 20, 10, 5044);
						Effects.PlaySound(g, g.Map, 0x307);
						break;
					case 2: // Ball of fire
						Effects.SendLocationParticles(EffectItem.Create(g.Location, g.Map, EffectItem.DefaultDuration), 0x36FE, 10, 10, 5052);
						break;
				}
				++m_PilesDone;
			}