#W# SoS's: If you have a sextant in your backpack the SoS will give you the X,Y location.

This commit is contained in:
WarrentyExpired 2026-11-03 14:10:22 -05:00
parent 65d8953956
commit 401df108b6
3 changed files with 64 additions and 13 deletions

View file

@ -1,7 +1,17 @@
Snack Pack
- Holds food and water
- Double click eats and drinks.
Items
- Snack Pack
- Holds food and water
- Double click eats and drinks.
- Miners Helmet
- Increases Ore amounts/upgrade node
- Sets max nightsight
Scrolls
- Item that raises your total skill cap by 1 up to 720
- Power scrolls but 1 point at a time.
Night Sight
- Night sight levels 1-3
Lesser, normal, greater
- Night sight increase trap detection
- Night sight increases chance to find more ore/upgrade ore node.

View file

@ -36,8 +36,9 @@ Command
- [BuildWorld - Opens a new buldworld gump
- [bandself - Applies a bandage to the player. Checks for bandages in the players pack
also won't reapply if a bandage is already ticking.
- [Bounties - Opens a gump showing your current bounty process.
Dungeon Crates/Bags
- Bags are always trapped. They have level 0-3 loot
- Bags are always trapped. They have level 1-3 loot
- Chests are locked and trapped. They have level 4-6 loot
ThiefPedestals
- Require Snooping and Stealing to take the bag. They are random level 0-6. They are trapped.
@ -57,12 +58,39 @@ Settings.cs/ValidSettings.cs
- There is a Settings.cs file that allows you to change some things.
- The ValidSettings.cs sets hard limits for some of the settings.
Bandages HoT/Healing active skill
- Bandages now if a small amount of hp over the druation of the bandage.
Doesn't cure poison. It subtracts that amount from the end total healed.
- Heal skill is now activatable. Instantly cure poison/bleed, but has a 15 second
skill timer lock.
Bounty Board
- Towns now have a Bounty house, vendor, and bounty board. The board has different levels
of bounties depending on the players fame. Higher fame opens higher bounties.
- Players collect bounty coins that can be spent with the bounty vendor.
Automount/Dismount
Stats that are collected from creation
- Players are automatically dismount and remounted when they enter certian regions.
Dungeons and Town businesses.
Stats that are collected from creation of the character
- Total gold looted
- Total Deaths
- Spendable Monster Kill points
- Lifetime total Monster Kill Points
Food Changes
- 15+ hunger and thrirst give a small passive stat regen
- 5 and below a negative stat regen
Exhaustion System
- Every 200 points of damage will lower your hunger/thirst by 1
Innate weapon abilities
- You need at least 50 in weaponskill and tactics to unlock your first innate ability.
- You need at least 100 in weaponskill and tactics to unlock the second innate ability.
- There is a 10% chance to activate the ability with a 5 second cooldown.
- Each weapon class as 2 abilities. Except wreslting.
FarmSpawner
- Simple farm plot spawner. Makes setting up new farm land easier.
- Also you only need to walk over the crop to harvest it. Drops in players backpack
Spinningwheel/Loom Changes
AUtoharvest Skills
- Spinning Wheels now process the entier stack of Cotton/Flax/Wool.
- Looms now process the entire stack of thread.
Autoharvest Skills
- Lumberjacking/Mining/Fishing now automatically harvest. No need to click target repeat
Fising
- SOS's will now display the X,Y location if the player has a sextant in thier backpack

View file

@ -10,7 +10,7 @@ public partial class SOS : Item
{
// We can only speculate, but I lack of support for non-ascii arguments in localized html gumps is why this wasn't used.
// By default let's use the old gump, because we can.
private static bool UseNewMessages = false;
private static bool UseNewMessages = true;
private static Rectangle2D[] BritRegions = { new(0, 0, 5120, 4096) };
@ -200,18 +200,31 @@ public partial class SOS : Item
return;
}
int xLong = 0, yLat = 0;
int xMins = 0, yMins = 0;
bool xEast = false, ySouth = false;
string fmt;
if (Sextant.Format(loc, map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth))
// Check if the player has a Sextant anywhere in their backpack
bool hasSextant = from.Backpack != null && from.Backpack.FindItemByType(typeof(Sextant)) != null;
if (hasSextant)
{
fmt = $"{yLat}° {yMins}'{(ySouth ? "S" : "N")}, {xLong}°{xMins}'{(xEast ? "E" : "W")}";
// Player has a sextant: give exact X, Y coordinates
fmt = $"X: {loc.X}, Y: {loc.Y}";
}
else
{
fmt = "?????";
// No sextant: default to the cryptic degree format
int xLong = 0, yLat = 0;
int xMins = 0, yMins = 0;
bool xEast = false, ySouth = false;
if (Sextant.Format(loc, map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth))
{
fmt = $"{yLat}° {yMins}'{(ySouth ? "S" : "N")}, {xLong}°{xMins}'{(xEast ? "E" : "W")}";
}
else
{
fmt = "?????";
}
}
from.SendGump(new MessageGump(fmt));