Реализация
Для данной способности нам потребуется:
- 1 Способность типа Effect - Target # ID: ForceShield
- 2 Актора
- Актор типа Model # ID: ForceShield@Model
- Актор типа Model # ID: ForceShield@ImpactShield
- 1 Кнопка # ID: ForceShield
- 5 эффектов
- Эффект типа Apply Force # ID: ForceShield@AF
- Эффект типа Create Persistent # ID: ForceShield@CP
- Эффект типа Damage # ID: ForceShield@KillMissile
- Эффект типа Search Area # ID: ForceShield@Search
- Эффект типа Set # ID: ForceShield
- 2 Модели
- Модель типа Generic # ID: ForceShield@Model
- Модель типа Generic # ID: ForceShield@ImpactShield
- 1 Валидатор типа Unit Filters # ID: ForceShield@TargetIsMissile
- 1 Коллекция данных (Data Collection) # ID: ForceShield
Данные
Способность
<CAbilEffectTarget id="ForceShield">
<EditorCategories value="Race:Protoss,AbilityorEffectType:Units"/>
<Effect index="0" value="ForceShield@CP"/>
<Range value="10"/>
<CmdButtonArray index="Execute" DefaultButtonFace="ForceShield"/>
</CAbilEffectTarget>
Кнопка
<CButton id="ForceShield">
<Icon value="Assets\Textures\btn-upgrade-stetmann-zerglinghardenedshield.dds"/>
<AlertIcon value="Assets\Textures\btn-upgrade-stetmann-zerglinghardenedshield.dds"/>
<EditorCategories value="Race:Protoss"/>
</CButton>
Эффекты
<CEffectApplyForce id="ForceShield@AF">
<EditorCategories value="Race:Protoss"/>
<WhichLocation Effect="ForceShield@Search" Value="TargetUnitOrPoint"/>
<Amount value="300"/>
</CEffectApplyForce>
<CEffectCreatePersistent id="ForceShield@CP">
<EditorCategories value="Race:Protoss"/>
<PeriodCount value="450"/>
<PeriodicEffectArray value="ForceShield@Search"/>
<PeriodicPeriodArray value="0.0625"/>
</CEffectCreatePersistent>
<CEffectDamage id="ForceShield@KillMissile">
<ValidatorArray value="ForceShield@TargetIsMissile"/>
<EditorCategories value="Race:Protoss"/>
<Flags index="Kill" value="1"/>
</CEffectDamage>
<CEffectEnumArea id="ForceShield@Search">
<EditorCategories value="Race:Protoss"/>
<SearchFilters value="-;Player,Ally,Neutral,Stasis,Dead,Hidden"/>
<AreaArray Radius="6" Effect="ForceShield@Set"/>
</CEffectEnumArea>
<CEffectSet id="ForceShield@Set">
<EditorCategories value="Race:Protoss"/>
<EffectArray value="ForceShield@KillMissile"/>
<EffectArray value="ForceShield@AF"/>
</CEffectSet>
Валидатор
<CValidatorUnitFilters id="ForceShield@TargetIsMissile">
<Filters value="Missile;-"/>
</CValidatorUnitFilters>
Акторы
<CActorModel id="ForceShield@ImpactShield" parent="ModelAnimationStyleOneShot">
<EditorCategories value=""/>
<On Terms="Effect.ForceShield@KillMissile.Start" Send="Create"/>
<HostSiteOps Ops="SOpTargetPoint" HoldPosition="1" HoldRotation="1"/>
</CActorModel>
<CActorModel id="ForceShield@Model" parent="ModelAnimationStyleContinuous">
<EditorCategories value=""/>
<On Terms="Effect.ForceShield@CP.Start" Send="Create"/>
<On Terms="Effect.ForceShield@CP.Stop" Send="AnimBracketStop BSD"/>
</CActorModel>
Модели
<CModel id="ForceShield@ImpactShield">
<Model value="Assets\Effects\Terran\ArchAngel_Xanthos_Experimentation_Railgun_Impact\ArchAngel_Xanthos_Experimentation_Railgun_Impact.m3"/>
<EditorCategories value="Race:Protoss"/>
</CModel>
<CModel id="ForceShield@Model">
<Model value="Assets\Effects\Zerg\PsionicShield\PsionicShield.m3"/>
<EditorCategories value="Race:Protoss"/>
<ScaleMax value="4.000000,4.000000,4.000000"/>
<ScaleMin value="4.000000,4.000000,4.000000"/>
</CModel>