Loading...
Searching...
No Matches
AdventureSouls.SoulsNonPlayerCharacter Class Reference

Detailed Description

common base for simple NPC characters that can be idle or attacking
by default it starts attacking when hit and will attack until it runs out of stamina, recover and repeat

https://adventure.softleitner.com/manual/character

Inheritance diagram for AdventureSouls.SoulsNonPlayerCharacter:
AdventureSouls.SoulsCharacterBase< SerialCharacterActor, NavMeshAgentMovement, ListedInventory > AdventureSouls.SoulsEnemyCharacter AdventureSouls.SoulsFriendCharacter

Classes

struct  NPCData
 

Public Types

enum  NPCState { Idle = 0 , Attacking = 10 , Loot = 15 , Dead = 20 }
 

Public Member Functions

override void PostDamageReceive (IDamageSender sender, IDamageReceiver receiver, List< DamageEvent > events)
 
- Public Member Functions inherited from AdventureSouls.SoulsCharacterBase< SerialCharacterActor, NavMeshAgentMovement, ListedInventory >
override bool PreDamageReceive (IDamageSender sender, IDamageReceiver receiver)
 called before any real damage handling to check if the handling is valid and should continue
for example if a character is currently dodging damage handling can be cancelled here
 
override void OnDamageReceive (DamageEvent e)
 this is where the main damage handling should take place and damage vectors are assigned
OnDamage is called in the order Sender > Receiver > Damage
for example if a character is wearing protective gear it may reduce the damage value here
this method is called for every damage parameter see DamageEvent for more details
 
override void PostDamageReceive (IDamageSender sender, IDamageReceiver receiver, List< DamageEvent > events)
 called after alle the damages have been applied
this is a good spot to react to the change of state that has been done by the damages
for example death or destruction if health was reduced to 0 by the damages
 
void StartCritical (SoulsCrittedAction action)
 
void StartStagger ()
 
virtual bool CheckGuardBreak (IDamageSender damageSender)
 
virtual void StartGuardBreak ()
 

Public Attributes

CharacterActionBase Idle
 
NavApproachAction Approach
 
CharacterActionBase Recover
 
CharacterActionBase Attack
 
ItemChance[] Loot
 
bool IsExternallyScripted
 
- Public Attributes inherited from AdventureSouls.SoulsCharacterBase< SerialCharacterActor, NavMeshAgentMovement, ListedInventory >
Transform Model
 
Transform RagdollPrefab
 
CharacterActionBase Stagger
 
CharacterActionBase GuardBreak
 

Protected Member Functions

override void Start ()
 
virtual void Update ()
 
override void die (Vector3 force)
 
virtual void onHit (CharacterBase character)
 
virtual void think (bool startup=false)
 
virtual void idle (bool startup)
 
virtual void attack (bool startup)
 
virtual void changeNPCState (NPCState state, CharacterBase target, bool startup=false)
 
virtual void getData ()
 
virtual void setData ()
 
- Protected Member Functions inherited from AdventureSouls.SoulsCharacterBase< SerialCharacterActor, NavMeshAgentMovement, ListedInventory >
void die (Vector3 force)
 
Transform createRagdoll (Vector3 force, Transform parent)
 
PickupAction createLoot (ItemQuantity[] items, Transform parent, Action callback, Vector3 position)
 

Protected Attributes

NPCState _state = NPCState.Idle
 
CharacterBase _target
 
int _patrolIndex
 

Properties

NPCState State [get]
 
CharacterBase Target [get]
 
- Properties inherited from AdventureSouls.SoulsCharacterBase< SerialCharacterActor, NavMeshAgentMovement, ListedInventory >
bool IsFrontOpen [get]
 
bool IsBackOpen [get]
 
bool IsAiming [get]
 
Vector3 Direction [get]
 

Additional Inherited Members

- Static Public Attributes inherited from AdventureSouls.SoulsCharacterBase< SerialCharacterActor, NavMeshAgentMovement, ListedInventory >
static int SPEED_HASH
 
static int SPEED_STRAFING_HASH
 
static int GROUNDED_HASH