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); }
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); } }