public static bool ChangeBeginTime(this STimeBoost Boost_, TimePoint Now_, double Speed_, ref TimePoint BeginTime_) { if (Boost_.IsInBoost(Now_)) { return(false); } if (BeginTime_ <= Boost_.EndTime) { BeginTime_ = Now_ - (Boost_.EndTime - BeginTime_) - GetRealDuration(Now_ - Boost_.EndTime, Speed_); } else { BeginTime_ = Now_ - GetRealDuration(Now_ - BeginTime_, Speed_); } return(true); }
public static TimeSpan GetBoostedDuration(this STimeBoost Boost_, TimePoint BeginTime_, TimePoint EndTime_) { if (EndTime_ <= BeginTime_) { return(TimeSpan.Zero); } if (Boost_.EndTime < BeginTime_) { return(EndTime_ - BeginTime_); } else { if (Boost_.EndTime < EndTime_) { return(TimeSpan.FromTicks((Int64)((Boost_.EndTime - BeginTime_).Ticks * Boost_.Speed) + (EndTime_ - Boost_.EndTime).Ticks)); } else { return(TimeSpan.FromTicks((Int64)((EndTime_ - BeginTime_).Ticks * Boost_.Speed))); } } }
public static TimePoint GetBoostedEndTime(this STimeBoost Boost_, TimePoint BeginTime_, TimeSpan BoostedDuration_) { if (BoostedDuration_.Ticks <= 0) { return(BeginTime_); } if (Boost_.EndTime < BeginTime_) { return(BeginTime_ + BoostedDuration_); } else { var BoostDuration = TimeSpan.FromTicks((Int64)((Boost_.EndTime - BeginTime_).Ticks * Boost_.Speed)); if (BoostedDuration_ <= BoostDuration) { return(BeginTime_ + TimeSpan.FromTicks((Int64)(BoostedDuration_.Ticks / Boost_.Speed))); } else { return(Boost_.EndTime + (BoostedDuration_ - BoostDuration)); } } }
public void Set(STimeBoost Obj_) { EndTime = Obj_.EndTime; Speed = Obj_.Speed; }
public STimeBoost(STimeBoost Obj_) { EndTime = Obj_.EndTime; Speed = Obj_.Speed; }
public static string ToString(STimeBoost Boost_) { return(" EndTime:" + Boost_.EndTime.ToString() + " Speed:" + Boost_.Speed); }
public static bool IsInBoost(this STimeBoost Boost_, TimePoint Now_) { return(Now_ < Boost_.EndTime); }
public static TimeSpan GetBoostedDuration(this STimeBoost Boost_, TimePoint Now_) { return(TimeSpan.FromTicks((Int64)((Boost_.EndTime - Now_).Ticks * Boost_.Speed))); }
static void Main(String[] args) { #if false CControlFixed ControlFixed = new CControlFixed(new SPoint(0.0, 0.0), 10.0, 12.0); var Vector = ControlFixed.Down(new SPoint()); if (Vector == null) { Console.WriteLine("Null"); } else { Console.WriteLine(Vector.X + " " + Vector.Y); } Vector = ControlFixed.Move(new SPoint(10.0, 0.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlFixed.Move(new SPoint(10.0, 10.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Console.WriteLine("-----------------------------------"); CControlImmovable ControlImmovable = new CControlImmovable(3.0); ControlImmovable.Down(new SPoint(7.0, 0.0)); Vector = ControlImmovable.Move(new SPoint(10.0, 0.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 1.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 2.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 3.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 4.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 5.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 6.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 7.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 8.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 9.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlImmovable.Move(new SPoint(10.0, 10.0)); Console.WriteLine(Vector.X + " " + Vector.Y); for (double d = 10.0; d < 100.0; d += 1.0) { Vector = ControlImmovable.Move(new SPoint(10.0, d)); Console.WriteLine(Vector.X + " " + Vector.Y); } Console.WriteLine("-----------------------------------"); CControlMovable ControlMovable = new CControlMovable(3.0); ControlMovable.Down(new SPoint()); Vector = ControlMovable.Move(new SPoint(10.0, 0.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 1.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 2.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 3.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 4.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 5.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 6.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 7.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 8.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 9.0)); Console.WriteLine(Vector.X + " " + Vector.Y); Vector = ControlMovable.Move(new SPoint(10.0, 10.0)); Console.WriteLine(Vector.X + " " + Vector.Y); for (double d = 10.0; d < 100.0; d += 1.0) { Vector = ControlMovable.Move(new SPoint(10.0, d)); Console.WriteLine(Vector.X + " " + Vector.Y); } #elif false // Test TimeBoost //var BoostStartTime = new TimePoint(new DateTime(2019, 1, 4, 0, 0, 9)); //var BoostEndTime = new TimePoint(new DateTime(2019, 1, 4, 0, 0, 11)); //var TimeBoost = new STimeBoost(BoostStartTime, BoostEndTime, 2.0); //Console.WriteLine(CTimeBoost.GetRealTime(TimeBoost, // new TimePoint(new DateTime(2019, 1, 4, 0, 0, 10)), // TimeSpan.FromSeconds(20))); var BoostStartTime = new TimePoint(new DateTime(2019, 1, 4, 10, 42, 21)); var BoostEndTime = new TimePoint(new DateTime(2019, 1, 4, 11, 42, 21)); var TimeBoost = new STimeBoost(BoostStartTime, BoostEndTime, 10.0); Console.WriteLine(TimeBoost.GetEndTime(new TimePoint(new DateTime(2019, 1, 4, 10, 49, 04)), TimeSpan.FromMinutes(240))); //var Now = TimePoint.Now; //var MidTime = (Now + TimeSpan.FromSeconds(5)); //var EndTime = (Now + TimeSpan.FromSeconds(10)); //var Boost = new CTimeBoost(new STimeBoost(new STimer(false, Now, EndTime), 0.5)); //for (var n = TimePoint.Now; n < MidTime; n = TimePoint.Now) //{ // Console.WriteLine(Boost.GetElapsedDuration(n).TotalMilliseconds); // Thread.Sleep(100); //} //Boost.Set(TimePoint.Now, EndTime, 3.0); //for (var n = TimePoint.Now; n < EndTime; n = TimePoint.Now) //{ // Console.WriteLine(Boost.GetElapsedDuration(n).TotalMilliseconds); // Thread.Sleep(100); //} #elif false var Option = new COptionJson <SAccount>("Option.ini", true); Option.Data = new SAccount("Ř", "Ř"); Console.WriteLine(Option.Data.ToJsonString()); #elif false var keyCnt = new CKeyCntInt <int>(); keyCnt.Plus(1, 1); keyCnt.Plus(1, 1); keyCnt.Plus(2, 3); keyCnt.Plus(2, -4); keyCnt.Multied(2); keyCnt.Multied(0); foreach (var i in keyCnt) { Console.WriteLine(i.Key + " " + i.Value); } #elif true var r = new Rank <int, int>(); r.Add(1, 1); r.Add(3, 3); r.Add(5, 5); for (int i = -1; i < 7; ++i) { var t = r.Get(i); if (t == null) { Console.WriteLine(i + " null"); } else { Console.WriteLine(i + " " + t.Value.Key + " " + t.Value.Value); } } #endif }