public DiscordEmbedNotification GeneratePokestopMessage(ulong guildId, DiscordClient client, WhConfig whConfig, AlarmObject alarm, string city, bool useLure, bool useInvasion) { var server = whConfig.Servers[guildId]; var alertType = useInvasion ? AlertMessageType.Invasions : useLure ? AlertMessageType.Lures : AlertMessageType.Pokestops; var alert = alarm?.Alerts[alertType] ?? server.DmAlerts?[alertType] ?? AlertMessage.Defaults[alertType]; var properties = GetProperties(client.Guilds[guildId], whConfig, city, useLure, useInvasion); var eb = new DiscordEmbedBuilder { Title = DynamicReplacementEngine.ReplaceText(alert.Title, properties), Url = DynamicReplacementEngine.ReplaceText(alert.Url, properties), ImageUrl = DynamicReplacementEngine.ReplaceText(alert.ImageUrl, properties), ThumbnailUrl = DynamicReplacementEngine.ReplaceText(alert.IconUrl, properties), Description = DynamicReplacementEngine.ReplaceText(alert.Content, properties), Color = useInvasion ? new DiscordColor(server.DiscordEmbedColors.Pokestops.Invasions) : useLure ? LureType.BuildLureColor(server) : DiscordColor.CornflowerBlue, Footer = new DiscordEmbedBuilder.EmbedFooter { Text = DynamicReplacementEngine.ReplaceText(alert.Footer?.Text, properties), IconUrl = DynamicReplacementEngine.ReplaceText(alert.Footer?.IconUrl, properties) } }; var username = DynamicReplacementEngine.ReplaceText(alert.Username, properties); var iconUrl = DynamicReplacementEngine.ReplaceText(alert.AvatarUrl, properties); var description = DynamicReplacementEngine.ReplaceText(alarm?.Description, properties); return(new DiscordEmbedNotification(username, iconUrl, description, new List <DiscordEmbed> { eb.Build() })); }
public Lure(string name, LureType type, int count, int price, Bitmap pic) { this.name = name; this.type = type; this.count = count; this.price = price; this.pic = pic; }
public void AddLure(LureType lure, int amount) { if (lures.Exists(x => x.name == lure.name)) { lures.Find(x => x.name == lure.name).amount += amount; } else { lures.Add(lure); lures.Last().amount = amount; } }
void Start() { switch (type) { case ItemChoice.bait: if (itemID >= 0 && itemID < FindObjectOfType <ItemDatabase>().baits.Count) { BaitType curB = FindObjectOfType <ItemDatabase>().baits[itemID]; nameText.text = curB.name; priceText.text = curB.price.ToString() + "g"; } else { nameText.text = ""; priceText.text = ""; } break; case ItemChoice.lure: if (itemID >= 0 && itemID < FindObjectOfType <ItemDatabase>().lures.Count) { LureType curL = FindObjectOfType <ItemDatabase>().lures[itemID]; nameText.text = curL.name; priceText.text = curL.price.ToString() + "g"; } else { nameText.text = ""; priceText.text = ""; } break; case ItemChoice.rod: if (itemID >= 0 && itemID < FindObjectOfType <ItemDatabase>().rods.Count) { RodType curR = FindObjectOfType <ItemDatabase>().rods[itemID]; nameText.text = curR.name; priceText.text = curR.price.ToString() + "g"; } else { nameText.text = ""; priceText.text = ""; } break; default: break; } }
public void Buy(int amount) { int money = FindObjectOfType <Inventory>().money; switch (type) { case ItemChoice.bait: BaitType curB = FindObjectOfType <ItemDatabase>().baits[itemID]; if ((curB.price * amount) < money) { FindObjectOfType <Shop>().BuyBait(curB, amount); } else { int maxAmount = Mathf.FloorToInt(money / curB.price); maxAmount = Mathf.Clamp(maxAmount, 0, amount); FindObjectOfType <Shop>().BuyBait(curB, maxAmount); } break; case ItemChoice.lure: LureType curL = FindObjectOfType <ItemDatabase>().lures[itemID]; if ((curL.price * amount) < money) { FindObjectOfType <Shop>().BuyLure(curL, amount); } else { int maxAmount = Mathf.FloorToInt(money / curL.price); maxAmount = Mathf.Clamp(maxAmount, 0, amount); FindObjectOfType <Shop>().BuyLure(curL, maxAmount); } break; case ItemChoice.rod: RodType curR = FindObjectOfType <ItemDatabase>().rods[itemID]; FindObjectOfType <Shop>().BuyRod(curR); break; default: break; } }
private IReadOnlyDictionary <string, string> GetProperties(DiscordGuild guild, WhConfig whConfig, string city, bool useLure, bool useInvasion) { var lureImageUrl = IconFetcher.Instance.GetLureIcon(whConfig.Servers[guild.Id].IconStyle, LureType); var invasionImageUrl = IconFetcher.Instance.GetInvasionIcon(whConfig.Servers[guild.Id].IconStyle, GruntType); var imageUrl = useInvasion ? invasionImageUrl : useLure ? lureImageUrl : Url; var gmapsLink = string.Format(Strings.GoogleMaps, Latitude, Longitude); var appleMapsLink = string.Format(Strings.AppleMaps, Latitude, Longitude); var wazeMapsLink = string.Format(Strings.WazeMaps, Latitude, Longitude); var scannerMapsLink = string.Format(whConfig.Urls.ScannerMap, Latitude, Longitude); var staticMapLink = StaticMap.GetUrl(whConfig.Urls.StaticMap, useInvasion ? whConfig.StaticMaps["invasions"] : useLure ? whConfig.StaticMaps["lures"] : /* TODO: */ "", Latitude, Longitude, imageUrl); var gmapsLocationLink = UrlShortener.CreateShortUrl(whConfig.ShortUrlApiUrl, gmapsLink); var appleMapsLocationLink = UrlShortener.CreateShortUrl(whConfig.ShortUrlApiUrl, appleMapsLink); var wazeMapsLocationLink = UrlShortener.CreateShortUrl(whConfig.ShortUrlApiUrl, wazeMapsLink); var scannerMapsLocationLink = UrlShortener.CreateShortUrl(whConfig.ShortUrlApiUrl, scannerMapsLink); var address = new Location(null, city, Latitude, Longitude).GetAddress(whConfig); //var staticMapLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? staticMapLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, staticMapLink); var invasion = MasterFile.Instance.GruntTypes.ContainsKey(GruntType) ? MasterFile.Instance.GruntTypes[GruntType] : null; var leaderString = Translator.Instance.Translate("grunt_" + Convert.ToInt32(GruntType)); var pokemonType = MasterFile.Instance.GruntTypes.ContainsKey(GruntType) ? Notifications.GetPokemonTypeFromString(invasion?.Type) : PokemonType.None; var invasionTypeEmoji = pokemonType == PokemonType.None ? leaderString : pokemonType.GetTypeEmojiIcons(); var invasionEncounters = GruntType > 0 ? invasion.GetPossibleInvasionEncounters() : string.Empty; var now = DateTime.UtcNow.ConvertTimeFromCoordinates(Latitude, Longitude); var lureExpireTimeLeft = now.GetTimeRemaining(LureExpireTime).ToReadableStringNoSeconds(); var invasionExpireTimeLeft = now.GetTimeRemaining(InvasionExpireTime).ToReadableStringNoSeconds(); const string defaultMissingValue = "?"; var dict = new Dictionary <string, string> { //Main properties { "has_lure", Convert.ToString(HasLure) }, { "lure_type", LureType.ToString() }, { "lure_expire_time", LureExpireTime.ToLongTimeString() }, { "lure_expire_time_24h", LureExpireTime.ToString("HH:mm:ss") }, { "lure_expire_time_left", lureExpireTimeLeft }, { "has_invasion", Convert.ToString(HasInvasion) }, { "grunt_type", invasion?.Type }, { "grunt_type_emoji", invasionTypeEmoji }, { "grunt_gender", invasion?.Grunt }, { "invasion_expire_time", InvasionExpireTime.ToLongTimeString() }, { "invasion_expire_time_24h", InvasionExpireTime.ToString("HH:mm:ss") }, { "invasion_expire_time_left", invasionExpireTimeLeft }, { "invasion_encounters", $"**Encounter Reward Chance:**\r\n" + invasionEncounters }, //Location properties { "geofence", city ?? defaultMissingValue }, { "lat", Latitude.ToString() }, { "lng", Longitude.ToString() }, { "lat_5", Latitude.ToString("0.00000") }, { "lng_5", Longitude.ToString("0.00000") }, //Location links { "tilemaps_url", staticMapLink }, { "gmaps_url", gmapsLocationLink }, { "applemaps_url", appleMapsLocationLink }, { "wazemaps_url", wazeMapsLocationLink }, { "scanmaps_url", scannerMapsLocationLink }, //Pokestop properties { "pokestop_id", PokestopId ?? defaultMissingValue }, { "pokestop_name", Name ?? defaultMissingValue }, { "pokestop_url", Url ?? defaultMissingValue }, { "lure_img_url", lureImageUrl }, { "invasion_img_url", invasionImageUrl }, { "address", address?.Address }, // Discord Guild properties { "guild_name", guild?.Name }, { "guild_img_url", guild?.IconUrl }, { "date_time", DateTime.Now.ToString() }, //Misc properties { "br", "\r\n" } }; return(dict); }
private IReadOnlyDictionary <string, string> GetProperties(DiscordGuild guild, WhConfig whConfig, string city) { var lureImageUrl = IconFetcher.Instance.GetLureIcon(whConfig.Servers[guild.Id].IconStyle, LureType); var invasionImageUrl = IconFetcher.Instance.GetInvasionIcon(whConfig.Servers[guild.Id].IconStyle, GruntType); var imageUrl = HasInvasion ? invasionImageUrl : HasLure ? lureImageUrl : Url; var gmapsLink = string.Format(Strings.GoogleMaps, Latitude, Longitude); var appleMapsLink = string.Format(Strings.AppleMaps, Latitude, Longitude); var wazeMapsLink = string.Format(Strings.WazeMaps, Latitude, Longitude); var scannerMapsLink = string.Format(whConfig.Urls.ScannerMap, Latitude, Longitude); var templatePath = Path.Combine(whConfig.StaticMaps.TemplatesFolder, HasInvasion ? whConfig.StaticMaps.Invasions.TemplateFile : HasLure ? whConfig.StaticMaps.Lures.TemplateFile : whConfig.StaticMaps.Lures.TemplateFile); var staticMapLink = Utils.GetStaticMapsUrl(templatePath, whConfig.Urls.StaticMap, HasInvasion ? whConfig.StaticMaps.Invasions.ZoomLevel : HasLure ? whConfig.StaticMaps.Lures.ZoomLevel : whConfig.StaticMaps.Lures.ZoomLevel, Latitude, Longitude, imageUrl, null); var gmapsLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? gmapsLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, gmapsLink); var appleMapsLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? appleMapsLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, appleMapsLink); var wazeMapsLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? wazeMapsLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, wazeMapsLink); var scannerMapsLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? scannerMapsLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, scannerMapsLink); Geofence.Location address = null; if (!string.IsNullOrEmpty(whConfig.GoogleMapsKey)) { address = Utils.GetGoogleAddress(city, Latitude, Longitude, whConfig.GoogleMapsKey); } else if (!string.IsNullOrEmpty(whConfig.NominatimEndpoint)) { address = Utils.GetNominatimAddress(city, Latitude, Longitude, whConfig.NominatimEndpoint); } //var staticMapLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? staticMapLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, staticMapLink); var invasion = MasterFile.Instance.GruntTypes.ContainsKey(GruntType) ? MasterFile.Instance.GruntTypes[GruntType] : null; var leaderString = Translator.Instance.Translate("grunt_" + Convert.ToInt32(GruntType)); var pokemonType = MasterFile.Instance.GruntTypes.ContainsKey(GruntType) ? Commands.Notifications.GetPokemonTypeFromString(invasion?.Type) : PokemonType.None; var invasionTypeEmoji = pokemonType == PokemonType.None ? leaderString : pokemonType.GetTypeEmojiIcons(); var invasionEncounters = GruntType > 0 ? invasion.GetPossibleInvasionEncounters() : string.Empty; const string defaultMissingValue = "?"; var dict = new Dictionary <string, string> { //Main properties { "has_lure", Convert.ToString(HasLure) }, { "lure_type", LureType.ToString() }, { "lure_expire_time", LureExpireTime.ToLongTimeString() }, { "lure_expire_time_24h", LureExpireTime.ToString("HH:mm:ss") }, { "lure_expire_time_left", LureExpireTime.GetTimeRemaining().ToReadableStringNoSeconds() }, { "has_invasion", Convert.ToString(HasInvasion) }, { "grunt_type", invasion?.Type }, { "grunt_type_emoji", invasionTypeEmoji }, { "grunt_gender", invasion?.Grunt }, { "invasion_expire_time", InvasionExpireTime.ToLongTimeString() }, { "invasion_expire_time_24h", InvasionExpireTime.ToString("HH:mm:ss") }, { "invasion_expire_time_left", InvasionExpireTime.GetTimeRemaining().ToReadableStringNoSeconds() }, { "invasion_encounters", $"**Encounter Reward Chance:**\r\n" + invasionEncounters }, //Location properties { "geofence", city ?? defaultMissingValue }, { "lat", Latitude.ToString() }, { "lng", Longitude.ToString() }, { "lat_5", Math.Round(Latitude, 5).ToString() }, { "lng_5", Math.Round(Longitude, 5).ToString() }, //Location links { "tilemaps_url", staticMapLink }, { "gmaps_url", gmapsLocationLink }, { "applemaps_url", appleMapsLocationLink }, { "wazemaps_url", wazeMapsLocationLink }, { "scanmaps_url", scannerMapsLocationLink }, //Pokestop properties { "pokestop_id", PokestopId ?? defaultMissingValue }, { "pokestop_name", Name ?? defaultMissingValue }, { "pokestop_url", Url ?? defaultMissingValue }, { "lure_img_url", lureImageUrl }, { "invasion_img_url", invasionImageUrl }, { "address", address?.Address }, // Discord Guild properties { "guild_name", guild?.Name }, { "guild_img_url", guild?.IconUrl }, { "date_time", DateTime.Now.ToString() }, //Misc properties { "br", "\r\n" } }; return(dict); }
private IReadOnlyDictionary <string, string> GetProperties(DiscordClient client, WhConfig whConfig, string city) { string icon; if (HasInvasion) { //TODO: Load from local file icon = "https://map.ver.sx/static/img/pokestop/i0.png"; } else if (HasLure) { icon = string.Format(whConfig.Urls.QuestImage, Convert.ToInt32(LureType)); } else { icon = Url; } var gmapsLink = string.Format(Strings.GoogleMaps, Latitude, Longitude); var appleMapsLink = string.Format(Strings.AppleMaps, Latitude, Longitude); var wazeMapsLink = string.Format(Strings.WazeMaps, Latitude, Longitude); var staticMapLink = Utils.PrepareStaticMapUrl(whConfig.Urls.StaticMap, icon, Latitude, Longitude); var gmapsLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? gmapsLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, gmapsLink); var appleMapsLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? appleMapsLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, appleMapsLink); var wazeMapsLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? wazeMapsLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, wazeMapsLink); //var staticMapLocationLink = string.IsNullOrEmpty(whConfig.ShortUrlApiUrl) ? staticMapLink : NetUtil.CreateShortUrl(whConfig.ShortUrlApiUrl, staticMapLink); var invasion = new TeamRocketInvasion(GruntType); var leaderString = GetGruntLeaderString(GruntType); var invasionEncounters = invasion.GetPossibleInvasionEncounters(); const string defaultMissingValue = "?"; var dict = new Dictionary <string, string> { //Main properties { "has_lure", Convert.ToString(HasLure) }, { "lure_type", LureType.ToString() }, { "lure_expire_time", LureExpireTime.ToLongTimeString() }, { "lure_expire_time_left", LureExpireTime.GetTimeRemaining().ToReadableStringNoSeconds() }, { "has_invasion", Convert.ToString(HasInvasion) }, { "grunt_type", invasion.Type == PokemonType.None ? leaderString : invasion?.Type.ToString() }, { "grunt_type_emoji", invasion.Type == PokemonType.None ? leaderString : client.Guilds.ContainsKey(whConfig.Discord.EmojiGuildId) ? invasion.Type.GetTypeEmojiIcons(client.Guilds[whConfig.Discord.GuildId]) : string.Empty }, { "grunt_gender", invasion.Gender.ToString() }, { "invasion_expire_time", InvasionExpireTime.ToLongTimeString() }, { "invasion_expire_time_left", InvasionExpireTime.GetTimeRemaining().ToReadableStringNoSeconds() }, { "invasion_encounters", $"**Encounter Reward Chance:**\r\n" + invasionEncounters }, //Location properties { "geofence", city ?? defaultMissingValue }, { "lat", Latitude.ToString() }, { "lng", Longitude.ToString() }, { "lat_5", Math.Round(Latitude, 5).ToString() }, { "lng_5", Math.Round(Longitude, 5).ToString() }, //Location links { "tilemaps_url", staticMapLink }, { "gmaps_url", gmapsLocationLink }, { "applemaps_url", appleMapsLocationLink }, { "wazemaps_url", wazeMapsLocationLink }, //Pokestop properties { "pokestop_id", PokestopId ?? defaultMissingValue }, { "pokestop_name", Name ?? defaultMissingValue }, { "pokestop_url", Url ?? defaultMissingValue }, //Misc properties { "br", "\r\n" } }; return(dict); }
public void BuyLure(LureType lure, int amount) { print(lure.ToString() + ":" + amount); FindObjectOfType <Inventory>().money -= amount * lure.price; }
public Iron(string name, LureType type, int count, int price, Bitmap pic) : base(name, type, count, price, pic) { }