Fixes issues with retrieving name and description of enhanced abilities. Regular abilities do not display their name proper atm. Release Build 12159.
All checks were successful
Emscripten Build / Build_and_Deploy_Web_Build (push) Successful in 7m7s
All checks were successful
Emscripten Build / Build_and_Deploy_Web_Build (push) Successful in 7m7s
This commit is contained in:
parent
8c8567017c
commit
1d1cb7170c
@ -68,7 +68,15 @@ const bool Ability::operator==(const Ability&a)const{
|
||||
return name==a.name&&isOriginalAbility==a.isOriginalAbility;
|
||||
}
|
||||
|
||||
const std::string Ability::GetName()const{
|
||||
const std::string_view Ability::GetName()const{
|
||||
return name;
|
||||
}
|
||||
|
||||
const std::string_view Ability::GetDescription()const{
|
||||
return description;
|
||||
}
|
||||
|
||||
const std::string Ability::GetNameWithPlayerModifiers()const{
|
||||
std::string prefixName{};
|
||||
std::string newName{};
|
||||
std::string suffixName{};
|
||||
@ -83,16 +91,16 @@ const std::string Ability::GetName()const{
|
||||
return std::format("{}{}{}",prefixName,newName,suffixName);
|
||||
}
|
||||
|
||||
const std::string_view Ability::GetDescription()const{
|
||||
const std::string Ability::GetDescriptionWithPlayerModifiers()const{
|
||||
std::string prefixDescription{};
|
||||
std::string newDescription{};
|
||||
std::string suffixDescription{};
|
||||
for(const auto&enchant:ItemEnchantInfo::GetAllEnchantsAffectingAbility(name)){
|
||||
const ItemEnchantInfo::AbilityDescriptionModifiers&modifiers{enchant.get().GetModifiers()};
|
||||
if(prefixDescription.length()>0&&modifiers.preName)prefixDescription+=" ";
|
||||
if(prefixDescription.length()>0&&modifiers.preDescription)prefixDescription+=" ";
|
||||
prefixDescription+=modifiers.preDescription.value_or("");
|
||||
newDescription=modifiers.newDescription.value_or(name);
|
||||
if(suffixDescription.length()>0&&modifiers.preName)suffixDescription+=" ";
|
||||
newDescription=modifiers.newDescription.value_or(description);
|
||||
if(suffixDescription.length()>0&&modifiers.preDescription)suffixDescription+=" ";
|
||||
suffixDescription+=modifiers.postDescription.value_or("");
|
||||
}
|
||||
return std::format("{}{}{}",prefixDescription,newDescription,suffixDescription);
|
||||
|
@ -94,6 +94,9 @@ struct Ability{
|
||||
Ability();
|
||||
//NOTE: icon expects the actual name relative to the "Ability Icons" directory for this constructor!
|
||||
Ability(std::string name,std::string shortName,std::string description,float cooldownTime,int manaCost,InputGroup*input,std::string icon,Pixel barColor1=VERY_DARK_RED,Pixel barColor2=DARK_RED,PrecastData precastInfo={},bool canCancelCast=false);
|
||||
const std::string GetName()const;
|
||||
const std::string_view GetName()const;
|
||||
const std::string_view GetDescription()const;
|
||||
|
||||
const std::string GetNameWithPlayerModifiers()const;
|
||||
const std::string GetDescriptionWithPlayerModifiers()const;
|
||||
};
|
@ -2183,8 +2183,8 @@ void AiL::RenderCooldowns(){
|
||||
if(HasEnchantWithAbilityAffected)abilityTitleCol=Pixel{0xFFCD00};
|
||||
if(a.itemAbility)abilityTitleCol=Pixel{0xA2FF00};
|
||||
Ability::tooltipTitleCol=abilityTitleCol;
|
||||
Ability::tooltipTitle=std::format("{}",a.GetName());
|
||||
Ability::tooltipText=std::format("{}",a.GetDescription());
|
||||
Ability::tooltipTitle=std::format("{}",a.GetNameWithPlayerModifiers());
|
||||
Ability::tooltipText=std::format("{}",a.GetDescriptionWithPlayerModifiers());
|
||||
}
|
||||
}else heldDownAnyAbilityKey=true;
|
||||
#pragma endregion
|
||||
|
@ -120,17 +120,16 @@ void ItemEnchantInfo::Initialize(){
|
||||
ItemEnchantInfo::AbilityDescriptionModifiers modifiers;
|
||||
if(enchant.HasProperty("Ability Settings")){
|
||||
for(const auto&[key,size]:enchant["Ability Settings"]){
|
||||
if(key=="Pre-Name")modifiers.preName=key;
|
||||
else if(key=="Post-Name")modifiers.postName=key;
|
||||
else if(key=="Name")modifiers.newName=key;
|
||||
else if(key=="Pre-Description")modifiers.preDescription=key;
|
||||
else if(key=="Post-Description")modifiers.postDescription=key;
|
||||
else if(key=="Description")modifiers.newDescription=key;
|
||||
else ERR(std::format("Invalid Ability Setting key {} detected!",key));
|
||||
if(key=="Pre-Name")modifiers.preName=enchant["Ability Settings"][key].GetString();
|
||||
else if(key=="Post-Name")modifiers.postName=enchant["Ability Settings"][key].GetString();
|
||||
else if(key=="Name")modifiers.newName=enchant["Ability Settings"][key].GetString();
|
||||
else if(key=="Pre-Description")modifiers.preDescription=enchant["Ability Settings"][key].GetString();
|
||||
else if(key=="Post-Description")modifiers.postDescription=enchant["Ability Settings"][key].GetString();
|
||||
else if(key=="Description")modifiers.newDescription=enchant["Ability Settings"][key].GetString();
|
||||
}
|
||||
}
|
||||
|
||||
auto IsRequiredKey=[](const std::string_view key){return key=="Description"||key=="Affects"||key.starts_with("Stat Modifier[");};
|
||||
auto IsRequiredKey=[](const std::string_view key){return key=="Description"||key=="Affects"||key.starts_with("Stat Modifier[")||key.starts_with("Ability Settings");};
|
||||
|
||||
for(auto&[key,size]:enchant){
|
||||
if(IsRequiredKey(key))continue;
|
||||
|
@ -39,7 +39,7 @@ All rights reserved.
|
||||
#define VERSION_MAJOR 1
|
||||
#define VERSION_MINOR 3
|
||||
#define VERSION_PATCH 0
|
||||
#define VERSION_BUILD 12153
|
||||
#define VERSION_BUILD 12159
|
||||
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user