mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-12 02:28:11 +02:00
* fix for #123 (I hope)
This commit is contained in:
parent
23a32ebf7a
commit
2fdc53594b
@ -306,7 +306,7 @@ public:
|
||||
static int3 convertPosition(int3 src, bool toh3m); //toh3m=true: manifest->h3m; toh3m=false: h3m->manifest
|
||||
double getHeroStrength() const;
|
||||
int getTotalStrength() const;
|
||||
ui8 getSpellSchoolLevel(const CSpell * spell) const; //returns level on which given spell would be cast by this hero
|
||||
ui8 getSpellSchoolLevel(const CSpell * spell) const; //returns level on which given spell would be cast by this hero (0 - none, 1 - basic etc)
|
||||
bool canCastThisSpell(const CSpell * spell) const; //determines if this hero can cast given spell; takes into account existing spell in spellbook, existing spellbook and artifact bonuses
|
||||
std::pair<ui32, si32> calculateNecromancy (const BattleResult &battleResult) const;
|
||||
void showNecromancyDialog (std::pair<ui32, si32> raisedStack) const;
|
||||
|
@ -1000,9 +1000,10 @@ struct StacksHealedOrResurrected : public CPackForClient //3013
|
||||
{
|
||||
ui32 stackID;
|
||||
ui32 healedHP;
|
||||
ui8 lowLevelResurrection; //in case this stack is resurrected by this heal, it will be marked as SUMMONED
|
||||
template <typename Handler> void serialize(Handler &h, const int version)
|
||||
{
|
||||
h & stackID & healedHP;
|
||||
h & stackID & healedHP & lowLevelResurrection;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -1045,6 +1045,8 @@ DLL_EXPORT void StacksHealedOrResurrected::applyGs( CGameState *gs )
|
||||
if(!changedStack->alive())
|
||||
{
|
||||
changedStack->state.insert(ALIVE);
|
||||
if(healedStacks[g].lowLevelResurrection)
|
||||
changedStack->features.push_back( makeFeature(StackFeature::SUMMONED, StackFeature::WHOLE_BATTLE, 0, 0, StackFeature::BONUS_FROM_HERO) );
|
||||
}
|
||||
int missingHPfirst = changedStack->MaxHealth() - changedStack->firstHPleft;
|
||||
int res = std::min( healedStacks[g].healedHP / changedStack->MaxHealth() , changedStack->baseAmount - changedStack->amount );
|
||||
|
@ -3184,6 +3184,7 @@ bool CGameHandler::makeCustomAction( BattleAction &ba )
|
||||
StacksHealedOrResurrected::HealInfo hi;
|
||||
hi.stackID = (*it)->ID;
|
||||
hi.healedHP = calculateHealedHP(h, s, *it);
|
||||
hi.lowLevelResurrection = h->getSpellSchoolLevel(s) <= 1;
|
||||
shr.healedStacks.push_back(hi);
|
||||
}
|
||||
if(!shr.healedStacks.empty())
|
||||
|
Loading…
Reference in New Issue
Block a user