Oshabi, Avatar of the Grove | |
Oshabi, Avatar of the Grove |
|
Location(s) | The Sacred Grove |
Oshabi, Avatar of the Grove is the final boss of the Harvest mechanic .
To encounter this boss, players must use a Sacred Blossom in the map device. These items are dropped randomly by T4 Harvest monsters: Ersi, Mother of Thorns, Janaar, the Omen, and Namharim, Born of Night.
When she spawns within The Grove, there will be an interactable tree in the middle of The Grove,[confirmation needed because of 3.14 change], and players must click the tree to begin the encounter.
Defeating her adds five additional slots to the Horticrafting Station.
Abilities[]
Items found from this monster
Item | |
---|---|
Abhorrent InterrogationQuality: +20% Evasion: (178-218) Energy Shield: (35-43)Requires Level 45, 35 Dex, 35 Int(100-150)% increased Evasion and Energy Shield (5-7)% increased Attack and Cast Speed (20-25)% chance to inflict Withered for 2 seconds on Hit Enemies take 4% increased Elemental Damage from your Hits for each Withered you have inflicted on them Your Hits cannot Penetrate or ignore Elemental Resistances“We have methods of interrogation the Inquisitors only dream of.” – Marcus, Brotherhood Liaison |
45 |
Witchhunter’s JudgmentStaff Quality: +20% Physical Damage: 57.6-174 Critical Strike Chance: 6.50% Attacks per Second: 1.15 Weapon Range: 13Requires Level 68, 89 Str, 89 Int+18% Chance to Block Attack Damage while wielding a StaffGrants Level 20 Brandsurge Skill Brand Skills have (50-100)% increased DurationThe pyre is never wasted on just one heretic. |
68 |
Forbidden ShakoQuality: +20% Armour: 171 Energy Shield: 33Requires Level 68, 59 Str, 59 IntSocketed Gems are Supported by Level (15-25) <random Support Gem> Socketed Gems are Supported by Level (15-25) <random Support Gem> +(25-30) to all AttributesThe Azmeri must never touch the Tears of Maji, lest Viridi weep. |
68 |
Law of the WildsClaw Quality: +20% Physical Damage: 34.8-66 Critical Strike Chance: (7.32%-7.68%) Attacks per Second: (1.84-1.92) Weapon Range: 11Requires Level 62, 131 Dex, 95 Int1.6% of Physical Attack Damage Leeched as Life20% chance to Trigger Level 25 Summon Spectral Wolf on Critical Strike with this Weapon (15-20)% increased Attack Speed (22-28)% increased Critical Strike Chance +(15-25)% to Global Critical Strike MultiplierThe strong survive. The strongest thrive. |
62 |
Previous Iterations[]
During the Harvest league, Oshabi would transform into her tree avatar – Heart of the Grove – after harvesting the first T4 seed. The Heart had a counter that went up to 100 and ticked up after each ‘growth cycle’ (seed cache being clicked) in a red (level 78+) map. When the counter reached 100, the tree she transformed into became interactable to start the boss fight.
Harvest did not go core after the Harvest league and was only reintroduced in Version 3.13.0 with major changes. In that version, the Heart of the Grove would sometimes replace normal Harvest encounters with a low probability.
As of Version 3.14.0, T4 Harvest monsters can drop a Sacred Blossom which creates a portal to the boss fight when used in the map device.
Version history[]
Version | Changes |
---|---|
3.14.0 |
|
3.13.0 |
|
3.11.1d |
|
3.11.1b |
|
3.11.0 |
|
Чтобы узнать о неигровом персонаже, см. Ошаби.
Ошаби, Воплощение Рощи | |
Ошаби, Воплощение Рощи |
|
Расположение | Священная роща (область) |
Ошаби, Воплощение Рощи — это последний босс механики Жатва.
Предметы, выпадаемые с этого монстра
Предмет | |
---|---|
Омерзительный допросУклонение: (162-227) Энерг. щит: (34-47)Требуется Уровень 45, 35 Ловк, 35 Инт(100-150)% увеличение уклонения и энергетического щита (5-7)% повышение скорости атаки и сотворения чар (20-25)% шанс наложить Истощение на 2 секунды при нанесении удара Враги получают увеличенный на 4% урон от стихий от ваших ударов за каждый наложенный вами на них эффект Истощения Ваши удары не могут пробивать или игнорировать сопротивления стихиям“У нас есть методы допроса, о которых инквизиторы только мечтают”. – Маркус, связной Братства |
45 |
Запрещённый киверБроня: (143-161) Энерг. щит: (29-33)Требуется Уровень 68, 59 Сила, 59 ИнтРазмещённые камни усилены <случайным камнем поддержки> (1-10) уровня Размещённые камни усилены <случайным камнем поддержки> (25-35) уровня +(25-30) ко всем характеристикамЧтобы Вириди не плакала, азмири никогда не должны прикасаться к Слезам Маджи. |
68 |
Правосудие охотника на ведьмПосох Физический урон: 48-145 Шанс критического удара: 6.50% Атак в секунду: 1.15 Дальность оружия: 13Требуется Уровень 68, 89 Сила, 89 Инт+18% шанс блокировать урон от атак с посохом в рукахДарует умение Перегрузка клейм 20 уровня (50-100)% увеличение длительности умений клеймаКостёр никогда не тратят только на одного еретика. |
68 |
Закон дикой природыКогти Физический урон: 29-55 Шанс критического удара: (7.32%-7.68%) Атак в секунду: (1.84-1.92) Дальность оружия: 11Требуется Уровень 62, 131 Ловк, 95 Инт1.6% физического урона от атак похищается в виде здоровья20% шанс вызвать срабатывание Призыва призрачного волка 25 уровня при нанесении критического удара этим оружием (15-20)% повышение скорости атаки (22-28)% повышение шанса критического удара +(15-25)% к глобальному множителю критического удара |
62 |
metadata id | monster type id |
---|---|
Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss | HarvestOshabiBoss |
История изменений[]
Версия | Изменения |
---|---|
3.11.2b |
|
3.11.0 |
|
Oshabi, Avatar of the Grove | |
Oshabi, Avatar of the Grove |
|
Location(s) | The Sacred Grove |
Oshabi, Avatar of the Grove is the final boss of the Harvest mechanic .
To encounter this boss, players must use a Sacred Blossom in the map device. These items are dropped randomly by T4 Harvest monsters: Ersi, Mother of Thorns, Janaar, the Omen, and Namharim, Born of Night. Upon entering The Sacred Grove this way, there will be an interactable tree in the middle of The Grove, and players must click the tree to begin the encounter.
Abilities
- Default Projectile spell: Physical Damage converted to Fire, 50% chance to Ignite.
- Projectile Cascade: Fires several projectiles in a row, tracking the player.
- Vine Cascade: causes several Vines to fall and slam the player.
- Teleport: disappears and reappears along the vines linked to the central tree.
- Summon Groveguard Vine: creates a sentient vine that can slam or swipe. Applies Bleeding on hit.
- Summon Harvest monsters
Orange (Sacred)
- Vine Barrier: Creates a cage of Root Walls. The player must destroy one of these vines to escape. A patch of Sacred Suffering ground degen grows inside the cage continuously until the cage is broken. This patch of Sacred Suffering persists through the entire fight.
- Sacred Suffering – stacks up to 10 while player is on the ground effect, and persists for a duration
- Sacred Ashes – applies only while the player is on the ground effect.
Purple (Wild)
Blue (Primal)
- Projectiles and Vine Cascade: Physical Damage converted to Cold and Lightning, and 33% chance to Shock/Freeze on Hit.
- Volatile Orchard: creates several blue Volatiles that chase the player and explode.
Green (Vivid)
- Projectiles and Vine Cascade: Physical Damage partially converted to Chaos, and Poisons on Hit.
- Vine Hammer: Charges up a bulbous root before slamming, repeating two larger pulsating shockwave in an area, and applies Poison on Hit.
Drops
Items found from this monster
Item | Drop Level |
|
---|---|---|
Abhorrent InterrogationEvasion: (162-227) Energy Shield: (34-47)Requires Level 45, 35 Dex, 35 Int(100-150)% increased Evasion and Energy Shield (5-7)% increased Attack and Cast Speed (20-25)% chance to inflict Withered for 2 seconds on Hit Enemies take 4% increased Elemental Damage from your Hits for each Withered you have inflicted on them Your Hits cannot Penetrate or ignore Elemental Resistances“We have methods of interrogation the Inquisitors only dream of.” – Marcus, Brotherhood Liaison |
N/A | 45 |
Forbidden ShakoArmour: (143-161) Energy Shield: (29-33)Requires Level 68, 59 Str, 59 IntSocketed Gems are Supported by Level (1-10) <random Support Gem> Socketed Gems are Supported by Level (25-35) <random Support Gem> +(25-30) to all AttributesThe Azmeri must never touch the Tears of Maji, lest Viridi weep. |
N/A | 68 |
Law of the WildsClaw Physical Damage: 29-55 Critical Strike Chance: (7.32%-7.68%) Attacks per Second: (1.84-1.92) Weapon Range: 11Requires Level 62, 131 Dex, 95 Int1.6% of Physical Attack Damage Leeched as Life20% chance to Trigger Level 25 Summon Spectral Wolf on Critical Strike with this Weapon (15-20)% increased Attack Speed (22-28)% increased Critical Strike Chance +(15-25)% to Global Critical Strike MultiplierThe strong survive. The strongest thrive. |
N/A | 62 |
The Bitter Blossom3Level 21 Chaos Gem Quality: +23% CorruptedThe pain you feel is of no consequence, it is evolution, to be made whole within something greater. |
72 | 1 |
Witchhunter’s JudgmentStaff Physical Damage: 48-145 Critical Strike Chance: 6.50% Attacks per Second: 1.15 Weapon Range: 13Requires Level 68, 89 Str, 89 Int+18% Chance to Block Attack Damage while wielding a StaffGrants Level 20 Brandsurge Skill Brand Skills have (50-100)% increased DurationThe pyre is never wasted on just one heretic. |
N/A | 68 |
The Aspirant5Item Elevated Item Influenced ItemThose Exiles that survive Wraeclast dream not of home, but of power. |
81 | 1 |
Sacred Crystallised LifeforceStack Size: 10Can be used at the Horticrafting bench in your hideout. Shift click to unstack. |
1 | 1 |
Previous Iterations
During the Harvest league, Oshabi would transform into her tree avatar – Heart of the Grove – after harvesting the first T4 seed. The Heart had a counter that went up to 100 and ticked up after each ‘growth cycle’ (seed cache being clicked) in a red (level 78+) map. When the counter reached 100, the tree she transformed into became interactable to start the boss fight.
Harvest did not go core after the Harvest league and was only reintroduced in Version 3.13.0 with major changes. In that version, the Heart of the Grove would sometimes replace normal Harvest encounters with a low probability.
As of Version 3.14.0, T4 Harvest monsters can drop a Sacred Blossom which creates a portal to the boss fight when used in the map device. This encounter can no longer have map modifiers or Delirium layers as a result of this change.
Version history
Version | Changes |
---|---|
3.15.1 |
|
3.14.0 |
|
3.13.0 |
|
3.11.1d |
|
3.11.1b |
|
3.11.0 |
|
ru:Ошаби, Воплощение Рощи
# root travel | ||
conditions Generic1IsInState=0 IgnoresTaunt | ||
{ | ||
# pick destination | ||
conditions_per_skill ForceTargetOshabiRoot TargetInSector=(sector::allow_root_travel) TargetCurrentColourIsAtOrAboveState=1 !TargetOnCrownOfThornsGround | ||
{ | ||
# pick while any colour | ||
EmptyActionSpell5 | OshabiPickDestinationEAS5NoLineOfSight | 1000 IAmOnCrownOfThornsGround FightIsInState=0 TargetNotInRange=85 |
EmptyActionSpell5 | OshabiPickDestinationEAS5NoLineOfSight | 100 FightIsInState=0 TargetNotInRange=85 TargetInRange=135 |
# pick while any colour not orange | ||
conditions FightIsInState=0 CurrentColourIsNotInState=1 | ||
{ | ||
EmptyActionSpell5 | OshabiPickDestinationEAS5NoLineOfSight | 1500 TargetIsBelowState=(state::destination_bias, 1) TargetNotInRange=85 TargetInRange=135 |
EmptyActionSpell5 | OshabiPickDestinationEAS5NoLineOfSight | 200 TargetIsBelowState=(state::destination_bias, 2) TargetNotInRange=85 TargetInRange=135 |
EmptyActionSpell5 | OshabiPickDestinationEAS5NoLineOfSight | 200 TargetIsBelowState=(state::destination_bias, 3) TargetNotInRange=85 TargetInRange=135 |
} | ||
} | ||
# submerge/emerge | ||
EmptyActionSpell | OshabiSubmergeEAS | -1 FightIsInState=1 ForceTargetSelf |
EmptyActionSpell2 | OshabiEmergeEAS2 | -1 FightIsInState=3 ForceTargetSelf |
} | ||
# fight start with cascade | ||
EmptyActionSpell4 | HarvestOshabiEASVineCrossCascade | -1 IHaveNotUsedSkill ForceTargetEnemy TargetIsPlayer TargetInRange=90 |
# spammables/medium cooldowns | ||
conditions FightIsInState=0 IgnoresTaunt | ||
{ | ||
EmptyActionSpell4 | HarvestOshabiEASProjSpam | 200 ForceTargetEnemy TargetNotNear TargetInRange=90 |
EmptyActionSpell4 | HarvestOshabiEASProjSpam | 300 ForceTargetEnemy TargetNotNear TargetIsPlayer TargetInRange=90 |
EmptyActionSpell4 | HarvestOshabiEASProjSpamBarrage | 600 OnLessThanPercentLife=90 ForceTargetEnemy TargetIsPlayer TargetInRange=90 |
EmptyActionSpell4 | HarvestOshabiEASSummonDouble | 150 NotOnFullLife ForceTargetEnemy TargetInRange=80 |
EmptyActionSpell4 | HarvestOshabiEASSummonDouble | 100 NotOnFullLife ForceTargetEnemy TargetInRange=80 TargetIsPlayer |
EmptyActionSpell4 | HarvestOshabiEASSummonTriple | 155 NotOnFullLife ForceTargetEnemy TargetInRange=80 |
EmptyActionSpell4 | HarvestOshabiEASSummonTriple | 100 NotOnFullLife ForceTargetEnemy TargetInRange=80 TargetIsPlayer |
GeometryTrigger | HarvestOshabiCombatVinesGTLeftNear | 100 OnLessThanPercentLife=95 ForceTargetEnemy TargetIsPlayer TargetIsLeftOfMe TargetInRange=45 |
GeometryTrigger | HarvestOshabiCombatVinesGTRightNear | 100 OnLessThanPercentLife=95 ForceTargetEnemy TargetIsPlayer TargetIsRightOfMe TargetInRange=45 |
GeometryTrigger | HarvestOshabiCombatVinesGTLeftFar | 100 OnLessThanPercentLife=95 ForceTargetEnemy TargetIsPlayer TargetIsLeftOfMe TargetNotInRange=45 TargetInRange=70 |
GeometryTrigger | HarvestOshabiCombatVinesGTRightFar | 100 OnLessThanPercentLife=95 ForceTargetEnemy TargetIsPlayer TargetIsRightOfMe TargetNotInRange=45 TargetInRange=70 |
EmptyActionSpell4 | HarvestOshabiEASVineCrossCascade | 400 ForceTargetEnemy TargetIsPlayer TargetNotInRange=30 TargetInRange=80 |
} | ||
# ultimates | ||
conditions FightIsInState=0 OnLessThanPercentLife=90 IgnoresTaunt | ||
{ | ||
ChangeToStance2Immediate | HarvestOshabiCTS2I | 3000 IHaveNotUsedSkill CurrentColourIsInState=1 ForceTargetEnemy TargetInRange=60 CatarinaGraveyardIsInState=0 |
GeometryTrigger | HarvestOshabiCyanBloomGT | 3000 IHaveNotUsedSkill CurrentColourIsInState=2 ForceTargetEnemy TargetIsPlayer TargetInRange=70 |
SummonSpecificMonsters | HarvestOshabiSSMHammerVineInFront | 1500 IHaveNotUsedSkill CurrentColourIsInState=3 ForceTargetEnemy TargetIsPlayer TargetNotInRange=40 TargetInRange=80 |
SummonSpecificMonsters | HarvestOshabiSSMHammerVineBehind | 1500 IHaveNotUsedSkill CurrentColourIsInState=3 ForceTargetEnemy TargetIsPlayer TargetInRange=40 |
OshabiOrbProjectile | OshabiOrbProjectile | 3000 IHaveNotUsedSkill CurrentColourIsInState=4 ForceTargetEnemy TargetIsPlayer TargetInRange=85 |
ChangeToStance2Immediate | HarvestOshabiCTS2I | 1500 CurrentColourIsInState=1 ForceTargetEnemy TargetInRange=60 CatarinaGraveyardIsInState=0 |
GeometryTrigger | HarvestOshabiCyanBloomGT | 1500 CurrentColourIsInState=2 ForceTargetEnemy TargetIsPlayer TargetInRange=70 |
SummonSpecificMonsters | HarvestOshabiSSMHammerVineInFront | 1500 CurrentColourIsInState=3 ForceTargetEnemy TargetIsPlayer TargetNotInRange=30 TargetInRange=80 |
SummonSpecificMonsters | HarvestOshabiSSMHammerVineBehind | 1500 CurrentColourIsInState=3 ForceTargetEnemy TargetIsPlayer TargetInRange=30 |
OshabiOrbProjectile | OshabiOrbProjectile | 1500 CurrentColourIsInState=4 ForceTargetEnemy TargetIsPlayer TargetInRange=75 |
} | ||
# teleport slam | ||
conditions FightIsInState=0 OnLessThanPercentLife=33 IgnoresTaunt | ||
{ | ||
#Teleport | OshabiTeleportSlam | 2000 ForceTargetEnemy TargetIsPlayer TargetNotInSector=(sector::no_teleport_slam) TargetNotInRange=70 TargetInRange=110 !TargetOnCrownOfThornsGround |
} | ||
stance stance2 | ||
# crown of thorns stance | ||
DoNothing | 100 | OnlyLastTarget ForceTargetEnemy IgnoresTaunt |
ChangeToStance1Immediate | HarvestOshabiCTS1I | -1 ForceTargetSelf Generic4IsAtOrAboveState=2 IgnoresTaunt |
ChangeToStance1Immediate | HarvestOshabiCTS1I | 100 ForceTargetSelf IgnoresTaunt CurrentColourIsNotInState=1 |
Object Type
version 2 extends "Metadata/Monsters/Monster" Pathfinding { immobile = true } Actor { basic_action = "Emerge" } Positioned { force_placement = true } StateMachine { define_shared_state = " visible; emerge; travelling; current_colour; minimap_icon; repeat_fight; in_channel_state; " // colour - 0:none, 1:orange, 2:blue, 3:green, 4:red // repeat_fight: 0: first time fight, 1: second time fight+ } MinimapIcon { icon = "HarvestOshabiBoss" } Stats { map_hidden_monster_life_+%_final = 2000 } Life { corpse_usable = false } Preload { preload_object = "Metadata/MiscellaneousObjects/Harvest/RootPath/RootPathOshabi" }
Object Type Codes
version 2 extends "Metadata/Monsters/Monster" Functions { DispatchEmergeTextAudio = " IfState( repeat_fight, 0, { PlayTextAudio( HarvestBossIntroTwo , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); }, { DoRandom( { PlayTextAudio( HarvestReBossIntroOne , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); }, { PlayTextAudio( HarvestReBossIntroTwo , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); }, { PlayTextAudio( HarvestReBossIntroThree , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); }, { PlayTextAudio( HarvestReBossIntroFour , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); } ); } ); " DispatchDeathTextAudio = " IfState( repeat_fight, 0, { DoRandom( { PlayTextAudio( HarvestBossDeathOne , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); }, { PlayTextAudio( HarvestBossDeathTwo , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); } ); }, { DoRandom( { PlayTextAudio( HarvestReBossDeathOne , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); }, { PlayTextAudio( HarvestReBossDeathTwo , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); }, { PlayTextAudio( HarvestReBossDeathThree , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); }, { PlayTextAudio( HarvestReBossDeathFour , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0); } ); } ); " DoEmergeEffects = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_anger.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_anger.epk ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_anger_idle.epk ); } ); " AddCascadeVines = " IfState( current_colour, 1, { AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/anger_cascade_start.ao, cascade_left ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/anger_cascade_start.ao, oshabi_cascade_intro_01 ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/anger_cascade_start_flip.ao, cascade_right ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/anger_cascade_start_flip.ao, oshabi_cascade_intro_01 ); } ); IfState( current_colour, 2, { AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/bulb_cascade_start.ao, cascade_left ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/bulb_cascade_start.ao, oshabi_cascade_intro_01 ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/bulb_cascade_start_flip.ao, cascade_right ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/bulb_cascade_start_flip.ao, oshabi_cascade_intro_01 ); } ); IfState( current_colour, 3, { AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/scale_cascade_start.ao, cascade_left ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/scale_cascade_start.ao, oshabi_cascade_intro_01 ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/scale_cascade_start_flip.ao, cascade_right ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/scale_cascade_start_flip.ao, oshabi_cascade_intro_01 ); } ); IfState( current_colour, 4, { AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/thorn_cascade_start.ao, cascade_left ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/thorn_cascade_start.ao, oshabi_cascade_intro_01 ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/thorn_cascade_start_flip.ao, cascade_right ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/thorn_cascade_start_flip.ao, oshabi_cascade_intro_01 ); } ); " ActivateLight = " IfState( current_colour, 1, { PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, idle_anger ); } ); IfState( current_colour, 2, { PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, idle_bulb ); } ); IfState( current_colour, 3, { PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, idle_scale ); } ); IfState( current_colour, 4, { PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, idle_thorn ); } ); " AttachCastParticles_L = " IfState( current_colour, 1, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_L.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_L.epk ); } ); } ); IfState( current_colour, 2, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_L_blue.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_L_blue.epk ); } ); } ); IfState( current_colour, 3, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_L_green.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_L_green.epk ); } ); } ); IfState( current_colour, 4, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_L_red.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_L_red.epk ); } ); } ); " AttachCastParticles_R = " IfState( current_colour, 1, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_R.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_R.epk ); } ); } ); IfState( current_colour, 2, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_R_blue.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_R_blue.epk ); } ); } ); IfState( current_colour, 3, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_R_green.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_R_green.epk ); } ); } ); IfState( current_colour, 4, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_R_red.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_R_red.epk ); } ); } ); " AttachCastParticles_LR = " IfState( current_colour, 1, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_LR.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_LR.epk ); } ); } ); IfState( current_colour, 2, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_LR_blue.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_LR_blue.epk ); } ); } ); IfState( current_colour, 3, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_LR_green.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_LR_green.epk ); } ); } ); IfState( current_colour, 4, { AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_LR_red.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/cast_FX_LR_red.epk ); } ); } ); " } Render { selection_size_override = "100, 100, 160" oshabi_colour_lerp_sec = 3.0 } StateMachine { create_state_minimap_icon_0 = "HideMinimapIcon();" on_or_create_state_minimap_icon_1 = "ShowMinimapIcon();" on_or_create_state_minimap_icon_2 = "HideMinimapIcon();" //create_state_emerge_0 = //" // PlayAnimation( emerge_tree_01 ); // PauseAnimation(); //" on_or_create_state_emerge_1 = " Delay( 4.5, { SetCustomCameraSpeed( 3.0 ); ClearCameraZoomNodes(); } ); Delay( 5.5, { RemoveCustomCameraSpeed(); } ); " on_or_create_state_travelling_0 = "EnableRendering();" on_or_create_state_travelling_1 = "DisableRendering();" on_change_state_current_colour = "Call( ActivateLight );" on_state_current_colour_1 = " IfState( emerge, 1, { Call( DoEmergeEffects ); } ); " create_state_current_colour_0 = "AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, aux_light_attach );" create_state_current_colour_1 = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_anger_idle.epk ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, aux_light_attach ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, idle_anger ); " create_state_current_colour_2 = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_anger_idle.epk ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, aux_light_attach ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, idle_bulb ); " create_state_current_colour_3 = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_anger_idle.epk ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, aux_light_attach ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, idle_scale ); " create_state_current_colour_4 = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_anger_idle.epk ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, aux_light_attach ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, idle_thorn ); " on_state_in_channel_state_0 = "DetachAllContainingText( /on_act/crown_of_thorns/ );" on_or_create_state_in_channel_state_1 = " AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/build_up_start.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_body_vines.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_vines.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_02.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/build_up_start.ao, animate_start ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_body_vines.ao, charge_range_start_v01_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_vines.ao, charge_range_start_v02_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_02.ao, charge_range_start_v03_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_start_v04_01 ); " on_state_in_channel_state_2 = " DetachAllOfType( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/build_up_start.ao ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/build_up_loop.ao, ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/build_up_loop.ao, animate_idle ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_body_vines.ao, charge_range_loop_v01_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_vines.ao, charge_range_loop_v02_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_loop_v03_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_loop_v04_01 ); " create_state_in_channel_state_2 = " AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/build_up_loop.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_body_vines.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_vines.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_02.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/build_up_loop.ao, animate_idle ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_body_vines.ao, charge_range_loop_v01_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_vines.ao, charge_range_loop_v02_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_loop_v03_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_loop_v04_01 ); " on_or_create_state_in_channel_state_3 = " DetachAllOfType( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/build_up_loop.ao ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_body_vines.ao, charge_range_end_v01_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_vines.ao, charge_range_end_v02_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_end_v03_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_end_v04_01 ); " create_state_in_channel_state_3 = " AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_vines.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_body_vines.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_02.ao, ); AddAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_body_vines.ao, charge_range_end_v01_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/loop_vines.ao, charge_range_end_v02_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_end_v03_01 ); PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/crown_of_thorns/start_vines_03.ao, charge_range_end_v04_01 ); " } Life { on_death = " Call( DispatchDeathTextAudio ); DetachAllOfType( Metadata/Monsters/LeagueHarvest/Oshabi/attachments/OshabiFeathers_Boss.ao ); DetachAllOfType( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao ); HideMeshSegments( arm_stringShape, bodyShape, cloth_lowerShape, clothShape, flowers_02Shape, hair_coinsShape, ropeShape, skullhatShape, wood_tabletsShape, Hair_baseShape, hairbackShape, L_hairShape, R_HairShape, flowers_01Shape, seatShape ); " on_spawned_dead = " DetachAllOfType( Metadata/Monsters/LeagueHarvest/Oshabi/attachments/OshabiFeathers_Boss.ao ); DetachAllOfType( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao ); HideMeshSegments( arm_stringShape, bodyShape, cloth_lowerShape, clothShape, flowers_02Shape, hair_coinsShape, ropeShape, skullhatShape, wood_tabletsShape, Hair_baseShape, hairbackShape, L_hairShape, R_HairShape, flowers_01Shape, seatShape ); " } Actor { on_start_Emerge = "Call( DispatchEmergeTextAudio );" on_start_OshabiOrbProjectile = "PlayTextAudio( HarvestBossCombatFour , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0);" on_start_SummonSpecificMonsters = "PlayTextAudio( HarvestBossCombatOne , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0);" on_start_ChangeToStance2Immediate = "PlayTextAudio( HarvestBossCombatTwo , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0);" } Preload { preload_animated_object = "Metadata/Effects/Spells/monsters_effects/LeagueHarvest/environment_fx/harvest_spores.ao" preload_animated_object = "Metadata/Effects/Spells/monsters_effects/LeagueHarvest/environment_fx/harvest_spores_anger.ao" preload_animated_object = "Metadata/Effects/Spells/monsters_effects/LeagueHarvest/environment_fx/harvest_spores_green.ao" preload_animated_object = "Metadata/Effects/Spells/monsters_effects/LeagueHarvest/environment_fx/harvest_spores_red.ao" } Animated { on_summon_both_01 = "PlayTextAudio( HarvestBossCombatSix , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0);" on_special_multiple_cast_01 = "PlayTextAudio( HarvestBossCombatFive , Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss, 0);" // cast L/R epks on_cast_left_01 = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_L.epk ); Call( AttachCastParticles_L ); " on_event_contact_for_cast_left_01 = " RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_L.epk ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_L_fade.epk ); " on_end_cast_left_01 = "RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_L_fade.epk );" on_cast_right_01 = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_R.epk ); Call( AttachCastParticles_R ); " on_event_contact_for_cast_right_01 = " RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_R.epk ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_R_fade.epk ); " on_end_cast_right_01 = "RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_R_fade.epk );" on_event_fade_cast_in_LR = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_LR.epk ); Call( AttachCastParticles_LR ); " on_event_fade_cast_out_LR = " RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_LR.epk ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_LR_fade.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_LR_fade.epk ); } ); " on_event_fade_cast_in_L = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_L.epk ); Call( AttachCastParticles_L ); " on_event_fade_cast_out_L = " RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_L.epk ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_L_fade.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_L_fade.epk ); } ); " on_event_fade_cast_in_R = " AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_R.epk ); Call( AttachCastParticles_R ); " on_event_fade_cast_out_R = " RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_R.epk ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_R_fade.epk ); Delay( 1.0, { RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_cast_R_fade.epk ); } ); " // emerge and submerge on_emerge_roots_01 = " Call( ActivateLight ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_emerge.epk ); RemoveEffectPackAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/attachment_fade.epk, Metadata/Monsters/LeagueHarvest/Oshabi/attachments/OshabiFeathers_Boss.ao ); " on_end_emerge_roots_01 = "RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_emerge.epk );" on_submerge_roots_01 = " PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, fade_out ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_submerge.epk ); AddEffectPackAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/attachment_fade.epk, Metadata/Monsters/LeagueHarvest/Oshabi/attachments/OshabiFeathers_Boss.ao ); " on_end_submerge_roots_01 = "RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_submerge.epk );" // teleport on_submerge_emerge_roots_01 = " PlayAnimationAttached( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/on_act/boss_light.ao, fade_out ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_submerge.epk ); " on_event_remove_submerge_fx_for_submerge_emerge_roots_01 = "RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_submerge.epk );" on_event_contact_for_submerge_emerge_roots_01 = " Call( ActivateLight ); AddEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_emerge.epk ); " on_end_submerge_emerge_roots_01 = "RemoveEffectPack( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/EPKs/oshabi_emerge.epk );" // cascade vines on_event_rootfx_for_special_cast_02 = "Call( AddCascadeVines );" on_end_special_cast_02 = " DetachAllOfType( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/anger_cascade_start.ao ); DetachAllOfType( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/bulb_cascade_start.ao ); DetachAllOfType( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/scale_cascade_start.ao ); DetachAllOfType( Metadata/Effects/Spells/monsters_effects/LeagueHarvest/harvest_boss/final/vine_cascade/thorn_cascade_start.ao ); " }
-- srcDataSpectres.lua minions["Metadata/Monsters/LeagueHarvest/Oshabi/OshabiBoss"] = { name = "Oshabi, Avatar of the Grove", life = 36, energyShield = 0.5, fireResist = 50, coldResist = 50, lightningResist = 50, chaosResist = 30, damage = 3, damageSpread = 0.2, attackTime = 1.995, attackRange = 10, accuracy = 1, skillList = { "OshabiSubmergeEAS", "OshabiEmergeEAS2", "OshabiPickDestinationEAS3", "HarvestOshabiEASProjSpam", "HarvestOshabiCyanBloomGT", "HarvestOshabiCyanBattleVineGT", "HarvestOshabiEASVineCrossCascade", "HarvestOshabiSSMHammerVineInFront", "HarvestOshabiSSMHammerVineBehind", "HarvestOshabiEASProjSpamBarrage", "HarvestOshabiEASSummonBoth", "HarvestOshabiEASSummonLeft", "HarvestOshabiEASSummonRight", "HarvestOshabiEASSummonDouble", "HarvestOshabiEASSummonTriple", "HarvestOshabiSSMCombatVineLeft", "HarvestOshabiSSMCombatVineRight", "HarvestOshabiSSMBattleVine", "HarvestOshabiSSMBattleVineTarget", "HarvestOshabiSSMCyanBattleVineTarget", "HarvestOshabiProjSpamOrange", "HarvestOshabiProjSpamRed", "HarvestOshabiProjSpamBlue", "HarvestOshabiProjSpamGreen", "HarvestOshabiCyanBloomSSM", "HarvestOshabiVineBarrierGT", "HarvestOshabiVineBarrierSSM", "HarvestOshabiCrownOfThornsSummonerDaemonSSM", "HarvestOshabiCombatVinesGTLeftNear", "HarvestOshabiCombatVinesGTLeftFar", "HarvestOshabiCombatVinesGTRightNear", "HarvestOshabiCombatVinesGTRightFar", "HarvestOshabiVineCascadeGS", "HarvestOshabiVineCascadeGS2", "HarvestOshabiVineCascadeGS3", "HarvestOshabiVineCascadeGS4", "HarvestOshabiVineCascadeGT1", "HarvestOshabiVineCascadeGT2", "HarvestOshabiVineCascadeGT3", "HarvestOshabiVineCascadeGT4", "OshabiOrbProjectile", "OshabiOrbProjectileMPSTrigger", "HarvestOshabiCrownOfThornsCentreMarkerSO", "HarvestOshabiCTS1I", "HarvestOshabiCTS2I", "OshabiPickDestinationEAS5NoLineOfSight", "OshabiTeleportSlam", "OshabiTeleportSlamGA", "OshabiTeleportSlamBloomEG", }, modList = { }, } -- srcDataSkillsspectre.lua skills["OshabiSubmergeEAS"] = { name = "OshabiSubmergeEAS", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["OshabiEmergeEAS2"] = { name = "OshabiEmergeEAS2", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["OshabiPickDestinationEAS3"] = { name = "OshabiPickDestinationEAS3", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiEASProjSpam"] = { name = "HarvestOshabiEASProjSpam", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1.5, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCyanBloomGT"] = { name = "HarvestOshabiCyanBloomGT", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCyanBattleVineGT"] = { name = "HarvestOshabiCyanBattleVineGT", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiEASVineCrossCascade"] = { name = "HarvestOshabiEASVineCrossCascade", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiSSMHammerVineInFront"] = { name = "HarvestOshabiSSMHammerVineInFront", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.5, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiSSMHammerVineBehind"] = { name = "HarvestOshabiSSMHammerVineBehind", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.5, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiEASProjSpamBarrage"] = { name = "HarvestOshabiEASProjSpamBarrage", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 5, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiEASSummonBoth"] = { name = "HarvestOshabiEASSummonBoth", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiEASSummonLeft"] = { name = "HarvestOshabiEASSummonLeft", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiEASSummonRight"] = { name = "HarvestOshabiEASSummonRight", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiEASSummonDouble"] = { name = "HarvestOshabiEASSummonDouble", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiEASSummonTriple"] = { name = "HarvestOshabiEASSummonTriple", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.17, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiSSMCombatVineLeft"] = { name = "HarvestOshabiSSMCombatVineLeft", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiSSMCombatVineRight"] = { name = "HarvestOshabiSSMCombatVineRight", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiSSMBattleVine"] = { name = "HarvestOshabiSSMBattleVine", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiSSMBattleVineTarget"] = { name = "HarvestOshabiSSMBattleVineTarget", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiSSMCyanBattleVineTarget"] = { name = "HarvestOshabiSSMCyanBattleVineTarget", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiProjSpamOrange"] = { name = "HarvestOshabiProjSpamOrange", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Projectile] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, projectile = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiProjSpamRed"] = { name = "HarvestOshabiProjSpamRed", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Projectile] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, projectile = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiProjSpamBlue"] = { name = "HarvestOshabiProjSpamBlue", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Projectile] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, projectile = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiProjSpamGreen"] = { name = "HarvestOshabiProjSpamGreen", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Projectile] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, projectile = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCyanBloomSSM"] = { name = "HarvestOshabiCyanBloomSSM", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineBarrierGT"] = { name = "HarvestOshabiVineBarrierGT", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineBarrierSSM"] = { name = "HarvestOshabiVineBarrierSSM", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCrownOfThornsSummonerDaemonSSM"] = { name = "HarvestOshabiCrownOfThornsSummonerDaemonSSM", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCombatVinesGTLeftNear"] = { name = "HarvestOshabiCombatVinesGTLeftNear", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCombatVinesGTLeftFar"] = { name = "HarvestOshabiCombatVinesGTLeftFar", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCombatVinesGTRightNear"] = { name = "HarvestOshabiCombatVinesGTRightNear", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCombatVinesGTRightFar"] = { name = "HarvestOshabiCombatVinesGTRightFar", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineCascadeGS"] = { name = "HarvestOshabiVineCascadeGS", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineCascadeGS2"] = { name = "HarvestOshabiVineCascadeGS2", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineCascadeGS3"] = { name = "HarvestOshabiVineCascadeGS3", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineCascadeGS4"] = { name = "HarvestOshabiVineCascadeGS4", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineCascadeGT1"] = { name = "HarvestOshabiVineCascadeGT1", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineCascadeGT2"] = { name = "HarvestOshabiVineCascadeGT2", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineCascadeGT3"] = { name = "HarvestOshabiVineCascadeGT3", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiVineCascadeGT4"] = { name = "HarvestOshabiVineCascadeGT4", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.67, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["OshabiOrbProjectile"] = { name = "OshabiOrbProjectile", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 2.2, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["OshabiOrbProjectileMPSTrigger"] = { name = "OshabiOrbProjectileMPSTrigger", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Projectile] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { spell = true, projectile = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCrownOfThornsCentreMarkerSO"] = { name = "HarvestOshabiCrownOfThornsCentreMarkerSO", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCTS1I"] = { name = "HarvestOshabiCTS1I", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["HarvestOshabiCTS2I"] = { name = "HarvestOshabiCTS2I", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["OshabiPickDestinationEAS5NoLineOfSight"] = { name = "OshabiPickDestinationEAS5NoLineOfSight", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["OshabiTeleportSlam"] = { name = "OshabiTeleportSlam", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Movement] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 2, baseFlags = { spell = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["OshabiTeleportSlamGA"] = { name = "OshabiTeleportSlamGA", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 83, statInterpolation = , cost = { }, }, }, } -- srcDataSkillsspectre.lua skills["OshabiTeleportSlamBloomEG"] = { name = "OshabiTeleportSlamBloomEG", hidden = true, color = 4, baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { }, levels = { [1] = {levelRequirement = 0, statInterpolation = , cost = { }, }, }, }
В Path of Exile: Жатва мы представили нового персонажа – Ошаби – стража Священной рощи. Сегодня мы поговорим о её разработке, её месте в мире Path of Exile и о повествовании в целом.
Прежде чем мы перейдём к сути того, как и почему возникла Ошаби, удостоверьтесь, что вас не пугает перспектива раскрытия некоторых деталей, потому что в статье мы затронем кое-какие подробности сюжета!
Когда мы разрабатываем лигу и возникает необходимость добавить в игру персонажа, то зачастую сначала появляется его эскиз. Так было и с Ошаби. Мы нередко делаем наброски персонажей, которые могут увидеть, а могут в итоге и не увидеть, свет. Если концепция персонажа выглядит уместной в тематике лиги, то мы создаём модель и начинаем разбираться, кем будет этот герой. В случае Ошаби её облик родился из концепт-арта, созданного нами для микротранзакции призрака.
Создавая предысторию и характер Ошаби, мы перебрали множество сценариев того, кто она такая, откуда появилась и какова её роль в механике игры и в рамках сюжета Жатвы. В ранней версии она была “этичным” каннибалом и хотела выращивать монстров в качестве источника пищи, чтобы не чувствовать за собой вину в том, каким способом добывается еда. У идеи было продолжение: вкус монстров Жатвы оказывался настолько прекрасным, что она уже не могла употреблять в пищу ничего другого, и многократно предупреждала игрока никогда их не пробовать. Мне по-прежнему нравится идея “этичного” героя-каннибала, и я уже пытался “пропихнуть” такого персонажа ещё хоть в одну лигу! Может, когда-нибудь…
Те из вас, кто добрался до финала повествования Жатвы, знают, что произойдёт. Остальных мы предупредили!
Ошаби, будучи стражем Священной рощи, присматривает за садом, в котором и проходит большая часть игрового процесса Жатвы. Она утверждает, что сад говорит с ней, возвращая ей давно утерянный дар. Она пользуется садом, чтобы взращивать и пускать себе на службу энергию, которую она называет жизненной силой. Проблема в том, что жизненная сила может быть просто Порчей под новым именем.
С каждой новой лигой сложность игры, даже сюжетная, возрастает. В Path of Exile присутствуют несколько мистических сил – Порча, Божественность, преображающие и зовущие силы Атласа и так далее… И важно сохранять различие между ними. Нам, игрокам, могут быть знакомы все эти составляющие, но у персонажей куда более ограниченный взгляд. Единение жизненной силы с Порчей решило проблему создания ещё одной загадочной энергии. В то же время в их единстве подчёркивается то, на что, как нам известно, способна Порча: сотворение и мутация монстров, превращение предметов и людей, гибельное искушение.
Сегодня вполне закономерно полагать, что каждая лига нуждается в какой-либо финальной схватке – такой, к которой предстоит идти на протяжении всей лиги и в которой будет самый сложный контент этой лиги и добываются самые ценные награды. Я точно не помню, когда именно мы решили, что Ошаби станет финальным боссом, зато помню, что мы долго придумывали, как превратить НИП в злодея.
Вообще-то мы уже проделывали такое в прошлых лигах (Синтез!), и тогда мы справились с задачей, переложив основные тяготы взаимодействия с игроком с Каваса на Зану. На этот раз такой роскоши у нас не было, и пришлось удостовериться, что все свои функции в плане механики лиги Ошаби выполняет до того, как стать высокоуровневым боссом. И мы решили, что, как только этот момент достигнут, она исчезает. Не на время, а навсегда.
В Синтезе Кавас задумывался как злодей. Мы хотели, чтобы вы чувствовали себя обманутыми; хотели, чтобы вы поняли, что, хотя у Каваса были свои причины, дело его было неправедным. К Ошаби нам хотелось вызвать жалость. В прошлом она совершила кое-какие морально сомнительные дела, но, в конце концов, она пала жертвой соблазна и Порчи. Была обманута, прельстилась её сладкой песней, и в результате испытывает бесконечные страдания.
В приветственной речи Ошаби выражает надежду, что после её смерти земля позволит ей остаться мёртвой. К несчастью, ничто в Рэкласте не остаётся мёртвым надолго.