Maxed out item rolls now show up in a different color. Release Build 8012.
This commit is contained in:
parent
3f352eeeeb
commit
da1774bfdd
@ -72,6 +72,7 @@ ItemEnhancementFunctionPrimingData Item::enhanceFunctionPrimed("CanEnhanceItem()
|
||||
std::vector<std::shared_ptr<Item>>ItemInfo::craftableConsumables;
|
||||
std::vector<std::string>ItemSortRules::primarySort;
|
||||
std::vector<std::string>ItemSortRules::secondarySort;
|
||||
Stats Stats::NO_MAX_HIGHLIGHT;
|
||||
|
||||
ItemInfo::ItemInfo()
|
||||
:customProps({nullptr,nullptr}),img(nullptr){}
|
||||
@ -653,10 +654,10 @@ const std::string Item::Description(CompactText compact)const{
|
||||
if(IsEquippable()){
|
||||
if(HasRandomizedStats()){
|
||||
description+='\n';
|
||||
description+=randomizedStats.GetStatsString();
|
||||
description+=randomizedStats.GetStatsString(it->GetMaxStats());
|
||||
}
|
||||
description+='\n';
|
||||
description+=GetStats().GetStatsString(compact);
|
||||
description+=GetStats().GetStatsString(Stats::NO_MAX_HIGHLIGHT,compact);
|
||||
if(ItemSet()){
|
||||
const::ItemSet*const set=ItemSet().value();
|
||||
if(compact==COMPACT){
|
||||
@ -676,7 +677,7 @@ const std::string Item::Description(CompactText compact)const{
|
||||
description+="\n";
|
||||
}
|
||||
}
|
||||
description+="("+std::to_string(pieceCount)+"): "+bonuses.GetStatsString(compact)+"#FFFFFF";
|
||||
description+="("+std::to_string(pieceCount)+"): "+bonuses.GetStatsString(Stats::NO_MAX_HIGHLIGHT,compact)+"#FFFFFF";
|
||||
first=false;
|
||||
}
|
||||
}
|
||||
@ -961,7 +962,7 @@ const std::map<ItemSet,int>Inventory::GetEquippedItemSets(){
|
||||
return setCounts;
|
||||
}
|
||||
|
||||
const std::string Stats::GetStatsString(CompactText compact)const{
|
||||
const std::string Stats::GetStatsString(const Stats&maxStats,CompactText compact)const{
|
||||
std::string description="";
|
||||
for(bool first=true;const auto&[attr,val]:attributes){
|
||||
if(!first){
|
||||
@ -975,7 +976,14 @@ const std::string Stats::GetStatsString(CompactText compact)const{
|
||||
if(attr.ShowAsDecimal()){
|
||||
statNumber=std::format("{:.2f}",val);
|
||||
}
|
||||
description+=std::string(attr.Name())+": "+statNumber+(attr.DisplayAsPercent()?"%":"");
|
||||
|
||||
std::string col="";
|
||||
if(maxStats.attributes.count(attr)&&int(val)>=int(maxStats.attributes.at(attr))){
|
||||
Pixel shimmeringCol=PixelLerp({255,196,60},{254,217,133},sin((70*game->GetRuntime())/2.f+0.5f));
|
||||
col=util::PixelToHTMLColorCode(shimmeringCol);
|
||||
}
|
||||
|
||||
description+=col+std::string(attr.Name())+": "+statNumber+(attr.DisplayAsPercent()?"%":"")+"#FFFFFF";
|
||||
first=false;
|
||||
}
|
||||
return description;
|
||||
|
@ -80,6 +80,7 @@ using enum CompactText;
|
||||
struct Stats:ItemAttributable{
|
||||
static safemap<int,float>maxDamageReductionTable;
|
||||
static void InitializeDamageReductionTable();
|
||||
static Stats NO_MAX_HIGHLIGHT;
|
||||
public:
|
||||
inline static const float&GetDamageReductionPct(int defense){
|
||||
return maxDamageReductionTable.at(std::clamp(defense,0,1000));
|
||||
@ -105,7 +106,7 @@ public:
|
||||
const size_t size()const{
|
||||
return attributes.size();
|
||||
}
|
||||
const std::string GetStatsString(CompactText compact=NON_COMPACT)const;
|
||||
const std::string GetStatsString(const Stats&maxStats,CompactText compact=NON_COMPACT)const;
|
||||
friend const bool operator==(const Stats&lhs,const Stats&rhs){return lhs.attributes==rhs.attributes;}
|
||||
};
|
||||
|
||||
|
@ -39,7 +39,7 @@ All rights reserved.
|
||||
#define VERSION_MAJOR 0
|
||||
#define VERSION_MINOR 5
|
||||
#define VERSION_PATCH 0
|
||||
#define VERSION_BUILD 7998
|
||||
#define VERSION_BUILD 8012
|
||||
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
|
@ -72,6 +72,14 @@ float util::lerp(float n1,float n2,double t){
|
||||
return float(n1*(1-t)+n2*t);
|
||||
}
|
||||
|
||||
std::string util::PixelToHTMLColorCode(const Pixel&col){
|
||||
std::string hexCode=std::format("#{:2x}{:2x}{:2x}",col.r,col.g,col.b);
|
||||
for(char&c:hexCode){
|
||||
c=toupper(c);
|
||||
}
|
||||
return hexCode;
|
||||
}
|
||||
|
||||
std::string util::timerStr(float time){
|
||||
int seconds=int(time);
|
||||
int hours=seconds/3600;
|
||||
|
@ -53,6 +53,7 @@ namespace olc::util{
|
||||
float degToRad(float deg);
|
||||
float radToDeg(float rad);
|
||||
float lerp(float n1,float n2,double t);
|
||||
std::string PixelToHTMLColorCode(const Pixel&col);
|
||||
std::string timerStr(float time);
|
||||
std::string WrapText(PixelGameEngine*pge,std::string str,int width,bool proportional,vd2d scale);
|
||||
std::u32string WrapText(PixelGameEngine*pge,std::u32string str,int width,Font&font,vd2d scale);
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user