-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathitems.js
More file actions
52 lines (44 loc) · 1.5 KB
/
Copy pathitems.js
File metadata and controls
52 lines (44 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
const {QueryResult, Circle, Vector} = require('electron-game-util');
const Spell = require('./classes/Spell.js')
const Item = require('./classes/Item.js');
const BuildingItem = require('./classes/BuildingItem.js');
const Chest = require('./classes/Chest.js');
const Arrow = require('./classes/Arrow.js');
let stone = new Item('stone');
let gold = new Item('gold');
let arrow = new Item('arrow');
let bow = new Item('bow');
bow.use = (stack, player)=>{
let arrows = player.inventory.getFirst('arrow');
if (arrows.from && arrows.slot != -1) {
console.log('Fired arrow');
let aStack = player.inventory[arrows.from][arrows.slot]
let removed = aStack.remove(1);
let mouse = player.controls.mouse;
console.log(removed);
if (removed > 0) {
let dir = new Vector(mouse.x, mouse.y).sub(player.x, player.y).norm().mult(8)
new Arrow({x: player.x, y: player.y, hsp: dir.x, vsp: dir.y, owner: player.netID, power: 3})
}
}
}
let sword = new Item('sword');
sword.attack = (stack, player)=>{
let res = player.world.collisionTree.query(new Circle(player.x, player.y, 40),['Player','Enemy']);
if (res.status == QueryResult.OK){
for(let e of res.getGroup('found')){
if (e.netID != player.netID){
e.damage(5, player);
}
}
}
}
let spell = new Item('spell');
spell.attack = (stack, player)=>{
let id = stack.data.spell;
console.log(id);
let spell = Spell.list.get(id);
Spell.sandbox.run(spell);
}
spell.use = spell.attack;
let chest = new BuildingItem(Chest);