Fixed bugreport:5619 MO_EXTREMITYFIST should now consume all spirit sphere.
Fixed bugreport:5632 SR_FALLENEMPIRE should now chain with SR_GATEOFHELL and SR_TIGERCANNON and add bonus damage. Update SR_GATEOFHELL damage formula where sp has now contribution with the damage. Fixed wrong displayed status mdef. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16131 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
d098c01bd2
commit
d7bdef99e5
@ -2263,7 +2263,12 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
|
|||||||
skillratio += 150;
|
skillratio += 150;
|
||||||
break;
|
break;
|
||||||
case SR_GATEOFHELL:
|
case SR_GATEOFHELL:
|
||||||
skillratio += 500 * skill_lv -100;
|
if( sc && sc->data[SC_COMBO]
|
||||||
|
&& sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE )
|
||||||
|
skillratio += 800 * skill_lv -100;
|
||||||
|
else
|
||||||
|
skillratio += 500 * skill_lv -100;
|
||||||
|
RE_LVL_DMOD();
|
||||||
break;
|
break;
|
||||||
case SR_GENTLETOUCH_QUIET:
|
case SR_GENTLETOUCH_QUIET:
|
||||||
skillratio += 100 * skill_lv - 100 + sstatus->dex;
|
skillratio += 100 * skill_lv - 100 + sstatus->dex;
|
||||||
@ -2401,7 +2406,17 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SR_GATEOFHELL:
|
case SR_GATEOFHELL:
|
||||||
ATK_ADD (sstatus->max_hp - status_get_hp(src));//Will have to add the consumed SP part to the formula in the future. [Rytech]
|
ATK_ADD (sstatus->max_hp - status_get_hp(src));
|
||||||
|
if(sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE){
|
||||||
|
ATK_ADD ( (sstatus->sp * (1 + skill_lv * 2 / 10)) + 10 * status_get_lv(src) );
|
||||||
|
}else{
|
||||||
|
ATK_ADD ( (sstatus->max_sp * (1 + skill_lv * 2 / 10)) + 40 * status_get_lv(src) );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SR_TIGERCANNON:
|
||||||
|
if( sc && sc->data[SC_COMBO]
|
||||||
|
&& sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE )
|
||||||
|
ATK_ADDRATE(10);// +10% custom value.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -649,7 +649,7 @@ enum e_pc_permission {
|
|||||||
#define pc_rightside_atk(sd) ((sd)->battle_status.rhw.atk + (sd)->battle_status.lhw.atk + (sd)->battle_status.rhw.atk2 + (sd)->battle_status.lhw.atk2)
|
#define pc_rightside_atk(sd) ((sd)->battle_status.rhw.atk + (sd)->battle_status.lhw.atk + (sd)->battle_status.rhw.atk2 + (sd)->battle_status.lhw.atk2)
|
||||||
#define pc_leftside_def(sd) ((sd)->battle_status.def2)
|
#define pc_leftside_def(sd) ((sd)->battle_status.def2)
|
||||||
#define pc_rightside_def(sd) ((sd)->battle_status.def)
|
#define pc_rightside_def(sd) ((sd)->battle_status.def)
|
||||||
#define pc_leftside_mdef(sd) ( (sd)->battle_status.mdef2 - ((sd)->battle_status.vit>>1) )
|
#define pc_leftside_mdef(sd) ((sd)->battle_status.mdef2)
|
||||||
#define pc_rightside_mdef(sd) ((sd)->battle_status.mdef)
|
#define pc_rightside_mdef(sd) ((sd)->battle_status.mdef)
|
||||||
#else
|
#else
|
||||||
#define pc_leftside_atk(sd) ((sd)->battle_status.batk + (sd)->battle_status.rhw.atk + (sd)->battle_status.lhw.atk)
|
#define pc_leftside_atk(sd) ((sd)->battle_status.batk + (sd)->battle_status.rhw.atk + (sd)->battle_status.lhw.atk)
|
||||||
|
@ -12844,7 +12844,8 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, short
|
|||||||
req.spiritball = sd->spiritball?sd->spiritball:1;
|
req.spiritball = sd->spiritball?sd->spiritball:1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}else if( sc->data[SC_RAISINGDRAGON] && sd->spiritball > 5)
|
||||||
|
req.spiritball = sd->spiritball; // must consume all regardless of the amount required
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SR_RAMPAGEBLASTER:
|
case SR_RAMPAGEBLASTER:
|
||||||
|
@ -7156,6 +7156,8 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
|
|||||||
struct unit_data *ud = unit_bl2ud(bl);
|
struct unit_data *ud = unit_bl2ud(bl);
|
||||||
if (ud && !val3) {
|
if (ud && !val3) {
|
||||||
tick += 300 * battle_config.combo_delay_rate/100;
|
tick += 300 * battle_config.combo_delay_rate/100;
|
||||||
|
if(val1 == SR_FALLENEMPIRE)//TODO: better option for this bonus. [malufett]
|
||||||
|
tick += 1000;
|
||||||
ud->attackabletime = gettick()+tick;
|
ud->attackabletime = gettick()+tick;
|
||||||
unit_set_walkdelay(bl, gettick(), tick, 1);
|
unit_set_walkdelay(bl, gettick(), tick, 1);
|
||||||
}
|
}
|
||||||
@ -8239,6 +8241,12 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
|
|||||||
if (sd && pc_checkskill(sd, SR_DRAGONCOMBO) > 0)
|
if (sd && pc_checkskill(sd, SR_DRAGONCOMBO) > 0)
|
||||||
clif_skillinfo(sd,SR_DRAGONCOMBO, INF_SELF_SKILL);
|
clif_skillinfo(sd,SR_DRAGONCOMBO, INF_SELF_SKILL);
|
||||||
break;
|
break;
|
||||||
|
case SR_FALLENEMPIRE:
|
||||||
|
if (sd){
|
||||||
|
clif_skillinfo(sd,SR_GATEOFHELL, INF_SELF_SKILL);
|
||||||
|
clif_skillinfo(sd,SR_TIGERCANNON, INF_SELF_SKILL);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SC_RAISINGDRAGON:
|
case SC_RAISINGDRAGON:
|
||||||
@ -8618,6 +8626,10 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
|
|||||||
if (pc_checkskill(sd, SR_DRAGONCOMBO) > 0)
|
if (pc_checkskill(sd, SR_DRAGONCOMBO) > 0)
|
||||||
clif_skillinfo(sd, SR_DRAGONCOMBO, 0);
|
clif_skillinfo(sd, SR_DRAGONCOMBO, 0);
|
||||||
break;
|
break;
|
||||||
|
case SR_FALLENEMPIRE:
|
||||||
|
clif_skillinfo(sd, SR_GATEOFHELL, 0);
|
||||||
|
clif_skillinfo(sd, SR_TIGERCANNON, 0);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1196,6 +1196,13 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh
|
|||||||
casttime = 0;
|
casttime = 0;
|
||||||
temp = 1;
|
temp = 1;
|
||||||
break;
|
break;
|
||||||
|
case SR_GATEOFHELL:
|
||||||
|
case SR_TIGERCANNON:
|
||||||
|
if (sc && sc->data[SC_COMBO] &&
|
||||||
|
sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE)
|
||||||
|
casttime = 0;
|
||||||
|
temp = 1;
|
||||||
|
break;
|
||||||
case SA_SPELLBREAKER:
|
case SA_SPELLBREAKER:
|
||||||
temp = 1;
|
temp = 1;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user