Skip to content

Commit

Permalink
Rebalance of PR_IMPOSITIO (Impositio Manus)
Browse files Browse the repository at this point in the history
- Now affects all nearby party members (Rangee: 18 cells)
- Now casts on Self instead of Target
- Effect changed:
  - Old: ATK +(5 x SkillLevel)
  - New: ATK/MATK +(5 x SkillLevel)
- Lower level buffs does not replace an active, higher level, one
- SP cost increased:
  - Old: 10 + (Skill Level x 3)
  - New: 56 + (Skill Level x 3)
- Duration increased:  60s -> 120s
- Fixed casting time added: 0.5s
- Variable casting time added: 1s
- Global delay reduced: 3s -> 1s
- Cooldown added: 30s

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
  • Loading branch information
guilherme-gm committed Oct 26, 2023
1 parent ae52b25 commit d93844e
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 18 deletions.
4 changes: 4 additions & 0 deletions db/re/sc_config.conf
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,10 @@ SC_IMPOSITIO: {
Buff: true
NoMagicBlocked: true
}
CalcFlags: {
Batk: true
Matk: true
}
Icon: "SI_IMPOSITIO"
Skill: "PR_IMPOSITIO"
}
Expand Down
33 changes: 18 additions & 15 deletions db/re/skill_db.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2383,34 +2383,37 @@ skill_db: (
StatusChange: "SC_IMPOSITIO"
Description: "Impositio Manus"
MaxLevel: 5
Range: 9
Hit: "BDT_SKILL"
SkillType: {
Friend: true
Self: true
}
SkillInfo: {
BlockedByStasis: true
}
AttackType: "Magic"
DamageType: {
NoDamage: true
SplashArea: true
}
SplashRange: 18
InterruptCast: true
AfterCastActDelay: 3000
SkillData1: 60000
FixedCastTime: 0
AfterCastActDelay: 1_000
SkillData1: 120_000 // Buff duration (in miliseconds)
FixedCastTime: 500
CastTime: 1_000
CoolDown: 30_000
Requirements: {
SPCost: {
Lv1: 13
Lv2: 16
Lv3: 19
Lv4: 22
Lv5: 25
Lv6: 28
Lv7: 31
Lv8: 34
Lv9: 37
Lv10: 40
Lv1: 59
Lv2: 62
Lv3: 65
Lv4: 68
Lv5: 71
Lv6: 74
Lv7: 77
Lv8: 80
Lv9: 83
Lv10: 86
}
}
},
Expand Down
2 changes: 0 additions & 2 deletions src/map/battle.c
Original file line number Diff line number Diff line change
Expand Up @@ -881,8 +881,6 @@ static int64 battle_calc_masteryfix(struct block_list *src, struct block_list *t
#ifdef RENEWAL
if(sc->data[SC_NIBELUNGEN] && weapon)
damage += sc->data[SC_NIBELUNGEN]->val2;
if(sc->data[SC_IMPOSITIO])
damage += sc->data[SC_IMPOSITIO]->val2;
if(sc->data[SC_DRUMBATTLE]){
if(tstatus->size == SZ_SMALL)
damage += sc->data[SC_DRUMBATTLE]->val2;
Expand Down
3 changes: 3 additions & 0 deletions src/map/skill.c
Original file line number Diff line number Diff line change
Expand Up @@ -7332,7 +7332,9 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list *
break;
}
case PR_SLOWPOISON:
#ifndef RENEWAL
case PR_IMPOSITIO:
#endif
case PR_LEXAETERNA:
case PR_BENEDICTIO:
case LK_BERSERK:
Expand Down Expand Up @@ -7904,6 +7906,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list *

#ifdef RENEWAL
case MC_LOUD:
case PR_IMPOSITIO:
case PR_SUFFRAGIUM:
#endif
case AL_ANGELUS:
Expand Down
14 changes: 13 additions & 1 deletion src/map/status.c
Original file line number Diff line number Diff line change
Expand Up @@ -4431,6 +4431,8 @@ static int status_calc_buff_extra_batk(struct block_list *bl, struct status_chan
// In-game Tests (and iRO wiki) suggests SC_SHOUT ATK bonus is counted as Extra ATK
if (sc->data[SC_SHOUT] != NULL)
batk += sc->data[SC_SHOUT]->val2;
if (sc->data[SC_IMPOSITIO] != NULL)
batk += sc->data[SC_IMPOSITIO]->val2;
#endif

return cap_value(batk, 0, battle_config.batk_max);
Expand Down Expand Up @@ -4602,6 +4604,9 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int
matk += 40 + 30 * sc->data[SC_ODINS_POWER]->val1; //70 lvl1, 100lvl2
if (sc->data[SC_IZAYOI])
matk += 25 * sc->data[SC_IZAYOI]->val1;
#else // RENEWAL
if (sc->data[SC_IMPOSITIO])
matk += sc->data[SC_IMPOSITIO]->val2;
#endif
if (sc->data[SC_ZANGETSU])
matk += sc->data[SC_ZANGETSU]->val3;
Expand Down Expand Up @@ -8240,7 +8245,7 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl
#endif
break;
case SC_IMPOSITIO:
val2 = 5*val1; //watk increase
val2 = 5 * val1; // (Pre-RE) watk increase / (RE) Extra ATK / MATK increase
break;
case SC_MELTDOWN:
val2 = 100*val1; //Chance to break weapon
Expand Down Expand Up @@ -10570,8 +10575,15 @@ static bool status_end_sc_before_start(struct block_list *bl, struct status_data
status_change_end(bl, SC_INVINCIBLE, INVALID_TIMER);
break;
case SC_MAGICPOWER:
status_change_end(bl, type, INVALID_TIMER);
break;
case SC_IMPOSITIO:
#ifndef RENEWAL
status_change_end(bl, type, INVALID_TIMER);
#else
if (sc->data[type] == NULL || val1 >= sc->data[type]->val1)
status_change_end(bl, type, INVALID_TIMER);
#endif
break;
case SC_SUNSTANCE:
case SC_LUNARSTANCE:
Expand Down

0 comments on commit d93844e

Please sign in to comment.