Ejemplo n.º 1
0
		public virtual Point3D GetWeatherStartPoint(Point3D loc, PvPBattleWeatherDirection direction)
		{
			if (!Options.Weather.Enabled || Options.Locations.Map == null || Options.Locations.Map == Map.Internal ||
				loc == Point3D.Zero)
			{
				return loc;
			}

			switch (direction)
			{
				case PvPBattleWeatherDirection.None:
					return loc.Clone3D(0, 0, 80);
				case PvPBattleWeatherDirection.Random:
					direction = _WeatherDirections.GetRandom(PvPBattleWeatherDirection.None);
					break;
			}

			int x = 0, y = 0;

			Movement.Offset((Direction)direction, ref x, ref y);

			var rand = Utility.RandomMinMax(4, 8);

			return loc.Clone3D(x * rand, y * rand, 80);
		}
Ejemplo n.º 2
0
		public virtual Point3D GetWeatherStartPoint(Point3D loc, PvPBattleWeatherDirection direction)
		{
			if (!Options.Weather.Enabled || Options.Locations.Map == Map.Internal || loc == Point3D.Zero)
			{
				return loc;
			}

			switch (direction)
			{
				case PvPBattleWeatherDirection.Random:
					return GetWeatherStartPoint(loc, _WeatherDirections.GetRandom());
				case PvPBattleWeatherDirection.North:
					return loc.Clone3D(0, Utility.RandomMinMax(4, 8), 80);
				case PvPBattleWeatherDirection.East:
					return loc.Clone3D(-Utility.RandomMinMax(4, 8), 0, 80);
				case PvPBattleWeatherDirection.South:
					return loc.Clone3D(0, -Utility.RandomMinMax(4, 8), 80);
				case PvPBattleWeatherDirection.West:
					return loc.Clone3D(Utility.RandomMinMax(4, 8), 0, 80);
				default:
					return loc.Clone3D(0, 0, 80);
			}
		}