comparison Player.cpp @ 1560:a0cd6465ae0d

Player::CalculateIncommingDamage, liches shouldn't be immune to damage if above 200 resistance to it
author Grumpy7
date Sun, 08 Sep 2013 01:03:04 +0200
parents 1f3f01d39300
children f8c15e45de7e
comparison
equal deleted inserted replaced
1559:1f3f01d39300 1560:a0cd6465ae0d
1347 1347
1348 lastOpenedSpellbookPage = 0; 1348 lastOpenedSpellbookPage = 0;
1349 } 1349 }
1350 1350
1351 //----- (0048C6F6) -------------------------------------------------------- 1351 //----- (0048C6F6) --------------------------------------------------------
1352 bool Party::AddItemToParty(ItemGen *pItem) 1352 bool Party::AddItemToParty(ItemGen *pItem) //TODO move to party.cpp
1353 { 1353 {
1354 unsigned int v2; // eax@1 1354 unsigned int v2; // eax@1
1355 char *v5; // eax@8 1355 char *v5; // eax@8
1356 Texture *v7; // ebx@10 1356 Texture *v7; // ebx@10
1357 signed int v8; // esi@10 1357 signed int v8; // esi@10
1910 int resist_value; // edi@8 1910 int resist_value; // edi@8
1911 int player_luck; // eax@21 1911 int player_luck; // eax@21
1912 signed int res_rand_divider; // ebx@2 1912 signed int res_rand_divider; // ebx@2
1913 int armor_skill; // eax@29 1913 int armor_skill; // eax@29
1914 1914
1915
1916 if ( classType == PLAYER_CLASS_LICH && (dmg_type == CHARACTER_ATTRIBUTE_RESIST_MIND || dmg_type == CHARACTER_ATTRIBUTE_RESIST_BODY || dmg_type == CHARACTER_ATTRIBUTE_RESIST_SPIRIT )) //TODO: determine if spirit resistance should be handled by body res. modifier
1917 return 0;
1918
1915 resist_value = 0; 1919 resist_value = 0;
1916 switch(dmg_type) 1920 switch(dmg_type)
1917 { 1921 {
1918 case DMGT_FIRE: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE); break; 1922 case DMGT_FIRE: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE); break;
1919 case DMGT_ELECTR: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_AIR); break; 1923 case DMGT_ELECTR: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_AIR); break;
1920 case DMGT_COLD: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_WATER); break; 1924 case DMGT_COLD: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_WATER); break;
1921 case DMGT_EARTH: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH); break; 1925 case DMGT_EARTH: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH); break;
1922 1926
1923 case DMGT_SPIRIT: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_SPIRIT);break; 1927 case DMGT_SPIRIT: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_SPIRIT);break;
1924 case DMGT_MIND: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_MIND); break; 1928 case DMGT_MIND: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_MIND); break;
1925 case DMGT_BODY: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_BODY); break; 1929 case DMGT_BODY: resist_value = GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_BODY); break;
1926 } 1930 }
1927 1931
1928 if ( classType == PLAYER_CLASS_LICH && resist_value >= 200 )
1929 return 0;
1930 player_luck = GetActualLuck(); 1932 player_luck = GetActualLuck();
1931 res_rand_divider = GetParameterBonus(player_luck) + resist_value + 30; 1933 res_rand_divider = GetParameterBonus(player_luck) + resist_value + 30;
1932 1934
1933 if ( GetParameterBonus(player_luck) + resist_value > 0 ) 1935 if ( GetParameterBonus(player_luck) + resist_value > 0 )
1934 { 1936 {