summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/battle.c')
-rw-r--r--src/map/battle.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 634b04a70..6b46a357e 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -1617,6 +1617,7 @@ static struct Damage battle_calc_pc_weapon_attack(
int damage,damage2,damage3=0,damage4=0,type,div_,blewcount=skill_get_blewcount(skill_num,skill_lv);
int flag,skill,dmg_lv = 0;
int t_mode=0,t_race=0,t_size=1,s_race=7,s_ele=0;
+ int t_race2=0;
struct status_change *sc_data,*t_sc_data;
short *sc_count;
short *option, *opt1, *opt2;
@@ -1644,6 +1645,7 @@ static struct Damage battle_calc_pc_weapon_attack(
option=status_get_option(src); //��Ƃ��y�R�Ƃ��J�[�g�Ƃ�
opt1=status_get_opt1(src); //�Ή��A�����A�X�^���A�����A�È�
opt2=status_get_opt2(src); //�ŁA�􂢁A���فA�ÈŁH
+ t_race2=status_get_race2(target);
if(skill_num != CR_GRANDCROSS) //�O�����h�N���X�łȂ��Ȃ�
sd->state.attack_type = BF_WEAPON; //�U���^�C�v�͕���U��
@@ -2517,17 +2519,20 @@ static struct Damage battle_calc_pc_weapon_attack(
cardfix=cardfix*(100+sd->addrace[t_race])/100; // �푰�ɂ��_���[�W�C��
cardfix=cardfix*(100+sd->addele[t_ele])/100; // �����ɂ��_���[�W�C��
cardfix=cardfix*(100+sd->addsize[t_size])/100; // �T�C�Y�ɂ��_���[�W�C��
+ cardfix=cardfix*(100+sd->addrace2[t_race2])/100;
}
else {
cardfix=cardfix*(100+sd->addrace[t_race]+sd->addrace_[t_race])/100; // �푰�ɂ��_���[�W�C��(����ɂ��lj�����)
cardfix=cardfix*(100+sd->addele[t_ele]+sd->addele_[t_ele])/100; // �����ɂ��_���[�W�C��(����ɂ��lj�����)
cardfix=cardfix*(100+sd->addsize[t_size]+sd->addsize_[t_size])/100; // �T�C�Y�ɂ��_���[�W�C��(����ɂ��lj�����)
+ cardfix=cardfix*(100+sd->addrace2[t_race2]+sd->addrace2_[t_race2])/100;
}
}
else { //�|��
cardfix=cardfix*(100+sd->addrace[t_race]+sd->arrow_addrace[t_race])/100; // �푰�ɂ��_���[�W�C��(�|��ɂ��lj�����)
cardfix=cardfix*(100+sd->addele[t_ele]+sd->arrow_addele[t_ele])/100; // �����ɂ��_���[�W�C��(�|��ɂ��lj�����)
cardfix=cardfix*(100+sd->addsize[t_size]+sd->arrow_addsize[t_size])/100; // �T�C�Y�ɂ��_���[�W�C��(�|��ɂ��lj�����)
+ cardfix=cardfix*(100+sd->addrace2[t_race2])/100;
}
if(t_mode & 0x20) { //�{�X
if(!sd->state.arrow_atk) { //�|��U���ȊO�Ȃ�
@@ -2567,6 +2572,7 @@ static struct Damage battle_calc_pc_weapon_attack(
cardfix=cardfix*(100+sd->addrace_[t_race])/100; // �푰�ɂ��_���[�W�C������
cardfix=cardfix*(100+sd->addele_[t_ele])/100; // �� ���ɂ��_���[�W�C������
cardfix=cardfix*(100+sd->addsize_[t_size])/100; // �T�C�Y�ɂ��_���[�W�C������
+ cardfix=cardfix*(100+sd->addrace2_[t_race2])/100;
if(t_mode & 0x20) //�{�X
cardfix=cardfix*(100+sd->addrace_[10])/100; //�{�X�����X�^�[�ɒlj��_���[�W����
else
@@ -2580,8 +2586,8 @@ static struct Damage battle_calc_pc_weapon_attack(
}
}
if(!no_cardfix)
-
damage2=damage2*cardfix/100;
+
//�J�[�h�␳�ɂ�鍶��_���[�W����
//�J�[�h�ɂ��_���[�W��������(����)�����܂�
@@ -2629,14 +2635,14 @@ static struct Damage battle_calc_pc_weapon_attack(
}
if(t_sc_data[SC_ASSUMPTIO].timer != -1){ //�A�X���v�e�B�I
if(!map[target->m].flag.pvp){
- damage=damage/3;
- damage2=damage2/3;
- }else{
- damage=damage/2;
- damage2=damage2/2;
+ damage=damage/3;
+ damage2=damage2/3;
+ }else{
+ damage=damage/2;
+ damage2=damage2/2;
+ }
}
}
- }
//�ΏۂɃX�e�[�^�X�ُ킪����ꍇ�̃_���[�W���Z���������܂�
if(damage < 0) damage = 0;