Modding/Skills: Difference between revisions

From Hammerwatch 2 Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 1: Line 1:
=Skill Properties=
=skill sval structure=


Name/Type/Description
Name/Type/Description
Line 9: Line 9:
:''PNG file to use for skill icon''
:''PNG file to use for skill icon''


 
[[Modding/Skills#Skill_Properties|Skill Properties]]
Id string - Must be unique
 
Tier string - One of the four tiers of skills
 
Type string - Mainhand / Offhand / Dash / Spell (Omitted for Passives)
 
Starting-Level string - 1 for adept, 0 for all others
 


Dict skill
Dict skill
:Class - ''[[Modding/Skills#Skill_Classes|Skill Classes]]''
:Class - ''[[Modding/Skills_Documentation#Skill_Classes|Skill Classes]]''




Line 34: Line 26:
::1 or more [[Modding/Effects|Effects]] triggered on Skill end
::1 or more [[Modding/Effects|Effects]] triggered on Skill end
:Modifiers Array ''(Required)''
:Modifiers Array ''(Required)''
::1 or more [[Modding/Modifiers|Modifiers]]
::1 or more [[Modding/Skills_Documentation#Skill_Modifiers|Modifiers]]
:Actions Dict
:Actions Dict
::1 or more [[Modding/Actions|Actions]]
::1 or more [[Modding/Actions|Actions]]
Line 120: Line 112:


:HookShot
:HookShot
=Skill Properties=
Skill
:Actor@ m_owner;
:ScriptSprite@ m_icon;
:PlayerSkillType m_type;
:string m_id; ''Must be unique''
:string m_name;
:uint m_skillId;
:string m_actionId;
:uint m_actionIdHash;
:uint64 m_tags;
:bool m_wasBlocked;
:bool m_isActive;
:float m_skillSpeed;
:float m_modSkillSpeedMul;
:float m_modCooldownMul;
:float m_modDamageMul;
:PointCost m_modCost;
:float m_modCritDamage;
:float m_modCritChance;
:vec3 m_modDamageLeech;
:float m_modSlowScale;
Active Skill
:AnimString@ m_animation;
:AnimString@ m_animationWalk;
:int m_animCountdown;
:string m_fx;
:SoundEvent@ m_sound;
:SoundEvent@ m_soundStart;
:SoundEvent@ m_soundHold;
:SoundInstance@ m_soundHoldI;
:float m_speedMul;
:float m_idleCdMul;
:float m_castSpeedMul;
:array<Modifiers::IModifier@> m_modifiers;
:int m_cooldown;
:int m_cooldownC;
:int m_castpoint;
:int m_castingC;
:PointCost m_cost;
:float m_timeScale;
:bool m_blocking;
:bool m_ignoreBlocking;
:ConditionalList@ m_conditionals;
:bool m_holding;
:vec2 m_queuedTarget;
PlayerSkill
:AnimString@ m_animation;
:AnimString@ m_animationWalk;
:float m_moveSpeedMul;
:ivec2 m_moveSpeed;
:float m_castSpeedMul;
:ivec2 m_blocking;
:int m_castingT;
:int m_cooldownC;
:int m_cooldown;
:PointCost m_cost;
:array<Modifiers::IModifier@> m_modifiers;
:array<PlayerSkillActionListEntry@> m_actions;
:array<SkillMovementEntry@> m_movements;
:float m_movementsDir;
:float m_moveCastSpeedScale;
:bool m_moveRelativeToMove;
:bool m_moveRelativeToMoveForward;
:bool m_moveScaledByCastSpeed;
:bool m_animationScaledByCastSpeed;
:ConditionalList@ m_conditionals;


{{Template:BaseNav}}
{{Template:BaseNav}}

Latest revision as of 21:47, 6 September 2023

skill sval structure

Name/Type/Description

description-params array

Arrays of strings for each line item to show what base and upgrades modify

icon array

PNG file to use for skill icon

Skill Properties

Dict skill

Class - Skill Classes


Stop-Conditional Array
4 Strings (condition type / condition / operator / value)
Movements Array
3 values (i2 / v2 / b)
Binds Dict (Required)
Seems to be used to set up variables for values that could be modified by upgrades or skill-modifiers? Needs confirmation.
Effects Array
1 or more Effects triggered on Skill start
Finish-Effects Array
1 or more Effects triggered on Skill end
Modifiers Array (Required)
1 or more Modifiers
Actions Dict
1 or more Actions
Timeline Array
2 values (int / string)
Timelines-Looping Array
2 values (int / string)


Upgrades Array

Effects on base skill from purchasing upgrades


Modifier-Skills Array

Sub skills that can be purchased within a skill
Contains additional skill dicts (as above)

Skill Classes

Skill

CelestialOrbs

Juggernaut

ManaShield

PassiveSkill

NullSkill

StackSkill

Active Skill

BuffAoe

Charge

ChargeUnit

DropEffect

DropUnit

Explode

GrappleHook

MeleeSwing

ShootProjectile

ShootProjectileFan
ShootProjectileTarget

ShootRay

SpawnUnit

SpewProjectiles

StaggeredSpawnUnits

TempBuffAoe

ToggleableSkill

Whirlnova

Whirlwind

Player Skill

PlayerSkillAutomatic

PlayerSkillDirectional

PlayerSkillDirectionalChannelling

ShootBeam

PlayerSkillDirectionalCharged

PlayerSkillPosition

HookShot

Skill Properties

Skill

Actor@ m_owner;
ScriptSprite@ m_icon;
PlayerSkillType m_type;
string m_id; Must be unique
string m_name;
uint m_skillId;
string m_actionId;
uint m_actionIdHash;
uint64 m_tags;
bool m_wasBlocked;
bool m_isActive;
float m_skillSpeed;
float m_modSkillSpeedMul;
float m_modCooldownMul;
float m_modDamageMul;
PointCost m_modCost;
float m_modCritDamage;
float m_modCritChance;
vec3 m_modDamageLeech;
float m_modSlowScale;

Active Skill

AnimString@ m_animation;
AnimString@ m_animationWalk;
int m_animCountdown;
string m_fx;
SoundEvent@ m_sound;
SoundEvent@ m_soundStart;
SoundEvent@ m_soundHold;
SoundInstance@ m_soundHoldI;
float m_speedMul;
float m_idleCdMul;
float m_castSpeedMul;
array<Modifiers::IModifier@> m_modifiers;
int m_cooldown;
int m_cooldownC;
int m_castpoint;
int m_castingC;
PointCost m_cost;
float m_timeScale;
bool m_blocking;
bool m_ignoreBlocking;
ConditionalList@ m_conditionals;
bool m_holding;
vec2 m_queuedTarget;

PlayerSkill

AnimString@ m_animation;
AnimString@ m_animationWalk;
float m_moveSpeedMul;
ivec2 m_moveSpeed;
float m_castSpeedMul;
ivec2 m_blocking;
int m_castingT;
int m_cooldownC;
int m_cooldown;
PointCost m_cost;
array<Modifiers::IModifier@> m_modifiers;
array<PlayerSkillActionListEntry@> m_actions;
array<SkillMovementEntry@> m_movements;
float m_movementsDir;
float m_moveCastSpeedScale;
bool m_moveRelativeToMove;
bool m_moveRelativeToMoveForward;
bool m_moveScaledByCastSpeed;
bool m_animationScaledByCastSpeed;
ConditionalList@ m_conditionals;