Skip to content

Instantly share code, notes, and snippets.

@KoderFPV
Created October 12, 2023 08:43
Show Gist options
  • Save KoderFPV/3ecf7e4fe8c01d557f21c8d1802561c8 to your computer and use it in GitHub Desktop.
Save KoderFPV/3ecf7e4fe8c01d557f21c8d1802561c8 to your computer and use it in GitHub Desktop.
import { RpgPlayer } from '@rpgjs/server'
import { Skill } from '@rpgjs/database'
import ArcaneBoltEvent from '../../events/skills/arcaneBolt-event';
@Skill({
id: 'ArcaneBolt',
name: 'ArcaneBolt',
description: 'Shoots a ball of arcane magic',
spCost: 10,
power: 100,
variance: 10,
hitRate: 1,
addStates: [],
removeStates: [],
elements: [],
coefficient: {}
})
export class ArcaneBoltSkill {
onLearn(player: RpgPlayer) {
}
onUse(player: RpgPlayer) {
const map = player.getCurrentMap();
const event = map!.createDynamicEvent({
x: player.position.x,
y: player.position.y,
z: 1000,
event: ArcaneBoltEvent,
});
const currentEvent = Object.values(event)[0];
currentEvent.moveTo({ x: 1000, y:1000 }, {
onComplete: () => currentEvent.remove(),
onStuck: () => currentEvent.remove(),
next: () => {
if (currentEvent.tilesCollision.length > 0 || currentEvent.shapesCollision.length > 0) {
currentEvent.remove();
}
}
}).subscribe({
complete: () => currentEvent.remove(),
error: () => currentEvent.remove()
})
}
onForget(player: RpgPlayer) {
}
}
export default ArcaneBoltSkill;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment