public override void Initialize(GameDateTime current) { base.Initialize(current); this.Character.Name = "蛮族_仁官"; this.Character.Intellect = 100; this.Character.Leadership = 40; }
public SaveDataCollection(string fileName) { //if (string.isNullOrEmpty(fileName) || !Path.Exists(fileName)) //{ gameTime = new GameDateTime(0, 0); //} }
public static bool CanNavigateToNext(this GameDateTime gameDateTime) { if (gameDateTime.Status != GameDateTimeStatus.Now) { return(false); } bool nothingOnToDo = gameDateTime.Matches != GameDateTimeEventStatus.ToDo && gameDateTime.EndOfSeason != GameDateTimeEventStatus.ToDo; if (nothingOnToDo) { return(true); } bool thereAreMatchesButNotForTheManager = gameDateTime.EndOfSeason == GameDateTimeEventStatus.NotApplicable && gameDateTime.Matches == GameDateTimeEventStatus.ToDo && !gameDateTime.ManagerPlaysMatch; if (thereAreMatchesButNotForTheManager) { return(true); } return(false); }
public MailShipping(int gols) { money = gols; Type = MailType.Gift; itemList = new List <IdCount>(); GameDateTime gdt = Module <TimeManager> .Self.DateTime; GameDateTime morning; if (gdt.Hour >= 7) { gdt = gdt.AddDays(1); } morning = new GameDateTime(gdt.Year, gdt.Month, gdt.Day, 7, 0, 0); sendDateTicks = morning.Ticks; baseData = new Pathea.MailConfInfo { Title = 103556, Content = new int[] { 100777 }, Type = (int)MailType.Gift, }; typeof(MailItemBase).GetProperty("titleId").SetValue(this, baseData.Title, null); typeof(MailItemBase).GetProperty("contentId").SetValue(this, baseData.GetContent(), null); mailIcon = "Mail/Mail3"; }
public override void Initialize(GameDateTime current) { this.Character.Name = "政務官_交易商"; this.Character.Intellect = (short)(100 + current.Year / 3.3f); this.Character.Money = 1000000; this.Character.Rice = 1000000; }
void RecvSetGameTime(IIPSocket conn, BitStream r) { var serverTimeBinary = r.ReadLong(); var serverTime = DateTime.FromBinary(serverTimeBinary); GameDateTime.SetServerTimeOffset(serverTime); }
public override void Initialize(GameDateTime current) { this.Character.Name = "政務官_集合官"; this.Character.Popularity = (short)(100 + current.Year / 3.2f); this.Character.Money = 1000000; this.Character.Rice = 1000000; }
public void SubtractOperatorTest() { var a = new GameDateTime(50); var b = new GameDateTime(25); Assert.AreEqual(new GameDateTime(25), a - b); }
public override void Initialize(GameDateTime current) { base.Initialize(current); this.Character.Name = "蛮族_武将"; this.Character.Strong = (short)(this.Character.Strong * 0.79f); this.Character.Leadership = 80; }
private void GenerateWeeklyRecipes() { var gameDateTime = new GameDateTime(Game1.timeOfDay, Game1.dayOfMonth, Game1.currentSeason, Game1.year); var startDayOfWeek = (((gameDateTime.DayOfMonth / 7) + 1) * 7) - 6; var seed = int.Parse($"{startDayOfWeek}{gameDateTime.Season}{gameDateTime.Year}"); var random = new Random(seed); if (_seed == seed) { return; } _seed = seed; _thisWeeksRecipes = new List <CookingRecipe>(); var maxNumberOfRecipesPerWeek = 5; var unknownRecipes = _cookingRecipes.Where(x => !x.IsKnown).ToList(); var unknownRecipesCount = unknownRecipes.Count; if (unknownRecipesCount == 0) { ShowNoRecipes(); return; } for (int i = 0; i < maxNumberOfRecipesPerWeek; i++) { var recipe = unknownRecipes[random.Next(unknownRecipesCount)]; if (!_thisWeeksRecipes.Any(x => x.Name.Equals(recipe.Name))) { _thisWeeksRecipes.Add(recipe); } } ShowWeeklyRecipes(); }
public override void Initialize(GameDateTime current) { this.Character.Name = "農民_文官"; this.Character.Intellect = (short)Math.Max(current.ToInt() * 0.9f / 12 + 100, 100); this.Character.Leadership = 100; this.Character.Money = 1000000; this.Character.Rice = 1000000; }
public void LessThanOperatorTest() { var less = new GameDateTime(100); var more = new GameDateTime(200); Assert.IsTrue(less < more); Assert.IsFalse(more < less); }
public void GreaterThanOperatorTest() { var less = new GameDateTime(100); var more = new GameDateTime(200); Assert.IsFalse(less > more); Assert.IsTrue(more > less); }
public override void Initialize(GameDateTime current) { this.Character.Religion = RandomService.Next(new ReligionType[] { ReligionType.Buddhism, ReligionType.Confucianism, ReligionType.Taoism, }); this.Character.Name = "伝道師"; this.Character.Intellect = (short)(100 + current.Year / 2.9f); this.Character.Money = 1000000; this.Character.Rice = 1000000; }
public void ToFromMinutesTest() { const int minutes = 123123; var gt = new GameDateTime(minutes); Assert.AreEqual(minutes, (int)gt.TotalRealMinutes); Assert.AreEqual(gt, new GameDateTime((int)gt.TotalRealMinutes)); }
public void AddOperatorTest() { var a = new GameDateTime(50); var b = new GameDateTime(25); Assert.AreEqual(new GameDateTime(75), a + b); Assert.AreEqual(new GameDateTime(75), b + a); }
public override void Initialize(GameDateTime current) { this.Character.Name = "異民族_仁官"; this.Character.Intellect = (short)Math.Min(Math.Max(current.ToInt() * 1.4f / 12, 120), 240); this.Character.Popularity = 140; this.Character.Leadership = 30; this.Character.Money = 99999999; this.Character.Rice = 99999999; }
public override void Initialize(GameDateTime current) { this.Character.Name = "異民族_文官"; this.Character.Strong = 10; this.Character.Intellect = (short)Math.Max(current.ToInt() * 0.8f / 12 + 60, 100); this.Character.Leadership = 90; this.Character.Money = 99999999; this.Character.Rice = 99999999; }
public override void Initialize(GameDateTime current) { this.Character.Name = "異民族_武将"; this.Character.Strong = (short)Math.Max(current.ToInt() * 0.87f / 12 + 60, 100); this.Character.Leadership = (short)Math.Min(current.ToInt() * 0.3f / 12 + 83, 150.0f); this.Character.Money = 99999999; this.Character.Rice = 99999999; this.Character.SkillPoint = 40 * 20; }
public CharacterCache(Character chara) { this.Id = chara.Id; this.AliasId = chara.AliasId; this.Name = chara.Name; this.CountryId = chara.CountryId; this.LastUpdated = chara.LastUpdated; this.LastUpdatedGameDate = chara.LastUpdatedGameDate; }
public void EqualsOperatorTest() { var a = new GameDateTime(512); var b = new GameDateTime(512); var c = new GameDateTime(312); Assert.IsTrue(a == b); Assert.IsTrue(b == a); Assert.IsFalse(a == c); Assert.IsFalse(b == c); }
public void TimeOffsetTest() { var clientTime = DateTime.Now; var serverTime = new DateTime(clientTime.Year, clientTime.Month, clientTime.Day, clientTime.Hour - (clientTime.Hour <= 1 ? 0 : 1), clientTime.Minute, clientTime.Second); GameDateTime.SetServerTimeOffset(serverTime); Assert.AreEqual((clientTime.Hour <= 1 ? 0 : 1), Math.Round(GameDateTime.ServerTimeOffset.TotalHours)); }
public void GreaterThanOrEqualToOperatorTest() { var less = new GameDateTime(100); var more = new GameDateTime(200); var less2 = new GameDateTime(100); Assert.IsFalse(less >= more); Assert.IsTrue(more >= less); Assert.IsTrue(less >= less2); Assert.IsTrue(less2 >= less); }
private void Start() { MM = GetComponent <MenuManager>(); InvUI = InventoryUI.FindObjectOfType(typeof(InventoryUI)) as InventoryUI; currentScreen = GameStates.gameScreens.mainGame; mainCam = Camera.main.transform; // Update Sprite Dictionary before loading the player data foreach (Item itemPot in allPotTypes) { spriteDictionary.Add(itemPot.itemProperties.itemID, itemPot.itemSprites); } foreach (Item itemPlant in allPlantTypes) { spriteDictionary.Add(itemPlant.itemProperties.itemID, itemPlant.itemSprites); } //Start Loading Player Data. Includes Updating GameDateTime GetComponent <XMLSaveLoad>().LoadGame(); Debug.Log("Loading going to the next stage..."); // If New Game, Do stuff... if (playerData.newGame) { NewGame(); } // Update Currencies Currencies.OverrideFlorets(playerData.playerFlorets); Currencies.OverrideCrystals(playerData.playerCrystals); // Update WorldItems foreach (WorldItem wi in allWorldItemsInScene) { wi.UpdateWorldItemStats(); } // Turn off PlacePoint Icons placePoints.AddRange(GameObject.FindObjectsOfType <PlacePoint>()); foreach (PlacePoint p in placePoints) { p.HidePointer(); } // TESTING DateTime stuff GameDateTime.LogCurrentDateTime(); Debug.Log("Finished Updating DateTime"); }
public void EqualsTest() { var a = new GameDateTime(512); var b = new GameDateTime(512); var c = new GameDateTime(312); Assert.AreEqual(a, b); Assert.AreEqual(b, a); Assert.AreNotEqual(a, c); Assert.AreNotEqual(b, c); Assert.IsTrue(a.Equals(b)); Assert.IsTrue(b.Equals(a)); Assert.IsFalse(a.Equals(c)); Assert.IsFalse(b.Equals(c)); }
public void SaveGame() // Called from Game Manager { Debug.Log("Saving..."); GameDateTime.LogCurrentDateTime(); pd = GetComponent <GameManager>().playerData; SaveCurrencies(); SaveItems(GetComponent <GameManager>()); SaveShop(); SaveDelayedOrders(); SaveTime(); SaveXML(pd, saveFileName); SaveEmailsToJson(); Debug.Log("Finished Saving at " + System.DateTime.Now.ToLongTimeString()); }
public void LoadPlayerData(PlayerData data) // Called from XMLSaveLoad { Debug.Log("Game Manager getting info from PlayerData"); playerData = data; if (playerData.newGame == false) { Debug.Log("Checking saved inventory..."); // Sort World Items from Inventory Items foreach (GameItem item in playerData.allGameItems) { if (item.inWorld) { LoadItemToWorld(item); } else { LoadItemToInventory(item); } } Debug.Log("Inventory and World Items Loaded"); } // Get Time Since Last Play GameDateTime.SetRealTimeSinceLastPlay(playerData.newGame, playerData.savedMinuteOfYear, playerData.savedDayOfYear); // Load Emails now GetComponent <XMLSaveLoad>().LoadEmailsFromJSON(); // Load Shop Items FindObjectOfType <Shop>().LoadItemsForSale(playerData.itemsInShop); // Load and Check Delayed Orders AFTER Realtime Since Last Play ONLY if this is NOT a new game if (playerData.newGame == false) { Debug.Log("Updating Undelivered Orders..."); GetComponent <DelayedOrderManager>().AddListOfDelayedOrders(playerData.delayedOrdersUndelivered, GameDateTime.realTimeSinceLastPlay); Debug.Log("Undelivered Orders have been updated"); } Debug.Log("Finished LoadPlayerData()"); }
public static async Task RequestResetAsync(MainRepository repo, uint unifiedCountryId) { var system = await repo.System.GetAsync(); system.IsWaitingReset = true; system.IsBattleRoyaleMode = false; var currentMonth = system.CurrentMonthStartDateTime; var todayResetHour = new DateTime(currentMonth.Year, currentMonth.Month, currentMonth.Day, 20, 0, 0, 0); var resetHour = todayResetHour.AddDays(currentMonth.Hour < 20 ? 1 : 2); var sinceResetTime = resetHour - currentMonth; var resetTurn = (int)Math.Round(sinceResetTime.TotalMinutes / 10.0f); system.ResetGameDateTime = GameDateTime.FromInt(system.GameDateTime.ToInt() + resetTurn); await RecordHistoryAsync(repo, system, unifiedCountryId); await StatusStreaming.Default.SendAllAsync(ApiData.From(system)); }
/// <summary> /// 指定した武将の指定した年月のコマンドを取得する /// </summary> /// <returns>コマンド</returns> /// <param name="characterId">武将ID</param> /// <param name="month">取得する年月</param> public async Task <Optional <CharacterCommand> > GetAsync(uint characterId, GameDateTime month) { var monthInt = month.ToInt(); try { var newest = await this.container.Context.CharacterCommands .Where(c => c.CharacterId == characterId && c.IntGameDateTime == monthInt) .GroupJoin(this.container.Context.CharacterCommandParameters, c => c.Id, cp => cp.CharacterCommandId, (c, cps) => c.SetParameters(cps)) .FirstOrDefaultAsync() .ToOptionalAsync(); return(newest); } catch (Exception ex) { this.container.Error(ex); return(default);
public override async Task ExecuteAsync(MainRepository repo, Character character, IEnumerable <CharacterCommandParameter> options, CommandSystemData game) { var isRegularly = options.Any(p => p.Type == CharacterCommandParameterTypes.Regularly); var itemTypeOptional = options.FirstOrDefault(p => p.Type == 1); if (itemTypeOptional == null || itemTypeOptional.NumberValue == null) { await game.CharacterLogAsync("アイテム生産のパラメータが不正です。<emerge>管理者にお問い合わせください</emerge>"); return; } var itemType = (CharacterItemType)itemTypeOptional.NumberValue; var delays = await repo.DelayEffect.GetAllAsync(); if (delays.Any(d => d.CharacterId == character.Id && d.Type == DelayEffectType.GenerateItem)) { if (!isRegularly) { await game.CharacterLogAsync($"アイテム生産しようとしましたが、複数のアイテムを同時に生産することはできません"); } return; } var infoOptional = CharacterItemInfoes.Get(itemType); if (!infoOptional.HasData) { await game.CharacterLogAsync($"ID: {(short)itemType} のアイテムは存在しません。<emerge>管理者にお問い合わせください</emerge>"); return; } var info = infoOptional.Data; var generateInfo = GenerateItemInfo.GetInfo(character, itemType); if (generateInfo == null) { await game.CharacterLogAsync("アイテム生産の情報が不正です。<emerge>管理者にお問い合わせください</emerge>"); return; } var money = info.IsResource ? info.MoneyPerResource * info.DefaultResource / 16 : info.Money / 16; if (character.Money < money) { await game.CharacterLogAsync("アイテム生産しようとしましたが、金が足りません。<num>" + money + "</num> 必要です"); return; } var townOptional = await repo.Town.GetByIdAsync(character.TownId); if (townOptional.HasData) { var country = await repo.Country.GetByIdAsync(character.CountryId); var town = townOptional.Data; if (town.CountryId != character.CountryId && country.HasData && !country.Data.HasOverthrown) { await game.CharacterLogAsync($"<town>{town.Name}</town> でアイテム生産しようとしましたが、自国の都市ではありません"); return; } character.Money -= money; var delay = new DelayEffect { CharacterId = character.Id, CountryId = character.CountryId, AppearGameDateTime = game.GameDateTime, Type = DelayEffectType.GenerateItem, TypeData = (int)itemType, }; await repo.DelayEffect.AddAsync(delay); await repo.SaveChangesAsync(); await StatusStreaming.Default.SendCharacterAsync(ApiData.From(delay), character.Id); var finish = GameDateTime.FromInt(game.GameDateTime.ToInt() + generateInfo.Length); generateInfo.AddExAttribute(character); if (!isRegularly) { character.Contribution += generateInfo.Contribution; character.SkillPoint++; } await game.CharacterLogAsync($"<town>{town.Name}</town> で <num>{money}</num> を投し、{info.Name} の生産を開始しました。結果は <num>{finish.Year}</num> 年 <num>{finish.Month}</num> 月に来ます"); } else { await game.CharacterLogAsync("ID:" + character.TownId + " の都市は存在しません。<emerge>管理者にお問い合わせください</emerge>"); } }
public void DrawDayNight(double lightness, GameDateTime gameDateTime, List<BurningProps> lightObjects) { var drawingGroup = new DrawingGroup(); // Create a DrawingBrush. DrawingBrush myDrawingBrush = new DrawingBrush(); // Create a drawing. GeometryDrawing myBlackDrawing = new GeometryDrawing(); // myGeometryDrawing.Brush myBlackDrawing.Brush = Brushes.Black; myBlackDrawing.Pen = new Pen(Brushes.Black, 1); GeometryGroup rectangle = new GeometryGroup(); rectangle.FillRule = FillRule.EvenOdd; rectangle.Children.Add(new RectangleGeometry(new System.Windows.Rect() { Height = _canvas.Height, Width = _canvas.Width })); GeometryGroup rectangle11 = new GeometryGroup(); rectangle11.FillRule = FillRule.Nonzero; foreach (var lightObject in lightObjects) { rectangle11.Children.Add( new EllipseGeometry(new System.Windows.Point(lightObject.Point.X + 10, lightObject.Point.Y + 10), 20 * lightObject.LightRadius, 20 * lightObject.LightRadius)); } rectangle.Children.Add(rectangle11); var combined = new CombinedGeometry(GeometryCombineMode.Exclude, rectangle, rectangle11); myBlackDrawing.Geometry = combined; drawingGroup.Children.Add(myBlackDrawing); myDrawingBrush.Drawing = drawingGroup; Rectangle rec = new Rectangle() { Fill = myDrawingBrush, Stroke = Brushes.Black, Height = _canvas.Height, Width = _canvas.Width, Opacity = lightness, IsEnabled = false }; _canvas.Children.Add(rec); Canvas.SetLeft(rec, 0); Canvas.SetTop(rec, 0); _ListBoxDateTime.Items.Clear(); _ListBoxDateTime.Items.Add(string.Format("{0}:{1}:{2}", gameDateTime.Day, gameDateTime.Hour, gameDateTime.Minute)); }