summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDastgir Pojee <dastgirp@gmail.com>2016-10-02 21:38:15 +0530
committerhemagx <ibrahem.h.basyone@gmail.com>2016-10-22 02:21:59 +0200
commit9930ca16f6dff79b8cb14a75c50ac269dd59c6cc (patch)
tree6798870e669b5c831157e4e1d9c6b8c472807803
parentbc70168dfbcf81f8690c8c4d8d882bf53b2e2e78 (diff)
downloadhercules-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.c3
-rw-r--r--src/map/skill.c9
-rw-r--r--src/map/status.c1
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 );