本文整理匯總了TypeScript中action/IAction.anyOf函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript anyOf函數的具體用法?TypeScript anyOf怎麽用?TypeScript anyOf使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了anyOf函數的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: Action
import { Action } from "action/Action";
import { ActionArgument, anyOf } from "action/IAction";
import Doodad from "doodad/doodads/Doodad";
import { EntityPlayerCreatureNpc, EntityType } from "entity/IEntity";
import { IVector3 } from "utilities/math/IVector";
import { defaultUsability } from "../Actions";
import { DebugToolsTranslation, translation } from "../IDebugTools";
import CloneDoodad from "./helpers/CloneDoodad";
import CloneEntity from "./helpers/CloneEntity";
import GetPosition from "./helpers/GetPosition";
/**
* Clones an entity or doodad to a new location. If given a player, an NPC with the appearance, items, and stats of the player is cloned.
*/
export default new Action(anyOf(ActionArgument.Entity, ActionArgument.Doodad), ActionArgument.Vector3)
.setUsableBy(EntityType.Player)
.setUsableWhen(...defaultUsability)
.setHandler((action, toClone, position: IVector3 | undefined) => {
position = GetPosition(action.executor, position!, () => translation(DebugToolsTranslation.ActionClone)
.get(toClone.getName()));
if (!position) return;
if (toClone instanceof Doodad) {
CloneDoodad(toClone, position);
} else {
CloneEntity(toClone as EntityPlayerCreatureNpc, position);
}
示例2: Action
import { Action } from "action/Action";
import { ActionArgument, anyOf } from "action/IAction";
import { EntityType } from "entity/IEntity";
import Player from "player/Player";
import { defaultUsability } from "../Actions";
import Remove from "./helpers/Remove";
/**
* Removes a creature, NPC, item, doodad, corpse, or tile event.
*/
export default new Action(anyOf(ActionArgument.Entity, ActionArgument.Doodad, ActionArgument.Corpse, ActionArgument.TileEvent, ActionArgument.Item))
.setUsableBy(EntityType.Player)
.setUsableWhen(...defaultUsability)
.setHandler((action, toRemove) => {
if (toRemove instanceof Player) {
return;
}
Remove(action, toRemove as any);
renderer.computeSpritesInViewport();
action.setUpdateRender();
});
示例3: Action
import { Action } from "action/Action";
import { ActionArgument, anyOf } from "action/IAction";
import Entity from "entity/Entity";
import { EntityType, StatusEffectChangeReason } from "entity/IEntity";
import { IStatMax, Stat } from "entity/IStats";
import { PlayerState, StatusType } from "Enums";
import { ScreenId } from "newui/screen/IScreen";
import GameScreen from "newui/screen/screens/GameScreen";
import Actions, { defaultUsability } from "../Actions";
import ResurrectCorpse from "./helpers/ResurrectCorpse";
/**
* The core stats, namely, Health, Stamina, Hunger, and Thirst, are all set to their maximum values. Any status effects are removed.
*/
export default new Action(anyOf(ActionArgument.Entity, ActionArgument.Corpse))
.setUsableBy(EntityType.Player)
.setUsableWhen(...defaultUsability)
.setHandler((action, entity) => {
// resurrect corpses
if (action.isArgumentType(entity, 0, ActionArgument.Corpse)) {
if (ResurrectCorpse(action.executor, entity)) {
action.setUpdateRender();
}
return;
}
const health = entity.getStat<IStatMax>(Stat.Health);
const stamina = entity.getStat<IStatMax>(Stat.Stamina);
const hunger = entity.getStat<IStatMax>(Stat.Hunger);
const thirst = entity.getStat<IStatMax>(Stat.Thirst);
示例4: Action
import { Action } from "action/Action";
import { ActionArgument, anyOf } from "action/IAction";
import Entity from "entity/Entity";
import { EntityType } from "entity/IEntity";
import { IContainer } from "item/IItem";
import Player from "player/Player";
import { defaultUsability } from "../Actions";
import InspectDialog from "../ui/InspectDialog";
/**
* Adds an item to the inventory of a doodad, human, or tile.
*/
export default new Action(anyOf(ActionArgument.Container, ActionArgument.Player), ActionArgument.ItemType, ActionArgument.ItemQuality)
.setUsableBy(EntityType.Player)
.setUsableWhen(...defaultUsability)
.setHandler((action, target, item, quality) => {
if (target instanceof Player) {
target.createItemInInventory(item, quality);
if (Entity.is(target, EntityType.Player)) {
target.updateTablesAndWeight();
}
} else {
itemManager.create(item, target as IContainer, quality);
action.setUpdateView();
}
if (InspectDialog.INSTANCE) InspectDialog.INSTANCE.update();
});