1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-01-12 02:28:11 +02:00

Battle log messages for new abilities.

Lots of fixes.
This commit is contained in:
DjWarmonger 2011-04-26 07:57:26 +00:00
parent a4d845688a
commit a73a1c2724
4 changed files with 80 additions and 23 deletions

View File

@ -2845,6 +2845,8 @@ void CBattleInterface::spellCast( const BattleSpellCast * sc )
//displaying message in console
bool customSpell = false;
bool plural = false; //add singular / plural form of creature text if this is true
int textID = 0;
if(sc->affectedCres.size() == 1)
{
std::string text = CGI->generaltexth->allTexts[195];
@ -2857,35 +2859,82 @@ void CBattleInterface::spellCast( const BattleSpellCast * sc )
{
switch(sc->id)
{
case 70: //Stone Gaze
customSpell = true;
plural = true;
textID = 558;
break;
case 71: //Poison
customSpell = true;
plural = true;
textID = 561;
break;
case 72: //Bind
customSpell = true;
text = CGI->generaltexth->allTexts[560];
boost::algorithm::replace_first(text, "%s", curInt->cb->battleGetStackByID(*sc->affectedCres.begin(), false)->getCreature()->namePl );
break; //Roots and vines bind the %s to the ground!
case 73: //Disease
customSpell = true;
plural = true;
textID = 553;
break;
case 74: //Paralyze
customSpell = true;
plural = true;
textID = 563;
break;
case 75: // Aging //TODO: hitpoints
customSpell = true;
plural = true;
textID = 551;
break;
case 78: //Dispell helpful spells
text = CGI->generaltexth->allTexts[555];
boost::algorithm::replace_first(text, "%s", curInt->cb->battleGetStackByID(*sc->affectedCres.begin())->type->namePl);
customSpell = true;
break;
//case 75: // Aging
// customSpell = true;
// break;
case 79: // Death Stare
customSpell = true;
if (sc->dmgToDisplay > 1)
if (sc->dmgToDisplay)
{
text = CGI->generaltexth->allTexts[119]; //%d %s die under the terrible gaze of the %s.
boost::algorithm::replace_first(text, "%d", boost::lexical_cast<std::string>(sc->dmgToDisplay));
boost::algorithm::replace_first(text, "%s", curInt->cb->battleGetStackByID(*sc->affectedCres.begin(), false)->getCreature()->namePl );
if (sc->dmgToDisplay > 1)
{
text = CGI->generaltexth->allTexts[119]; //%d %s die under the terrible gaze of the %s.
boost::algorithm::replace_first(text, "%d", boost::lexical_cast<std::string>(sc->dmgToDisplay));
boost::algorithm::replace_first(text, "%s", curInt->cb->battleGetStackByID(*sc->affectedCres.begin(), false)->getCreature()->namePl );
}
else
{
text = CGI->generaltexth->allTexts[118]; //One %s dies under the terrible gaze of the %s.
boost::algorithm::replace_first(text, "%s", curInt->cb->battleGetStackByID(*sc->affectedCres.begin())->type->nameSing);
}
boost::algorithm::replace_first(text, "%s", "Creatures"); //casting stack
}
else
{
text = CGI->generaltexth->allTexts[118]; //One %s dies under the terrible gaze of the %s.
boost::algorithm::replace_first(text, "%s", curInt->cb->battleGetStackByID(*sc->affectedCres.begin())->type->nameSing);
}
boost::algorithm::replace_first(text, "%s", "Creatures"); //casting stack
text = "";
break;
default:
boost::algorithm::replace_first(text, "%s", "Creature"); //TODO: better fix
}
if (plural)
{
if (curInt->cb->battleGetStackByID(*sc->affectedCres.begin())->count > 1)
{
text = CGI->generaltexth->allTexts[textID + 1];
boost::algorithm::replace_first(text, "%s", curInt->cb->battleGetStackByID(*sc->affectedCres.begin())->type->namePl);
}
else
{
text = CGI->generaltexth->allTexts[textID];
boost::algorithm::replace_first(text, "%s", curInt->cb->battleGetStackByID(*sc->affectedCres.begin())->type->nameSing);
}
}
}
if (!customSpell)
boost::algorithm::replace_first(text, "%s", CGI->spellh->spells[sc->id]->name);
console->addText(text);
if (text.size())
console->addText(text);
}
else
{

View File

@ -68,8 +68,8 @@
66 0
67 1 SP11_.DEF
68 1 SP02_.DEF
69 1 C05SPE0.DEF
70 2 SP02_.DEF SP10_.DEF
69 1 SP05_.DEF
70 0
71 1 SP01_.DEF
72 1 SP04_.DEF
73 1 SP03_.DEF

View File

@ -17,11 +17,11 @@
+ 17 MAGIC_RESISTANCE 40 0 0 //battle dwarf's magic resistance 40%
+ 20 CHANGES_SPELL_COST_FOR_ENEMY 2 0 0 //pegasus makes spell cost higher for enemy mage
+ 21 CHANGES_SPELL_COST_FOR_ENEMY 2 0 0 //silver pegasus makes spell cost higher for enemy mage
+ 22 SPELL_AFTER_ATTACK 72 0 100 //dendroids cast bind
+ 23 SPELL_AFTER_ATTACK 72 0 100 //dendroid guards cast bind
+ 24 SPELL_AFTER_ATTACK 62 0 20 //unicorns cast blind with 20% probability
+ 22 SPELL_AFTER_ATTACK 100 72 0 //dendroids cast bind
+ 23 SPELL_AFTER_ATTACK 100 72 0 //dendroid guards cast bind
+ 24 SPELL_AFTER_ATTACK 20 62 0 //unicorns cast blind with 20% probability
+ 24 SPELL_RESISTANCE_AURA 0 55 0 //unicorn
+ 25 SPELL_AFTER_ATTACK 62 0 20 //war unicorns cast blind with 20% probability
+ 25 SPELL_AFTER_ATTACK 20 62 0 //war unicorns cast blind with 20% probability
+ 25 SPELL_RESISTANCE_AURA 20 55 0 //war unicorn
+ 26 LEVEL_SPELL_IMMUNITY 3 0 0 //green dragon's spell immunity
+ 26 TWO_HEX_ATTACK_BREATH 0 0 0 //green dragon's breath

View File

@ -36,22 +36,30 @@
55 SLAYER.wav # slayer
56 FRENZY.wav # frenzy
61 FORGET.wav # forgetfulness
70 PARALYZE.wav # stone gaze - not sure
71 POISON.wav # poison
72 BIND.wav # bind
73 DISEASE.wav #
74 PARALYZE.wav #
75 AGE.wav # aging - already used (?)
76 DEATHCLD.wav # death cloud
77 LIGHTBLT.wav # thunder
78 DISPELL.wav # dispell helpful spells
79 DEATHSTR.wav # Death Stare
80 ACID.wav # Acid breath / defence piercing
#BLIND.wav
#POISON.wav
#CURE.wav
#HYPNOTIZ.wav
#DEATHCLD.wav
#DEATHBLO.wav
#DRAINLIF.wav
#DRGNSLAY.wav
#DISGUISE.wav
#DISEASE.wav
#QUIKSAND.wav
#FIRESHIE.wav fireshield when cast
#FIRESHLD.wav fireshield effect
#ANIMDEAD.wav
#ANTIMAGK.wav