Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2-2 jobs skill rebalance - Bard/Dancer (2018 Patch/Renewal) #3279

Open
wants to merge 30 commits into
base: rebalance
Choose a base branch
from

Conversation

guilherme-gm
Copy link
Member

@guilherme-gm guilherme-gm commented Feb 9, 2024

Pull Request Prelude

Changes Proposed

The main purpose of this PR is to introduce the rebalance of Bard/Dancer job skills. This change affects Renewal-only.

On official servers this came along with rebalances of 1st, 2nd jobs and transclass too.

I am not sure whether this could be moved like that, because some skills from transclasses will not play well with the rebalanced ones.

The implementation in this PR is based on kRO and kRO zero patch notes, iRO Wiki, rAthena and divine pride info, along with some in-game testing. I can't say everything is 100% accurate because there were discrepancies between different sources, and I could not test everything in kRO, but should be quite close.

I won't list all the rebalance changes in the PR description, but it may be checked in each commit text. Also, the commits are in the same order as they appear in the references below.

Notes

  1. Musical Strike and Slinging Arrow has different info about the new Cast Time in each source. (See commit for info). I am using Divine Pride data.
  2. FrostJoker Cooldown: Sakray notes and Divine Pride says 5s. Main notes and iRO Wiki says 4s. Following 4s.
  3. Bragi duration 60s -> 180s is from 2019-12-04 and was intentionally left out: https://ro.gnjoy.com/news/notice/View.asp?BBSMode=10001&seq=7191&curpage=1
  4. Some SP Cost changes is not mentioned in iRO wiki / DP / kRO notes, but it is set in kRO Lua and divine pride.
  5. I am not 100% sure on how confusion on Rockisveil works
  6. I am not 100% sure if drum battle ATK bonus really is equip atk like MC_LOUD. but It does come as SP_ATK2.
  7. From my tests, attack bonus granted by DC_DANCINGLESSON shows in the UI right side of ATK. But in herc it does not. Since this part was not changed in the renewal rebalance, I am unsure whether Mastery was supposed to always show in the UI and we have a long term bug. I won't touch this for now and open an issue for further investigation.

Affected skills

  • BA_APPLEIDUN (Song of Lutie)
  • BA_ASSASSINCROSS (Impressive Riff)
  • BA_DISSONANCE (Unchained Serenade)
  • BA_FROSTJOKE (Unbarring Octave)
  • BA_MUSICALLESSON (Music Lessons)
  • BA_MUSICALSTRIKE (Melody Strike)
  • BA_POEMBRAGI (Magic Strings)
  • BA_WHISTLE (Perfect Tablature)
  • BD_ADAPTATION (Amp)
  • BD_DRUMBATTLEFIELD (Battle Theme)
  • BD_ENCORE (Encore)
  • BD_ETERNALCHAOS (Down Tempo)
  • BD_INTOABYSS (Power Chord)
  • BD_LULLABY (Lullaby)
  • BD_RICHMANKIM (Mental Sensing)
  • BD_RINGNIBELUNGEN (Harmonic Lick)
  • BD_ROKISWEIL (Classical Pluck)
  • BD_SIEGFRIED (Acoustic Rhythm)
  • DC_DANCINGLESSON (Dance Lessons)
  • DC_DONTFORGETME (Slow Grace)
  • DC_FORTUNEKISS (Lady Luck)
  • DC_HUMMING (Focus Ballet)
  • DC_SERVICEFORYOU (Gypsy's Kiss)
  • DC_THROWARROW (Slinging Arrow)
  • DC_UGLYDANCE (Hip Shaker)

References:

Issues addressed:
Part of #2727

#ifdef RENEWAL
case SC_POEMBRAGI:
// val1 = skill lv
val2 = val1 * 2; // Cast time reduction
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have been wondering whether we could/should/want to move these vals to SkillData2 and SkillData3 (yes, this would need to be created) instead of defining them here. (For every skill, not only bragi)

*
* - @TODO: Document other possible flag values
*/
static void skill_castend_nodamage_id_sc_song(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to start making the idea of "separate function for each skill" a thing here, since most dance/songs are very similar. But I ended up with:

  1. this one having a if for lullaby
  2. skill_castend_nodamage_id_ugly_dance having a duplicated code for most of it
  3. the caller function needing to give the target

I am open for suggestions on how I could improve that, I had a few random thoughts but didn't try too much:

  1. Moving chance to SkillData2 (but except for 1 case, it is always 100%...) -- solves the lullby part, but not ugly dance
  2. Making more functions, with their exclusive logic and those would call this one. Something like: -- solves both, but creates more functions
    • song_friend_sc --> sc_song w/ Party + chance = 100%
    • song_enemy_sc --> sc_song w/ enemy + chance = 100%
    • song_lullaby --> sc_song w/ enemy + chance = 15%
    • song_ugly_dance --> sc_song w/ enemy + special logic for flag 1

example:

static void skill_castend_nodamage_id_song_splash(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag)
{
   // ... logic for (flag & 1) == 0 ... (set used song + splash on targets)
}


static void skill_castend_nodamage_id_sc_song_on_party(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag)
{
	if ((flag & 1) == 0) {
		skill_castend_nodamage_id_song_splash(src, bl, skill_id, skill_lv, tick, flag | BCT_PARTY);
	} else {
		enum sc_type sc = skill->get_sc_type(skill_id);
		sc_start(src, bl, sc, 100, skill_lv, skill->get_time(skill_id, skill_lv), skill_id);
	}
}

static void skill_castend_nodamage_id_sc_song_on_enemy(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag)
{
	if ((flag & 1) == 0) {
		skill_castend_nodamage_id_song_splash(src, bl, skill_id, skill_lv, tick, flag | BCT_ENEMY);
	} else {
		enum sc_type sc = skill->get_sc_type(skill_id);
		sc_start(src, bl, sc, 100, skill_lv, skill->get_time(skill_id, skill_lv), skill_id);
	}
}

static void skill_castend_nodamage_id_lullaby(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag)
{
	if ((flag & 1) == 0) {
		skill_castend_nodamage_id_song_splash(src, bl, skill_id, skill_lv, tick, flag | BCT_ENEMY);
	} else {
		enum sc_type sc = skill->get_sc_type(skill_id);
		sc_start(src, bl, sc, 15, skill_lv, skill->get_time(skill_id, skill_lv), skill_id);
	}
}

static void skill_castend_nodamage_id_ugly_dance(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag)
{
	if ((flag & 1) == 0) {
		skill_castend_nodamage_id_song_splash(src, bl, skill_id, skill_lv, tick, flag | BCT_ENEMY);
	} else {
		int chance = skill->get_time2(skill_id, skill_lv);

		if (rnd() % 100 < chance) {
			int drain_rate = skill->get_time(skill_id, skill_lv);
			int drain_amount = status_get_max_sp(bl) * drain_rate / 100;

			status_zap(bl, 0, drain_amount);
		}
	}
}

@@ -13214,95 +13468,98 @@ static struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16
case DC_UGLYDANCE:
val1 = 10; //FIXME: This value is not used anywhere, what is it for? [Skotlex]
break;

#ifndef RENEWAL
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure whether I should add some toggle to rollback to previous music/dance behavior for RE. The new effects requires 2018-11+ clients or characters will show no visual effect.

But making a toggle for that much of changes is... complicated. I don't know where to set the boundaries, and we have several conf files to change, not only skill_db.

If I change songs, I also need to change adaptation (since after rebalance it no longer ends songs). and then we have things like dissonance that could work in older clients (but I guess I would want to revert all songs, right?)

and well, this leaves us with the musical/dance lessons, which no longer affects songs. But if we are reverting, they should now affect it again? but then we also stop giving the new effects? and if I revert everything, does it make sense to keep only throw arrow rebalance?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I was originally in favor of keeping the option to revert these rebalance changes to support older clients, I realize it's too much of a burden (in both implementation and future maintenance), so I'll take it back.

Considering that I expect a lot of people running renewal servers to have adopted 2018 or newer clients by now (if anything, for the UI improvements they bring), and that it's completely out of the question to have a third "pre-rebalance" build mode and db folder to maintain, I'm in favor of requiring a 2018-11+ client for renewal.

People that wish to run a renewal server on an older client (or want to avoid the rebalance changes), can revert these changes on their fork (or patch their clients if someone comes up with client backport patches). And people that want to include some of these rebalance changes in their pre-renewal servers, may also do so in their fork.

Let's keep it rolling - no reverts for renewal, while pre-renewal stays as it is without the rebalance changes

// after rebalance, boss monsters does give more EXP, but "MVP" exp is not increased
if (sd->sc.data[SC_RICHMANKIM] != NULL && src->type == BL_MOB && (flags & EXP_FLAG_MVP) == 0) {
buff_ratio += sd->sc.data[SC_RICHMANKIM]->val1;
// jexp is boosted by both buff_ration AND buff_job_ratio, so we should not use buff_job_ratio here
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@skyleo can you check if this part about buff_ratio / buff_job_ratio is correct on the general exp calc? I find it very weird that job exp boost is buff_ratio + buff_job_ratio: (near the end of the function)

	bexp += apply_percentrate64(bexp, buff_ratio, 100);
	jexp += apply_percentrate64(jexp, buff_ratio + buff_job_ratio, 100);

maybe @hemagx remembers something... but this change is from 8 years ago 😅

This line was introduced on #1328

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit odd since this means the bonuses from SC_CASH_PLUSEXP and SC_OVERLAPEXPUP are applied twice for job exp.

Also since when does SC_RICHMANKIM affect players? The experience calculation for SC_RICHMANKIM is in mob.c and basically only mobs that are inside Richmankim, will get SC_RICHMANKIM on them and thus give more experience.

From briefly reading iro wiki it seems that this hasn't changed. I suggest you introduce your change in mob.c at the Experience Calculation around line 2580 in function mob_dead.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I found odd that SC_CASH_PLUSEXP and SC_OVERLAPEXPUP applies twice, I did not test it in-game to check, but looks like a bug to me... not exactly a re-balance issue though.


Regarding RICHMANKIM:

After Renewal re-balance, SC_RICHMANKIM is a player buff just like Angelus/etc, there is no longer ground effects (monsters does not get SC_RICHMANKIM now).

From my in-game tests, the EXP is applied per-player.

Consider the following examples for a party of 2 players with even sharing, killing a monster where penalty is applied equally to both members (to make explanation simpler)

Example 1: Player A and Player B NOT buffed
- Result: Player A and Player B gets the same amount of EXP

Example 2: Player A Buffed / Player B NOT buffed
- Result: Player A always gets more EXP than Player B (regardless of who performed the kill)

Example 3: Player A and Player B Buffed
- Result: Player A and Player B gets the same amount of EXP (increased by the effect)

And MVP exp does not get boosted.

I did try to keep it in mob.c, since we are talking about mob exp, but doing it there is... complicated. EXP at mob_dead did not consider the party EXP split yet, and since my tests have shown that a non-buffed player will get less EXP, I would need to change the party sharing code.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, okay. Sounds good.

@guilherme-gm guilherme-gm marked this pull request as draft February 10, 2024 00:01
@guilherme-gm guilherme-gm force-pushed the rebalance-bard-dancer branch 2 times, most recently from 3458b6e to cd17cb4 Compare February 10, 2024 14:04
if(pc_issit(tsd) || !unit->can_move(&tsd->bl))
return 0;

uint16 skill_lv = pc->checkskill(tsd, skill_id);
#ifdef RENEWAL // In Renewal, partner also gets the requirements consumed, so we must check it
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@skyleo another question, is it correct that in Pre-RE, when we cast an Ensemble skill, the partner doesn't pay the initial SP requirement?
Example: Ring Nibelungen costs 50 SP to be cast + 1 SP/3 second.

If player A casts it, and player B is forced to join it, then:

  1. Player A pays 50 SP
  2. After 3 seconds: Player A + Player B pays 1 SP
  3. ...

Is that right for Pre-RE? or should Player B also pay 50 SP to start the ensemble skill? In Renewal after rebalance, I could observe that this is the behavior, but the existing code didn't consume the requirement from Player B.

Copy link
Contributor

@skyleo skyleo Mar 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah this seems to be the behavior in Pre-RE from what I've seen in Ghidra.

Only one of them pays the initial cost.

(Although that part was kind of hard to read.)

@guilherme-gm
Copy link
Member Author

@violent01 thanks for checking, fixed the missing values

Song effects are now grouped and songs of the same group doesn't overlap
with each other. Activating a new effect of the same group ends other
existing effects.

There are 3 groups:
1. Bard songs -- song buffs exclusive to bards
2. Dancer songs -- song buffs exclusive to dancers
3. Ensemble songs -- song buffs exclusive to ensemble

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
…ging Arrow)

-Damage formula changed
  - New: [110 + (Skill Level x 40)]% x 2 hits
- SP cost changed
  - Old: (Skill Level × 2) - 1
  - New: 12 at all skill levels
- Casting time reduced: 1.5s -> 0.5s (Based on DivinePride data see more
  below)
    - Fixed Cast Time of 0.3s remains untouched
    - Variable Cast Time reduced 1.2s -> 0.2s
- Global skill delay added: 0.3s

The Casting Time value is presented differently in each source I was looking at:
- Official notes: Variable cast time reduce from 1.5s to 0.5s
  but we never had *Variable* Cast Time in 1.5s (only 1.2s Variable + 0.3 Fixed)
- Divine Pride: 0.2s Variable + 0.3s Fixed (total 0.5s)
- iRO Wiki: 0.5s Variable only

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
- Add effect: Attack Speed +(Skill_Lv)% with Musical Instruments
- Add effect: Max SP +(Skill_Lv)%
- No longer gives bonuses to song effects

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
- Add effect: Max SP +(Skill_Lv)%
- Add effect: When using Whips, CRI +(Skill_Lv)
- No longer gives bonuses to dance effects

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
- Global skill delay reduced: 4s -> 0.3s
- 4s Cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
- Added 0.3s of global skill delay
- Added 10s of cooldown

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked.

- Now causes Neutral Magical damage in a 9x9 area
- Can only be used in PvP areas
- 0.3s of global delay added
- 5s of cooldown added
- SP cost changed
   - Old: 15 + (SkillLv) x 3
   - New: 32 + (SkillLv) x 3

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party members
- It no longer uses ground units nor keeps the "performance running"

- Effect formula changed:
   - Variable cast reduction: (SkillLv)%
   - Cast delay reduction: (SkillLv x 3)%
   - Caster stats and Music Lessons no longer affects the formula
- Effect duration changed: 180s -> 60s
- SP Cost changed:
   - Old: 35 + (SkillLv x 5)
   - New: 60 + (SkillLv x 5)
- 1s casting time added
- 0.5s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect formula changed:
   - ASPD:
     - when SkillLv < 10:  +(1 + ((SkillLv - 1) x 2))%
     - when SkillLv = 10:  +20%
   - Caster stats and Music Lessons no longer affects the formula
- Effect duration changed: 180s -> 60s
- SP Cost changed:
   - Old: 35 + (SkillLv x 5)
   - New: 60 + (SkillLv x 5)
- 1s casting time added
- 0.5s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect changes:
   - MaxHP increase formula changed:
      - SkillLv < 10: (SkillLv + 9)%
      - SkillLv = 10: 20%
   - Removed HP Recovery effect
   - Added effect: HP Regen Rate increase by (SkillLv x 2)%
   - Caster stats and Music Lessons no longer affects the formula
- Effect duration changed: 180s -> 60s
- SP Cost changed:
   - Old: 35 + (SkillLv x 5)
   - New: 60 + (SkillLv x 5)
- 1s casting time added
- 0.5s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect formula changed:
   - Flee increase:
     - when SkillLv < 10:  +(18 + SkillLv x 2)
     - when SkillLv = 10:  +40
   - Perfect Dodge increase: (SkillLv + 1) / 2
   - Caster stats and Music Lessons no longer affects the formula
- Effect duration changed: 180s -> 60s
- SP Cost changed:
   - Old: 20 + (SkillLv x 4)
   - New: 20 + (SkillLv x 2)
- 1s casting time added
- 0.5s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a single AoE effect
- It no longer keeps the "performance running"

- SP drain amount changed: (10 + 2 * (SkillLv))%
- SP Cost changed:
   - Old: 20 + (SkillLv x 3)
   - New: 32 + (SkillLv x 3)
- 0.3s global delay added
- 5s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a single AoE effect which causes a SC on enemies
- It no longer keeps the "performance running"

- Effect formula changed:
  - Attack Speed reduction: ((SkillLv x 3) + DEX / 15)%
  - Move Speed reduction: ((SkillLv x 2) + AGI / 20)%
  - Note: According to rA, dividing by 15 and 20 was already the right
    values for RE. And this does seem to match the rebalance formula
    (at least, is close enough)
- Can only be used in PvP areas
- 0.5s of global delay added
- 1s casting time added
- 20s of cooldown added
- SP cost changed
   - Old: 25 + (SkillLv) x 3
   - New: 35 + (SkillLv) x 3
- Area of Effect increased: 7x7 -> 9x9

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect formula changed:
  - Max SP Boost:
     - SkillLv < 10: (9 + SkillLv)%
     - SkillLv = 10: 20%
  - SP Cost reduction: (SkillLv + 5)%
  - Caster stats and Dance Lessons no longer boosts the effects
- SP Cost changed:
   - Old: 35 + (SkillLv x 5)
   - New: 57 + (SkillLv x 3)
- 1s casting time added
- 0.5s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect changed:
  - Crit boost formula changed: +(SkillLv)%
  - Added effect: Crit damage +(SkillLv x 2)%
  - Caster stats and Dance Lessons no longer boosts the effects
- SP Cost changed:
   - Old: 40 + (SkillLv x 3)
   - New: 35 + (SkillLv x 5)
- 1s casting time added
- 0.5s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect formula changed:
  - HIT boost: +(SkillLv x 4)
  - Caster stats and Dance Lessons no longer boosts the effects
- SP Cost changed:
   - Old: 20 + (SkillLv x 2)
   - New: 30 + (SkillLv x 3)
- 1s casting time added
- 0.5s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
- Add SC_ENSEMBLEFATIGUE effect after ensemble skills (RE-only)
    After using an ensemble skill, ensemble fatigue starts on both
    performers
- Ensemble skills now consumes requirements from partner too

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
this allows us to easily expand it with new flags
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- EXP Boost formula changed:
  - Old: +(25 + SkillLv x 11)%
  - New: +(10 + SkillLv x 10)%
- 1s casting time added
- 0.3s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect changed. Now gives a random buff to user and party members:
  - ASPD +20%
  - ATK +20%
  - MATK +20%
  - MaxHP +30%
  - MaxSP +30%
  - All Stats +15
  - Hit +50
  - Flee +50
  - Reduce SP consumption of skills by 30%
  - Increase HP Recovery by 100%
  - Increase SP Recovery by 100%
- SP Cost changed:
   - Old: 35 + (SkillLv x 3)
   - New: 68 - (SkillLv x 4)
- 1s casting time added
- 0.3s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect formula changed:
  - Old:
    - Elemental Resistance: (30 + SkillLv x 10)%
    - Status Effect Resistance: (SkillLv x 10)%
  - New:
    - Elemental Resistance: (SkillLv x 3)%
    - Status Effect Resistance: (SkillLv x 5)%
- SP Cost changed:
   - Old: 20 on all skill levels
   - New: 36 + (SkillLv x 4)
- 1s casting time added
- 0.3s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- SP Cost increased: 10 -> 70
- 1s casting time added
- 0.3s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It now casts a single AoE effect in a 9x9 area
- It no longer uses ground units nor keeps the "performance running"

- SP Cost increased: 30 -> 120
- 1s casting time added
- 0.3s global delay added
- 60s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a single AoE effect
- It no longer keeps the "performance running"

- Effect changed: Inflicts confusion and blocks use of skill in all
  entities (Except performers)
- Can only be used in PvP areas
- 0.3s of global delay added
- 1s casting time added
- 20s of cooldown added
- SP cost increased: 15 -> 180
- Area of Effect increased: 7x7 -> 9x9

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a single AoE effect
- It no longer keeps the "performance running"

- Effect changed:
  - Inflicts sleep in enemies around user
  - INT no longer affects the chance
- 0.3s of global delay added
- 1s casting time added
- 20s of cooldown added
- SP cost increased: 20 -> 40
- Area of Effect increased: 7x7 -> 9x9

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked:
- It is now a screen-wide skill (31x31) that gives the SC to all party
  members
- It no longer uses ground units nor keeps the "performance running"

- Effect formula changed:
  - Old:
    - Damage Boost: 125 + (SkillLv x 25) (depending on size)
    - DEF  Boost: SkillLv x 10
  - New:
    - ATK Boost: 15 + (SkillLv x 5) (ATK2 / I am making it as BATK / equip atk)
    - DEF  Boost: SkillLv x 15
- SP Cost increased:
   - Old: 35 + (SkillLv x 3)
   - New: 46 + (SkillLv x 4)
- 1s casting time added
- 0.3s global delay added
- 20s cooldown added

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Skill reworked.

It now concedes a SC (SC_ADAPTATION) which reduces the SP consumption of
performance skills by 20%.

- 300s cooldown added
- 0.3s of global skill delay added
- SP cost increased: 1 -> 10

From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
From massive skills rebalance (1st/2nd/transclass) (2018.11.28)
Since RE no longer has "song areas", this check does not make sense for
RE
@guilherme-gm guilherme-gm changed the base branch from master to rebalance June 2, 2024 20:51
@guilherme-gm guilherme-gm changed the title 2-2 jobs skill rebalance (Part 4 - Bard/Dancer) (2018 Patch/Renewal) 2-2 jobs skill rebalance - Bard/Dancer (2018 Patch/Renewal) Jun 2, 2024
@guilherme-gm guilherme-gm marked this pull request as ready for review June 2, 2024 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants