1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00

Moved defensive stance log message building to server side.

This commit is contained in:
AlexVinS
2017-07-10 04:05:36 +03:00
parent de01a797a6
commit 1fe01b7254
3 changed files with 26 additions and 25 deletions

View File

@@ -3871,11 +3871,29 @@ bool CGameHandler::makeBattleAction(BattleAction &ba)
}
case Battle::DEFEND:
{
//defensive stance //TODO: remove this bonus when stack becomes active
//defensive stance
SetStackEffect sse;
sse.effect.push_back(Bonus(Bonus::STACK_GETS_TURN, Bonus::PRIMARY_SKILL, Bonus::OTHER, 20, -1, PrimarySkill::DEFENSE, Bonus::PERCENT_TO_ALL));
sse.effect.push_back(Bonus(Bonus::STACK_GETS_TURN, Bonus::PRIMARY_SKILL, Bonus::OTHER, gs->curB->battleGetStackByID(ba.stackNumber)->valOfBonuses(Bonus::DEFENSIVE_STANCE),
-1, PrimarySkill::DEFENSE, Bonus::ADDITIVE_VALUE));
Bonus bonus1(Bonus::STACK_GETS_TURN, Bonus::PRIMARY_SKILL, Bonus::OTHER, 20, -1, PrimarySkill::DEFENSE, Bonus::PERCENT_TO_ALL);
Bonus bonus2(Bonus::STACK_GETS_TURN, Bonus::PRIMARY_SKILL, Bonus::OTHER, stack->valOfBonuses(Bonus::DEFENSIVE_STANCE),
-1, PrimarySkill::DEFENSE, Bonus::ADDITIVE_VALUE);
TBonusListPtr defence = stack->getBonuses(Selector::typeSubtype(Bonus::PRIMARY_SKILL, PrimarySkill::DEFENSE));
int oldDefenceValue = defence->totalValue();
defence->push_back(std::make_shared<Bonus>(bonus1));
defence->push_back(std::make_shared<Bonus>(bonus2));
int difference = defence->totalValue() - oldDefenceValue;
MetaString text;
stack->addText(text, MetaString::GENERAL_TXT, 120);
stack->addNameReplacement(text);
text.addReplacement(difference);
sse.battleLog.push_back(text);
sse.effect.push_back(bonus1);
sse.effect.push_back(bonus2);
sse.stacks.push_back(ba.stackNumber);
sendAndApply(&sse);