@shushishtok/ability_generator
Version:
Create abilities by Typescript
56 lines (54 loc) • 1.8 kB
text/typescript
import { AbilityBuilder } from "@shushishtok/ability_generator/abilityBuilder";
export function GetAbilityData():Array<AbilityKV> {
let Abilities: Array<AbilityKV> = new Array;
Abilities.push({
Name: "shard_explosion",
ManaCost: [50, 100, 150, 200],
Cooldown: [25, 22, 19, 16],
MaxLevel: 4,
CastGestureSlot: AbilityCastGestureSlotValue.ABSOLUTE,
Type: AbilityTypes.ULTIMATE,
ScriptFile: "abilities/heroes/sven/shard_explosion",
Behavior: [AbilityBehavior.POINT, AbilityBehavior.PASSIVE, AbilityBehavior.CHANNELLED],
UnitTargetTeam: UnitTargetTeam.ENEMY,
UnitTargetType: UnitTargetType.HERO,
UnitTargetFlags: UnitTargetFlags.INVULNERABLE,
UnitDamageType: DamageType.MAGICAL,
CastAnimation: GameActivity.DOTA_CAST_ABILITY_1,
FightRecapLevel: 2,
CastRange: 1000,
HasScepterUpgrade: true,
CastPoint: 0.1,
SpellDispellableType: SpellDispellableTypes.DISPELLABLE_YES,
SpellImmunityType: SpellImmunityTypes.ENEMIES_NO,
Charges: 2,
Precache:
[
{
PrecacheType: PrecacheType.MODEL,
path: "models/props/skulls_and_bones.vmdl"
},
AbilityBuilder.AddPrecacheObject(PrecacheType.PARTICLE, "particles/heroes/sven/great_cleave.vcfp")
],
AbilitySpecials:
[
{
VarType: VarTypes.INTEGER,
Name: "damage",
Values: 50,
LinkedSpecialBonus: "special_bonus_unique_axe_4",
CalculateSpellDamageTooltip: true,
LinkedSpecialBonusField: "value2",
LinkedSpecialBonusOperation: LinkedSpecialBonusOperation.PERCENTAGE_ADD
},
{
VarType: VarTypes.INTEGER,
Name: "bonus_attack_range",
Values: [75, 100, 125, 150],
RequiresScepter: true
},
AbilityBuilder.AddAbilitySpecialFloat("spell_amp", [5, 10, 15, 20])
]
});
return Abilities;
}