Mod:制作一个自定义敌人

来自Noita Wiki
跳到导航 跳到搜索
模组制作导航
基础
入门基础Lua脚本Data.wak实用工具
制作指南
音频敌人生物群系天赋法术精灵表材料图像放射器特殊行为CMake使用
组件/实体
组件文档枚举特殊标签所有标签列表
Lua编程
Lua API实用脚本
其他信息
法术和天赋的ID声音事件魔数(Magic Numbers)

WIP

如果英文wiki更新了记得帮这个也更新了-->链接

此页面介绍了用于创建新敌人的基础知识。(WIP)

常见组件和标签

Entity Components
Component Purpose
AnimalAIComponent Determines enemy behaviour and attacks.
DamageModelComponent Allows the enemy to be hurt, determines their damage multipliers and material weaknesses.
PathFindingComponent Allows the enemy to path-find through terrain and to other entities.
PathFindingGridMarkerComponent Affects path-finding grid in some way, limited documentation. (To be researched.)
faction, food-chain rank and more.
CharacterPlatformingComponent Determines the enemy's movement capabilities.
CharacterDataComponent Affects enemy collision, physics and more.
HitboxComponent Determines enemey's hitbox for incoming attacks, ect.
CameraBoundComponent Controls the distance from the camera where the enemy should be unloaded.
SpriteComponent The enemy's sprite graphics.
SpriteAnimatorComponent Updates the enemy's current sprite animation when doing certain actions, i.e. idling, walking, attacking.
AudioComponent Determines the audio to be played upon certain events.
Tags
Tag Purpose
mortal Multi-purpose tag for living creatures and entities that can be destroyed. (To be researched.)
hittable Enemy can be hit.
enemy Enemy is an enemy.
flying Enemy is a flying enemy.
boss Enemy is a boss.
miniboss Enemy is a mini-boss.
human (To be researched.)
prey Enemy may be targeted by predators.
homing_target Enemy can be tracked by homing projectiles.
destruction_target Enemy will be targeted the Destruction spell.
teleportable_NOT Enemy cannot be teleported.
polymorphable_NOT Enemy cannot be polymorphed.
necrobot_NOT Enemy cannot be revived by enemies like Necrobot.
glue_NOT Enemy cannot be glued.
curse_NOT Enemy is immune to venomous curse? Grants no immunity to curse damage.
touchmagic_immunity Enemy has immunity to Touch of spells.

AnimalAIComponent.ai_state Enum Values

The AnimalAIComponent::ai_state has values 1-21, which correspond to the following states:

local states = {
 "RandomMove",
 "Wandering",
 "Eating",
 "RaisingHead",
 "PreparingJump",
 "MoveNearTarget",
 "Peeing",
 "Defecating",
 "Alert",
 "Landing",
 "TakingFireDamage",
 "EscapingPrey",
 "AttackingMelee",
 "AttackingMeleeDash",
 "AttackingRanged",
 "AttackingRangedMulti",
 "Escaping",
 "JobDefault",
 "JobGoto",
 "JobHelpOtherEntity",
 "GoNearHome",
}

These can be printed out like so:

local animal = GetUpdatedEntityID()
local state = ComponentGetValue2(
  EntityGetFirstComponentIncludingDisabled(animal, "AnimalAIComponent"), "ai_state"
)

print(states[state])