changeActorEquipment 改变角色装备
changeActorEquipment
类型: MethodDeclaration
所属类: CommandFunctionList
定义位置: command.ts
描述
改变角色装备
参数
| 参数名 | 类型 | 描述 | 默认值 | 
|---|---|---|---|
| \{actor, operation, slot, equipmentId, equipment\} | `{ | ||
| actor: ActorGetter | |||
| operation: 'add' | 'remove' | 'add-instance' | 'remove-instance' | 'remove-slot' | |||
| slot: string | VariableGetter | |||
| equipmentId?: string | |||
| equipment?: EquipmentGetter | |||
| }` | - | - | 
返回值
类型: CommandFunction \| null
源代码
位置: 第 6158 行
protected changeActorEquipment({actor, operation, slot, equipmentId, equipment}: {
    actor: ActorGetter
    operation: 'add' | 'remove' | 'add-instance' | 'remove-instance' | 'remove-slot'
    slot: string | VariableGetter
    equipmentId?: string
    equipment?: EquipmentGetter
  }): CommandFunction | null {
    const getActor = Command.compileActor(actor)
    switch (operation) {
      case 'add': {
        const equipmentData = Data.equipments[equipmentId!]
        const getSlot = Command.compileEnumValue(slot)
        return !equipmentData ? null : () => {
          getActor()?.equipment.set(getSlot(), new Equipment(equipmentData))
          return true
        }
      }
      case 'remove':
        return () => {
          const actor = getActor()
          if (actor) {
            const equipment = actor.equipment.getById(equipmentId!)
            if (equipment) actor.equipment.remove(equipment)
          }
          return true
        }
      case 'add-instance': {
        const getEquipment = Command.compileEquipment(equipment!)
        const getSlot = Command.compileEnumValue(slot)
        return () => {
          const equipment = getEquipment()
          if (equipment) {
            getActor()?.equipment.set(getSlot(), equipment)
          }
          return true
        }
      }
      case 'remove-instance': {
        const getEquipment = Command.compileEquipment(equipment!)
        return () => {
          const equipment = getEquipment()
          if (equipment) {
            getActor()?.equipment.remove(equipment)
          }
          return true
        }
      }
      case 'remove-slot': {
        const getSlot = Command.compileEnumValue(slot)
        return () => {
          getActor()?.equipment.delete(getSlot())
          return true
        }
      }
    }
  }
文档生成时间:2025/7/21 20:53:39