1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-26 22:57:00 +02:00

Last part of hero specialities - support for peculiar enchants.

This commit is contained in:
DjWarmonger 2010-08-31 08:39:32 +00:00
parent 30cf8b7e77
commit 4696d89d2e
3 changed files with 47 additions and 16 deletions

View File

@ -9,11 +9,11 @@
7 1 0 0 10 7 1 0 0 10
8 2 5 27 0 8 2 5 27 0
9 6 3 41 0 9 6 3 41 0
10 8 45 0 0 10 8 0 45 0
11 3 3 20 0 11 3 3 20 0
12 1 0 0 8 12 1 0 0 8
13 2 5 11 0 13 2 5 11 0
14 8 48 0 0 14 8 0 48 0
15 10 350 6 0 15 10 350 6 0
16 2 5 23 0 16 2 5 23 0
17 1 0 0 16 17 1 0 0 16
@ -23,7 +23,7 @@
21 1 0 0 18 21 1 0 0 18
22 1 0 0 24 22 1 0 0 24
23 2 5 2 0 23 2 5 2 0
24 8 55 1 0 24 8 0 55 1
25 3 3 37 0 25 3 3 37 0
26 2 5 24 0 26 2 5 24 0
27 2 5 27 0 27 2 5 27 0
@ -45,7 +45,7 @@
43 7 0 51 0 43 7 0 51 0
44 1 0 0 34 44 1 0 0 34
45 3 3 19 0 45 3 3 19 0
46 8 53 0 0 46 8 0 53 0
47 10 350 6 0 47 10 350 6 0
48 1 0 0 46 48 1 0 0 46
49 1 0 0 52 49 1 0 0 52
@ -58,9 +58,9 @@
56 2 5 24 0 56 2 5 24 0
57 3 3 22 0 57 3 3 22 0
58 2 5 8 1 58 2 5 8 1
59 8 45 0 0 59 8 0 45 0
60 10 1 3 0 60 10 1 3 0
61 8 43 0 0 61 8 0 43 0
62 2 5 25 0 62 2 5 25 0
63 3 3 21 0 63 3 3 21 0
64 1 0 0 58 64 1 0 0 58
@ -76,7 +76,7 @@
74 2 5 25 0 74 2 5 25 0
75 2 5 11 1 75 2 5 11 1
76 3 39 0 3 76 3 39 0 3
77 8 46 0 0 77 8 0 46 0
78 2 5 12 0 78 2 5 12 0
79 10 350 6 0 79 10 350 6 0
80 1 0 0 72 80 1 0 0 72
@ -94,7 +94,7 @@
92 2 5 11 1 92 2 5 11 1
93 3 3 23 0 93 3 3 23 0
94 10 1 4 0 94 10 1 4 0
95 8 46 0 0 95 8 0 46 0
96 1 0 0 94 96 1 0 0 94
97 1 0 0 146 97 1 0 0 146
98 1 0 0 88 98 1 0 0 88
@ -106,8 +106,8 @@
105 2 5 25 0 105 2 5 25 0
106 1 0 0 90 106 1 0 0 90
107 2 5 2 0 107 2 5 2 0
108 8 53 0 0 108 8 0 53 0
109 8 44 0 0 109 8 0 44 0
110 2 5 25 0 110 2 5 25 0
111 2 5 11 1 111 2 5 11 1
112 10 1 5 0 112 10 1 5 0
@ -122,7 +122,7 @@
121 2 5 8 1 121 2 5 8 1
122 2 2 5 1 122 2 2 5 1
123 2 5 27 1 123 2 5 27 1
124 8 46 0 0 124 8 0 46 0
125 2 5 25 0 125 2 5 25 0
126 2 5 24 0 126 2 5 24 0
127 2 5 11 1 127 2 5 11 1
@ -145,11 +145,11 @@
134 4 2 3 114 134 4 2 3 114
135 4 2 1 115 135 4 2 1 115
136 5 100 13 0 136 5 100 13 0
137 8 53 0 0 137 8 0 53 0
138 5 50 15 0 138 5 50 15 0
139 8 46 0 0 139 8 0 46 0
140 8 43 0 0 140 8 0 43 0
141 8 47 0 0 141 8 0 47 0
142 10 350 6 0 142 10 350 6 0
143 10 350 6 0 143 10 350 6 0
144 12 2 0 0 144 12 2 0 0

View File

@ -1102,7 +1102,8 @@ void CGHeroInstance::initObj()
break; break;
case 8://peculiar spells - enchantments case 8://peculiar spells - enchantments
bonus.type = Bonus::SPECIAL_PECULIAR_ENCHANT; bonus.type = Bonus::SPECIAL_PECULIAR_ENCHANT;
bonus.subtype = it->subtype; //0, 1 for Coronius bonus.subtype = it->subtype; //spell id
bonus.additionalInfo = it->additionalinfo;//0, 1 for Coronius
speciality.bonuses.push_back (bonus); speciality.bonuses.push_back (bonus);
break; break;
case 9://upgrade creatures case 9://upgrade creatures

View File

@ -758,6 +758,31 @@ const Bonus * CStack::getEffect( ui16 id, int turn /*= 0*/ ) const
void CStack::stackEffectToFeature(BonusList & sf, const Bonus & sse) void CStack::stackEffectToFeature(BonusList & sf, const Bonus & sse)
{ {
si32 power = VLC->spellh->spells[sse.id].powers[sse.val]; si32 power = VLC->spellh->spells[sse.id].powers[sse.val];
Bonus * bonus = getBonus(Selector::typeSybtype(Bonus::SPECIAL_PECULIAR_ENCHANT, sse.id));
if (bonus)
{
switch(bonus->additionalInfo)
{
case 0: //normal
switch(type->level)
{
case 1: case 2:
power += 3; //it doesn't necessarily make sense for some spells, use it wisely
break;
case 3: case 4:
power += 2;
break;
case 5: case 6:
power += 1;
break;
}
break;
case 1: //only Coronius as yet
power = std::max(5 - type->level, 0);
break;
}
}
switch(sse.id) switch(sse.id)
{ {
case 27: //shield case 27: //shield
@ -860,6 +885,11 @@ void CStack::stackEffectToFeature(BonusList & sf, const Bonus & sse)
sf.back().id = sse.id; sf.back().id = sse.id;
break; break;
case 55: //slayer case 55: //slayer
if (bonus) //Coronius
{
sf.push_back(featureGenerator(Bonus::PRIMARY_SKILL, PrimarySkill::ATTACK, power, sse.turnsRemain));
sf.back().id = sse.id;
}
sf.push_back(featureGenerator(Bonus::SLAYER, 0, sse.val, sse.turnsRemain)); sf.push_back(featureGenerator(Bonus::SLAYER, 0, sse.val, sse.turnsRemain));
sf.back().id = sse.id; sf.back().id = sse.id;
break; break;