public override void OnMovement(Mobile m, Point3D oldLocation) { base.OnMovement(m, oldLocation); int hours, minutes, uoDay, totalUoDays, totalMinutes; Server.Items.Clock.GetTime(m.Map, m.X, m.Y, out hours, out minutes, out totalMinutes); totalUoDays = (int)Math.Ceiling((double)totalMinutes / (60 * 24)); Math.DivRem(totalUoDays, 30, out uoDay); //if (uoDay== 1 || uoDay == 7 || uoDay == 15 || uoDay== 23) // { if (hours >= 6 && hours <= 20) { int marketplace = m_market.Count; int marketplacemob = m_marketmob.Count; if (marketplace >= marketCount && marketplacemob >= marketCount) { return; } bool validLocation = false; Map map = this.Map; switch (Utility.Random(11)) { #region fisherman case 0: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandFishEastAddon market = new MarketStandFishEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; Fisherman marketmob1 = new Fisherman(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region mercer case 1: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandMercerEastAddon market = new MarketStandMercerEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Tailor marketmob1 = new Tailor(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region vegetables case 2: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandVegetablesEastAddon market = new MarketStandVegetablesEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Farmer marketmob1 = new Farmer(); int gx = X - 2; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region cheese case 3: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandCheeseEastAddon market = new MarketStandCheeseEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Farmer marketmob1 = new Farmer(); int gx = X - 1; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region wine case 4: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandWineEastAddon market = new MarketStandWineEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y - 1; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Barkeeper marketmob1 = new Barkeeper(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region herbs case 5: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandHerbsEastAddon market = new MarketStandHerbsEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Herbalist marketmob1 = new Herbalist(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region mushroom case 6: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandMushroomEastAddon market = new MarketStandMushroomEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Herbalist marketmob1 = new Herbalist(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region fur case 7: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandFurEastAddon market = new MarketStandFurEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Furtrader marketmob1 = new Furtrader(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region bee case 8: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandBeeEastAddon market = new MarketStandBeeEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Beekeeper marketmob1 = new Beekeeper(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region copper case 9: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandCopperEastAddon market = new MarketStandCopperEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Blacksmith marketmob1 = new Blacksmith(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion #region tool case 10: { for (int i = marketplace; i < marketCount; ++i) { if (i == 0) { Point3D marketloc = this.Location; // MarketStandToolEastAddon market = new MarketStandToolEastAddon(); for (int k = 0; !validLocation && k < 10; ++k) { int ax = X; int ay = Y; int az = map.GetAverageZ(ax, ay); if (validLocation = map.CanFit(ax, ay, this.Z, 16, false, false)) { marketloc = new Point3D(ax, ay, Z); } else if (validLocation = map.CanFit(ax, ay, az, 16, false, false)) { marketloc = new Point3D(ax, ay, az); } } market.MoveToWorld(marketloc, this.Map); m_market.Add(market); } } for (int i = marketplacemob; i < marketmobCount; ++i) { if (i == 0) { Point3D marketloc6 = this.Location; // Tinker marketmob1 = new Tinker(); int gx = X + 3; int gy = Y; int gz = map.GetAverageZ(gx, gy); if (validLocation = map.CanFit(gx, gy, this.Z, 16, false, false)) { marketloc6 = new Point3D(gx, gy, Z); } else if (validLocation = map.CanFit(gx, gy, gz, 16, false, false)) { marketloc6 = new Point3D(gx, gy, gz); } marketmob1.Home = marketloc6; marketmob1.RangeHome = 0; marketmob1.MoveToWorld(marketloc6, this.Map); m_marketmob.Add(marketmob1); } } break; } #endregion } } else { foreach (Item that in m_market) { that.Delete(); } foreach (Mobile thats in m_marketmob) { thats.Delete(); } } }
private void Update() { if (Input.GetButtonDown("Increase Game Speed")) { GameManager.Instance.World.Speed += 1; } if (Input.GetButtonDown("Decrease Game Speed")) { GameManager.Instance.World.Speed -= 1; } if (Input.GetButtonDown("Jump") && EventSystem.current.currentSelectedGameObject == null) { if (GameManager.Instance.World.Speed != 0) { this.previousGameSpeed = GameManager.Instance.World.Speed; GameManager.Instance.World.Speed = 0; } else { GameManager.Instance.World.Speed = this.previousGameSpeed; } } if (Input.GetKeyDown(KeyCode.Z)) { var apothecary = new Apothecary("Apothecary", 10); GameManager.Instance.World.ReceiveApplication(apothecary); GameManager.Instance.World.Shop.HireEmployee(apothecary); var herbalist = new Herbalist("Herbalist", 10); GameManager.Instance.World.ReceiveApplication(herbalist); GameManager.Instance.World.Shop.HireEmployee(herbalist); var shopkeeper = new Shopkeeper("Shopkeeper", 10); GameManager.Instance.World.ReceiveApplication(shopkeeper); GameManager.Instance.World.Shop.HireEmployee(shopkeeper); } if (Input.GetKeyDown(KeyCode.X)) { for (var i = 0; i < 10; i++) { var herb = (Herb)GameManager.Instance.World.HerbDatabase[GameManager.Instance.World.Random.Next(GameManager.Instance.World.HerbDatabase.Length)].Clone(); GameManager.Instance.World.Shop.DeliverIngredient(herb); } for (var i = 0; i < 10; i++) { var flask = (Flask)GameManager.Instance.World.FlaskDatabase[GameManager.Instance.World.Random.Next(GameManager.Instance.World.FlaskDatabase.Length)].Clone(); GameManager.Instance.World.Shop.PurchaseFlask(flask); } } if (Input.GetKeyDown(KeyCode.Y)) { var flask = GameManager.Instance.World.Shop.Flasks[GameManager.Instance.World.Random.Next(GameManager.Instance.World.Shop.Flasks.Count)]; var ingredients = new Ingredient[] { GameManager.Instance.World.Shop.Ingredients[GameManager.Instance.World.Random.Next(GameManager.Instance.World.Shop.Ingredients.Length)], GameManager.Instance.World.Shop.Ingredients[GameManager.Instance.World.Random.Next(GameManager.Instance.World.Shop.Ingredients.Length)] }; GameManager.Instance.World.Shop.ResearchPotion(flask, null, ingredients); } if (Input.GetKeyDown(KeyCode.F5)) { File.WriteAllText("game.json", JsonUtility.ToJson(GameManager.Instance.World)); } if (Input.GetKeyDown(KeyCode.A)) { var dropdownOption = 0; var name = ""; var changeName = UserInterface.Instance.CreateAlert(new AlertData() { title = "Name", message = "Enter your name", inputs = new IInputData[] { new DropdownData() { options = new List <Dropdown.OptionData>() { new Dropdown.OptionData("Mr."), new Dropdown.OptionData("Ms."), new Dropdown.OptionData("Mrs.") }, onValueChanged = (value) => { dropdownOption = value; } }, new InputFieldData() { onEndEdit = (value) => { var prefix = ""; switch (dropdownOption) { case 0: prefix = "Mr."; break; case 1: prefix = "Ms."; break; case 2: prefix = "Mrs."; break; } name = prefix + " " + value; } } } }); changeName.AddButton(new ButtonData() { text = "Cancel", onClick = () => { changeName.Close(); } }); changeName.AddButton(new ButtonData() { text = "Ok", onClick = () => { this.name = name; changeName.Close(); var success = UserInterface.Instance.CreateAlert(new AlertData() { title = "Name", message = "Name changed" }); success.AddButton(new ButtonData() { text = "Ok", onClick = () => { success.Close(); } }); } }); } if (Input.GetKeyDown(KeyCode.B)) { var things = new BoolThing[10]; for (var i = 0; i < things.Length; i++) { things[i] = new BoolThing() { name = "Thing " + i, value = i % 2 == 0 }; } var checklist = UserInterface.Instance.CreateList(new ListData() { title = "Toggle List" }); checklist.AddButton(new ButtonData() { text = "Cancel", onClick = () => { checklist.Close(); } }); checklist.AddButton(new ButtonData() { text = "Done", onClick = () => { foreach (var thing in things) { Debug.Log(thing.name + " is " + thing.value); } checklist.Close(); } }); foreach (var thing in things) { checklist.AddToggle(new ToggleData() { text = thing.name, isOn = thing.value, onValueChanged = (value) => { thing.value = value; } }); } } if (Input.GetKeyDown(KeyCode.C)) { var things = new BoolThing[10]; for (var i = 0; i < things.Length; i++) { things[i] = new BoolThing() { name = "Thing " + i, value = false }; } var radiolist = UserInterface.Instance.CreateList(new ListData() { title = "Radio List", message = "This is a message" }); radiolist.AddButton(new ButtonData() { text = "Cancel", onClick = () => { radiolist.Close(); } }); radiolist.AddButton(new ButtonData() { text = "Done", onClick = () => { foreach (var thing in things) { Debug.Log(thing.name + " is " + thing.value); } radiolist.Close(); } }); foreach (var thing in things) { radiolist.AddRadio(new RadioData() { text = thing.name, isOn = thing.value, onValueChanged = (value) => { thing.value = value; } }); } } }