회오리
레벨: (1–20)
소모: 마나 (15–25)
시전 속도: 0.75 초
치명타 확률: 5.00%
추가 피해 효율: 95%
요구 사항 레벨 (34–70), (50–98) 민첩, (35–68) 지능
주변의 적의 이동을 방해하고 계속해서 피해를 주는 회오리를 생성합니다. 회오리는 일정 시간 동안 앞으로 전진하며, 그동안 플레이어의 투사체와 충돌시켜 적인 것처럼 피해를 줄 수 있습니다. 그다음 2차 지속시간 동안에는 회오리가 적을 추적하며, 플레이어의 투사체에 받은 피해 일부를 추가로 줍니다.
(31–414)~(46–620) 물리 피해
0.25초마다 피해 줌
기본 지속시간 1.5
기본 2차 지속시간 4
초기 지속시간 동안 플레이어의 투사체에 최대 20번 피격될 수 있습니다
받은 피해의 10%를 적에게 반사
범위 내 적들이 이동 방해를 받아 이동 속도 -1% 감소
회오리 이동 속도 (0–57)% 증가
회오리 최대 1

퀄리티로 인한 추가 효과:
회오리 이동 속도 (0–20)% 증가
일치하는 색의 홈에 장착하여 스킬을 획득하십시오. 제거하려면 홈을 우클릭하십시오.
Tornado
Level Effect /40
Implicit
기본 2차 지속시간 4
0.25초마다 피해 줌
받은 피해의 10%를 적에게 반사
회오리 최대 1
초기 지속시간 동안 플레이어의 투사체에 최대 20번 피격될 수 있습니다
기본 지속시간 1.5
범위 내 적들이 이동 방해를 받아 이동 속도 -1% 감소
("이동 방해"가 이동 속도를 30% 감소시킵니다.)
레벨요구 사항 레벨지능민첩소모31~46 물리 피해회오리 이동 속도 #% 증가경험치
13435501531, 46252,595
23636531536, 543314,394
33838551642, 636388,734
44040581649, 739477,437
54242601757, 8512583,786
64444631866, 9915710,359
74646661876, 115181,355,511
84848681988, 133211,138,877
950497119102, 153241,368,233
1052517420118, 177271,638,338
1154537620136, 204301,956,648
1256557921157, 235333,655,184
1358578221181, 271363,017,327
1460598422208, 312393,576,232
1562608722239, 358429,164,731
1664629023274, 4114517,861,428
1766649224315, 4724846,032,386
1868669524361, 5415187,248,039
1969679624386, 58054157,972,052
2070689825414, 62057
217225474, 71160
227426542, 81363
237626620, 93066
247827709, 106469
258027810, 121572
268228925, 138875
2784281057, 158578
2886291206, 180881
2988301375, 206384
3090301568, 235287
3191301674, 251188
3292311787, 268090
3393311907, 286191
3494312035, 305393
3595312172, 325894
3696322318, 347796
3797322473, 371097
3898322639, 395899
3999332815, 4222100
40100333003, 4504102
Attribute /9

회오리

KeyValue
CostiLvl 1: Normal: 1x기회의 오브
Acronym지속시간, 투사체, Hinder
DropLevel 34
BaseType 회오리
Class 스킬 젬
TargetTypesGround, Enemy
TypeSpell, Duration, Trappable, Totemable, Mineable, Triggerable, Damage, Physical, Area, Orb, AreaSpell
ItemTypeMetadata/Items/Gems/SkillGemTornado
Referencepoe.ninja, Community Wiki
시련 무기 /1
WeightDesc
1000 (T5)분할 화살 또는 회오리 사격으로 공격 시 20레벨 회오리 발동
포인트 아이템 /1 ⍟
상어 회오리 이펙트
회오리에 상어 이펙트를 적용합니다.
미궁 인챈트 helmet /12 ⍟
레벨이름ModWeight
무자비한 미궁Enchantment Tornado Damage 1회오리 피해 25% 증가100
영원의 미궁Enchantment Tornado Damage 2회오리 피해 40% 증가100
무자비한 미궁Enchantment Tornado Shot Damage 1회오리 사격 피해 25% 증가100
영원의 미궁Enchantment Tornado Shot Damage 2회오리 사격 피해 40% 증가100
무자비한 미궁Enchantment Tornado Area Of Effect 1회오리 효과 범위 16% 증가100
영원의 미궁Enchantment Tornado Area Of Effect 2회오리 효과 범위 24% 증가100
무자비한 미궁Enchantment Tornado Movement Speed 1회오리 이동 속도 20% 증가100
영원의 미궁Enchantment Tornado Movement Speed 2회오리 이동 속도 30% 증가100
무자비한 미궁Enchantment Tornado Shot Critical Strike Chance 1회오리 사격 치명타 확률 60% 증가100
영원의 미궁Enchantment Tornado Shot Critical Strike Chance 2회오리 사격 치명타 확률 90% 증가100
무자비한 미궁Enchantment Tornado Shot Num Of Secondary Projectiles 1회오리 사격이 부가 투사체 1개 추가 발사
영원의 미궁Enchantment Tornado Shot Num Of Secondary Projectiles 2회오리 사격이 부가 투사체 1개 추가 발사100
Supported By /82 ⍟
  • Active Type: Spell, Duration, Trappable, Totemable, Mineable, Triggerable, Damage, Physical, Area, Orb, AreaSpell
  • Icon이름
    화염 피해 추가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    냉기 피해 추가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    효과 범위 증가 보조
    효과 범위를 갖는 모든 스킬에 적용됩니다.
    번개 피해 추가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    치명타 증가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    치명타 피해 증가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    밀어내기 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    생명력 흡수 보조
    적을 명중하는 모든 스킬에 적용되며 명중 시 적에게 준 피해에 비례하여 생명력을 흡수합니다.
    카오스 피해 추가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    기절 보조
    적을 명중하는 모든 스킬에 적용되어 적을 더 쉽게 기절시킬 수 있습니다.
    덫 보조
    주문 또는 활이나 마법봉을 사용하는 스킬에 적용됩니다. 스킬 사용 시 덫이 투척되며 이 덫은 주변에 적이 지나가면 스스로 스킬을 사용합니다. 단, 집중 유지 스킬은 사용할 수 없습니다.
    아이템 희귀도 보조
    적을 처치하는 모든 스킬에 적용됩니다.
    시전 속도 증가 보조
    비-즉시 시전 주문 스킬에 적용됩니다.
    효과 집중 보조
    피해를 주는 여부와 관련 없이 범위 효과를 주는 모든 스킬에 적용됩니다.
    지속시간 증가 보조
    지속시간이 있는 모든 스킬에 적용됩니다.
    냉기 화염 전환 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    연소 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    원소 확산 보조
    적을 명중하거나 원소 상태 이상을 유발하는 모든 스킬에 적용됩니다.
    마무리 타격 보조
    적을 명중하는 모든 스킬에 적용됩니다. 보조 대상 스킬로 생명력이 최대 생명력의 10% 이하인 적을 명중하면 해당 적이 즉사합니다.
    강철의 의지 보조
    주문 스킬에 적용됩니다. 주문 사용 시 힘으로 인한 물리 근접 피해가 증가하고 주문 피해도 증가합니다.
    주문 토템 보조
    비-발동형 주문 스킬에 적용됩니다. 토템을 소환하여 시전자 대신 주문을 시전하게 합니다.
    연쇄 폭발 지뢰 보조
    주문 스킬 또는 활이나 마법봉을 사용하는 공격 스킬에 적용됩니다. 스킬 사용 시 지뢰가 투척되며, 플레이어가 지뢰를 기폭하면 지뢰에서 스킬이 시전됩니다. 집중 유지 스킬에는 적용되지 않습니다.
    도망칠 확률 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    실명 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    화염 관통 보조
    적을 명중하는 모든 스킬에 적용됩니다. 적의 화염 저항을 관통합니다.
    냉기 관통 보조
    적을 명중하는 모든 스킬에 적용됩니다. 적의 냉기 저항을 관통합니다.
    번개 관통 보조
    적을 명중하는 모든 스킬에 적용됩니다. 적의 번개 저항을 관통합니다.
    원소 관통 보조
    적을 명중하는 모든 스킬에 적용됩니다. 적의 원소 저항을 관통합니다.
    치명타 시 권능 충전 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    화상 피해 보조
    적을 명중하거나 직접 화상 피해를 주는 모든 스킬에 적용됩니다.
    사술 손길 보조
    적을 명중하는 스킬과 사술 저주 스킬이 함께 연결되어 있어야 작동합니다. 사술이 적용되려면 연결된 다른 스킬이 적을 명중해야 합니다. 토템, 덫, 지뢰 스킬에는 사용할 수 없습니다. 또한 소환수도 이 방법으로 사술을 적용할 수 없습니다.
    지속시간 감소 보조
    지속시간이 있는 모든 스킬에 적용됩니다.
    사망 시 시전 보조
    플레이어가 사망하면 보조 대상 주문 스킬이 발동됩니다. 토템, 덫, 지뢰 스킬에는 적용되지 않으며 바알 스킬, 집중 유지 스킬, 점유가 있는 스킬은 발동되지 않습니다.
    피격 시 시전 보조
    플레이어가 받은 누적 피해가 일정량을 초과하면 보조 대상 주문 스킬이 발동합니다. 토템, 덫, 지뢰 스킬에는 적용되지 않으며 바알 스킬, 집중 유지 스킬, 점유가 있는 스킬은 발동되지 않습니다.
    기절 시 시전 보조
    플레이어가 기절하면 일정 확률로 보조 대상 주문이 발동됩니다. 토템, 덫, 지뢰 스킬에는 적용되지 않으며 바알 스킬, 집중 유지 스킬, 점유가 있는 스킬에는 발동되지 않습니다.
    막기 확률 감소 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    물리 번개 전환 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    얼음 쐐기 보조
    직접 사용해 적을 명중하는 모든 스킬에 적용됩니다. 토템, 덫, 지뢰 스킬에는 적용되지 않습니다.
    체온저하 보조
    피해를 주는 모든 스킬에 적용됩니다.
    자극 보조
    직접 사용해 적을 명중하는 모든 스킬에 적용됩니다. 토템, 덫, 지뢰 스킬에는 적용되지 않습니다.
    치명타 고통 격화 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    공허 조작 보조
    피해를 주는 모든 스킬에 적용됩니다.
    제어된 파괴 보조
    공격 스킬 또는 피해를 주는 주문 스킬에 적용됩니다.
    고통 격화 보조
    지속시간이 있는 스킬 또는 명중 시 상태 이상을 유발하는 스킬에 적용됩니다.
    원소 집중 보조
    적을 공격하거나 화상 또는 원소 상태 이상을 유발하는 모든 스킬에 적용됩니다.
    점화 확산 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    중독 확률 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    치명적인 상태 이상 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    부패 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    효력 보조
    피해를 주거나 지속시간이 있는 모든 스킬에 적용됩니다.
    끔찍한 독소 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    번제 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    벌어지는 상처 보조
    적을 명중하거나 상태 이상을 유발하는 모든 스킬에 적용됩니다.
    포악함 보조
    피해를 주는 모든 스킬에 적용됩니다.
    비전 쇄도 보조
    플레이어가 각각의 보조 대상 주문에 사용한 마나의 총계가 일정량을 초과하면 버프를 부여합니다. 토템, 덫, 지뢰 스킬이나 점유가 있는 스킬에는 적용되지 않습니다.
    환영 소환 보조
    공격 스킬과 소환수를 생성하는 스킬에 적용됩니다. 공격 스킬 또는 소환수가 적을 처치하거나 희귀/고유 적을 명중할 경우, 일정 확률로 환영을 불러냅니다. 환영은 물리 피해를 주는 관통형 투사체 주문을 시전합니다
    사무치는 한기 보조
    적을 냉각시키거나 냉각 지역을 생성하는 스킬에 적용됩니다.
    에너지 흡수 보조
    적을 명중하는 모든 스킬에 적용됩니다. 명중 시, 주는 피해에 비례하여 에너지 보호막을 회복합니다.
    격화 보조
    직접 시전하는 주문 스킬에 적용됩니다. 발동형 스킬, 바알 스킬, 즉시 시전 스킬, 집중 유지 스킬, 점유가 있는 스킬이나 소환수 생성 스킬에는 적용되지 않습니다. 또한 토템, 덫, 지뢰 스킬에도 적용되지 않습니다.
    고충격 지뢰 보조
    주문 스킬 또는 활이나 마법봉을 사용하는 공격 스킬에 적용됩니다. 스킬 사용 시 지뢰가 투척되며, 플레이어가 지뢰를 기폭하면 지뢰에서 스킬이 시전됩니다. 집중 유지 스킬에는 적용되지 않습니다.
    각성한 화염 피해 추가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    각성한 포악함 보조
    피해를 주는 모든 스킬에 적용됩니다.
    각성한 화상 피해 보조
    적을 명중하거나 직접 화상 피해를 주는 모든 스킬에 적용됩니다.
    각성한 화염 관통 보조
    적을 명중하는 모든 스킬에 적용됩니다. 적의 화염 저항을 관통합니다.
    각성한 냉기 피해 추가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    각성한 냉기 관통 보조
    적을 명중하는 모든 스킬에 적용됩니다. 적의 냉기 저항을 관통합니다.
    각성한 치명적인 상태 이상 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    각성한 고통 격화 보조
    지속시간이 있는 스킬 또는 명중 시 상태 이상을 유발하는 스킬에 적용됩니다.
    각성한 공허 조작 보조
    피해를 주는 모든 스킬에 적용됩니다.
    각성한 카오스 피해 추가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    각성한 번개 피해 추가 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    각성한 제어된 파괴 보조
    공격 스킬 또는 피해를 주는 주문 스킬에 적용됩니다.
    각성한 사술 손길 보조
    적을 명중하는 스킬과 사술 저주 스킬이 함께 연결되어 있어야 작동합니다. 사술이 적용되려면 연결된 다른 스킬이 적을 명중해야 합니다. 토템, 덫, 지뢰 스킬에는 사용할 수 없습니다. 또한 소환수도 이 방법으로 사술을 적용할 수 없습니다.
    각성한 원소 집중 보조
    적을 공격하거나 화상 또는 원소 상태 이상을 유발하는 모든 스킬에 적용됩니다.
    각성한 효과 범위 증가 보조
    효과 범위를 갖는 모든 스킬에 적용됩니다.
    각성한 번개 관통 보조
    적을 명중하는 모든 스킬에 적용됩니다. 적의 번개 저항을 관통합니다.
    각성한 벌어지는 상처 보조
    적을 명중하거나 상태 이상을 유발하는 모든 스킬에 적용됩니다.
    잔혹 보조
    적을 명중하는 모든 스킬에 적용됩니다. 소환수는 잔혹을 획득할 수 없습니다.
    과충전 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    주문칼날 보조
    적에게 명중하는 주문에 적용됩니다. 소환수가 사용하는 스킬에는 적용되지 않습니다.
    포식 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    가학증 보조
    적을 명중하는 모든 스킬에 적용됩니다.
    회오리
    구조물
    monster no drops or experience [1]
    Tornado
    SpectreN
    Tagsconstruct, ghost_armour, is_unarmed, large_model, non_attacking, very_slow_movement
    생명력
    100%
    Ailment Threshold
    100%
    저항
    0 0 0 0
    Damage
    100%
    정확도
    100%
    치명타 확률
    +5%
    치명타 피해 배율
    +130%
    Attack Distance
    6 ~ 6
    Attack Time
    1 Second
    Damage Spread
    ±0%
    경험치
    100%
    Model Size
    100%
    Type
    Tornado
    Metadata
    Tornado
    IsSummoned
    Y

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    
    BaseEvents
    {
    	on_construction_complete = "this.immune_to_hellscape = true;"
    }
    
    Animated
    {
    	animated_object = "Metadata/Monsters/Daemon/Daemon.ao"
    }
    
    Positioned
    {
    	trigger_blocking = true
    }
    
    Stats
    {
    	immune_to_curses = 1
    	immune_to_auras_from_other_entities = 1
    	set_item_drop_slots = 0
    	set_monster_no_drops_or_experience = 1
    	set_monster_do_not_fracture = 1
    	set_max_frenzy_charges = 0
    	set_max_endurance_charges = 0
    	set_max_power_charges = 0
    	base_cannot_be_stunned = 1
    	cannot_be_knocked_back = 1
    	set_phase_through_objects = 1
    	set_monster_grants_no_flask_charges = 1
    	set_maximum_life_is_one = 1
    	set_cannot_die = 1
    	set_hidden_monster_can_have_auras = 1
    	set_hide_mini_life_bar = 1
    	does_not_count_as_monster = 1
    }
    
    Life
    {
    	corpse_usable = false
    	ignore_on_life_changed_stats = true
    }
    
    Pathfinding
    {
    	base_speed = 8
    }
    
    DiesAfterTime
    {
    
    }
    
    StateMachine
    {
    	define_shared_state =
    	"
    		tornado_radius;
    		tornado_state;
    
    		tornado_physical;
    		tornado_fire;
    		tornado_cold;
    		tornado_lightning;
    		tornado_chaos;
    		tornado_main_element;
    	"
    }

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Monster"
    
    Targetable
    {
    	no_highlight = true
    	targetable = false
    }
    
    Render
    {
    	allow_attached_arrows = false
    }
    
    BaseEvents
    {
    	on_construction_complete =
    	"
    		this.animated_object.is_high_priority_effect = true;
    		this.tornado_aoe = AddAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, , ScaleMiscAnimated( TornadoAoe, GetState( tornado_radius ) ), 5 );
    		IfState( tornado_state, <2,
    		{
    			this.tornado = AddAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao,  );
    			QueueAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao, tornado_idle_01 );
    			this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/default_Start.epk );
    		} );
    		IfState( tornado_state, 0,
    		{
    			this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/can_Target.epk );
    		} );
    
    		IfState( tornado_main_element, >0,
    		{
    			TriggerStateBracket( changed_main_element, tornado_main_element );
    		} );
    	"
    }
    
    StateMachine
    {
    	define_state = "tornado_last_element"
    
    	on_exit_state_tornado_state_0 =
    	"
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/can_Target.epk );
    	"
    
    	on_change_state_tornado_radius =
    	"
    		IfState( tornado_state, <2,
    		{
    			ScaleAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, ScaleMiscAnimated( TornadoAoe, GetState( tornado_radius ) ) );
    		} );
    	"
    
    	// Finished
    	on_state_tornado_state_2 =
    	"
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao, tornado_end_01, 1, false, true );
    		Delay( 1.4, { PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_end_01 ); } );
    		QueueAnimationAttachedByIndex( Metadata/Effects/Spells/tornado_spell/tornado.ao, -1 );
    
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Physical.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Cold.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Fire.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Lightning.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Chaos.epk);
    	"
    	
    	// Replaced
    	on_state_tornado_state_3 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/recast_Fade.epk );
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_end_01 );
    		
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos_transform.epk );
    
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Physical.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Cold.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Fire.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Lightning.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Chaos.epk);
    	"
    
    	on_change_state_tornado_main_element =
    	"
    		TriggerStateBracket( remove_element, tornado_last_element );
    
    		IfState( tornado_main_element, 1,
    		{
    			TriggerStateBracket( element_to_phys, tornado_last_element );
    			PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_01 );
    			QueueAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao, tornado_idle_01 );
    			this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Physical.epk);
    		},
    		{
    			QueueAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao, tornado_idle_elements_01 );
    			this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/default_Start.epk );
    			this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Physical.epk);
    		} );
    
    		SetStateTo( tornado_last_element, GetState( tornado_main_element ) );
    
    		TriggerStateBracket( changed_main_element, tornado_main_element );
    	"
    }
    
    Brackets
    {
    	define_bracket = "remove_element; element_to_phys; changed_main_element"
    
    	remove_element_2 = "
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Cold.epk);
    	"
    
    	remove_element_3 = "
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Fire.epk);
    	"
    
    	remove_element_4 = "
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Lightning.epk);
    	"
    
    	remove_element_5 = "
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Chaos.epk);
    	"
    
    	element_to_phys_2 = "this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold_off.epk, 1.0 );"
    	element_to_phys_3 = "this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire_off.epk, 1.0 );"
    	element_to_phys_4 = "this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning_off.epk, 1.0 );"
    	element_to_phys_5 = "this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos_off.epk, 1.0 );"
    
    	// Cold
    	changed_main_element_2 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold_transform.epk, 1.0 );
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Cold.epk);
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_cold_01 );
    	"
    
    	// Fire
    	changed_main_element_3 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire_transform.epk, 1.0 );
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Fire.epk);
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_fire_01 );
    	"
    
    	// Lightning
    	changed_main_element_4 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning_transform.epk, 1.0 );
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Lightning.epk);
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_light_01 );
    	"
    
    	// Chaos
    	changed_main_element_5 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos_transform.epk, 1.0 );
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Chaos.epk);
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_chaos_01 );
    	"
    }
    
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/Tornado/Tornado"] = {
        name = "Tornado",
        life = 1,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 1,
        damageSpread = 0,
        attackTime = 1,
        attackRange = 6,
        accuracy = 1,
        skillList = {
        },
        modList = {
        },
    }
    
    monster no drops or experience [1]
    IdMonsterNoDropsOrExperience
    FamilyMonsterNoDropsOrExperience
    Domains몬스터 (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • monster no drops or experience Min: 1 Max: 1 Global
  • 회오리
    구조물
    monster no drops or experience [1]
    Tornado
    SpectreN
    Tagsconstruct, ghost_armour, is_unarmed, large_model, non_attacking, very_slow_movement
    생명력
    100%
    Ailment Threshold
    100%
    저항
    0 0 0 0
    Damage
    100%
    정확도
    100%
    치명타 확률
    +5%
    치명타 피해 배율
    +130%
    Attack Distance
    6 ~ 6
    Attack Time
    1 Second
    Damage Spread
    ±0%
    경험치
    100%
    Model Size
    100%
    Type
    Tornado
    Metadata
    TornadoShark
    IsSummoned
    Y

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    
    BaseEvents
    {
    	on_construction_complete = "this.immune_to_hellscape = true;"
    }
    
    Animated
    {
    	animated_object = "Metadata/Monsters/Daemon/Daemon.ao"
    }
    
    Positioned
    {
    	trigger_blocking = true
    }
    
    Stats
    {
    	immune_to_curses = 1
    	immune_to_auras_from_other_entities = 1
    	set_item_drop_slots = 0
    	set_monster_no_drops_or_experience = 1
    	set_monster_do_not_fracture = 1
    	set_max_frenzy_charges = 0
    	set_max_endurance_charges = 0
    	set_max_power_charges = 0
    	base_cannot_be_stunned = 1
    	cannot_be_knocked_back = 1
    	set_phase_through_objects = 1
    	set_monster_grants_no_flask_charges = 1
    	set_maximum_life_is_one = 1
    	set_cannot_die = 1
    	set_hidden_monster_can_have_auras = 1
    	set_hide_mini_life_bar = 1
    	does_not_count_as_monster = 1
    }
    
    Life
    {
    	corpse_usable = false
    	ignore_on_life_changed_stats = true
    }
    
    Pathfinding
    {
    	base_speed = 8
    }
    
    DiesAfterTime
    {
    
    }
    
    StateMachine
    {
    	define_shared_state =
    	"
    		tornado_radius;
    		tornado_state;
    
    		tornado_physical;
    		tornado_fire;
    		tornado_cold;
    		tornado_lightning;
    		tornado_chaos;
    		tornado_main_element;
    	"
    }

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Monster"
    
    Targetable
    {
    	no_highlight = true
    	targetable = false
    }
    
    Render
    {
    	allow_attached_arrows = false
    }
    
    BaseEvents
    {
    	on_construction_complete =
    	"
    		this.animated_object.is_high_priority_effect = true;
    		this.tornado_aoe = AddAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, , ScaleMiscAnimated( TornadoAoe, GetState( tornado_radius ) ), 5 );
    		IfState( tornado_state, <2,
    		{
    			this.tornado = AddAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao,  );
    			QueueAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao, tornado_idle_01 );
    			this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/default_Start.epk );
    		} );
    		IfState( tornado_state, 0,
    		{
    			this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/can_Target.epk );
    		} );
    
    		IfState( tornado_main_element, >0,
    		{
    			TriggerStateBracket( changed_main_element, tornado_main_element );
    		} );
    	"
    }
    
    StateMachine
    {
    	define_state = "tornado_last_element"
    
    	on_exit_state_tornado_state_0 =
    	"
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/can_Target.epk );
    	"
    
    	on_change_state_tornado_radius =
    	"
    		IfState( tornado_state, <2,
    		{
    			ScaleAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, ScaleMiscAnimated( TornadoAoe, GetState( tornado_radius ) ) );
    		} );
    	"
    
    	// Finished
    	on_state_tornado_state_2 =
    	"
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao, tornado_end_01, 1, false, true );
    		Delay( 1.4, { PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_end_01 ); } );
    		QueueAnimationAttachedByIndex( Metadata/Effects/Spells/tornado_spell/tornado.ao, -1 );
    
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Physical.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Cold.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Fire.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Lightning.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Chaos.epk);
    	"
    	
    	// Replaced
    	on_state_tornado_state_3 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/recast_Fade.epk );
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_end_01 );
    		
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos_transform.epk );
    
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Physical.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Cold.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Fire.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Lightning.epk);
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Chaos.epk);
    	"
    
    	on_change_state_tornado_main_element =
    	"
    		TriggerStateBracket( remove_element, tornado_last_element );
    
    		IfState( tornado_main_element, 1,
    		{
    			TriggerStateBracket( element_to_phys, tornado_last_element );
    			PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_01 );
    			QueueAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao, tornado_idle_01 );
    			this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Physical.epk);
    		},
    		{
    			QueueAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado.ao, tornado_idle_elements_01 );
    			this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/default_Start.epk );
    			this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Physical.epk);
    		} );
    
    		SetStateTo( tornado_last_element, GetState( tornado_main_element ) );
    
    		TriggerStateBracket( changed_main_element, tornado_main_element );
    	"
    }
    
    Brackets
    {
    	define_bracket = "remove_element; element_to_phys; changed_main_element"
    
    	remove_element_2 = "
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Cold.epk);
    	"
    
    	remove_element_3 = "
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Fire.epk);
    	"
    
    	remove_element_4 = "
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Lightning.epk);
    	"
    
    	remove_element_5 = "
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos_transform.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos.epk );
    		this.tornado.RemoveEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Chaos.epk);
    	"
    
    	element_to_phys_2 = "this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold_off.epk, 1.0 );"
    	element_to_phys_3 = "this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire_off.epk, 1.0 );"
    	element_to_phys_4 = "this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning_off.epk, 1.0 );"
    	element_to_phys_5 = "this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos_off.epk, 1.0 );"
    
    	// Cold
    	changed_main_element_2 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Cold_transform.epk, 1.0 );
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Cold.epk);
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_cold_01 );
    	"
    
    	// Fire
    	changed_main_element_3 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Fire_transform.epk, 1.0 );
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Fire.epk);
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_fire_01 );
    	"
    
    	// Lightning
    	changed_main_element_4 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Lightning_transform.epk, 1.0 );
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Lightning.epk);
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_light_01 );
    	"
    
    	// Chaos
    	changed_main_element_5 =
    	"
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/skin_Chaos_transform.epk, 1.0 );
    		this.tornado.AddEffectPack( Metadata/Effects/Spells/tornado_spell/EPKs/fx_Chaos.epk);
    		PlayAnimationAttached( Metadata/Effects/Spells/tornado_spell/tornado_aoe.ao, tornado_AoE_idle_chaos_01 );
    	"
    }
    
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/Tornado/TornadoShark"] = {
        name = "Tornado",
        life = 1,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 1,
        damageSpread = 0,
        attackTime = 1,
        attackRange = 6,
        accuracy = 1,
        skillList = {
        },
        modList = {
        },
    }
    
    monster no drops or experience [1]
    IdMonsterNoDropsOrExperience
    FamilyMonsterNoDropsOrExperience
    Domains몬스터 (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • monster no drops or experience Min: 1 Max: 1 Global
  • Community Wiki

    Edit

    Tornado

    Tornado is a skill that launches a tornado that repeatedly damages enemies around it. It will move forward for a duration, during which your projectiles can collide with it to deal damage as though it was an enemy. Then it will chase down enemies for a secondary duration, and reflect a portion of the damage it took from your projectiles to them in addition to its own damage. Note only projectiles that can collide with enemies contribute to Tornado's damage, so skills like Rolling Magma and Cremation cannot contribute.

    Version history

    VersionChanges
    3.17.0
  • Tornado now deals 31 to 46 Physical Damage at gem level 1 (previously 31 to 47) up to 414 to 620 at gem level 20 (previously 290 to 435).
  • Now has 95% Effectiveness of Added Damage at all gem levels (previously 65%).
  • 3.16.0
  • Tornado has been added to the game.

  • Wikis Content is available under CC BY-NC-SA 3.0 unless otherwise noted.