Class: Roleplayer
The core of this library contains a few systems that are common for most or all roleplaying games. It is designed to be extended and customized to fit the needs of a roleplaying game.
- Action and effects system
- Battle system
- NPC actions
- Resource generation system
- Round action tracking
- Character system
- Resource system
- Inventory system
- Stats system
- Level progression system
- World building system
- NPC system
- Relationship system
- Dice rolling system
- Campaign system
- Factions/relationships system
- Quest system
- Exploration system
It is all backed up by a rich event system where subsystems can subscribe and publish events.
Extends
default<RoleplayerEvent>
Constructors
new Roleplayer(config, initialCampaignConfig)
new Roleplayer(
config,initialCampaignConfig):Roleplayer
Parameters
• config: WithRequired< Partial< Roleplayer >, "ruleset" >
• initialCampaignConfig: RoleplayerCampaignParameters
Returns
Overrides
Observable<RoleplayerEvent>.constructor
Source
core/roleplayer.ts:50
Properties
campaign
campaign:
CampaignState
Source
core/roleplayer.ts:47
events
events:
RoleplayerEvent[]
Source
core/roleplayer.ts:46
logger?
optionallogger:Logger
Source
core/roleplayer.ts:48
ruleset
ruleset:
Ruleset
Source
core/roleplayer.ts:44
Methods
createEventsProxy()
createEventsProxy(
events):RoleplayerEvent[]
Parameters
• events: RoleplayerEvent[]
Returns
Source
core/roleplayer.ts:66
debugEvent()
debugEvent(
event):void
Parameters
• event: RoleplayerEvent
Returns
void
Source
core/roleplayer.ts:182
debugEventProcessing()
debugEventProcessing(
events):void
Parameters
• events: RoleplayerEvent[]
Returns
void
Source
core/roleplayer.ts:186
dispatch()
dispatch(
event):undefined| {type:"Unknown"; } | {type:"CampaignStarted"; } | {battleId:string;roundId:string;type:"RoundStarted"; } | {type:"RoundEnded"; } | {characterId:string;templateCharacterId:string;type:"CharacterSpawned"; } | {characterId:string;name:string;type:"CharacterNameSet"; } | {characterId:string;max:number;resourceTypeId:string;type:"CharacterResourceMaxSet"; } | {actionId:string;amount:number;characterId:string;resourceTypeId:string;sourceId:string;type:"CharacterResourceGain"; } | {actionId:string;amount:number;characterId:string;resourceTypeId:string;sourceId:string;type:"CharacterResourceLoss"; } | {amount:number;characterId:string;statId:string;type:"CharacterStatChange"; } | {characterId:string;experience:number;type:"CharacterExperienceChanged"; } | {characterId:string;experience:number;type:"CharacterExperienceSet"; } | {characterId:string;type:"CharacterDespawn"; } | {characterId:string;sourceId:string;targetPosition:Position;type:"CharacterMovement"; } | {actionId:string;characterId:string;type:"CharacterActionGain"; } | {characterId:string;equipmentSlotId:string;type:"CharacterEquipmentSlotGain"; } | {characterId:string;itemDefinitionId:string;itemInstanceId:string;type:"CharacterInventoryItemGain"; } | {characterId:string;characterInventoryItemId:string;type:"CharacterInventoryItemLoss"; } | {characterId:string;equipmentSlotId:string;itemId:string;type:"CharacterInventoryItemEquip"; } | {characterId:string;equipmentSlotId:string;itemId:string;type:"CharacterInventoryItemUnEquip"; } | {characterId:string;targetPosition:Position;type:"CharacterPositionSet"; } | {actionId:string;characterId:string;sourceId:string;statusId:string;type:"CharacterStatusGain"; } | {characterId:string;type:"CharacterAttackAttackerHit"; } | {characterId:string;type:"CharacterAttackAttackerMiss"; } | {actionDefinitionId:string;attackerId:string;characterId:string;type:"CharacterAttackDefenderHit"; } | {actionId:string;attackerId:string;characterId:string;type:"CharacterAttackDefenderDodge"; } | {characterId:string;type:"CharacterAttackDefenderParry"; } | {characterId:string;type:"CharacterClassReset"; } | {characterId:string;classId:string;type:"CharacterClassLevelGain"; }
Parameters
• event: CampaignEvent
Returns
undefined | {type: "Unknown"; } | {type: "CampaignStarted"; } | {battleId: string;roundId: string;type: "RoundStarted"; } | {type: "RoundEnded"; } | {characterId: string;templateCharacterId: string;type: "CharacterSpawned"; } | {characterId: string;name: string;type: "CharacterNameSet"; } | {characterId: string;max: number;resourceTypeId: string;type: "CharacterResourceMaxSet"; } | {actionId: string;amount: number;characterId: string;resourceTypeId: string;sourceId: string;type: "CharacterResourceGain"; } | {actionId: string;amount: number;characterId: string;resourceTypeId: string;sourceId: string;type: "CharacterResourceLoss"; } | {amount: number;characterId: string;statId: string;type: "CharacterStatChange"; } | {characterId: string;experience: number;type: "CharacterExperienceChanged"; } | {characterId: string;experience: number;type: "CharacterExperienceSet"; } | {characterId: string;type: "CharacterDespawn"; } | {characterId: string;sourceId: string;targetPosition: Position;type: "CharacterMovement"; } | {actionId: string;characterId: string;type: "CharacterActionGain"; } | {characterId: string;equipmentSlotId: string;type: "CharacterEquipmentSlotGain"; } | {characterId: string;itemDefinitionId: string;itemInstanceId: string;type: "CharacterInventoryItemGain"; } | {characterId: string;characterInventoryItemId: string;type: "CharacterInventoryItemLoss"; } | {characterId: string;equipmentSlotId: string;itemId: string;type: "CharacterInventoryItemEquip"; } | {characterId: string;equipmentSlotId: string;itemId: string;type: "CharacterInventoryItemUnEquip"; } | {characterId: string;targetPosition: Position;type: "CharacterPositionSet"; } | {actionId: string;characterId: string;sourceId: string;statusId: string;type: "CharacterStatusGain"; } | {characterId: string;type: "CharacterAttackAttackerHit"; } | {characterId: string;type: "CharacterAttackAttackerMiss"; } | {actionDefinitionId: string;attackerId: string;characterId: string;type: "CharacterAttackDefenderHit"; } | {actionId: string;attackerId: string;characterId: string;type: "CharacterAttackDefenderDodge"; } | {characterId: string;type: "CharacterAttackDefenderParry"; } | {characterId: string;type: "CharacterClassReset"; } | {characterId: string;classId: string;type: "CharacterClassLevelGain"; }
Source
core/roleplayer.ts:96
dispatchAction()
dispatchAction<
T>(action):T
Type parameters
• T
Parameters
• action: ActionDispatch< T >
Returns
T
Source
core/roleplayer.ts:86
dispatchEvents()
dispatchEvents(...
events):void
Parameters
• ...events: CampaignEvent[]
Returns
void
Source
core/roleplayer.ts:90
nextSerialNumber()
nextSerialNumber():
number
Returns
number
Source
core/roleplayer.ts:80
notify()
notify(
event):void
Parameters
• event: RoleplayerEvent
Returns
void
Inherited from
Observable.notify
Source
lib/events/observable.ts:15
reduce()
reduce(
event):void
Parameters
• event: RoleplayerEvent
Returns
void
Source
core/roleplayer.ts:127
subscribe()
subscribe(
func): () =>void
Parameters
• func: Func< RoleplayerEvent >
Returns
Function
Returns
void
Inherited from
Observable.subscribe
Source
lib/events/observable.ts:6
unsubscribe()
unsubscribe(
func):void
Parameters
• func: Func< RoleplayerEvent >
Returns
void
Inherited from
Observable.unsubscribe
Source
lib/events/observable.ts:11