What it inherits is already merged in: this is the entry as the game compiled it.
ability_familiar_ability02 = {
_class = "ability_familiar_ability02"
_editor = {
folder_name = "Hero Familiar"
}
_multibase = [
]
m_iMaxLevel = 1
m_WeaponInfo = {
m_flBulletSpeed = 10000
}
m_iUpdateTime = 0
m_CastParticle = "particles/abilities/familiar/familiar_pillow_cast.vpcf"
m_eAbilityType = "EAbilityType_Signature"
m_bStartTrained = false
m_EffectModifier = {
_class = "modifier_diminishing_slow"
m_bIsHidden = false
_my_subclass_name = "slow"
m_sLocalizationName = "movement_slow"
m_strParticleEffect = "particles/generic/generic_slow_debuff.vpcf"
m_eDrawOverheadStatus = "OVERHEAD_DRAW_NEVER"
m_vecAutoRegisterModifierValueFromAbilityPropertyName = [
0"FireRateSlow"
]
}
m_projectileInfo = {
m_flSpeed = 1300
m_particle = "particles/abilities/familiar/familiar_pillow_projectile.vpcf"
m_flUpSpeed = 120
m_nBehaviors = "PBF_DetonateOnHitTarget | PBF_DetonateOnHitWorld"
m_LoopingSound = "Familiar.Pillow.Projectile.Lp"
m_DetonateSound = "Familiar.Pillow.Projectile.Impact"
m_flGravityScale = 0.5
m_flPhysicsRadius = 1.5
m_flTriggerRadius = 35
m_bHideWarningParticle = true
}
m_strAbilityImage = "file://{images}/hud/abilities/familiar/familiar_pillow.psd"
m_ExplosionParticle = "particles/abilities/familiar/familiar_pillow_explode.vpcf"
m_flBossDamageScale = 1
m_strCastDelaySound = "Familiar.Pillow.Cast"
m_strPillowHitSound = "Familiar.Pillow.Hit"
m_eAbilityActivation = "CITADEL_ABILITY_ACTIVATION_INSTANT_CAST"
m_nAbilityPointsCost = 0
m_vecAbilityUpgrades = [
0{
m_vecPropertyUpgrades = [
0{
m_strBonus = "-7"
m_strPropertyName = "AbilityCooldown"
}
]
}
1{
m_vecPropertyUpgrades = [
0{
m_strBonus = "35"
m_strPropertyName = "FireRateSlow"
}
1{
m_strBonus = "2m"
m_strPropertyName = "Radius"
}
]
}
2{
m_vecPropertyUpgrades = [
0{
m_strBonus = "100"
m_strPropertyName = "Damage"
}
1{
m_strBonus = "1"
m_strPropertyName = "AbilityCharges"
}
]
}
]
m_AutoChannelModifier = {
_class = "modifier_base"
m_bIsHidden = true
_my_subclass_name = "channeling"
m_strParticleStatusEffect = "particles/abilities/archer/archer_power_jump_buff.vpcf"
}
m_PreviewPathParticle = ""
m_nAbilityTargetTypes = "CITADEL_UNIT_TARGET_ALL_ENEMY"
m_strAG2CastingAction = "sack_casting"
m_AbilityBehaviorsBits = "CITADEL_ABILITY_BEHAVIOR_DISPLAYS_DAMAGE_IMPACT | CITADEL_ABILITY_BEHAVIOR_PROJECTILE | CITADEL_ABILITY_BEHAVIOR_DONT_INTERRUPT_SLIDE_ON_CAST"
m_flTargetingConeAngle = 18
m_mapAbilityProperties = {
Damage = { // Damage
m_strValue = "75"
m_strCSSClass = "tech_damage"
m_subclassScaleFunction = {
_class = "scale_function_tech_damage"
m_flStatScale = 1.6
_my_subclass_name = "Damage_scale_function"
m_eSpecificStatScaleType = "ETechPower"
}
}
Radius = { // Radius
m_strValue = "5m"
m_strCSSClass = "distance"
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
_my_subclass_name = "Radius_scale_function"
m_eSpecificStatScaleType = "ETechRange"
}
}
TechPower = { // Spirit Power
m_strValue = "0"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_eProvidedPropertyType = "MODIFIER_VALUE_TECH_POWER"
}
TossForce = {
m_strValue = "300"
}
OrbsToFire = {
m_strValue = "1"
}
WeaponPower = { // Weapon Damage
m_strValue = "0"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_eProvidedPropertyType = "MODIFIER_VALUE_WEAPON_POWER"
}
FireRateSlow = { // Fire Rate
m_strValue = "0"
m_strCSSClass = "fire_rate"
m_eStatsUsageFlags = "ConditionallyApplied"
m_eProvidedPropertyType = "MODIFIER_VALUE_FIRE_RATE_SLOW"
}
TossDuration = {
m_strValue = "0.4"
m_strCSSClass = "duration"
}
AbilityCharges = { // Charges
m_strValue = "1"
m_strCSSClass = "cast"
m_strDisableValue = "-1"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_ability_charges"
_my_subclass_name = "AbilityCharges_scale_function"
}
}
EffectDuration = { // Debuff Duration
m_strValue = "3.0"
m_strCSSClass = "duration"
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
_my_subclass_name = "EffectDuration_scale_function"
m_eSpecificStatScaleType = "ETechDuration"
}
}
AbilityCooldown = { // Cooldown
m_strValue = 25
m_strCSSClass = "cooldown"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
_my_subclass_name = "AbilityCooldown_scale_function"
m_eSpecificStatScaleType = "ETechCooldown"
}
}
AbilityDuration = { // Duration
m_strValue = "0"
m_strCSSClass = "duration"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
_my_subclass_name = "AbilityDuration_scale_function"
m_eSpecificStatScaleType = "ETechDuration"
}
}
AbilityCastDelay = { // Cast Delay
m_strValue = "0.3"
m_strCSSClass = "cast"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
}
AbilityCastRange = { // Cast Range
m_strValue = "40m"
m_bIsHidden = true
m_strCSSClass = "range"
m_eDisplayUnits = "EDisplayUnit_Meters"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_single_stat"
_my_subclass_name = "AbilityCastRange_scale_function"
m_eSpecificStatScaleType = "ETechRange"
}
}
ChannelMoveSpeed = {
m_strValue = "-1"
m_strCSSClass = "move_speed"
m_eDisplayUnits = "EDisplayUnit_MetersPerSecond"
m_bCanSetTokenOverride = true
}
FadingSlowPercent = { // Fading Move Speed
m_strValue = "36"
m_strCSSClass = "slow"
m_eStatsUsageFlags = "ConditionallyApplied"
m_eProvidedPropertyType = "MODIFIER_VALUE_MOVEMENT_SPEED_SLOW_PERCENT"
}
AbilityChannelTime = { // Channel Duration
m_strValue = "0"
m_strCSSClass = "cast"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_multi_stats"
_my_subclass_name = "scale_duration"
m_vecScalingStats = [
0"EChannelDuration"
1"ETechDuration"
]
}
}
AbilityResourceCost = {
m_strValue = "0"
m_strCSSClass = "cast"
m_strDisableValue = "0"
m_bCanSetTokenOverride = true
}
CDReduceOnPillowHit = {
m_strValue = "5"
}
AbilityUnitTargetLimit = {
m_strValue = "1"
m_bCanSetTokenOverride = true
}
AbilityPostCastDuration = {
m_strValue = "0.2"
m_strDisableValue = "0"
}
AbilityCooldownBetweenCharge = { // Charge Delay
m_strValue = "8"
m_strCSSClass = "charge_cooldown"
m_strDisableValue = "-2"
m_bCanSetTokenOverride = true
m_subclassScaleFunction = {
_class = "scale_function_ability_recharge_time"
_my_subclass_name = "scale_function_ability_recharge_time"
}
}
}
m_nAbillityUnlocksCost = 1
m_AbilityTooltipDetails = {
m_vecAbilityInfoSections = [
0{
m_strLocString = "#ability_familiar_ability02_desc" // Throw your trusty pillow inflicting {g:citadel_inline_attribute:'SpiritDamage'} and heavy {g:citadel_inline_attribute:'KnockBack'}.<br><br>Landing hits reduces the cooldown of your other abilities.
m_vecBasicProperties = [
0"EffectDuration"
1"CDReduceOnPillowHit"
]
m_vecAbilityPropertiesBlock = [
0{
m_vecAbilityProperties = [
0{
m_strImportantProperty = "Damage"
}
1{
m_strImportantProperty = "FadingSlowPercent"
}
2{
m_bShowPropertyValue = true
m_strImportantProperty = "StatusEffectDisplacement"
m_strStatusEffectValue = "TossDuration"
}
]
}
]
}
]
}
m_mapCastEventParticles = {
CAST_COMPLETED = "particles/abilities/familiar/familiar_pillow_cast_completed.vpcf"
}
m_skillshotMissParticle = ""
m_bitsInterruptingStates = "MODIFIER_STATE_STUNNED"
m_eAbilityTargetingShape = "CITADEL_ABILITY_TARGETING_SHAPE_CIRCLE"
m_strAG2ChannelingAction = "sack_channeling"
m_flTargetingConeHalfWidth = 50
m_eAbilityTargetingLocation = "CITADEL_ABILITY_TARGETING_LOCATION_NONE"
m_strAG2CastCompletedAction = "sack_cast_completed"
m_strAbilityChargeReadySound = ""
m_strAbilityOffCooldownSound = ""
m_bitsChannelEnabledStateMask = "MODIFIER_STATE_BUSY_WITH_ACTION"
m_bitsPreCastEnabledStateMask = "MODIFIER_STATE_BUSY_WITH_ACTION | MODIFIER_STATE_IN_ABILITY_ALLOW_ZOOM"
m_bitsPostCastEnabledStateMask = "MODIFIER_STATE_BUSY_WITH_ACTION | MODIFIER_STATE_IN_ABILITY_ALLOW_ZOOM"
m_bShowTargetingPreviewWhileCasting = true
m_bShowTargetingPreviewWhileChanneling = true
}
