{ id = "ability.invoker.forge_spirit" name = "#DOTA_Import_Forge_Spirit" desc = "#DOTA_Import_Forge_Spirit_Desc" template_group = "#DOTA_Workshop_SubmissionType_Ability" template_subgroup = "#npc_dota_hero_invoker" directory = "invoker/forge_spirit" game_unit = "npc_dota_invoker_forged_spirit" workshop_tags = [ "Ability", "npc_dota_invoker_forged_spirit", "forge_spirit" ] models = [ { id = "model_forge_spirit" s1_legacy_name = "model0" name = "#DOTA_Import_Forge_Spirit" auto_hitbox_set_name = "default" default_portrait_model = "models/heroes/invoker/forge_spirit.vmdl" lod_list = [ { id = "mesh_world" s1_legacy_name = "lod1" name = "#DOTA_Workshop_LOD1Title" desc = "#DOTA_Workshop_LOD1Desc" max_polygons = 3000 }, ] material_list = [ { id = "material_forge_spirit" s1_legacy_name = "vmt0" name = "#DOTA_Import_Mat0Title_Generic" desc = "#DOTA_Import_Mat0Desc_Generic" template_vmat = "materials/models/heroes/invoker/forge_spirit_color.vmat" max_tex_width = 512 max_tex_height = 512 }, ] anim_list = [ { id = "animation_spawn" s1_legacy_name = "anim0" name = "#DOTA_Workshop_Animation_Spawn" suffix = "_anim_spawn" sequence_name = "spawn" activity_name = "ACT_DOTA_SPAWN" default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_spawn.dmx" }, { id = "animation_attack" s1_legacy_name = "anim3" name = "#DOTA_Workshop_Animation_Attack" desc = "#DOTA_Workshop_Animation_Attack_Desc" suffix = "_anim_attack" sequence_name = "attack" activity_name = "ACT_DOTA_ATTACK" has_attack_point= true anim_length = 0.8 default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_attack.dmx" }, { id = "animation_die" s1_legacy_name = "anim4" name = "#DOTA_Workshop_Animation_Die" suffix = "_anim_die" sequence_name = "die" activity_name = "ACT_DOTA_DIE" default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_death.dmx" }, { id = "animation_disabled" s1_legacy_name = "anim5" name = "#DOTA_Workshop_Animation_Disabled" suffix = "_anim_disabled" sequence_name = "disabled" activity_name = "ACT_DOTA_DISABLED" default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_stun.dmx" }, { id = "animation_flail" s1_legacy_name = "anim6" name = "#DOTA_Workshop_Animation_Flail" desc = "#DOTA_Workshop_Animation_Flail_Desc" suffix = "_anim_flail" sequence_name = "flail" activity_name = "ACT_DOTA_FLAIL" default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_flail.dmx" }, { id = "animation_attack2" s1_legacy_name = "anim7" name = "#DOTA_Workshop_Animation_Attack2" desc = "#DOTA_Workshop_Animation_Attack2_Desc" suffix = "_anim_attack2" sequence_name = "attack2" activity_name = "ACT_DOTA_ATTACK" has_attack_point= true anim_length = 0.8 optional = true }, { id = "animation_die2" s1_legacy_name = "anim13" name = "#DOTA_Workshop_Animation_Die2" suffix = "_anim_die2" sequence_name = "die2" activity_name = "ACT_DOTA_DIE" optional = true }, ] anim_bundle_list = [ { id = "idle_anims" name = "#DOTA_Workshop_Animation_Idle" bundle_type = "loop_and_rare" anim_list = [ { id = "passive_anim_loop" s1_legacy_name = "anim1" name = "#DOTA_Workshop_Animation_Idle" desc = "#DOTA_Workshop_Animation_Idle_Desc" suffix = "_anim_idle" sequence_name = "idle" activity_name = "ACT_DOTA_IDLE" looping = true default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_idle.dmx" }, { id = "passive_anim_rare" s1_legacy_name = "anim14" name = "#DOTA_Workshop_Animation_IdleRare" desc = "#DOTA_Workshop_Animation_IdleRare_Desc" suffix = "_anim_idlerare" sequence_name = "idle_alt" activity_name = "ACT_DOTA_IDLE_RARE" optional = true }, ] }, { id = "portrait_anims" name = "#DOTA_Workshop_Animation_PortraitIdle" bundle_type = "loop_and_rare" fallback_bundles = [ "idle_anims" ] optional = true anim_list = [ { id = "passive_anim_loop" s1_legacy_name = "anim8" name = "#DOTA_Workshop_Animation_PortraitIdle" suffix = "_portrait_idle" sequence_name = "portrait_idle" activity_name = "ACT_DOTA_CAPTURE" looping = true activity_weight = 3 }, { id = "passive_anim_rare" s1_legacy_name = "anim9" name = "#DOTA_Workshop_Animation_PortraitRare" suffix = "_portrait_idle_alt" sequence_name = "portrait_idle_alt" activity_name = "ACT_DOTA_CAPTURE" optional = true }, ] }, { id = "run_anims" name = "#DOTA_Workshop_Animation_Run" bundle_type = "run_anim_bundle" compound_sequence_name = "turns" anim_list = [ { id = "run_anim_base" s1_legacy_name = "anim2" name = "#DOTA_Workshop_Animation_Run" suffix = "_run" sequence_name = "run" activity_name = "ACT_DOTA_RUN" looping = true default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_run.dmx" }, { id = "run_anim_turnpose_center" s1_legacy_name = "anim10" name = "#DOTA_Workshop_Animation_TurnPoseCenter" desc = "#DOTA_Workshop_Animation_TurnPoseCenter_Desc" suffix = "_turn_center" sequence_name = "turn_center" optional = true default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_turn_center.dmx" }, { id = "run_anim_turnpose_left" s1_legacy_name = "anim11" name = "#DOTA_Workshop_Animation_TurnPoseLeft" desc = "#DOTA_Workshop_Animation_TurnPoseLeft_Desc" suffix = "_turn_left" sequence_name = "turn_left" optional = true default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_turn_left.dmx" }, { id = "run_anim_turnpose_right" s1_legacy_name = "anim12" name = "#DOTA_Workshop_Animation_TurnPoseRight" desc = "#DOTA_Workshop_Animation_TurnPoseRight_Desc" suffix = "_turn_right" sequence_name = "turn_right" optional = true default = "scripts/workshop_import_templates/default_content/invoker/forge_spirit_turn_right.dmx" }, ] }, ] attach_list = [ { id = "attachment_hitlocation" s1_legacy_name = "attachment0" name = "#DOTA_Workshop_Attachment_HitLocation" desc = "#DOTA_Workshop_Attachment_HitLocation_Autofill_Desc" attach_name = "attach_hitloc" attach_joint = "spine2" }, { id = "attachment_attackpoint" s1_legacy_name = "attachment1" name = "#DOTA_Workshop_Attachment_AttackPoint" desc = "#DOTA_Workshop_Attachment_AttackPoint_Autofill_Desc" attach_name = "attach_attack1" attach_joint = "head" }, { id = "attachment_attackpoint2" s1_legacy_name = "attachment2" name = "#DOTA_Workshop_Attachment_AttackPoint2" desc = "#DOTA_Workshop_Attachment_AttackPoint2_Autofill_Desc" attach_name = "attach_attack2" attach_joint = "head" }, ] hitbox_list = [ { set_name = "select_low" box_name = "root" bone_name = "root" min_bounds = [ -50.2846, -81.9596, -53.2765 ] max_bounds = [ 93.1838, 81.7848, 85.4299 ] }, { set_name = "select_high" box_name = "root" bone_name = "root" min_bounds = [ -5.65867, -23.5779, -53.2719 ] max_bounds = [ 48.5579, 23.403, 85.4253 ] }, { set_name = "head" box_name = "head" bone_name = "head" min_bounds = [ -2.92371, -17.6371, -26.1593 ] max_bounds = [ 25.1087, 17.8477, 13.8331 ] }, { set_name = "hands" box_name = "wrist_R" bone_name = "wrist_R" min_bounds = [ -28.6351, -8.84619, -8.3723 ] max_bounds = [ -1.48811, 1.47489, 12.2047 ] }, { set_name = "hands" box_name = "wrist_L" bone_name = "wrist_L" min_bounds = [ 2.51725, -2.12139, -13.6376 ] max_bounds = [ 28.2161, 10.4326, 11.2622 ] }, ] }, ] item_defs = [ { hero_name = "npc_dota_hero_invoker" loadout_slot = "summon" prefab_type = "wearable" has_portrait = true visuals = [ { type = "entity_model" asset_expr = "npc_dota_invoker_forged_spirit" modifier_expr = "$(model_forge_spirit:vmdl_name)" } ] } ] }