v1.0.0-preview.13
Pre-releaseThis is another intermediate preview release to improve the public API of the code, this time focusing on Hero (masteries, emotes, etc.)
Masteries and (background) stories were improved to use terminology found in the game and in the GW2 wiki. Previously, names were used which could mean something else in the game or wiki, which might cause confusion.
Good news for Revenants as I fixed a few of the broken legends. Vindicator is still not working correctly, but must be fixed in the API first.
The API was previously missing mastery region names for EoD and SotO, but a recent API update rectified it. This release adds the associated region names Jade and Sky. I also changed MasteryPointsTotal.Region
from string
to the MasteryRegionName
enum. This is how the API was originally designed, but the data was silently changed from region names to expansion names. Possibly it was not an intended change as it was not documented in the API release notes. Mastery insight points in the Maps API still refer to the region name only, not the expansion name. This release contains compensating code to convert expansion names back to region names.
This release also introduces chat links creation. You can now create chat links from objects using a simple API:
var link = new ItemLink
{
ItemId = 23040
};
string chatLink = link.ToString();
You can also parse existing links, to inspect them or even update them:
var link = ItemLink.Parse("[&AgEAWgAA]");
var count = link.Count;
var newLink = link with { Count = count + 1 };
string chatLink = newLink.ToString();
I also enabled AOT compilation as of this release.
New features
- Chat links
- Added missing mastery region names (Jade and Sky)
- Added
Build.SelectedSpecializationIds()
method - Added
Build.SelectedTraitIds()
method - Added
Build.SelectedSkillIds()
method - Added
SkillBar.SelectedSkillIds()
method - Added ability to retrieve unlocked glider skins
- Enabled ahead-of-time compilation (reduces startup time)
Bug fixes
- Fixed
Build.Legends
garbage legend IDs
Breaking changes
Builds:
- Renamed
WeaponType.Speargun
toHarpoonGun
- Split
SkillBar.UtilitySkillIds
into 3 props - Split
Build.Specializations
into 3 props - Split
SelectedSpecialization.TraitIds
into 3 props - Grouped
Build.Legends
andBuild.AquatingLegends
intoSelectedLegends
- Reworked
Build.PetSkills
toPets
, it had nothing to do with skills
Dyes:
- Renamed
GetUnlockedDyesIndex
toGetUnlockedColors
- Renamed
Dye.Item
toItemId
- Renamed
DyeSlot.ColorId
toDyeId
- Split
Categories
intoHue
,Material
andColorSet
Emotes:
- Renamed
Emote.UnlockItems
toUnlockItemIds
Equipment:
- Renamed
EquipmentItem.DyeIds
toDyeColorIds
- Changed
EquipmentItem.DyeColorIds
to be an empty list instead of null - Changed
EquipmentItem.UpgradeItemIds
to be an empty list instead of null - Changed
EquipmentItem.InfusionItemIds
to be an empty list instead of null - Changed
EquipmentItem.TemplateNumbers
to be an empty list instead of null - Renamed
CombatAttribute
toAttributeName
- Renamed old attribute names like
CritDamage
to modern names likeFerocity
- Replaced
UpgradeAttributeName
withAttributeName
- Renamed
SelectedStat
toSelectedAttributeCombination
- Changed
SelectedAttributeCombination.Attributes
to aDictionary<AttributeName, int>
Exploration:
- Renamed
MapSummariesByIds
toGetMapSummariesByIds
Finishers:
- Renamed
Finisher.UnlockItems
toUnlockItemIds
- Renamed
Finisher.UnlockDetails
toLockedText
Gliders:
- Renamed
Glider
toGliderSkin
- Renamed
GliderSkin.UnlockItems
toUnlockItemIds
- Renamed
GliderSkin.DefaultDyes
toDefaultDyeColorIds
and changed toIReadOnlyList
Home:
- Renamed
GetOwnedCatsIndex
toGetUnlockedCats
- Renamed
GetUnlockedNodesIndex
toGetUnlockedNodes
Items:
- Renamed
ItemStats
toAttributeCombination
Jade bots:
- Renamed
JadeBot
toJadeBotSkin
Mail carriers:
- Renamed
MailCarrier.UnlockItems
toUnlockItemIds
- Renamed
GetOwnedMailCarriers
toGetUnlockedMailCarriers
Masteries:
- Changed the type of
MasteryPointsTotal.Region
fromstring
to theMasteryRegionName
enum - Renamed
Mastery
toMasteryTrack
- Renamed
MasteryLevel
toMastery
- Renamed
Levels
toMasteries
and converted toIReadOnlyList
- Renamed
Background
toBackgroundHref
Miniatures:
- Renamed
Minipet
toMiniature
- Renamed
Miniature.Unlock
toLockedText
Mounts:
- Renamed
GetOwnedMounts
toGetUnlockedMounts
- Renamed
GetOwnedMountSkins
toGetUnlockedMountSkins
- Renamed
Mount.Skin
toSkinIds
- Renamed
MountName.Turtle
toSiegeTurtle
- Changed
MountSkin.DyeSlots
toIReadOnlyList
Novelties:
- Renamed
GetUnlockedNoveltiesIndex
toGetUnlockedNovelties
- Renamed
Novelty.UnlockItems
toUnlockItemIds
Races:
- Renamed
Race.Skills
toSkillIds
and converted toIReadOnlyList
Background stories:
- Reorganized namespaces
- Renamed
CharacterBackstory.Backstory
toAnswerIds
- Renamed
Backstory
toBackgroundStory
everywhere else - Renamed
Question
toQuestionId
- Renamed
Answers
toAnswerIds
and converted toIReadOnlyList
- Changed
Races
andProfessions
collections in background story Q&A to not-null collections- Previously they contained a list of restrictions, or were
null
if no restrictions applied - Now the collections contain all races and professions instead of being null
- Previously they contained a list of restrictions, or were
Inventories:
- Changed
ItemSlot.UpgradeItemIds
toSuffixItemId
andSecondarySuffixItemId
- Renamed
ItemSlot.DyeIds
toDyeColorIds
- Changed
ItemSlot.DyeColorIds
to be an empty list instead of null - Changed
ItemSlot.InfusionItemIds
to be an empty list instead of null
Outfits:
- Renamed
GetUnlockedOutfitsIndex
toGetUnlockedOutfits
- Renamed
Outfit.UnlockItems
toUnlockItemIds
Pvp:
- Renamed
GetUnlockedHeroesIndex
toGetUnlockedMistChampions
- Renamed
MistChampionSkin.UnlockItems
toUnlockItemIds
Skiffs:
- Renamed
Skiff
toSkiffSkin
Story lines:
- Renamed
Season
toStoryline
- Renamed
Quest
toStoryStep
- Renamed
Story
toStoryId
- Renamed
Goal
toObjective
- Renamed
GetCharacterQuests
toGetCompletedStorySteps
- Changed
Story.Chapters
toIReadOnlyList
- Changed
StoryStep.Objectives
toIReadOnlyList
- Changed
Story.Races
to not-null collection- Previously it contained a list of restrictions, or was
null
if no restrictions applied - Now the collection contains all races instead of being null
- Previously it contained a list of restrictions, or was
Titles:
- Renamed
GetUnlockedTitlesIndex
toGetUnlockedTitles
Training:
- Reorganized namespaces
- Renamed
SkillReference
toSkillSummary
- Renamed
Specializations
toSpecializationIds
and converted toIReadOnlyList
- Changed
Weapons
dictionary key from string toWeaponType
enum - Changed
Skills
toIReadOnlyList
- Changed
Training
toIReadOnlyList
- Added an exception when duplicate skill palettes are encountered instead of arbitrarily choosing the last one
Wardrobe:
- Renamed
GetUnlockedSkinsIndex
toGetUnlockedSkins
- Changed
DyeSlotInfo
properties toIReadOnlyList
- Changed
Skin.Restrictions
list type toRaceName
Full Changelog: v1.0.0-preview.12...v1.0.0-preview.13