Skip to content

Commit

Permalink
runecrafting combination runes, and refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
Promises committed Oct 17, 2020
1 parent 2b83e41 commit ce39aef
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ import {
getEntityIds,
runes,
talismans,
} from '@server/plugins/skills/runecrafting/constants';
} from '@server/plugins/skills/runecrafting/runecrafting-constants';
import { itemOnObjectAction, ItemOnObjectActionDetails } from '@server/world/actor/player/action/item-on-object-action';
import { cache } from '@server/game-server';
import { objectAction, ObjectActionDetails } from '@server/world/actor/player/action/object-action';
import { Altar, Rune } from '@server/plugins/skills/runecrafting/types';
import { RunecraftingAltar, RunecraftingRune } from '@server/plugins/skills/runecrafting/runecrafting-types';
import { itemIds } from '@server/world/config/item-ids';
import { Player } from '@server/world/actor/player/player';
import { Item } from '@server/world/items/item';


const enterAltar: itemOnObjectAction = (details: ItemOnObjectActionDetails) => {
const {player, object, item} = details;
const altar: Altar = getEntityByAttr(altars, 'entranceId', object.objectId);
const rune: Rune = getEntityByAttr(runes, 'altar.entranceId', object.objectId);
const altar: RunecraftingAltar = getEntityByAttr(altars, 'entranceId', object.objectId);
const rune: RunecraftingRune = getEntityByAttr(runes, 'altar.entranceId', object.objectId);

if (item.itemId === itemIds.talismans.elemental) {
if (rune.talisman.id === itemIds.talismans.air
Expand All @@ -43,7 +43,7 @@ const enterAltar: itemOnObjectAction = (details: ItemOnObjectActionDetails) => {
}
};

function finishEnterAltar(player: Player, item: Item, altar: Altar): void {
function finishEnterAltar(player: Player, item: Item, altar: RunecraftingAltar): void {
const talisman = cache.itemDefinitions.get(item.itemId);
player.sendMessage(`You hold the ${talisman.name} towards the mysterious ruins.`);
player.sendMessage(`You feel a powerful force take hold of you..`);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
*/

import { itemIds } from '@server/world/config/item-ids';
import { Altar, CombinationRune, Rune, Talisman, Tiara } from '@server/plugins/skills/runecrafting/types';
import { RunecraftingAltar, RunecraftingCombinationRune, RunecraftingRune, RunecraftingTalisman, RunecraftingTiara } from '@server/plugins/skills/runecrafting/runecrafting-types';
import { Position } from '@server/world/position';

export const tiaras: Map<string, Tiara> = new Map<string, Tiara>([
export const tiaras: Map<string, RunecraftingTiara> = new Map<string, RunecraftingTiara>([
['air', {
id: itemIds.tiaras.air,
config: 1,
Expand Down Expand Up @@ -97,7 +97,7 @@ export const tiaras: Map<string, Tiara> = new Map<string, Tiara>([
}],
]);

export const talismans: Map<string, Talisman> = new Map<string, Talisman>([
export const talismans: Map<string, RunecraftingTalisman> = new Map<string, RunecraftingTalisman>([
['air', {id: itemIds.talismans.air}],
['mind', {id: itemIds.talismans.mind}],
['water', {id: itemIds.talismans.water}],
Expand All @@ -112,7 +112,7 @@ export const talismans: Map<string, Talisman> = new Map<string, Talisman>([
['elemental', {id: itemIds.talismans.elemental}],
]);

export const altars: Map<string, Altar> = new Map<string, Altar>([
export const altars: Map<string, RunecraftingAltar> = new Map<string, RunecraftingAltar>([
['air', {
entranceId: 2452,
craftingId: 2478,
Expand Down Expand Up @@ -192,7 +192,7 @@ export const altars: Map<string, Altar> = new Map<string, Altar>([
}],
]);

export const runes: Map<string, Rune> = new Map<string, Rune>([
export const runes: Map<string, RunecraftingRune> = new Map<string, RunecraftingRune>([
['air', {
id: 556,
xp: 5.0,
Expand Down Expand Up @@ -297,7 +297,7 @@ export const runes: Map<string, Rune> = new Map<string, Rune>([



export const combinationRunes: Map<string, CombinationRune> = new Map<string, CombinationRune>([
export const combinationRunes: Map<string, RunecraftingCombinationRune> = new Map<string, RunecraftingCombinationRune>([
['mist', {
altar: [altars.get('air'), altars.get('water')],
id: 4695,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import {
getEntityByAttr,
getEntityIds, runeMultiplier,
runes,
} from '@server/plugins/skills/runecrafting/constants';
} from '@server/plugins/skills/runecrafting/runecrafting-constants';
import { itemOnObjectAction, ItemOnObjectActionDetails } from '@server/world/actor/player/action/item-on-object-action';
import { CombinationRune } from '@server/plugins/skills/runecrafting/types';
import { RunecraftingCombinationRune } from '@server/plugins/skills/runecrafting/runecrafting-types';
import { randomBetween } from '@server/util/num';
import { itemIds } from '@server/world/config/item-ids';
import { cache } from '@server/game-server';
Expand Down Expand Up @@ -44,7 +44,7 @@ const craftRune: objectAction = (details: ObjectActionDetails) => {
player.sendMessage(`You do not have any rune essence to bind.`);
};

function getCombinationRuneByAltar(itemId: number, objectId: number): CombinationRune | undefined {
function getCombinationRuneByAltar(itemId: number, objectId: number): RunecraftingCombinationRune | undefined {
let rune = undefined;
for (const combinationRune of combinationRunes.values()) {
const altarIndex = combinationRune.altar.findIndex((altar) => altar.craftingId === objectId);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ActionType, RunePlugin } from '@server/plugins/plugin';
import { getEntityByAttr, getEntityIds, tiaras } from '@server/plugins/skills/runecrafting/constants';
import { getEntityByAttr, getEntityIds, tiaras } from '@server/plugins/skills/runecrafting/runecrafting-constants';
import { equipAction } from '@server/world/actor/player/action/equip-action';


Expand Down
46 changes: 46 additions & 0 deletions src/plugins/skills/runecrafting/runecrafting-types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { Item } from '@server/world/items/item';
import { Position } from '@server/world/position';
import { altars, talismans, tiaras } from '@server/plugins/skills/runecrafting/runecrafting-constants';

export interface RunecraftingRecipe {
ingredients: Item[] | number[];
}

export interface RunecraftingTiara {
id: number;
config: number;
recipe: RunecraftingRecipe;
level: number;
xp: number;
}

export interface RunecraftingTalisman {
id: number;
}

export interface RunecraftingAltar {
entranceId: number;
craftingId: number;
portalId: number;
entrance: Position;
exit: Position;
}

export interface RunecraftingRune {
id: number;
xp: number;
level: number;
essence: number[];
altar: RunecraftingAltar;
tiara: RunecraftingTiara;
talisman: RunecraftingTalisman;
}
export interface RunecraftingCombinationRune {
id: number;
xp: [number, number];
level: number;
altar: [RunecraftingAltar, RunecraftingAltar];
tiara: [RunecraftingTiara, RunecraftingTiara];
talisman: [RunecraftingTalisman, RunecraftingTalisman];
runes: [RunecraftingRune, RunecraftingRune];
}
46 changes: 0 additions & 46 deletions src/plugins/skills/runecrafting/types.ts

This file was deleted.

0 comments on commit ce39aef

Please sign in to comment.