public override void MapComponentTick() { base.MapComponentTick(); if (Strikes.Count > 0) { foreach (DeepStrike item in Strikes) { if (!item.StrikeNow) { item.delay--; } else { DoStrike(item); strikeLastTick = Find.TickManager.TicksGame; } } Strikes.RemoveAll(x => x.struck); } else { raidLastTick = -1; ticksSinceRaid = -1; strikeDelay = -1; } }
public LightningStrikes_Basic(IEnumerable <BaseStrikeChina> _lightningStrikes_China, IStrikesDistributionStatisticService _iStrikesDistributionStatisticService) { IStrikesDistributionStatisticService = _iStrikesDistributionStatisticService; foreach (var tmpStrike in _lightningStrikes_China) { Strikes.Add(tmpStrike); } }
public DataContext() { if (Assets == null) { Assets = new List <Asset>(); } if (Strikes == null) { Strikes = new List <Strike>(); } // This will get the base path of the application. _path = Path .GetDirectoryName(Assembly.GetExecutingAssembly().Location) .Replace("\\bin\\Debug\\netcoreapp3.1", string.Empty); // This will read the asset data. var assetData = File.ReadAllText($"{_path}/Data/Seed/assets.json"); // This will deserialize the json data. dynamic assets = JsonConvert.DeserializeObject(assetData); // This will map the deserialized json data to a collection of Asset objects. foreach (var item in assets) { Assets.Add(new Asset { AssetName = item["assetName"].ToString(), QuadKey = item["quadKey"].ToString(), AssetOwner = item["assetOwner"].ToString() }); } // This will read the lightning data. var strikeData = File.ReadAllText($"{_path}/Data/Seed/lightning.json"); // This will deserialize the json data. dynamic strikes = JsonConvert.DeserializeObject(strikeData); // This will map the deserialized json data to a collection of Strike objects. foreach (var item in strikes) { Strikes.Add(new Strike { FlashType = (FlashType)item["flashType"], StrikeTime = Convert.ToInt64(item["strikeTime"]), Latitude = Convert.ToDouble(item["latitude"]), Longitude = Convert.ToDouble(item["longitude"]), PeakAmps = Convert.ToInt32(item["peakAmps"]), Reserved = item["reserved"].ToString(), ICHeight = Convert.ToInt32(item["icHeight"]), ReceivedTime = Convert.ToInt64(item["receivedTime"]), NumberOfSensors = Convert.ToInt32(item["numberOfSensors"]), Multiplicity = Convert.ToInt32(item["multiplicity"]) }); } }
internal string begin(List <string> ShipCoords) { string IsStrike = Choose(); if (ShipCoords.Any(item => item.Contains(IsStrike))) { if (!Strikes.Any(item => item.Contains(IsStrike))) { Strikes.Add(IsStrike); ShipCoords.Remove(IsStrike); return(IsStrike); } } return(string.Empty); }
/// <summary> /// 统计本类目下所有相关属性,耗时操作 /// </summary> public override void CalcuDistribution(string _areaName) { if (Strikes.Any() & IStrikesDistributionStatisticService != null) { //年分布 YearDistribution = IStrikesDistributionStatisticService.CalcuYearDistribution(Strikes); YearDistributionPositive = IStrikesDistributionStatisticService.CalcuYearDistributionPositive(Strikes); YearDistributionNegative = IStrikesDistributionStatisticService.CalcuYearDistributionNegative(Strikes); YearDistributionDesc = IStrikesDistributionStatisticService.GenerateYearDistributionText(Strikes); //月分布 MonthDistribution = IStrikesDistributionStatisticService.CalcuMonthDistribution(Strikes); MonthDistributionPositive = IStrikesDistributionStatisticService.CalcuMonthDistributionPosive(Strikes); MonthDistributionNegative = IStrikesDistributionStatisticService.CalcuMonthDistributionNegative(Strikes); MonthDistributionDesc = IStrikesDistributionStatisticService.GenerateMonthDistributionText(Strikes); //时分布 HourDistribution = IStrikesDistributionStatisticService.CalcuHourDistribution(Strikes); HourDistributionPositive = IStrikesDistributionStatisticService.CalcuHourDistribution_Positive(Strikes); HourDistributionNegative = IStrikesDistributionStatisticService.CalcuHourDistribution_Negative(Strikes); HourDistributionDesc = IStrikesDistributionStatisticService.GenerateHourDistributionText(Strikes); //统计各类总数 SumStrikesNum = IStrikesDistributionStatisticService.CalcuSumNum(Strikes); SumNumPositive = IStrikesDistributionStatisticService.CalcuPositiveSumNum(Strikes); SumNumNegative = IStrikesDistributionStatisticService.CalcuNegativeSumNum(Strikes); MinNegativeIntensity = IStrikesDistributionStatisticService.CalcuMinNegativeIntensity(Strikes); MaxNegativeIntensity = IStrikesDistributionStatisticService.CalcuMaxNegativeIntensity(Strikes); MinPositiveIntensity = IStrikesDistributionStatisticService.CalcuMinPositiveIntensity(Strikes); MaxPositiveIntensity = IStrikesDistributionStatisticService.CalcuMaxPositiveIntensity(Strikes); // 雷电流强度 IntensityAvg = IStrikesDistributionStatisticService.CalcuAbsAvgIntensity(Strikes); IntensityPositiveAvg = IStrikesDistributionStatisticService.CalcuPositiveAvgIntensity(Strikes); IntensityNegativeAvg = IStrikesDistributionStatisticService.CalcuNegativeAvgIntensity(Strikes); //yearList YearList = IStrikesDistributionStatisticService.CalcuYearList(Strikes); //雷电流累计概率分布 ProbabilityDistribution = IStrikesDistributionStatisticService.CalcuProbabilityDistribution(Strikes); ProbabilityDistributioDisc = IStrikesDistributionStatisticService.GenerateProbabilityDistributionText(Strikes); //雷电日 LightningStrikeDays = IStrikesDistributionStatisticService.GetLightningStrikesDays(Strikes, _areaName); } }
/// <summary> /// 统计本类目下所有相关属性,耗时操作 /// </summary> public override void CalcuDistribution(string _areaName) { if (Strikes.Any() & IStrikesDistributionStatisticService != null) { //年分布 YearDistribution = IStrikesDistributionStatisticService.CalcuYearDistribution(Strikes); YearDistributionDesc = IStrikesDistributionStatisticService.GenerateYearDistributionText(Strikes); //月分布 MonthDistribution = IStrikesDistributionStatisticService.CalcuMonthDistribution(Strikes); MonthDistributionDesc = IStrikesDistributionStatisticService.GenerateMonthDistributionText(Strikes); //时分布 HourDistribution = IStrikesDistributionStatisticService.CalcuHourDistribution(Strikes); HourDistributionDesc = IStrikesDistributionStatisticService.GenerateHourDistributionText(Strikes); //统计各类总数 SumStrikesNum = IStrikesDistributionStatisticService.CalcuSumNum(Strikes); //yearList YearList = IStrikesDistributionStatisticService.CalcuYearList(Strikes); //雷电日 LightningStrikeDays = IStrikesDistributionStatisticService.GetLightningStrikesDays(Strikes, _areaName); } }
//public List<decimal> GetStrikesAroundPrice(decimal price, FutureCode contract, DateTime valueDate) //{ // if (StrikeRule == OptionStrikeRuleKind.AboveBelowAbsolute) // return GetStrikesAroundPrice_AboveBelow(price); // else if (StrikeRule == OptionStrikeRuleKind.CBOT) // { // var nMonthsOut = 1; // string MC = contract.OriginalCode; // if (FuturesFunctions.GetFutureExpiry(MC) >= valueDate) // { // string MC0 = FuturesFunctions.GetFrontMonthCode(contract.Prefix, valueDate, false, true); // while (MC0 != MC) // { // MC = FuturesFunctions.GetPreviousCode(MC); // nMonthsOut++; // } // } // return GetStrikesAroundPrice_CBOT(price, nMonthsOut); // } // else // throw new NotImplementedException(); //} private List <decimal> GetStrikesAroundPrice_AboveBelow(decimal price) { var returnValues = new List <decimal>(); var atmPrice = RoundToStrike(price); returnValues.Add(atmPrice); var upperPrice = atmPrice; var lowerPrice = atmPrice; foreach (var kv in Strikes.OrderBy(x => x.Value)) { for (var i = 0; i < kv.Key; i++) { upperPrice += (decimal)kv.Value; lowerPrice -= (decimal)kv.Value; returnValues.Add(upperPrice); returnValues.Add(lowerPrice); } } return(returnValues); }
public double Dvdk(double strike, DateTime expiry, double fwd) { if (StrikeType == StrikeType.ForwardDelta) { var t = TimeBasis.CalculateYearFraction(OriginDate, expiry); var pillarIx = Array.BinarySearch(Expiries, expiry); var interpForMaturity = pillarIx > 0 ? _interpolators[pillarIx] : InterpolatorFactory.GetInterpolator(Strikes, Strikes.Select(k => GetVolForDeltaStrike(k, expiry, fwd)).ToArray(), StrikeInterpolatorType); var deltaK = GetDeltaStrikeForAbs(fwd, strike, t); var vol = GetVolForAbsoluteStrike(strike, expiry, fwd); var gamma = BlackFunctions.BlackGamma(fwd, strike, 0.0, t, vol); return(interpForMaturity.FirstDerivative(deltaK) * gamma); } else { var interpForMaturity = InterpolatorFactory.GetInterpolator(Strikes, Strikes.Select(k => GetVolForAbsoluteStrike(k, expiry, fwd)).ToArray(), StrikeInterpolatorType); return(interpForMaturity.FirstDerivative(strike)); } }
/// <summary> /// readonly index /// </summary> /// <param name="index"></param> /// <returns></returns> public BaseStrikeBasic this[int index] { get { return(Strikes.ElementAt(index)); } }
private List <Strikes> GenerateStrikes(List <string> textX) { textX.RemoveAt(textX.Count() - 1); List <Strikes> list = new List <Strikes>(); Strikes objItem = null; foreach (var item in textX) { string[] item2 = item.Split(new[] { "<td" }, StringSplitOptions.None); List <string> textY = item2.ToList(); textY.RemoveAt(0); textY.RemoveAt(textY.Count - 1); objItem = new Strikes(); for (int i = 0; i <= textY.Count - 1; i++) { objItem.Time = DateTime.Now.ToString(); if (i == 0) { objItem.Cal_OI = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 1) { objItem.Cal_ChnginOI = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 2) { objItem.Cal_Volume = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 3) { objItem.Cal_IV = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 4) { objItem.Cal_LTP = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 5) { objItem.Cal_NetChng = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 6) { objItem.Cal_BidQty = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 7) { objItem.Cal_BidPrice = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 8) { objItem.Cal_AskPrice = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 9) { objItem.Cal_AskQty = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 10) { objItem.StrikePrice = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[3].Split('<'))[0]; } else if (i == 11) { objItem.Put_BidQty = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 12) { objItem.Put_BidPrice = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 13) { objItem.Put_AskPrice = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 14) { objItem.Put_AskQty = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 15) { objItem.Put_NetChng = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 16) { objItem.Put_LTP = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 17) { objItem.Put_IV = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 18) { objItem.Put_Volume = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 19) { objItem.Put_ChnginOI = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } else if (i == 20) { objItem.Put_OI = ((textY[i].Split('>'))[1].Trim().Split('<'))[0] != string.Empty ? ((textY[i].Split('>'))[1].Split('<'))[0] : ((textY[i].Split('>'))[2].Split('<'))[0]; } } list.Add(objItem); } return(list); }
public HomeModule() : base() { Get["/"] = _ => { return("Hello world!"); }; Get["/Commands/{group}"] = parameters => { var commands = new List <Command>(); var chatTitle = ""; switch ((string)parameters.group) { case "war": commands = GroupCommands.WarChatCommands.Commands; chatTitle = "War"; break; case "leadership": commands = GroupCommands.LeadershipChatCommands.Commands; chatTitle = "Leadership"; break; case "general": commands = GroupCommands.GeneralChatCommands.Commands; chatTitle = "General"; break; case "wheninrome": commands = GroupCommands.WhenInRomeChatCommands.Commands; chatTitle = "When In Rome"; break; case "recon": commands = GroupCommands.ReconChatCommands.Commands; chatTitle = "Recon"; break; case "test": commands = GroupCommands.TestChatCommands.Commands; chatTitle = "Test"; break; } var publicCommands = commands.Where(c => c.Type == Command.CommandType.Public && !string.IsNullOrEmpty(c.Name)).OrderBy(c => c.Name).ToList(); var modOnlyCommands = commands.Where(c => c.Type == Command.CommandType.ModsOnly && !string.IsNullOrEmpty(c.Name)).OrderBy(c => c.Name).ToList(); var model = new { ChatTitle = chatTitle, PublicCommands = publicCommands, ModOnlyCommands = modOnlyCommands }; return(View["commands.html", model]); }; Get["/Strikes"] = parameters => { var strikes = Strikes.GetStrikes() .Where(s => s.StrickenAt.ToString("MM/yyyy") == DateTime.UtcNow.ToString("MM/yyyy")) .Select(s => new { Member = s.Member.Name, Reason = s.Reason, StrickenBy = s.StrickenBy.Name, StrickenAt = DateHelper.GetPrettyTimeSpan(DateTime.UtcNow.Subtract(s.StrickenAt)) }).ToList(); var model = new { Month = DateTime.UtcNow.ToString("MMMM, yyyy"), Strikes = strikes }; return(View["strikes.html", model]); }; Get["/Members"] = parameters => { var members = Members.GetMembers() .Select(m => new { Name = m.Name, VillageCode = m.VillageCode, IsBanned = m.Banned ? "Yes" : "No" }).ToList(); return(View["members.html", members]); }; Post["/Incoming/{group}"] = parameters => { var message = this.Bind <ReceivedMessage>(); var group = (string)parameters.group; var botName = ConfigurationManager.AppSettings["BOT_NAME"]; if (message.name != botName) { switch (group) { case "general": { GroupCommands.GeneralChatCommands.CheckMessage(message); break; } case "test": { GroupCommands.TestChatCommands.CheckMessage(message); break; } case "leadership": { GroupCommands.LeadershipChatCommands.CheckMessage(message); break; } case "war": { GroupCommands.WarChatCommands.CheckMessage(message); break; } case "wheninrome": { GroupCommands.WhenInRomeChatCommands.CheckMessage(message); break; } case "recon": { GroupCommands.ReconChatCommands.CheckMessage(message); break; } } } return(HttpStatusCode.OK); }; }