diff options
author | Dastgir Pojee <dastgirp@gmail.com> | 2016-10-02 21:38:15 +0530 |
---|---|---|
committer | hemagx <ibrahem.h.basyone@gmail.com> | 2016-10-22 02:21:59 +0200 |
commit | 9930ca16f6dff79b8cb14a75c50ac269dd59c6cc (patch) | |
tree | 6798870e669b5c831157e4e1d9c6b8c472807803 | |
parent | bc70168dfbcf81f8690c8c4d8d882bf53b2e2e78 (diff) | |
download | hercules-9930ca16f6dff79b8cb14a75c50ac269dd59c6cc.tar.gz hercules-9930ca16f6dff79b8cb14a75c50ac269dd59c6cc.tar.bz2 hercules-9930ca16f6dff79b8cb14a75c50ac269dd59c6cc.tar.xz hercules-9930ca16f6dff79b8cb14a75c50ac269dd59c6cc.zip |
Implemented SU_SV_STEMSPEAR Skill.
Silvervine Steam Spear:
10% Bleeding Chance, 700% Matk at all levels.
Lv 1: Earth Magic
Lv 2: Fire Magic
Lv 3: Water Magic
Lv 4: Wind Magic
Lv 5: Ghost Magic
Base Level 30: Chance to activate skill again.
Every 30 Base Level: Increases the chance to activate skill.
-rw-r--r-- | src/map/battle.c | 3 | ||||
-rw-r--r-- | src/map/skill.c | 9 | ||||
-rw-r--r-- | src/map/status.c | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 37e06a6ba..4ad11e488 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1895,6 +1895,9 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block pc->del_charm(sd, sd->charm_count, sd->charm_type); } break; + case SU_SV_STEMSPEAR: + skillratio += 600; + break; default: battle->calc_skillratio_magic_unknown(&attack_type, src, target, &skill_id, &skill_lv, &skillratio, &flag); break; diff --git a/src/map/skill.c b/src/map/skill.c index b3cb1ae6f..7e65ddea4 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1424,6 +1424,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1 case SU_SCRATCH: sc_start2(src, bl, SC_BLOODING, (skill_lv * 3), skill_lv, src->id, skill->get_time(skill_id, skill_lv)); // TODO: What's the chance/time? break; + case SU_SV_STEMSPEAR: + sc_start2(src, bl, SC_BLOODING, 10, skill_lv, src->id, skill->get_time(skill_id, skill_lv)); + break; default: skill->additional_effect_unknown(src, bl, &skill_id, &skill_lv, &attack_type, &dmg_lv, &tick); break; @@ -4903,6 +4906,12 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1 skill->attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); break; + case SU_SV_STEMSPEAR: + skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); + if (status->get_lv(src) >= 30 && (rnd() % 100 < (int)(status->get_lv(src) / 30) + 10)) // TODO: Need activation chance. + skill->addtimerskill(src, tick + skill->get_delay(skill_id, skill_lv), bl->id, 0, 0, skill_id, skill_lv, (skill_id == SU_SV_STEMSPEAR) ? BF_MAGIC : BF_WEAPON, flag); + break; + case 0:/* no skill - basic/normal attack */ if(sd) { if (flag & 3){ diff --git a/src/map/status.c b/src/map/status.c index 0cb05432b..75eccfb38 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -726,6 +726,7 @@ void initChangeTables(void) add_sc(SU_SCRATCH, SC_BLOODING); status->set_sc(SU_STOOP, SC_SU_STOOP, SI_SU_STOOP, SCB_NONE); status->set_sc(SU_FRESHSHRIMP, SC_FRESHSHRIMP, SI_FRESHSHRIMP, SCB_NONE); + add_sc(SU_SV_STEMSPEAR, SC_BLOODING); // Elemental Spirit summoner's 'side' status changes. status->set_sc( EL_CIRCLE_OF_FIRE , SC_CIRCLE_OF_FIRE_OPTION, SI_CIRCLE_OF_FIRE_OPTION, SCB_NONE ); |