Skip to content

Commit

Permalink
Rebalance of PR_SUFFRAGIUM (Suffragium)
Browse files Browse the repository at this point in the history
- Now affects all nearby party members (Range: 18 cells)
- Now casts on Self instead of Target
- Effect reduced: 15%/30%/45% -> 10%/15%/20% cast time reduction
- Duration changed:
   - Old: 30s/20s/10s or when you cast a skill
   - New: 60s (no longer ends when you cast a skill)
- SP cost increased: 8 SP -> 45/57/69
- 0.5s fixed casting time added
- 1s variable casting time added
- Global delay of skills reduced: 2s -> 1s
- 30s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
  • Loading branch information
guilherme-gm committed Oct 26, 2023
1 parent 713a469 commit ae52b25
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 21 deletions.
39 changes: 20 additions & 19 deletions db/re/skill_db.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2423,32 +2423,33 @@ skill_db: (
Range: 9
Hit: "BDT_SKILL"
SkillType: {
Friend: true
}
SkillInfo: {
NoCastSelf: true
Self: true
}
AttackType: "Magic"
DamageType: {
NoDamage: true
SplashArea: true
}
SplashRange: 18
InterruptCast: true
AfterCastActDelay: 2000
SkillData1: {
Lv1: 30000
Lv2: 20000
Lv3: 10000
Lv4: 1
Lv5: 1
Lv6: 1
Lv7: 1
Lv8: 1
Lv9: 1
Lv10: 1
}
FixedCastTime: 0
CastTime: 1_000
AfterCastActDelay: 1_000
SkillData1: 60_000 // SC_SUFFRAGIUM state duration (in miliseconds)
CoolDown: 30_000
FixedCastTime: 500
Requirements: {
SPCost: 8
SPCost: {
Lv1: 45
Lv2: 57
Lv3: 69
Lv4: 81
Lv5: 93
Lv6: 105
Lv7: 117
Lv8: 129
Lv9: 141
Lv10: 153
}
}
},
{
Expand Down
7 changes: 6 additions & 1 deletion src/map/skill.c
Original file line number Diff line number Diff line change
Expand Up @@ -7334,7 +7334,6 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list *
case PR_SLOWPOISON:
case PR_IMPOSITIO:
case PR_LEXAETERNA:
case PR_SUFFRAGIUM:
case PR_BENEDICTIO:
case LK_BERSERK:
case MS_BERSERK:
Expand All @@ -7347,6 +7346,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list *
case AS_POISONREACT:
#ifndef RENEWAL
case MC_LOUD:
case PR_SUFFRAGIUM:
#endif
case MG_ENERGYCOAT:
case MO_EXPLOSIONSPIRITS:
Expand Down Expand Up @@ -7904,6 +7904,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list *

#ifdef RENEWAL
case MC_LOUD:
case PR_SUFFRAGIUM:
#endif
case AL_ANGELUS:
case PR_MAGNIFICAT:
Expand Down Expand Up @@ -17245,7 +17246,9 @@ static int skill_castfix_sc(struct block_list *bl, int time)
time += sc->data[SC_NEEDLE_OF_PARALYZE]->val3;
if (sc->data[SC_SUFFRAGIUM]) {
time -= time * sc->data[SC_SUFFRAGIUM]->val2 / 100;
#ifndef RENEWAL
status_change_end(bl, SC_SUFFRAGIUM, INVALID_TIMER);
#endif
}
if (sc->data[SC_MEMORIZE]) {
time>>=1;
Expand Down Expand Up @@ -17325,7 +17328,9 @@ static int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id,
// Variable cast reduction bonuses
if (sc->data[SC_SUFFRAGIUM]) {
VARCAST_REDUCTION(sc->data[SC_SUFFRAGIUM]->val2);
#ifndef RENEWAL
status_change_end(bl, SC_SUFFRAGIUM, INVALID_TIMER);
#endif
}
if (sc->data[SC_MEMORIZE]) {
VARCAST_REDUCTION(50);
Expand Down
6 changes: 5 additions & 1 deletion src/map/status.c
Original file line number Diff line number Diff line change
Expand Up @@ -8406,7 +8406,11 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl
val2 = val1*10; //Actual boost (since 100% = 1000)
break;
case SC_SUFFRAGIUM:
val2 = 15 * val1; //Speed cast decrease
#ifndef RENEWAL
val2 = 15 * val1; // Cast speed decrease
#else
val2 = 5 + 5 * val1; // Variable cast speed decrease
#endif
break;
case SC_HEALPLUS:
if (val1 < 1)
Expand Down

0 comments on commit ae52b25

Please sign in to comment.