NPC Perception Design: Difference between revisions

From PSwiki
Jump to navigation Jump to search
Magodra (talk | contribs)
Magodra (talk | contribs)
Line 13: Line 13:
   #csString name
   #csString name
   #csString type
   #csString type
  +bool ShouldReact()
  +void ExecutePerception()
   +gemNPCObject GetTarget()
   +gemNPCObject GetTarget()
  +csString ToString()
}
}
Perception <|-- SpecialPerception
Perception <|-- SpecialPerception
class SpecialPerception {
  +bool ShouldReact()
  +void ExecutePerception()
  +gemNPCObject GetTarget()
  +csString ToString()
}
</uml>
</uml>



Revision as of 14:14, 6 April 2013

See Behaviors_and_Reactions for User details about how to use Perceptions in the behavior.xml file.


This embodies any perception an NPC might have, or any game event of interest. Reaction objects below will subscribe to these events, and the networking system will publish them. Examples would be "attacked", "collided", "talked to", "hear cry".

NPC Perceptions

Class Hierarchy

The Perception class is used for simple perception and as the Base Class for a number of special perceptions.

Special Perceptions:

  • TimePerception
  • FactionPerception
  • ItemPerception
  • LocationPerception
  • PositionPerception
  • AttackPerception
  • GroupAttackPerception
  • DamagePerception
  • SpellPerception
  • DeathPerception
  • InventoryPerception
  • OwnerCmdPerception
  • OwnerActionPerception
  • NPCCmdPerception

Sequences

Personal NPC Perceptions Sequence

Show the typical sequence for a Perception fired for a NPC, might be perceptions like Damage Perception.

Broadcast NPC Perceptions Sequence

Show the typical sequence for a broadcasted Perception. Examples of broadcasted perceptions is the SpellPerception.

Special cases

Perceptions used from locate operation

The locate operation can locate objects of type perception. For this to make sence the perception need to implement the GetTarget