122 lines
2.5 KiB
TypeScript
122 lines
2.5 KiB
TypeScript
export type Iwt2PlayerClassId = 'healer' | 'paladin' | 'ranger' | 'mage' | 'rogue' | 'warrior'
|
|
|
|
export type Iwt2PlayerClassRole = 'healer' | 'tank' | 'damage'
|
|
|
|
export type Iwt2ClassMetadata = {
|
|
id: Iwt2PlayerClassId
|
|
name: string
|
|
role: Iwt2PlayerClassRole
|
|
icon: string
|
|
color: string
|
|
accentColor: string
|
|
maxHealth: number
|
|
moveSpeed: number
|
|
radius: number
|
|
attackRange: number
|
|
attackDamage: number
|
|
attackCooldown: number
|
|
castTime: number
|
|
projectileSpeed: number
|
|
}
|
|
|
|
export const IWT2_CLASS_METADATA: Record<Iwt2PlayerClassId, Iwt2ClassMetadata> = {
|
|
healer: {
|
|
id: 'healer',
|
|
name: 'Player Healer',
|
|
role: 'healer',
|
|
icon: '+',
|
|
color: '#2fbf71',
|
|
accentColor: '#b7f7cf',
|
|
maxHealth: 125,
|
|
moveSpeed: 210,
|
|
radius: 15,
|
|
attackRange: 0,
|
|
attackDamage: 0,
|
|
attackCooldown: 1,
|
|
castTime: 0,
|
|
projectileSpeed: 0,
|
|
},
|
|
paladin: {
|
|
id: 'paladin',
|
|
name: 'Paladin Tank',
|
|
role: 'tank',
|
|
icon: '🛡',
|
|
color: '#f2c94c',
|
|
accentColor: '#fff0a8',
|
|
maxHealth: 190,
|
|
moveSpeed: 165,
|
|
radius: 17,
|
|
attackRange: 44,
|
|
attackDamage: 7,
|
|
attackCooldown: 0.85,
|
|
castTime: 0,
|
|
projectileSpeed: 0,
|
|
},
|
|
ranger: {
|
|
id: 'ranger',
|
|
name: 'Ranger',
|
|
role: 'damage',
|
|
icon: '🏹',
|
|
color: '#4aa3df',
|
|
accentColor: '#b9e3ff',
|
|
maxHealth: 115,
|
|
moveSpeed: 185,
|
|
radius: 14,
|
|
attackRange: 245,
|
|
attackDamage: 8,
|
|
attackCooldown: 0.31,
|
|
castTime: 0.16,
|
|
projectileSpeed: 410,
|
|
},
|
|
mage: {
|
|
id: 'mage',
|
|
name: 'Mage',
|
|
role: 'damage',
|
|
icon: '⚚',
|
|
color: '#c56cf0',
|
|
accentColor: '#efc4ff',
|
|
maxHealth: 100,
|
|
moveSpeed: 175,
|
|
radius: 14,
|
|
attackRange: 220,
|
|
attackDamage: 11,
|
|
attackCooldown: 0.39,
|
|
castTime: 0.21,
|
|
projectileSpeed: 330,
|
|
},
|
|
rogue: {
|
|
id: 'rogue',
|
|
name: 'Rogue',
|
|
role: 'damage',
|
|
icon: '††',
|
|
color: '#55efc4',
|
|
accentColor: '#c8fff2',
|
|
maxHealth: 110,
|
|
moveSpeed: 230,
|
|
radius: 14,
|
|
attackRange: 38,
|
|
attackDamage: 6,
|
|
attackCooldown: 0.38,
|
|
castTime: 0,
|
|
projectileSpeed: 0,
|
|
},
|
|
warrior: {
|
|
id: 'warrior',
|
|
name: 'Warrior',
|
|
role: 'damage',
|
|
icon: '⚔',
|
|
color: '#ff7675',
|
|
accentColor: '#ffd0d0',
|
|
maxHealth: 150,
|
|
moveSpeed: 180,
|
|
radius: 16,
|
|
attackRange: 42,
|
|
attackDamage: 9,
|
|
attackCooldown: 0.52,
|
|
castTime: 0,
|
|
projectileSpeed: 0,
|
|
},
|
|
}
|
|
|
|
export const IWT2_PARTY_ORDER: Iwt2PlayerClassId[] = ['healer', 'paladin', 'ranger', 'mage', 'rogue', 'warrior']
|