chore(release): 0.3.3
[risinglegends.git] / src / shared / monsters.ts
1 import { TimePeriod } from './time';
2
3 export type Monster = {
4   id: number;
5   name: string;
6   strength: number;
7   dexterity: number;
8   intelligence: number;
9   constitution: number;
10   minLevel: number;
11   maxLevel: number;
12   gold: number;
13   exp: number;
14   hp: number;
15   defence: number;
16   maxHp: number;
17   location_id: number;
18   faction_id: number;
19   time_period: TimePeriod;
20 }
21
22 export type MonsterForList = {
23   id: number;
24   name: string;
25   level: number;
26 }
27
28 export type FightTrigger = 'explore' | 'travel';
29
30 export type Fight = Omit<Monster, 'id' | 'faction_id' | 'location_id' | 'minLevel' | 'maxLevel' | 'time_period'> & { 
31   id: string;
32   player_id: string;
33   variant: string;
34   level: number;
35   ref_id: number;
36   fight_trigger: FightTrigger;
37 };
38
39 export type MonsterWithFaction = Fight & {
40   faction_id: string;
41   faction_name: string;
42 }
43
44 export type MonsterForFight = {
45   id: number | string;
46   hp: number;
47   maxHp: number;
48   name: string;
49   minLevel: number;
50   maxLevel: number;
51   fight_trigger: FightTrigger;
52 }
53
54 export type MonsterVariant = {
55   name: string;
56   display: string;
57   strength: number;
58   constitution: number;
59   dexterity: number;
60   intelligence: number;
61   exp: number;
62   gold: number;
63   maxHp: number;
64   defence: number;
65 };
66
67 export const MonsterVariants: MonsterVariant[] = [
68   {
69     name: 'Brute',
70     display: '{{name}} Brute',
71     strength: 1,
72     constitution: 1,
73     dexterity: 0.6,
74     intelligence: 0.2,
75     exp: 4,
76     gold: 3,
77     maxHp: 2,
78     defence: 3
79   },
80   {
81     name: 'Elder',
82     display: 'Elder {{name}}',
83     strength: 0.8,
84     constitution: 1.2,
85     dexterity: 0.6,
86     intelligence: 1.6,
87     exp: 2,
88     gold: 1,
89     maxHp: 1,
90     defence: 1
91   },
92   {
93     name: 'Skittish',
94     display: 'Skittish {{name}}',
95     strength: 0.8,
96     constitution: 1.2,
97     dexterity: 0.6,
98     intelligence: 1.6,
99     exp: 1,
100     gold: 1.2,
101     maxHp: 1,
102     defence: 0.8
103   }
104 ];